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

我可以知道styles.xmlthemes.xml什么区别吗? 对我来说,他们只是看起来相同,因为两个XML都是相同的格式。

 <style name="... <item name="... 

所以,在我的应用程序提供自定义着色,大小,可绘制,…我是否需要styles.xmlthemes.xml以及? 我应该如何决定把哪个XML放在哪个文件中?

在样式和主题的整个页面之外。 你可能正在寻找这条线。

将样式应用于布局中的单个视图时,样式定义的属性仅应用于该视图。 如果将样式应用于ViewGroup,则View子元素将不会inheritance样式属性 – 只有直接应用样式的元素才会应用其属性。 但是,您可以将样式应用于所有视图元素 – 将样式应用为主题。

当您应用为主题时,它会在范围内更改所有内容,具体取决于是否将其应用于“活动”或“应用程序 风格更“本地”。

引用Android API指南:

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

完整的文档

所以我想,只要是位于res/values/文件夹中的xml文件,只要将任何样式放在任何文件中就没有关系。

styles.xml和themes.xml之间没有function上的差异,正如许多答案所指出的那样。

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

https://github.com/google/iosched

从“ 样式和主题”文档中的“定义样式”部分:

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

 The root node of the XML file must be <resources>. 

我只是意识到,例如工具栏文本颜色进入主题声明,其他方面进入一个风格声明

 <style name="ToolbarTheme" parent="ThemeOverlay.AppCompat.Light"> <item name="android:textColorPrimary">@android:color/white</item> <item name="android:textColorSecondary">@android:color/white</item> </style> <style name="ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar"> <item name="android:minHeight">?attr/actionBarSize</item> <item name="android:background">@color/colorPrimary</item> </style> 

并在工具栏声明

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/ToolbarStyle" android:theme="@style/ToolbarTheme"> </android.support.v7.widget.Toolbar> 

我试图通过将其项目移动到样式中来忽略主题,但是这不起作用。 所以在这种情况下,它们似乎只是作为主题的样式,因为它们会影响工具栏中的inheritance的子项(如文本字段)。

嗨,这里是一个文章关于样式和主题在Android的XML的区别请通过

而且这里的android 文档关于Android的样式和主题。