2012-11-08 18 views
16

मैं एक्शनबार स्टाइल के साथ संघर्ष कर रहा हूं। मेरे ऐप में तीन टैब के साथ एक एक्शनबार है। मैं चयनित टैब को पृष्ठभूमि रंग रखने के लिए, और एक अलग रंग दिखाने के लिए अचयनित टैब प्राप्त करने का प्रयास कर रहा हूं। मैं इस संदर्भ का पालन कर रहा हूं: Customizing Action Bar। लेकिन सभी टीएबी चयनित रंग दिखा रहे हैं।एक्शनबार को स्टाइल कैसे करें, चयनित टैब पर टैब पृष्ठभूमि

मेरे styles.xml फ़ाइल इस प्रकार है:

<style name="MyActionBarTabStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabBar"> 
    <item name="android:background">@drawable/tab_background</item> 
    <item name="android:paddingLeft">32dp</item> 
    <item name="android:paddingRight">32dp</item> 
</style> 

<style name="MyActionBarTabBarStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabBar"> 

    <item name="android:background">@drawable/red</item> 
</style> 


<style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/ActionBar.Light</item> 
    <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item> 
    <item name="android:actionBarTabBarStyle">@style/MyActionBarTabBarStyle</item> 

</style> 

tab_background सिर्फ एक 9 पैच है। मुझे यह भी यकीन नहीं है कि क्या मैं सही पैरेंट (parent="android:style/Widget.Holo.Light.ActionBar.TabBar) से एक्शन बार टैब को विरासत में मिला हूं। मैंने संदर्भों को देखा है & शैली पदानुक्रम को समझना बहुत मुश्किल लगता है

मेरे टैब क्यों चुने गए हैं या नहीं? आपकी सहायता के लिए अग्रिम धन्यवाद।

+0

उपयोग [ActionBarSherlockStyleGenerator] (http://jgilfelt.github.com/android-actionbarstylegenerator/ # नाम = उदाहरण और compat = होलो और थीम = प्रकाश और actionbarstyle = ठोस और backColor = E4E4E4,100 और माध्यमिक रंग = D6D6D6,100 और tertiaryColor = F2F2F2,100 और accentColor = 33B5E5,100) इसे शैली और उपयोग करने के लिए। मेरा जवाब देखें [यहां] (http://stackoverflow.com/questions/13269482/change-background-of-the-actionbarsherlock-alone-not-the-tabs/13283261#13283261) – PravinCG

+0

धन्यवाद प्रवीण। ActionBarStyleGenerator शैली के लिए बहुत उपयोगी है ActionBar – CocoNess

उत्तर

10

मैंने अपनी समस्या हल की। मैंने शुरुआत में राज्य सूची ड्रायबल्स का उपयोग नहीं किया था। मैंने स्टेटलिस्ट ड्रेवेबल के माध्यम से सीधे पृष्ठभूमि छवि का उपयोग किया। StateListDrawable का उपयोग करके, आप टैग का चयन किया गया है या नहीं, इस पर आधारित एक अलग पृष्ठभूमि सेट कर सकते हैं।

तो मैं फ़ाइल tab_background_select.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" 
     android:drawable="@drawable/tab_background" /> 

</selector> 

जोड़ा गया है और मैं अपने styles.xml से संदर्भित:

<item name="android:background">@drawable/tab_background_select</item> 
+0

धन्यवाद दोस्त;) +1 –

+3

क्या आप इसका मतलब है कि आपने style.xml से इसका संदर्भ दिया है? आपने इसका संदर्भ कैसे दिया और किस तरह से? मैं उसको कैसे करू? मैं इसे काम नहीं कर सकता। इसके लिए कुछ भी काम नहीं करता है, इससे कोई फर्क नहीं पड़ता कि मैं क्या करता हूं। एंड्रॉइड वास्तव में छोटी गाड़ी लगता है। आप किस माता-पिता से परामर्श करते थे? आपने इसका नाम क्या रखा? आपने मेनिफेस्ट में क्या संदर्भ दिया? –

+1

अच्छा जवाब :) इस तरह का उपयोग करें, ' ' – tenten

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