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