爲了兼容性使用 AppCompat 支持庫。如今我試圖override AppCompat 中的一些項來創建本身的Theme,在values文件下的style.xml裏添加以下內容。html
<!-- Application theme. --> <style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="actionBarStyle">@style/MyActionBar</item> </style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
<item name="background">@drawable/actionbar_background</item>
</style>
<item name="background">@drawable/actionbar_background</item>
因此一樣的方式作在這裏: http://developer.android.com/guide/topics/ui/actionbar.html#StyleExample然而,Eclipse 在這裏引起一個錯誤,說:android
android:actionBarStyle requires API level 11 (current min is 8) themes.xml
這要這麼辦,若是不用Android:。。。。的話就沒法在高版本的android中顯示出效果。ide
在res/values14文件下添加下面的內容
ui
<style name="Theme.Styled" parent="@style/Theme.AppCompat.Light"> <!-- Setting values in the android namespace affects API levels 14+ --> <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item> </style> <style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <!-- Setting values in the android namespace affects API levels 14+ --> <item name="android:background">#FFFFFF</item> </style>
而後在res/values中添加下面內容
spa
<style name="Theme.Styled" parent="@style/Theme.AppCompat.Light"> <!-- Setting values in the default namespace affects API levels 7-13 --> <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> </style> <style name="Widget.Styled.ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar"> <!-- Setting values in the default namespace affects API levels 7-13 --> <item name="background">#FFFFFF</item> </style>
注意到爲 14 的變化code
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
到 7-13xml
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>