当我们在Jetpack Compose中显示Dialog/AlertDialog时,背景似乎有点暗,有没有办法调整背景alpha或使其透明?例如:显示对话框时,此图像中的白色背景将变为深灰色。
Dialog
AlertDialog
bejyjqdl1#
你可以使用一个全屏对话框,然后插入一张卡片,里面有你想要的文本。例如:
AlertDialog( modifier = Modifier.fillMaxSize(), backgroundColor = Color.White.copy(alpha = 0.2f), properties = DialogProperties(usePlatformDefaultWidth = false),
您可以在文本部分添加您的Card Composable:
text = { Card(Modifier.size(200.dp)) { Text(text = "test") } }
希望这有帮助!
s8vozzvw2#
此行为由android.view.Window控制。它位于Dialog的深处,我能想到的唯一改变它的方法就是复制所有的源代码。然后,在源代码的这一行中,您可以插入以下内容:
android.view.Window
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
41ik7eoe3#
我尝试使用Dialog,但无法清除标志WindowManager.LayoutParams.FLAG_DIM_BEHIND。你可以尝试使用弹出窗口来取代对话框,一切工作对我来说很好。
Popup( onDismissRequest = {}, properties = PopupProperties( focusable = true, dismissOnBackPress = false, dismissOnClickOutside = false, excludeFromSystemGesture = true, ) ) { Box( contentAlignment = Alignment.Center, modifier = Modifier .fillMaxSize() .background(Color.Transparent) ) { // Your content code is here } }
62o28rlo4#
你可以像这样轻松地做到这一点:
Dialog(onDismissRequest = {}) { (LocalView.current.parent as DialogWindowProvider)?.window?.setDimAmount(0f) // dialog content here... }
4条答案
按热度按时间bejyjqdl1#
你可以使用一个全屏对话框,然后插入一张卡片,里面有你想要的文本。例如:
您可以在文本部分添加您的Card Composable:
希望这有帮助!
s8vozzvw2#
此行为由
android.view.Window
控制。它位于
Dialog
的深处,我能想到的唯一改变它的方法就是复制所有的源代码。然后,在源代码的这一行中,您可以插入以下内容:
41ik7eoe3#
我尝试使用Dialog,但无法清除标志WindowManager.LayoutParams.FLAG_DIM_BEHIND。
你可以尝试使用弹出窗口来取代对话框,一切工作对我来说很好。
62o28rlo4#
你可以像这样轻松地做到这一点: