Как реализовать "Непрерывные переходы общих элементов: 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

Любая помощь будет приветствоваться, заранее спасибо.

0 ответов

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