Jak ustawić kolor tytułu dla nowego paska narzędzi Toolbar?


119

Używam nowego paska narzędzi w wersji 7 i do końca życia nie mogę wymyślić, jak zmienić kolor tytułu. Ustawiłem @style paska narzędzi na styl zadeklarowany w styles.xml i zastosowałem titleTextStyle z textColor. Czy coś mi brakuje? Koduję dla Lollipopa, ale obecnie testuję na urządzeniu KitKat.

style.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

    <style name="ActionBar" parent="Theme.AppCompat">
        <item name="android:background">@color/actionbar_background</item>
        <item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item>
    </style>

    <style name="ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_title_text</item>
    </style>

</resources>

actionbar.xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar_actionbar"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    style="@style/ActionBar"/>

Odpowiedzi:


241

Opcja 1) Szybki i łatwy sposób (tylko pasek narzędzi)

Od appcompat-v7-r23 możesz używać następujących atrybutów bezpośrednio w swoim Toolbarlub jego stylu:

app:titleTextColor="@color/primary_text"
app:subtitleTextColor="@color/secondary_text"

Jeśli minimalny zestaw SDK to 23 i używasz natywnego, Toolbarpo prostu zmień prefiks przestrzeni nazw na android.

W Javie możesz użyć następujących metod:

toolbar.setTitleTextColor(Color.WHITE);
toolbar.setSubtitleTextColor(Color.WHITE);

Te metody pobierają kolor int, a nie identyfikator zasobu koloru!

Opcja 2) Zastąp styl i atrybuty motywu paska narzędzi

układ / xxx.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.MyApp.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    style="@style/Widget.MyApp.Toolbar.Solid"/>

wartości / style.xml

<style name="Widget.MyApp.Toolbar.Solid" parent="Widget.AppCompat.ActionBar">
    <item name="android:background">@color/actionbar_color</item>
    <item name="android:elevation" tools:ignore="NewApi">4dp</item>
    <item name="titleTextAppearance">...</item>
</style>

<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
    <!-- Parent theme sets colorControlNormal to textColorPrimary. -->
    <item name="android:textColorPrimary">@color/actionbar_title_text</item>
</style>

Wsparcie! Moje ikony też zmieniły kolor!

@PeterKnut zgłosił, że ma to wpływ na kolor przycisku przepełnienia, przycisku szuflady nawigacji i przycisku Wstecz. Zmienia również kolor tekstu SearchView.

Odnośnie kolorów ikon: colorControlNormalDziedziczy z

  • android:textColorPrimary dla ciemnych motywów (biały na czarnym)
  • android:textColorSecondary do jasnych motywów (czarny na białym)

Jeśli zastosujesz to do motywu paska akcji , możesz dostosować kolor ikony.

<item name="colorControlNormal">#de000000</item>

Wystąpił błąd w appcompat-v7 do r23, który wymagał od Ciebie zastąpienia natywnego odpowiednika w następujący sposób:

<item name="android:colorControlNormal" tools:ignore="NewApi">?colorControlNormal</item>

Wsparcie! Mój SearchView to bałagan!

Uwaga: ta sekcja jest prawdopodobnie nieaktualna.

Ponieważ używasz widżetu wyszukiwania, który z jakiegoś powodu używa innej strzałki wstecz (nie wizualnie, technicznie) niż ten dołączony do appcompat-v7, musisz ustawić go ręcznie w motywie aplikacji . Elementy do rysowania w bibliotece pomocy są odpowiednio przyciemniane. W przeciwnym razie zawsze byłby biały.

<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>

Jeśli chodzi o tekst widoku wyszukiwania ... nie ma łatwego sposobu. Po przekopaniu się przez jego źródło znalazłem sposób na przejście do widoku tekstu. Nie testowałem tego, więc daj mi znać w komentarzach, jeśli to nie zadziałało.

SearchView sv = ...; // get your search view instance in onCreateOptionsMenu
// prefix identifier with "android:" if you're using native SearchView
TextView tv = sv.findViewById(getResources().getIdentifier("id/search_src_text", null, null));
tv.setTextColor(Color.GREEN); // and of course specify your own color

