Android - 如何在活动更改之间停止动画

Kev*_*inM 25 animation flags android android-intent

我的应用程序中有多个不同的Activity,在活动之间切换时我不想要任何过渡动画.以下是我如何在活动之间切换:

Intent i = new Intent(FirstActivity.this, SecondActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            startActivity(i);
Run Code Online (Sandbox Code Playgroud)

这在我第一次开始新活动时效果很好.没有动画,但是当我回到已经启动的Activity时,似乎忽略了"Intent.FLAG_ACTIVITY_NO_ANIMATION"并且发生了默认动画.

我似乎无法弄清楚为什么会这样.

Com*_*are 43

你试过overridePendingTransition()吗?

  • 不,我没有尝试'overridePendingTransition(0,0)'.我在每个活动onResume()和onPause()中使用了它.它工作得很完美.谢谢!!! (6认同)

tha*_*h84 16

您可以按代码设置FLAG_ACTIVITY_REORDER_TO_FRONT,并在清单中设置FLAG_ACTIVITY_NO_ANIMATION,如下所示:

在res/values/styles.xml中创建noAnimTheme

<style name="noAnimTheme" parent="android:Theme">
   <item name="android:windowAnimationStyle">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

要么

<style name="noAnimTheme" parent="android:Theme.NoTitleBar">
   <item name="android:windowAnimationStyle">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

并在清单中使用它:

<activity android:name="SecondActivity" android:theme="@style/noAnimTheme"/>
Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助