R.styleable、R.style、R.attrの違いは何ですか?私はこれら3つのクラスすべてでTextAppearanceを見つけました。
2 に答える
R.style
Android が提供するすべてのスタイル (提供されるすべてのテーマ Android を含む) があります。例: Theme.Translucent
, Widget.AbsListView
.
R.attr
提供されているすべての属性 android があります (ビューまたはウィンドウに設定できます)。たとえば、layout_width
view にwindowIsFloating
設定したり、window に設定したりできます。
R.styleable
Android が提供する特定のビューまたはウィンドウのすべての属性を持ち、スタイルで定義できます。例FrameLayout_Layout_layout_gravity
: layout_gravity は FrameLayout のスタイルを設定できます。Window_windowIsFloating
: これがフローティング ウィンドウかどうかを示すフラグ。
あなたの質問に答えるために、TextAppearance は属性 (R.attr) であり、スタイル可能と宣言されている attrs.xml です。
<attr name="textAppearance" format="reference" />
<declare-styleable name="TextViewAppearance">
<!-- Base text color, typeface, size, and style. -->
<attr name="textAppearance" />
</declare-styleable>
TextAppearance もテーマ/スタイルです (テーマは単なるスタイルです)、styles.xml:
<style name="TextAppearance">
<item name="android:textColor">?textColorPrimary</item>
<item name="android:textColorHighlight">?textColorHighlight</item>
<item name="android:textColorHint">?textColorHint</item>
<item name="android:textColorLink">?textColorLink</item>
<item name="android:textSize">16sp</item>
<item name="android:textStyle">normal</item>
</style>
R.style は、テーマの定義に使用されます (レイアウトで再利用される要素のデフォルトまたは特定のスタイル セットを構成します)。
R.styleable には個々の属性が含まれています。R.attr は、カスタム ビューの属性を定義するために使用されます。CardView という独自のカスタム ビューを作成し、2 つの文字列を取り込んで、それらの文字列のサイズに基づいてレイアウトを構築するとします。これらは、R.attr を介して XML レイアウトに割り当てられる属性として設定できます (詳細情報 / より良い説明はこちら)。