以下是我对回收站视图的实现。
回收器视图令人耳目一新,但视图滞后很多,因此滚动不顺畅。如果我不刷新数据 recyclerView 是平滑的。问题仅在于刷新..!!
我需要在 RecyclerView 中每 1 秒完全刷新一次数据,保持相同的滚动位置。
xml
<android.support.v7.widget.RecyclerView
android:id="@+id/recyView_disp_pgms"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null" />
活动 :
RecyclerView recyView_disp_pgms = (RecyclerView) findViewById(R.id.recyView_disp_pgms);
DisplayProgramsAdapterRecycler pgmAdapter = new DisplayProgramsAdapterRecycler(programsList);
LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recyView_disp_pgms.setLayoutManager(layoutManager);
recyView_disp_pgms.setAdapter(pgmAdapter);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
System.out.println("AllPgm Runflag : " + runflag);
programList = // Get List from database
if (programsList != null && programsList.size() > 0) {
if (pgmAdapter != null && pgmAdapter.getItemCount() > 0) {
pgmAdapter.resetData(programsList);
}
}
handler.postDelayed(this, 1000);
}
};
handler.post(runnable);
适配器 :
public void resetData(ArrayList<ProgramDetails_Table> programsList) {
this.programDetailsList = programsList;
this.notifyDataSetChanged();
}
问题 - 仅在每 1 秒刷新一次数据时延迟滚动 recyclerView
尝试关注其他帖子;但仍然没有运气。请帮忙..!!
如果您想刷新列表,请找到您的更改,然后通知该位置,因为 notifyDataSetChanged 会重置您的所有数据。你应该使用轻量级的通知。像这样:
notifyItemChanged(yourPosition);
notifyItemInserted(yourPosition);
notifyItemRemoved(yourPosition);
或者如果您在一个范围内获得多个更改,您可以使用:
notifyItemRangeChanged(yourPosition);//and etc
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句