android - LazyColumn 内的 LazyHorizo​​ntalGrid

标签 android kotlin android-jetpack-compose android-jetpack

我有一个 LazyColumn,我想在其中显示一个包含两列的水平行,因此我尝试使用 LazyHorizo​​ntalGrid 来实现它。但是我的应用程序因异常而崩溃 - IllegalArgumentException: LazyHorizo​​ntalGrid's height should be bound by parent。 下面是我正在使用的代码,任何人都可以帮助修复它或任何其他方法,通过它我可以使一行有两列。

@Composable
fun HomeItem1() {
    Surface(modifier = Modifier.nestedScroll(rememberViewInteropNestedScrollConnection())) {
        LazyColumn {
            //other contents
            item {
                LazyHorizontalGrid(
                    rows = GridCells.Fixed(3),
                    horizontalArrangement = Arrangement.spacedBy(16.dp),
                    verticalArrangement = Arrangement.spacedBy(16.dp)
                ) {
                    items(arrayList.size) {
                        Text(arrayList[it])
                    }
                }
            }
        }
    }
}

最佳答案

所有你需要预先计算网格的高度。

    @Composable
    fun HomeItem1() {
        Surface(modifier = Modifier.nestedScroll(rememberViewInteropNestedScrollConnection())) {
        LazyColumn {
            //other contents
            item {
                LazyHorizontalGrid(
                    modifier = Modifier.height(176.dp), // itemHeight * rowCount + verticalSpacing * (rowCount - 1)
                    rows = GridCells.Fixed(3),
                    horizontalArrangement = Arrangement.spacedBy(16.dp),
                    verticalArrangement = Arrangement.spacedBy(16.dp)
                ) {
                    items(arrayList.size) {
                        Text(arrayList[it], modifier = Modifier.height(48.dp))
                    }
                }
            }
        }
    }
}

关于android - LazyColumn 内的 LazyHorizo​​ntalGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72661805/

相关文章:

android - 当默认设置为 0 时,SharedPreferences getInt 返回 -1

java - 如何使字符串在数字之间包含 ':' 仅避免在任何字符 java 之前或之后的 ':'?

android - phonegap 2.3.0 中的 InAppBrowser

Spring Data JDBC - Kotlin 支持 - 未找到类所需的属性

android-jetpack-compose - 在 Jetpack Compose 导航中共享 viewModel

android - Jetpack Compose 扩展 BottomSheetScaffold 的 BottomSheet 仅在重组后有效

java - flutter : Gradle threw an error while trying to update itself. 正在重试更新... Gradle 任务 assembleDebug 失败,退出代码 1

spring - 是否可以使 @Transactional 挂起功能?

android - Jetpack Compose - 更改 viewModel 中的变量会导致 viewModel 状态发生更改吗?

android - mutableStateOf 在 View 模型中更新但在@Compose 中没有效果