2013-04-25 115 views
3

所以我注意到Android之间产生了一个轻微的淡入淡出的活动,我想知道是否有什么办法摆脱它,只是让它“捕捉”到下一个屏幕根本没有动画?Android:删除所有布局动画

我环顾四周,但我找不到任何能真正回答我的问题的东西。我假设它是基于XML的,但是我看到这个人尝试以编程方式在这里: How do I eliminate the delay before an LayoutTransition animation但做他所做的(应用“空白”动画)似乎没有改变任何东西。

请问我的方向是否正确? TA!

回答

3

最优雅的控制是使用风格和主题来实现的。这样,您可以根据每个Application以及每个Activity来控制此值。

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 s此方式。

在你的Manifest.xml:

<application 
     android:theme="@style/MyWhateverTheme" > 

,并改变它特定Activity

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

@Michael我真的很想知道为什么你会选择错误的概念。你听起来很像你想用独特的方式来设计你的应用程序。在每个''Intent'基础上设置一个标志是在冗余/可维护性方面完全破坏的方法。作为一个概念,它根本不符合你的目标。但是,再一次,这里有几十个人正在寻找只是一个解决方案。也许同样的人后来告诉每个人Android是多么的破碎,因为它缺少这个和那个功能。无论如何。现在你知道了。 ;) – 2013-04-25 05:21:33

2

使用FLAG_ACTIVITY_NO_ANIMATION

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

这怎么回答地址OP的要求删除_all_布局动画? – 2013-04-25 05:01:11

+0

如果您将旗帜 – 2013-04-25 05:02:20

+1

与所有旗帜一起玩,看看它们是如何工作的,那么就不会有动画。我很高兴这对你有所帮助。 – 2013-04-25 05:04:03