私は現在、ホロのテーマに基づいてデザインに基づいてアプリケーションに取り組んでいます。私がやりたいことは全世界的に働いていますが、私はちょっとフォルダの作業方法について少し混乱していますvalues
、values-v11
とvalues-v14
。値と値のスタイルとテーマ-v11と値-v14のフォルダ
だから私はことを知っている:
values
は11values-v11
に劣るAPIを目標としている11と13values-v14
間のAPIは、13
最初は、すべてのフォルダーごとにアプリケーションに必要なすべてのスタイルを指定する必要があると思っていましたが、その後、ある種の継承sy茎が適所にあった。
私の問題は、私が本当に混乱していることと、これらの3つのフォルダ間でどのようにこの継承が働いているのかをはっきりと理解できないことです。
私は自分の携帯電話上で動作を確認するために、次の試験(フォルダvalues-v14
がロードされたものでなければならないので、アンドロイド4.0上で実行されている)でした:私は青に設定するスタイルを持っているvalues
で
テキストの色:
:私は白にテキストの色を設定するためのスタイルを持っているvalues-v11
で
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/Blue</item>
(異なる色を持つすべてのフォルダ)上記第一のケースでは
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/Red</item>
、ロードされた色:私は赤のテキストの色を設定するためのスタイルを持っているvalues-v14
で
<style name="TextMedium" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/White</item>
私のテキストの上には、values-v14
フォルダが優先されることを意味する赤色です。
次に、values-v14
フォルダの赤いスタイルをコメントアウトすると、テキストが白くなります。これは、デバイスがvalues-v14
フォルダをターゲティングしていても、システムがvalues-v11
フォルダ内のスタイルをとることを意味しますか?私はおそらくvalues
フォルダを使うと思っていましたが、values-v11
ではありません。
さらに一般的には、私の質問は、これらの3つのフォルダが親と子として動作しているかどうかです。 ことを意味:デバイスは> 13 APIのバージョンで実行されている場合、システムはその後、values-v14
values-v11
、最後にvalues
をロードします
- 。
- デバイスが11〜13のAPIで実行されている場合、システムは
values-v11
をロードし、次にvalues
をロードします。 - デバイスがAPIバージョン< 11で実行されている場合、システムは
values
だけを読み込みます。
実際に動作している場合は、親フォルダvalues
のスタイルを最大限に設定し、v11またはv14に特定のスタイルのみを追加することは意味がありますか?
長い質問には申し訳ありませんが、私はそれが明らかであると思い、このテーマ/スタイルシステムは唯一のAndroidガイドで簡単に説明し、どのように動作するかについての情報を見つけることは困難である...あなたのための
感謝助けて!
ターゲットAPI> = 14、 'values-v11'ターゲットAPI(11と13を含む)** ** values-v14が存在する場合** **それ以外の**すべてのバージョンと一致します11歳以上で始まります。 'values'はデフォルトのフォルダであり、他の' values-xx'フォルダでカバーされていない他のAPIレベルを網羅しています。 – Luksprog
ありがとうLuksprog。その仕組みに基づいて、より低いバージョンでは使用できないv11とv14のスタイルだけをセットアップする方が良いということですか? (そして、私が 'values'に投稿したもののような単純なスタイルを維持するために) –
それは、そのバージョンから追加された属性を使用するときにバージョンインジケータを使用するという考えです。たとえば、HoneycombはListViewに 'activatedBackgroundIndicator'属性を導入しました。これは '11'の下には存在しないので、' values'フォルダはこれを使用しませんが、 'values-v11'フォルダをインクルードして、それを持つバージョンの属性をアプリの中で利用することができます。しかし、別のフォルダがある場合は、他のスタイルを表示する必要があります。 – Luksprog