HarmonyOS Next中如何使用分帧渲染优化滑动场景的性能问题?

在日历应用中,需要在一个List里面加载每个月的全部天数,包括公历和农历日期,这样在一个ItemView复用组件中就会有很多数据加载,当列表滑动的时候,通过组件复用的aboutToReuse()接口设置新的数据,就会导致ItemView内所有组件一起刷新,可能会引起掉帧卡顿现象,如何优化?

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 617
1 个回答

由于一次性加载大量数据、刷新大量组件会导致卡顿丢帧,那么减少一次性加载的数据量就是一种解决方法。但是由于业务需求,需要加载的数据总量和绘制的组件数量是不能减少的,那么就可以考虑采用分帧渲染。

滑动场景分帧:滑动日历列表,复用ItemView组件,更新每月天数包含阴历和阳历,一次更新所有天数,数据量大,可以使用分帧策略,将每月日期数据进行拆分,一帧只更新5天数据,在使用ForEach循环每月的天数时,因为一次只更新5天数据,ForEach会根据key值更新对应的天数,从而避免在一帧中更新所有数据。该方法优点是可以将数据拆分在多帧中加载,缺点是操作比较麻烦,需要开发者根据实际情况计算一帧中加载的数据量,维护较为复杂。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题