Theme.NoTitleBar如何继承Theme的所有属性?

时间:2013-01-02 23:08:13

标签: android themes

Theme.NoTitleBar定义如下。

<style name="Theme.NoTitleBar"> // It does not have parent="Theme"
    <item name="android:windowNoTitle">true</item>
</style>

但是,它继承了Theme的所有属性。 我不知道它是如何运作的。

1 个答案:

答案 0 :(得分:0)

它继承了Theme的所有属性,因为它基本上是该主题的扩展。它有点类似于Class A extends B,尽管属性或任何事物的可见性没有区别。

请注意Theme.NoTitleBar如何以Theme作为前缀,这是所有属性的来源。

通常,样式的name提供了一种分层方法来构造和命名样式和子类。对于您自己定义的样式,可以使用分层特征作为parent属性的替代。要扩展现有的平台定义样式,您始终需要使用parent

所有这些都在Styles and Themes documentation, subsection Inheritance中得到了很好的解释。两个相关的引用总结了上述大部分内容:

  

如果你想继承你自己定义的样式,那么你   必须使用parent属性。相反,只需在名称前加上前缀   您要继承的样式的样式,   被一段时间隔开。

     

注意:此技术仅通过将名称链接在一起来继承   适用于您自己的资源定义的样式。你不能继承   Android内置样式这种方式。要引用内置样式,例如   如TextAppearance,您必须使用parent属性。

转到链接了解更多详情或查看一些示例。