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
我有一个用 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