jak zmienić kolor wskaźnika tekstowego zakładki? mogę zmienić ikonę za pomocą znacznika wyboru, o którym mowa example. ale nie można przejść do koloru tekstu. w jaki sposób?jak zmienić kolor tekstu wskaźnika kart w systemie Android?
Odpowiedz
Style to w niestandardowym zmiany motywu
<item name="android:tabWidgetStyle">@android:style/Widget.TabWidget</item>
i
<style name="Widget.TabWidget">
<item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item>
<item name="android:ellipsize">marquee</item>
<item name="android:singleLine">true</item>
</style>
<style name="TextAppearance.Widget.TabWidget">
<item name="android:textSize">14sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@android:color/tab_indicator_text</item>
</style>
Oto nowa odpowiedź znalazłem od Fred Grott (http://knol.google.com/k/fred-grott/advance-tabs/) po krótkim poszukiwaniu internetowej.
Pozwala to ustawić kolor tekstu jako selector
, aby można było użyć innego koloru, gdy wybrana jest karta. Które mogą być bardzo przydatne, jeśli używasz innego koloru tła dla karty, jeśli jest wybrana. Oczywiście możesz po prostu rzucić zwykły kolor, a nie selektor.
final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));
Gdzie R.color.text_tab_indicator jest selector xml file położony w RES/folderu rozciągliwej.
Innymi słowy, tekst wskaźnika to naprawdę TextView
, który można odtworzyć za pomocą obiektu View
, do którego można uzyskać dostęp z obiektu TabWidget
.
Rzuć okiem na przykłady Freda, aby uzyskać więcej informacji i kontekst dotyczący deklaracji zmiennych, a także innych sztuczek.
tv is null , findViewById (android.R.id.title) nie znajduje go – trampster
Wypróbuj ColorStateLists. Powodzenia.
Odpowiedź Danny'ego C jest w 100% poprawna. Chciałem tylko dodać coś, aby uzyskać kompletną odpowiedź z plikiem zasobów.
text_tab_indicator pod pliku res/color
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:textColor="@color/text_tab_selected"
android:state_selected="true" />
<item android:textColor="@color/text_tab_unselected"
android:state_selected="false" />
</selector>
I to text_tab_unselected & text_tab_selected będzie wyglądać pod kolorach/wartości folderowi
<resources>
<color name="text_tab_selected">#ffffff</color>
<color name="text_tab_unselected">#95ab45</color>
Potem wreszcie dodać odpowiedź Dannyy w plik z zakładkami
final TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(this.getResources().getColorStateList(R.color.text_tab_indicator));
'android: textColor' powinno być' android: color' w pliku text_tab_indicator.xml. – iStar
getColorStateList jest przestarzałe, więc użyj ContextCompat.getColorStateList (context, R.color.text_tab_indicator). – CoolMind
kończy się niepowodzeniem, ponieważ telewizor ma wartość null, nie można znaleźć TextView z tytułem id. Mój kod znajduje się w OnCreate fragmentu zawierającego TabLayout – trampster
Zmiana koloru może być również podana bez użycia java - co prawdopodobnie jest lepsze.
Zrobiłem zmiany w text_tab_indicator (Zawiadomienie textColor została zmieniona na „kolor”):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@color/text_tab_selected" />
<item android:state_selected="false" android:color="@color/text_tab_unselected" />
</selector>
Ustaw styl TabWidget zwrócić się do konkretnego stylu w kodzie XML:
<TabWidget
...
style="@style/TabText"
/>
Deklarują swoją text_tab_indicator zlokalizowany w/RES/kolor, jak pożądany kolor w stylu
<style name="TabText">
<item name="android:textColor">@color/tab_text_color</item>
</style>
To działało jak czar (dla mnie).
Pozdrowienia, Randall
Chociaż to rozwiązanie wygląda idealnie, nie działało ono na obu moich urządzeniach (Android 5 i 2.3). – CoolMind
- 1. Jak zmienić kolor tekstu ActionBar w systemie Android 5.0 Lollipop?
- 2. Android: jak zmienić kolor tekstu ProgressDialog?
- 3. zmienić kolor tekstu selektora czasu [android]
- 4. Notepad ++ zmienić kolor tekstu?
- 5. Jak zmienić kolor tekstu JButton'a
- 6. Jak zmienić wybrany kolor tekstu?
- 7. Jak zmienić kolor tekstu i kolor konsoli w kodzie :: blokuje?
- 8. Jak zmienić kolor zaznaczenia tekstu w WKWebView?
- 9. Jak zmienić kolor kursora tekstu w Eclipse
- 10. Jak zmienić kolor tekstu w IFrame
- 11. Jak zmienić kolor tekstu elementów w QListWidget?
- 12. Jak zmienić kolor kursora tekstu w Tkinter?
- 13. Jak zmienić kolor paska stanu w systemie Android?
- 14. Jak zmienić kolor przycisku koloru po naciśnięciu w systemie Android?
- 15. Jak zmienić kolor dymka EditText (pod kursorem) w systemie Android?
- 16. Jak zmienić kolor przycisku Wstecz paska narzędzi w systemie Android?
- 17. Jak zmienić kolor obramowania przycisku radiowego w systemie Android?
- 18. Jak zmienić styl zakładki w systemie Android?
- 19. Jak wysłać zdarzenie wskaźnika w systemie Android?
- 20. Android ActionBar Kolor tekstu
- 21. Jak zmienić kolor tekstu części TextView?
- 22. AlertDialog Motyw: Jak zmienić kolor tekstu przedmiotu?
- 23. Jak zmienić kolor tylko tekstu linku kotwicy?
- 24. Jak zmienić kolor tekstu pierwszej opcji wybierz
- 25. Jak zmienić kolor tekstu opcji pola wyboru?
- 26. Android: Jak ustawić kolor tekstu toast za
- 27. Jak zmienić kolor tła wskaźnika w telefonie iPhone X?
- 28. Czy można zmienić kolor wybranej zakładki w systemie Android?
- 29. Android: zmienić kolor wyłączonego tekstu za pomocą motywu/stylu?
- 30. Jak zmienić kolor hiperłącza w android
masz. przez ten link: http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/res/res/values/themes.xml;h=6b3d7407d1c895a3c297e60d5beac98e2d34c271;hb = HEAD i odsyłaj APIDemos. Dzięki . – Praveen
@DroidBase, @Alex Volovoy, gdzie powinienem umieścić style. Kiedy umieściłem go jako osobny plik xml w folderze wartości, otrzymałem komunikat o błędzie "Błąd podczas pobierania elementu nadrzędnego dla elementu: Nie znaleziono zasobu pasującego do podanej nazwy" Widget ". –
@Mithun: Podaj fragment kodu znajdź dokładne rozwiązanie. Domyślam się, że nie wspomniałeś o atrybucie nadrzędnym. to jest przesłonięcie domyślnego stylu obiektu xml – Praveen