2016-09-01 5 views
3

Я пытаюсь настроить ActionBar в своем приложении. Я хочу изменить цвет фона и цвет текста.Пользовательский цвет текста панели инструментов не используется

Мой styles.xml, как показано ниже:

<resources> 

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

     <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item> 

     <!-- Support library compatibility --> 
     <item name="actionBarStyle">@style/AppTheme.ActionBar</item> 
    </style> 

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

     <!-- Support library compatibility --> 
     <item name="background">@color/actionbar_background</item> 
     <item name="titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item> 
    </style> 

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

</resources> 

В моей AndroidManifest.xml я добавил android:theme="@style/AppTheme.NoActionBar". В своей деятельности я добавил панель действий с кодом

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

В результате у меня есть панель действий с правильным цветом, но неправильный цвет текста.

Что случилось?

Примечание: Я использую AppCompat, а не Holo или другое.

+0

Где находится стиль 'MyActionBar'? Пожалуйста, обновите вопрос с помощью этого стиля. – Sufian

+0

@ Суфийский О, извините. Обновлено. – ziwert

+0

В настоящее время цвет текста белый или черный (на ActionBar)? – Sufian

ответ

2

Это происходит потому, что тема Toolbar настроена на свет, поэтому Android выбирает темный (черный) цвет текста.

Вам необходимо обновить его следующим образом:

<style name="AppTheme.ActionBar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="titleTextColor">#FF0001</item> 
    <item name="subtitleTextColor">#FF0001</item> 
    <!-- your other theme attributes --> 
</style> 

Примечания:

  1. Для Toolbar темы, использовать ThemeOverlay вместо Theme.AppCompat. Связанные - When should one use Theme.AppCompat vs ThemeOverlay.AppCompat?,
  2. заменить #FF0001 с любым цветом, который вам нравится. Это цвет вашего текста заголовка.
+0

нормально, сейчас текст белый. Но это должен быть оранжевый цвет – ziwert

+0

? Или спина стрелка тоже? – Sufian

+0

Uhm. Я не вижу «стрелки назад» на панели действий. – ziwert

0

может быть, вы должны удалить actionBarTabTextStyle из AppTheme.NoActionBar

надеюсь, что это поможет ...

+0

Ничего не изменилось – ziwert

+0

смотрите здесь http: // stackoverflow.com/a/5881739/6778400 – user6778400

0

Почему вы не непосредственно использовать

<item name="android:textColor">@color/blue</item> 

внутри вашего пользовательского стиля MyActionBar Defination ,

0

Вместо app:theme я использую android:theme, который работает для меня.

Дайте ему попробовать.

<android.support.v7.widget.Toolbar 
android:id="@+id/toolbar" 
android:layout_width="match_parent" 
android:layout_height="?attr/actionBarSize" 
android:theme="@style/MyActionBar" />    <----------Here 
+0

спасибо, но это не помогло – ziwert

+0

Я думаю, что это должно решить его. 'titleTextColor' вместо' textColor' '' –

+0

К сожалению, это не работает – ziwert

0

Вы можете изменить текст ActionBar и цвет фона с помощью кода Java

yourToolbar.setTitleTextColor (Color.white); yourToolbar.setBackgroundColor (Цвет.YOUR_COLOR);

Смежные вопросы