在一个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会覆盖子类控件而直接获得焦点
本文介绍了解决Android ListView中item点击事件被子控件拦截的问题,通过设置descendantFocusability属性为blocksDescendants来确保item本身能获取点击焦点。
480

被折叠的 条评论
为什么被折叠?



