2014-04-04 61 views
0

我想更改Android中ActionBar中各個標籤的顏色。那可能嗎?到目前爲止,我發現的所有文檔都表明,您可以整體更改ActionBar的顏色,但不能更改個人tabs。任何幫助是極大的讚賞。如何更改android中單個選項卡的顏色?

+0

試試我的答案。你可以把你的顏色設置爲「#FF0001」。 – anuruddhika

+0

你有答案嗎? – anuruddhika

+0

對不起,我在發佈我的問題後不久就睡着了。我會盡快測試每個人提出的解決方案,並會以我的結果作出迴應。 – Patr3xion

回答

1

試試這個

tabHost = getTabHost(); 

tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#FF0001")); 
tabHost.getTabWidget().getChildAt(2).setBackgroundColor(Color.parseColor("#FF0002")); 
tabHost.getTabWidget().getChildAt(3).setBackgroundColor(Color.parseColor("#FF0003")); 
................................. 
+0

是否可以爲每個標籤單獨添加顏色? – Steve

+0

你可以檢查這篇文章「http:// stackoverflow.com/questions/26902549/add-a-different-color-for-each-action-bar-tabs-separate' – Steve

0

你接頭主機XML文件

TabHost

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout android:orientation="vertical" 
     android:layout_width="fill_parent" android:layout_height="fill_parent"> 

     <TabWidget android:id="@android:id/tabs" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" /> 
     <FrameLayout android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" android:layout_height="fill_parent"> 
     </FrameLayout> 

    </LinearLayout> 

</TabHost> 

在主要活動

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mTabHost = (TabHost) findViewById(android.R.id.tabhost); 

    setupTab(new TextView(this), "Tab 1"); 
    setupTab(new TextView(this), "Tab 2"); 
    setupTab(new TextView(this), "Tab 3"); 
} 

private void setupTab(final View view, final String tag) { 
    View tabview = createTabView(mTabHost.getContext(), tag); 
    TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() { 
     public View createTabContent(String tag) { 
      return view; 
     } 
    }); 
    mTabHost.addTab(setContent); 
} 

private static View createTabView(final Context context, final String text) { 
    View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null); 
    TextView tv = (TextView) view.findViewById(R.id.tabsText); 
    tv.setText(text); 
    return view; 
} 

CustomTabsLayout tabs_bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tabsLayout" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:background="@drawable/tab_bg_selector" 
    android:padding="10dip" android:gravity="center" android:orientation="vertical"> 

    <TextView android:id="@+id/tabsText" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:text="Title" 
     android:textSize="15dip" android:textColor="@drawable/tab_text_selector" /> 
</LinearLayout> 

tab_text_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" android:color="@android:color/white" /> 
    <item android:state_focused="true" android:color="@android:color/white" /> 
    <item android:state_pressed="true" android:color="@android:color/white" /> 
    <item android:color="#f8f8f8" /> 
</selector> 

tab_bg_selector

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <!-- Active tab --> 
    <item android:state_selected="true" android:state_focused="false" 
     android:state_pressed="false" android:drawable="@drawable/tab_bg_selected" /> 
    <!-- Inactive tab --> 
    <item android:state_selected="false" android:state_focused="false" 
    android:state_pressed="false" android:drawable="@drawable/tab_bg_unselected" /> 
    <!-- Pressed tab --> 
    <item android:state_pressed="true" android:drawable="@android:color/transparent" /> 
    <!-- Selected tab (using d-pad) --> 
    <item android:state_focused="true" android:state_selected="true" 
    android:state_pressed="false" android:drawable="@android:color/transparent" /> 
</selector> 

tab_bg_selected.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#A8A8A8" android:centerColor="#7F7F7F" 
     android:endColor="#696969" android:angle="-90" /> 
</shape> 

tab_bg_unselected.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient android:startColor="#5C5C5C" android:centerColor="#424242" 
    android:endColor="#222222" android:angle="-90" /> 
</shape> 

,最後在主活動類

mTabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider); 

並完成:)

相關問題