Android自定义ListView无法单击项目

Android自定义ListView无法单击项目

所以我有一个自定义的ListView对象。列表项目有两个堆叠在一起的文本视图,加上一个水平进度条,我想保持隐藏,直到我实际执行某些操作。最右边是一个复选框,我只想在用户需要将更新下载到他们的数据库时显示。当我通过将可见性设置为Visibility.GONE来禁用复选框时,我可以单击列表项。当复选框可见时,除了复选框之外,我无法单击列表中的任何内容。我做了一些搜索,但没有找到任何与我目前的情况相关的东西。我发现了这个问题但我正在使用重写的ArrayAdapter,因为我正在使用ArrayLists在内部包含数据库列表。我只需要获取LinearLayout视图并像Tom一样添加onClickListener吗?我不确定。

这是listview行布局XML:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">
        <TextView
            android:id="@+id/UpdateNameText"
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:textSize="18sp"
            android:gravity="center_vertical"
            />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:id="@+id/UpdateStatusText"
            android:singleLine="true"
            android:ellipsize="marquee"
            />

牧羊人nacy
浏览 322回答 3
3回答

万千封印

问题是Android不允许您选择具有可聚焦元素的列表项。我修改了列表项上的复选框,使其具有如下属性:android:focusable="false"现在我的包含复选框的列表项(也适用于按钮)在传统意义上是“可选择的”(它们点亮,您可以单击列表项中的任何位置,“onListItemClick”处理程序将触发等)。编辑:作为更新,一位评论者提到“只是一个注释,在更改按钮的可见性后,我必须以编程方式再次禁用焦点。”

千万里不及你

如果您在列表项中包含ImageButton,则应将descendantFocusability值设置为根列表项元素中的“blocksDescendants”。android:descendantFocusability="blocksDescendants"并在视图中的focusableInTouchMode标志。trueImageButtonandroid:focusableInTouchMode="true"

跃然一笑

我发生了类似的问题,发现CheckBox在ListView中相当挑剔。它会发生在整个ListItem上的意图,并覆盖onListItemClick。您可能希望为其实现单击处理程序,并为CheckBox设置text属性,而不是使用TextViews。我会说看看这个View对象,它可能比CheckBox更好用选中的文本视图
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java