From 97344908544f87df25d189388a81da916f03d53e Mon Sep 17 00:00:00 2001 From: Runt <qingingrunt2010@qq.com> Date: Fri, 25 Jul 2025 14:29:49 +0000 Subject: [PATCH] 弹框修改 --- libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt | 4 ++-- libmvi/src/main/java/com/runt/open/mvi/views/PublicViews.kt | 31 +++++++++++++++++++++++-------- libmvi/src/main/java/com/runt/open/mvi/data/MessageState.kt | 3 ++- libmvi/build.gradle.kts | 2 ++ 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/libmvi/build.gradle.kts b/libmvi/build.gradle.kts index a50342d..2ff9876 100644 --- a/libmvi/build.gradle.kts +++ b/libmvi/build.gradle.kts @@ -49,6 +49,8 @@ api(libs.androidx.activity.compose) api(libs.androidx.core.ktx) api(libs.androidx.lifecycle.runtime.ktx) + api(libs.androidx.ui.tooling) + api(libs.androidx.ui.tooling.preview) api(libs.androidx.appcompat) implementation(libs.material) diff --git a/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt b/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt index 5e10ab6..f8a1e09 100644 --- a/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt +++ b/libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt @@ -79,11 +79,11 @@ confirmDissmiss : Boolean = true , //点击确定是否关闭 cancelDissmiss : Boolean = true , //点击取消是否关闭 onDismissRequest : () -> Unit = {} , + onCancelRequest : () -> Unit = {} , onConfirmRequest : () -> Unit = {} , ){ - _messageState.value = MessageState(title = title, message = message, touchOutside = touchOutside, showClose = showClose, confirmText = confirmText, - cancelText = cancelText, confirmDissmiss = confirmDissmiss, cancelDissmiss = cancelDissmiss, onDismissRequest = onDismissRequest, + cancelText = cancelText, confirmDissmiss = confirmDissmiss, cancelDissmiss = cancelDissmiss, onCancelRequest = onCancelRequest, onDismissRequest = onDismissRequest, onConfirmRequest = onConfirmRequest, setDismiss = messageSetDismiss); } diff --git a/libmvi/src/main/java/com/runt/open/mvi/data/MessageState.kt b/libmvi/src/main/java/com/runt/open/mvi/data/MessageState.kt index 3ff6b7e..e2b6f5f 100644 --- a/libmvi/src/main/java/com/runt/open/mvi/data/MessageState.kt +++ b/libmvi/src/main/java/com/runt/open/mvi/data/MessageState.kt @@ -16,6 +16,7 @@ val confirmDissmiss:Boolean = true,//点击确定是否关闭 val cancelDissmiss:Boolean = true,//点击取消是否关闭 val onDismissRequest : () -> Unit = {}, + val onCancelRequest : () -> Unit = {}, val onConfirmRequest : () -> Unit = {}, - var setDismiss:() -> Unit + var setDismiss:() -> Unit = {} ) \ No newline at end of file diff --git a/libmvi/src/main/java/com/runt/open/mvi/views/PublicViews.kt b/libmvi/src/main/java/com/runt/open/mvi/views/PublicViews.kt index 6721df2..f13f6dc 100644 --- a/libmvi/src/main/java/com/runt/open/mvi/views/PublicViews.kt +++ b/libmvi/src/main/java/com/runt/open/mvi/views/PublicViews.kt @@ -14,8 +14,9 @@ import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Close +import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon @@ -28,6 +29,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Dialog @@ -84,7 +86,8 @@ ) { Column(modifier = Modifier.wrapContentHeight()){ Text(text = message.title, fontSize = 16.sp, - modifier = Modifier.fillMaxWidth() + modifier = Modifier + .fillMaxWidth() .padding(top = 20.dp , start = 20.dp) .wrapContentSize(Alignment.Center), textAlign = TextAlign.Center) @@ -93,7 +96,7 @@ modifier = Modifier .fillMaxWidth() .wrapContentSize() - .padding(top = 30.dp , bottom = 20.dp, start = 14.dp, end = 15.dp) + .padding(top = 30.dp , bottom = 20.dp , start = 14.dp , end = 15.dp) .wrapContentSize(Alignment.Center), textAlign = TextAlign.Center, ) @@ -104,8 +107,13 @@ if(message.cancelDissmiss){ message.setDismiss.invoke() } - message.onDismissRequest.invoke() - }) { + message.onCancelRequest.invoke() + }, + colors = ButtonDefaults.buttonColors( + containerColor = Color.Gray, // 背景色 + contentColor = Color.White, // 文字/图标颜色 + disabledContainerColor = Color.Gray // 禁用时背景色 + ),) { Text(text = message.cancelText) } } @@ -132,8 +140,10 @@ alignment = Alignment.TopCenter, ) { Surface( - modifier = Modifier.fillMaxWidth() - .wrapContentHeight().padding(10.dp), + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + .padding(10.dp), shadowElevation = 2.dp, border = BorderStroke(1.dp, Color.Gray) , shape = RoundedCornerShape(8.dp) @@ -159,7 +169,7 @@ .height(50.dp), verticalAlignment = Alignment.CenterVertically) { Spacer(modifier = Modifier.size(15.dp)) IconButton(onClick = onBackClick, modifier = Modifier.size(30.dp,30.dp)) { - Icon(Icons.Default.Close, contentDescription = null, tint = Color.Black) + Icon(Icons.Default.ArrowBack, contentDescription = null, tint = Color.Black) } Text(text = "${title}", modifier = Modifier @@ -169,4 +179,9 @@ Spacer(modifier = Modifier.size(30.dp)) Spacer(modifier = Modifier.size(15.dp)) } +} +@Preview +@Composable +fun previewLayout(){ + MessageDialog(message = MessageState(cancelText = "lll")) } \ No newline at end of file -- Gitblit v1.9.1