From caa38c53d821407853876d3235fc7103fa993116 Mon Sep 17 00:00:00 2001 From: dongliang Date: Thu, 7 May 2026 12:27:49 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9B=BE=E7=89=87=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E6=94=BE=E5=A4=A7=E4=BF=AE=E5=A4=8D=EF=BC=88clickable=20+=20?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E4=BA=8B=E4=BB=B6=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 缩略图加 isClickable/isFocusable 防止被 ScrollView 拦截 - 全屏大图的 overlay 和 imageView 都设点击关闭 - 加日志确认 showFullImage 被触发 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../xiaoqu/watch/ui/task/TaskListFragment.kt | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 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 22ff00c..96a92f5 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 @@ -433,20 +433,28 @@ class TaskListFragment : BaseFragment() { } scaleType = android.widget.ImageView.ScaleType.CENTER_CROP setBackgroundColor(requireContext().getColor(R.color.card_background)) + isClickable = true + isFocusable = true } loadImage(imageView, pic.url) // 点击放大全屏查看 - imageView.setOnClickListener { showFullImage(pic.url) } + val picUrl = pic.url + imageView.setOnClickListener { showFullImage(picUrl) } binding.picContainer.addView(imageView) } } - /** 全屏显示大图(覆盖在当前页面上,点击关闭) */ + /** 全屏显示大图(覆盖在当前页面上,点击任意位置关闭) */ private fun showFullImage(url: String) { val container = requireActivity().findViewById(R.id.dialog_container) val overlay = FrameLayout(requireContext()).apply { - setBackgroundColor(0xE0000000.toInt()) // 半透明黑 + layoutParams = FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, + FrameLayout.LayoutParams.MATCH_PARENT + ) + setBackgroundColor(0xE0000000.toInt()) isClickable = true + isFocusable = true } val imageView = android.widget.ImageView(requireContext()).apply { layoutParams = FrameLayout.LayoutParams( @@ -454,15 +462,15 @@ class TaskListFragment : BaseFragment() { FrameLayout.LayoutParams.MATCH_PARENT ) scaleType = android.widget.ImageView.ScaleType.FIT_CENTER - setPadding(0, 0, 0, 0) } overlay.addView(imageView) - // 点击关闭 - overlay.setOnClickListener { - container.removeView(overlay) - } container.addView(overlay) + // 点击任意位置关闭(包括图片本身) + val dismiss = { container.removeView(overlay) } + overlay.setOnClickListener { dismiss() } + imageView.setOnClickListener { dismiss() } // 加载大图 + Timber.d("查看大图: $url") loadImage(imageView, url) }