近期实现一个ExpandableListView 实现三级菜单的功能,奈何各级item都点击无响应,一番搏斗后发现,是子布局中存在CheckBox控件导致(自定义的item中如果存在Button或者Checkable的子类控件,这类子控件会优先获取点击事件焦点),此时我们需要手动在ChildView子布局的最外层的layout设置此属性 android:descendantFocusability=”blocksDescendants”,即可获取点击事件焦点。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点