我在撰写桌面中使用DialogWindow,我尝试为对话框应用圆角,但应用不正确。
要生成的代码:
Surface(
modifier = Modifier.fillMaxSize().zIndex(1f),
color = Color.Black.copy(0.7f),
) {
FullScreenDialog(window, onDismissRequest = {}, title = "title", visibility = true) {
Row(
modifier = Modifier.clip(RoundedCornerShape(12.dp))
.background(Red)
.height(64.dp)
) {
androidx.compose.material.Text(
text = "some text",
)
}
}
}
全屏对话框:
DialogWindow(
create = {
ComposeDialog().apply {
this.title = title
isUndecorated = true
isResizable = false
this.isAlwaysOnTop = true
addComponentListener(object : ComponentAdapter() {
override fun componentHidden(e: ComponentEvent?) {
super.componentHidden(e)
onDismissRequest()
}
override fun componentShown(e: ComponentEvent?) {
super.componentShown(e)
pack()
val screenSize = window.size
val x = (screenSize.width - width) / 2
val y = (screenSize.height - height) / 2
setLocation(x, y)
}
})
}
}, dispose = {
}, content = {
content()
}
)
对话框如下所示:
ComposeDialog
有默认背景颜色,你可以在componentShown
中删除它:
override fun componentShown(e: ComponentEvent?) {
super.componentShown(e)
background = java.awt.Color(0, 0, 0, 0)