dialog沉浸式,透明状态栏,软键盘

  1. 给dialog设置下面的样式,核心就是将android:windowIsFloating设置为false。
<style name="MyDialog" parent="Theme.AppCompat.Dialog">
        <!-- 根据需求设置软键盘模式-->
        <item name="android:windowSoftInputMode">adjustResize</item>
        <!--windowIsFloating为false时,WindowInsets以及沉浸式生效-->
        <item name="android:windowIsFloating">false</item>
        <!--当windowIsFloating为false时必须设置下面两个属性,否则崩溃-->
        <item name="android:windowActionBar">true</item>
        <item name="windowActionBar">true</item>
      
        <!--当windowIsFloating为false时,设置该属性也可以-->
        <item name="windowNoTitle">true</item>

    </style>
  1. 在dialog的onCreate方法中调用supportActionBar?.hide()隐藏actionBar
  2. 通过上面两步后,就可按照activity中修改window的方式去修改dialog的window(如何在activity中开启沉浸式,透明状态栏,设置软键盘等需求可以查阅相关资料,本章解决解决的是这些方法在dialog不生效的问题)

另外:
<item name="android:windowIsFloating">false</item>属性导致window的宽高变为match

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容