更改工具栏中的标题颜色?

Mik*_*ike 32 android android-theme android-toolbar

我有一个工具栏,我使用,并设置标题:

((ActionBarActivity)getActivity()).getSupportActionBar().setTitle("Home");
Run Code Online (Sandbox Code Playgroud)

有没有办法将颜色从黑色变为白色?

我尝试制作自己的主题并在xml中设置它,但没有骰子:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme2" parent="Theme.AppCompat">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColorPrimary">@color/primary_text</item>
        <item name="android:textColorSecondary">@color/secondary_text</item>

    </style>

    <style name="Widget.MyApp.ActionBar" parent="Widget.AppCompat.ActionBar">
        <item name="android:background">@color/primary</item>
        <item name="theme">@style/ThemeOverlay.MyApp.ActionBar</item>
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    </style>

    <style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
        <item name="android:textColorPrimary">#FFFFFF</item>
    </style>



</resources>
Run Code Online (Sandbox Code Playgroud)

XML:

<?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="match_parent"
    android:background="#e5e5e5"
    android:orientation="vertical" >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:minHeight="?attr/actionBarSize"
        android:background="@color/primary"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/Widget.MyApp.ActionBar">

        <Spinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/statsSpin"
            android:spinnerMode="dropdown"
            android:textColor="#FFFFFF"/>


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



    <ListView
        android:id="@+id/yourStats"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:dividerHeight="0px"
        android:divider="@null"

        >
    </ListView>



</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

tac*_*lux 51

编程方式:

toolbar.setTitleTextColor(0xFFFFFFFF);
Run Code Online (Sandbox Code Playgroud)

  • 如果你正在使用AppCompat库,那就没有了. (8认同)

ian*_*ake 26

根据AppCompat创建者的主题vs Style博客文章以及AppCompat 第21版的帖子,DarkActionBar工具栏(即Toolbar带有深色背景和浅色文本的)可以通过添加android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"到您Toolbar的XML 来完成:

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

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/statsSpin"
        android:spinnerMode="dropdown"/>


</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

这会将文本颜色和默认颜色更改为许多属性(例如Spinner深色背景所需的浅色文本).

  • 在[AppCompat 22.1](https://android-developers.googleblog.com/2015/04/android-support-library-221.html)之前,您必须使用`app:theme` - 如果您使用的是版本晚于那个(你应该在这一点上),然后是的,你应该到处使用`android:theme`.我已经更新了我的答案,以反映今天的最佳做法. (3认同)

San*_*nal 21

在应用程序基础主题中创建一个新样式

  <style name="custom_toolbar" parent="@style/Widget.AppCompat.Toolbar">
        <item name="titleTextColor">#replace with color</item>
  </style>
Run Code Online (Sandbox Code Playgroud)

并使用工具栏的样式

  <item name="toolbarStyle">@style/custom_toolbar</item>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,“toolbarStyle”属性仅适用于 api 21+ (2认同)

dar*_*ara 9

我知道有很多答案超过希望,它会帮助那些不理解上述答案的人.

Android有一个名为Toolbar的视图.此视图的标题始终为color.xml资源的默认颜色,项目名称为重音.您可以通过两种方式更改工具栏颜色.

  1. 通过xml,我建议你这样做,下面你可以看到例子

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:titleTextColor="@color/White" />Here you can change it.Remember APP attribute not ANDROID
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过编程方式在活动或片段中.

    Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
    toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent));
    
    Run Code Online (Sandbox Code Playgroud)


San*_*tel 7

如果您只想更改标题文字颜色,请试试这个..

getSupportActionBar().setTitle(Html.fromHtml("<font color='#746E66'>"+titleText+"</font>"));

有用..!!