私は現在、Holo テーマに基づいてデザインするために自分のアプリに取り組んでいます。グローバルに私がやりたいことは機能していますが、フォルダーの操作方法について少し混乱していvalues
ます。values-v11
values-v14
だから私はそれを知っています:
values
11以下のAPIをターゲットにしていますvalues-v11
11 から 13 の間の API をターゲットにしていますvalues-v14
13 以上の API をターゲットにしています
最初は、アプリに必要なすべてのスタイルをすべてのフォルダーに指定する必要があると思っていましたが、一種の継承システムが整っていることに気付きました。
私の問題は、私が本当に混乱していて、これらの 3 つのフォルダー間でこの継承がどのように機能しているかを明確に理解していないことです。
携帯電話での動作を確認するために、次のテストを行いました (Android 4.0 で実行されているため、フォルダーvalues-v14
は読み込まれたフォルダーである必要があります)。
values
テキストの色を青に設定するスタイルがあります。
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/Blue</item>
values-v11
テキストの色を白に設定するスタイルがあります。
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/White</item>
values-v14
テキストの色を赤で設定するスタイルがあります。
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/Red</item>
上記の最初のケース (異なる色のすべてのフォルダー) では、テキストに読み込まれた色は赤で、values-v14
フォルダーが優先されることを意味します。
次に、フォルダーから赤いスタイルをコメントアウトするvalues-v14
と、テキストが白くなります。values-v11
これは、デバイスがフォルダーを対象としている場合でも、システムがフォルダー内のスタイルを取得するということvalues-v14
ですか? values
デフォルトでフォルダーを使用する可能性があると思いましたが、使用しませんvalues-v11
。
より一般的には、私の質問は、これらの 3 つのフォルダーは親と子として機能していますか? つまり:
- デバイスが API バージョン > 13 で実行されている場合、システムは
values-v14
次に読み込まvalues-v11
れ、最後にvalues
. - デバイスが 11 から 13 の間の API で実行されている場合、システムがロード
values-v11
されてからvalues
. - デバイスが API バージョン 11 未満で実行されている場合、システムは
values
.
それが実際に機能している場合、親フォルダーに最大のスタイルを設定しvalues
、v11 または v14 で特定のもののみを追加することは理にかなっていますか?
長い質問で申し訳ありません。明確であることを願っています。このテーマ/スタイル システムは、Android ガイドで簡単に説明されているだけであり、それがどのように機能するかについての情報を見つけるのは困難です...
ご協力いただきありがとうございます!