使用Transition API时,为什么RecyclerView项目会立即消失?

时间:2018-03-23 15:43:29

标签: android android-recyclerview android-transitions

这是关于使用Android Transition API的问题。

我正在尝试动画列表的高度变化,就像下拉菜单一样。

我尝试了两种方法

  1. 使用RecyclerView并设置其高度变化动画
  2. 使用ScrollView> LinearLayout层次结构和动画ScrollView的高度。
  3. 第二种方法非常有效 但是第一种方法有一个严重的故障 - 当崩溃过渡开始时,物品会立即消失。

    通过查看以下GIF,您可以清楚地看到差异:

    enter image description here

    确切地说,物品'我改变RecyclerView的LayoutParams时的可见性变化,无需等待转换完成,无论它正在扩展还是折叠

    代码

    我创建了一个minimal project on Github 如果您只想查看代码,请参阅MainActivity

    问题

    1. 是否可以使用ScrollView获得RecyclerView效果?
    2. 如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

我的想法是单独转换所有回收者视图行而不是整个RecyclerView:

因此,当折叠迭代RecyclerView的每个ROW并进行转换时。请务必检查null,如果某些行被回收,则可能会返回null。所以在那之后崩溃整个recyclerView。

对于扩展而言,同样明智的做法也是如此。

这个问题是由于RecyclerView有很多视图,但Scroll View只有一个View嵌套在其中。