将CheckBox添加到ListView行视图会使行无法单击

Jef*_*art 3 checkbox android listview

我正在尝试创建一个ListView类似于Gmail应用的应用,其中每行CheckBox左侧有一个便于通过上下文操作栏进行多项选择和操作,同时允许点击每一行转换到另一个活动.

最初,在添加CheckBox行之前,将使用我正在使用的Holo主题中的浅蓝色背景颜色来指示他们的选择,并onListItemClickListFragment单击时调用我,并onItemLongClickOnItemLongClickListener长时间单击时调用.

当我CheckBox为行视图添加到我的布局.xml文件时,背景不再改变颜色,我不再接收点击或长按事件.如果我在我的视图.xml中添加android:longClickable="true"到顶部ViewGroup,那么我再次开始获得长按事件.但是android:clickable="true"没有让我点击活动.并且都不允许背景蓝色选择指示返回.CheckBox触摸时,只有自身提供蓝色背景的视觉触摸指示.

我需要做什么才能获得正常的视觉选择指示以及在视图中点击ListView行上的事件CheckBox

这是我的观点的相关部分.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:longClickable="true"
    android:orientation="horizontal" >

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:paddingBottom="5dp"
        android:paddingRight="12dp"
        android:paddingTop="5dp" >

        ...

    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Dev*_*red 11

我写了一篇关于这个主题的博客文章,你可能会觉得有帮助.实际上,问题是添加可聚焦元素(如CheckBoxButton)会禁用单击整个列表项的功能,并且必须禁用它们的可聚焦性.您不应该clickable向主布局添加任何标志.