没有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,如何在开始新的活动时禁用“擦除”效果?