您的位置:首页 > 其它

关于dialog设置无标题无背景(去掉背后的灰色框)

2018-01-25 10:45 435 查看
在项目中,我们难免会遇到自定义dialog的情况(与其说难免不如说大部分的时候都需要自定义),然而系统的dialog实在是太难看了,那该怎么办呢?首先我们需要新建一个drawable文件,用来设定展示的dialog的样式,举个简单的例子:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<corners android:radius="5dp"/>
</shape>

设置一个背景为白色,四角为是圆的的样式,然后将其添加到style文件中去:

</style>
<style name="dialog_parent" parent="@android:style/Theme.Dialog">
<!--  设置背景透明-->
<item name="android:windowBackground">@color/transparent</item>
<!--设置是否有边框-->
<item name="android:windowFrame">@null</item>
<!--设置是否有标题栏-->
<item name="android:windowNoTitle">true</item>
<!-- 设置是否有遮盖-->
<item name="android:windowContentOverlay">@null</item>
<!-- 设置是否浮在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--添加我们的drawable文件-->
<item name="android:background">@drawable/dialog_background_parent_moving</item>
</style>

然后下面是重点!!!重点!!如果你直接继承了dialog,然后再xml文件里引用了这个style,你会发现!dialog的后面还是会有灰色的边框!因为我们设置的圆角,dialog的边框四周会显示出来!最好的方法,不是在布局文件里用,而是

public RecordDialog(@NonNull Context context, Long teacher_uid) {
super(context, R.style.dialog_parent);
this.context = context;
this.teacher_uid = teacher_uid;
}

在你继承dialog的时候,再super中加入你的style!!!(真的很坑啊!!!!!!!!)

不喜勿喷,有什么不对的地方欢迎指出来互相学习交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dialog背景