我有一个RecyclerView,每一秒需要更新一个项目行(SeekBar)。所以我在更新列表中的数据后调用NotifyDataSetChanged。 UI会更新,但问题是RecyclerView会滚动,以便此特定项目位于屏幕的顶部或底部。 我不希望RecyclerView滚动。
// Update Data
mData.set(mData.indexOf(cardData), cardData);
// RefreshView
refreshView() {
runOnUiThread(new Runnable(){
notifyDataSetChanged();
}
);
答案 0 :(得分:1)
您可以使用notifyItemChanged(position);
更新一个项目,并且您不会更新适配器中的所有数据,您只会更新某个项目
答案 1 :(得分:1)
最好使用RecyclerView中的其他通知方法。
对于您的用例,只需更换适配器中的一个项目而不是所有项目,然后使用notifyItemChanged(position)
。
这会更快,视图不会滚动,如果您要添加动画,这只有在您不使用notifyDataSetChanged
答案 2 :(得分:0)
我得到了它的工作。我在回收者视图上方有一张卡片视图。我刚刚删除它。现在整个屏幕都是recyclerView,我看不到任何自动滚动。