2013-04-20 20 views
8

私は奇妙な問題に直面しています。リストビューにカスタム行を追加しました。ボタンを削除すると選択できますが、ボタンを追加するとクリックできません行は、下のXMLを参照してください。ボタン付きのAndroidリストビューは選択できません(クリック可能)

<?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" /> 

なぜこれが起こっている助けてください。

答えて

18

はXMLであなたのButton

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

を設定してみてください。 Buttonがその行に焦点を当てるので、行を選択できません。

26

カスタム行を使用しているため。

getViewbuttononclickListenerを設定した後、focusability falseと設定します。

すなわちbutton.setFocusable(false);

また、行のレイアウトコンテナにandroid:descendantFocusability="blocksDescendants"を設定します。 android:focusable="false"を直接設定することはできますが、これによりボタンをクリックできなくなります。

+10

アンドロイド:descendantFocusability = "blocksDescendants"は、行のレイアウトコンテナでこの問題を解決するのに十分でした。私はボタンのフォーカス可能なプロパティで何もする必要はありませんでした。 – harmanjd

+0

さらに優れたソリューションです。宣言的で高水準なので、非常に素晴らしい。 – Marchy