Theme.NoTitleBar は以下のように定義されています。
<style name="Theme.NoTitleBar"> // It does not have parent="Theme"
<item name="android:windowNoTitle">true</item>
</style>
ただし、テーマのすべての属性を継承します。仕組みがわかりません。
基本的にそのテーマの拡張Theme
であるため、すべての属性を継承します。と言うのと似ていますが、属性の可視性などに違いはありません。Class A extends B
Theme.NoTitleBar
how の前に が付けられていることに注意してくださいTheme
。すべての属性はそこから来ています。
一般に、name
スタイルの は、スタイルとサブスタイルの構造化と命名に対する階層的なアプローチを提供します。parent
自分で定義したスタイルの属性の代わりに、階層特性を使用できます。既存のプラットフォーム定義のスタイルを拡張するには、常に を使用する必要がありますparent
。
これはすべて、スタイルとテーマのドキュメントのサブセクション Inheritanceでかなりよく説明されています。上記のほとんどを要約した 2 つの関連する引用:
自分で定義したスタイルを継承する場合 は、parent 属性を使用する必要はありません。代わりに、継承したいスタイルの名前をピリオドで区切って、新しいスタイルの名前の前に付けます。
注: 名前を連鎖させて継承するこの手法は、独自のリソースで定義されたスタイルに対してのみ機能します。この方法では、Android の組み込みスタイルを継承することはできません。などの組み込みスタイルを参照するには、属性
TextAppearance
を使用する必要があります。parent
詳細またはいくつかの例については、リンクにアクセスしてください。