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 刷新问题
658浏览 • 1回复 待解决
HarmonyOS Swiper里面的item高度自动刷新
346浏览 • 1回复 待解决
HarmonyOS 列表刷新问题
472浏览 • 1回复 待解决
刷新列表加载更多问题
240浏览 • 1回复 待解决
ListContainerItem能取消拖拽
4983浏览 • 1回复 待解决
UI预览不会自动刷新, 且刷新较慢
453浏览 • 1回复 待解决