【发布时间】:2021-04-01 07:44:38
【问题描述】:
我有带有MotionLayout (1) 的片段。通过向下滑动(自定义工具栏)可以扩展其中一个子布局。此子布局包含RecyclerView,每个项目内还有另一个MotionLayout (2)。
TransitionListener 连接到 (1)。
当MotionLayout (1) 检测到滑动过渡(使用TransitionListener)时,它应该将其progress 传播到当前可见的RecyclerView 项目的MotionLayout (2) 以便自定义工具栏的动画展开和动画可见的RecyclerView 项目已同步。
问题是尽管RecyclerView item 接收到progress 手动发送的TransitionListener.onTransitionChange 方法的值,RecyclerView item 动画被冻结到开始/结束状态之一,并且没有动画可见。
在RecyclerView 外自定义工具栏向下滑动发送进度到MotionLayout (2) 并且状态改变和动画正常发生。
MotionScene 以编程方式添加到每个RecyclerView 项目的MotionLayout,因为数据是动态的,不能单独在MotionLayout (2) 的motion_scene.xml 中描述。 (我使用https://medium.com/androiddevelopers/working-with-dynamic-data-in-motionlayout-9dbbcfe5ff75 方法以编程方式添加 MotionScene 过渡和状态)。
我如何让MotionLayout (1) 将进度传播到RecyclerView 项目的“MotionLayout”(2)?
【问题讨论】:
标签: android android-recyclerview android-motionlayout