आप Android ActionBar से शीर्षक पाठ कैसे निकालते हैं?


106

मैं Holo.Lightविषय के माध्यम से देख रहा हूं , और मैं शीर्षक पाठ से छुटकारा पाने के लिए जादू की शैली को खोजने के लिए प्रतीत नहीं कर सकता हूं जो मेरे ऐप के पहले लॉन्च होने पर संक्षेप में दिखाई देता है।

मैं उसे कैसे कर सकता हूँ?

जवाबों:


216

प्रयत्न:

 getActionBar().setDisplayShowTitleEnabled(false);

V.7 के लिए:

 getSupportActionBar().setDisplayShowTitleEnabled(false);

22
आप अभी भी शीर्षक देखेंगे जबकि एक्शन बार लोड हो रहा है जो आप नहीं चाहते हैं। सही समाधान वही है जो m3n0R ने सुझाया है।
अंकन सलाति

12
यह getSupportActionBar () होना चाहिए। v7 के लिए। othewise इसे null पॉइंटर निष्पादन का उत्पादन करेगा
अमीर

5
@numansalati m3n0R कौन है? मैंने पृष्ठ खोजा है और कुछ नहीं मिला है
ka3ak

मुझे तरीकों को कब शांत करना चाहिए? मेरा मतलब है कि किस विधि (गतिविधि, टुकड़ा) से इसे बुलाया जाना चाहिए?
ka3ak

94

मुझे लगता है कि यह सही उत्तर है:

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>
</style>

एंड्रॉइड 4 के बारे में क्या? मैं ActionBarSherlock का उपयोग नहीं कर रहा हूं, इसलिए कोई संसाधन नहीं है Widget.Sherlock.Light.ActionBar.Solid.Inverse। मुझे किस माता-पिता का उपयोग करना चाहिए?
एलेक्स सेमीनेक

होलो थीम। डिफ़ॉल्ट रूप से 3 होलो थीम हैं जिन पर आप विस्तार कर सकते हैं।
cesards

यह पहले लॉन्च पर शीर्षक को छिपाने के लिए काम करता है। किसी अन्य गतिविधि में कॉलिंग सेटटाइल काम नहीं करता है। क्या रनटाइम पर एक्शन बार शैलियों को स्वैप करने का एक तरीका है?
स्पीडिनोमैड्स

डिफ़ॉल्ट थीम को रनटाइम पर सेट करना:
cesards

@ domji84, आप प्रत्येक गतिविधि के विषय को प्रकट फ़ाइल में निर्दिष्ट कर सकते हैं।
आशीषुध

63

मैं एंड्रॉइड के लिए बहुत नया हूं इसलिए अगर मैं गलत हूं तो मुझे सही करें, लेकिन मुझे लगता है कि अगर आप एक्शन बार पर नेविगेशन टैब का उपयोग करने का निर्णय लेते हैं, तो उन्हें ऐसा लगता है कि उन्हें पूरी तरह से संरेखित नहीं किया जाना चाहिए क्योंकि शीर्षक पाठ का रंग केवल पारदर्शी और हैन है ' टी दूर चला गया।

<style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
     <item name="android:displayOptions">useLogo|showHome</item>
</style>

मेरे लिए काम किया।


हां, आप गलत हैं, प्रश्न में कोई टैब नहीं है और आपके उत्तर में कोई होलो लाइट नहीं है
miky

जब मैं यह कोशिश कर रहा हूँ, यह त्रुटि हो रही है, @android: style / Widget.Holo.ActionBar के लिए API स्तर 11 (वर्तमान न्यूनतम 10 है) की आवश्यकता है।
jrhamza

यदि मैं इस शैली को एक विशिष्ट गतिविधि के एक्शन बार में निर्दिष्ट करना चाहता हूं और मेरे आवेदन की सभी गतिविधियों के लिए नहीं। मैं यह कैसे कर सकता हूं? मैंने 'android: displayOptions' लाइन कहाँ रखी है? Menu.xml में? AndroidMenifest.xml में?
गेरो

