एंड्रॉइड में स्टेटस बार को कैसे छिपाएं


103

मैंने इस लिंक को संदर्भित किया । उस में यदि उपयोगकर्ता उस समय EditText (पूर्व के लिए:) पर क्लिक करता है, तो कीबोर्ड पॉप आउट हो जाएगा और उसी समय उपयोगकर्ता शेष सभी दृश्य देखने के लिए स्क्रॉल करने में सक्षम हो सकता है (उदा: लिखें, विषय, भेजें बटन) वह स्क्रीन। इसी तरह मेरे ऐप में मेरी एक गतिविधि है कि मैं कुछ विजेट या विचार रख रहा हूं। मान लीजिए कि यदि उपयोगकर्ता Edittext पर क्लिक करता है जो मेरी गतिविधि में है तो कीबोर्ड पॉप आउट हो रहा है और मैं शेष दृश्यों को देखने के लिए स्क्रॉल करने में सक्षम हो सकता हूं। लेकिन अगर मैं android:theme="@android:style/Theme.NoTitleBar.Fullscreen"प्रकट में यह विशेषता देता हूं तो मैं शेष विचारों को देखने के लिए स्क्रॉल करने में असमर्थ था, लेकिन यदि विशेषता देandroid:theme="@android:style/Theme.NoTitleBar"इस तरह के रूप में मैं शेष दृश्य देखने के लिए स्क्रॉल करने में सक्षम हो सकता हूं, लेकिन उस स्क्रीन में स्थिति पट्टी है, यहां मुझे पूर्ण स्क्रीन चाहिए और यहां तक ​​कि अगर कीबोर्ड पॉप आउट है तो मैं शेष दृश्य देखने के लिए स्क्रॉल कर सकता हूं ..? इसके लिए मुझे क्या परिवर्तन करने होंगे ..?


3
@ user448250: ध्यान दें कि आप एंड्रॉइड 3.0 में स्टेटस बार को छिपा नहीं सकते हैं, और एक अच्छा मौका है कि आप आगे जा रहे स्टेटस बार को छिपाने में सक्षम नहीं होंगे। एंड्रॉइड 3.0 में, स्टेटस बार में बैक और होम बटन होते हैं, इसलिए स्टेटस बार को हमेशा उपलब्ध रहने की आवश्यकता होती है।
कॉमन्सवेयर

मैं सिर्फ 3.0 के साथ एमुलेटर पर शीर्षक और स्थिति बार दोनों को छिपाने में कामयाब रहा हूं, एपीआई स्तर 11.
इरेडिएस्टर

पूर्ण स्क्रीन को अभी भी अनुमति दी जानी चाहिए, उपयोगकर्ता आमतौर पर पूर्ण स्क्रीन गेम खेलते समय स्टेटस बार नहीं देखना चाहते हैं।
GMsoF

@ user448250 क्या आपको कभी यह पता चला?
तियागो

गतिविधि क्या है? यह आपके वेबसाइट फ़ोल्डर में कुछ xml फ़ाइल है?
नेबुलर डस्ट

जवाबों:


171

इसे अपनी गतिविधि में लिखें

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

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

डॉक यहां चेक करें: https://developer.android.com/training/system-ui/status.html

और आपका ऐप फुलस्क्रीन जाएगा। नो स्टेटस बार, नो टाइटल बार। :)


29
ध्यान दें कि यह काम नहीं करेगा अगर आपकी गतिविधि सुपरक्लास ऑनक्रीट विधि में setContentView को बुलाती है - ऐप एक अपवाद के साथ छोड़ देगा।
बेन क्लेटन

1
@ क्या मैं एपीआई स्तर पर परीक्षण कर रहा था 8. यह संभव है कि व्यवहार अन्य स्तरों पर भिन्न हो?
बेन क्लेटन

क्या यह 2.3.x से 4.x के सभी संस्करणों के लिए मान्य है?
कोस्टाडिन

1
यह तब भी स्क्रीन को स्क्रॉल करने से रोकता है जब सॉफ्टवेयर कीबोर्ड दिखाया जा रहा है।
तियागो

3
super.onCreate(savedInstanceState);दुर्घटना होने से पहले इसका उपयोग करें
डेविड

19
 if (Build.VERSION.SDK_INT < 16) {
   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
 } else {
     View decorView = getWindow().getDecorView();
      int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
      decorView.setSystemUiVisibility(uiOptions);
      ActionBar actionBar = getActionBar();
      actionBar.hide();
 }

3
मैंने देखा है कि जब मैं इस पद्धति का उपयोग करता हूं, तो सॉफ्ट-कीबोर्ड दिखाते हुए चीजों को आकार देने के बजाय, EditText के ऊपर विचारों को स्थानांतरित करता है। मैं यह कैसे तय करुं?
Android डेवलपर

