美文网首页Android技术知识Android开发
实例化带有主题的对话框出现重叠现象的解决方案

实例化带有主题的对话框出现重叠现象的解决方案

作者: zzEND | 来源:发表于2017-04-06 18:26 被阅读181次

今天再写一个很简单的弹出对话框时,遇到了一个迷之bug:

重叠的对话框

我在代码中实例化了一个对话框:

final DatePickerDialog dialog = new DatePickerDialog(context, theme, listener, int year, int month, int dayOfMonth);

这是Dialog的构造方法之一,其中的theme是对话框的主题,这里我选用的是
theme = android.R.style.Theme_Holo_Light_Dialog;
但是显示出的结果缺很奇怪,看着像两个对话框重叠在了一起。

在网上找了一圈,发现也有人遇到过这个问题,不过并没有给出解决方案。

其实这个bug很好解决。位于底部的白色框只是你实例化的对话框的一个background,并非两个对话框重叠了。除了少数几个theme,大部分dialog的主题都不是全屏的,因此dialog的背景也不会全屏显示。

那我们只需要自己新建一个style,将背景设为透明,问题便迎刃而解。

    <style name="MonthChooseDialog" parent="@android:style/Theme.Holo.Light.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>

最后在构造方法中传入我们自定义的style
theme = R.style.MonthChooseDialog;

相关文章

网友评论

    本文标题:实例化带有主题的对话框出现重叠现象的解决方案

    本文链接:https://www.haomeiwen.com/subject/jbbqattx.html