2015-02-26 10 views
0

У меня есть активность с панелью действий. minSdkVersion равно 11.Изменить цвет фона в панели действий Android

Панель действия - это серый цвет, я хотел бы изменить его на другой цвет, чтобы он соответствовал другим цветам в моем приложении.

Я создал следующие стили

<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
</style> 

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">#FFF</item> 
</style> 

И определили тему данного действия в appmanifest к MyTheme но при запуске приложения я получаю эту ошибку:

You need to use a Theme.AppCompat theme (or descendant) with this activity. 

Что я делаю неправильно ?

ответ

0

Если вы используете ActionBarActivity, вы должны использовать тему AppCompat, который приносит в Lollipop стиле Action Bars для всех устройств и поддержки для Material Color Palette позволяя вам написать тему, такие как

<style name="MyTheme" parent="@android:style/Theme.AppCompat.Light"> 
    <item name="ColorPrimary">@color/primary</item> 
</style> 

в стиле ваш цвет панели действий автоматически.

Если вы предпочитаете не использовать какой-либо из этого (и сильно отличаться от Lollipop устройств), вы можете вместо этого расширить FragmentActivity или Activity, в зависимости от того, если вы хотите использовать фрагменты библиотеки поддержки (которая Backport и фиксируем количество проблем вокруг вложенных фрагментов и сохранение состояния).

1

См https://developer.android.com/training/basics/actionbar/styling.html, в частности эти части

Note: If you are using the Support Library APIs for the action bar, then you must use (or override) the Theme.AppCompat family of styles (rather than the Theme.Holo family, available in API level 11 and higher)

и

When using the Support Library, you must instead use the Theme.AppCompat themes:

Theme.AppCompat for the "dark" theme.
Theme.AppCompat.Light for the "light" theme.
Theme.AppCompat.Light.DarkActionBar for the light theme with a dark action bar.

В основном вы должны заменить 'Холо' с 'AppCompat'

0

Просто используйте это, если ваш расширения ActivityActionBar на вашей деятельности, то вам нужно использовать темы AppCompat.

<style name="AppCompatTheme" parent="@android:style/Theme.AppCompat.Light"> 
    <item name="ColorPrimary">@color/primary</item> 
</style> 

или использовать стиль/Theme.AppCompat.Dark для белого текста :)

+0

Ошибка получения родителя элемента: Нет ресурс не найден, который соответствует указанному имени «@android: стиль/Theme.AppCompat.Light» , – andrewb

+0

Расширяете ли вы действие ActionBarActivity в своей деятельности? – aluckii

+0

Да, я делаю то, что вы сказали – andrewb

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