310 votes

Android : désactivation de la mise en surbrillance lors d'un clic sur le listView

Je veux désactiver la surbrillance orange qui se produit lorsque l'on touche une ligne de listView. Jusqu'à présent, dans mon xml, j'ai essayé ce qui suit :

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

Plus d'informations : Je veux qu'il y ait une différence nulle lorsqu'un utilisateur touche l'écran sur cet objet listView.

685voto

RoflcoptrException Points 22111

Ajoutez ceci à votre xml :

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

et pour le problème, ceci peut fonctionner (je ne suis pas sûr et je ne sais pas s'il existe de meilleures solutions) :

vous pourriez appliquer un Liste des états de couleur à votre TextView

190voto

mushtaq Points 1146

La réponse de RoflcoptrException devrait faire l'affaire, mais pour une raison ou une autre, elle n'a pas fonctionné pour moi. Je publie donc la solution qui a fonctionné pour moi, en espérant que cela aidera quelqu'un.

<ListView 
android:listSelector="@android:color/transparent" 
android:cacheColorHint="@android:color/transparent"
/>

101voto

Cheryl Simon Points 25259

L'effet de surbrillance orange est un style sur le ListView. Cet article donne une bonne vue d'ensemble de la façon de modifier le style de l'affichage de liste.

Essentiellement, vous disposez d'un sélecteur qui spécifie différents éléments de style en fonction de l'état actuel.

voir ceci pour une solution courte et rapide http://stackoverflow.com/a/12242564/185022

63voto

emdog4 Points 695

De http://groups.google.com/group/Android-developers/browse_thread/thread/03c92af7b519d290?pli=1

lorsque vous définissez votre ListAdapter, utilisez le code suivant

ListAdapter adapter = new SimpleCursorAdapter(MyList, Layout, c, 
                new String[] { "Name", "Score" }, to) 
{ 
        public boolean areAllItemsEnabled() 
        { 
                return false; 
        } 
        public boolean isEnabled(int position) 
        { 
                return false; 
        } 
}; 

Cela va remplacer la classe BaseAdapter. Elle annule également la bordure blanche entre les cellules.

39voto

sheetal Points 1061

Ajoutez ceci à votre XMl en même temps que le sélecteur de liste, en espérant que cela fonctionnera.

android:cacheColorHint="#00000000"
android:listSelector="@android:color/transparent"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X