我有一个占据 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/