我正在尝试学习如何在Android中开发,我正在学习本教程:https://developer.android.com/training/basics/actionbar/styling.html
现在,我正在尝试将操作栏的背景设置为橙色。 本教程提供了以下代码(请注意,我正在使用Android 2.1兼容性进行开发,因此我正在使用AppCompat等等)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item> <!-- error here -->
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@drawable/actionbar_background</item>
</style>
</resources>
我的 actionbar_background.xml 文件是:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#FFA500" />
</shape>
我的问题是我在添加评论android:actionBarStyle requires API level 11 (current min is 8)
的行中收到以下错误:<!-- error here -->
。
我找到的解决方案是删除该行。另外,因为它看起来与下面的行完全相同(除了没有明确说明'android:'命名空间)。一切似乎现在都有效......
我想知道这是教程代码中的错误(即我删除该行是正确的)或者我是否有其他类型的问题......任何想法?谢谢!
修改
以下帖子解决了同样的问题:Android AppCompat requires API level 11。
这似乎确实是教程本身的一个错误。但是,仍然不清楚,为什么问题发生在 android 命名空间(应特别关注API&gt; 14)而不是默认一个(应该解决任何其他API)。
答案 0 :(得分:1)
这是因为AppCompat主题仅在sdk 11中可用。您需要更改主题或者您应该将Manifest文件中的min sdk版本从8更改为11.
<uses-sdk
android:minSdkVersion="8"/>
<uses-sdk
android:minSdkVersion="11"/>
修改强>
你必须只使用:
<!--For Api 8-->
<item name="actionBarStyle">Style ref </item>
<!--For Api 11 or more-->
<item name="android:actionBarStyle">Style ref </item>
因为你可以得到错误,你只能在API LEVEL 11及以上版本中使用名称空间“android:actionBarStyle”。
如果您希望能够将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+