2013-07-17 13 views
5

कोई फर्क नहीं पड़ता कि मैं शैलियों को कैसे संशोधित करता हूं, लाल तीर द्वारा इंगित बॉक्स का पृष्ठभूमि रंग पृष्ठभूमि से नहीं बदलेगा।एक्शनबार शीर्षक के पृष्ठभूमि रंग को कैसे बदला जाए?

img

मुझे लगता है कि रंग बदल सकता हूँ? मैं 4.0+ को लक्षित कर रहा हूं और 4.0- डिवाइस और ओएस के बारे में परवाह नहीं करता हूं।

यहां my styles.xml file का एक लिंक है। क्षमा करें मुझे कुछ चीजों को सेंसर करना पड़ा क्योंकि यह परियोजना एनडीए के तहत है।

सहित

मैं कोशिश की है बहुत सी बातें:

  • actionBarWidgetStyle
  • में actionBarStyle
  • android:background बदलने में windowTitleBackgroundStyle
  • android:background बदलने में android:background बदलने बदलने android:actionBarItemBackground

उन कार्यों में से कोई भी नहीं। यह टेक्स्ट व्यू हमेशा मेरे बेस थीम से android:background मान पर चिपक जाता है और कुछ भी इसे ओवरराइड करने में सक्षम नहीं था।

मुझे क्या याद आ रही है या गलत कर रहा है?

+0

संसाधनों का एक सेट उत्पन्न करने के लिए http://jgilfelt.github.io/android-actionbarstylegenerator का उपयोग करें, और देखें कि वहां क्या है जो प्रासंगिकता का हो सकता है जिसे आपने अभी तक नहीं देखा है। – CommonsWare

उत्तर

1

अपने xml फ़ाइल की interisting हिस्सा है:

<!-- ActionBar --> 
    <style name="CCCWidgetActionBar" parent="@android:style/Widget.Holo.ActionBar"> 
     <item name="android:background">@color/nav_background</item> 
     <item name="android:textColor">@color/nav_text</item> 
     <item name="android:titleTextStyle">@style/CCCWidgetActionBarTitle</item> 
     <item name="android:textViewStyle">@style/CCCWidgetActionBarTitle</item> 

     <item name="android:windowTitleStyle">@style/CCCWindowTitle</item> 
     <item name="android:windowTitleBackgroundStyle">@style/CCCWindowTitleBackground</item> 
     <item name="android:windowBackground">@color/nav_background</item> 
    </style> 

बस बदलने के लिए:

<item name="android:background">@color/nav_background</item> 

तक
<item name="android:background">@color/pink</item> 

वरना किसी भी रंग।

मेरे लिए ठीक काम करता है।

+0

मेरे गैलेक्सी एस II पर काम नहीं करता है। प्रश्न में बताई गई वही समस्या। – chakrit

+0

शीर्षक टेक्स्ट क्रिया बार पृष्ठभूमि का उपयोग नहीं करता है, केवल एप्लिकेशन पृष्ठभूमि शैली। यह किसी विशेष रंग को बदलने के बिना अन्य सभी के पृष्ठभूमि रंग को बदलने के बिना असंभव बनाता है। – chakrit

+0

मुझे अपने लेनोवो एस 880 पर भी एक ही समस्या है। मुझे संदेह है कि यह डिवाइस की समस्या है, हालांकि Google+ ऐप में एक ही डिवाइस पर एक अच्छा एक्शनबार रंग है .. अजीब – Zyoo

1

आप कस्टम एक्शन-बार बनाते हैं और शीर्षक पृष्ठभूमि रंग को बदलना संभव है, जो भी आप चाहते हैं।

इस कदम का पालन करें:

केवल संभव इस के लिए शीर्षक के लिए कस्टम शर्लक बार बनाने के लिए।

ऐप पर शीर्षक के लिए अलग xml फ़ाइल बनाएं।

फ़ाइल इस तरह होता है कि ..

इस कस्टम लेआउट में, हम कर सकते हैं MainActivity के लिए .. रंग कोड का उपयोग कर पृष्ठभूमि का रंग बदलने के लिए

