themes/styles 的优先级?

Precedence of themes/styles?

鉴于:

还有:

Activity 运行 时每个 Activity 的主题是什么?主题是否存在?它们是合并还是相互覆盖?

如果在清单文件中应用 T2,然后以编程方式应用 T3,布局文件应用 T4,D 会怎样?

使用各种方式组合应用样式的顺序是什么?

T1 is applied in manifest file to the application.

这适用于整个应用程序,您将获得您扩展的主题以及您在那里覆盖的任何内容。例如,应用程序范围内的工具栏颜色是放在这里的常见颜色。

T2 is applied to A inside the manifest file

您已经为此创建了一个新的主题依赖链 Activity,除非您使用与应用主题相同的父主题,否则它将具有独立的属性,例如不同的工具栏颜色。

您仍然会保留应用程序设置,例如隐藏系统 UI/全屏主题。

T3 is applied programatically to B in onCreate()

这会覆盖清单中为 activity 设置的任何内容,并且不应与 T2

不同

T4 is applied in the root element for C's layout file.

这只会影响那个视图。例如,如果应用程序或 Activity 使用全屏主题,则仍会应用该主题,但您还对该视图进行了样式化。

例如,根视图可以只是一个 TextView。它不一定是 RelativeLayout、FrameLayout、CoordinatorLayout 等。

您通常不会将应用程序/activity 级别样式应用于这些单独的视图。我也不认为这些属性会在源代码中应用


注意:styles.xmlthemes.xml

之间没有太大区别

您可以在 Styles and Themes

阅读更多关于定义父属性的信息