安卓:actionBarStyle需要API级别11(android:actionBarStyle

2019-07-21 08:36发布

当使用ActionBarSherlock将XML格式的:

<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>

我得到这个错误:

android:actionBarStyle requires API level 11 (current min is 8) error

我使用它移植回我的动作条的应用程序,以2.2的设备。

如何一起使用这两个:

 <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
 <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>

Answer 1:

你必须只使用:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> 

因为你可以得到的错误,你android:actionBarStyle提供API级别11。


如果你希望能够风格你ActionBar看起来相同的所有API级别,你需要为所选择的API级别创建不同的文件夹,并创建新的style.xml / themes.xml这些文件夹中的文件。

例如:

- res
  -- values
     -- styles.xml
     -- themes.xml // API LEVEL 8+
 -- values-v11
     -- styles.xml
     -- themes.xml // API LEVEL 11+
 -- values-v14
     -- styles.xml
     -- themes.xml // API LEVEL 14+

这是我能想到的第二件事情是要注意哪些主题是你,包括在不同的API级别当前的一个。

例如,对于API级别8:您将使用@style/Theme.Sherlock.Light.DarkActionBar ,你将不得不使用仅actionBarStyle 。 虽然造型的API级别14+的操作栏,你将不再需要actionBarStyle ,因为你可能会设置Holo.Light主题为家长对于您目前的一个,所以在这种情况下,你将不得不使用android:actionBarStyle



Answer 2:

另一种选择是使用tools:targetApi属性,这就需要tools的命名空间。 这起以类似的方式向@TargetApi你可以在Java文件中使用的注释。

<resources xmlns:tools="http://schemas.android.com/tools">

<style name="MyThemes.MyTheme">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle" tools:targetApi="11">@style/Widget.Styled.ActionBar</item>
</style>

</resources>

注意xmlns:tools="http://schemas.android.com/tools"<resources>标记,因为它是必需的。



Answer 3:

您只需选择你的关键“删除”在Eclipse中的错误,并按。 然后,只需运行该项目,它会工作。

你必须删除论文错误每次修改XML。



Answer 4:

这取决于你想要什么样的目标SDK版本:

目标图谋低于11:

在你的AndroidManifest.xml使用:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="x" android:maxSdkVersion="10"/>

X 8-10之间的任何东西(取决于您的代码)

在你的风格的使用:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>

针对任何设备:

在你的AndroidManifest.xml使用:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />

16在用于ActionBarSherlock例如可以是任何大于或等于11(取决于你的代码)

在你的风格同时使用:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> 
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>

一日一对ActionBarSherlock主题,第二是使用在Android设备上的同一个主题已经支持ActionBar

编辑:要清除lint警告(红色在XML文件中强调的是,可能会显示):



文章来源: android:actionBarStyle requires API level 11