Как реализовать "Непрерывные переходы общих элементов: RecyclerView в ViewPager"?
Я пытаюсь адаптироваться к своему приложению Continuous Shared Element Transitions: RecyclerView to ViewPager.
В этом примере структура выглядит следующим образом:
MainActivity --> GridFragment --> PagerFragment --> ImageFragment
|<-------Transition Animation ------>|
В случае иерархии представлений для MainActivity:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image_pager_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Как видите, структура очень проста: действие сначала раздувает GridFragment в контейнере, а затем при щелчке по элементу GridFragment заменяется в том же контейнере на PagerFragment.
Так что, конечно, все работает так, как ожидалось:Исходный образец видеозаписи
В моем случае структура следующая:
MainActivityPager --> Fragment1
--> GridFragment --> PagerFragment --> ImageFragment
|<-------- Transition Animation ------->|
--> Fragment3
Моя иерархия представлений в MainActivityPager:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:id="@+id/image_pager_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
Здесь MainActivityPager раздувает 3 фрагмента, затем GridFragment раздувает в pager_container PagerFragment. В этой конфигурации анимация больше не работает:измененный образец захвата видео
onMapSharedElements никогда не вызывается!
Я потратил много времени, пытаясь обойти проблему, но безуспешно.
Я помещаю здесь zip образца, просто прокомментируйте в MainActivity, чтобы перейти от оригинала к измененному: GridToPagerSample
Любая помощь будет приветствоваться, заранее спасибо.