iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
Mobile Development

從零開始學習 Jetpack Compose系列 第 11

從零開始學習 Jetpack Compose Day10 - Dialog

  • 分享至 

  • xImage
  •  

Dialog

Dialog 是一種用來顯示臨時彈出視窗的 UI 元件,通常用來向使用者顯示重要資訊、要求輸入或提供多種操作選項。它會暫時疊加在其他內容上,直到使用者關閉它或進行選擇,並會中斷當前的畫面互動,但不會影響背景 UI 的顯示或行為,適合顯示提示訊息或操作確認。

Jetpack Compose 有提供AlertDialog,可用來快速建立 Material Design 主題的Dialog。

@Composable
fun Greeting(dialogTitle: String, dialogText: String, modifier: Modifier = Modifier) {
    AlertDialog(
        icon = {
            Icon(Icons.Filled.CheckCircle, contentDescription = "Example Icon")
        },
        title = {
            Text(
                text = dialogTitle,
                fontSize = 40.sp
            )
        },
        text = {
            Text(text = dialogText)
        },
        onDismissRequest = {
            // 使用者關閉對話方塊時 (例如輕觸對話方塊外部區域) 呼叫
        },
        confirmButton = {
            TextButton(
                onClick = {}
            ) {
                Text("確認")
            }
        },
        dismissButton = {
            TextButton(
                onClick = {}
            ) {
                Text("取消")
            }
        }
    )
}

https://raw.githubusercontent.com/jian-fu-hung/ithelp-2024/refs/heads/main/Images/Day10/%E6%88%AA%E5%9C%96%202024-09-25%20%E6%99%9A%E4%B8%8A11.23.05.png

CustomDialog

如果說不用預設的AlertDialog 想要客製化Dialog可以直接使用Dialog

@Composable
fun CustomDialogComposable(modifier: Modifier = Modifier) {
    Dialog(
        onDismissRequest = {}
    ) {
        Card(
            modifier = Modifier
                .fillMaxWidth()
                .height(200.dp)
                .padding(16.dp),
            shape = RoundedCornerShape(16.dp),
        ) {
            Column(

                horizontalAlignment = Alignment.CenterHorizontally,
                modifier = modifier
                    .fillMaxWidth()
                    .fillMaxHeight()
                    .padding(16.dp)
            ) {
                Text(
                    text = "Title",
                    modifier = modifier.padding(16.dp)
                )
                Text(
                    text = "內容",
                    textAlign = TextAlign.Center,
                    modifier = modifier.fillMaxWidth(),
                )
                Row(
                    horizontalArrangement = Arrangement.Center,
                    modifier = modifier.fillMaxWidth()
                ) {
                    TextButton (
                        onClick = {}
                    ) {
                        Text("確認")
                    }
                    TextButton(
                        onClick = {}
                    ) {
                        Text("確認")
                    }
                }
            }
        }
    }
}

https://raw.githubusercontent.com/jian-fu-hung/ithelp-2024/refs/heads/main/Images/Day10/%E6%88%AA%E5%9C%96%202024-09-25%20%E6%99%9A%E4%B8%8A11.22.56.png


上一篇
從零開始學習 Jetpack Compose Day9 - ConstrainLayout
下一篇
從零開始學習 Jetpack Compose Day11 - Drawer
系列文
從零開始學習 Jetpack Compose30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言