2012-01-17 2 views
7

私は、次の二つのことを必要とするアプリケーションを書いている:異なるTextViewとSpinnerのテキストカラーでグローバルテーマを作成するにはどうすればよいですか?

  • TextView秒)一般的なテキストは、1色(この場合は白、 - 暗い背景)にする必要がある
  • 上のテキストSpinnerは別の色にする必要があります(白は読みにくいので黒です)

マニフェストのアプリケーションレベルで適用されたテーマを使用して、上記の最初の項目を実行しました。

<resources> 
    <style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
     <item name="android:textColor">#FFFFFF</item> 
    </style> 
</resources> 

Worked great。それ以外は、スピナーのテキストを白くして読みにくいものにします。

OKは、私はスピナー色はまだ黒になりたいが、他のすべて白色です。

私はthis questionのSpinnerのテキストの色の設定方法を示していますが、グローバルなtextColorも設定していない場合にのみ機能します。

ので、以下では動作しません:

<resources> 
    <style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
     <item name="android:textColor">#FFFFFF</item> 
     <item name="android:spinnerItemStyle">@style/GlobalThemeSpinnerItem</item> 
    </style> 
    <style name="GlobalThemeSpinnerItem" parent="android:Widget.TextView.SpinnerItem"> 
     <item name="android:textAppearance">@style/GlobalThemeTextAppearanceSpinnerItem</item> 
    </style> 
    <style name="GlobalThemeTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem"> 
     <item name="android:textColor">#000000</item> 
    </style> 
</resources> 

を私はこれはCSSのようになるとの事ですことを除いて、すなわち、「すべてのテキストは白でなければならない(をダウンカスケードであろうと期待していたと思いますスピナーで)。メインテーマのandroid:textColor行を削除すると、スピナーのカラートリックがうまく動作します。

SpinnerItemはので、私はspinnerItemStyle分離に似textViewStyle型の分離を思い付くしようとしたが、いずれかの運を持っていなかったTextViewから派生したように見えます。

これについて尋ねるほとんどの人とは違って、私は可能な限りXMLに保存したいと考えています。誰かが私が間違っていることを知っていますか?

+0

なぜ、parent = "android:Widget.TextView"を1つの色に使用し、parent = "android:Widget.TextView.SpinnerItem"を他の色に使用できないのですか? – Warpzit

答えて

1

これを試してみてください:

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
    <item name="android:spinnerItemStyle">@style/GlobalThemeSpinnerItem</item> 
    <item name="android:textViewStyle">@style/GlobalThemeTextViewItem</item> 
</style> 

<style name="GlobalThemeTextViewItem" parent="android:Widget.TextView"> 
    <item name="android:textAppearance">@style/GlobalThemeTextAppearanceTextViewItem</item> 
</style> 
<style name="GlobalThemeTextAppearanceTextViewItem" parent="android:TextAppearance.Widget.TextView"> 
    <item name="android:textColor">#FFFFFF</item> 
</style> 

<style name="GlobalThemeSpinnerItem" parent="android:Widget.TextView.SpinnerItem"> 
    <item name="android:textAppearance">@style/GlobalThemeTextAppearanceSpinnerItem</item> 
</style> 
<style name="GlobalThemeTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem"> 
    <item name="android:textColor">#000000</item> 
</style> 

これはあなたのTextViews白とあなたのスピナー黒のテキストにテキストを行います。

関連する問題