2012-01-17 16 views
7

Ben şu iki şeye ihtiyacı Uygulamayı yazıyorum: - on Farklı TextView ve Spinner metin renkleri ile nasıl global bir temaya sahip olabilirim?

  • metni (TextView s)

    • genel metni (koyu arka plan bu durumda, beyaz) tek renk olması gerekir (beyaz okumak çok zor olduğundan, siyah) bir Spinner ihtiyacı yukarıda ilk öğeyi gerçekleştirmek için manifest'te Uygulama düzeyinde uygulanan bir tema, kullanılan

    farklı bir renk olmak.

    ( ) Bunun dışında metni, okunması zor olan beyaz üzerine yapar.

    Tamam, bu yüzden spinner renk hala siyah olmak istiyorum ama her herşey beyaz olması.

    Spinner metin rengini nasıl belirlediğimi gösteren this question numarasını buldum ve yalnızca genel textColor'u da ayarlamadığım zamanlarda çalışıyor.

    Yani şu çalışmaz:

    <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> 
    

    Ben bu CSS gibi olurdu ve işler olduğunu dışında yani "tüm metin beyaz olacaktır (aşağı kaskad umuyordum sanırım bir çeviricide "). Ana temada android:textColor satırını kaldırırsam, döndürücü renk hilesi iyi çalışır. Bu SpinnerItem benziyor

    TextView yüzden spinnerItemStyle ayrılık benzer bir textViewStyle tipi ayrılması ile gelip çalıştı, ancak herhangi bir şans yoktu türetilmiştir.

    Bunu soran çoğu insandan farklı olarak, XML'de olabildiğince fazla tutmak istiyorum. Yanlış yaptığımı bilen var mı?

  • +0

    Neden tek bir renk için ebeveyn = "android: Widget.TextView" ve diğeri için "android: Widget.TextView.SpinnerItem" kullanamazsınız? – Warpzit

    cevap

    1

    bu deneyin:

    <?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> 
    

    Bu TextView'lar beyaz ve Eğiriciler siyah metin metin yapacaktır.

    İlgili konular