HarmonyOS Tab + List 性能优化

class Book {
  bookId: string
}

prices = Map<string, Price> // 书本 ID 到价格数据的映射
  tabList = Book[][] // 所有 tab 下的列表

Tabs 下有多个 tab,每个 tab 下都有一个 list,list 的数据来源是 tabList[tabIndex],在构建 ListItem 时会查找 prices 显示书本价格后台会源源不断推送书本的实时价格(比较高频),在收到实时价格后,更新 prices,数据变更会通知相应的 list item 视图重绘。

  • 实际测试发现列表滑动比较卡

  • 于是尝试 LazyForEach 的方式优化

  • 在APP启动后显示第 1 个 Tab 下的列表,此时滑动变得很丝滑

  • 切换 多个 tab 页后,滑动开始变卡

分析后得出初步结论:切换 tab 后,新 tab 以及其下的 list 被构建出来,此时无论可见还是不可见的 tab 下都有各自的 list,当后台推送数据更新 price map 时,各 tab 下有价格更新的 list 项都在重绘。如何控制不可见的 view 不进行重绘?

HarmonyOS
4h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get
分享
微博
QQ
微信
回复
3h前
相关问题
HarmonyOS webview加载速度 性能优化
36浏览 • 1回复 待解决
HarmonyOS App性能优化有指标吗?
75浏览 • 1回复 待解决
如何优化Flex的布局性能
516浏览 • 1回复 待解决
如何优化ArkTS应用的性能?
162浏览 • 0回复 待解决
应用性能问题定位和优化指导
2540浏览 • 1回复 待解决
应用性能问题优化方式有哪些?
427浏览 • 1回复 待解决
组件需要多次更新时,如何优化性能
1848浏览 • 1回复 待解决
使用HiDumper命令行工具优化性能
747浏览 • 1回复 待解决
List组件性能问题,有人知道吗?
2069浏览 • 1回复 待解决
h5在HarmonyOS应用里的加载性能优化
209浏览 • 1回复 待解决