标签: android-compose-dialog

在 Jetpack Compose 中显示自定义警报对话框

我正在搜索如何在 Jetpack Compose 中创建自定义对话框。在 XML 或 Material Design 中,我们可以轻松创建自定义对话框,在其中我们可以接受用户输入、单选按钮等,但我在 Jetpack Compose 中没有找到这样的东西。

android android-alertdialog android-jetpack android-jetpack-compose android-compose-dialog

62
推荐指数
7
解决办法
7万
查看次数

无法在 Jetpack Compose 中的 onClick 中显示 AlertDialog

我一直在尝试在 Android Jetpack Compose 的动态列表中显示AlertDialogfrom 。onClickCard

我在执行此操作时收到编译时错误@Composable 调用只能从 @Composable 函数的上下文中发生。

下面是我的代码片段:

@Preview(showBackground = true)
@Composable
fun prepareCard(card: Card) {
    MyApplicationTheme() {
        androidx.compose.material.Card() {
            Column(Modifier.clickable {
                Log.d("TAG", "clicked : " + card.name)
                val showDialog = mutableStateOf(true)

                if (showDialog.value) {
                    alert(card)
                }
                 ...
            }
        }
     }
Run Code Online (Sandbox Code Playgroud)

我已经制作了alert()从上面的代码调用的可组合函数

@Composable
fun alert(card : Card) {
    AlertDialog(
        title = {
            Text("")
        },
        text = {
            Text(text = card.name)
        }, onDismissRequest = {
        },
        confirmButton = {},
        dismissButton = …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog kotlin android-jetpack-compose android-compose-dialog

17
推荐指数
1
解决办法
1万
查看次数

如何关闭可组合对话框?

我是 jetpack compose 的新手,我真的很想知道如何消除可组合对话框。jetpack compose 中的对话框是否有像 dismiss() 这样的函数?

通过使用下面的代码,我无法关闭该对话框,无论是触摸外部还是按后退按钮。该对话框在视图层次结构的顶部仍然可见。`

@Composable
fun InfoDialog() {
    val shouldDismiss = remember {
        mutableStateOf(false)
    }
    Dialog(onDismissRequest = {
        shouldDismiss.value = false
    }, properties = DialogProperties(
        dismissOnBackPress = true,
        dismissOnClickOutside = true
    )) {
        Card(
            shape = RoundedCornerShape(8.dp),
            modifier = Modifier.padding(16.dp,8.dp,16.dp,8.dp),
            elevation = 8.dp
        ) {
            Column(
                Modifier.background(c282534)) {
                Column(modifier = Modifier.padding(16.dp)) {
                    Text(
                        text = "Notice",
                        textAlign = TextAlign.Center,
                        modifier = Modifier
                            .padding(top = 8.dp)
                            .fillMaxWidth(),
                        style = TextStyle(fontWeight = FontWeight.Bold, color = Color.White, fontSize …
Run Code Online (Sandbox Code Playgroud)

android dialog android-dialog android-jetpack-compose android-compose-dialog

12
推荐指数
2
解决办法
5648
查看次数