2012-04-08 28 views
37

मैं एक्शनबैरशेलॉक को कार्यान्वित करने की कोशिश कर रहा हूं क्योंकि मुझे बताया गया था कि यह कार्यान्वित करने और अनुकूलित करने के लिए अपेक्षाकृत आसान है। मैंने पाया है कि इसे कार्यान्वित करना बहुत आसान था, लेकिन मैं एक्शनबार के पृष्ठभूमि रंग को बदलने की कोशिश कर रहा हूं और यह मुश्किल साबित हो रहा है।एक्शनबैरशेलॉक पृष्ठभूमि रंग बदलें

साइट के अनुसार (link), ऐसा लगता है कि आप एक्शनबैरशॉक के विषयों में से एक का उत्तराधिकारी हो सकते हैं और फिर अपनी आवश्यक संपत्तियों को ओवरराइड कर सकते हैं।

यह वही है मैं अब तक है:

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <style name="Theme.ActionBar" parent="Theme.Sherlock.ForceOverflow"> 
     <item name="android:background">#000000</item> 
     <item name="background">#000000</item> 
    </style> 
</resources> 

मैं निर्मित विषय देख रहा हूँ पृष्ठभूमि के लिए छवियों का उपयोग कर रहे हैं, लेकिन मुझे लगता है मैं चित्र बनाने के लिए बदलने की जरूरत नहीं है प्रार्थना कर रहा हूँ पृष्ठभूमि रंग।

धन्यवाद।

उत्तर

77

एक्शन बार पृष्ठभूमि रंग को एक्शन बार के लिए शैली में परिभाषित किया गया है, थीम में नहीं। आपको ऐसा कुछ करने की आवश्यकता होगी:

<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow"> 
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item> 
    <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item> 
</style> 

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="android:background">#ff000000</item> 
    <item name="background">#ff000000</item> 
</style> 

एक्सएमएल में परिभाषित रंगों का उपयोग करके सावधान रहें। ColorDrawable प्री-हनीकॉम पर इसकी दृश्य सीमाओं का सम्मान नहीं करता है, इसलिए यदि आप स्टैक्ड टैब दृश्य के लिए एक अलग पृष्ठभूमि के साथ टैब नेविगेशन का उपयोग करते हैं तो आपको समस्याएं होंगी।

+0

प्रतिक्रिया के लिए धन्यवाद। मैं टैब या कुछ भी नहीं कर रहा हूं, कुछ क्रियाओं के साथ केवल एक ही एक्शनबार, इसलिए छवियों के बजाय रंगों का उपयोग करना ठीक है? मैं 8 अलग-अलग ऐप्स पर एक्शनबैरशेलॉक का उपयोग कर रहा हूं और मेरे पास छवियां बनाने की विशेषज्ञता नहीं है। –

+0

बीटीडब्ल्यू, आपका कोड पृष्ठभूमि रंग जोड़ने के लिए काम किया। धन्यवाद। –

+0

तब तक रंगों का उपयोग करना सुरक्षित है जब तक आप इसे स्टैक्ड पृष्ठभूमि विशेषता के लिए उपयोग नहीं कर रहे हैं। नियमित पृष्ठभूमि और विभाजित पृष्ठभूमि ठीक हो जाएगी लेकिन स्टैक्ड के लिए रंग का उपयोग कर प्री-3.0 पर ठीक से प्रदर्शित नहीं होगा। –

54

मैं सिर्फ

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00853c"))); 

इस्तेमाल किया यह पृष्ठभूमि रंग बदल दिया है। आशा करता हूँ की ये काम करेगा।

+4

लघु और मीठा ... –

+2

@alicanbatur यह है, लेकिन यदि आप एक्शनबार में अपनी शैली बनाने की योजना बना रहे हैं और पूरे ऐप के साथ इसका उपयोग करते हैं, तो यह बहुत अच्छा नहीं है अगर आप प्रत्येक कक्षा में कोड की उस पंक्ति को पेस्ट करते हैं जहां आप अपनी पृष्ठभूमि को संशोधित करना चाहते हैं :) – noloman

+0

बहुत सारे प्रयासों को बचाने के लिए धन्यवाद। –

2

जेक व्हार्टन द्वारा उल्लिखित कोड सत्य है।

का एक फ़ोल्डर बनाएँ मान-v11: actionBarStyle एपीआई-11 +

कि त्रुटि को हल करने के में समर्थित है: लेकिन जब styles.xml पर कोड लागू करने अगर आप minSDK < 11 क्योंकि एंड्रॉयड है काम नहीं कर सकता अपने res फ़ोल्डर में और उपर्युक्त वर्णित XML फ़ाइल बनाएं।

+1

जो केवल> = 11 के लिए समस्या हल करता है। –

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