2010-05-19 6 views
60

Comment puis-je désactiver la surbrillance orange lorsque je clique sur un élément dans un GridView?Android: Désactiver la surbrillance dans GridView

Je n'ai pas été en mesure de trouver une solution dans la documentation ou lors de tests.

+0

connexes: « [Désactiver Android GridView mettant en lumière complètement (désactiver la sélection)] (http: // stackoverflow.com/q/3159897) "si vous voulez désactiver non seulement la surbrillance mais la sélection et l'utilisation de GridView juste pour la mise en page, ou gérer la sélection manuellement via les écouteurs onTouch/Click/etc. – blahdiblah

Répondre

137

Utilisez android:listSelector="#00000000" dans votre élément GridView dans votre fichier de disposition XML.

+4

Sur les listes de liste android: listSelector = "@ null" fait l'affaire mais sur gridview qui ne fonctionnera pas. Mais le réglage transparent fonctionne =/ – Warpzit

+0

+1! 50e de mon côté ... –

+1

Notez que les éléments de la vue sélectionnée peuvent encore changer en réponse à la sélection (par exemple, TextViews passant à leur état de couleur "sélectionné"). Voir [cette réponse] (http://stackoverflow.com/a/3187007/85950) pour savoir comment désactiver complètement la sélection. – blahdiblah

18

J'ai fait la même chose dans le code en utilisant

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

Son travail également avec twowayGridView – isha

35

Une autre option est de faire référence à la couleur transparente via @android: couleur/transparent

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

Fait! c'est une solution. merci :)

+0

Je suppose que c'est l'entrée listSelector qui fait l'affaire? – GHC

+0

pour masquer mis en évidence à partir de gridview. –

+0

Bonne réponse (Y) – Mutawe

0

Juste en dessous de la propriété dans votre fichier XML.

android:focusableInTouchMode="false" 
9

Ajouter cette propriété à GRIDVIEW

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

Ajouter android:listSelector="#00000000" ou android:listSelector="@android:color/transparent" dans votre élément XML GridView comme ci-dessous.

<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

essayer ...

android: listSelector = "@ android: couleur/transparent"

Questions connexes