android dialog设置宽度占满屏幕的可靠方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l460133921/article/details/88172899

项目中需要将Dialog的宽度设置为屏幕宽度,并且在手机底部显示,从网上找了一些方法都不管用,最后自己通过看源码发现实际上只需要如下两步即可完成此功能。

  • 在styles.xml中添加样式:
<style name="FullScreenDialogStyle" parent="android:Theme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>
  • 在构造Dialog时指定样式,并设置一些参数(Kotlin语言)
datePickerDialog = Dialog(context, R.style.FullScreenDialogStyle).apply {
            setCancelable(false)
            requestWindowFeature(Window.FEATURE_NO_TITLE)
            setContentView(R.layout.layout_widget_datepicker)
            setCanceledOnTouchOutside(true)
            //设置dialog在底部显示
            window.setGravity(Gravity.BOTTOM)
            //设置dialog宽度占满屏幕,高度包含内容
            window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
            //因为我的dialog背景图片是圆弧型,不设置背景透明的话圆弧处显示黑色
            window.setBackgroundDrawableResource(android.R.color.transparent)
        }

效果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/l460133921/article/details/88172899