क्रिया पट्टी को स्थायी रूप से अक्षम कैसे करें


138

मैं इस कोड का उपयोग करके मधुकोश में एक्शन बार छिपा सकता हूं:

getActionBar().hide();

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


2
उत्तर मिला hhh <गतिविधि android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" ....>
Biji

1
जब आप प्रतिलिपि बनाने का प्रयास नहीं करते हैं, तो उसका डिफ़ॉल्ट दृश्य पेस्ट करें।
पद्म कुमार 14

हां, लेकिन कॉपी पेस्ट खत्म होने के बाद, यह अभी भी गायब नहीं हुआ है
बिज्जी

getSupportActionBar () छिपाने ()।;
अमय सलाग्रे

जवाबों:


251

यदि आप उपयोग कर रहे हैं Theme.Holo.Lightऔर Theme.Holo.Light.NoActionBarपूर्व 3.2 उपकरणों पर संस्करण का उपयोग करना चाहते हैं तो आप इसे अपने साथ जोड़ सकते हैं styles.xml:

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style> 

और फिर इसे अपनी गतिविधि के विषय के रूप में सेट करें:

<activity android:theme="@style/NoActionBar" ... />

8
यह सही जवाब है। @ बिजी के समाधान की तरह कस्टम थीम को हटा नहीं है।
phreakhead

1
किसी भी विचार से सूचना पट्टी को छिपाने के लिए अतिरिक्त ध्वज क्या होगा?
jesses.co.tt

1
मैंने ActionBarActivity के बजाय FragmentActivity से विरासत में लेना भी जरूरी समझा।
मीनमन

4
@ jesses.co.tt अधिसूचना बार का उपयोग कर हटाया जा सकता है<item name="android:windowFullscreen">true</item>
माइक बैक्सटर

यह मेरे लिए काम नहीं किया। निम्नलिखित का उपयोग करें: stackoverflow.com/questions/29790070/…
क्रिस्टोफर स्मिट

116

मैनिफेस्ट में गतिविधि विषय निर्धारित करके,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>

यह ऐसा करने का एकमात्र उचित तरीका लगता है। esp। यदि आप नीचे एक रिश्तेदार होना चाहते हैं ...
jcfrei

1
यह एकमात्र तरीका है जो मुझे काम करने के लिए मिल सकता है, दुर्भाग्य से। यह कस्टम थीम को हटा देता है, लेकिन यह वास्तव में एकमात्र चीज है जो ActionBarमेरे लिए पूरी तरह से हटा देती है।
रिले

3
यह नए ADT में AppCompat विषय के प्रवर्तन के साथ काम नहीं करता है। मुझे नहीं लगता कि यह लड़ाई - AppCompat से पूरी तरह से दूर करने की कोशिश करना अच्छा समाधान है या तो! मैं कोशिश @ monchote का दृष्टिकोण है और यह मेरे लिए काम करता है
ericn

यह होना चाहिए <गतिविधि Android: theme = "@ android: style / Theme.NoTitleBar"> के बजाय <गतिविधि android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen">
अमनदीप

सैमसंग गैलेक्सी जे 2 पर यह ऐप क्रैश करता है, लेकिन नेक्सस 9 पर कोई समस्या नहीं है
Suici Doga

34

मैं अपने ऑनक्रीट फ़ंक्शन के अंदर निम्न कोड का उपयोग करता हूं:

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

स्रोत: https://developer.android.com/guide/topics/ui/actionbar.html


1
स्रोत 2019 तक पुराना लग रहा है। अप टू डेट सोर्स: डेवलपर.
android.com/training/system-ui/status

30
<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

शायद यह आपकी मदद करे


3
ध्यान दें कि इस विधि के लिए api स्तर 13 के एक mnimum की आवश्यकता है
Olumide

23

एंड्रॉइड स्टूडियो के साथ डिफ़ॉल्ट रूप से उत्पन्न गतिविधि सुपरक्लास है ActionBarActivityऔर फिर, अन्य प्रतिक्रियाओं में कोई भी समाधान काम नहीं करता है। केवल सुपरक्लॉस बदलने के लिए हल करने के लिए:

