8

Activity Transitionの新しいフレームワークについて頭を悩ませようとしていLollipopます。Activity Transition は非常に簡単に機能し、いくつかの基本的な情報がここにありますが、Fragment Transition文書化されておらず、機能させることができません。私はこのユースケースを試しました(Androidでは非常に一般的です):

ケース 1: ActA+FragA -> ActB+FragB

sharedElementはとの画像です。動作するコードが思いつかなかったので、一歩下がって試してみましたFragAFragB

ケース 2: ActA+FragA -> ActB

と のsharedElementを使用FragAActBます。アニメーションが機能しません。FragA の画像をクリックすると、画像が消え、アニメーションの持続時間の後に ActB にポップアップすることしかわかりません。FragA の外側で ActA の内側にある共有ビュー (Toolbarたとえば) は、正しくアニメーション化されます。

この場合、sharedImage は RecyclerView の imageView ですandroid:transitionName="shared_icon"。アイテムのレイアウト xml の xml タグが機能しない可能性がありますか?

これは私のテーマです:

 <!-- Window Transactions -->
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:fragmentAllowEnterTransitionOverlap">@bool/true_bool</item>
    <item name="android:fragmentAllowReturnTransitionOverlap">@bool/true_bool</item>

    <item name="android:windowEnterTransition">@transition/window_transition.xml</item>
    <item name="android:windowExitTransition">@transition/window_transition.xml</item>
    <item name="android:fragmentEnterTransition">@transition/window_transition.xml</item>
    <item name="android:fragmentReturnTransition">@transition/window_transition.xml</item>
    <item name="android:fragmentReenterTransition">@transition/window_transition.xml</item>

    <!-- Shared Element Transactions -->
    <item name="android:windowSharedElementEnterTransition">@transition/shared_elements_transform.xml</item>
    <item name="android:windowSharedElementExitTransition">@transition/shared_elements_transform.xml</item>

    <item name="android:fragmentSharedElementEnterTransition">@transition/shared_elements_transform.xml</item>
    <item name="android:fragmentSharedElementReturnTransition">@transition/shared_elements_transform.xml</item>

window_transition.xml:

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="together"
android:duration="@integer/act_transition_duration">
<changeBounds  />
<changeTransform />
<changeClipBounds />
<changeImageTransform />
</transitionSet>

shared_element_transition.xml:

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="together"
android:duration="@integer/act_transition_duration">
<changeImageTransform />
<changeBounds />
</transitionSet>
4

1 に答える 1