android - 如何以编程方式使自定义对话框成为屏幕高度的 100%?

标签 android kotlin dialog

我有一个占据 100% 屏幕的相对布局。我调用了许多自定义对话框并且总是运行良好。我可以毫无问题地获得定位和正确的高度和宽度。

但是,现在我需要一个 100% 屏幕高度和 100% 屏幕宽度的对话框。我得到 100% 的宽度,但没有得到 100% 的高度。最大值约为 95 的高度。

为了更清晰,我已将我的代码减少到最少:

  var lay = RelativeLayout(this)
  var dial = Dialog(cx)   
  val win = dial.window
  val wlp = win.attributes
  win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
  wlp.apply {
    gravity = Gravity.TOP or Gravity.LEFT
    x = 0
    y = 0
  }
  win.attributes = wlp

 // Here are my widgets linked to lay with lay.addView(widget).       

  dial.setContentView(   // Connection between layout and dialog
    lay, ViewGroup.LayoutParams(
     screen_width,       // variable with screen width in pixels
     screen_height ))      // variable with screen heigth in pixels

我在 Stackoverflow 中阅读了很多问题。我尝试过的:

a) 我使用 MATCH_PARENT 作为高度。

b) 我尝试了一些 Windows 标志:

 win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)   
 win.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN)   

c) 我试过 windows 属性属性:

 wlp.verticalMargin = 0F 

没有成功。

PS:我在对话框的右侧和底部也有一个奇怪的阴影边框,我无法摆脱它。

更新:

Rahul Khurana解决方案解决了问题。

它只是使用

val dial = Dialog(cx,android.R.style.Theme_Black_NoTitleBar_Fullscreen)   

它还消除了其他非全屏对话框中的阴影

  val dial = Dialog(cx,
    android.R.style.Theme_DeviceDefault_Dialog_NoActionBar)

最佳答案

像这样更改构造函数:

val dialog=Dialog(this,android.R.style.Theme_Black_NoTitleBar_Fullscreen);

关于android - 如何以编程方式使自定义对话框成为屏幕高度的 100%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57985363/

相关文章:

每天来自后端的 Android AutoSync 数据

Android Material Chip 主题覆盖

android - 如何关闭对话框主题 Activity

vb.net - 在 VB.NET 表单之间传递数据

java - 进度对话框阻塞

android - 从网址下载图片

java - 当我从我的 android 应用程序请求 http 页面时,移动关键字被添加到 url

android - 如何在 Android 中压缩两个 Observables?

android - 如何防止 Jetpack Compose ExposedDropdownMenuBox 在滚动时显示菜单

泛型需要字符串找到 kotlin.String