GridView 或 ListView的setOnItemClickListener事件没有响应解决方法

原因

listview、GridView的子元素中包含了Button或者ImageButton之类的元素,button的优先级高于listview 、GridView所以不能监听item的点击事件,被ImageButton或Button 拦截了点击事件。

解决办法

1.在listview或gridview的item布局中的根节点中加入一个属性:android:descendantFocusability="blocksDescendants"

2.在item布局中的ImageButton或Button中加入以下两个属性:

android:clickable="false"

android:focusable="false"

这样再次点击gridview或listview的列表项时,这个单击事件就不会被imageButton或button拦截了

关于android:descendantFocusability这个属性的取值介绍:

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

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

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

你可能感兴趣的:(GridView 或 ListView的setOnItemClickListener事件没有响应解决方法)