如何在 LazyVerticalGrid 中的项目之间显示水平和垂直分隔线?

Zie*_*iem 4 android android-jetpack-compose

如何在 中的项目之间显示垂直和水平分隔线LazyVerticalGrid

因为LazyColumn可以这样做:

LazyColumn(...) {
    items(items) { item ->
        Row(item)
        Divider()
    }
}
Run Code Online (Sandbox Code Playgroud)

它也适用LazyVerticalGrid,但我不确定如何显示项目之间的垂直分隔线?

Gab*_*tti 6

您可以在每个单元格中添加 2 个不同的Dividers。

就像是:

val numbers = (0..20).toList()

LazyVerticalGrid(cells = GridCells.Fixed(4)){
    itemsIndexed(numbers) { index, item ->

        Row(Modifier.height(IntrinsicSize.Min)) {

            Column(Modifier.weight(1f),horizontalAlignment = Alignment.CenterHorizontally) {
                Text(text = "Number")
                Text(text = "  $item",)
                Divider() //Horizontal divider 
            }
            
            //Vertical divider avoiding the last cell in each row
            if ((index+1)%4 != 0) {
                Column() {
                    Divider(
                        color = Color.Red,
                        modifier = Modifier
                            .fillMaxHeight()
                            .width(1.dp)
                    )
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述