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

标签 java android android-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。我的解决方案是:

 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);
        }
    });

}

希望对大家有用。谢谢

关于java - 如何在不滚动到顶部的情况下将新项目添加到 recyclerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39877996/

相关文章:

java - 在 Android 应用程序上从 Google Plus 帐户检索电子邮件

android - 当我向下滚动时,RecyclerView 检查错误的项目

android - 为什么在 RecyclerView 中 findViewByPosition() 在 EditText 上返回 null

java - 在 spring MVC 应用程序中将 jackson 替换为 gson (不使用 spring boot ),但仍然出现 jackson 依赖错误

Java 全局变量 - 声明的约定是什么?

java - 获取java不同结果中两个日期之间的日期列表

java - 如何通过旋转项目位置,Android,java使用ArrayList过滤RecyclerView?

java - 即使命令失败,Jenkins如何将命令输出打印到文件?

android - 启动画面的首选方式是什么? - 使用处理程序或创建新线程?

android - 在 Android 后台和使用 FCM 时处理 keepSynced()