Answers:
FLAG_ACTIVITY_NO_ANIMATION启动活动时,该标志可以很好地禁用动画。
要禁用在调用finish()“活动” 时触发的类似动画,即动画从右向左滑动,您可以在调用overridePendingTransition(0, 0)后调用finish(),下一个动画将被排除。
如果在调用overridePendingTransition(0, 0)后再调用,这也可以在动画中使用startActivity(...)。
恕我直言,这个答案在这里以最优雅的方式解决了问题。
开发人员应创建样式,
<style name="noAnimTheme" parent="android:Theme">
<item name="android:windowAnimationStyle">@null</item>
</style>
然后在清单中将其设置为活动或整个应用程序的主题。
<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
</activity>
瞧!好,易于..
ps致谢原始作者。
应用
startActivity(new Intent(FirstActivity.this,SecondActivity.class));
然后
overridePendingTransition(0, 0);
这将停止动画。
我认为最好的答案是使用 "overridePendingTransition(0, 0);"
以避免看到动画,当你想Intent给一个Activity使用:
this.startActivity(new Intent(v.getContext(), newactivity.class));
this.overridePendingTransition(0, 0);
并在您按下向后按钮Override onPause方法时看不到动画newactivity
@Override
protected void onPause() {
super.onPause();
overridePendingTransition(0, 0);
}
Intent.FLAG_ACTIVITY_NO_ANIMATION在启动时只需指定标志
我在4.4.2上,在启动活动的onCreate()中调用overridePendingTransition(0,0 )将禁用启动动画(在startActivity()无效后立即调用overridePendingTransition(0,0))。如另一个答案所述,在finish()之后调用overridePendingTransition(0,0)会禁用结束动画。
顺便说一句,我发现在启动活动尝试设置操作栏标题时,将样式设置为“ android:windowAnimationStyle”> @ null(此处提到了另一个答案)会导致崩溃。进一步调试后,我发现以某种方式这会导致Activity的initActionBar()中的window.hasFeature(Window.FEATURE_ACTION_BAR)失败。
我有一个类似的问题,在使用一种活动从另一活动向另一活动的滑动过渡中出现黑屏 overridependingtransition。我按照下面的方式工作
1)noanim.xml在动画文件夹中创建一个
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
并使用
overridePendingTransition(R.drawable.lefttorightanim, R.anim.noanim);
第一个参数是我的原始动画,第二个参数是退出动画,作为我的虚拟动画
为了避免启动堆栈中已有的活动时出现黑色背景,我添加
overridePendingTransition(0,0)了onStart():
@Override
protected void onStart() {
overridePendingTransition(0,0);
super.onStart();
}
FLAG_ACTIVITY_NO_ANIMATION和overridePendingTransition均为API Level 5+。