HarmonyOS 鸿蒙Next List下循环重复使用RichText时过于卡顿和滑动响应慢

发布于 1周前 作者 htzhanglong 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next List下循环重复使用RichText时过于卡顿和滑动响应慢

问题就是标题所述,List中的每一项简单的渲染了一个本地写死的RichText富文本,列表性能都变得很卡

RichText组件原文如下:RichText组件底层复用了Web组件来提供基础能力,包括但不限于HTML页面的解析、渲染等。但由于Web组件比较消耗资源,所以在一些重复使用RichText组件的场景下,比如在List下循环重复使用RichText时,会出现卡顿、滑动响应慢等现象。

虽然官网组件提前说了会卡,不过这也过于卡顿了吧,请问各位对这个问题有什么解吗?

9 回复

我之前使用api9的时候,用过这个,list当中直接不能滚动😂😂

太坑了。。请问大佬最后是怎么解的啊,还有其他可以渲染富文本的方式吗

不用它了,我当时想做搜索高亮,内容不多,可以换其他的,不知道你的里面有什么内容,理论上来说用list的话就不能使用富文本,这个富文本就不是给list下使用的

测试机为Mate60 Pro 系统为Next Developer Beta 1
代码如下:
ListItem() {
Column() {
RichText("aaaa")
.width('100%')
.height(20)
Text("item" + item)
.fontSize(16)
}
}.listCard()
这种最简单的代码 真机运行都能卡顿的吗。。测试过了把RichText("aaaa")去掉就正常了,确认是富文本组件造成的卡顿问题

RichText 主要是HTML渲染的组件,你一个listN个肯定卡顿。RichText 估计使用在HTML富文本显示的,类似新闻资讯详情显示的,列表中使用Text不香吗?

如果你的产品每个Item 确实需要显示,可以解析HTML 然后使用RichEditor来处理,设置此组件的enablePreviewText为预览属性。

迁移以前的项目,之前的项目很多地方服务端就是返回的富文本,不大可能因为这种迁移做重构的,我也很无奈

作为IT专家,对于HarmonyOS鸿蒙Next中List下循环重复使用RichText时出现的卡顿和滑动响应慢问题,我了解到这主要是由于RichText组件本身较为消耗内存资源。在List组件中循环创建RichText组件,特别是在显示复杂HTML文本时,会导致加载缓慢、滑动卡顿。

针对此问题,官方文档已建议,在需要重复使用RichText组件的场景下,可以考虑使用RichEditor组件替代。此外,还可以尝试以下优化措施:

  • 懒加载:通过LazyForEach实现数据按需加载,减少一次性加载的数据量,提升页面响应速度。
  • 缓存列表项:配置cachedCount属性,缓存屏幕可视区域外的列表项,通过预加载数据提升列表滑动体验。
  • 布局优化:使用扁平化布局方案,减少视图嵌套层级和组件数,避免过度绘制。

这些优化措施可以结合实际情况进行尝试和调整。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部