2013-04-30 8 views
21

enter image description hereएंड्रॉइड फोन पर सॉफ्ट-की बार को कैसे छिपाना है?

जब मेरा ऐप शुरू होता है, तो मैं बड़ी स्क्रीन के लिए मुलायम कुंजी बार (लाल आयत में) को छिपाना चाहता हूं।

  1. मैं इसे कैसे छिपा सकता हूं?

  2. क्या ऐप छोड़ने पर मुझे बार-बार बार दिखाने की ज़रूरत है? या ऐप छोड़ने के बाद यह स्वचालित रूप से खुद को पुनर्स्थापित कर देगा?

एंड्रॉइड 4.1, फोन फ्रंट पर कोई हार्डवेयर कुंजी नहीं है।

+0

के संभावित डुप्लिकेट [छुपाएं टेबलेट में सिस्टम बार] (http://stackoverflow.com/प्रश्न/12605266/छुपाएं-सिस्टम-बार-इन-टैबलेट) – jprofitt

+0

भी संभवतः सहायक: [एंड्रॉइड आईसीएस पर सिस्टम बार छिपाने का आसान तरीका] (http://stackoverflow.com/questions/10445157/easy-way-to- छुपाएं-सिस्टम-बार-ऑन-एंड्रॉइड-ics) – jprofitt

उत्तर

19

आधिकारिक doc

SYSTEM_UI_FLAG_LOW_PROFILE ध्वज की जगह STATUS_BAR_HIDDEN ध्वज से

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

की कोशिश करो। सेट करते समय, यह ध्वज सिस्टम बार या नेविगेशन बार के लिए "कम प्रोफ़ाइल" मोड सक्षम करता है। नेविगेशन बटन मंद और में अन्य तत्व सिस्टम बार भी छिपाते हैं। इसे सक्षम करना सिस्टम नेविगेशन के लिए व्याकुलता के बिना इमर्सिव गेम बनाने के लिए उपयोगी है बटन।

SYSTEM_UI_FLAG_VISIBLE झंडा अनुरोध करने के लिए प्रणाली पट्टी या नेविगेशन पट्टी दिखाई दे सकता है STATUS_BAR_VISIBLE झंडा बदल देता है।

SYSTEM_UI_FLAG_HIDE_NAVIGATION एक नया झंडा कि नेविगेशन पट्टी छिपाने पूरी तरह से अनुरोध करता है। ध्यान रहे कि यह केवल काम करता है रहो कुछ हन द्वारा नेविगेशन बार के लिए उपयोग किया जाता है dsets (यह टैबलेट पर सिस्टम बार छिपा नहीं है)। नेविगेशन बार जैसे ही सिस्टम उपयोगकर्ता इनपुट प्राप्त करता है, देखने के लिए लौटता है। इस प्रकार, यह मोड प्राथमिक रूप से वीडियो प्लेबैक या अन्य मामलों के लिए उपयोगी है जिसमें संपूर्ण स्क्रीन की आवश्यकता है लेकिन उपयोगकर्ता इनपुट आवश्यक नहीं है।

एनएवी बार का व्यवहार ऐप निर्भर आईआईआरसी है, इसलिए उपयोगकर्ता को आपके ऐप को छोड़ने के बाद इसे फिर से दिखाना चाहिए।

+1

धन्यवाद! उपर्युक्त कोड अपेक्षित बार को छुपाता है। हालांकि, जब मैं सक्रिय ऐप की स्क्रीन को छूता हूं, तो बार फिर से दिखाई देगा। मैं शेष ऐप जीवन चक्र के लिए बार कैसे छिपा सकता हूं? – ohho

+0

जब भी उपयोगकर्ता ऐप के साथ इंटरैक्ट करता है, तो एनवी बार वापस आ जाएगा, जैसा आपने देखा है। आधिकारिक डॉक्टर, जानबूझकर व्यवहार के अनुसार यह है।मुझे लगता है कि दुर्भाग्यवश, जब भी आप एक बातचीत की उम्मीद करते हैं तो आपको बार को छिपाना होगा। https://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_HIDE_NAVIGATION – MarsAtomic

+2

@MarsAtomic यह वर्चुअल कीबोर्ड उपस्थिति के साथ काम एपीआई स्तर 19 वहाँ SYSTEM_UI_FLAG_IMMERSIVE है और SYSTEM_UI_FLAG_IMMERSIVE_STICKY – user457015

27

मुझे देर हो चुकी है लेकिन यह सही जवाब है, इसलिए आप जो करने की कोशिश कर रहे हैं वह इमर्सिव मोड कहलाता है। (19 एपीआई)

जांच के लिए: https://developer.android.com/training/system-ui/immersive.html

कोड है कि आप के लिए पूछ रहे थे है:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     getWindow().getDecorView().setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
         | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
    } 
} 
+0

धन्यवाद, लेकिन मैं का सामना करना पड़ रहा जब मैं कीबोर्ड खोलता हूं, तो समस्याएं नीचे ले जा रही हैं। –

+0

@PraveenPandey आपको clippadding झूठी टैग जोड़ना चाहिए। – mhdjazmati

+2

अंततः यह काम है। कोड हर कोई है लेकिन बिंदु उस पर हैविंडोफोकस चेंज। धन्यवाद! – Mete

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