为什么有时GridView不能响应onItemClick函数

写了两个关于GridView的页面,结果一个能响应onItemClick函数,一个不能响应。

原因是因为一个的Item是TextView,一个的Item是Button,如果Item是是Button的话,Button自带的点击响应函数就会覆盖onItemClick函数。所以不能响应的原因就是因为Item是Button.

解决方法一,亲测无效:

在Item的布局文件XML的根部添加属性 android:descendantFocusability=”blocksDescendants”

android:descendantFocusability属性介绍:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

解决方法二,亲测有效:

在Button布局文件中将属性改为:android:focusable="false" android:clickable="false"

文章参考:
https://www.bbsmax.com/A/1O5Ep818J7/

https://blog.csdn.net/wl076/article/details/6119445

猜你喜欢

转载自blog.csdn.net/michaelia_hu/article/details/80908901