43

समझ गया। आपको ओवरराइड करना होगा

android:actionBarStyle

और फिर अपनी कस्टम शैली में आपको ओवरराइड करना होगा

android:titleTextStyle

यहाँ एक नमूना है।

मेरे विषयों में। Xml:

<style name="CustomActionBar" parent="android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>

और मेरी शैलियों में। Xml:

<style name="CustomActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@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>

मुझे यकीन नहीं है कि टेक्स्ट को सेट करना शून्य पर सेट करना क्यों नहीं किया (यह पाठ को सिकोड़ता है, लेकिन इसे दूर नहीं गया), लेकिन टेक्स्टकार को पारदर्शी कार्यों के लिए सेट करना।


3
हाँ जिससे मदद मिली। किसी भी विचार android:visibility=goneका कोई प्रभाव क्यों नहीं है? या बेहतर अभी तक, setDisplayShowTitleEnabledबार लोड होने के दौरान अभी भी शीर्षक पाठ क्यों दिखाता है?
मथायस

7
<आइटम का नाम = "android: displayOptions"> useLogo | showHome </ item> का उपयोग करने के लिए आकार सेट करने के बजाय 0
जेरोम VDL

23

अपने मेनिफेस्ट में

<activity android:name=".ActivityHere"
     android:label="">

33
यह काम करता है, लेकिन आपके ऐप को 'हाल ही में उपयोग किए गए ऐप्स' में चयनकर्ता को रोक देगा
रूपर्ट बेट्स

1
इस एप्लिकेशन को फोन एप्लिकेशन / मुख्य स्क्रीन पर नाम नहीं है
निमितैक

13

इस कथन को नीचे लिखें

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

यदि AppCompactActivity का विस्तार हो रहा है, तो getSupportActionbar()गतिविधि का उपयोग करने वाले getActionBar()इसे दे सकते हैं

null pointer exception

का उपयोग कर android:label=""में AndroidManifest.xml गतिविधि भी काम करता है के लिए लेकिन अपने अनुप्रयोग में दिखाई नहीं देगाRecently used apps


9

आपके पास दो विकल्प हैं:

पहला:

getActionBar().setDisplayShowTitleEnabled(false);

अगर usign getActionBar()ने null पॉइंटर अपवाद का उत्पादन किया है, तो आपको दूसरा उपयोग करना चाहिएgetSupportActionBar()

getSupportActionBar().setTitle("your title");

या

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().hide();

6

मैं ऐप मैनिफ़ेस्ट में इस कोड का उपयोग करता हूं

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo2"
        android:label="@string/title_text"
        android:theme="@style/Theme.Zinoostyle" >

मेरी लोगो फ़ाइल 200 * 800 पिक्सेल है और मुख्य गतिविधि में इस कोड का उपयोग करें। जावा

getActionBar().setDisplayShowTitleEnabled(false);

यह Corectly काम करेगा


6

मैंने यह कोशिश की। ये सहायता करेगा -

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

getSupportActionBar को setSupportActionBar के बाद कहा जाना चाहिए, इस प्रकार टूलबार सेट करना, अन्यथा, NullpointerException क्योंकि कोई टूलबार सेट नहीं है। उम्मीद है की यह मदद करेगा


5

आप प्रत्येक गतिविधि पर लागू शैली को बदल सकते हैं, या यदि आप केवल किसी विशिष्ट गतिविधि के लिए व्यवहार को बदलना चाहते हैं, तो आप यह कोशिश कर सकते हैं:

setDisplayOptions(int options, int mask) --- Set selected display 
  or
setDisplayOptions(int options) --- Set display options.

एक्शनबार पर शीर्षक प्रदर्शित करने के लिए, ऑनक्रिएट () में प्रदर्शन विकल्प सेट करें

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);

