So behalten Sie die Hervorhebung von ListView-Elementen nach der Auswahl in Android bei
In Android kann das Beibehalten des ausgewählten Status von ListView-Elementen die Benutzererfahrung verbessern, indem Folgendes bereitgestellt wird: eine klare visuelle Anzeige der aktuellen Auswahl. Manchmal stoßen Entwickler jedoch auf Probleme, bei denen das ausgewählte Element nach bestimmten Ereignissen, wie z. B. Scrollen oder weiteren Interaktionen mit der ListView, seine Hervorhebung verliert.
Die Herausforderung
Ein Entwickler kürzlich bin auf dieses Problem gestoßen, als ich mit zwei ListViews in einem XML-Layout gearbeitet habe. Eine ListView zeigte eine Liste der Kunden an und die andere zeigte detaillierte Informationen über den ausgewählten Kunden an. Wenn ein Client in der ersten ListView ausgewählt wurde, wollte der Entwickler seinen hervorgehobenen Status beibehalten und gleichzeitig die zweite ListView mit den entsprechenden Details aktualisieren. Die Hervorhebung blieb jedoch nicht erhalten.
Die Lösung
Um dieses Problem zu beheben, gibt es mehrere Ansätze:
1. Verwenden von XML-Attributen:
Wenden Sie im XML-Layout die folgenden Attribute auf die ListView an, die die Hervorhebung ausgewählter Elemente beibehalten muss:
android:choiceMode="singleChoice" android:listSelector="@drawable/list_selector"
Ersetzen Sie @drawable/list_selector durch einen benutzerdefinierten Selektor, der die gewünschte Hervorhebungsfarbe angibt.
2. Programmatischer Ansatz:
Alternativ können Sie den folgenden Code verwenden, um den Auswahlmodus und die Hervorhebungsfarbe der ListView programmgesteuert festzulegen:
listView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); listView.setSelector(getResources().getDrawable(R.drawable.list_selector));
3. Vermeiden Sie Ansichtsmanipulation:
Es ist wichtig zu beachten, dass die direkte Manipulation von Ansichten über Ereignis-Listener aufgrund der temporären Natur von Ansichten in ListView unzuverlässig sein kann. An den Anzeigehintergründen vorgenommene Änderungen bleiben nach dem Scrollen oder anderen Ereignissen möglicherweise nicht bestehen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3