notifyDataSetChanged 后如何避免闪烁效果
Posted
技术标签:
【中文标题】notifyDataSetChanged 后如何避免闪烁效果【英文标题】:How to avoid blinking effect after notifyDataSetChanged 【发布时间】:2019-12-20 06:02:18 【问题描述】:我已在我的应用程序中集成了 Google Ads,当我调用 notifyDataSetChnaged 时,广告会闪烁。
我尝试了以下解决方案 -
fun RecyclerView.disableItemAnimator()
var animator: RecyclerView.ItemAnimator? = home_article_recyclerview.getItemAnimator();
if (animator is SimpleItemAnimator)
animator.setSupportsChangeAnimations(false);
和
itemAnimator?.changeDuration = 0
但是它们都不起作用。任何帮助将不胜感激。
【问题讨论】:
对于 ArrayAdapter,notifyDataSetChanged 仅在您使用 Adapter 上的 add()、insert()、remove() 和 clear() 时才有效。 查看此链接对您有帮助!!! medium.com/@hanru.yeh/… 【参考方案1】:您应该使用 DiffUtil 来更新数据。 参考:diffUtil
【讨论】:
【参考方案2】:您能否尝试一次解决方案: myRecyclerView.disableItemAnimator()
【讨论】:
以上是关于notifyDataSetChanged 后如何避免闪烁效果的主要内容,如果未能解决你的问题,请参考以下文章