Làm cách nào để bạn đặt màu tiêu đề cho Thanh công cụ mới?


119

Tôi đang sử dụng Thanh công cụ v7 mới và suốt đời tôi không thể tìm ra cách thay đổi màu của tiêu đề. Tôi đã đặt @style của Thanh công cụ thành kiểu được khai báo trong styles.xml và áp dụng titleTextStyle với textColor. Tui bỏ lỡ điều gì vậy? Tôi đang viết mã cho Lollipop nhưng hiện đang thử nghiệm trên thiết bị Kitkat.

styles.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"/>

Câu trả lời:


241

Tùy chọn 1) Cách nhanh chóng và dễ dàng (chỉ Thanh công cụ)

Vì appcompat-v7-r23, bạn có thể sử dụng các thuộc tính sau trực tiếp trên kiểu của bạn Toolbarhoặc của nó:

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

Nếu SDK tối thiểu của bạn là 23 và bạn sử dụng bản địa Toolbarchỉ cần thay đổi tiền tố không gian tên thành android.

Trong Java, bạn có thể sử dụng các phương pháp sau:

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

Các phương thức này lấy int màu không phải là ID tài nguyên màu!

Tùy chọn 2) Ghi đè các thuộc tính chủ đề và kiểu Thanh công cụ

layout / 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"/>

giá trị / styles.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>

Cứu giúp! Các biểu tượng của tôi cũng thay đổi màu sắc!

@PeterKnut đã báo cáo điều này ảnh hưởng đến màu của nút tràn, nút ngăn điều hướng và nút quay lại. Nó cũng thay đổi màu văn bản của SearchView.

Liên quan đến màu sắc biểu tượng: Kế colorControlNormalthừa từ

  • android:textColorPrimary cho các chủ đề tối (trắng trên đen)
  • android:textColorSecondary cho các chủ đề ánh sáng (đen trên trắng)

Nếu bạn áp dụng điều này cho chủ đề của thanh tác vụ , bạn có thể tùy chỉnh màu biểu tượng.

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

Đã xảy ra lỗi trong appcompat-v7 lên đến r23, yêu cầu bạn cũng phải ghi đè đối tác gốc như vậy:

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

Cứu giúp! SearchView của tôi là một mớ hỗn độn!

Lưu ý: Phần này có thể đã lỗi thời.

Vì bạn sử dụng tiện ích tìm kiếm vì lý do nào đó sử dụng mũi tên quay lại (không trực quan, về mặt kỹ thuật) so với mũi tên đi kèm với appcompat-v7, bạn phải đặt nó theo cách thủ công trong chủ đề của ứng dụng . Các ngăn kéo của thư viện hỗ trợ được tô màu chính xác. Nếu không nó sẽ luôn có màu trắng.

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

Đối với văn bản xem tìm kiếm ... không có cách nào dễ dàng. Sau khi tìm hiểu nguồn của nó, tôi đã tìm thấy một cách để đến chế độ xem văn bản. Tôi chưa thử nghiệm điều này vì vậy vui lòng cho tôi biết trong phần nhận xét nếu điều này không hiệu quả.

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

Phần thưởng: Ghi đè các thuộc tính chủ đề và kiểu ActionBar

Kiểu phù hợp cho thanh tác vụ appcompat-v7 action mặc định sẽ trông như sau:

<!-- 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
Giải pháp này có nhiều tác dụng phụ. textColorPrimary cũng được áp dụng trên nút ngăn điều hướng và văn bản trong tiện ích tìm kiếm. Hơn nữa, màu của nút quay lại được đặt thành màu trắng (đừng hỏi tôi tại sao).
Peter Knut,

@PeterKnut Vào thời điểm đó, tôi không nhận ra rằng giải pháp được đề xuất chưa hoàn thiện như thế nào. Sau khi chỉnh sửa - đây là cách tôi sử dụng nó và nó hoạt động. Tuy nhiên, vui lòng xem lại đoạn mã màu văn bản trong chế độ xem tìm kiếm.
Eugen Pechanec

