Jetpack Compose LazyList 未正确显示项目

Posted

技术标签:

【中文标题】Jetpack Compose LazyList 未正确显示项目【英文标题】:Jetpack Compose LazyList not showing items correctly 【发布时间】:2021-08-28 20:46:32 【问题描述】:

世界!

我使用 Jetpack Compose 已经有一段时间了,我取得了非常好的结果。 但是,我发现了这个问题:我有一个项目列表,我使用LazyColumn 将它们显示给用户。但是当我向上和向下滚动时,有些项目无法正确显示,它们显示出来就像其中没有信息一样。

我不知道我是否遗漏了什么,或者这种行为将来会得到纠正。

How it looks

我的代码:

LazyColumn(
    modifier = modifier
        .fillMaxHeight(),
) 
    items(expenses, Expense::id)  expense ->
        ExpenseItem(expense = expense, areExpensesSelectable,
            onExpenseLongClick =  onExpenseLongClick?.invoke() ,
            onExpenseSelected =  onExpenseSelected?.invoke(it) ,
            onExpenseDeselected =  onExpenseDeselected?.invoke(it) )
    

【问题讨论】:

请提供ExpenseItem 的一些代码以及使用此列表的部分(创建expenses 列表的位置)。这将有助于我们找到原因并提供解决方案。谢谢。 查看***.com/questions/67728388/… 是的,我将版本升级到 beta08 并且已修复。出于某种原因,我仍在使用 beta07。感谢您的贡献。 【参考方案1】:

自我响应:这是 Jetpack Compose 中存在的一个错误,直到在 beta08 版本中得到修复。

【讨论】:

很高兴您的问题解决了。您应该将我的答案标记为解决方案,以便其他人知道该问题已被回答,并且不要多次回答,谢谢。 嘿,对不起。这是我在 Stack Overflow 上的第一篇文章,但我忘记了。你去吧。 :D【参考方案2】:

我听说这个错误已在最新版本的 Compose 中得到修复。

【讨论】:

确实如此!出于某种原因,我仍在使用 beta07 而不是 beta08。但是一旦我把它撞起来,它就工作得很好。谢谢!

以上是关于Jetpack Compose LazyList 未正确显示项目的主要内容,如果未能解决你的问题,请参考以下文章

Android Jetpack Compose学习—— Jetpack compose基础布局

Android Jetpack Compose学习—— Jetpack compose基础布局

Android Jetpack Compose学习—— Jetpack compose基础布局

Android Jetpack Compose学习—— Jetpack compose入门

Android Jetpack Compose学习—— Jetpack compose入门

jetpack compose 接收返回参数