如何使RecyclerView更新其布局?

Nil*_*zor 31 android android-recyclerview

我有RecyclerView一堆自定义视图,可能会在一段时间后改变高度,因为它们包含ImageView以异步方式加载图像的s.在RecyclerView没有拿起这个布局的变化,虽然我叫forceLayoutImageView,并RecyclerView与初始化setHasFixedSize(false).ImageView已设置的所有容器父母android:layout_height="wrap_content".

如何RecyclerView更新其布局?好的,ListView这不是问题.

小智 22

您可以使用notifyDataSetChangedAdapterRecyclerView,如果所有的图像在同一时间更改或notifyItemChanged(int position)如果只有一个项目已经改变.这将告诉RecyclerView重新绑定特定的View.


Nil*_*zor 11

谷歌终于在支持库v23.2中修复了这个问题.build.gradle使用SDK Manager更新支持存储库后,通过更新此行来修复问题:

compile 'com.android.support:recyclerview-v7:23.2.0'
Run Code Online (Sandbox Code Playgroud)


小智 5

MAIN THREAD调用notifyDataSetChanged()或者notifyItemChanged(int position)方法.从a调用它可能导致主线程不更新s.最方便的是在activity/fragment中有一个回调方法作为一个监听器,并由in 调用它RecyclerView.AdapterAsyncTaskImageViewAsyncTaskonPostExecute()