styles.xml和themes.xml之间有什么区别

Che*_*eng 58 android android-theme android-styles

我可以知道styles.xml和之间的区别是themes.xml什么?对我来说,它们看起来一样,因为两种XML都采用相同的格式.

<style name="...
    <item name="...
Run Code Online (Sandbox Code Playgroud)

所以,在我的应用程序,它提供的定制颜色,尺寸,绘制,......我需要既styles.xmlthemes.xml呢?我该如何决定将哪个XML放在哪个文件中?

wts*_*g02 82

在整个样式和主题页面中.你可能正在寻找这条线.

将样式应用于布局中的单个视图时,样式定义的属性仅应用于该视图.如果样式应用于ViewGroup,则子View视图元素将不会继承样式属性 - 只有您直接应用样式的元素才会应用其属性.但是,您可以通过将样式应用为主题来应用样式以使其适用于所有View元素.

当您作为主题应用时,它会更改范围内的所有内容,具体取决于您是否在活动或应用程序上应用它.风格更"本地化".

  • 不,它没有解释两个文件之间的区别,它只是解释了概念上的差异.然而,它可能并不复杂,因为在大多数示例中我们看到您将"MyTheme"放在styles.xml中,并将其用作清单中的主题.例如,为了能够在清单中使用:<application android:theme ="@ style/CustomTheme">,不清楚是否需要在styles.xml或themes.xml中定义CustomTheme,或者它无关紧要他们中的哪一个. (41认同)
  • 这根本没有涵盖styles.xml 和themes.xml 之间的区别。见@iceagleanswer [这里](http://stackoverflow.com/a/19808011/5079879) (3认同)

ice*_*gle 27

引自Android API指南:

要创建一组样式,请将XML文件保存在res/values/项目目录中.XML文件的名称是任意的,但必须使用.xml扩展名并保存在res/values/文件夹中.XML文件的根节点必须是<resources>.

完整文档

所以我想如果你把任何样式放在任何文件中都没关系,只要它是一个位于res/values/文件夹中的xml文件.

  • 是的,人们使用styles.xml和themes.xml的原因是区分应用于单个视图的样式和作为主题应用于整个活动/应用程序的样式.它只是让你更容易筛选所有不同的风格. (3认同)

Jim*_*tek 13

许多答案都表明,styles.xml和themes.xml之间没有功能差异.

值得注意的是,Google的iosched2014应用程序只有一个styles.xml(没有themes.xml).

https://github.com/google/iosched