2014-09-19 3 views
0

Я изучаю документацию на developer.android.com, а на уроке «Стилирование панели действий», у меня есть проблема. Мне нужно изменить фон of ActionBar, as here. Я создал все изображения (для фона, кнопок и т. Д.), Используя Android Action Bar Style Generator, и добавил результат к res/dir моего проекта.
Это выглядит следующим образом: enter image description hereНевозможно настроить ActionBar

Я добавил файл Рез/значения/themes.xml вручную, потому что не существует после создания проекта. Вот код Рез/значений/themes.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <!-- the theme applied to the application or activity --> 
    <style name="CustomActionBarTheme" 
      parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <!--<item name="android:actionBarStyle">@style/MyActionBar</item>--> 

     <!-- Support library compatibility --> 
     <item name="actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <!-- ActionBar styles --> 
    <style name="MyActionBar" 
      parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@drawable/ab_solid_example</item> 

     <!-- Support library compatibility --> 
     <item name="background">@drawable/ab_solid_example</item> 
    </style> 
</resources> 

и применить эту тему, я добавил

андроид: тема = "@ стиль/CustomActionBarTheme"

для приложения, а также для двух действий в AndroidManifest.xml. Вот код AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/CustomActionBarTheme" > 
    <activity 
     android:name="com.example.mysecondapp.app.MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/CustomActionBarTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.example.mysecondapp.app.DisplayMessageActivity" 
     android:label="@string/title_activity_display_message" 
     android:parentActivityName="com.example.mysecondapp.app.MainActivity" 
     android:theme="@style/CustomActionBarTheme"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.mysecondapp.app.MainActivity" /> 
    </activity> 
</application> 

Но, в результате не фоновых изменений. Preview:

enter image description here

Если я запускаю это приложение на эмуляторе, ничего не происходит слишком.

Кто-нибудь знает, как это исправить?

ответ

1

Вы должны попробовать что-то вроде этого

работал отлично для меня

<style name="CustomActionBarTheme" 
    parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
</style> 


<!-- ActionBar styles --> 
<style name="MyActionBar" 
    parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">@drawable/ab_solid_example</item> 
</style> 
0

Просто попробуйте этот код:

ActionBar bar = getActionBar(); // or MainActivity.getInstance().getActionBar() 
bar.setBackgroundDrawable(new ColorDrawable("YOUR COLOR")); 

Нет необходимости использовать стилизацию панели действий. Это самый простой из всех, что вы можете сделать.

+1

Спасибо за комментарий, но, как я говорю, я исследование, и я хочу, чтобы понять, почему мой пример из offcial андроида документация не работает, потому что я сделал все, как написано в документах. – Alexander

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