2010-05-19 12 views
60

Come posso disattivare l'evidenziazione arancione quando fai clic su un elemento in una GridView?Android: disabilita l'evidenziazione in GridView

Non sono stato in grado di trovare una soluzione nella documentazione o tramite test.

+0

Correlati: "[Disabilita Android GridView evidenziando completamente (disabilitare la selezione)] (http: // stackoverflow.com/q/3159897) "se si desidera disabilitare non solo l'evidenziazione ma la selezione e utilizzare GridView solo per il layout, oppure gestire manualmente la selezione tramite ascoltatori onTouch/Click/etc. – blahdiblah

risposta

137

Utilizzare android:listSelector="#00000000" nell'elemento GridView nel file di layout XML.

+4

Android: listSelector = "@ null" fa il trucco ma su gridview che non funzionerà. Ma impostarlo in modo trasparente funziona =/ – Warpzit

+0

+1! 50 dalla mia parte ... –

+1

Si noti che gli elementi della vista selezionata possono ancora cambiare in risposta alla selezione (ad es., TextViews si trasforma nello stato colore "selezionato"). Vedere [questa risposta] (http://stackoverflow.com/a/3187007/85950) per come disabilitare completamente la selezione. – blahdiblah

18

ho fatto la stessa cosa in codice utilizzando

GridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); 
+0

Funziona anche con twowayGridView – isha

35

Un'altra opzione è quella di fare riferimento al colore trasparente tramite @android: colore/trasparente

<?xml version="1.0" encoding="utf-8"?> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/grid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:listSelector="@android:color/transparent" 
/> 
6
<GridView 
      android:id="@+id/gridView1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center" 
      android:horizontalSpacing="10dp" 
      android:listSelector="#00000000" 
      android:numColumns="3" 
      android:scrollbars="none" 
      android:stretchMode="columnWidth" 
      android:verticalSpacing="10dp" /> 

Fatto! questa è una soluzione. grazie :)

+0

. Prendo che è la voce listSelector che fa il trucco? – GHC

+0

per nascondere evidenziato da gridview. –

+0

Ottima risposta (Y) – Mutawe

0

Basta impostare sotto la proprietà nel file XML.

android:focusableInTouchMode="false" 
9

Aggiungi questa proprietà ai GridView

android:listSelector="@android:color/transparent" 
0

Aggiungi android:listSelector="#00000000" o android:listSelector="@android:color/transparent" nel vostro elemento XML GridView come muggito.

<GridView 
     android:id="@+id/gridView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:columnWidth="150dp" 
     android:gravity="center" 
     android:listSelector="#00000000" 
     android:numColumns="auto_fit" 
     android:stretchMode="columnWidth" /> 
2

provarlo ...

android: listSelector = "@ Android: colore/trasparente"

Problemi correlati