【发布时间】:2015-02-27 03:07:36
【问题描述】:
我扩展了
RecyclerView.Adapter<RecyclerView.ViewHolder>
当我打电话时:
mRecyclerView.getAdapter().notifyDataSetChanged();
什么也没发生。
刷新视图的唯一方法是再次设置适配器(see this answer):
mRecyclerView.setAdapter(new MyAdapter(...));
我对这个解决方案有两个问题:
- 重新设置适配器时,我可以看到屏幕闪烁
- 列表视图返回到第一个位置。
有什么想法吗?
【问题讨论】:
-
有没有尝试在MyAdapter中封装notifyDataSetChanged方法?例如:在 MyAdapter 中创建“myNotifyDataSetChanged”并从该方法调用 this.notifyDataSetChanged()”。保存 MyAdapter 引用并调用 myAdapterRef.myNotifyDataSetChanged() 而不是 myRecyiclerView.getAdapter().notifyDataSetChanged()。不知道为什么它对我有用(我对 ListView 有这个问题)
-
@helionprime 没有帮助:(
-
好吧,我的错。我忘了在
onBindViewHolder方法中获取/使用更新的数据。但是眨眼效果呢,怎么才能去掉呢? -
好吧,我的坏2。与将图像加载到我的项目中的 imageViews 相关的闪烁效果。这是我正在使用的 UniversalImageLoader (github.com/nostra13/Android-Universal-Image-Loader/issues/376) 的一个已知问题。
-
你能找到解决问题的方法吗@David。我也有同样的问题。
标签: android android-adapter android-recyclerview notifydatasetchanged