19

विषय का उपयोग करें "Theme.NoTitleBar.Fullscreen"और "android:windowSoftInputMode=adjustResize"गतिविधि के लिए सेटिंग का प्रयास करें AndroidManifest.xml.आप यहां विवरण पा सकते हैं ।


उपरोक्त दृष्टिकोण के साथ, मेरी स्थिति पट्टी को छिपाया जा सकता है जब एप्लिकेशन पूर्ण स्क्रीन चल रहा है, हालांकि, मैं अभी भी स्थिति पट्टी देख सकता हूं जब मैं पृष्ठ को नीचे स्वाइप कर रहा हूं। क्या कोई रास्ता है अगर मुझे स्टेटस बार बिल्कुल नहीं चाहिए?
हेज़ल वांग

13

इस कोड को अपने ऐप में स्टेटस बार को छिपाने और उपयोग करने में आसान बनाने के लिए उपयोग करें

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

12

यदि आपको एक गतिविधि में इसकी आवश्यकता है, तो आपको onCreate में, setContentView से पहले रखना होगा:

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

setContentView(R.layout.your_screen);

1
यह तरीका वेबव्यू में कीबोर्ड कवर इनपुट फील्ड बनाता है।
एलन वॉर्क

@AllenVork का कोई हल?
ईशान कुमार

12

इसे अपनी गतिविधि कक्षा में जोड़ें

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(
                        WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
    // some your code
}

8

यह आपके लिए उपयोग करें Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

6
void hideStatusBar() {
        if (Build.VERSION.SDK_INT < 16) {
           getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        } else {
            View decorView = getWindow().getDecorView();
            int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);
        }
    }

स्टेटस बार को छिपाने के लिए आप इस विधि का उपयोग कर सकते हैं। और एक्शन बार को छिपाना भी महत्वपूर्ण है। इस मामले में, आप कर सकते हैं getSupportActionBar ()। छिपाने () आप Appcompat तरह समर्थन lib से गतिविधि बढ़ा अगर है या आप बस फोन कर सकते हैं () getActionBar ()। छिपाने के बाद विधि ऊपर उल्लेख किया है। धन्यवाद


6

manifest.xmlफ़ाइल में एप्लिकेशन का विषय बदलें ।

android:theme="@android:style/Theme.Translucent.NoTitleBar"

अजीब तरह से यह स्क्रीन के शीर्ष पर एक नारंगी पट्टी दिखाता है। अधिसूचना बार हालांकि छिपा हुआ है।
दानिश अशफाक

6

यदि आप स्टेटस बार छिपा रहे हैं, तो इसे onCreate (गतिविधि के लिए) और onCreateView / onViewCreated (Fragment के लिए) में करें

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

और गतिविधि से बाहर निकलते समय ध्वज को साफ़ करना न भूलें वरना इस गतिविधि पर जाने के बाद आपके पूरे ऐप में पूरी स्क्रीन होगी। अपने onDestroy (गतिविधि के लिए) या onDestroyView (फ़्रैगमेंट के लिए) में इसे साफ़ करने के लिए

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)

5

इस कोड का उपयोग करें:

requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.youractivityxmlname);

4

यह कोड स्टेटस बार को छुपाता है।

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

एक्शन बार छिपाने के लिए यह लाइन लिखें: -

requestWindowFeature(Window.FEATURE_NO_TITLE);

एक्शन बार और स्टेटस बार को छिपाने के लिए दोनों लाइनों को सामूहिक रूप से लिखा जा सकता है। setContentViewविधि में कॉल करने से पहले इन सभी पंक्तियों को लिखा जाना चाहिए onCreate


खूबसूरती से काम करता है। धन्यवाद!
जोशुआ पिन्टर

3

AndroidManifest.xml में -> उस गतिविधि के अंदर जिसे आप उपयोग करना चाहते हैं, निम्नलिखित जोड़ें:

android:theme="@style/Theme.AppCompat.Light.NoActionBar"
//this is for hiding action bar

और MainActivity.java में -> ऑनक्रिएट () विधि के अंदर, निम्नलिखित जोड़ें:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//this is for hiding status bar

3

आप style.xml का उपयोग करके छिपा सकते हैं

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="HiddenTitleTheme" parent="AppTheme">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

बस इसे इस तरह से अपने रूप में प्रकट करें android:theme="@style/HiddenTitleTheme"


3

आप xml का उपयोग करके ट्रांसपेरेंट के लिए रंग सेट करके स्टेटस बार छिपा सकते हैं । अपनी गतिविधि विषय में स्टेटबार्कर आइटम जोड़ें :

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

