使用Button,Android Row变为Unclickable

时间:2010-02-23 22:54:24

标签: java android

我有一个listView,其中每行在行布局中都有一个按钮。但是,这似乎使行本身无法点击。如何使按钮和行都可以点击?

感谢。

4 个答案:

答案 0 :(得分:25)

您需要在列表中设置itemsCanFocus,如下所示:

    mList.setItemsCanFocus(true);

使按钮可点击。然后,您将需要使用自己的适配器,并在getView中返回一个可点击且可聚焦的视图。您还将丢失默认突出显示状态,因此您需要将它们重新放入后台资源。所以这样做:

    view.setClickable(true);
    view.setFocusable(true);
    view.setBackgroundResource(android.R.drawable.menuitem_background);
在返回视图之前

到您的视图。

答案 1 :(得分:9)

每当我看到有关android:focusableandroid: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.