我在努力理解Lollipop中新的Activity Transition框架。Activity Transition很容易使用,有一些基础信息在这里,但是Fragment Transition没有文档,并且我无法让它工作。我尝试了这个用例(在Android中非常常见):
在这种情况下,sharedImage是RecyclerView中的imageView,可能是项布局xml中的android:transitionName="shared_icon"标记不起作用吗?
这是我的主题:
共享元素是FragA和FragB中的一个图像。我没有成功的代码,所以我回退到了下面这个场景:情况1:ActA + FragA -> ActB + FragB
在FragA和ActB上有一个sharedElement。动画不起作用,我只能看到当我在FragA上点击图像时,图像消失了,在动画持续时间后它在ActB中弹出。FragA之外但在ActA内的共享视图(例如Toolbar)正确地进行动画处理。情况2:ActA + FragA -> ActB
在这种情况下,sharedImage是RecyclerView中的imageView,可能是项布局xml中的android:transitionName="shared_icon"标记不起作用吗?
这是我的主题:
<!-- 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>