作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我出于测试目的设置了一个非常小的项目,并且在滑动 horizontalPager 时看到很多卡顿帧: https://github.com/DaFaack/ComposePerformanceTest
我在启用 R8 的 Release模式下构建。我做错了什么?
当我记录轨迹并在 perfetto 中查看它时,它显示了很多卡顿:
使用 ViewPager + RecyclerView 在 XML 中的相同设置运行顺利
我尝试生成基线配置文件,但看不出有什么不同,仍然是卡顿的帧
最佳答案
而不是使用:
LazyVerticalGrid(columns = GridCells.Fixed(5), content = {
items(40) {
ImageItem(imageUrl, name)
}
})
使用:
(0..40).forEach { it ->
item(key: /*Create an constant key for each item*/) {
ImageItem(imageUrl, name)
}
}
我在某处读到,在列表上使用 foreach 可以大大提高性能以及自定义键。此外,尝试在任何可能的场景中使用 fastForEach。
关于android - 在 Jetpack Compose 中使用 HorizontalPager + LazyVerticalGrid 时性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73999561/
我是一名优秀的程序员,十分优秀!