属性
@Composable
fun Dialog(
//消失回调
onDismissRequest: () -> Unit,
//dialog 消失相关设置
properties: DialogProperties = DialogProperties(),
content: @Composable () -> Unit
)
DialogProperties 包含以下属性
- dismissOnClickOutside 为 true 则点击 DropdownMenu 外部会消失
- dismissOnBackPress 为ture 点击返回键会 消失
- securePolicy 是否可以截图:SecureFlagPolicy.SecureOn 、SecureFlagPolicy.SecureOff、SecureFlagPolicy.Inherit
- usePlatformDefaultWidth 是否应该将对话框内容的宽度限制为平台默认值,即小于屏幕宽度
- decorFitsSystemWindows 设置为false使用windowwinsets。如果为false,软输入模式将更改为WindowManager.LayoutParams。
案例
var showDialog by remember {
mutableStateOf(false)
}
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Button(onClick = {
showDialog = !showDialog
} ) {
Text(text = "弹框")
}
if (showDialog) {
Dialog(onDismissRequest = {
showDialog = !showDialog
} , properties = DialogProperties(
dismissOnBackPress = false,
dismissOnClickOutside = true,
securePolicy = SecureFlagPolicy.SecureOn,
)) {
Box(
Modifier
.size(50.dp)
.clip(RoundedCornerShape(5.dp))
.background(Color.White)
) {
Text(
text = "我是Dialog",
modifier = Modifier.align(Alignment.Center),
fontSize = 15.sp,
color = Color.Blue
)
}
}
}
}