Android MotionLayout折叠RecyclerView标题,但不展开

Android MotionLayout折叠RecyclerView标题,但不展开,android,android-recyclerview,android-motionlayout,Android,Android Recyclerview,Android Motionlayout,我创建了一个可以重现这个问题的模型 预期结果 当我向上滚动底部的RecyclerView时,顶部的RecyclerView将折叠 当我向下滚动底部的RecyclerView时,顶部的RecyclerView将展开 观察结果 向下滚动底部的RecyclerView时,顶部的RecyclerView不会展开 补充资料 当顶部的RecyclerView在一半处塌陷时,尝试按住刷卡,然后向下刷卡。你可以看到一半的顶端项目被削减 这仅适用于正在/包括RecyclerView的折叠视图 GIF

我创建了一个可以重现这个问题的模型

预期结果
  • 当我向上滚动底部的RecyclerView时,顶部的RecyclerView将折叠
  • 当我向下滚动底部的RecyclerView时,顶部的RecyclerView将展开
观察结果
  • 向下滚动底部的RecyclerView时,顶部的RecyclerView不会展开
补充资料
  • 当顶部的RecyclerView在一半处塌陷时,尝试按住刷卡,然后向下刷卡。你可以看到一半的顶端项目被削减
  • 这仅适用于正在/包括RecyclerView的折叠视图
GIF (忽略颜色的变化-这只是压缩GIF的结果)

问题:
我有没有做错什么,或者这是一个MotionLayout错误?

我想出了另一个解决方案

为了便于沟通,我将对顶部回收视图使用
rvTop
,对底部回收视图使用
rvBottom

与其“缩小”rvTop,不如“隐藏”它

因此,我们需要在它们之间引入一条新的不可见线,并使用MotionLayout向上设置这条不可见线的动画,同时保持rvTop的alpha更改,而不是将rvBottom约束到rvTop的底部

为了做到这一点,我们必须使rvBottom不透明,否则它将与褪色的rvTop重叠

我已经更新了中的代码以演示更改

其效果是:

编辑: 另一种选择是在转换后删除rvTop对父对象顶部的约束

是的,这将使它只需滚动底部;但我们可以添加一点
translationY
,使其“滚动速度比rvBottom慢”

这可以处理不能使rvBottom不透明的情况,例如页面本身使用渐变背景

效果如下所示: