如何在不滚动到顶部的情况下向recyclerview添加新项目



我想将新项目设置在recyclerview的顶部。但是当我设置项目时,recyclerview会自动滚动到顶部。
我试了很多代码,但我不能解决这个问题。
这是我的addItem方法:

   public void addItem(final ArrayList<String> list) {

    for (int i=0; i< list.size();i++){
        items.add(i,list.get(i));
    }
    activity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
//                notifyDataSetChanged();
//                notifyItemRangeInserted( 0,list.size() );
//                notifyItemInserted();
            notifyItemRangeInserted(10,11);
//                notifyDataSetChanged();
        }
    });


}

我尝试了所有的注释方法。
你能帮我解决这个问题吗?
谢谢

最后我有了一个解决方案。我把notifyItemRangeChanged放在set new Items之后。我的解决方案是:

 public void addItem(final ArrayList<String> list,int h) {
    final int oldsize = items.size();
    for (int i=list.size()-1; i>=0 ;i--){
        items.add(0,list.get(i));
    }
    activity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            notifyItemRangeInserted(0,items.size()-oldsize);
        }
    });
}

我希望这对每个人都有用。由于

您可以使用recyclerView.scrollToPosition(pos);,其中pos是您想要在列表上进行一些操作后将列表视图集中在的位置

相关内容

最新更新