启动新活动时是否禁用活动幻灯片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