我有一个垂直RecyclerView
,每个项目都有水平RecyclerView
。
当我更新RecyclerView
UI Freeze几秒钟时。
更新代码:
public void setData(List<SectionList> data) {
if (this.sectionListDetails != data) {
this.sectionListDetails = data;
notifyDataSetChanged();
}
}
答案 0 :(得分:2)
在RecyclerView
中使用RecyclerView
会导致处理密集并导致屏幕上的视图延迟呈现。此外,两个适配器代码的计算兼容性与Android框架如何执行它有关。但我认为不是调用notifyDataSetChanged()
(重新渲染显示的项目以及每一行中显然处理密集的嵌套水平适配器),而是尝试使用以下方法来帮助减少不必要的处理
notifyItemChanged(int)
notifyItemInserted(int)
notifyItemRemoved(int)
notifyItemRangeChanged(int, int)
notifyItemRangeInserted(int, int)
notifyItemRangeRemoved(int, int)
使用它可以对特定项目进行操作。 Check this link for more