2012-08-08 7 views
5

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

//Remove title bar 
this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
//Remove notification bar 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

लेकिन, मैं orientation और screenSize के लिए configChanges पैरामीटर का उपयोग कर रहा है, तो मेरी गतिविधि फिर से जब नहीं फिर से बनाई गई है यह परिदृश्य की ओर इशारा कर रहा है (मैं इसे कुछ कारणों से कर रहा हूं)। तो मैं उपरोक्त तरीकों का उपयोग नहीं कर सकता क्योंकि इन कॉलों को setContentView() से पहले बनाया जाना चाहिए।

तो कोई विचार? धन्यवाद।

+0

यूट्यूब एप्लिकेशन इसे किसी भी तरह से कर रहा है ... और मुझे यकीन है कि वे फिर से गतिविधि नहीं बना रहे हैं (चित्र में वीडियो चलाने का प्रयास करें। और फिर परिदृश्य पर जाएं)। –

+1

मुझे नहीं लगता कि आप setcontentview कहने के बाद सजावट बदल सकते हैं। मैं सुझाव दूंगा कि आप एक पूर्णस्क्रीन मोड में दृश्य शुरू करें और अपनी सामग्रीदृश्य का अपना शीर्षक पट्टी बनाएं। उस तरह से oreientation परिवर्तन पर आप इसे छुपा सकते हैं। – Shubhayu

+1

इस पोस्ट को पढ़ें http://stackoverflow.com/questions/4853505/android-how-to-disable-feature-no-title, सुझाव अपना खुद का शीर्षक परिभाषित करता है, और आप अपनी पसंद के अनुसार छुपा सकते हैं और दिखा सकते हैं। – idiottiger

उत्तर

2

पहले के रूप में निर्धारित करने के लिए जो संसाधन आदि पुनः प्राप्त किये, निम्नलिखित कोड

वर्तमान कॉन्फ़िगरेशन का उपयोग करके अपने डिवाइस अभिविन्यास जाँच, संसाधन 'विन्यास वस्तु से उपलब्ध के रूप में के रूप में:

getResources().getConfiguration().orientation 

फिर छुपा शीर्षक पट्टी और अधिसूचना बार से संबंधित आवश्यक कोडिंग करें।

+3

"आवश्यक कोडिंग ???" क्या है यह वास्तव में मेरा सवाल है !!!! –

6

आप यह मानते हुए प्रकट में Activity के लिए configChanges परिभाषित किया है तो आप onConfigurationChanged विधि अधिभावी अपने मुद्दे को प्राप्त कर सकते हैं:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      getActionBar().hide(); 
    } else { 
      getActionBar().show(); 
    } 
} 

आप अगर समर्थन लाइब्रेरी का उपयोग कर getActionBar() के बजाय getSupportActionBar() का उपयोग करना होगा।

+0

AppCompatActivity में इसे निकाल दिया नहीं गया है! – IgniteCoders

-1

अपने "AndroidManifest.xml" में, गतिविधि टैग में आप इतना है कि यह हमेशा शीर्षक छुपा देगा विषय संपत्ति में "NoTitleBar" निर्दिष्ट कर सकते हैं:

<activity 
    android:name="com.my_package.MyActivity" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:configChanges="navigation|orientation|screenLayout|layoutDirection"> 
12

एक जवाब के लिए खोज रहा था, समाप्त हो गया यहां, टुकड़ों को एक साथ रखें और यहां वे हैं:

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
else { 
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
+0

धन्यवाद, मेरे लिए काम – Tony

+0

मेरे लिए काम किया 2 –

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