解決windowIsTranslucent與windowAnimationStyle的衝突
阿新 • • 發佈:2019-02-06
當設定主題windowIsTranslucent=true時,會導致windowAnimationStyle設定的Activity切換動畫失效。網上比較普遍的解決辦法是繼承Animation.Translucent,但這種辦法始終無法同時實現OpenEnter、OpenExit、CloseEnter、CloseExit這四種效果。這裡我提供一種簡單的解決辦法:
把AppTheme應用在AndroidManifest.xml中的每個activity裡面,問題解決。
AndroidManifest檔案
<activity android:name="com.lwl.demo.activity.FirstActivity" android:theme="@style/AppTheme" /> <activity android:name="com.lwl.demo.activity.SecondActivity" android:theme="@style/AppTheme" /> <activity android:name="com.lwl.demo.activity.ThirdActivity" android:theme="@style/AppTheme" />
styles檔案
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@style/anim_activity_base</item> </style> <style name="anim_activity_base" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/slide_in_left</item> <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item> <item name="android:activityCloseEnterAnimation">@anim/slide_in_right</item> <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item> </style>