【问题标题】:Jetpack compose - is it good idea to throw all items in to LazyColumn?Jetpack compose - 将所有物品放入 LazyColumn 是个好主意吗?
【发布时间】:2021-10-27 14:06:18
【问题描述】:

目前,我有一个屏幕

LinearLayout 作为根

  • 浏览器
  • 文本视图
  • 带有 textview 项的 Recyclerview
  • 其他一些布局

在这种情况下,从性能方面迁移到作曲时,哪个是更好的选择?

一个

列作为根

  • ViewpagerComposable()
  • TextComposable()
  • LazyColumn { items(list) { TextComposable(it) } }
  • 其他一些可组合的

B

LazyColumn 作为根

  • item { ViewpagerComposable() }
  • 项目{ TextComposable() }
  • items(list) { TextComposable(it) }
  • item { 其他一些可组合的 }

【问题讨论】:

  • 这取决于您的列表有多大。 Lists
  • @Yeldar.N 无论哪种方式我都会得到相同的列表

标签: android android-jetpack-compose lazycolumn


【解决方案1】:

关于性能,您会看到惰性项目在离开组合后立即被销毁(从屏幕上滑出)。因此,如果您的项目需要进行一些加载,例如从 Web 获取一些数据或显示从内部资产加载的图像,则所有这些获取都将在重新输入时重新执行。虽然会自动进行缓存,因此您不必担心会重新执行繁重的操作,但即使是从缓存中提取也会发生。所以如果不需要让内容可滚动,如果是的话,内容又不是太多,用Column来代替是可行的。 LazyColumn 只是 RecyclerView 的快速替代品。在您的普通 android 应用程序中,您不会使用 RecyclerView 来处理这些东西吗?只需使用相同的概念,因为它提供与 Recyclerview 相同的性能。

简短回答:没有太大区别;性能影响(如果有的话)将可以忽略不计。在这种情况下,我可能会选择 Column,但这完全取决于您的方便。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2021-12-28
    • 2022-07-29
    • 2022-09-26
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    相关资源
    最近更新 更多