2011-03-04 17 views
5

Bir TabLayout kullanıyorum ve kullandığım sekmeler için özel resimlerim var, ancak hayatım boyunca sekmelerle sekmeler arasındaki renk ve hatta görüntüyü nasıl değiştirebileceğimi anlayamıyorum sekme içeriği. SetDividerDrawable() işlevini kullanmaya çalıştım ancak sekme içeriğini ayarlamadan önce aradığımda çöküyor ve sonra aradığımda hiçbir şey yapmıyor. Eğer onu sadece siyah olacak şekilde alabiliyorsam, ama hiçbir şey işe yaramadı. Herhangi bir rehberlik için teşekkürler.Android'deki TabWidget bölücünün rengini nasıl değiştirebilirim ve/veya çizilebilir miyim?

cevap

9

Bunu yapmak zorundasınız: tabHost.getTabWidget() setDividerDrawable (R.drawable.tab_divider);

R.drawable.tab_divider, kaynak dizininizdeki bir görüntüdür.

Ancak anahtara, sekme ana bilgisayarına herhangi bir sekme eklemeden ÖNCE yapmanız gerekir.

private void initializeTabs(int curTab) { 
    this.tabHost = getTabHost(); 
    tabHost.clearAllTabs(); 

    TabSpec ts1, ts2, ts3, ts4, ts5; 
    // tab separator 
    tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider); 

    ts1 = this.setupTab(new TextView(this), tabHost, R.drawable.browse_tab_normal, 
      mResources.getString(R.string.Browse)); 

    ts2 = this.setupTab(new TextView(this), tabHost, R.drawable.search_tab_normal, 
      mResources.getString(R.string.Search)); 

    ts3 = this.setupTab(new TextView(this), tabHost, R.drawable.postad_tab_normal, 
      mResources.getString(R.string.Post)); 

    ts4 = this.setupTab(new TextView(this), tabHost, R.drawable.watchlist_tab_normal, 
      mResources.getString(R.string.WatchList)); 

    ts5 = this.setupTab(new TextView(this), tabHost, R.drawable.managead_tab_normal, 
      mResources.getString(R.string.Login)); 

    // intents 
    ts1.setContent(new Intent().setClass(this, BrowseTabActivity.class)); 
    ts2.setContent(new Intent().setClass(this, SearchTabActivity.class)); 
    ts3.setContent(new Intent().setClass(this, PostAdTabActivity.class)); 
    ts4.setContent(new Intent().setClass(this, WatchlistTabActivity.class)); 
    ts5.setContent(new Intent().setClass(this, LoginTabActivity.class)); 

    tabHost.addTab(ts1); 
    tabHost.addTab(ts2); 
    tabHost.addTab(ts3); 
    tabHost.addTab(ts4); 
    tabHost.addTab(ts5); 

...

+0

'dan miras alınan özelliklerle ilgili daha fazla bilgi edinmek için yanıt tamamdır ancak aynı kodla bir görüntü yerine nasıl bir renk ayarlayabilirim. Teşekkürler! – benoffi7

0

bir bölücü tanımlamak için daha iyi bir yol XML işaretlemenizdeki eğer yapmaktır: Yani

<TabWidget 
    android:layout_width="match_parent" 
    android:showDividers="middle" 
    android:divider="@drawable/design_tab_divider"> 
</TabWidget> 

,

Benim sekme başlatma kodu benziyor sadece biçimlendirmeden bir çekiliş tanımlayabilirsiniz. Bölücüleri sekmeler arasına yerleştirmek için android:showDividers="middle" ile birlikte android:divider kullanmanız gerektiğini unutmayın. Spesifikasyonları okumak ve LinearLayout - docs in google

İlgili konular