2010-11-18 23 views
0

TabWidget'ime stil uygulamak için çalışıyorum. . TabHost.getTabWidget() getChildAt (i)Android TabWidget arka plan rengi hatası ayarlandı

olarak

denedim çeşitli yöntemler için (.; I < tabHost.getTabWidget() getChildCount() i ++ i = 0 int). setBackgroundColor (Color.parseColor ("# 7392B5")); How do I change the background of an Android tab widget?

den

Ancak bu kod benim için çalışmaz. Ayrıca bazı XML stillerini karıştırmayı denedim. Elimden gelenin en iyisi, Divider'ı ayarlamaktır, ancak bu, tüm sekme widget'ının bir katı rengi döndürmesini sağlar ve Sekmeler artık üstüne çekilmez.

Lütfen

Lütfen yardım edin. Mark'ın kitapları sadece renkleri değiştirmemek için, sekmelerin Simgelerini ayarlama üzerine dokunmaktadır. Bunun basit olması gerektiğini hissediyorum, ancak TabWidgets ve Hosts her şeyi daha da zorlaştırıyor.

Bu kodu, hem 1.6 hem de 2.2 platformlarını hedefleyen denedim, ancak her ikisi de API çalışmıyor.

Teşekkür

+0

Ben java yerine XML düzeninde yapıyorum – schwiz

cevap

1

sekmenin arka plan aslında bir StateListDrawable içine ayarlanmış bir NinePatch görüntü vardır. setBackgroundColor()'u aradığınızda, StateListDrawable setini basit bir renkle değiştirirsiniz, böylece tüm sekme bu renge dönüşür. Yapmanız gereken şey aslında her bir durum için istediğiniz renk ve stil olan (örneğin, odaklanmış, basılı, vb.) NinePatch sekme resimlerini değiştirmektir (veya kendi çizinizi çizebilirsiniz).

Alternatif olarak, kod içinde here (getBackground() bir tabWidget yanı sıra bir düğme için çalışır) açıklandığı gibi bir ColorFilter ayarlayabilirsiniz, ancak NinePatch rotasını kişisel olarak sürdürmenizi öneririz.