1

我的应用有两个活动,例如 ActivityA 和 ActivityB。我在 xml 文件中为 ActivityB 创建了 Enter/Return 转换。在这些转换中,FloatingActionButton 将从屏幕的右边缘滑入/滑出。当设备方向为纵向时,一切都会正常工作,但当设备方向为横向时,FloatingActionButton 不会滑入。

res/transition-v21/enter.xml:

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:transitionOrdering="together">

<fade>
    <targets>
        <target android:excludeId="@android:id/statusBarBackground" />
        <target android:excludeId="@android:id/navigationBarBackground" />
    </targets>
</fade>
<slide android:slideEdge="right">
    <targets>
        <target android:targetId="@+id/fabFavorite" />
    </targets>
</slide>

res/transition-v21/return.xml

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:transitionOrdering="together">

<fade>
    <targets>
        <target android:excludeId="@android:id/statusBarBackground" />
        <target android:excludeId="@android:id/navigationBarBackground" />
    </targets>
</fade>
<slide android:slideEdge="right">
    <targets>
        <target android:targetId="@+id/fabFavorite" />
    </targets>
</slide>

res/values-v21/styles.xml

<style name="AppTheme.ActivityA" parent="@style/AppTheme">
    <item name="android:windowContentTransitions">true</item>
</style>

<style name="AppTheme.ActivityB" parent="@style/AppTheme">
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowEnterTransition">@transition/enter</item>
    <item name="android:windowReturnTransition">@transition/return</item>
</style>

然后我将这些主题添加到 AndroidManifest 中的相应活动中。

最后在 ActivityA 中为 onClickListener:

ActivityOptionsCompat activityOptions =
                         ActivityOptionsCompat.makeSceneTransitionAnimation(this);
Intent intent = new Intent(this, ActivityB.class);
ActivityCompat.startActivity(this, intent, activityOptions.toBundle());

结果:(设备方向为横向时,FloatingActionButton没有滑动效果)

在此处输入图像描述

4

0 回答 0