ListView Item点击事件失效

来源:互联网 发布:linux 不支持ext4 编辑:程序博客网 时间:2024/04/30 10:42

学习android ,练习使用ListView的时候出现了一个问题,Item点击事件失效,点击listview没有反应。

网上查了一下,原来是ListView的Item抢占焦点或者Item没有获取焦点甚至没有绑定上OnItemClickListener监听事件。在listview的布局文件中有Button,ImageButton等子控件,这些子控件会将点击的焦点获取到,所以在点击item的时候,其实是能够获取焦点的子控件在变化,默认是其子控件优先获得焦点的,而item的setOnItemClickListener事件没有触发。

解决方法是在item的布局文件的根中使用:android:descendantFocusability="blocksDescendants"设置,官方API解释(android.view.ViewGroup):

当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
        beforeDescendants:viewgroup会优先其子类控件而获取到焦点
 
        afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
 
        blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

     


0 0