创建样式-v21.xml

Posted

技术标签:

【中文标题】创建样式-v21.xml【英文标题】:Creating styles-v21.xml 【发布时间】:2015-04-12 10:57:14 【问题描述】:

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>

styles-v21.xml

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

    </style>

</resources>

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

错误:错误:重复资源:C:\xxx\main\res\values\styles-v21.xml:style/AppTheme, C:\xxx\main\res\values\styles.xml:style/AppTheme

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

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

【问题讨论】:

您问题中的某些地方,您指的是styles-v21 文件夹。您问题中的某些地方,您指的是styles-v21styles-v21.xml 文件。你创造了所有这些吗?如果没有,请编辑您的问题以准确解释您在哪里创建了哪些文件。顺便说一句,正确的答案是拥有一个res/values-v21/styles.xml 文件。 已修复 - 啊,我会这样做,看看它是否有效。 你不需要维护不同的styles.xml文件来让你的应用兼容所有的api级别。您可以在单个 styles.xml(default) 文件中执行此操作。签出这个答案***.com/a/53445541/5745574 【参考方案1】:

右键res文件夹,选择New --> Android资源文件,在Available qualifiers中为新文件“styles”设置同名:选择最后一项“Version”,最后设置“Platform API level” 21.

【讨论】:

【参考方案2】:

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

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

这就是你将在 Android Studio 中得到的:

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

【讨论】:

如果我只针对 21 岁以上,我可以删除一般的 styles.xml 吗? @pfdint 如果您只针对 21 岁以上,则不必保留 res/values-v21/styles.xml。你可以保留通用的。【参考方案3】:

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

【讨论】:

【参考方案4】:

更正styles-v21.xml。

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

    </style>

</resources>

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于创建样式-v21.xml的主要内容,如果未能解决你的问题,请参考以下文章

如何利用Vue.js库中的v-bind绑定样式属性

Vue -- 绑定样式(绑定class样式 & 绑定style样式)& 条件渲染(v-show v-if(可以配合template配合使用)v-else-ifv-else)

更改样式 active v-autocomplete

element表格的坑--一套表格根据状态显示不同的样式,v-if判断内容显示不全,样式发生改变

给v-html下的标签设置样式

vue过渡动效