HarmonyOS 刷新列表中的某个ITEM,会导致整个ITEM都刷新,有单独刷新某个控件的办法吗?

列表中每个ITEM中包含有一个大图,一个点赞按钮,当点赞按钮点击时候,会将按钮置为选中状态,此时我调用。

let tempNews = this.dataSource.getData(index);  
tempNews.isHot = true  
this.dataSource.notifyItemDataChange(index, tempNews);

这个方法来刷新某个项,会导致这个项中的图片也会闪一下体验不好,有什么办法能单独刷新这个点赞的按钮样式吗?

HarmonyOS
2024-10-25 11:50:39
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

根据您的描述,当数据源变化时,ForEach的刷新机制会导致整个ListItem被重建。由于Image组件是异步刷新,所以视觉上图片会发生闪烁。

为了解决这种情况我们应该使用@ObjectLink和@Observed去单独刷新数据源改变的listItem。

参考文档: 查看重渲染时图片闪烁。

https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/quick-start/arkts-rendering-control-lazyforeach.md/#%E5%B8%B8%E8%A7%81%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98

分享
微博
QQ
微信
回复
2024-10-25 15:16:31
相关问题
HarmonyOS List item 刷新问题
815浏览 • 1回复 待解决
HarmonyOS 列表刷新时候
18浏览 • 1回复 待解决
HarmonyOS Swiper里面的item高度自动刷新
481浏览 • 1回复 待解决
HarmonyOS 刷新控件问题
172浏览 • 1回复 待解决
HarmonyOS 列表刷新问题
659浏览 • 1回复 待解决
HarmonyOS 通知列表刷新事件
75浏览 • 1回复 待解决
HarmonyOS ForEach列表刷新问题
79浏览 • 1回复 待解决