1、前提条件:
(1)设置
Activity的主题为透明主题
(2)弹出对话框
2、问题:按
Home键时,Dialog会闪烁,不是自然的退出动画
3、原因分析:
(1)
Activity设置成了透明主题,没有了正常的退出动画
(2)Dialog依赖于Activity所在的父窗口,Activity透明不再做退出动画,而Dialog需要做退出动画,造成了闪烁。
4、解决方案
(1)业务需求无法取消
Activity的透明主题(
android:windowIsTranslucent
),导致该问题无法直接解决
(2)只能进行规避,比如提升Dialog的窗口层级,设置为系统级别的悬浮窗。
mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
5、透明主题
<style name="AppBaseTheme" parent="Theme.AppCompat.color">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowAnimationStyle">@style/Animation.Activity.Translucent.Style</item>
</style>