带有Button的Android ListView无法选择(可点击)

时间:2013-04-20 11:10:41

标签: android listview xml-layout

我面临一个奇怪的问题,我在ListView中添加了一个自定义行,当我删除Button行时可以选择,但是当我添加Button时我无法点击该行,请参阅下面的xml。 / p>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="77dp"
    android:layout_height="77dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="18dp"
    android:src="@drawable/company_logo" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Idds  sdsad "
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/imageView1"

    android:layout_below="@+id/textView1"
    android:textColor="#8b8989"
    android:layout_marginLeft="5dp"
    android:text="Tap to see detail"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView2"
    android:layout_centerHorizontal="true"
    android:text="Button" />

请帮助解释为什么会发生这种情况。

2 个答案:

答案 0 :(得分:26)

当您使用自定义行时。

onclickListener中为button设置getView后,请设置其focusability false

button.setFocusable(false);

并为您的行的布局容器设置android:descendantFocusability="blocksDescendants"。   您可以直接设置android:focusable="false",但这会使您的按钮无法点击。

答案 1 :(得分:20)

尝试设置

android:focusable="false"
android:focusableInTouchMode="false"

到xml中的ButtonButton获得焦点在行上,这就是您无法选择行的原因。