- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当试图把 LazyVerticalGrid
在 内可滚动 Column
我收到以下错误:
java.lang.IllegalStateException: Nesting scrollable in the samedirection layouts like LazyColumn andColumn(Modifier.verticalScroll()) is not allowed. If you want to add aheader before the list of items please take a look on LazyColumncomponent which has a DSL api which allows to first add a header viaitem() function and then the list of items via items().
@ExperimentalFoundationApi
@Composable
fun ProfileComposable(id: String?) {
val viewModel: ProfileViewModel = viewModel()
if (id != null) {
viewModel.getProfile(id)
val profile = viewModel.profile.value
val scrollState = rememberScrollState()
if (profile != null) {
Column(modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.verticalScroll(scrollState)) {
Row() {
ProfilePic(profile.getImgUrl(), profile.name)
Column(Modifier.padding(16.dp)) {
ProfileName(profile.name)
Stats(profile.stats) // <--------------- the offending composable
}
}
Sprites(sprites = profile.sprites)
TextStat(profile.id.toString(), "Pokemon Number")
TextStat(profile.species.name, "Species")
TextStat(profile.types.joinToString { it.type.name }, "Types")
TextStat(profile.weight.toString(), "Weight")
TextStat(profile.forms.joinToString { it.name }, "Forms")
}
} else {
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
CircularProgressIndicator()
}
}
} else {
Text("Error")
}
}
Stats()
可组合包含
LazyVerticalGrid
导致错误:
@ExperimentalFoundationApi
@Composable
fun Stats(stats: List<Stat>) {
LazyVerticalGrid(cells = GridCells.Fixed(2)) {
itemsIndexed(stats) { index, item ->
StatBox(stat = item)
}
}
}
我不希望网格滚动,我只想在可滚动列中显示网格。
最佳答案
我自己也遇到了这个问题。正如@gaohomway 所说,您最好的选择是使用 Google 的 Accompanist library 中的实验性 FlowRow() .
以下是一个工作代码 fragment 作为示例:
@Composable
fun ProfileScreen2() {
LazyColumn(
modifier = Modifier
.fillMaxSize()
) {
item {
Box(modifier = Modifier.fillMaxWidth().height(200.dp).background(color = Red))
}
item {
Box(modifier = Modifier.fillMaxWidth().height(200.dp).background(color = Gray))
}
item {
FlowRow() {
SampleContent()
}
}
}
}
@Composable
internal fun SampleContent() {
repeat(60) {
Box(
modifier = Modifier
.size(64.dp)
.background(Blue)
.border(width = 1.dp, color = DarkGray),
contentAlignment = Alignment.Center,
) {
Text(it.toString())
}
}
}
显示此可滚动页面(不要介意底部的导航栏):
关于android - Jetpack 撰写 : How to put a LazyVerticalGrid inside a scrollable Column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67919707/
如何在 LazyVerticalGrid 中显示项目之间的垂直和水平分隔线? 对于 LazyColumn 可以这样做: LazyColumn(...) { items(items) { ite
我正在使用 LazyVerticalGrid显示项目列表。 LazyVerticalGrid( cells = GridCells.Fixed(2),
我目前在 LazyPagingItems 中使用分页项 ( LazyVerticalGrid )通过下面的扩展功能,它工作正常。 inline fun LazyGridScope.items(
我正在尝试使用 LazyVerticalGrid 显示分页项目。我正在尝试的代码如下所示。 val categories = repo.categories.collectAsLazyPagingI
我出于测试目的设置了一个非常小的项目,并且在滑动 horizontalPager 时看到很多卡顿帧: https://github.com/DaFaack/ComposePerformanceTe
我有一个带有 2 个单元格的 LazyVerticalGrid。 LazyVerticalGrid( cells = GridCells.Fixed(2), content = {
当试图把 LazyVerticalGrid在 内可滚动 Column我收到以下错误: java.lang.IllegalStateException: Nesting scrollable in th
我刚开始使用Jetpack Compose,我有这个问题。我有一个LazyVerticalGrid,它是从FireStore数据库中获取的列表填充的,当我通过应用程序删除一个项目时,视图会更新,删除的
我是一名优秀的程序员,十分优秀!