public class xxxActivity extends ActionBarActivity{

सेवा:

public class xxxActivity extends Activity {

इसने मेरे लिए यह किया। आपकी सहायता के लिए धन्यवाद।
j_fulch

17

अगर आप बिना एक्शन और टाइटल के फुल स्क्रीन पाना चाहते हैं।

इसे style.xml में जोड़ें

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

और मैनिफ़ेस्ट का उपयोग मैनिफ़ेस्ट। xml पर करें।

android:theme="@style/AppTheme.NoActionBar" 

12

सबसे अच्छा तरीका मैंने पाया जो कस्टम थीम देता है और कोई एक्शन बार नहीं है, मेरी परियोजना में सभी गतिविधियों के लिए सुपरक्लास बनाना है और इसमें ऑनक्रिएट () कोड की निम्नलिखित पंक्ति को कॉल करना है -

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

यह हमेशा मेरे लिए काम करता है। इस दृष्टिकोण में एकमात्र मुद्दा है, आपको ऐप शुरू करते समय सेकंड के एक अंश के लिए एक्शन बार दिखाई देगा (गतिविधि नहीं, पूर्ण ऐप)।





7

यदि आप केवल बिना किसी एक्शन बार वाली थीम चाहते हैं, तो आप 'NoActionBar' वेरिएंट का उपयोग कर सकते हैं, उदाहरण के लिए। यदि आपका आधार विषय नीचे है

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

तो आप उपयोग कर सकते हैं

<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

लेकिन अगर आप अपने मुख्य विषय के गुणों को बनाए रखना चाहते हैं तो AppTheme को आप नीचे बता सकते हैं

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

आप अपने बेस थीम के सभी गुणों को इस तरह से बनाए रख सकते हैं और उन्हें स्पष्ट रूप से अपने NoActionBar थीम में जोड़ना नहीं है :)


6

होलो थीम का उपयोग न करें और एक्शनबार गायब हो जाएगा। यह कोड API 8+ पर मेरे लिए काम कर रहा है, जिसमें समर्थन v7 है:

<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>

अपनी गतिविधि के लिए वह विषय सेट करें:

<activity android:theme="@style/NoActionBar" ... />

और आपकी गतिविधि कक्षा में।

यह तब भी काम करता है जब यह ActionBarActivity को बढ़ाता है।


6

Res के तहत -> मान -> स्टाइल। xml

परिवर्तन

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

सेवा

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">


5

एक त्वरित समाधान Heres।

आप style.xml पाते हैं और आप बेस एप्लीकेशन थीम को "Theme.AppCompat.NoActionBar" में नीचे दिखाए अनुसार बदल देते हैं।

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>

3

नीचे कार्रवाई पट्टी को स्थायी रूप से छिपाने के चरण दिए गए हैं:

  1. ओपन ऐप / रेस / वैल्यू / स्टाइल.एक्सएमएल।
  2. उस शैली तत्व को देखें जिसका नाम "apptheme" है। के समान दिखना चाहिए <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  3. अब माता-पिता को किसी अन्य विषय के साथ बदलें जिसमें "NoActionBar" शामिल है।

    ए। आप यह भी देख सकते हैं कि कैसे एक विषय गतिविधि_main.xml के डिज़ाइन टैब पर स्विच करके दिखता है और फिर UI की थीम ड्रॉप-डाउन सूची में दिए गए प्रत्येक विषय को आज़मा रहा है।

  4. अपने तो MainActivity फैली AppCompatActivity , सुनिश्चित करें कि आप एक AppCompat विषय का उपयोग कर सकते हैं।


3

इस कोड को अपनी onCreateविधि से पहले टाइप करें setContentView:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);

3

मैं इसके बजाय एक डिज़ाइनर दृष्टिकोण के लिए पोस्ट करना चाहूंगा, इससे डिज़ाइन आपके व्यावसायिक तर्क से अलग रहेगा:

चरण 1. में नई शैली बनाएं (res-> मान-> स्टाइल.xml): मूल रूप से यह विभिन्न माता-पिता के साथ आपकी समग्र योजना की प्रति है - माता-पिता = "Theme.AppCompat.Light.NoActionBar"

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

        <item name="android:windowNoTitle">true</item>
    </style>

चरण 2: अपने AndroidManifest.xml में, इस विषय को अपनी इच्छित गतिविधि में जोड़ें: उदाहरण के लिए, मैं बिना एक्शन-बार के मेरी मुख्य गतिविधि चाहता हूँ, इसलिए इसे नीचे जोड़ें:

