内部包含 LazyRows 的 LazyColumn 的性能

mrz*_*zbn 5 android kotlin android-jetpack-compose lazycolumn android-jetpack-compose-lazy-column

我有一个惰性列,里面有惰性行,如图所示:

在此输入图像描述

我正在使用 Android 9 的 2017 年中等质量手机进行测试。发布版本启用了 R8。

行中的滚动性能相当不错,但列中的滚动性能非常低。我使用的是最简单的可组合项,没有什么特别的。

LazyColumn { 
     items(
          items = rows,
          key = { it.id },
          contentType = { it.type}
     ) { 
          LazyRow {
               items(videos) {
                    Video()
               }
          }
     }
 } 
Run Code Online (Sandbox Code Playgroud)

更新:这是GPU 渲染速度配置文件的样子:

在此输入图像描述

更新:这就是探查器系统跟踪的样子。我无法弄清楚是什么导致了如此巨大的滞后:

在此输入图像描述

更新:我使用了简单的文本而不是视频,但性能仍然非常差。我创建了一个示例项目

小智 0

几个月前我玩的时候也遇到了同样的问题。我看到一些同事使用 ImmutableList 来存储这些项目,并且运气更好。可能值得一试 - 我遇到的问题是也发生了大量的重组,因此请确保分析器能够很好地进行重组