notifyItemChanged()强制调用onBindViewHolder()吗?

Dal*_*nte 6 android android-recyclerview

当我打电话notifyItemChanged()给我时RecyclerView,相应的Views(在这种情况下,按钮)不会按预期更新.我打电话给他们的原因是数据已经改变,这会导致他们的背景颜色发生变化.这是否意味着notifyItemChanged()不会强制拨打电话onBindViewHolder()

我尝试使用notifyDataSetChanged(),并且会导致视图按我的意愿重新加载,所以我知道我的实现是正确的.(注意我不想使用notifyDataSetChanged(),因为这是低效的,我只用它作为一个健全性测试).

小智 2

刷新列表视图 注册一个新的观察者来监听数据更改。使用registerAdapterDataObserver

适配器可以发布描述特定更改的各种事件。并非所有适配器都可以支持所有更改类型,并且如果没有更具体的数据可用,有些适配器可能会回退到通用“更改内容”事件。

使用适配器注册观察者的组件负责在完成后取消注册这些观察者。