Je souhaite désactiver la surbrillance orange qui se produit lorsque vous touchez une ligne 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 n'y ait aucune différence lorsqu'un utilisateur touche l'écran sur cet objet listView.
android
android-listview
highlighting
John Moffitt
la source
la source
Fragment
pour la liste. La disposition XML contient unLinearLayout
et plusieursTextView
éléments. Où dois-je désactiver la surbrillance de ligne, s'il vous plaît?listView.setSelector(android.R.color.transparent);
La réponse de RoflcoptrException devrait faire l'affaire, mais pour une raison quelconque, cela n'a pas fonctionné pour moi, donc je poste la solution qui a fonctionné pour moi, j'espère qu'elle aide quelqu'un
la source
L'effet de surbrillance orange est un style sur le ListView. Cet article donne un bon aperçu de la façon de remplacer le style listView.
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 https://stackoverflow.com/a/12242564/185022
la source
listSelector
devrait être ça.Depuis ListView: désactivez la mise en surbrillance de la mise au point ,
lorsque vous définissez votre
ListAdapter
utilisation du code suivantCela remplacera la
BaseAdapter
classe. Il annule également la bordure blanche entre les cellules.la source
isEnabled
désactivation d'un élément n'est pas le moyen de le désactiver! La documentation indique que celaisEnabled
est censé déterminer si un élément est un séparateur.ajoutez cela aussi à ur XMl avec listselector..hope ça marchera
la source
Si vous utilisez
ArrayAdapter
ouBaseAdapter
pour remplir les éléments de la liste.Override
laisEnabled
méthode et le retourfalse
.la source
Après quelques `` google '' et tests sur des appareils virtuels et réels, je remarque que mon code ci-dessous fonctionne:
remarquez que j'ai omis la
areAllItemsEnabled()
partie.la source
Rien ne m'aide mais ceci:
transparent_drawable.xml
:layout.xml
:la source
dans du code
et ajoutez une petite image transparente au dossier dessinable.
Comme: transparent.xml
la source
Pour moi,
android:focusableInTouchMode="true"
c'est la voie à suivre.android:listSelector="@android:color/transparent"
ne sert à rien. Notez que j'utilise une liste personnalisée avec un certain nombre d'objets dans chaque ligne.la source
Il vous suffit d'ajouter:
android:cacheColorHint="@android:color/transparent"
la source
Comme alternative:
ou
la source
Il existe un moyen rapide et facile de le faire: Dans la méthode:
J'espère que ça vous aidera;)
la source
Si vous souhaitez désactiver la surbrillance pour un seul élément d'affichage de liste, mais que la cellule reste activée, définissez la couleur d'arrière-plan de cette cellule pour désactiver la surbrillance.
Par exemple, dans la disposition de votre cellule, définissez
android:background="@color/white"
la source
vous pouvez simplement obtenir ce
pos
que vous obtenez duonItemClick
et faites:c'est la meilleure façon que je connaisse
la source