Android:删除所有布局动画

3
所以我注意到Android在活动之间产生了轻微的淡入淡出效果,这真的让我很困扰,我想知道是否有任何方法可以摆脱它,并只是“捕捉”到下一个屏幕而不做任何动画?
我找了一圈,但我找不到任何真正回答我的问题的东西。我原以为它会基于XML,但我看到这个家伙试图在这里进行编程: How do I eliminate the delay before an LayoutTransition animation 但做他所做的事情(应用一个“空白”动画)似乎没有改变任何东西。
有什么东西可以指点我方向吗?谢谢!
2个回答

3
最优雅的控制方式是使用样式和主题。这样,您可以在每个应用程序活动的基础上进行控制。
styles.xml(WhateverTheme是您隐式或显式选择的Android主题):
<resources
    xmlns:android="http://schemas.android.com/apk/res/android" >

    <style
        name="MyWhateverTheme"
        parent="@android:style/WhateverTheme">
        <item name="android:windowAnimationStyle">@style/MyActivityAnim</item>
    </style>

    <style
        name="MyActivityAnim">
        <item name="android:windowEnterAnimation">@null</item>
        <item name="android:windowExitAnimation">@null</item>
    </style>
</resources>

当然,您也可以使用这种方式指定自定义的@animation
在您的Manifest.xml文件中:
    <application
        android:theme="@style/MyWhateverTheme" >

并且要为特定的 Activity 更改它:

        <activity
            android:theme="@style/SomeOtherTheme" >

1
@Michael,我真的很想知道为什么你会选择错误的概念。你听起来绝对想以独特的方式“风格化”你的应用程序。基于每个“Intent”设置标志是一种完全错误的方法,从冗余性/可维护性的角度来看,这个概念根本不符合你的目标。但再说一遍,这里有数十个人正在寻找任何解决方案。可能是那些后来告诉所有人Android缺少这个功能和那个功能的人。无论如何,现在你知道了。;) - class stacker

2

使用FLAG_ACTIVITY_NO_ANIMATION


Intent i = new Intent(this, nextActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(i);

这个回答如何解决原帖作者删除所有布局动画的要求? - class stacker
如果您应用了标志,动画将不会出现。 - Hoan Nguyen
1
我会尝试使用所有的标志来看看它们是如何工作的。我很高兴这对你有帮助。 - Hoan Nguyen
@Michael,我原以为你在寻找一种方法来消除应用程序中所有动画。看来我浪费了时间。 - class stacker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接