我有一个使用GridLayoutManager (support lib v7)的RecyclerView。我更新适配器并进行notifyItemMoved操作。如果项的源位置和目标位置都在屏幕上,“移动动画”将被播放。如果该项位于屏幕之外的位置(如位置1000或任何其他远离视口的位置),并移动到视口中,它将用“淡入动画”出现。
似乎无论supportsPredictiveItemAnimations()返回true与否,预测性项动画都不起作用。我做错了什么吗?我需要重写某些方法以启用它吗?
我正在阅读RecyclerView的源代码,并在dispatchLayout方法的javadoc中写道:
持续存在的视图移动(ItemAnimator#animateMove(ViewHolder, int, int, int, int))
移除的视图被删除(ItemAnimator#animateRemove(ViewHolder))
添加的视图被添加(ItemAnimator#animateAdd(ViewHolder))
消失的视图移到屏幕外
出现的视图移到屏幕上
尽管如此,ItemAnimator没有区分已添加和已显示。
是否可能修复预测性动画,或者至少使出现的动画看起来像“从屏幕外移动的动画”,同时保留已添加的动画?
似乎无论supportsPredictiveItemAnimations()返回true与否,预测性项动画都不起作用。我做错了什么吗?我需要重写某些方法以启用它吗?
我正在阅读RecyclerView的源代码,并在dispatchLayout方法的javadoc中写道:
持续存在的视图移动(ItemAnimator#animateMove(ViewHolder, int, int, int, int))
移除的视图被删除(ItemAnimator#animateRemove(ViewHolder))
添加的视图被添加(ItemAnimator#animateAdd(ViewHolder))
消失的视图移到屏幕外
出现的视图移到屏幕上
尽管如此,ItemAnimator没有区分已添加和已显示。
是否可能修复预测性动画,或者至少使出现的动画看起来像“从屏幕外移动的动画”,同时保留已添加的动画?