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"
/>
3 回答
万千封印
TA贡献1891条经验 获得超3个赞
问题是Android不允许您选择具有可聚焦元素的列表项。我修改了列表项上的复选框,使其具有如下属性:
android:focusable="false"
现在我的包含复选框的列表项(也适用于按钮)在传统意义上是“可选择的”(它们点亮,您可以单击列表项中的任何位置,“onListItemClick”处理程序将触发等)。
编辑:作为更新,一位评论者提到“只是一个注释,在更改按钮的可见性后,我必须以编程方式再次禁用焦点。”
千万里不及你
TA贡献1784条经验 获得超9个赞
如果您在列表项中包含ImageButton,则应将descendantFocusability
值设置为根列表项元素中的“blocksDescendants”。
android:descendantFocusability="blocksDescendants"
并在视图中的focusableInTouchMode
标志。true
ImageButton
android:focusableInTouchMode="true"
添加回答
举报
0/150
提交
取消