Runt
2025-07-25 97344908544f87df25d189388a81da916f03d53e
弹框修改
4 files modified
40 ■■■■ changed files
libmvi/build.gradle.kts 2 ●●●●● patch | view | raw | blame | history
libmvi/src/main/java/com/runt/open/mvi/base/model/BaseViewModel.kt 4 ●●●● patch | view | raw | blame | history
libmvi/src/main/java/com/runt/open/mvi/data/MessageState.kt 3 ●●●● patch | view | raw | blame | history
libmvi/src/main/java/com/runt/open/mvi/views/PublicViews.kt 31 ●●●● patch | view | raw | blame | history
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)
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);
    }
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 = {}
)
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"))
}