Mam problem z automatyczną zmianą kolorów paska narzędzi akcji dla wersji 11 i wyższej. Mogę to zrobić w xml, ale trzeba to zmienić dynamicznie w kodzie. Jak powinienem to zrobić? Z góry dziękuję.Jak zmienić kolor tytułu paska akcji w kodzie
Odpowiedz
Identyfikator tytułu ActionBar
jest ukryty, lub innymi słowy, jest wewnętrzny i dostęp do niego nie może być wykonany typowo. Możesz odwoływać się do niego, używając Resources.getIdentifier
, a następnie View.findViewById
.
Grab identyfikator dla action_bar_title
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
Teraz można użyć identyfikatora z TextView
TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);
Jeśli używasz Sherlock Actionbar można użyć Sherlock-actionbar-id dla obsługiwanych pasków działań (Android poniżej 3.0)
int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if (0 == titleId)
titleId = com.actionbarsherlock.R.id.abs__action_bar_title;
Cant po prostu zrób to: getSherlockActivity(). GetSupportActionBar(). setTitle ("TITLE"); ?? – marchinram
Ponieważ możesz to zrobić, gdy chcesz tylko zmienić tytuł. ale to pytanie miało zmienić kolor tytułu. – salcosand
Dlatego musisz pobrać TextView w ActionBar i aby uzyskać tam potrzebny identyfikator dla TextView. Identyfikator jest inny w Sherlock ActionBar i idiv. – salcosand
Innym sposobem jest za pomocą HTML
getSupportActionBar().setTitle((Html.fromHtml("<font color=\"#FF4444\">" + getString(R.string.some_string) + "</font>")));
Ta odpowiedź jest moim zdaniem najbardziej optymalna. – Ercan
To nadal jest najbardziej niezawodny sposób, aby go ustawić. – DarkWolffe
Można użyć SpannableString i ForegroundColorSpan ustawić kolor tytułu
Spannable text = new SpannableString(actionBar.getTitle());
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionBar.setTitle(text);
To powinno być przyjęte rozwiązanie, poleganie na wewnętrznym API (action_bar_title id) jest złym pomysłem, ponieważ może ulec zmianie bez powiadomienia. – fernandohur
To jest najlepsza odpowiedź. W szczególności na KitKat przy użyciu biblioteki błędów appcompat v7 w rozwiązaniu action_bar_title id. Użyj tej odpowiedzi! – Codeversed
działa jak wdzięk – Dien
przypadku korzystania v7 appcompat library (testowane z R22), to można nazwać setTitleTextColor()
na obiekcie Toolbar
, który zastępuje pasek działań dla wszystkich poziomów interfejsu API. Na przykład:
Toolbar actionBarToolbar = (Toolbar)activity.findViewById(R.id.action_bar);
if (actionBarToolbar != null)
actionBarToolbar.setTitleTextColor(Color.RED);
Po uaktualnieniu mojego projektu do kompilacji dla Lollipop ta odpowiedź jest jedyną poprawną (Adneal rozwiązuje odpowiedź) – Fraser
Używam biblioteki pomocy 21.0.3 i to już nie działa, jeśli oczywiście nie popełniłem żadnego błędu. Na początku spróbuj rozwiązania IvanP's. –
@ ČikićNenad Naprawiono dla appcompat r22 (przynajmniej powinien działać również z r21). – matiash
- 1. Jak zmienić kolor paska tytułu bez motywu?
- 2. Jak zmienić kolor ramek QMainWindow i paska tytułu?
- 3. Jak zmienić kolor tytułu UIButton?
- 4. Swift Jak zmienić kolor tytułu UIAlertController Kolor
- 5. Jak zmienić kolor tła paska akcji bez zwiększania min. Sdk?
- 6. iOS - Globalnie zmienić kolor tytułu paska nawigacyjnego za pomocą wyglądu?
- 7. Jak zmienić kolor paska przewijania
- 8. Jak zmienić kolor tytułu okna dialogowego JQueryUI?
- 9. xcode4.2.1 - storyboard - Kontroler nawigacyjny - Kolor paska tytułu
- 10. Jak zmienić widok z zakładki paska akcji
- 11. Rozmiar tytułu tytułu paska nawigacyjnego
- 12. Jak zmienić kolor tekstu i kolor konsoli w kodzie :: blokuje?
- 13. Zmiana tytułu paska nawigacji programowo
- 14. Zmiana koloru ikon paska przycisków paska akcji
- 15. Jak ukryć pasek tytułu podczas korzystania z paska akcji?
- 16. Jak zmienić kolor tła paska stanu Android
- 17. Jak zmienić kolor paska narzędzi kontrolera nawigacyjnego w systemie iOS?
- 18. Jak zmienić kolor czcionki tytułu w zgrupowanym typie UITableView?
- 19. Jak zmienić kolor tytułu sekcji w widoku tabeli?
- 20. Jak uzyskać wysokość tytułu paska tytułu WinForm?
- 21. Jak zmienić kolor efektu dotykowego paska akcji w Androidzie 3.0 i nowszych
- 22. Dostosowywanie obszaru paska tytułu aplikacji konsoli
- 23. Ustawianie niestandardowego paska tytułu w PreferenceAcivity
- 24. Jak zmienić kolor paska stanu w systemie Android?
- 25. Jak zmienić kolor paska ProgressBar na Androida w nieokreślony sposób?
- 26. Jak zmienić kolor przycisku Wstecz paska narzędzi w systemie Android?
- 27. Jak zmienić kolor ikony paska nie wybrana w szybkim?
- 28. Jak zmienić kolor tła paska stanu w module WP8 silverlight?
- 29. Jak zmienić kolor paska nawigacyjnego w Fundacji 4?
- 30. Ikona paska tytułu WinApp
To nie działa na mojej maszynie Moto Razor. – antonio081014
To nie działa dla mnie:/ – Si8
To coś nie działa dla mnie. Aby się upewnić, nie ma statycznego tytułu w pasku akcji, więc używam "action_bar_title" w wywołaniu metody getIdentifier. To samo dotyczy "id" i "android". Używam biblioteki v7-appcompat. – MSIslam