Jetpack Compose-确认弹窗 发表于 2024-03-18 | 分类于 android Jetpack Compose-确认弹窗 前言 当我们做一些需要确认的操作的时候,需要弹出确认弹窗,防止误操作。 系统自带123456789101112131415161718192021222324// 控制弹窗显示状态var showQuitDialog by remember { mutableStateOf(false) } if (showQuitDialog) { AlertDialog( onDismissRequest = { showQuitDialog = false }, title = { Text("提示") }, text = { Text("确定要返回上一页吗?") }, confirmButton = { Button(onClick = { showQuitDialog = false // 手动触发返回上一页(若不调用,返回事件会被消费,页面不会回退) navController.popBackStack() }) { Text("退出") } }, dismissButton = { Button(onClick = { showQuitDialog = false }) { Text("取消") } } )} 自定义弹窗12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667import androidx.compose.foundation.backgroundimport androidx.compose.foundation.layout.Boximport androidx.compose.foundation.layout.Columnimport androidx.compose.foundation.layout.Rowimport androidx.compose.foundation.layout.Spacerimport androidx.compose.foundation.layout.fillMaxSizeimport androidx.compose.foundation.layout.fillMaxWidthimport androidx.compose.foundation.layout.heightimport androidx.compose.foundation.layout.paddingimport androidx.compose.foundation.layout.widthimport androidx.compose.foundation.layout.wrapContentHeightimport androidx.compose.runtime.Composableimport androidx.compose.ui.Alignmentimport androidx.compose.ui.Modifierimport androidx.compose.ui.draw.clipimport androidx.compose.ui.graphics.Colorimport androidx.compose.ui.unit.dpimport androidx.compose.ui.unit.spimport com.xhkjedu.zxs_android.common.CommonTheme@Composablefun ZAlertDialog( title: String = "提示", content: String = "确认要退出吗?", closeClick: () -> Unit, okClick: () -> Unit) { Box( modifier = Modifier .fillMaxSize() .background(CommonTheme.ColorBlackMainTouming), contentAlignment = Alignment.Center ) { Column( Modifier .width(394.dp) .wrapContentHeight() .clip(CommonTheme.CornerL) .background(Color.White) ) { ZDialogTitleComp(title, closeClick) Column( Modifier .fillMaxWidth() .padding(CommonTheme.SpaceL) ) { ZTextColorSizeComp(content, CommonTheme.ColorBlackMain, 16.sp) } Row(Modifier.align(Alignment.CenterHorizontally)) { Spacer(Modifier.width(CommonTheme.SpaceL)) ZBtnMainBorder("取消") { closeClick() } Spacer(Modifier.width(CommonTheme.SpaceL)) ZBtnMainBg("确定") { okClick() } Spacer(Modifier.width(CommonTheme.SpaceL)) } Spacer(Modifier.height(CommonTheme.SpaceL)) } }}