Bonus: Zastąp styl i atrybuty motywu ActionBar

Odpowiedni styl dla domyślnego paska akcji appcompat-v7 wyglądałby następująco:

<!-- ActionBar vs Toolbar. -->
<style name="Widget.MyApp.ActionBar.Solid" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="background">@color/actionbar_color</item> <!-- No prefix. -->
    <item name="elevation">4dp</item> <!-- No prefix. -->
    <item name="titleTextStyle">...</item> <!-- Style vs appearance. -->
</style>

<style name="Theme.MyApp" parent="Theme.AppCompat">
    <item name="actionBarStyle">@style/Widget.MyApp.ActionBar.Solid</item>
    <item name="actionBarTheme">@style/ThemeOverlay.MyApp.ActionBar</item>
    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>

2
To rozwiązanie ma różne skutki uboczne. Funkcja textColorPrimary jest stosowana również na przycisku szuflady nawigacji i tekście w widgecie wyszukiwania. Co więcej, kolor przycisku wstecz jest ustawiony na biały (nie pytaj mnie dlaczego).
— Peter Knut

@PeterKnut Wtedy nie zdawałem sobie sprawy, jak niekompletne jest zaproponowane rozwiązanie. Po edycji - tak go używam i to działa. Proszę jednak przejrzeć fragment kodu koloru tekstu widoku wyszukiwania.
— Eugen Pechanec

Teraz działa prawie poprawnie. Dwie uwagi: kopanie tekstu w widgecie wyszukiwania nie jest dobrym pomysłem, jego identyfikator można zmienić w przyszłości. Właściwość Background w Widget.MyApp.ActionBar wpływa również na tło przycisków i podpowiedzi. Tło należy ustawić bezpośrednio w <android.support.v7.widget.Toolbar>.
— Peter Knut,

Zgadzam się, to nie jest dobry pomysł, przynajmniej dodałbym tam zerową weryfikację (jednak jakie są szanse na zmianę tego identyfikatora). Odnośnie tła: Nie masz racji, jeśli dodasz je jako styl do elementu paska narzędzi, tło zostanie zastosowane tylko do widgetu paska narzędzi. Jeśli zdefiniujesz tło w programie ThemeOverlayi użyjesz go jako motywu , to tło każdego elementu potomnego również zostanie pokolorowane.
— Eugen Pechanec

OK, masz rację, jeśli chodzi o styl i motyw. Mój błąd.
— Peter Knut

40

Oto moje rozwiązanie, jeśli chcesz zmienić tylko kolor tytułu, a nie kolor tekstu w widgecie wyszukiwania.

layout / toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:background="@color/toolbar_bg"
    app:theme="@style/AppTheme.Toolbar"
    app:titleTextAppearance="@style/AppTheme.Toolbar.Title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"/>

wartości / motywy.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
    </style>

    <style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
        <!-- Customize color of navigation drawer icon and back arrow --> 
        <item name="colorControlNormal">@color/toolbar_icon</item>
    </style>

    <style name="AppTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
        <!-- Set proper title size -->
        <item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
        <!-- Set title color -->
        <item name="android:textColor">@color/toolbar_title</item>
    </style>
</resources>

W podobny sposób możesz ustawić również wygląd napisów.


Miałem problem polegający na tym, że kolor tytułu był inny w zależności od tego, czy pasek narzędzi istniał we fragmencie, czy w działaniu. Użycie tej sztuczki do zastąpienia koloru było jedyną poprawką, jaką udało mi się znaleźć (inne sposoby zmiany koloru nie działały). Mam nadzieję, że pomoże to większej liczbie osób. Dzięki!
— Pedro Loureiro

3
@Peter Knut, musisz określić, że działa to tylko dla API21 i nowszych, co sprawia, że ​​jest bezużyteczne
— DoruChidean

@DoruChidean testowane z Jelly Bean (API 16): działa jak urok!
— crubio

