Selektor Android dla wybranego elementu nie działa
Mam widok listy, w którym chcę wyróżnić wybrane elementy w niestandardowy sposób. Ustawiam wszystkie właściwości elementu w karciegetView
metoda, w tymitemView.setSelected(true)
.
Główny układ definiuje widok listy w następujący sposób:
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="multipleChoice"
android:listSelector="@drawable/list_selector" />
(Tryb gry z wyborem też nie pomaga).
Thelist_selector to prawie pusty stub:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@android:color/transparent" />
</selector>
Nie potrzebuję konkretnych stylów do przeglądania listy jako całości, więc zostawiłbym domyślny, ale zgodnie zta odpowiedź, potrzebujemy selektora dla listview dla selektora elementów do działania. W każdym razie bezlist_selector problem pozostaje.
Układ elementu widoku listy:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:background="@drawable/listitem_background"
android:orientation="vertical">
i odnosi się do następującychlistitem_background selektor:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@android:color/white" />
<item android:drawable="@android:color/transparent" />
</selector>
Problem polega na tym, że wybrane elementy nie mają białego tła.
Jeśli się zmienięandroid:state_selected="true"
selektor wlistitem_background na przykładandroid:state_pressed="true"
, następnie selektor zaczyna działać, tzn. tło elementu staje się białe, jeśli element zostanie dotknięty.
Tak więc przypuszczam, że występuje błąd w selektorach lub w sposobie, w jaki wybieram przedmioty.
Mogę napisać obejście, ustawiając tło z Javy lub używając stanów kontrolnych, ale chcę zrozumieć i naprawić bieżący problem z selektorami. Z góry dziękuję.