Android AppCompat 需要 API 级别 11。

10

我有一个应用程序,使用AppCompat支持库来实现ActionBars。现在我尝试创建一个新的themes.xml文件,以便为此目的设置一些样式。

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

所以只需像这里一样操作:http://developer.android.com/guide/topics/ui/actionbar.html#StyleExample。然而,Eclipse 在此处会报错:

android:actionBarStyle requires API level 11 (current min is 8) themes.xml

我正在使用支持库,这怎么可能呢?


请检查我的帖子并尝试一下,注意更改并查看是否有效。 - Raghunandan
9
很遗憾,Android开发文档存在错误,这会浪费很多时间。 - William T. Mallard
2
+1,说真的,Android 至少能把 教程 做正确吗? - Pacerier
1个回答

13
请在 res/values-14/styles.xml 中添加以下内容。
<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>

您需要将以下内容添加到values文件夹中:res/values/styles.xml

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

更多细节请参考

http://android-developers.blogspot.in/2013/08/actionbarcompat-and-io-2013-app-source.html

注意API级别14+的变化

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

至于 API 级别 7-13

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

我猜你指的是链接中写的 values-v14 - benestar
@user2433059 所指的是 res/values/styles.xml 和 res/values-14/styles.xml 中的样式。 - Raghunandan
@user2433059 请注意,答案的第二部分也需要查看。该部分适用于API 7-13。ActionBar在API 11及以上版本中可用,因此您可以在API级别低于11的情况下使用AppCompat支持库。 - Raghunandan
如果是11+,根本不需要使用appcompact。 - Raghunandan
1
谢谢!你真是救命恩人! - gedr
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接