没有animation的切换活动

我如何正确使用AndroidManifest文件中的Intent标志FLAG_ACTIVITY_NO_ANIMATION ? 我认为我的问题是微不足道的,但我找不到很好的例子或解决scheme。

 <intent-filter> <data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" /> </intent-filter> 

然而,compliator没有报告错误,但data不正确。 我只是想在动作切换的情况下禁用animation。 我可以使用getWindow().setWindowAnimations(0); 在onCreate或onResume,而是使用标志是更好的方式,不是吗?

我也可以在代码中使用:

 Intent intent = new Intent(v.getContext(), newactivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); getContext().startActivity(intent); 

但是我想在Android Manifest中使用这个标志。 如果从第二个活动返回到第一个,也禁用animation。

你可以创build一个风格,

  <style name="noAnimTheme" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style> 

并把它作为你在清单中的活动的主题:

  <activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme"> </activity> 

您还可以定义样式来指定自定义的入口和出口animation。 http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation

如果你的上下文是一个活动,你可以调用overridePendingTransition

在startActivity(Intent)的其中一种风格之后立即调用,或者完成指定一个明确的过渡animation来执行下一个。

所以,以编程方式:

 this.startActivity(new Intent(v.getContext(), newactivity.class)); this.overridePendingTransition(0, 0); 

试试这个代码,

 this.startActivity(new Intent(v.getContext(), newactivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)); 

您也可以在所有不想从中转换的活动中执行此操作:

 @Override public void onPause() { super.onPause(); overridePendingTransition(0, 0); } 

我喜欢这种方法,因为你不必混淆你的活动风格。

这不是一个示例使用或解释如何使用FLAG_ACTIVITY_NO_ANIMATION ,但它确实回答了如何禁用Activity切换animation,问题标题问:

Android,如何在开始新的活动时禁用“擦除”效果?