एक्शनबार पर शीर्षक छिपाने के लिए।

getSupportActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

विवरण यहाँ है


3

केवल एक चीज जो वास्तव में मेरे लिए काम करती थी वह थी:

<activity 
    android:name=".ActivityHere"
    android:label=""
>

अच्छी तरह से "गलत" जवाब था, हालांकि यह मुझे इसी तरह के मामले के साथ मदद करता है :)
जेवियर

1
इसे कम से कम जब यह आपके आवेदन को दुर्घटनाग्रस्त कर देगा तो ऐसा न करें
jfcartier

3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

आशा है कि यह मदद करेगा


2

निम्न का उपयोग करें:

requestWindowFeature(Window.FEATURE_NO_TITLE);

यदि आप ActionBar का उपयोग कर रहे हैं तो आप ऐसा नहीं कर सकते। यदि आप ऐसा करने की कोशिश करते हैं तो ऐप खुलते ही तुरंत क्रैश हो जाएगा।
क्रिस्टोफर पेरी

@ChristopherPerry सच नहीं है। आप कोड में एक्शन बार को हटाने के लिए इसका उपयोग कर सकते हैं, बशर्ते आप इसे सेट-कॉन्टेंट व्यू से पहले करें।
अंकन सलाति

हालाँकि, यह केवल अपने शीर्षक के बजाय पूरे एक्शनबार को हटा रहा है!
बोफ्रेडो

2

यदि आप इसे केवल एक गतिविधि के लिए करना चाहते हैं और शायद गतिशील रूप से भी, तो आप भी उपयोग कर सकते हैं

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_TITLE);

1

वर्कअराउंड के रूप में इस पंक्ति को जोड़ दें आपके पास कस्टम एक्शन / टूलबार है

this.setTitle("");

आपकी गतिविधि में


1

हालांकि ये सभी स्वीकार्य हैं, यदि आपकी गतिविधि में केवल एक मुख्य गतिविधि है, तो आप इसे संपादित कर सकते हैं res\values\styles.xml:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

मैंने parentएंड्रॉइड स्टूडियो Create Blank Applicationविज़ार्ड से लाइट थीम के लिए .NoActionBar संपत्ति को अपडेट और जोड़ा है ।


यह न केवल शीर्षक को पूरे एक्शन बार को निष्क्रिय कर देगा। और यदि आप रिक्त क्रिया पट्टी बनाना चाहते हैं तो आपको इसे हर एक दृश्य के लिए करना होगा।
ऑलवेजकॉन्फ़्यूड

1

बस अपनी जावा फ़ाइल का विस्तार करें AppCompatActivityऔर ऐसा करें:

ActionBar actionBar = getSupportActionBar(); // support.v7
actionBar.setTitle(" ");

0

अपने मैनिफ़ेस्ट.xml पृष्ठ में आप अपने गतिविधि लेबल को पता दे सकते हैं। पता आपके मान / स्ट्रिंग्स.xml में कहीं है। तब आप xml फ़ाइल में टैग के मान को शून्य में बदल सकते हैं।

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title_main_activity"></string>
</resources>

0

मैं एंड्रॉइड के लिए नया हूं इसलिए शायद मैं गलत हूं ... लेकिन इस समस्या को हल करने के लिए कि हम सिर्फ प्रकट में जाएं और गतिविधि लेबल को हटा दें

<activity
        android:name=".Bcft"
        android:screenOrientation="portrait"

        **android:label="" >**

मेरे लिए काम किया…।


-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");

3
@Matteo हालांकि यह काम कर सकता है, यह निश्चित रूप से स्केच है और इसे करने का सही तरीका नहीं है। वास्तव में, यह वास्तव में शीर्षक पाठ को नहीं हटाता है, यह सिर्फ इसे "" सेट करता है, ताकि आप इसे देख न सकें।
user1234
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.