"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment garder les éléments ListView en surbrillance après la sélection dans Android ?

Comment garder les éléments ListView en surbrillance après la sélection dans Android ?

Publié le 2024-12-23
Parcourir:683

How to Keep ListView Items Highlighted After Selection in Android?

Comment garder les éléments ListView en surbrillance après la sélection dans Android

Dans Android, maintenir l'état sélectionné des éléments ListView peut améliorer l'expérience utilisateur en fournissant un indicateur visuel clair de la sélection actuelle. Cependant, les développeurs rencontrent parfois des problèmes où l'élément sélectionné perd sa mise en surbrillance après certains événements, tels que le défilement ou d'autres interactions avec ListView.

Le défi

Un développeur récemment a été confronté à ce problème en travaillant avec deux ListViews dans une mise en page XML. Un ListView affichait une liste de clients et l'autre affichait des informations détaillées sur le client sélectionné. Lorsqu'un client était sélectionné dans le premier ListView, le développeur souhaitait conserver son état en surbrillance tout en mettant à jour le deuxième ListView avec les détails correspondants. Cependant, la mise en évidence n'était pas préservée.

La solution

Pour résoudre ce problème, il existe plusieurs approches :

1. Utilisation des attributs XML :

Dans la mise en page XML, appliquez les attributs suivants au ListView qui doit conserver la mise en surbrillance des éléments sélectionnés :

android:choiceMode="singleChoice"
android:listSelector="@drawable/list_selector"

Remplacez @drawable/list_selector par un sélecteur personnalisé dessinable qui spécifie la couleur de surbrillance souhaitée.

2. Approche programmatique :

Vous pouvez également utiliser le code suivant pour définir par programme le mode de sélection de ListView et la couleur de surbrillance :

listView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
listView.setSelector(getResources().getDrawable(R.drawable.list_selector));

3. Évitez la manipulation des vues :

Il est important de noter que la manipulation des vues directement via les écouteurs d'événements peut s'avérer peu fiable en raison de la nature temporaire des vues dans ListView. Les modifications apportées à l'affichage des arrière-plans peuvent ne pas persister après le défilement ou d'autres événements.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3