2010-06-28 17 views
7

SetTheme kullanarak onCreate'da bir etkinlik temasını değiştiriyorum (bunu daha güvenilir olması gerektiği için super.onCreate() işlevini çağırmadan önce yapıyorum).Bir temadaki textColorPrimary öğesini nasıl değiştiririm?

Arka plan ve ön plan renklerini değiştirmesi anlamında çalışır. Ancak, düzenimin textAppearanceLarge gibi stilleri kullanan birkaç öğesi var. Artık Android’in textAppearanceLarge, içeriğim tarafından hala değişmeyen textPrimaryColor'u kullanıyor.

Temamda birincil metin rengini geçersiz kılmayı denedim, ancak bu işe yaramaz. arka plan beyaz görünür

<style name="Theme.MyApp.White"> 
    <item name="android:background">@android:color/white</item> 
    <item name="android:textColor">#000000</item> 
</style> 

, düz TextView'lar siyah görünür ... ama textAppearanceLarge kullanarak TextView'lar beyazdır ve bu görünmez olarak (beyaz beyaz üzerine):

İşte temanın önemli bir parçasıdır.

böyle şeyler denedim:

<item name="android:ColorPrimary">#000000</item> 
    <item name="android:textColorPrimary">#000000</item> 
    <item name="android:attr/textColorPrimary">#000000</item> 

Ama bunlardan hiçbiri bir şey yapmak. Sihir numarası nedir?

cevap

1

sonra

<!-- example textview --> 
<TextView style="@style/large" android:text="text goes here"></TextView> 

Ben Yanlış kapıyı olduğunu kapatır. Renkleri geçersiz kılmak ve her şey iyi çalıştı. Ancak, benim temamda android:background tanımlayarak, her şey tamamen berbat ve tüm metin (textColorPrimary dahil) geçersiz kılmama rağmen, tüm metin beyaz çıktı. Hile android:background yapılmadı.

+0

ah. Senin için çalıştığıma sevindim! ;) – zsniperx

+0

Cevabınız için hala minnettarım (daha çok stil hakkında konuşuyor olsanız da, temaları düşünüyordum). Hala yavaşça başlamaya çalışıyorum, yine de biraz titrek. – EboMike

6

Sadece geçici bir çözüm olarak, yerine (eğer düzen inşa etmek xml kullanıyorsanız), düzeninde textAppearanceLarge kullanmak yerine, değiştirebilir dışında android varsayılan biri öykünür styles.xml kendi textAppearanceLarge stilini tanımlamak renk beyazdır.

xml düzeni: styles.xml

<style name="large"> 
    <item name="android:textColor">@android:color/white</item> 
    <!-- other necessary items here like font etc.--> 
</style> 
+0

Teşekkür çulluk! Detaylandırmak için: Uygulamama temaları arasında geçiş yapabileceğiniz temalar eklemeye çalışıyorum. Bu yüzden temel olarak, tüm görünümü tanımlaması gereken tema başına bir stilim var - kullanıcı "beyaz" temayı seçerse, her şey siyah olacak beyaz, vb. "Büyük" için ayrı bir tarzım olsaydı bunu nasıl kuracağımı bilmiyorum. – EboMike

+0

Cevabınız işe yarıyor, ama android temaları oluşturmak için doğru bir yol değil, aynı zamanda çözüm için arıyorum ama ileri yol kolay renk özelleştirme için yerleşik android renkleri özelliklerini düzenlemektir. – jjalonso

İlgili konular