我想在用户执行某些操作(例如注册)时显示不确定进度对话框。使用 ProgressDialog
的旧方法。
对于撰写,我发现了这个 How can I render plain android ProgressBar with Compose? 但这并不是我正在寻找的内容,因为它只是一个视图。它不像对话框那样覆盖屏幕。
使用 CircularProgressIndicator
我能够做到这一点:
如您所见,它显示在视图下方。
我想创建这样的东西:
它应该有:
如何在 Jetpack compose 中实现这一点?
答案 0 :(得分:5)
您可以使用 Dialog
组合:
var showDialog by remember { mutableStateOf(false) }
if (showDialog) {
Dialog(
onDismissRequest = { showDialog = false },
DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false)
) {
Box(
contentAlignment= Center,
modifier = Modifier
.size(100.dp)
.background(White, shape = RoundedCornerShape(8.dp))
) {
CircularProgressIndicator()
}
}
}
答案 1 :(得分:0)
Dialog
和 loading text
使用 compose.material
的 Dialog 组件。
@Composable
fun DummyProgress() {
var dialogState by remember { mutableStateOf(false) }
Button(onClick = { dialogState = !dialogState }) {
Text(text = "Show Progress")
}
if (dialogState) {
Dialog(onDismissRequest = { dialogState = false },
DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false)) {
Box(
contentAlignment= Alignment.Center,
modifier = Modifier
.size(100.dp)
.background(White, shape = RoundedCornerShape(12.dp))
) {
Column {
CircularProgressIndicator(modifier = Modifier.padding(6.dp, 0.dp, 0.dp, 0.dp))
Text(text = "Loading...", Modifier.padding(0.dp, 8.dp, 0.dp, 0.dp))
}
}
}
}
}