Bây giờ nó hoạt động gần như chính xác. Hai lưu ý: đào văn bản trong tiện ích tìm kiếm không phải là ý kiến ​​hay, id của nó có thể bị thay đổi trong tương lai. Thuộc tính nền trong Widget.MyApp.ActionBar cũng ảnh hưởng đến nền trong các nút và chú giải công cụ. Nền phải được đặt trực tiếp trong <android.support.v7.widget.Toolbar>.
Peter Knut,

Tôi đồng tình, đó không phải là một ý kiến ​​hay, ít nhất tôi sẽ thêm một kiểm tra null ở đó (tuy nhiên khả năng thay đổi id đó là bao nhiêu). Liên quan đến nền: Bạn không đúng, nếu bạn thêm nó làm kiểu cho phần tử thanh công cụ thì nền chỉ áp dụng cho tiện ích thanh công cụ. Nếu bạn xác định nền trong ThemeOverlayvà sử dụng nó làm chủ đề , thì nền của mọi phần tử con cũng sẽ được tô màu.
Eugen Pechanec

OK, bạn đã đúng với phong cách và chủ đề. Lỗi của tôi.
Peter Knut

40

Đây là giải pháp của tôi nếu bạn chỉ cần thay đổi màu của tiêu đề chứ không phải màu của văn bản trong tiện ích tìm kiếm.

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"/>

giá trị / chủ đề.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>

Theo cách tương tự, bạn cũng có thể đặt subtitleTextAppearance.


Tôi đang gặp sự cố trong đó màu sắc của tiêu đề sẽ khác nhau tùy thuộc vào việc thanh công cụ tồn tại trong Phân đoạn hay trong Hoạt động. Sử dụng thủ thuật này để ghi đè màu là cách khắc phục duy nhất tôi có thể tìm thấy (các cách khác để thay đổi màu không hoạt động). Tôi hy vọng điều này sẽ giúp nhiều người hơn. Cảm ơn!
Pedro Loureiro

3
@ Peter Knut bạn cần phải xác định này chỉ hoạt động cho API21 trở lên, trong đó loại làm cho nó vô dụng
DoruChidean

@DoruChidean đã thử nghiệm với Jelly Bean (API 16): nó hoạt động như một sự quyến rũ!
crubio

Không thể đặt chủ đề cho hoạt động. IE, <activity android: name = ". SomeActivity" android: theme = "@ style / AppTheme.Toolbar"
lostintranslation

11

Nếu bạn đang hỗ trợ API 23 trở lên, bây giờ bạn có thể sử dụng thuộc tính titleTextColor để đặt màu tiêu đề của Thanh công cụ.

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);

Những thứ này dường như cũng được hỗ trợ bởi thư viện appcompat.
Eugen Pechanec

10

Cài đặt app:titleTextColortrên android.support.v7.widget.Toolbarcác tác phẩm của tôi cho tôi trên Android 4.4 và trên 6.0 với 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
Lưu ý rằng không gian tên là ứng dụng chứ không phải android.
Tommie

chỉ cần thêm ứng dụng dòng này: titleTextColor = "@ android: color / white" đã làm việc cho tôi trong kitkat trở lên. Cảm ơn @hunyadym
Ghanshyam Nayma

9

Điều này đã làm tôi khó chịu một thời gian và tôi không thích bất kỳ câu trả lời nào được đưa ra, vì vậy tôi đã xem nguồn để xem nó hoạt động như thế nào.

FractalWrench đang đi đúng hướng, nhưng nó có thể được sử dụng dưới API 23 và không cần phải đặt nó trên thanh công cụ.

Như những người khác đã nói, bạn có thể đặt một kiểu trên thanh công cụ với

app:theme="@style/ActionBar"

và theo phong cách đó, bạn có thể đặt màu văn bản tiêu đề với

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

cho trước API 23 hoặc 23+

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

Xml đầy đủ

<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>

Đây là tất cả các thuộc tính có thể được đặt cho thanh công cụ

<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

Cách đơn giản nhất để thay đổi Toolbarmàu tiêu đề với in CollapsingToolbarLayout.

