2013-04-20 11 views
8

Sono di fronte a uno strano problema, ho aggiunto una riga personalizzata nel mio ListView quando sto rimuovendo la riga Button è selezionabile, ma come aggiungo Button non riesco a fare clic la riga, per favore vedi l'xml sotto.Android ListView con pulsante non è selezionabile (cliccabile)

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

Aiutateci perché questo sta accadendo.

risposta

18

impostazione

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

al vostro Button nel xml prova. Lo Button guadagna fuoco sulla riga, ecco perché non è possibile selezionare la riga.

26

Come si utilizza la riga personalizzata.

Dopo aver impostato onclickListener per button nel getView, impostare il numero focusability false.

ie button.setFocusable(false);

E impostare anche android:descendantFocusability="blocksDescendants" per il contenitore di layout della riga. È possibile impostare direttamente android:focusable="false" ma ciò renderà il pulsante non selezionabile.

+10

setting android: descendantFocusability = "blocksDescendants" nel contenitore di layout della riga è stato sufficiente per risolvere questo problema per me. Non dovevo fare nulla con la proprietà focalizzabile del pulsante. – harmanjd

+0

Soluzione ancora migliore, in quanto è più dichiarativa e di alto livello. Molto bella. – Marchy

Problemi correlati