【问题标题】:Setting style android:windowIsTranslucent seems to conflict with windowAnimationStyle设置样式 android:windowIsTranslucent 似乎与 windowAnimationStyle 冲突
【发布时间】:2016-07-12 11:09:05
【问题描述】:

我的style.xml 有以下风格,这是我在Activity transition effects: slide in for the top activity and scale for the bottom activity 的问题的后续:

<style name="RevealTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@style/ActivityAnimation</item>
</style>

<style name="ActivityAnimation" parent="@android:style/Animation">
    <item name="android:activityOpenEnterAnimation">@anim/animation_in</item>
    <item name="android:activityOpenExitAnimation">@anim/animation_out</item>
    <item name="android:activityCloseEnterAnimation">@anim/animation_back_in</item>
    <item name="android:activityCloseExitAnimation">@anim/animation_back_out</item>
</style>

我发现样式android:windowBackgroundandroid:windowAnimationStyle冲突,并且动画没有完全显示。如果我在 style.xml 中包含上述样式并运行我的应用程序,我会得到以下结果:

如果我在这里注释掉这些行:

<style name="RevealTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@android:color/transparent</item> 
    <!--<item name="android:windowIsTranslucent">true</item> COMMENTED OUT-->
    <item name="android:windowAnimationStyle">@style/ActivityAnimation</item>
</style>

<style name="ActivityAnimation" parent="@android:style/Animation">
    <item name="android:activityOpenEnterAnimation">@anim/animation_in</item>
    <item name="android:activityOpenExitAnimation">@anim/animation_out</item>
    <item name="android:activityCloseEnterAnimation">@anim/animation_back_in</item>
    <item name="android:activityCloseExitAnimation">@anim/animation_back_out</item>
</style>

我不明白为什么会这样。对于我的其他一些动画,我需要 windowIsTranslucent。

这些是我正在使用的 xml 动画类(感谢 Nikolai Doronin):

activity_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0%p"
        android:duration="@integer/activityAnimationTime">
    </translate>
</set>

activity_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:fromXScale="1.0"
        android:toXScale="0.84"
        android:fromYScale="1.0"
        android:toYScale="0.84"
        android:duration="@integer/activityAnimationTime"/>
    <translate
        android:fromYDelta="0%"
        android:fromXDelta="0%"
        android:toYDelta="8%"
        android:toXDelta="16%"
        android:duration="@integer/activityAnimationTime"/>

    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.25"
        android:duration="@integer/activityAnimationTime"/>

</set>

activity_back_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:fromXScale="0.84"
        android:toXScale="1.0"
        android:fromYScale="0.84"
        android:toYScale="1.0"
        android:duration="@integer/activityAnimationTime"/>
    <translate
        android:fromYDelta="8%"
        android:fromXDelta="16%"
        android:toYDelta="0%"
        android:toXDelta="0%"
        android:duration="@integer/activityAnimationTime"/>

    <alpha
        android:fromAlpha="0.25"
        android:toAlpha="1.0"
        android:duration="@integer/activityAnimationTime"/>

</set>

activity_back_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0%p"
        android:toXDelta="100%p"
        android:duration="@integer/activityAnimationTime">
    </translate>
</set>

【问题讨论】:

    标签: android xml android-animation android-theme


    【解决方案1】:

    你可以试试这个,改

    <style name="ActivityAnimation" parent="@android:style/Animation">
    

    <style name="ActivityAnimation" parent="@android:style/Animation.Translucent">
    

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 2017-04-09
      • 1970-01-01
      • 2018-11-30
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      相关资源
      最近更新 更多