鸿蒙开发刷新单个item会闪一下处理
创始人
2024-11-13 11:08:36
鸿蒙开发刷新单个item会闪一下

首先我用的是懒加载方式,改变某位数据后我调listener.onDataChange(index),发现item的改动是变了,但是item也闪了一下。

先分析为什么item会闪一下

其他是因为item上有图片,加载的网络图。你onDataChange(index)时,它会重新加载这一item,自然图片也重新加载,因为是网络图,加载需要时间,所以就闪了一下

解决方案1:用@ObjectLink和@Observed配合使用

**好处:**用了它,你不用调onDataChange(index),它也会改动成功,并且不闪
**不好:**它只支持类,并且每个对象都得new 进去
关键代码示例如下:
1、bean类必须加@Observed

@Observed export class HomeBaseListBean{       authMsg?:string   jobAuthStatus?:boolean   videoAuthStatus?:boolean   vipStatus?:boolean   checkIsLove?:boolean      constructor(authMsg?:string,   jobAuthStatus?:boolean,   videoAuthStatus?:boolean,   vipStatus?:boolean,   checkIsLove?:boolean, 

2、必须是在@Component组件里面用

@Component export struct HomeWaterFallItemComponent {       // 继续用ObjectLink这样不用刷新整个item,避免闪烁   @ObjectLink userBean:HomeBaseListBean 

假设里面组件触发改变

Image(this.userBean.checkIsLove?$r('app.media.ic_heart_on_formal_three'):$r('app.media.ic_heart_off_formal_three'))             .width(24)             .height(24

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...