android:actionBarStyle需要API级别11

在xml中使用ActionBarSherlock时:

 <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> 

你只能使用:

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

因为你可以得到错误,你可以在API级别11上获得android:actionBarStyle


如果您希望能够使ActionBar样式在所有API级别中相同,则需要为选定的API级别创build不同的文件夹,并在这些文件夹中创build新的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 ,您将只能使用@style/Theme.Sherlock.Light.DarkActionBar 。 在deviseAPI级别14+的动作栏时,您不需要Holo.Light ,因为您可能会将Holo.Light主题设置为当前父Holo.Light主题,所以在这种情况下,您将不得不使用android:actionBarStyle

另一个select是使用tools:targetApi属性,它需要tools名称空间。 这与您可以在java文件中使用的@TargetApi注释类似。

 <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> 

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

您只需在Eclipse中select错误,然后按下“Delete”键即可。 然后运行该项目,它会工作。

每次修改XML时都要删除这些错误。

这取决于您想要定位的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" /> 

ActionBarSherlock示例中使用16可以是任何大于或等于11(取决于您的代码)

在你的风格使用两个:

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

第一个是为ActionBarSherlock主题,第二个是在Android设备中使用相同的主题,已经支持ActionBar

编辑:清除Lint警告(可能出现的XML文件中的红色下划线):

清除棉绒警告