Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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 带有LinearLayoutManager和预测动画的RecyclerView_Android_Animation_Android Recyclerview_Linearlayoutmanager - Fatal编程技术网

Android 带有LinearLayoutManager和预测动画的RecyclerView

Android 带有LinearLayoutManager和预测动画的RecyclerView,android,animation,android-recyclerview,linearlayoutmanager,Android,Animation,Android Recyclerview,Linearlayoutmanager,我正在使用垂直线性布局管理器和DefaultItemAnimator构建一个相对简单的RecyclerView。它只处理添加和删除项目(没有动画更改、交换、移动等) 我的项目将被添加到列表中的特定位置,因为它是按特定顺序排序的,因此列表必须滚动到添加项目的位置,以便向用户显示 还有一个棘手的部分——LinearLayoutManager和DefaultItemAnimator似乎不支持预测动画。目前,由于滚动,所有出现的项目都是动画,而不仅仅是新添加的项目,我想只在新项目上运行一个特定的动画 首

我正在使用垂直线性布局管理器和DefaultItemAnimator构建一个相对简单的RecyclerView。它只处理添加和删除项目(没有动画更改、交换、移动等)

我的项目将被添加到列表中的特定位置,因为它是按特定顺序排序的,因此列表必须滚动到添加项目的位置,以便向用户显示

还有一个棘手的部分——LinearLayoutManager和DefaultItemAnimator似乎不支持预测动画。目前,由于滚动,所有出现的项目都是动画,而不仅仅是新添加的项目,我想只在新项目上运行一个特定的动画

首先,我读过文件,上面说:

想要更好的项目动画体验的布局经理,在哪里 可以根据位置在屏幕上设置项目的动画 当项目不在屏幕上时,它们就存在,然后是LayoutManager 应该从supportsPredictiveItemAnimations()和添加返回true onLayoutChildren的附加逻辑(回收商、州)

这是
RecyclerView.LayoutManager
的文档,因此
LinearLayoutManager
作为一个孩子应该已经有了额外的逻辑(或者没有?)

问题是它的
onlayoutchilds
方法太复杂了,我不确定到底应该修改哪一部分来区分“屏幕显示”和“全新”视图

我也读过,它解决了我的确切问题,但示例使用了FixedGridLayoutManager,而且我发现它太复杂,无法理解和调整整个布局逻辑

我不是在寻找一个现成的复制粘贴解决方案,但我需要了解布局功能的一些线索。我担心写我自己的一个,除了乏味之外,必然会产生更糟糕的结果,因为其中已经有200行代码,是由比我更聪明的人编写的^^

理想情况下,我想添加一些东西,或者做一些小的改变,以避免破坏整个测量、报废、回收和其他复杂的事情

提前感谢,欢迎任何帮助