- 給dialog設(shè)置下面的樣式,核心就是將
android:windowIsFloating
設(shè)置為false酌畜。
<style name="MyDialog" parent="Theme.AppCompat.Dialog">
<!-- 根據(jù)需求設(shè)置軟鍵盤模式-->
<item name="android:windowSoftInputMode">adjustResize</item>
<!--windowIsFloating為false時(shí),WindowInsets以及沉浸式生效-->
<item name="android:windowIsFloating">false</item>
<!--當(dāng)windowIsFloating為false時(shí)必須設(shè)置下面兩個屬性,否則崩潰-->
<item name="android:windowActionBar">true</item>
<item name="windowActionBar">true</item>
<!--當(dāng)windowIsFloating為false時(shí)怎囚,設(shè)置該屬性也可以-->
<item name="windowNoTitle">true</item>
</style>
- 在dialog的
onCreate
方法中調(diào)用supportActionBar?.hide()
隱藏actionBar - 通過上面兩步后,就可按照activity中修改window的方式去修改dialog的window(如何在activity中開啟沉浸式桥胞,透明狀態(tài)欄恳守,設(shè)置軟鍵盤等需求可以查閱相關(guān)資料,本章解決解決的是這些方法在dialog不生效的問題)
另外:
<item name="android:windowIsFloating">false</item>屬性導(dǎo)致window的寬高變?yōu)閙atch