我有一个活动,通过点击按钮启动另一个活动.默认情况下,在较新的操作系统版本的android上,操作系统会为从右到左滑动的新活动设置动画.
有没有办法禁用这个动画?我只是想让新活动在没有任何动画的情况下出现.
Mat*_*ias 185
该FLAG_ACTIVITY_NO_ANIMATION
标志适用于在启动活动时禁用动画.
要禁用在调用finish()
Activity 时触发的类似动画,即动画从右向左滑动,您可以在调用overridePendingTransition(0, 0)
后调用finish()
并排除下一个动画.
如果你在打电话overridePendingTransition(0, 0)
后打电话,这也适用于动画中startActivity(...)
.
Ewo*_*oks 165
恕我直言这个答案在这里以最优雅的方式解决问题..
开发者应该创建一种风格,
<style name="noAnimTheme" parent="android:Theme">
<item name="android:windowAnimationStyle">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后在清单中将其设置为活动或整个应用程序的主题.
<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
</activity>
Run Code Online (Sandbox Code Playgroud)
瞧!好,易于..
ps信用原作者请..
Sid*_*yas 31
应用
startActivity(new Intent(FirstActivity.this,SecondActivity.class));
Run Code Online (Sandbox Code Playgroud)
然后
overridePendingTransition(0, 0);
Run Code Online (Sandbox Code Playgroud)
这将停止动画.
小智 19
在我看来,最好的答案是使用 "overridePendingTransition(0, 0);"
以避免看到动画,当你想Intent
给一个Activity
使用:
this.startActivity(new Intent(v.getContext(), newactivity.class));
this.overridePendingTransition(0, 0);
Run Code Online (Sandbox Code Playgroud)
当你按下后退按钮覆盖onPause
方法时,看不到动画newactivity
@Override
protected void onPause() {
super.onPause();
overridePendingTransition(0, 0);
}
Run Code Online (Sandbox Code Playgroud)
cmc*_*nce 13
这在禁用完成活动动画时适用于我.
@Override
protected void onPause() {
super.onPause();
overridePendingTransition(0, 0);
}
Run Code Online (Sandbox Code Playgroud)
我在4.4.2,并且在启动活动的onCreate()中调用overridePendingTransition(0,0 )将禁用启动动画(在startActivity()不起作用后立即调用overridePendingTransition(0,0)).如另一个答案所述,在finish()之后调用overridePendingTransition(0,0)会禁用关闭动画.
顺便说一句,我发现在我的启动活动尝试设置操作栏标题时,使用"android:windowAnimationStyle"> @ null(这里提到的另一个答案)设置样式会导致崩溃.进一步调试,我发现这会导致window.hasFeature(Window.FEATURE_ACTION_BAR)在Activity的initActionBar()中失败.
FLAG_ACTIVITY_NO_ANIMATION可能有效,但在与FLAG_ACTIVITY_CLEAR_TASK和FLAG_ACTIVITY_NEW_TASK结合使用时,并没有为我做好准备.我显然正在看动画创建一个带有新活动堆栈的新任务,因为我横向导航到我的其他顶级视图.
这里的工作是调用"overridePendingTransition(0,0);" 在我的startActivity()调用或onPause()之后立即执行.两种方式都有效,但是在startActivity()之后执行它可以让我更多地控制我何时想要动画以及什么时候不需要动画.
归档时间: |
|
查看次数: |
93917 次 |
最近记录: |