ListView item点击事件和里面的控件冲突失效

在一个ListView 单个item的控件比较多的时候,会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。
这时候就可以使用descendantFocusability,在listView 的item的跟布局添加
    android:descendantFocusability="blocksDescendants"
 此时item点击会覆盖子类控件而直接获得焦点,从而解决了冲突。
descendantFocusability 属性的值有三种:

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

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

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


猜你喜欢

转载自blog.csdn.net/javasxl/article/details/54409419