1. 程式人生 > >關於dialog設定無標題無背景(去掉背後的灰色框)

關於dialog設定無標題無背景(去掉背後的灰色框)

在專案中,我們難免會遇到自定義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!!!(真的很坑啊!!!!!!!!)

不喜勿噴,有什麼不對的地方歡迎指出來互相學習交流