【问题标题】:notifyDataSetChanged for RecyclerView adapter is blocking the SwipeRefreshLayout indicator from cyclingRecyclerView 适配器的 notifyDataSetChanged 阻止 SwipeRefreshLayout 指示器循环
【发布时间】:2017-07-24 12:50:33
【问题描述】:

我正在使用带有 SwipeRefreshLayout 的 RecyclerView,当 RecyclerView 的元素增加时,notifyDataSetChanged 会阻止 SwipeRefreshLayout 的指示符阻止循环动画,直到绑定完成。

我已经厌倦了以下解决方案但没有成功:

  1. How to use notifyDataSetChanged() in thread“使用ui线程仍然阻塞动画”
  2. RecyclerView blocking ui thread during updates "优化更新数据集,只更新改变的项 只是尽量减少阻塞时间,但没有解决问题”

有什么建议吗?

【问题讨论】:

标签: android android-recyclerview swiperefreshlayout


【解决方案1】:

如果您只是更新视图的一部分,请使用notifyItemRangeChanged() 或notifyItemChanged() 而不是notifiyDataSetChanged()。

试试notifyItemChanged()

【讨论】:

  • 这并不能避免阻塞用户界面,它只能最大限度地减少被阻塞的时间。
猜你喜欢
  • 2015-02-02
  • 2018-11-23
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多