1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...

recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...

时间:2024-02-26 07:45:44

相关推荐

recycler 刷新图片闪烁_android 解决RecyclerView notifyDataSetChanged刷新闪屏问题(图片刷新)...

最近遇到了RecyclerView 在执行notifyDataSetChanged操作时会出现闪屏,图片刷新,然后根据网上资料提示使用 修改动画,设置动画时间

recyclerView.getItemAnimator().setAddDuration(0);

recyclerView.getItemAnimator().setChangeDuration(0);

recyclerView.getItemAnimator().setMoveDuration(0);

recyclerView.getItemAnimator().setRemoveDuration(0);

recyclerView.getItemAnimator().setSupportsChangeAnimations(false);

以上方法均无效果。

后查找原因:原来notifyDataSetChanged 刷新时,图片会重新加载,刷新操作时图片会线变为占位图,然后再重新加载。

解决办法:在图片控件第一次设置图片时,给控件设置tag,下一次加载时,先判断tag是否存在,存在的话就不重新加载。

eg:

public void onBindViewHolder(RackHolder holder, int position) {

String imgPath="/test.png";

String tag= (String) holder.img.getTag();

if (!uri.eques(tag)){

holder.img.setTag(imgPath);

//设置图片

}

}

-03-23更新:

还有一种情况:当我们使用瀑布流效果时,通常一个页面展示的item超过5个,而recycler默认存储的数量为5个,当大于5个时,执行notifyDataSetChanged 会导致页面刷新,因为此时执行onCreateViewHolder 方法,所以当数量大于5个时,建议使用notifyItemInserted 和notifyItemRangeChange 来更新页面。(并且包含settag)

参考资料:/issingleman/article/details/52717652

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。