我有一个listView,其中每行在行布局中都有一个按钮。但是,这似乎使行本身无法点击。如何使按钮和行都可以点击?
感谢。
答案 0 :(得分:25)
您需要在列表中设置itemsCanFocus,如下所示:
mList.setItemsCanFocus(true);
使按钮可点击。然后,您将需要使用自己的适配器,并在getView中返回一个可点击且可聚焦的视图。您还将丢失默认突出显示状态,因此您需要将它们重新放入后台资源。所以这样做:
view.setClickable(true);
view.setFocusable(true);
view.setBackgroundResource(android.R.drawable.menuitem_background);
在返回视图之前到您的视图。
答案 1 :(得分:9)
每当我看到有关android:focusable
和android:clickable
属性的帖子时,我总会看到它们同时设置为相同的值。我认为必须有一个理由,如果它们是两个独立的属性而不是一个。
事实证明,实现理想行为的更好方法是设置
android:focusable="false"
或
yourButton.setFocusable(false)
Button
中的View
。完成此操作后,您将能够在OnClickListener
上设置Button
,点击该行将触发onListItemClick()
中的OnItemClickListener
方法。
答案 2 :(得分:2)
尝试在xml中将小部件设置为不可点击且不可聚焦,点击项目将正常工作,点击按钮也能正常工作。
android:clickable="false"
android:focusable="false"
希望这有帮助。
答案 3 :(得分:0)
不幸的是,我不认为这是可能的。 ListView行可以具有可聚焦的小部件,如按钮,或可单击,而不是两者。见link.