当Activity设置为透明主题时,按Back键,界面闪烁的解决

2017-10-13  本文已影响125人  zsj1225

bug现象

bug.gif

1、前提条件:
(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" /> 

参考博客:
http://blog.csdn.net/tscyds/article/details/51340463

上一篇下一篇

猜你喜欢

热点阅读