說實話,dialogfragment 其實沒有什么講的,使用方式都差不多,主題設置和activity差不多。主要有幾個屬性。
是否全屏。
全屏后背景是否變暗。
是否保留標題欄。
是否保留邊框。
<!--自定義dialog背景全透明無邊框theme -->
<style name="Dialog_Msg" parent="android:style/Theme.Dialog">
<!--背景顏色及和透明程度-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--是否去除標題 -->
<item name="android:windowNoTitle">true</item>
<!--是否去除邊框-->
<item name="android:windowFrame">@null</item>
<!--是否浮現(xiàn)在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否模糊-->
<item name="android:backgroundDimEnabled">false</item>
</style>
android:backgroundDimEnabled 這個屬性設置true后,背景就全透明了。
大概這么設置:
image.png
image.png
然后,重點來了,狀態(tài)欄 可能和你需要的不一樣。這個和主題有關,dialogfragment 可以看做fragment,那么 activity 的主題是可以用在這個上面的。
如果你的dialogfragment 需要和activity的主題一樣,只需要 parent 你應用的主題就好了。
還有一個,當我的dialogfragment 的主題parent為Theme.AppCompat.Dialog 的時候,我顯示出來的dialog的狀態(tài)欄為純黑色。設置為android:style/Theme.Dialog 狀態(tài)欄為黑底白字。
因為我的主題的白底黑字和dialogfragment 的顯示需求一樣,我就直接 parent的是activity的主題。
個人理解,狀態(tài)欄變黑是因為主題設置中沒有設置狀態(tài)欄字體顏色和底色吧。
如果有錯誤歡迎指正,謝謝了。