declare-styleable
コンポーネントのカスタムスタイルを宣言するためのタグに関する貴重なドキュメントがほとんどありません。タグの属性に有効な値のリストを見つけました。それはそれに関しては素晴らしいことですが、それらの値のいくつかを使用する方法を説明していません。attr.xml (標準属性のAndroidソース)を閲覧すると、次のようなことができることがわかりました。format
attr
<!-- The most prominent text color. -->
<attr name="textColorPrimary" format="reference|color" />
format
属性は明らかに値の組み合わせに設定できます。おそらく、このformat
属性は、パーサーが実際のスタイル値を解釈するのに役立ちます。それから私はattr.xmlでこれを発見しました:
<!-- Default text typeface. -->
<attr name="typeface">
<enum name="normal" value="0" />
<enum name="sans" value="1" />
<enum name="serif" value="2" />
<enum name="monospace" value="3" />
</attr>
<!-- Default text typeface style. -->
<attr name="textStyle">
<flag name="normal" value="0" />
<flag name="bold" value="1" />
<flag name="italic" value="2" />
</attr>
これらは両方とも、示されたスタイルに許可された値のセットを宣言しているようです。
だから私は2つの質問があります:
enum
値のセットの1つをとることができるスタイル属性と値のセットをとることができるスタイル属性の違いは何flag
ですか?declare-styleable
(Androidソースコードをリバースエンジニアリングする以外に)どのように機能するかについてのより良いドキュメントを知っている人はいますか?