【发布时间】:2016-04-08 08:30:53
【问题描述】:
有没有办法重绘RecyclerView的所有项目?
我有一些主题(在 style.xml 中),更改主题后,我需要重绘 RecyclerView。
所以我想要一个方法来强制为适配器的每个项目重新调用onCreateViewHolder。
我尝试过:
- 调用
adapter.notifyDataSetChanged,但未调用onCreateViewHolder - 拨打
recyclerView.setVisibility(View.GONE),然后拨打recyclerView.setVisibility(View.VISIBLE) - 致电
recyclerView.invalidate() - 拨打
recyclerView.setAdapter(null),然后拨打recyclerView.setAdapter(adapter)。
这适用于 90% 的项目。只有 90% 的商品会获得新款式,但有些商品会保留旧款式
我提到RecyclerView 附加到一个活动,而不是一个片段。
【问题讨论】:
-
确保从 UI 线程调用 notifyDataSetChanged(),它应该可以工作。
-
@Nanoc notifyDataSetChanged 只强制 onBindNewHolder,而不是 onCreate
-
对不起,我不熟悉 viewHolder 模式,但我会说你应该调整你的代码以使用它(或者不要使用它)。
标签: android android-recyclerview redraw