From 484045950f5fd8076affe9bf0b30b22633baf772 Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 1 Jun 2026 17:21:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=99=A8=E6=BB=91=E5=8A=A8=E5=88=A0=E9=99=A4?= =?UTF-8?q?=20state=20=E9=94=99=E4=BD=8D=E5=B9=B6=E6=B6=88=E9=99=A4=20depr?= =?UTF-8?q?ecation=20warning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 dismissState 移入 key(row.id) 内部,修复删除后 state 被错误复用的问题 - 新增 pendingDeleteIds 延迟删除机制,滑动删除播放 shrinkVertically + fadeOut 退场动画 - 移除废弃的 confirmValueChange 参数,改用 LaunchedEffect 监听 dismissState.currentValue --- .../plus/rua/project/ui/DateCheckerScreen.kt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/core/src/main/kotlin/plus/rua/project/ui/DateCheckerScreen.kt b/core/src/main/kotlin/plus/rua/project/ui/DateCheckerScreen.kt index 6820c6d..3901072 100644 --- a/core/src/main/kotlin/plus/rua/project/ui/DateCheckerScreen.kt +++ b/core/src/main/kotlin/plus/rua/project/ui/DateCheckerScreen.kt @@ -237,16 +237,13 @@ fun DateCheckerScreen(onBack: () -> Unit, modifier: Modifier = Modifier) { val isBeingDeleted = row.id in pendingDeleteIds key(row.id) { - val dismissState = rememberSwipeToDismissBoxState( - confirmValueChange = { value -> - if (value == SwipeToDismissBoxValue.EndToStart) { - pendingDeleteIds = pendingDeleteIds + row.id - true - } else { - false - } + val dismissState = rememberSwipeToDismissBoxState() + + androidx.compose.runtime.LaunchedEffect(dismissState.currentValue) { + if (dismissState.currentValue == SwipeToDismissBoxValue.EndToStart && !isBeingDeleted) { + pendingDeleteIds = pendingDeleteIds + row.id } - ) + } var visible by remember { mutableStateOf(false) }