Nie można ustawić motywu na aktywność. IE, <activity android: name = ". SomeActivity" android: theme = "@ style / AppTheme.Toolbar"
— lostintranslation

11

Jeśli obsługujesz API 23 i nowsze , możesz teraz użyć atrybutu titleTextColor, aby ustawić kolor tytułu paska narzędzi.

layout / toolbar.xml

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:titleTextColor="@color/colorPrimary"
        />

MyActivity.java

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar)
toolbar.setTitleTextColor(Color.WHITE);

Wydaje się, że są one również obsługiwane przez bibliotekę appcompat.
— Eugen Pechanec

10

Ustawiam app:titleTextColormoje android.support.v7.widget.Toolbarprace na Androidzie 4.4 i 6.0 również z com.android.support:appcompat-v7:23.1.0:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:titleTextColor="@android:color/white" />

4
Zwróć uwagę, że przestrzeń nazw to aplikacja, a nie Android.
— Tommie

po prostu dodanie tej aplikacji liniowej: titleTextColor = "@ android: color / white" działało również w KitKat i nowszych wersjach. Dzięki @hunyadym
— Ghanshyam Nayma

9

Przez chwilę mnie to denerwowało i nie podobała mi się żadna z udzielonych odpowiedzi, więc spojrzałem na źródło, aby zobaczyć, jak to działa.

FractalWrench znajduje się na właściwej ścieżce, ale można go używać poniżej API 23 i nie trzeba go ustawiać na pasku narzędzi samodzielnie.

Jak powiedzieli inni, możesz ustawić styl na pasku narzędzi za pomocą

app:theme="@style/ActionBar"

iw tym stylu możesz ustawić kolor tekstu tytułu za pomocą

<item name="titleTextColor">#00f</item>

dla wersji przed API 23 lub dla 23+

<item name="android:titleTextColor">your colour</item>

Pełny plik xml

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="?attr/actionBarSize"
    android:layout_width="match_parent"
    app:theme="@style/ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"/>


<style name="ActionBar" parent="@style/ThemeOverlay.AppCompat.ActionBar">
    <item name="android:titleTextStyle">@style/ActionBarTextStyle</item>
    <item name="titleTextColor">your colour</item>
    <item name="android:background">#ff9900</item>
</style>

Oto wszystkie atrybuty, które można ustawić dla paska narzędzi

<declare-styleable name="Toolbar">
    <attr name="titleTextAppearance" format="reference" />
    <attr name="subtitleTextAppearance" format="reference" />
    <attr name="title" />
    <attr name="subtitle" />
    <attr name="gravity" />
    <attr name="titleMargins" format="dimension" />
    <attr name="titleMarginStart" format="dimension" />
    <attr name="titleMarginEnd" format="dimension" />
    <attr name="titleMarginTop" format="dimension" />
    <attr name="titleMarginBottom" format="dimension" />
    <attr name="contentInsetStart" />
    <attr name="contentInsetEnd" />
    <attr name="contentInsetLeft" />
    <attr name="contentInsetRight" />
    <attr name="maxButtonHeight" format="dimension" />
    <attr name="navigationButtonStyle" format="reference" />
    <attr name="buttonGravity">
        <!-- Push object to the top of its container, not changing its size. -->
        <flag name="top" value="0x30" />
        <!-- Push object to the bottom of its container, not changing its size. -->
        <flag name="bottom" value="0x50" />
    </attr>
    <!-- Icon drawable to use for the collapse button. -->
    <attr name="collapseIcon" format="reference" />
    <!-- Text to set as the content description for the collapse button. -->
    <attr name="collapseContentDescription" format="string" />
    <!-- Reference to a theme that should be used to inflate popups
         shown by widgets in the toolbar. -->
    <attr name="popupTheme" format="reference" />
    <!-- Icon drawable to use for the navigation button located at
         the start of the toolbar. -->
    <attr name="navigationIcon" format="reference" />
    <!-- Text to set as the content description for the navigation button
         located at the start of the toolbar. -->
    <attr name="navigationContentDescription" format="string" />
    <!-- Drawable to set as the logo that appears at the starting side of
         the Toolbar, just after the navigation button. -->
    <attr name="logo" />
    <!-- A content description string to describe the appearance of the
         associated logo image. -->
    <attr name="logoDescription" format="string" />
    <!-- A color to apply to the title string. -->
    <attr name="titleTextColor" format="color" />
    <!-- A color to apply to the subtitle string. -->
    <attr name="subtitleTextColor" format="color" />
