Android – 如何在活动更改之间停止animation

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

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); 

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

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

Solutions Collecting From Web of "Android – 如何在活动更改之间停止animation"

你试过overridePendingTransition()吗?

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

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

  

要么

  

并在清单中使用它:

  

我希望它有所帮助

我需要这个,因为我必须创建单击菜单的活动。

我做了以下事情:

我在意图中添加了FLAG_ACTIVITY_NO_ANIMATION标志。 它在第一次创建活动时停止了animation。

然而,当我们再次点击相同的菜单(可能来自不同的活动)时调用的堆栈中的活动,它有animation。

所以我添加了FLAG_ACTIVITY_NO_HISTORY来清除或者在开始新活动时完成活动。 当我再次单击菜单时,这会导致创建一个新活动(没有animation)。

在创建第二个intent之后添加它

  Intent i = new Intent(SecondActivity.this, FirstActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(i); 

当你回到第一个意图时,animation被禁用,虽然为我工作

如果您正在使用FLAG_ACTIVITY_REORDER_TO_FRONT,那么您还可以覆盖onNewIntent以用于以后的startActivity调用。 这只适用于前置状态而不是第一次呼叫。

 @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); overridePendingTransition(R.anim.whatever, R.anim.whatever); } 

当然,您必须在目标活动中实现这一点。