2012-04-11 20 views
5

Bir Ice Cream Sandwich uygulamasında TabHost/TabWidget için amortismana edilen kütüphaneleri kullanıyorum. ActionBarSherlock ile tanışmak için uygun zamanım yok, bu yüzden uygulamaya nasıl başladığımı bildiğim tek yolu buldum.Dondurma Sandviçinde bir TabWidget'i nasıl biçimlendiririm?

Ben arka plan renkleri ve görüntüye, seçilen sekme rengini değiştirmesini, TabWidget ve Sekme nesnelerini igili nasıl gidebiliriz bilmek istiyorum

? Standart stil ve tema kullanımı işe yaramaz. her zaman olduğu gibi olması gerektiği gibi kullanım dışı kütüphane, işler varsayarsak

cevap

8

, bu benim sekmeleri renklendirmek için kullandık prosedürdür.

TabWidget tabs = (TabWidget)getTabWidget();    
     for (int i = 0; i<tabs.getChildCount(); i++) { 
      RelativeLayout tab = (RelativeLayout) tabs.getChildAt(i); 
      tab.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.tabindicator)); 

tabindicator çekilebilir aşağıdaki gibidir:

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Non focused states --> 
<item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" /> 
<item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> 
<!-- Focused states --> 
<item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> 
<item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> 
<!-- Pressed --> 
<item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_press" /> 
<item android:state_pressed="true" android:drawable="@drawable/tab_press" /> 
</selector> 

drawables sadece 9-yama görüntüleri ile aşağıdaki gibidir o xml direcly erişilebilir değildi sadece, kodda arka plan ayarlamak Renk, standart bir renk kullanarak benzer bir etki elde etmek mümkün olabilir.

+0

Bu az ya da çok nokta oldu, teşekkürler. TabHidget'i tabHost.getTabWidget() yöntemini arayarak almak zorundaydım, ancak oradan geri kalanlar yerine oturdu. Nazik teşekkür ederim Stev_k. –

+0

Bu, tekrar destek lib'inde sunulan FragmentTabHost'dan sonra kullanıma giriyor. Ayrıca sekme çocuk görünümü 'RelativeLayout' değil ama FragmentTabHost'' in 'LinearLayout' var. –

İlgili konular