【问题标题】:Fade slide animation when using intent for bottom navigation bar使用底部导航栏的意图时淡出幻灯片动画
【发布时间】:2017-12-14 23:40:00
【问题描述】:

我在底部有一个带有图标的导航栏。当我点击一个图标时,一个新的活动会以意图开始。

context.startActivity(intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP));

像这样。 如果我在我的 Android Pixel 模拟器上测试它,当新活动开始时,动画总是从下到上。 如果我在我的物理 android 设备(Android 7.1)上测试它,当新活动开始时,动画总是从右到左。当我关闭一个活动时,动画会立即从左到右。

我总是想要这个幻灯片动画(就像在我的物理设备上一样)。我需要做什么?

我加了

        overridePendingTransition(R.anim.slide_in, R.anim.slide_out);

在活动的onCreate()中,所以活动开始时我有幻灯片,但活动关闭时没有幻灯片动画。

感谢您的帮助

【问题讨论】:

    标签: android xml android-layout animation transition


    【解决方案1】:

    您需要在 anim 文件夹中添加 2 个新的动画文件,并在 Activity 中添加一些您想要随动画关闭的代码,添加对 onBackPressed 方法的更改

    首先是动画文件:left_to_right.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:shareInterpolator="false">
        <translate
            android:duration="500"
            android:fromXDelta="-100%"
            android:fromYDelta="0%"
            android:toXDelta="0%"
            android:toYDelta="0%" />
    </set>
    

    right_to_left.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:shareInterpolator="false">
        <translate
            android:duration="500"
            android:fromXDelta="0%"
            android:fromYDelta="0%"
            android:toXDelta="100%"
            android:toYDelta="0%" />
    </set>
    

    然后在 Activity 中执行以下操作:

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        overridePendingTransition(R.anim.left_to_right, R.anim.right_to_left);
    }
    

    PS 另外请注意,即使您的代码没问题,您的手机也可能会关闭动画

    【讨论】:

    • 感谢这两个 xml 文件,它们正在工作。当我使用设备的后退按钮时,onBackPressed 正在工作。但是当我使用导航栏导航时它不起作用。我也用 onResume 尝试过,但它总是被调用,因此活动总是来自左边。使用 onRestart 效果更好......但谢谢
    • 不要尝试使用 onResume!用 onPause() 试试它应该有助于解决导航栏问题!如果我的代码解决了您的问题,请将答案标记为已接受以关闭此线程
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多