如果listview的item的布局中有checkbox等抢焦点的控件,仍然要求整个item响应点击或长按等事件。
在布局文件的根节点中加入属性android:descendantFocusability="blocksDescendants",让事件分块处理,并优先响应整个item的事件。
举个栗子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@drawable/chapter_item_bg"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:orientation="horizontal">
<CheckBox
android:id="@+id/cb_delete_select"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:button="@drawable/check_box_bg"
android:visibility="gone" />
......
</LinearLayout>
ListView Item点击事件与Checkbox共存处理

当ListView的Item包含CheckBox等可聚焦组件时,可通过在布局根节点设置android:descendantFocusability="blocksDescendants",确保点击或长按事件首先作用于整个Item,实现事件分块处理。
5029

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



