W tym rozwiązaniu użyłem 9- poprawianie obrazów tła, aby zdefiniować 2 rodzaje tła dla elementów listy. Tak, wybrany (zaznaczone) lista Element ma inne tło, jak pokazano na rysunku:
(element listy)
(wybrana pozycja)
(element listy)
Lista Widok rodzica układu elementu, to klasa rozszerzająca LinearLayout
(może być dowolna ViewGroup
) i implementująca Checkable
. W związku z tym, gdy ListView
jest ustawiony na tryb wyboru, może automatycznie zaznaczyć/odznaczyć ten widok. Ten sprawdzony stan jest następnie wykorzystywany przez selector
tle przypisanego do tego widoku:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/checked"/>
<item android:drawable="@drawable/unchecked"/>
</selector>
To sprawia, że tło elementu widoku listy zmieni się automatycznie, bez konieczności zrobić to ręcznie w kodzie każdym razem, gdy element listy jest zaznaczony.
Wynik:
Dodatkowe punkty:
- przewijania może zostać przeniesiony do lewej strony.
- Użyj dzielników list odpowiadających kolorowi cienia, lub więcej wypełnień można umieszczać między elementami listy i widokiem szczegółów.