共有要素のトランジション アニメーションに奇妙な問題があります (トランジション ライブラリのバグかもしれません)。ターゲットAndroid version
は5.0
です。
これが私のレイアウトです:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/root_layout">
<RelativeLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</FrameLayout>
<!-- The second content view -->
<FrameLayout
android:id="@+id/content_second"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</FrameLayout>
</RelativeLayout>
</RelativeLayout>
2 つのフラグメント (FragmentA
とFragmentB
) があります。より大きなサイズをFragmentA
持っています。共有要素の遷移が正しく定義され、開いたときに正しくアニメーション化されます。imageViewA
FragmentB
imageViewA
FragmentB
imageViewA
ただし、コンテナ(ルートコンテナ)にFragmentA
追加された場合に備えて機能します。コンテナcontent_frame
に追加FragmentA
すると、アニメーションがまったく機能しません。content_main
content_second
コンテナにいくつかのビューを追加すると、アニメーションが機能しません。- コンテナーを空のままにしておくと、
content_second
アニメーションが機能しません。 - コンテナーを削除しても、
content_second
アニメーションが機能しません。
両方のフラグメントが同じコンテナーに追加されます (を使用FragmentTransaction.replace
)。