Android 将 ListView 项目设置为在有 ImageButton 时可点击

Android set ListView items clickable when there's a ImageButton on it

我有一个用 ArrayAdapter 填充的自定义 listView:

ArrayAdapter<String>  MyAdapter = new ArrayAdapter<>(
                this,
                R.layout.row,
                R.id.info,
                list
        );

我的行布局由一个 Textview 和一个 ImageButton 组成。 我做了一些研究,发现默认情况下 Android 不允许单击已经具有可聚焦项目的列表项目。因此,按照建议,我将以下属性添加到我的按钮布局中:

android:focusable="false"
android:clickable="false"

不幸的是,问题仍然存在。有谁知道是什么问题吗?

提前致谢。

将以下内容添加到 xml 文件中的按钮属性:

android:focusable="false"

并删除:

android:clickable="false"

它应该可以工作。它可以点击,只是不会获得焦点。

但是,您对不可点击的项目(例如视图)使用 android:clickable="true"

将此添加到您的 ImageButton 对象中

    android:setFocusable="false"
    android:setClickable="false"
    android.setLongClickable="false"

像这样设置你的ImageButton

android:setFocusable="false"
android:setClickable="true"

并将 OnClickListener 添加到您的 ImageButton 并将 onItemClickListener 添加到您的 ListView。我认为它会起作用。

好的,我找到了我自己问题的答案。

我需要在行布局中添加这一行:

  android:descendantFocusability="blocksDescendants"

通过这一行,我明确地阻止了行布局的子元素的可聚焦性。 这很棘手,因为显然只有 imageButtons 有这种行为。

添加

android:focusableInTouchMode="false"

对于ImageButton