Общие элементы анимации между фрагментами

Я пытаюсь анимировать 2 простых представления из выбранного элемента в RecyclerView в новый фрагмент. Я рассмотрел множество примеров анимации общих элементов из одного действия в другое, но очень мало примеров анимации общего элемента из одного фрагмента в другой фрагмент в рамках одного и того же действия. Это почти работает.

Вот моя структура.

Деятельность

- Полный экран Fragment1 с RecyclerView

- Полный экран Fragment2 с деталями

Когда пользователь выбирает элемент в RecyclerView в Fragment1, я заменяю Fragment1 на Fragment2, у которого есть View с общими элементами в нем в разных позициях и размерах.

Есть несколько хитростей, чтобы заставить его работать, вы должны убедиться, что ваш transitionName уникален для каждого элемента в вашем списке, и, конечно, это transitionName должно совпадать с transitionName элемента во Fragment2 для воспроизведения анимации. У меня есть эта часть, работающая, когда я выбираю элемент, два общих просмотра анимируются, но не совсем так, как вы ожидаете, когда будете делать это между двумя действиями.

Если я выбираю элемент в нижней части экрана, он рисует вид для фрагмента2 и анимирует 2 общих вида, как если бы они были в элементе в верхней части экрана. Тяжело объяснить. Вот несколько картинок

Fragment1

FRAGMENT2

В обоих фрагментах я устанавливаю следующее

        setSharedElementEnterTransition(new ChangeBounds());
        setSharedElementReturnTransition(new ChangeBounds());
        setAllowEnterTransitionOverlap(true);
        setAllowReturnTransitionOverlap(true);

Также в их родительской активности в onCreate () я установил

        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

Любая идея, почему мои общие элементы анимации начинаются в верхней части моего экрана, даже если они запускались в выбранном элементе в нижней части моего экрана?

Ответы на вопрос(1)

Ваш ответ на вопрос