这听起来很简单,但是最近3天以来一直在脖子上疼。我尝试了所有可能的方法来删除数据,例如删除adapter data
,删除recyclerview elements
,但都没有用。谁能帮我解决这个问题?
代码:
//Adapter Setting
adapteru=new CustomRecyclerViewAdapter(timelineDataList);
//Data Clearing Code
timelineDataList.clear();
posts_rView.getRecycledViewPool().clear();
adapter.notifyDataSetChanged();
posts_rView.removeAllViewsInLayout();
答案 0 :(得分:1)
它将在适配器上。您将删除适配器中的所有数据,以使getItemCount返回0(特定于适配器的操作方式)。然后调用notifyDataSetChanged。您不会直接触摸回收视图或回收视图。
答案 1 :(得分:1)
只需重新创建并重新安装适配器即可。在执行此操作和清除数据集之间的性能差异是绝对可忽略的,它创建的代码混乱要小得多。
理想情况下,您应该有一个
void showData(List<TimeLineData> timelineDataList){
adapter = new CustomRecyclerViewAdapter(timelineDataList);
yourRecyclerView.setAdapter(adapter);
//assumed you attached your layout manager earlier
}
以您的数据或Collections.emptyList()作为参数进行调用