0

Theme.NoTitleBar は以下のように定義されています。

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

ただし、テーマのすべての属性を継承します。仕組みがわかりません。

4

1 に答える 1

0

基本的にそのテーマの拡張Themeであるため、すべての属性を継承します。と言うのと似ていますが、属性の可視性などに違いはありません。Class A extends B

Theme.NoTitleBarhow の前に が付けられていることに注意してくださいTheme。すべての属性はそこから来ています。

一般に、nameスタイルの は、スタイルとサブスタイルの構造化と命名に対する階層的なアプローチを提供します。parent自分で定義したスタイルの属性の代わりに、階層特性を使用できます。既存のプラットフォーム定義のスタイルを拡張するには、常に を使用する必要がありますparent

これはすべて、スタイルとテーマのドキュメントのサブセクション Inheritanceでかなりよく説明されています。上記のほとんどを要約した 2 つの関連する引用:

自分で定義したスタイルを継承する場合 は、parent 属性を使用する必要はありません。代わりに、継承したいスタイルの名前をピリオドで区切って、新しいスタイルの名前の前に付けます。

注: 名前を連鎖させて継承するこの手法は、独自のリソースで定義されたスタイルに対してのみ機能します。この方法では、Android の組み込みスタイルを継承することはできません。などの組み込みスタイルを参照するには、属性TextAppearanceを使用する必要があります。parent

詳細またはいくつかの例については、リンクにアクセスしてください。

于 2013-01-02T23:38:48.063 に答える