fix: 操作成功弹窗不消失问题 + 统一弹窗交互
问题:back=false 导致弹窗永远不消失 修复:所有弹窗统一 back=true + countdown=2 自动消失 用 onBack 回调替代 postDelayed,弹窗消失后再执行刷新/返回 弹窗梳理: - 操作成功(抢单/打卡/完成):2秒消失 → onBack 刷新列表 - 全部完成:2秒消失 → onBack 返回首页 - NFC打卡成功:2秒消失 → postDelayed 刷新详情 - 失败/网络异常:3秒消失 → 无回调 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -163,11 +163,12 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
|
||||
// 操作后列表为空 → 显示"全部完成"后返回首页
|
||||
tipDialog.show(
|
||||
status = QuTipDialog.Status.SUCCESS,
|
||||
title = "全部完成"
|
||||
title = "全部完成",
|
||||
back = true, step = 1, countdown = 2,
|
||||
onBack = {
|
||||
if (isAdded && view != null) findNavController().popBackStack()
|
||||
}
|
||||
)
|
||||
binding.root.postDelayed({
|
||||
if (isAdded && view != null) findNavController().popBackStack()
|
||||
}, 1500)
|
||||
} else {
|
||||
showEmpty()
|
||||
}
|
||||
@@ -933,17 +934,15 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
|
||||
val currentId = taskList.getOrNull(taskIndex)?.id ?: 0L
|
||||
filterTaskIds = filterTaskIds!!.filter { it != currentId }.toLongArray()
|
||||
}
|
||||
// 先显示成功弹窗,等弹窗消失后再刷新(避免黑屏闪烁)
|
||||
// 弹窗 2 秒自动消失,消失后刷新列表
|
||||
tipDialog.show(
|
||||
status = QuTipDialog.Status.SUCCESS,
|
||||
title = successMsg,
|
||||
back = false, step = 0, countdown = 0
|
||||
back = true, step = 1, countdown = 2,
|
||||
onBack = {
|
||||
if (isAdded && view != null) fetchTaskIds()
|
||||
}
|
||||
)
|
||||
// 2 秒后刷新
|
||||
binding.root.postDelayed({
|
||||
if (!isAdded || view == null) return@postDelayed
|
||||
fetchTaskIds()
|
||||
}, 2000)
|
||||
}
|
||||
is ApiResult.Error -> {
|
||||
tipDialog.show(
|
||||
|
||||
Reference in New Issue
Block a user