Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-RecyclerView notifyDatasetChanged未更新布局视图_Android_Android Recyclerview_Notifydatasetchanged_Recyclerview Layout - Fatal编程技术网

Android-RecyclerView notifyDatasetChanged未更新布局视图

Android-RecyclerView notifyDatasetChanged未更新布局视图,android,android-recyclerview,notifydatasetchanged,recyclerview-layout,Android,Android Recyclerview,Notifydatasetchanged,Recyclerview Layout,我有一个用于RecyclerView的适配器。适配器有一个属性大小,可以是小的,也可以是大的 根据属性的不同,为ViewHolder加载的布局会有所不同 我有一个按钮来更改这个属性,但是在我设置它之后,如果我调用notifyDataSetChanged()视图将不会更新 我还尝试了requestLayout和invalidate,但没有成功。这就是,onCreateViewHolder将不再调用。使用RecyclerView时,notifyDataSetChanged()调用onBindView

我有一个用于
RecyclerView
的适配器。适配器有一个属性大小,可以是小的,也可以是大的

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

我有一个按钮来更改这个属性,但是在我设置它之后,如果我调用
notifyDataSetChanged()
视图将不会更新

我还尝试了
requestLayout
invalidate
,但没有成功。这就是,
onCreateViewHolder
将不再调用。

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

一种方法是调用

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

无论何时更改属性。这将调用适配器的onCreateViewHolder()

我得到了它,因为在
onCreateViewHolder
之前,
getItemViewType
被调用


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

请发布代码。@htafoya请共享您的代码,以便我们可以帮助您。如果要更新特定记录,请使用notifyitemchanged()而不是notifyDataSetChanged()。