LazyVerticalGrid 自适应方形项目

use*_*385 3 android android-jetpack-compose

有没有一种有效的方法可以使自适应网格的项目高度等于运行时确定的宽度?基本上我想要方形的物品。

到目前为止我已经尝试过这个:

var size by remember { mutableStateOf(IntSize.Zero) }

Column( // item
...
     .onSizeChanged {
        size = it
     }
    .size(with(LocalDensity.current) {
        size.width.toDp()
    })
)
Run Code Online (Sandbox Code Playgroud)

但我是个新手,认为这可能是一项昂贵的操作。还有其他选择吗?

Gab*_*tti 6

您可以将aspectRatio修改器应用到该项目。例如:

LazyVerticalGrid(
    /* .. */
) {
    items(itemsList) {
        Box(Modifier.aspectRatio(1f)) {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述