</declare-styleable>

4

Najprostszy sposób zmiany Toolbarkoloru tytułu za pomocą inCollapsingToolbarLayout .

Dodaj poniższe style do CollapsingToolbarLayout

<android.support.design.widget.CollapsingToolbarLayout
        app:collapsedTitleTextAppearance="@style/CollapsedAppBar"
        app:expandedTitleTextAppearance="@style/ExpandedAppBar">

style.xml

<style name="ExpandedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textSize">24sp</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>

    <style name="CollapsedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>

3

Jeśli możesz używać appcompat-v7 app: titleTextColor = "# fff">

<android.support.v7.widget.Toolbar  
        android:id="@+id/toolbar"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:background="@color/colorPrimary"   
        android:visibility="gone"   
        app:titleTextColor="#fff">   
    </android.support.v7.widget.Toolbar>   

2

To zadziałało dla mnie

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    app:navigationIcon="@drawable/ic_back"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:subtitleTextColor="@color/white"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:title="This week stats"
    app:titleTextColor="@color/white">


    <ImageView
        android:id="@+id/submitEditNote"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_gravity="right"
        android:layout_marginRight="10dp"
        android:src="@android:drawable/ic_menu_manage" />
</android.support.v7.widget.Toolbar>

2

Utwórz pasek narzędzi w swoim xml ... toolbar.xml:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"

    </android.support.v7.widget.Toolbar>

Następnie dodaj następujące elementy w pliku toolbar.xml:

app:titleTextColor="@color/colorText"
app:title="@string/app_name">

Remeber @ color / colorText to po prostu twój plik color.xml z atrybutem koloru o nazwie colorText i twoim kolorem. Jest to najlepszy sposób na wywołanie ciągów znaków zamiast zakodowania na sztywno twojego koloru wewnątrz toolbar.xml. Masz również inne opcje modyfikowania tekstu, takie jak: tekst Wygląd ... itd ... po prostu wpisz app: tekst ... a intelisense wyświetli opcje w Android Studio.

Twój końcowy pasek narzędzi powinien wyglądać następująco:

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_weight="1"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/Theme.AppCompat"
       app:subtitleTextAppearance="@drawable/icon"
        app:title="@string/app_name">
    </android.support.v7.widget.Toolbar>

Uwaga: ten pasek narzędzi powinien znajdować się w twoim activity_main.xml.Easy Peasie

Inną opcją jest zrobienie tego wszystkiego w klasie:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitleTextColor(Color.WHITE);

Powodzenia


Hej, dzięki, to działa. Ale wiesz, jak używać tego atrybutu tylko w stylach? Zamiast powodować bałagan XML. Dzięki :)
— Greggz,

oczywiście twój @kolor pochodzi bezpośrednio z twojego zasobu ciągu, dzięki czemu twój xml jest ładniejszy niż zakodowanie na stałe twoich kolorów.
— RileyManda,

1

Aby zmienić kolor

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="?attr/colorPrimary"

/>

Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
        myToolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.Auth_Background));
        setSupportActionBar(myToolbar);

1

Walczyłem z tym przez kilka godzin dzisiaj, ponieważ wszystkie te odpowiedzi są teraz trochę nieaktualne, co z MDC i nowymi możliwościami tworzenia motywów po prostu nie mogłem zrozumieć, jak zastąpić app:titleTextColoraplikację szeroko jako styl.

