如何解决需要使用Jetpack的AlertDialog和OutlinedTextField两次单击确认按钮
我正在使用jetpack compose的AlertDialog,其中包含一个文本字段。想法是,用户应在文本字段中填写一些文本,然后单击“确认”。问题是,在将文本插入OutlinedTextField
后,需要两次单击confirmButton
-一次是从OutlinedTextField
移开焦点(以移出软键盘),一次是实际单击确认按钮。
不能完全确定这种行为是否是故意的。但是,对于“正常”的AlertDialog,情况并非如此。
这是一个最小的代码示例:
@Composable
private fun MyAlertDialog() {
val text = remember { mutableStateOf("") }
val hasConfirmed = remember { mutableStateOf(false) }
if (!hasConfirmed.value) {
AlertDialog(
title = { Text("Title") },text = {
OutlinedTextField(
value = text.value,onValueChange = {
text.value = it
},label = {
ProvideEmphasis(emphasis = EmphasisAmbient.current.medium) {
Text(
text = stringResource(id = R.string.notes),style = typography.body2
)
}
}
)
},onDismissRequest = {
},confirmButton = {
Button(onClick = {
hasConfirmed.value = true
},) {
Text("Confirm")
}
}
)
} else {
Text("Confirmed")
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。