如果GridView的Item是Button的话,Button自带的点击响应函数就会覆盖onItemClick函数。
解决方法一,亲测无效:
在Item的布局文件XML的根部添加属性 android:descendantFocusability=”blocksDescendants”
android:descendantFocusability属性介绍:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
之所以无效,看这个解释应该是控制GridView与item两个响应函数的顺序(这个和我在Unity中写的一个反而有关,它需要实现当拖动Listview时,不要响应onItemClick:https://blog.csdn.net/Michaelia_hu/article/details/90764392)
而我要解决的是onItemClick与item自带的响应函数的调用顺序。
解决方法二,亲测有效:
在Button布局文件中将属性改为:android:focusable="false" android:clickable="false"
文章参考:
https://www.bbsmax.com/A/1O5Ep818J7/ 这是解决方案一,我实践了不可行
https://blog.csdn.net/wl076/article/details/6119445 解决方案二,当出现问题时,要想到查看并对比源码,对于Android还要查看布局文件.xml