themes/styles 的优先级?
Precedence of themes/styles?
鉴于:
- 四个 AppCompat 活动 A、B、C 和 D。
- 继承自 AppCompat 主题的四个自定义主题(T1、T2、T3 和 T4)。
还有:
- T1 在清单文件中应用于应用程序。
- T2 应用于清单文件中的 A
- T3 在 onCreate() 中以编程方式应用于 B
- T4 应用于 C 布局文件的根元素。
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.xml
和themes.xml
之间没有太大区别
您可以在 Styles and Themes
阅读更多关于定义父属性的信息
鉴于:
- 四个 AppCompat 活动 A、B、C 和 D。
- 继承自 AppCompat 主题的四个自定义主题(T1、T2、T3 和 T4)。
还有:
- T1 在清单文件中应用于应用程序。
- T2 应用于清单文件中的 A
- T3 在 onCreate() 中以编程方式应用于 B
- T4 应用于 C 布局文件的根元素。
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.xml
和themes.xml
您可以在 Styles and Themes
阅读更多关于定义父属性的信息