Theme.NoTitleBar定义如下。
<style name="Theme.NoTitleBar"> // It does not have parent="Theme"
<item name="android:windowNoTitle">true</item>
</style>
但是,它继承了Theme的所有属性。 我不知道它是如何运作的。
答案 0 :(得分:0)
它继承了Theme
的所有属性,因为它基本上是该主题的扩展。它有点类似于Class A extends B
,尽管属性或任何事物的可见性没有区别。
请注意Theme.NoTitleBar
如何以Theme
作为前缀,这是所有属性的来源。
通常,样式的name
提供了一种分层方法来构造和命名样式和子类。对于您自己定义的样式,可以使用分层特征作为parent
属性的替代。要扩展现有的平台定义样式,您始终需要使用parent
。
所有这些都在Styles and Themes documentation, subsection Inheritance中得到了很好的解释。两个相关的引用总结了上述大部分内容:
如果你想继承你自己定义的样式,那么你 不必须使用parent属性。相反,只需在名称前加上前缀 您要继承的样式的样式, 被一段时间隔开。
注意:此技术仅通过将名称链接在一起来继承 适用于您自己的资源定义的样式。你不能继承 Android内置样式这种方式。要引用内置样式,例如 如
TextAppearance
,您必须使用parent
属性。
转到链接了解更多详情或查看一些示例。