Jetpack Compose Vertical Grid 单项跨度大小

Jor*_*oza 4 android android-jetpack-compose android-jetpack-compose-list

在 xml 中,您可以使用 GridLayoutManager 中的 GridLayoutManager.SpanSizeLookup 来设置单个项目的跨度大小(该项目将在行中使用多少列,例如,在 3 列的网格中,我可以将第一个项目设置为跨度大小3 所以它将使用网格的所有宽度),但在 Compose 中我找不到方法来做到这一点,垂直网格只有一种方法设置全局跨度计数和添加项目,但不能设置跨度大小一个单独的项目,有办法做到吗?

Mah*_*hag 12

Jetpack Compose 版本1.1.0-beta03将水平跨度引入到LazyVerticalGrid.

示例代码:

val list by remember { mutableStateOf(listOf("A", "E", "I", "O", "U")) }

LazyVerticalGrid(
    cells = GridCells.Fixed(2)
) {
    // Spanned Item:
    item(
        span = {
            // Replace "maxCurrentLineSpan" with the number of spans this item should take.
            // Use "maxCurrentLineSpan" if you want to take full width.
            GridItemSpan(maxCurrentLineSpan)
        }
    ) {
        Text("Vowels")
    }

    // Other items:
    items(list) { item ->
        Text(item)
    }
}

Run Code Online (Sandbox Code Playgroud)