创建res / values / styles.xml以外的其他目录以定义样式

时间:2015-11-15 11:40:01

标签: android xml android-resources android-styles

正如我在标题中所说,有没有办法这样做?
现在,当我将所有样式放入一个文件时,它看起来有点拥挤,我想分开样式。

例如:

res/values/styles_for_main_screen
res/values/styles_for_set_screen

然后在main_screen布局中

<TextView
     style="@styles_for_main_screen/text_view_custom_style">
</TextView>

这个例子显然不起作用,但它显示了我想要实现的目标。

我在每个教程中都读到了我们需要将自定义样式放入styles.xml文件,但我想知道是否有可能在几个xml文件中分散样式?

我读到的每个问题都与&#34;怎么做....在styles.xml&#34;。中 我无法找到类似于我的问题。

示例应如何完成,感谢@Frank N. Stein的回答:

这看起来如何定制我的自定义xml res/values/styles_for_main_screen

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="custom_back">
        <item name="android:background">#E81C1C</item>
        <item name="android:text">whatr</item>
    </style>
</resources>

然后检索这个样式我只写:

<TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        style="@style/custom_back"
        />

所以惯例如下:

style="@(what I want to retrieve)/(name of style)"
来自android developers site

  

在XML中:@ [package:] style / style_name

2 个答案:

答案 0 :(得分:1)

您可以随意调用样式文件(如果您尊重命名约定并将它们全部放在values文件夹中),就像使用字符串和颜色一样。

因此,是的!如果你愿意的话,你可以有多个。

显然,您不会指定每个文件的路径 使用numberEntered引用样式就足够了。

答案 1 :(得分:1)

请记住,android通过读取其内容来扫描在/ values目录中找到的文件。对于样式,每个<style name="styleName" > ... </style>都将是解析器,并且将创建样式对象引用。

然后,正如弗兰克所说,是的。您可以使用任何文件名来编写自定义样式。