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的折叠视图
我有没有做错什么,或者这是一个MotionLayout错误?我想出了另一个解决方案 为了便于沟通,我将对顶部回收视图使用
rvTop
,对底部回收视图使用rvBottom
与其“缩小”rvTop,不如“隐藏”它
因此,我们需要在它们之间引入一条新的不可见线,并使用MotionLayout向上设置这条不可见线的动画,同时保持rvTop的alpha更改,而不是将rvBottom约束到rvTop的底部
为了做到这一点,我们必须使rvBottom不透明,否则它将与褪色的rvTop重叠
我已经更新了中的代码以演示更改
其效果是:
编辑:
另一种选择是在转换后删除rvTop对父对象顶部的约束
是的,这将使它只需滚动底部;但我们可以添加一点translationY
,使其“滚动速度比rvBottom慢”
这可以处理不能使rvBottom不透明的情况,例如页面本身使用渐变背景
效果如下所示: