wanglu1209 / PhotoViewer

一个 **无侵入式** 仿微信朋友圈的图片查看器,使用超级简单!
Apache License 2.0
469 stars 48 forks source link

如果XML中ImageView并不是在第一层第一个所导致的崩溃问题 #49

Open GitJoBo opened 1 year ago

GitJoBo commented 1 year ago

PhotoViewer的findImageView函数 private fun findImageView(group: ViewGroup): ImageView? { for (i in 0 until group.childCount) { return when { group.getChildAt(i) is ImageView -> group.getChildAt(i) as ImageView group.getChildAt(i) is ViewGroup -> findImageView(group.getChildAt(i) as ViewGroup) else -> throw RuntimeException("未找到ImageView") } } return null }

只会判断第一个view,for循环是没用的

GitJoBo commented 1 year ago

这是修复后可用的函数 private fun findImageView(group: ViewGroup): ImageView? { for (i in 0 until group.childCount) { val child = group.getChildAt(i) if (child is ImageView) { return child } else if (child is ViewGroup) { val result = findImageView(child) if (result != null) { return result } } } throw RuntimeException("未找到ImageView") }