У меня есть фрагмент с MotionLayout
(1). Один из дочерних макетов можно развернуть, проведя по нему вниз (настраиваемая панель инструментов). Этот дочерний макет содержит RecyclerView
с другим MotionLayout
(2) внутри каждого элемента.
TransitionListener
подключен к (1).
Когда MotionLayout
(1) обнаруживает переход смахивания (с TransitionListener
), он должен распространить свой progress
на MotionLayout (2) видимого в данный момент элемента RecyclerView
, чтобы синхронизировалась анимация развернутой панели инструментов и анимация видимого элемента RecyclerView
.
Проблема в том, что хотя элемент RecyclerView
получает значение progress
, отправленное вручную методом TransitionListener.onTransitionChange
, анимация элемента RecyclerView
фиксируется в одном из начальных / конечных состояний, и анимация не видна.
За пределами RecyclerView
настраиваемой панели инструментов смахивание вниз отправляет прогресс в MotionLayout
(2), и изменение состояния и анимация происходят нормально.
MotionScene
добавляется программно к MotionLayout
каждого RecyclerView
элемента, потому что данные являются динамическими и не могут быть описаны только в motion_scene.xml
MotionLayout (2). (Я использовал https://medium.com/androiddevelopers/working-with-dynamic-data-in-motionlayout-9dbbcfe5ff75 для программного добавления переходов и состояний MotionScene).
Как получить MotionLayout
(1), который передает прогресс в RecyclerView
элемент «MotionLayout» (2)?