Odpowiedź jest taka, że titleTextColordostępna w pliku styles.xml jest nadpisywanie czegoś, co dziedziczy Widget.AppCompat.Toolbar. Dziś myślę, że najlepszym wyborem powinno być Widget.MaterialComponents.Toolbar:

<style name="Widget.LL.Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
     <item name="titleTextAppearance">@style/TextAppearance.LL.Toolbar</item>
     <item name="titleTextColor">@color/white</item>
     <item name="android:background">?attr/colorSecondary</item>
</style>

<style name="TextAppearance.LL.Toolbar" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
     <item name="android:textStyle">bold</item>
</style>

W motywie aplikacji określ pasek narzędzi Styl:

<item name="toolbarStyle">@style/Widget.LL.Toolbar</item>

Teraz możesz pozostawić plik XML, w którym określasz pasek narzędzi, bez zmian. Przez długi czas myślałem, że zmiana android:textColorwyglądu tekstu tytułu w pasku narzędzi powinna działać, ale z jakiegoś powodu nie.


0
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:titleTextColor="@color/white"
    android:background="@color/green" />


0
public class MyToolbar extends android.support.v7.widget.Toolbar {

public MyToolbar(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    AppCompatTextView textView = (AppCompatTextView) getChildAt(0);
    if (textView!=null) textView.setTextAppearance(getContext(), R.style.TitleStyle);
}

}

Lub proste użycie z MainActivity:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarMain);
setSupportActionBar(toolbar);
((AppCompatTextView) toolbar.getChildAt(0)).setTextAppearance(this, R.style.TitleStyle);

style.xml

<style name="TileStyle" parent="TextAppearance.AppCompat">
    <item name="android:textColor">@color/White</item>
    <item name="android:shadowColor">@color/Black</item>
    <item name="android:shadowDx">-1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">1</item>
</style>

Chociaż ten kod może odpowiedzieć na pytanie, lepiej byłoby uwzględnić kontekst , wyjaśniając, jak to działa i kiedy go używać. Odpowiedzi zawierające tylko kod nie są przydatne na dłuższą metę.
— Aditi Rawat,

0

Zrób to z toolbar.setTitleTextAppearance(context, R.style.TitleTextStyle);

// to jest styl, w którym możesz dostosować swój schemat kolorów

 <style name="TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:fontFamily">@string/you_font_family</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textAppearance">@style/you_text_style</item>
    <item name="android:textColor">#000000</item>
    <item name="android:textSize">20sp</item>
</style>

0

Bardzo proste, to zadziałało dla mnie (tytuł i ikona białe):

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/PrimaryColor"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:elevation="4dp" />

0

Z Biblioteką komponentów materiałów można używać app:titleTextColor atrybutu.

W układzie możesz użyć czegoś takiego:

<com.google.android.material.appbar.MaterialToolbar
    app:titleTextColor="@color/...."
    .../>

Możesz także użyć własnego stylu :

<com.google.android.material.appbar.MaterialToolbar
     style="@style/MyToolbarStyle"
    .../>

z (rozszerzeniem Widget.MaterialComponents.Toolbar.Primarystylu):

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar.Primary">
       <item name="titleTextColor">@color/....</item>
  </style>

lub (rozszerzenie Widget.MaterialComponents.Toolbarstylu):

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar">
       <item name="titleTextColor">@color/....</item>
  </style>

wprowadź opis obrazu tutaj

Możesz również nadpisać kolor zdefiniowany przez styl za pomocą android:themeatrybutu (używając Widget.MaterialComponents.Toolbar.Primarystylu):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar.Primary"
        android:theme="@style/MyThemeOverlay_Toolbar"
        />

z:

  <style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is also used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/...</item>
  </style>

wprowadź opis obrazu tutaj

lub (używając Widget.MaterialComponents.Toolbarstylu):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar"
        android:theme="@style/MyThemeOverlay_Toolbar2"

z:

  <style name="MyThemeOverlay_Toolbar3" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is used by title -->
    <item name="android:textColorPrimary">@color/white</item>

    <!-- This attributes is used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/secondaryColor</item>
  </style>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.