Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收视图项目动画师animateAdd&;动画同时改变两者?_Android_Animation_Android Recyclerview_Listviewitem - Fatal编程技术网

Android 回收视图项目动画师animateAdd&;动画同时改变两者?

Android 回收视图项目动画师animateAdd&;动画同时改变两者?,android,animation,android-recyclerview,listviewitem,Android,Animation,Android Recyclerview,Listviewitem,我正在尝试制作这个动画: 若要插入新项目,其他人将按默认方式下移。但是第一项和第二项改变。第一个与ViewType 1一起插入,然后第二个将ViewType切换为2。我目前管理3种视图类型() 1个全尺寸 2.填充 3分离器 我从DefaultItemAnimator扩展如下(): 我还把它想象成一堆: LinearLayoutManager llm = new LinearLayoutManager(this); llm.setOrientation(LinearLayoutMana

我正在尝试制作这个动画:

若要插入新项目,其他人将按默认方式下移。但是第一项和第二项改变。第一个与ViewType 1一起插入,然后第二个将ViewType切换为2。我目前管理3种视图类型()

1个全尺寸

2.填充

3分离器

我从DefaultItemAnimator扩展如下():

我还把它想象成一堆:

LinearLayoutManager llm = new LinearLayoutManager(this);
    llm.setOrientation(LinearLayoutManager.VERTICAL);
    llm.setReverseLayout(true);
    llm.setStackFromEnd(true);
    recyclerView.setLayoutManager(llm);
因此,当我添加项目时,滚动必须向上移动:

recyclerView.scrollToPosition(arreglo.size()-1);
插入项()的整个代码:

但上面的代码给出了下一个结果:

我认为这是由以下几行造成的:

notifyItemRangeChanged(arreglo.size()-3,arreglo.size()-1);
有人知道如何解决这个问题吗?提前谢谢。

我这样解决了它:

rv.setItemAnimator(new animadroNotificaciones(){
            @Override
            public void onAnimationFinished(RecyclerView.ViewHolder viewHolder) {
                adaptador.notifyDataSetChanged();
            }
        });
notifyItemRangeChanged(arreglo.size()-3,arreglo.size()-1);
rv.setItemAnimator(new animadroNotificaciones(){
            @Override
            public void onAnimationFinished(RecyclerView.ViewHolder viewHolder) {
                adaptador.notifyDataSetChanged();
            }
        });