我可以将 10,000 张图像传递到 LazyColumn 中,因为它会延迟加载项目吗?

问题描述 投票:0回答:1

我目前正在开发一个图库应用程序。之前,在XML中,我单独实现了延迟加载。现在我已经转向 Jetpack Compose,我想知道是否仍然需要使用传统的延迟加载策略(例如 Paging),或者是否可以将大量项目(例如 10,000 个)直接传递到 LazyColumn 中或 LazyVerticalGrid 没有问题。

谢谢!

android android-studio
1个回答
0
投票

两者都需要,它们相辅相成。

无论您向 LazyColumn 提供什么内容,它都只会为当前显示的项目构建 UI,即适合 LazyColumn 可见区域的项目。用户可以将项目滚动进或滚出可见区域,因此只要该项目不再可见,就不再绘制其 UI。列表的大小没有太大影响,10,000 个项目不会成为问题。

这是 LazyColumn 的主要功能,它使大型列表能够高效显示。

只剩下一个问题:大列表本身。当需要从文件系统或者更糟糕的是通过网络读取项目时,组装列表将花费相当多的时间。 LazyColumn 在显示第一项之前需要等待的时间。

这就是分页的用武之地:它允许您在需要时以块的形式惰性地读取数据。因此,您无需等待整个列表加载即可开始显示第一个项目。

结论:您希望使用 LazyColumn 有效地显示大于可用屏幕空间的项目列表。当您想在数据完全加载之前开始显示数据时,您需要使用分页。

© www.soinside.com 2019 - 2024. All rights reserved.