启动新活动时是否禁用活动幻灯片animation?
我有一个活动,通过点击button启动另一项活动。 默认情况下,在较新的操作系统版本的Android上,操作系统将为从右向左滑动的新活动设置animation。
有没有办法禁用这个animation? 我只是希望新的活动没有任何forms的animation。
FLAG_ACTIVITY_NO_ANIMATION
标志适用于启动活动时禁用animation。
要禁用在Activity上调用finish()
时触发的类似animation,即animation从右向左滑动,可以在调用finish()
之后调用overridePendingTransition(0, 0)
finish()
并且将排除下一个animation。
如果您在调用startActivity(...)
后调用overridePendingTransition(0, 0)
这也适用于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>
瞧! 很好很容易..
ps请原作者信用..
只需在启动时指定Intent.FLAG_ACTIVITY_NO_ANIMATION
标志
应用
startActivity(new Intent(FirstActivity.this,SecondActivity.class));
然后
overridePendingTransition(0, 0);
这将停止animation。
在我看来,最好的答案是使用"overridePendingTransition(0, 0);"
避免看到animation,当你想要一个Activity
Intent
使用:
this.startActivity(new Intent(v.getContext(), newactivity.class)); this.overridePendingTransition(0, 0);
并且当你在新活动中按下Override onPause
方法时看不到animation
@Override protected void onPause() { super.onPause(); overridePendingTransition(0, 0); }
这禁用完成活动animation时适用于我。
@Override protected void onPause() { super.onPause(); overridePendingTransition(0, 0); }
我在4.4.2上,并且在启动活动的onCreate()中调用overridePendingTransition(0,0 )将禁用启动animation (在startActivity()不工作后立即调用overridePendingTransition(0,0))。 正如在另一个答案中指出的,在finish()之后调用overridePendingTransition(0,0)将禁用closuresanimation。
顺便说一句,我发现设置样式“android:windowAnimationStyle”> @ null(这里提到的另一个答案)导致崩溃时,我的启动活动试图设置操作栏标题。 进一步debugging,我发现,这会导致window.hasFeature(Window.FEATURE_ACTION_BAR)在Activity的initActionBar()中失败。
FLAG_ACTIVITY_NO_ANIMATION可能会起作用,但在与FLAG_ACTIVITY_CLEAR_TASK和FLAG_ACTIVITY_NEW_TASK结合使用时,对我来说没有任何作用。 我显然看到animation创build一个新的任务与新的活动堆栈,因为我横向导航到我的其他顶级视图。
这里有什么工作叫“overridePendingTransition(0,0);” 在我的startActivity()调用或onPause()之后立即执行。 这两种方法都可以工作,但是在startActivity()之后这样做会让我更好地控制何时需要animation以及何时不需要animation。
我有一个类似的问题,就是在使用overridependingtransition从一个活动转移到另一个活动时出现黑屏。 我遵循下面的方式,它的工作
1)在anim文件夹中创build一个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);
第一个参数是我的原始animation,第二个参数是退出animation作为我的虚拟animation