सेटिंग android:windowActionBar="false"
सही मायने में ActionBar को निष्क्रिय कर देती है लेकिन फिर, जैसा कि आप कहते हैं, getActionBar();
अशक्त है। इसके द्वारा हल किया जाता है:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.splash); // be sure you call this AFTER requestFeature
यह ActionBar बनाता है और प्रदर्शित होने का मौका मिलने से पहले इसे तुरंत छिपा देता है।
लेकिन अब एक और समस्या है। windowActionBar="false"
विषयवस्तु में डालने के बाद , एक्टिविटी एक्शनबार के बजाय अपना सामान्य विंडो टाइटल खींचती है।
अगर हम कुछ *.NoTitleBar
स्टॉक थीम का उपयोग करके इससे बचने की कोशिश करते हैं या हम <item name="android:windowNoTitle">true</item>
अपनी खुद की थीम में रखने की कोशिश करते हैं , तो यह काम नहीं करेगा।
कारण यह है कि ActionBar खुद को प्रदर्शित करने के लिए विंडो शीर्षक पर निर्भर करता है - यही ActionBar एक परिवर्तित विंडो शीर्षक है।
तो जो तरकीब हमारी मदद कर सकती है वह है हमारी गतिविधि विषय xml में एक और बात जोड़ना:
<item name="android:windowActionBar">false</item>
<item name="android:windowTitleSize">0dp</item>
यह विंडो का शीर्षक शून्य ऊंचाई के साथ बना देगा, इस प्रकार व्यावहारिक रूप से अदृश्य हो जाएगा।
आपके मामले में, छप स्क्रीन प्रदर्शित करने के बाद आप बस कॉल कर सकते हैं
setContentView(R.layout.main);
getActionBar().show();
और आप कर रहे हैं यह गतिविधि न तो एक्शनबार झिलमिलाहट के साथ शुरू होगी, न ही विंडो शीर्षक दिखाएगा।
ADDON:
यदि आप एक्शनबार को कई बार दिखाते और छिपाते हैं तो शायद आपने देखा है कि पहला शो एनिमेटेड नहीं है । तब से दिखाना और छिपाना एनिमेटेड हैं। यदि आप पहले दिखाना चाहते हैं तो आप इसका उपयोग कर सकते हैं:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
// delaying the hiding of the ActionBar
Handler h = new Handler();
h.post(new Runnable() {
@Override
public void run() {
getActionBar().hide();
}
});
उसी चीज से हासिल किया जा सकता है:
protected void onPostResume() {
super.onPostResume();
getActionBar().hide();
लेकिन यह जाँचने के लिए कुछ अतिरिक्त तर्क की आवश्यकता हो सकती है कि क्या यह गतिविधि का पहला प्रदर्शन है।
विचार यह है कि ActionBar के छिपने में थोड़ी देरी हो। एक तरह से हमने एक्शनबार दिखाया, लेकिन फिर उसे तुरंत छिपा दिया। इस प्रकार हम पहले गैर-एनिमेटेड शो से आगे जाते हैं और अगले शो को दूसरा माना जाएगा, इस प्रकार यह एनिमेटेड होगा।
जैसा कि आप अनुमान लगा सकते हैं कि एक मौका है कि ActionBar को विलंबित ऑपरेशन द्वारा छिपाए जाने से पहले देखा जा सकता है। यह वास्तव में मामला है। ज्यादातर समय कुछ भी नहीं देखा जाता है, लेकिन अभी तक, एक बार में, आप विभाजित सेकंड के लिए एक्शनबार झिलमिलाहट देख सकते हैं।
किसी भी मामले में यह एक सुंदर समाधान नहीं है, इसलिए मैं किसी भी सुझाव का स्वागत करता हूं।
इसके अलावा v7 समर्थन ActionBar उपयोगकर्ता के लिए, कोड हो जाएगा:
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getSupportActionBar().hide();
Theme.AppCompat.Light
... इसका उपयोग कैसे करें उत्तर देने के लिए [1] [1]: stackoverflow.com/a/25365193/1364896