创建样式-v21.xml

Creating styles-v21.xml

在 Android Studio 中,我导入了一个不包含 styles.xml (v21) 的项目。 所以我在 values 目录下创建了一个 styles-v21.xml 文件。 styles.xmlstyles-v21.xml 现在都在 values 目录中。

styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="AppTheme.Base">
        <!-- Customize your theme here. -->
    </style>

    <style name="AppTheme.Base" parent="Theme.AppCompat.Light">

    </style>

</resources>

样式-v21.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">

    </style>

</resources>

当我构建项目时出现构建错误:

Error:Error: Duplicate resources: C:\xxx\main\res\values\styles-v21.xml:style/AppTheme, C:\xxx\main\res\values\styles.xml:style/AppTheme

错误是两个资源文件具有相同的 style 名称:AppTheme。 但是在我看到的其他项目和教程中,这些 styles 具有相同的名称。一个是 Android 与版本 21 兼容,另一个是 Android 不兼容。

我想我想知道我是否应该简单地更改名称,或者这些文件是否应该具有相同的名称 - 这意味着手头有一个更大的问题。我该如何进行?

样式修正-v21.xml.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent=""AppTheme.Base"">

    </style>

</resources>

您应该在 values-v21 文件夹中为版本 21 创建 styles.xml,android studio 会自动将其添加为 styles.xml(v21)

右击res文件夹,选择新建 --> Android资源文件,设置同名新文件 "styles",在 Available qualifiers: 选择最后一项“Version”,最后设置“Platform API 等级" 21.

默认情况下,Android Studio 不会创建 styles.xml (v21)。您需要做的是创建一个如下所示的文件夹结构:

  • res/values/styles.xml
  • res/values-v21/styles.xml

这就是您将在 Android Studio 中获得的内容:

然后你可以为不同的API级别定义不同的AppTheme

您必须创建一个标题为 values-v21 的值文件夹。并在此创建 style.xml 文件,其名称与值文件夹相同,如 styles.xml。现在重建您的项目。