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
в макете целевого фрагмента, который разрушал переходы и отображение, т.е. отображение не работало.
Есть ли причина для такого поведения, которого мне не хватает в документации?