2011-12-27 17 views
11

मेरे पास एक ऐप में एक्शनबार है, और इसमें इसमें नेविगेशन टैब एम्बेड किए गए हैं (TabHost नहीं!)। डिफ़ॉल्ट रूप से टैब सभी टैब के नीचे एक पतली नीली रेखा के साथ, काले टैब के रूप में दिखाई देते हैं, और चयनित टैब पर एक नीला मार्कर।एक्शनबार नेविगेशन टैब का रंग कैसे बदलें?

मैं कौन से शैलियों को उन रंगों को बदलने के लिए ओवरराइड करता हूं?

enter image description here

उत्तर

23

मैं नहीं टैब खुद को tab_indicator_holo.xml साथ

<style name="Widget.Holo.TabWidget" parent="Widget.TabWidget"> 
     <item name="android:tabStripLeft">@null</item> 
     <item name="android:tabStripRight">@null</item> 
     <item name="android:tabStripEnabled">false</item> 
     <item name="android:divider">?android:attr/dividerVertical</item> 
     <item name="android:showDividers">middle</item> 
     <item name="android:dividerPadding">8dip</item> 
     <item name="android:measureWithLargestChild">true</item> 
     <item name="android:tabLayout">@android:layout/tab_indicator_holo</item> 
    </style> 

बदल गया है, लेकिन मुझे लगता है कि आप यह styles.xml से इन शैलियों के साथ कर सकते हैं ...
<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_holo" /> 
     <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" /> 

     <!-- Focused states --> 
     <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_holo" /> 
     <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_holo" /> 

     <!-- Pressed --> 
     <!-- Non focused states --> 
     <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" /> 
     <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" /> 

     <!-- Focused states --> 
     <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_focused_holo" /> 
     <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_focused_holo" /> 
    </selector> 

या आप

<style name="Widget.Holo.ActionBar.TabView" parent="Widget.ActionBar.TabView"> 
      <item name="android:background">@drawable/tab_indicator_ab_holo</item> 
      <item name="android:paddingLeft">16dip</item> 
      <item name="android:paddingRight">16dip</item> 
     </style> 
01 को भी आजमा सकते हैं

और tab_indicator_ab_holo.xml

<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="@color/transparent" /> 
     <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" /> 

     <!-- Focused states --> 
     <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/list_focused_holo" /> 
     <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_holo" /> 

     <!-- Pressed --> 
     <!-- Non focused states --> 
     <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/list_pressed_holo_dark" /> 
     <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" /> 

     <!-- Focused states --> 
     <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" /> 
     <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" /> 
    </selector> 

अंत में दो png-9 ड्रॉएबल का उपयोग कर: tab_selected_holo और tab_unselected_holo। वे दो मोटे और पतली नीली रेखाओं की तरह दिख रहे हैं जिनके बारे में आप बात कर रहे हैं।

या क्या आप minitabs का मतलब है?

<style name="Widget.ActionBar.TabView" parent="Widget"> 
     <item name="android:gravity">center_horizontal</item> 
     <item name="android:background">@drawable/minitab_lt</item> 
     <item name="android:paddingLeft">4dip</item> 
     <item name="android:paddingRight">4dip</item> 
    </style> 
minitab_lt.xml में साथ

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:state_selected="true" 
      android:drawable="@drawable/minitab_lt_press" /> 
    <item android:state_selected="true" 
      android:drawable="@drawable/minitab_lt_selected" /> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/minitab_lt_unselected_press" /> 
    <item android:drawable="@drawable/minitab_lt_unselected" /> 
</selector> 

आप बस यहां में TabWidget के लिए खोज एक और परिभाषा की जरूरत है: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml

फिर

के रूप में हमेशा की तरह सभी आवश्यक विशेषताएं और ड्रॉएबल साथ अपनी शैली को परिभाषित ...

+0

मैं पृष्ठभूमि के रंग सेट करने के लिए वहाँ में कुछ भी नहीं देख सकते हैं, नीचे लाइन, या चयनित मार्कर ... –

+0

देखें कि क्या आप TabViews के minitabs का अर्थ है। वे उस चीज की तरह दिखते हैं जिसका आप जिक्र कर रहे हैं। मैंने तदनुसार अपना जवाब संपादित किया ... – user387184

+0

"मिनीटाब" क्या है जिसका आप जिक्र कर रहे हैं? मैं इन टैबों के बारे में बात कर रहा हूं http://developer.android.com/images/ui/actionbar.png –

3

यदि आप आसानी से अपने टैब बार को कस्टमाइज़ करना चाहते हैं, तो आप इस महान टूल का उपयोग कर सकते हैं: http://jgilfelt.github.io/android-actionbarstylegenerator

तुम बस रंग आप चाहते हैं का चयन करें और यह स्वचालित रूप से शैली XMLs, PNG का, आदि उत्पन्न

संबंधित मुद्दे