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) }