Chcę wyłączyć pomarańczowe podświetlenie, które pojawia się po dotknięciu wiersza listView. Do tej pory w moim xml próbowałem:
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
Więcej informacji: Chcę, aby nie było żadnej różnicy, gdy użytkownik dotknie ekranu tego obiektu listView.
android
android-listview
highlighting
John Moffitt
źródło
źródło
Fragment
dla listy. Układ XML zawieraLinearLayout
i wieleTextView
elementów. Gdzie powinienem wyłączyć podświetlenie wiersza?listView.setSelector(android.R.color.transparent);
Odpowiedź RoflcoptrException powinna załatwić sprawę, ale z jakiegoś powodu nie zadziałała dla mnie, więc zamieszczam rozwiązanie, które zadziałało dla mnie, mam nadzieję, że pomoże komuś
źródło
Pomarańczowy efekt podświetlenia jest stylem w ListView. Ten artykuł zawiera dobry przegląd sposobu zastąpienia stylu listView.
Zasadniczo masz selektor, który określa różne elementy stylu w zależności od bieżącego stanu.
zobacz to, aby znaleźć krótkie i szybkie rozwiązanie https://stackoverflow.com/a/12242564/185022
źródło
listSelector
powinna być.Z ListView: Wyłącz podświetlenie Focus ,
po ustawieniu
ListAdapter
użyj następującego koduTo zastąpi
BaseAdapter
klasę. Anuluje również białe obramowanie między komórkami.źródło
isEnabled
celu wyłączenia elementu nie jest sposobem na jego wyłączenie! Dokumentacja mówi, żeisEnabled
ma ustalić, czy element jest separatorem.dodaj to również do swojego XMl wraz z listselector..hope nadzieję, że to zadziała
źródło
Jeśli używasz
ArrayAdapter
lubBaseAdapter
do wypełnienia elementów listy. sposób i powrotu .Override
isEnabled
false
źródło
Po kilku „googleach” i testowaniu na urządzeniach wirtualnych i rzeczywistych zauważam, że mój poniższy kod działa:
zauważ, że pominąłem tę
areAllItemsEnabled()
część.źródło
Nic mi nie pomaga, ale to:
transparent_drawable.xml
:layout.xml
:źródło
W kodzie
i dodaj mały przezroczysty obraz do folderu z możliwością rysowania.
Jak: transparent.xml
źródło
Dla mnie
android:focusableInTouchMode="true"
jest droga.android:listSelector="@android:color/transparent"
nie ma sensu. Pamiętaj, że używam niestandardowego widoku listy z wieloma obiektami w każdym rzędzie.źródło
Musisz tylko dodać:
android:cacheColorHint="@android:color/transparent"
źródło
Jako alternatywa:
lub
źródło
Jest na to szybki i łatwy sposób: W metodzie:
Mam nadzieję, że to pomoże;)
źródło
Jeśli chcesz wyłączyć podświetlenie dla pojedynczego elementu widoku listy, ale zachować komórkę włączoną, ustaw kolor tła dla tej komórki, aby wyłączyć podświetlenie.
Na przykład w układzie komórki ustaw
android:background="@color/white"
źródło
możesz po prostu zdobyć to
pos
, co otrzymujeszonItemClick
i zrobić:to najlepszy sposób, jaki znam
źródło