ListView 是在实际开发中经常用到,所以对它的事件响应也很多,如onitemclick 、 OnItemLongClick等,有时候item中也有一些点击事件,那么这些事件可能会有冲突导致有些事件无法响应。以下是开发中遇到的实际问题。
1 、
当时已经给listview设置了 onitemclick 事件,但是还需要给item中的闹钟图标添加一个点击事件,可是设置以后发现闹钟的onclick事件无法响应,最后在网上查到解决方法,需要给item的layout文件中的根元素添加 focusable = false ;
2
这是另外一个问题, 恰好和1 情况相反, 最先是给item中的一个图标设置了点击事件,但是再给listview设置onitemclick事件时却没有反应,最终的解决方法是在item的layout文件根节点添加:android:descendantFocusability="blocksDescendants"
我们可以通过对Item Layout的根控件设置其android:descendantFocusability=”blocksDescendants”即可,这样Item Layout就屏蔽了所有子控件获取Focus的权限,如此就可以顺利的响应onItemClickListener中的onItemClick()方法了。