From 89602070aed5a2c13585be7ebfc01b891c5fc8e2 Mon Sep 17 00:00:00 2001 From: dongliang Date: Thu, 7 May 2026 12:35:38 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=A7=E5=9B=BE=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E6=94=B9=E7=94=A8=20decorView=20=E9=A1=B6=E5=B1=82=E8=A6=86?= =?UTF-8?q?=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dialog_container 可能被 NavHostFragment 遮挡导致不可见 改为直接添加到 Activity 的 decorView,确保在最顶层 背景改为纯黑(全屏查看更清晰) Co-Authored-By: Claude Opus 4.6 (1M context) --- .../xiaoqu/watch/ui/task/TaskListFragment.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt index 96a92f5..0cf411c 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt @@ -444,15 +444,17 @@ class TaskListFragment : BaseFragment() { } } - /** 全屏显示大图(覆盖在当前页面上,点击任意位置关闭) */ + /** 全屏显示大图(覆盖在 Activity 窗口顶层,点击关闭) */ private fun showFullImage(url: String) { - val container = requireActivity().findViewById(R.id.dialog_container) + Timber.d("查看大图: $url") + // 使用 Activity 的 decorView 确保在最顶层 + val rootView = requireActivity().window.decorView as ViewGroup val overlay = FrameLayout(requireContext()).apply { - layoutParams = FrameLayout.LayoutParams( - FrameLayout.LayoutParams.MATCH_PARENT, - FrameLayout.LayoutParams.MATCH_PARENT + layoutParams = ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT ) - setBackgroundColor(0xE0000000.toInt()) + setBackgroundColor(0xFF000000.toInt()) isClickable = true isFocusable = true } @@ -464,13 +466,11 @@ class TaskListFragment : BaseFragment() { scaleType = android.widget.ImageView.ScaleType.FIT_CENTER } overlay.addView(imageView) - container.addView(overlay) - // 点击任意位置关闭(包括图片本身) - val dismiss = { container.removeView(overlay) } - overlay.setOnClickListener { dismiss() } - imageView.setOnClickListener { dismiss() } + rootView.addView(overlay) + // 点击任意位置关闭 + overlay.setOnClickListener { rootView.removeView(overlay) } + imageView.setOnClickListener { rootView.removeView(overlay) } // 加载大图 - Timber.d("查看大图: $url") loadImage(imageView, url) }