使用LinearLayoutManager和预测动画的RecyclerView

时间:2016-03-08 13:08:20

标签: android animation android-recyclerview linearlayoutmanager

我正在构建一个相对简单的RecyclerView,使用垂直LinearLayout Manager和DefaultItemAnimator。它只会处理添加和删除项目(没有动画更改,交换,移动等)

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

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

首先,我已阅读文档here,其中说:

  

布局管理器想要更好的项目动画体验,在哪里   可以根据位置在屏幕上和屏幕上设置动画   当项目不在屏幕上时存在,然后是LayoutManager   应该从supportsPredictiveItemAnimations()和添加返回true   onLayoutChildren(Recycler,State)的其他逻辑

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

问题是它的onLayoutChildren方法过于复杂,而且我不确定我应该修改哪个部分以便区分出现在屏幕上的#34;"来自"全新"视图。

我还阅读了this tutorial,它解决了我的确切问题,但该示例使用的是FixedGridLayoutManager,而且我再次发现它太复杂,无法理解和调整整个布局逻辑。

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

理想情况下,我想添加一些东西,或做一些小改动,以免破坏整个测量,报废,回收,以及其中发生的任何其他复杂的事情。

提前致谢,欢迎任何帮助

0 个答案:

没有答案