Kof*_*fi 12 android dialog android-alertdialog kotlin android-jetpack-compose
使用 Compose 更改对话框的宽度似乎是不可能的。我最接近改变对话框宽度的是通过DialogProperties.usePlatformDefaultWidth. 将其设置为 false 会导致对话框填满屏幕,但有没有办法使用自定义宽度?
Gab*_*tti 23
使用可以使用带、和参数AlertDialog的构造函数定义自定义,并应用大小(例如使用)并使用 覆盖默认行为:texttitlebuttonsModifier.sizeusePlatformDefaultWidth = false
AlertDialog(
onDismissRequest = { /*TODO*/ },
title = {
Text(text = "Title")
},
text = {
Text(
"This area typically contains the supportive text " +
"which presents the details regarding the Dialog's purpose."
)
},
buttons = {},
properties = DialogProperties(
usePlatformDefaultWidth = false
),
modifier = Modifier.size(200.dp,250.dp)
)
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您想在所有项目中使用恒定宽度,您可以创建一个具有自定义宽度的对话框,如下所示
@Composable
fun MyCustomDialog(
onDismissRequest: () -> Unit,
properties: DialogProperties = DialogProperties(),
content: @Composable () -> Unit
) {
Dialog(
onDismissRequest = onDismissRequest,
// We are copying the passed properties
// then setting usePlatformDefaultWidth to false
properties = properties.let {
DialogProperties(
dismissOnBackPress = it.dismissOnBackPress,
dismissOnClickOutside = it.dismissOnClickOutside,
securePolicy = it.securePolicy,
usePlatformDefaultWidth = false
)
},
content = {
Surface(
color = Color.Transparent,
modifier = Modifier.width(250.dp), // Customize your width here
content = content
)
}
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8808 次 |
| 最近记录: |