2015-01-31 5 views
0

Я включил свою тему в файл манифеста. Код моей темы заключается в следующемНевозможно стилизовать ActionBar Android AppCompat

<resources> 
    <!-- Activity themes --> 
    <style name="Theme.Base" parent="Theme.AppCompat.Light" /> 

    <style name="Theme.Sample" parent="Theme.Base" /> 

    <style name="AppTheme" parent="Theme.Sample" > 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
     <item name="android:background">@color/blue</item> 
    </style> 
</resources> 

Все мои действия наследуют ActionBarActivity

Я не могу изменить цвет моей ActionBar. Пожалуйста, помогите. Я запускаю это на эмуляторе с API 21.
Как я могу создать свой ActionBar?

ответ

-1

Вы можете сделать это ниже способом

Просто отредактируйте файл Рез/значения/styles.xml вашего Android проекта.

Например, как это:

<resources> 
    <style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light"> 
     <item name="android:actionBarStyle">@style/MyActionBarTheme</item> 
    </style> 

    <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar"> 
     <item name="android:background">ANY_HEX_COLOR_CODE</item> 
    </style> 
</resources> 

или Java код

ActionBar actionBar = getActionBar(); 
actionBar.setBackgroundDrawable(new ColorDrawable(Color.RED)); 
+0

Приложение повесили. –

+0

Вы должны использовать getSupportActionBar() вместо getActionBar(). Также AppCompat работает с стилем Theme.AppCompat, а не с стиле Holo. –

1

v21 AppCompat не читает любой андроида: атрибуты, относящиеся к панели действий:

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light"> 
    <!-- Here we setting appcompat’s actionBarStyle --> 
    <item name="actionBarStyle">@style/MyActionBarStyle</item> 

    <!-- ...and here we setting appcompat’s color theming attrs --> 
    <item name="colorPrimary">@color/my_awesome_red</item> 
    <item name="colorPrimaryDark">@color/my_awesome_darker_red</item> 

    <!-- The rest of your attributes --> 
</style> 
0

Вы можете изменить цвет, добавив этот код в свой стиль:

<item name="colorPrimary">@android:color/holo_red_dark</item> 

С цветомPrimaryDark вы можете изменить цвет строки состояния.

Позаботьтесь, используйте colorPrimary, не использовать андроида: colorPrimary, последний работает только с 21

Все код:

<resources> 
<!-- Activity themes --> 
<style name="Theme.Base" parent="Theme.AppCompat.Light" /> 

<style name="Theme.Sample" parent="Theme.Base" /> 

<style name="AppTheme" parent="Theme.Sample" > 
    <item name="colorPrimary">@android:color/holo_red_dark</item> 
</style>  
</resources> 
0

Я нашел это Google Blog Post для v21 AppCompat экстремально полезно. Это объясняет использование довольно хорошо.

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