Thêm các kiểu bên dưới vào CollapsingToolbarLayout

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

styles.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

Nếu bạn có thể sử dụng ứng dụng appcompat-v7 : 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

Điều này đã làm việc cho tôi

<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

Tạo một thanh công cụ trong xml ... toolbar.xml của bạn:

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

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

Sau đó, thêm phần sau vào toolbar.xml của bạn:

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

Remeber @ color / colorText chỉ đơn giản là tệp color.xml của bạn với thuộc tính màu có tên colorText và màu của bạn. Đây là cách tốt nhất để làm dịu các chuỗi của bạn thay vì mã hóa màu bên trong toolbar.xml của bạn. Bạn cũng có các tùy chọn khác để sửa đổi văn bản của mình, chẳng hạn như: textAppearance ... vv ... chỉ cần gõ app: text ... và intelisense sẽ cung cấp cho bạn các tùy chọn trong android studio.

thanh công cụ cuối cùng của bạn sẽ trông như thế này:

 <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>

NB: Thanh công cụ này phải nằm bên trong activity_main.xml của bạn.Easy Peasie

Một tùy chọn khác là làm tất cả trong lớp của bạn:

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

Chúc may mắn


Này, cảm ơn nó hoạt động. Nhưng bạn biết làm thế nào để sử dụng thuộc tính đó chỉ trong các kiểu? Thay vì làm cho xml lộn xộn hơn. Cảm ơn :)
Greggz

rõ ràng @color của bạn đến trực tiếp từ tài nguyên chuỗi của bạn, theo cách đó xml của bạn gọn gàng hơn so với mã hóa màu của bạn.
RileyManda

1

Để thay đổi màu sắc

<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

Tôi đã vật lộn với điều này trong vài giờ hôm nay bởi vì tất cả những câu trả lời này đã lỗi thời app:titleTextColor.

Câu trả lời là titleTextColorcó sẵn trong styles.xml là bạn đang ghi đè thứ gì đó kế thừa từ đó Widget.AppCompat.Toolbar. Hôm nay tôi nghĩ lựa chọn tốt nhất nên là 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>

Và trong chủ đề ứng dụng của bạn, hãy chỉ định thanh công cụ

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

Bây giờ bạn có thể để xml nơi bạn chỉ định thanh công cụ không thay đổi. Trong một thời gian dài, tôi nghĩ rằng việc thay đổi giao android:textColordiện văn bản tiêu đề trong thanh công cụ sẽ hoạt động, nhưng vì một số lý do, nó không hoạt động.


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);
}

}

Hoặc sử dụng đơn giản từ 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>

Mặc dù mã này có thể trả lời câu hỏi, nhưng sẽ tốt hơn nếu bao gồm một số ngữ cảnh , giải thích cách thức hoạt động và khi nào sử dụng nó. Các câu trả lời chỉ có mã không hữu ích về lâu dài.
Aditi Rawat

0

Làm điều đó với toolbar.setTitleTextAppearance(context, R.style.TitleTextStyle);

// đây là phong cách mà bạn có thể tùy chỉnh bảng màu của mình

 <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

Rất đơn giản, điều này phù hợp với tôi (tiêu đề và biểu tượng màu trắng):

    <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

Với Thư viện Thành phần Vật liệu, bạn có thể sử dụng app:titleTextColorthuộc tính.

Trong bố cục, bạn có thể sử dụng một số thứ như:

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

Bạn cũng có thể sử dụng một kiểu tùy chỉnh :

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

with (mở rộng Widget.MaterialComponents.Toolbar.Primarykiểu):

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

hoặc (mở rộng Widget.MaterialComponents.Toolbarkiểu):

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

nhập mô tả hình ảnh ở đây

Bạn cũng có thể ghi đè màu được xác định bởi kiểu bằng cách sử dụng android:themethuộc tính (sử dụng Widget.MaterialComponents.Toolbar.Primarykiểu):

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

với:

  <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>

nhập mô tả hình ảnh ở đây

hoặc (sử dụng Widget.MaterialComponents.Toolbarkiểu):

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

với:

  <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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.