pls कुछ स्पष्टीकरण कोड जोड़ें केवल उत्तर दूसरों को थोड़ा भ्रमित कर रहे हैं
राम गद्याराम

2
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setTheme(R.style.Theme_AppCompat_Light_NoActionBar);
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN
    , WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity__splash_screen);
}

हालांकि यह कोड प्रश्न को हल कर सकता है, जिसमें यह भी बताया गया है कि यह समस्या कैसे और क्यों हल करती है, इससे वास्तव में आपके पोस्ट की गुणवत्ता को बेहतर बनाने में मदद मिलेगी, और संभवत: अधिक वोटों का परिणाम होगा। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, न कि केवल उस व्यक्ति से जो अब पूछ रहा है। कृपया स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें और संकेत दें कि क्या सीमाएँ और मान्यताएँ लागू होती हैं।
23

मुझे बिल्कुल अंदाजा नहीं था कि AppCompat क्या है, बस इसका इस्तेमाल कर रहा है। और इन तीन लाइनों ने काम किया।
14

अफ़सोस इस बात का है कि Google का अपना दस्तावेज़, हमेशा की तरह, गलत है कि इसे कैसे हासिल किया जाए। शायद उन्हें इस कोड को कॉपी पेस्ट करना चाहिए।
जीशान

1

यह एंड्रॉइड 4.0 और निचले और एंड्रॉइड 4.1 और उच्चतर पर स्टेटस बार को छिपाने के बारे में आधिकारिक दस्तावेज है

कृपया, इस पर एक नज़र डालें:

https://developer.android.com/training/system-ui/status.html


0

हम पूर्ण स्क्रीन मोड (4.4+) किटकैट या इसके बाद के डिवाइस में दिखाई देने वाली स्थिति को रोक नहीं सकते हैं, इसलिए स्थिति बार को विस्तारित करने से रोकने के लिए हैक का प्रयास करें।

समाधान बहुत बड़ा है, इसलिए यहाँ SO का लिंक दिया गया है:

StackOverflow: फुलस्क्रीन के साथ एंड्रॉइड 4.4+ या किटकैट में स्टेटस बार छुपाएं


मुझे लगता है कि आप गलत हैं, कृपया स्टेटस बार डेवलपर को
।android.com/training/system-ui/status.html

जोस, मैं दिए गए लिंक पर जानकारी की जांच करूंगा और यदि आवश्यक हो तो उत्तर को अपडेट करूंगा। यह प्रश्न / उत्तर एक साल पहले जोड़ा गया था जब इस परिदृश्य के लिए कोई आधिकारिक समाधान नहीं था। अगले रिलीज में हो सकता है या संस्करणों गूगल / एंड्रॉयड उसी के लिए एपीआई / विधि जोड़ा गया है। यदि उन्होंने समाधान प्रदान किया है तो इसकी खुशी है। धन्यवाद!
जिओ द व्हिफ

0

यह समाधान मेरे लिए काम :)

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT >= 19) {
           getWindow().setFlags(AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT, AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT);
           getWindow().getDecorView().setSystemUiVisibility(3328);
    }else{
           requestWindowFeature(Window.FEATURE_NO_TITLE);
           this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }

    DataBindingUtil.setContentView(this, R.layout.activity_hse_video_details);

0
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // If the Android version is lower than Jellybean, use this call to hide
    // the status bar.
    if (Build.VERSION.SDK_INT < 16) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    } else {
       View decorView = getWindow().getDecorView();
       // Hide the status bar.
       int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
       decorView.setSystemUiVisibility(uiOptions);
       // Remember that you should never show the action bar if the
       // status bar is hidden, so hide that too if necessary.
       ActionBar actionBar = getActionBar();
       actionBar.hide();
    }

    setContentView(R.layout.activity_main);

}
...
}

0

में इस्तेमाल किया Manifest

android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"

शायद विषय पर निर्भर करता है। मेरे मामले में एक अपवाद हुआ: "java.lang.IllegalStateException: आपको इस गतिविधि के साथ एक Theme.AppCompat विषय (या वंशज) का उपयोग करने की आवश्यकता है।"
कूलमाइंड

0

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

स्टाइल बॉडी टैग पेस्ट के अंदर

<item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>

0

यदि आप Google दस्तावेज़ों का उल्लेख करते हैं, तो आप इस विधि का उपयोग Android 4.1 और इसके बाद के संस्करण के लिए कर सकते हैं, इस विधि को setContentView () से पहले कॉल करें

public void hideStatusBar() {
    View view = getWindow().getDecorView();
    int uiOption = View.SYSTEM_UI_FLAG_FULLSCREEN;
    view.setSystemUiVisibility(uiOption);
    ActionBar actionBar = getActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
}

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

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