val openDialog = remember { mutableStateOf(true) }
if (openDialog.value) {
androidx.compose.material3.AlertDialog(
onDismissRequest = {
// Dismiss the dialog when the user clicks outside the dialog or on the back
// button. If you want to disable that functionality, simply use an empty
// onDismissRequest.
openDialog.value = false
}
) {
Surface(
modifier = Modifier
.wrapContentWidth()
.wrapContentHeight(),
shape = MaterialTheme.shapes.large
) {
Column(modifier = Modifier.padding(16.dp)) {
//... AlertDialog content
}
}
}
}
7条答案
按热度按时间vlju58qv1#
从 * M3 *
1.1.0-alpha04
开始,有一个**AlertDialog
**可组合函数,其槽用于content
。在 * M3 *
1.1.0-alpha04
之前或与 * M2 * 一起,可以使用标准的**AlertDialog
**。text
、title
和buttons
**参数支持@Composable
功能,因此您可以根据需要自定义对话框。例如:
km0tfn4u2#
这个例子演示了如何在android jet compose中创建自定义对话框。
阅读更多信息https://www.boltuix.com/2022/01/ice-cream-app-ui-ux.html
q5iwbnjs3#
还可以添加lambda以将值从对话框返回到任何其他可组合对象
并显示它与
结果是
tyky79it4#
我必须实现这样的目标:
将图像放入“标题”槽中,将文本放入组成AlertDialog的“文本”槽中,并以以下内容结束:
因为“title”和“text”被添加了填充的AlertDialogBaselineLayout Package ,我不知道如何更改它。
但是,“buttons”槽没有 Package ,我的解决方案与以下代码类似(“title”和“text”槽必须设置为null,所有对话框内容都进入“buttons”槽):
vfwfrxfs5#
如果自定义警报对话框的内容需要滚动(例如:横向模式或内容变长)。您可以像
使用
7dl7o3gd6#
带有图像的自定义对话框
创建这样的自定义对话框。
现在我们已经创建了自定义对话框,要在单击按钮时显示对话框,您需要创建一个mutableStateOf()变量来维护对话框的显示和关闭状态。
此外,创建条件,如如果变量为真,则调用对话框,否则不调用对话框函数。
当单击对话框上的dismiss按钮时,需要将变量更新为false以隐藏对话框。
代码的最终输出如下所示,
带有输入字段的警报对话框
如上所述,我们需要用Dialog()组合函数创建对话框,但对于输入字段,我们需要创建一个mutableStateOf()变量来保存输入字段的值。
要显示该对话框,您需要按照上述相同的方法创建mutableStateOf()变量并使其为true或false。
上述代码的输出为,
加载对话框
对于加载对话框,我们需要使用CircularProgressIndicator()组合函数来加载动画。除此之外,一切都与其他自定义对话框相同。
关于加载对话框代码的输出,
9cbw7uwe7#
在Jetpack Compose中创建自定义对话框很容易。
这是一个对话框,要求启用两步验证。我还添加了点击事件。
输出:
代码:
有关更多带有源代码的设计,请参见Jetpack Compose Samples