利用Dialog 在屏幕中央自动居中特性,编写了一个自定义的弹出菜单,发现Dialog 对背景的遮罩太强,背景很暗,作为菜单的背景不太合适,希望背景加亮些(增加透明度,减少遮罩厚度)。问DeepSeek 给出的方案是在Dialog 里套一层Box,然后用.backgroud的颜色控制透明度。
modifier = Modifier.background(Color.Black.copy(alpha = 0.3f)) // 控制透明度
实践发现,这种方法不但没有改变Dialog对背景的缺省遮罩,反而是加了一层遮罩。
最后,还是问Gemimi解决的,也许是它最懂自家的东西。就是调用父窗口的window.setDimAmount 函数,设置窗口的暗淡量。0为无遮罩,1为全遮罩。
Dialog(
onDismissRequest = onDismiss,
properties = DialogProperties(
usePlatformDefaultWidth = false,
//其他设置
)
) {
//关键一行
(LocalView.current.parent as DialogWindowProvider).window.setDimAmount(0.1f)
... ...
}