1

目前,我有一个屏幕

线性布局作为根

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

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

一个

列作为根

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

或者

LazyColumn 作为根

  • 项目 { ViewpagerComposable() }
  • 项目 { TextComposable() }
  • 项目(列表){ TextComposable(它)}
  • item { 其他一些可组合的 }
4

1 回答 1

1

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

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

于 2021-08-27T19:31:16.210 回答