android:actionBarStyle需要API级别11

Jit*_*dra 60 android actionbarsherlock android-actionbar

使用ActionBarSherlockin xml时:

<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

android:actionBarStyle requires API level 11 (current min is 8) error
Run Code Online (Sandbox Code Playgroud)

我正在使用它将我的应用程序与操作栏一起移植到2.2设备.

如何将它们一起使用:

 <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
 <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Run Code Online (Sandbox Code Playgroud)

Ins*_*Bun 146

另一种选择是使用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>
Run Code Online (Sandbox Code Playgroud)

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

  • 我不知道为什么你的答案没有更多的选票,这比制作一堆不同的文件容易得多. (10认同)
  • @psoft API> = 11.它有效地告诉Lint检查器将该项视为最小API为11,而不是您在清单中设置的任何内容. (3认同)

har*_*ore 76

你只需要使用:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> 
Run Code Online (Sandbox Code Playgroud)

因为你可以得到错误,你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+
Run Code Online (Sandbox Code Playgroud)

我能想到的第二件事是要小心你在不同的API级别中包含哪些主题.

例如,对于API级别8:您将使用@style/Theme.Sherlock.Light.DarkActionBar,您将只能使用actionBarStyle.虽然为API级别14+的操作栏设置样式,但您不需要actionBarStyle,因为您可能会将Holo.Light主题设置为当前主页的父级,因此在这种情况下您将不得不使用android:actionBarStyle.


Tim*_* T. 7

您只需在Eclipse中选择错误,然后按"Delete"键即可.然后只需运行该项目即可.

每次修改XML时都删除了这些错误.


mad*_*mad 7

这取决于您要定位的SDK版本:

目标设计低于11:

在您AndroidManifest.xml使用时:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="x" android:maxSdkVersion="10"/>
Run Code Online (Sandbox Code Playgroud)

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

按你的风格使用:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
Run Code Online (Sandbox Code Playgroud)

定位任何设备:

在您AndroidManifest.xml使用时:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />
Run Code Online (Sandbox Code Playgroud)

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

按照你的风格使用:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> 
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Run Code Online (Sandbox Code Playgroud)

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

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

清除棉绒警告

  • 是的,但是在同一个文件中同时使用这两个是不可能的,因为它会给你一个min所需的sdk版本11的错误!! (2认同)