首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LazyHorizontalGrid内部LazyColumn

LazyHorizontalGrid内部LazyColumn
EN

Stack Overflow用户
提问于 2022-06-17 15:43:50
回答 1查看 559关注 0票数 1

我有一个LazyColumn,在它里面我想显示一个有两个列的水平行,所以我尝试用LazyHorizontalGrid来实现它。但是我的应用程序崩溃时出现了异常-- IllegalArgumentException: LazyHorizontalGrid's height should be bound by parent。下面是我正在使用的代码,请任何人帮助修复它或任何其他方法,通过这些方法我可以使一行有两列。

代码语言:javascript
复制
@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])
                    }
                }
            }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-06-21 21:41:24

你需要事先计算网格的高度。

代码语言:javascript
复制
    @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))
                    }
                }
            }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72661805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档