【问题标题】:Create a different directory other than res/values/styles.xml to define styles创建一个不同于 res/values/styles.xml 的目录来定义样式
【发布时间】:2015-11-15 11:40:00
【问题描述】:

正如我在标题中所问的那样,有什么办法吗?
现在,当我将所有样式放在一个文件中时,它看起来有点拥挤,我想将样式分开。

例如:

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 文件中使样式多样化?

我读到的每个问题都类似于“如何在 style.xml 中做......”。
我找不到与我类似的问题。

示例应该如何完成,感谢@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

【问题讨论】:

    标签: android xml android-resources android-styles


    【解决方案1】:

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

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

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

    【讨论】:

    • 你说得对,我只是试图用错误的方式来做,我在我的问题中添加了应该如何写
    【解决方案2】:

    请记住,android 通过读取文件的内容来扫描 /values 目录中找到的文件。对于样式,每个&lt;style name="styleName" &gt; ... &lt;/style&gt; 都会被解析并创建一个样式对象引用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 2017-07-12
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多