Chcę, aby prosty TextView
zachowywał się tak, simple_list_item_1
jak ListView
robi. Oto XML:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:gravity="center" android:focusable="true"
android:minHeight="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:background="@android:drawable/list_selector_background" />
Wszystko działa z wyjątkiem koloru tekstu, który (prawdopodobnie) nie zmienia się w stanie skupienia. Jak mogę to zmienić na textAppearanceLargeInverse
?
android
textview
android-selector
Janchenko
źródło
źródło
Odpowiedzi:
Wykonałem kilka testów, aż jeden zadziałał, więc: res / color / button_dark_text.xml
res / layout / view.xml
źródło
android:textColor="@color/button_dark_text"
res/color
folderze?A selektor jest tutaj również odpowiedzią.
Wyszukaj bright_text_dark_focused.xml w źródłach, dodaj do projektu w katalogu res / color, a następnie odwołaj się z TextView jako
źródło
ListFragment
, i skończyłem z wieloma błędami . Co ja robię źle?Oto moja implementacja, która zachowuje się dokładnie jak pozycja na liście (przynajmniej 2.3)
res / layout / list_video_footer.xml
res / color / bright_text_dark_focused.xml
źródło
Aby działał na zaznaczeniu w widoku listy, użyj następującego kodu:
Najwyraźniej kluczem jest
state_activated="true"
stan.źródło
Oto przykład selektora. Jeśli używasz Eclipse, nie sugeruje to czegoś po kliknięciu Ctrl i spacji: / musisz to wpisać.
Możesz poszukać odniesienia;
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
źródło
Zawsze korzystałem z powyższego rozwiązania, nie szukając więcej po tym. ;-)
Jednak dzisiaj natknąłem się na coś i pomyślałem o tym. :)
Ta funkcja jest rzeczywiście dostępna z interfejsu API 1 i nazywa się jako ColorStateList , gdzie możemy dostarczyć kolor do różnych stanów widżetów (jak już wiemy).
Jest to również bardzo dobrze udokumentowane tutaj.
źródło
W
res/color
miejscu plik „text_selector.xml”:Następnie w
TextView
użyciu:W kodzie musisz ustawić detektor kliknięć.
Przepraszamy, jeśli występują błędy, zmieniłem kod przed opublikowaniem i nie sprawdziłem.
źródło
Jeśli korzystam z TextView w kartach, ta definicja selektora działała dla mnie (wypróbowałem Klausa Balduino, ale nie zadziałało):
źródło
Próbowałeś
setOnFocusChangeListener
? W module obsługi możesz zmienić wygląd tekstu.Na przykład:
Następnie możesz zastosować dowolne zmiany, gdy są skoncentrowane lub nie. Możesz także użyć ViewTreeObserver do nasłuchiwania zmian globalnego fokusa.
Na przykład:
Mam nadzieję, że to pomaga lub daje ci pomysły.
źródło