Android AppCompat 须要 API 级别 11

为了兼容性使用 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

解决方法 1:

在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>
相关文章
相关标签/搜索