标签:
项目中为了实现图片的数量以及大小(类似微信图片的单张图片显示,和多张图片显示的大小是不同的)的效果,采用GridView动态修改边界,以及动态修改ImageView的大小的方式。实现效果如下:
单图:
多图
到目前为止,没有遇到什么问题,可是,之后就遇到一个问题,就是在ImageView上设置OnClickListener,第0张图片无法点击的问题。
追踪源码,发现一直运行到:
这个函数的时候,其他View的点击事件都直接走 handler.post(action),惟独第0张图片,走ViewRoot.getRunQueue().post(action);可见是因为
没有设置mAttachInfo的问题。
然后追踪,为什么没有设置mAttachInfo 的问题。
路劲如下:
dispatchAttachedToWindow->dispatchAttachedToWindow->addViewInLayout
最后,发现一直处于
attachViewToParent 但是,该child 之前没有被调用过addViewInLayout, 所以没有 mAttachInfo 属性。 至于ViewRoot.getRunQueue().post(action);为什么没有被执行,就不得而知了。
GridView 动态修改Item的LayoutParam导致Item的OnClickListener失效
标签:
原文地址:http://www.cnblogs.com/darkgem/p/5040605.html