<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="300px" android:layout_height="200px" android:orientation="vertical" > <TextView android:id="@+id/tv_dialog_item" android:layout_width="200px" android:layout_height="fill_parent"/> <CheckBox android:layout_width="100px" android:layout_height="fill_parent"/> </LinearLayout>
listview显示出来后,发现失去了setOnItemClickListener的支持,原来是当ListView里面存在CheckBox控件的时候android会默认把focus交给这些控件,导致ListView无法得到焦点
解决方法 : 在<LinearLayout >布局里面加入代码 android:descendantFocusability="blocksDescendants" 意思是会覆盖子类控件而直接获得焦点
其中还有两个属性值: afterDescendants:viewgroup 只有当其子类控件不需要获取焦点时才获取焦点; beforeDescendants:viewgroup 会优先其子类控件而获取焦点