兼容Android2.1以上的ActionBar样式修改(使用Google的Support V7包)

之前打算在自己的应用加入actionbar,但是想要兼容低版本的android,找了半天发现使用Support V7包就可以了。

如果要在Android3.0以下版本使用actionbar的话就要用到Support V7包了,使用方法请看官方文档

但是修改样式的时候发现,根据官方的actionbar样式修改文档的指引修改不了。

例如这种示例代码:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3     <!-- the theme applied to the application or activity -->
 4     <style name="CustomActionBarTheme"
 5            parent="@style/Theme.AppCompat.Light.DarkActionBar">
 6         <item name="android:actionBarStyle">@style/MyActionBar</item>
 7 
 8         <!-- Support library compatibility -->
 9         <item name="actionBarStyle">@style/MyActionBar</item>
10     </style>
11 
12     <!-- ActionBar styles -->
13     <style name="MyActionBar"
14            parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
15         <item name="android:background">@drawable/actionbar_background</item>
16 
17         <!-- Support library compatibility -->
18         <item name="background">@drawable/actionbar_background</item>
19     </style>
20 </resources>

根据官方文档修改,发现Eclipse在第6行会提醒错误API等级过低。经过尝试发现只能将不同版本的ActionBar配置文件分开放。

values-v11表示API11以上设备会用该文件夹的配置文件、values-v14表示API14以上设备会用该文件夹的该配置文件。

在values放这种:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3     <!-- the theme applied to the application or activity -->
 4     <style name="CustomActionBarTheme"
 5            parent="@style/Theme.AppCompat.Light.DarkActionBar">
 6         <item name="actionBarStyle">@style/MyActionBar</item>
 7     </style>
 8 
 9     <!-- ActionBar styles -->
10     <style name="MyActionBar"
11            parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
12         <item name="background">@drawable/actionbar_background</item>
13     </style>
14 </resources>

在values-v11放这种:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3     <!-- the theme applied to the application or activity -->
 4     <style name="CustomActionBarTheme"
 5            parent="@style/Theme.AppCompat.Light.DarkActionBar">
 6         <item name="android:actionBarStyle">@style/MyActionBar</item>
 7     </style>
 8 
 9     <!-- ActionBar styles -->
10     <style name="MyActionBar"
11            parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
12         <item name="android:background">@drawable/actionbar_background</item>
13 </resources>

就可以了。

 

 

posted @ 2014-01-02 01:36  黑暗中的一盏明灯  阅读(1433)  评论(0编辑  收藏  举报