当Activity设置为透明主题时,按Back键,界面闪烁的解决
2017-10-13 本文已影响125人
zsj1225
bug现象
bug.gif1、前提条件:
(1)设置Activity的主题为透明主题
(2)弹出对话框
2、问题:按Back键时,会闪烁
3、原因分析:
(1)Activity设置成了透明主题,没有了正常的退出动画
(2)Dialog依赖于Activity所在的父窗口,Activity透明不再做退出动画,而Dialog需要做退出动画,造成了闪烁。
4、解决方案:
提升Dialog的窗口层级,设置为系统级别的悬浮窗。
mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
需要加入权限
这个权限在6.0上是特殊权限.可以不加入
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />