Изменение цвета панели инструментов в AppCompat 21

? user2410644 @ | Original: StackOverFlow

Я тестируя новые AppCompat 21 Характеристики Материал дизайна. Поэтому я создал панель инструментов вроде этого:

<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/activity_my_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"/>

и включил его в моей основной файл макета .

Тогда я поставил его в качестве supportActionBar так:

Toolbar toolBar = (Toolbar)findViewById(R.id.activity_my_toolbar);
setSupportActionBar(toolBar);

Это работает, но почему-то я не могу достаточно выяснить, как настроить панель инструментов . Это серый итекст на нем черный. Как я должен изменить фон и цвет текста ?

Я прошел через данной инструкции :

http://android-developers.blogspot.de/2014/10/appcompat-v21-material-design-for-pre.html

Что я под контролем, чтобы изменить цвета ?

 <style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:windowActionBar" tools:ignore="NewApi">false</item>
    <item name="windowActionBar">false</item>
</style>

EDIT:

Я был в состоянии изменить цвет фона, добавив следующие строки кода к теме :

<item name="colorPrimary">@color/actionbar</item>
<item name="colorPrimaryDark">@color/actionbar_dark</item>

Но они не будут влиять на цвет текста. Что мне не хватает ? Вместо черного текста и черную кнопку меню, я бы предпочел, белый текст и белые кнопки меню :

Изменение цвета панели инструментов в AppCompat 21



Top 5 Respuesta

1MrEngineer13 @

Это то, что известно как DarkActionBar а значит, вы должны использовать следующую тему для получения желаемого стиля :

<android.support.v7.widget.Toolbar  
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="@dimen/triple_height_toolbar"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />


2tyczj @

опять же, это все в ссылке, которую вы предоставили

изменить текст на белый все что вам нужно сделать, это изменить тему .

use this theme

<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/activity_my_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
3Chris Cromer @

Вы можете изменить цвет текста на панели инструментов соответствии с ними:

<item name="android:textColorPrimary">#FFFFFF</item>
<item name="android:textColor">#FFFFFF</item>
4Gabriele Mariotti @

Вы можете использовать app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" тему, как предложено в других ответов, но вы также можете использовать решение, как это :

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    style="@style/HeaderBar"
    app:theme="@style/ActionBarThemeOverlay"
    app:popupTheme="@style/ActionBarPopupThemeOverlay"/>

И вы можете иметь полный контроль над вашими элементов пользовательского интерфейса с этих стилей :

<style name="ActionBarThemeOverlay" parent="">
    <item name="android:textColorPrimary">#fff</item>
    <item name="colorControlNormal">#fff</item>
    <item name="colorControlHighlight">#3fff</item>
</style>

<style name="HeaderBar">
    <item name="android:background">?colorPrimary</item>
</style>

<style name="ActionBarPopupThemeOverlay" parent="ThemeOverlay.AppCompat.Light" >
    <item name="android:background">@android:color/white</item>
    <item name="android:textColor">#000</item>
</style>
5Herry @

Эй, ​​если вы хотите, чтобы применить тему Материальная только для андроид 5.0, то вы можете добавить эту тему в это

<style name="AppHomeTheme" parent="@android:style/Theme.Material.Light">

        <!-- customize the color palette -->
        <item name="android:colorPrimary">@color/blue_dark_bg</item>
        <item name="android:colorPrimaryDark">@color/blue_status_bar</item>
        <item name="android:colorAccent">@color/blue_color_accent</item>
        <item name="android:textColor">@android:color/white</item>
        <item name="android:textColorPrimary">@android:color/white</item>
        <item name="android:actionMenuTextColor">@android:color/black</item>
    </style> 

Здесь ниже линии ответственный за цвет текста в ActionBar материальной конструкции .

<item name="android:textColorPrimary">@android:color/white</item>