2012-05-10 17 views
8

के बजाय इमेव व्यू के रूप में एक्शनबार कस्टम शीर्षक, मैं एक्शनबार पर इसके आसपास काम करने की कोशिश कर रहा हूं लेकिन शीर्षक से मैं मूल रूप से एक टेक्स्ट व्यू देख सकता हूं लेकिन मुझे सादा पाठ की बजाय एक छवि रखने की आवश्यकता है। मैं इसे सेट अप करने के लिए इस रूप में शैली themes.xml में प्रयास करें:एक्शनबार कस्टम टाइटल टेक्स्टव्यू

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

और फिर मैं इस शैली

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">@drawable/action_background</item> 
    <item name="android:titleTextStyle">@style/ActionbarTitleStyle</item> 
</style> 

मैंने सोचा कि मैं खिताब के लिए पृष्ठभूमि में परिभाषित किया जा सकता था कि परिभाषित लेकिन मैं भी तो ऐसा नहीं है जो मैं चाहता हूं, getActionBar() सेट करें। कस्टम कस्टम (लेआउट) सेट करें; लेकिन खुशी है कि सेट से पहले मेरी एक्शनबार शून्य है कंटेंट व्यू को बुलाया जा रहा है और मुझे इसे बेस क्लास में चाहिए।

पीडी। मुझे केवल हनीकॉम और उच्चतर की परवाह करने की आवश्यकता है, इसलिए यदि आप शेरलॉक या जोनहानिलसन कार्यान्वयन का सुझाव नहीं देते हैं।

उत्तर

16

यदि आप छवि चाहते हैं, तो आप आइकन के साथ एप्लिकेशन लोगो निर्दिष्ट कर सकते हैं (यह आइकन के स्थान पर किया जाएगा):

<application 
    android:icon="@drawable/ic_launcher" 
    android:logo="@drawable/logo" 
    android:label="@string/app_name" 
    android:name=".AppName" 
    > 

अब आप अपने lanucher आइकन के बजाय एक मनमाना छवि है। पाठ से छुटकारा पाने के लिए आपको आगे क्या करना है। में अपनी शैली की तरह कुछ कार्य करें:

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="titleTextStyle">@style/NoTitleText</item> 
    <item name="android:titleTextStyle">@style/NoTitleText</item> 
    <item name="subtitleTextStyle">@style/NoTitleText</item> 
    <item name="android:subtitleTextStyle">@style/NoTitleText</item>  
</style> 

<style name="NoTitleText"> 
    <item name="android:textSize">0sp</item> 
    <item name="android:textColor">#00000000</item> 
</style> 

आप item name="titleTextStyle" और item name="android:titleTextStyle" अगर आप ActionBarSherlock का उपयोग दोनों का उपयोग करता है, तो मैं अच्छी तरह से याद रखना चाहिए। इस तरह

1

अवहेलना setContentView:

@Override 
public void setContentView(int resLayoutId) { 
    super.setContentView(resLayoutId); 
    // TODO Set your actionbar changes here 
} 

या, आप यह कर सकते हैं:

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">@drawable/action_background</item> 
    <item name="android:titleTextStyle">@style/ActionbarTitleStyle</item> 
    <item name="android:displayOptions">showCustom</item> 
    <item name="android:customNavigationLayout">@layout/custom_nav_layout</item> 
</style> 
संबंधित मुद्दे