创建样式-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.xml
和 styles-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-v21
或styles-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 -- 绑定样式(绑定class样式 & 绑定style样式)& 条件渲染(v-show v-if(可以配合template配合使用)v-else-ifv-else)