<activity android:name=".MainActivity"
            android:theme="@style/MarkitTheme">

बहुत सी चीजों को आजमाने के बाद मेरे लिए यह सबसे अच्छा उपाय है।


2

onCreate फ़ंक्शन में निम्न कोड जोड़ें

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

और बस android.support.v7.app.ActionBar आयात करें


2

सुनिश्चित करें कि आप styles.xmlफ़ाइल में डिफ़ॉल्ट थीम का नाम बदलकर एक नया विषय बनाएँ :

 <style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">

और अपने विषय को ड्रॉप-डाउन से विषय को बदलने के लिए main_activity.xmlजिसे आपने अपना विषय कहा है।


1

एक और दिलचस्प समाधान जहां आप एक्शन बार को हटाते समय ViewPager को बनाए रखना चाहते हैं, शो के रूप में एक शैली है

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:actionBarStyle">@style/NoActionBarStyle</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:backgroundSplit">@null</item>
    <item name="android:displayOptions"></item>
</style>

यह उस तरह से है जैसे एंड्रॉइड में अधिकांश डायलर एप्लिकेशन बिना किसी एक्शन बार के व्यूपेजर दिखा रहे हैं।

Ref: https://github.com/CyanogenMod/android_packages_apps_Dialer


यह समाधान शीर्ष में एक सफेद क्षेत्र छोड़ देता है।
फेलिप FMMobile

यह Theme.AppCompat.Light साथ एंड्रॉयड 2.3 पर मेरे लिए काम किया है, तो मैं @ शैली के लिए NoActionBarStyle माता पिता बदल / Widget.AppCompat.ActionBar.TabBar (मैं एक ViewPager उपयोग कर रहा हूँ)
TouchBoarder

1

अपने घोषणापत्र में यह कोशिश करो

 <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.Holo.NoActionBar"
        android:label="@string/app_name" >

1
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   android.support.v7.app.ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
    setContentView(R.layout.activity_main);

1

ActionBarAndroid में अक्षम करने के दो तरीके हैं ।

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 

1

styles.xmlफ़ाइल में इसका उपयोग करें :


<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>

0

मैं इस समाधान का उपयोग करता हूं:

अपनी गतिविधि टैग के अंदर प्रकट में:

android:label="@string/empty_string"

और तार में। xml:

<string name="empty_string">""</string>

इस तरह आप ActionBar (या टूलबार) शीर्षक के साथ रखते हैं, लेकिन जब गतिविधि बनाई जाती है तो शीर्षक स्वचालित रूप से खाली होता है।


0

अजीब तरह से, इनमें से कोई भी मेरे लिए काम नहीं करता था जब नेक्सस 7 पर 4.4.2 (एपीआई 19) चल रहा था। कम से कम गतिविधि ऐप बनाने के बाद, अधिकांश भाग के लिए, कम से कम एंड्रॉइड स्टूडियो के नवीनतम संस्करण (1.2.1.1) के साथ:

एंड्रॉयड: विषय = "@ शैली / AppTheme"

अनुप्रयोग तत्व में है, गतिविधि तत्व नहीं है। अगर मैंने उपरोक्त कोड हटा दिया है या इसे बदलने की कोशिश की है:

एंड्रॉयड: विषय = "@ एंड्रॉयड: शैली / Theme.Holo.Light.NoActionBar"

एप्लिकेशन नहीं चलेगा ... यदि यह आपके साथ हो रहा है, तो बस अपनी शैलियों में जाएं। xml फ़ाइल (res> मान> स्टाइल.xml) और इस ब्लॉक की तरह माता-पिता के अंत में .NoTitleBar जोड़ें:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

AndroidManifest फ़ाइल में कोई परिवर्तन की आवश्यकता नहीं है।


0

अपने में activity_main.xml, आप वहाँ से लाइन में समायोजित कर सकते हैं:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
    android:theme="@style/Theme.Design.Light.NoActionBar"
.......    
">

कभी-कभी जब आप इस तरह की चीजों को देख सकते हैं तो यहां क्लिक करें , आप यहां से "noActionBar" थीम का चयन कर सकते हैं।

आशा है कि मेरी मदद की।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.