Android - RecyclerView notifyDatasetChanged不更新布局视图

时间:2017-07-11 07:07:53

标签: android android-recyclerview notifydatasetchanged recyclerview-layout

我有RecyclerView的适配器。适配器具有属性大小,可以是SMALL或LARGE。

根据属性的不同,为视图加载的布局会有所不同。

我有一个更改此属性的按钮,但是在我设置之后,如果我调用notifyDataSetChanged(),则视图不会更新。

我也尝试了requestLayoutinvalidate但没有成功。这是 onCreateViewHolder 永远不会再被调用。

3 个答案:

答案 0 :(得分:0)

使用RecyclerView时,

notifyDataSetChanged()调用onBindViewHolder()。它不会调用onCreateViewHolder。 您可以尝试使用setAdapter()来解决上述问题。

答案 1 :(得分:0)

一种方法是打电话

recyclerView.setAdapater(new YourCustomRecylcerViewAdapter(yourProperty, listToUpdate))

每当您更改属性时。这将调用适配器的 onCreateViewHolder()

答案 2 :(得分:0)

嗯,我明白了,这是因为在onCreateViewHolder之前调用了getItemViewType

如果未设置新视图,则不会调用它。所以我必须为每个小视图创建一个新的 viewType 并解决问题:)。