SharedElementCallback::onMapSharedElements() не влияет на переход при входе

Итак, я возился с Shared Element Transition в Android.

Фрагмент карты навигации для справки:

ListFragment -> MovieFragment -> MovieFragment -> ...

Каждый MovieFragment может запустить другой MovieFragment.

Насколько я понимаю обратный вызов от setEnterSharedElementCallback вызывается для целевого фрагмента (или в данном случае MovieFragment), а затем setExitSharedElementCallbackна предыдущем / исходном фрагменте. Поэтому я предоставляю отображение для представленийMovieFragmentс setEnterSharedElementCallback::onMapSharedElements().

Вышеуказанное работает, пока переходы происходят только между этими двумя фрагментами.

Однако у меня есть случай, когда мне нужен переход при переходе с MovieFragment к MovieFragment (для полной ясности каждый MovieFragment содержит предложения для похожих фильмов, щелкнув по нему, я открываю фильм в новом Fragment). Теперь для этого перехода у меня естьsetExitSharedElementCallback() в MovieFragment, где я отображаю исходный фрагмент-Views с именами переходов.

Это тоже работает правильно, у меня есть переход от MovieFragment_1 к MovieFragment_2.

Обратный переход из MovieFragment_2 к MovieFragment_1 работает хорошо.

Это проблема: возвратный переход изMovieFragment_ к ListFragment не работает.


Дело в том, что я думаю, что функция SharedElement Transition не работает, причина в том, что для облегчения правильного поведения перехода от MovieFragment_1 к MovieFragment_2 и наоборот, я должен setTransitionName(null)о Видах, участвовавших в последнем переходе Если я этого не сделаю, что быViews Я отображаю в setEnterSharedElementsCallback::onMapSharedElements() переход не работает.

Короче, когда есть Views в цели / пункте назначения Fragmentкоторые имеют имя перехода, но не являются частью следующего перехода, переход не происходит. Что побеждает цельonMapSharedElements() целиком.

У меня еще один вопрос, проблема в том, что я настроилandroid:transitionName в макете целевого фрагмента, который разрушал переходы и отображение, т.е. отображение не работало.

Есть ли причина для такого поведения, которого мне не хватает в документации?

0 ответов

Другие вопросы по тегам