主题/风格的优先顺序?

时间:2017-04-23 15:30:15

标签: android android-manifest android-appcompat android-styles

鉴于:

  • 四个AppCompat活动A,B,C和D.
  • 从AppCompat主题继承的四个自定义主题(T1,T2,T3和T4)。

此外:

  • T1在清单文件中应用于应用程序。
  • T2应用于清单文件
  • 中的A.
  • T3以编程方式应用于onCreate()
  • 中的B.
  • T4应用于C&#39的布局文件的根元素。

每个活动在运行时会产生什么主题?主题是否取得了优势?它们是否相互结合或相互覆盖?

如果在清单文件中应用了T2,那么D会发生什么情况,然后T3以编程方式和布局文件应用T4?

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

1 个答案:

答案 0 :(得分:1)

  

T1在清单文件中应用于应用程序。

这适用于整个应用程序,你得到你扩展的主题和你在那里覆盖的任何东西。例如,应用程序范围的工具栏颜色是常见的颜色。

  

T2应用于清单文件

中的A.

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

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

  

T3以编程方式应用于onCreate()

中的B.

这会覆盖该活动清单中设置的任何内容,并且不应与T2不同

  

T4应用于C&#39的布局文件的根元素。

这只会影响一个视图。例如,如果应用程序或活动使用全屏主题,那么仍然会应用该主题,但您还可以对此视图进行样式化。

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

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

注意:styles.xmlthemes.xml

之间没有任何关注的区别

您可以阅读有关在Styles and Themes

定义父属性的更多信息