Jetpack Compose的AlertDialog实现允许您添加标题、按钮和文本作为内容。
如果您想添加EditText(或者更确切地说,TextField)而不仅仅是文本,您可以创建自己的对话框布局,如下所示:
@Composable
fun MyAlertDialog(
title: @Composable () -> Unit,
content: @Composable () -> Unit,
dismissButton: @Composable () -> Unit,
confirmButton: @Composable () -> Unit,
onDismiss: () -> Unit,
) {
Dialog(onDismiss) {
Surface(shape = MaterialTheme.shapes.medium) {
Column {
Column(Modifier.padding(24.dp)) {
title.invoke()
Spacer(Modifier.size(16.dp))
content.invoke()
}
Spacer(Modifier.size(4.dp))
Row(
Modifier.padding(8.dp).fillMaxWidth(),
Arrangement.spacedBy(8.dp, Alignment.End),
) {
dismissButton.invoke()
confirmButton.invoke()
}
}
}
}
}
如果使用调用此可组合函数
OutlinedTextField
作为一个内容,结果将如下所示:
您可以看到完整的工作演示
here
。