2

属性がその兄弟属性、つまり同じ に存在する属性を参照することは可能<style>ですか?

例えば、

<style name="Widget.A">
  <item name="customBackground">something</item>
  <item name="android:background">?customBackground</item>
</style>

?修飾子は、同じスタイル内ではなく、適用されたテーマに存在する属性のみを参照するため、エラーが発生します。

この機能は、Android のすべてのバージョンと適切に互換性を保つために、ライブラリに必要です。

4

2 に答える 2

2

いいえ、?構文では、現在のテーマの属性のみを参照できます。カスタムテーマでその値を定義するには、スタイルを書き直す必要があります。

于 2011-06-27T01:56:56.223 に答える
0

既知の属性「customBackground」がないため、コードでエラーが発生します。res/values/ただし、同じフォルダー ( ) に次の内容の XML ファイルを作成することで作成できます。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="Widget.A">
        <attr name="customBackground" format="reference"/>
    </declare-styleable>
</resources>

この宣言は、customBackgroundというパラメーターを持つスタイルWidget.Aがあることを示しています。この例では、その有効な値は他の属性への参照です。もちろん、必要に応じて属性を設定できます。残念ながら、Android のドキュメントにはこの種の宣言に関する明確な説明が含まれていないため、Android ソース コードのattrs.xmlを参照することをお勧めします。format

于 2011-06-26T21:00:42.180 に答える