Kar*_*Ata 6 android kotlin android-jetpack-compose
我是 jetpack compose 的新手,并从基础代码中学习它,JetpackCompose所以我在创建一个高性能惰性列表
中找到了它
注意:LazyColumn 不会像
RecyclerView.Composables当您滚动它时,它会发出新的信号,并且仍然具有高性能,因为Composables与实例化 Android 视图相比,发出信号相对便宜。
那么如何发出新的可组合项既便宜又高性能,那么为什么不只使用列并一次性组成整个列表,而不是在滚动时继续发出可组合项,即使发出的只是布局composables可见的项目
更新:如果可见项目是 10,那么在用户滚动之前,从 0 到 9 的项目是可见的并且已经渲染,现在用户已经向上滚动并且可见项目从 5 到 14,jetpack compose 是否删除了 5 个项目之前已经渲染过,如果用户向下滚动,它们将被重新组合,或者 jetpack compose 将所有渲染的视图保留在内存中,无论它是否可见
因为“便宜”的定义是有限制的,但清单的大小却没有限制。输出 100-200 个可组合项可能会很便宜(我对此并不确信,但为了论证,可以这样说)。输出 10K 并不便宜。由数据库支持的结果列表很容易就是这样。
所以你仍然不想一直输出所有内容。但输出用户可以合理滚动到的所有内容可能相对便宜,因为没有人会到达 10K 列表的末尾。从而使其成为基于常见用户行为的合理妥协。当他们进一步向下滚动页面时,您会损失性能,但这样做的用户百分比足够小,您可能不在乎。
| 归档时间: |
|
| 查看次数: |
2744 次 |
| 最近记录: |