我正在尝试通过使用 AppCompat 库来支持低至 API 级别 9 的设备。我正在尝试使用 Google 的示例主题为 ActionBar 设置主题,但它一直告诉我任何名为 android:action* 的项目requires API level 11 (current min is 9)
。我的目标是 18。如果我直接使用示例中的内容,为什么会损坏?谁能帮我弄清楚如何使用 API 级别 9 的 AppCompat 库为 ActionBar 设置主题?
3 回答
您尝试使用的功能仅从 API 11 开始可用。您将无法在 API 级别 9 的设备中使用。
需要 API 级别 11(当前最低为 9)
您可以在 Android 3.0 及更高版本的设备上运行该示例,但为此您必须将您的 Manifest 文件 minSdkVersion 更改为至少 11。
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
尝试删除所有带有的项目,android:action*
只留下带有action*
(没有android
命名空间)的项目。
这对我有用,但我从这个美妙的动作栏样式生成器中获得了我的风格:http: //jgilfelt.github.io/android-actionbarstylegenerator/
这些android:action*
项目仅适用于 API 11 及更高版本。为了支持不同的 API 级别,Android 包含各种values
目录。如果您查看项目的文件夹结构,您很可能会看到目录res/values
,res/values-11
也许还有其他一些目录。正如您可能已经猜到的那样,11
API 11 的代表,这意味着仅在 API 11 及更高版本中可用的主题应包含在此处。该values
目录是您的基础目录。
因此,对于您的示例,您需要将主题文件分成两个不同的文件。包含的部分android:action*
应该在文件values-11
夹中的主题文件中,其他部分可以保留在基本values
文件夹中。Android 会自动选择合适的主题。
你真的应该阅读这篇文章,尤其是靠近底部的关于应用主题的部分。它讨论了如何将主题应用于不同的 API 级别。