项目中listview中嵌套checkbox,将父控件设置为android:descendantFocusability="blocksDescendants",
这样设置为的是:会覆盖子类控件而直接获得焦点,即点击listview的item区域即可选中checkbox。
按照正常使用点击item的空白区域选择时没有问题的,但是当你单独点击checkbox时,CheckBox没有相应的点击事件,而父控件也没有捕获。导致的问题是:显示的是选择了,但是实际上并没有捕获点击事件。
尝试方案1:
给父布局设置:
android:clickable=“true”
给子控件设置:
android:duplicateParentState="true" //点击事件跟随父布局。
android:clickable="false" //禁掉子控件的点击事件
结果为整个listview不能接受点击事件。
解决办法:
android:descendantFocusability="blocksDescendants",此 设置不变,父控件继续覆盖子控件获取焦点,子控件设置为
android:clickable="false",当子控件设置为不可点击时,父控件接受其点击事件。完美解决问题