header_sherlock.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" 
android:weightSum="3" 
android:background="#008000" 
> 

    <TextView 
    android:id="@+id/header_tvleft" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:gravity="left" 
    android:layout_marginTop="@dimen/margintop" 
    android:clickable="true" 
    android:paddingLeft="@dimen/layoutpaddingleft" 
    android:text="Textview" 
    android:textColor="#ffffff" 
    android:textSize="@dimen/header_leftbtn" 
    /> 


<TextView 
    android:id="@+id/header_tvcenter" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:gravity="center_horizontal" 
    android:layout_marginTop="@dimen/margintop" 
    android:layout_marginRight="@dimen/sherlockpaddingright" 
    android:layout_marginLeft="@dimen/sherlockpaddingleft" 
    android:text="Textview" 
    android:textColor="#ffffff" 
    android:textStyle="bold" 
    android:textSize="@dimen/header_title" 
    /> 

    <TextView 
    android:id="@+id/header_tvright" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:gravity="right" 
    android:layout_marginTop="@dimen/margintop" 
    android:clickable="true" 
    android:paddingRight="@dimen/layoutpaddingright" 
    android:text="Textview" 
    android:textColor="#ffffff" 
    android:textSize="@dimen/header_rightbtn" 
    /> 

</LinearLayout> 

सक्षम या आप जिस गतिविधि को शीर्षक जोड़ना चाहते हैं:

  getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    getSupportActionBar().setCustomView(R.layout.header_sherlock); 
    header_tvleft = (TextView) findViewById(R.id.header_tvleft); 
    header_tvleft.setText("LeftTitleName"); 
    header_tvcenter = (TextView) findViewById(R.id.header_tvcenter); 
    header_tvcenter.setText("CenterTitleName"); 
    header_tvright = (TextView) findViewById(R.id.header_tvright); 
    header_tvright.setText("RightTitleName"); 

थाई का प्रयास करें एस विधि ..

+0

एक्शनबैरशेलॉक का उपयोग किए बिना ऐसा करने के लिए संभव है और केवल एंड्रॉइड एक्शनबार स्टॉक करें? – chakrit

0

यह एक पुरानी सवाल है, लेकिन मैं सिर्फ वास्तव में एक ही समस्या थी - मेरे लिए मुद्दा मैं इस किया था कि था:

<item name="android:actionBarItemBackground">@drawable/btn_dark</item> 
<item name="actionBarItemBackground">@drawable/btn_dark</item> 

कहाँ btn_dark एक निर्णायक सामान्य बटन के लिए एक फिर से इस्तेमाल किया drawable था सक्षम, दबाए गए और अक्षम राज्यों के लिए रंग। यह नए उपकरणों पर ठीक काम करता है लेकिन मेरे पुराने 2.3 फोन पर मुझे शीर्षक पर भूरे रंग की पृष्ठभूमि मिल रही थी।

दिलचस्प रूप से अक्षम राज्य (जिसके लिए मैंने एक गहरे ग्रे रंग के रूप में सेट किया था), पुराने डिवाइस पर एक्शन बार शीर्षक की पृष्ठभूमि पर लागू किया गया था। अक्षम रंग को पारदर्शी में सेट करना ठीक था। windowBackground

साथ
<style name="CCCBaseTheme" parent="@android:style/Theme.Holo"> 
    <item name="android:windowBackground">@color/nav_background</item> 
    <item name="android:textColor">@color/text</item> 

    <item name="android:actionBarStyle">@style/CCCWidgetActionBar</item> 

</style> 

आशा है कि यह मदद मिलेगी पृष्ठभूमि:

4

वैसे आप एंड्रॉयड बदलने की जरूरत है।

+0

वाह, 2 साल के बाद हाहा। मुझे यकीन नहीं है कि यह सही समाधान है क्योंकि मैं अब प्रश्न के संदर्भ में इसका परीक्षण नहीं कर सकता। यदि कोई और साथ आता है और यह काम करता है, तो मैं स्वीकार किए जाने के रूप में चिह्नित करूंगा। – chakrit

+0

हेहे कल मैंने इस मुद्दे का सामना किया, मैं हमेशा कस्टम एक्शन बार का उपयोग करता हूं: एस .... मैंने इसका परीक्षण किया (विंडोबैकग्राउंड) और यह ठीक काम कर रहा है :) –

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