小编Vit*_*viy的帖子

RecyclerView预测项目动画不起作用(出现)

我有一个带有GridLayoutManager的RecyclerView(支持lib v7)。我更新适配器,并使notifyItemMoved。如果项目的源位置在屏幕上并且目标位置也在屏幕上-则播放“移动动画”。如果项目位于屏幕外的位置(位置1000,或远离视口的任何其他位置)并移入视口,它将显示为“淡入动画”。

尽管supportsPredictiveItemAnimations()返回true,但看起来预测项目动画无法正常工作。难道我做错了什么?我应该重写一些方法来启用它吗?

我正在阅读RecyclerView的源代码,并且在dispatchdoc方法的javadoc中的编写方式如下:

  • 永久视图已移动({@link ItemAnimator#animateMove(ViewHolder,int,int,int,int)})
  • 已删除的视图已删除({@link ItemAnimator#animateRemove(ViewHolder)})
  • 添加了添加的视图({@link ItemAnimator#animateAdd(ViewHolder)})
  • 消失的视图移出屏幕
  • 出现的视图在屏幕上移动

但是,ItemAnimator不能区分ADDED和APPEARING。是否可以修复预报动画或至少使APPEARING动画看起来像“从屏幕动画之外移动”,而将添加的动画保持原样?

android gridlayoutmanager android-recyclerview

5
推荐指数
1
解决办法
1944
查看次数