दिलचस्प पोस्ट
अभिगम-नियंत्रण-अनुमति-मूल वाइल्डकार्ड उपडोमेन, बंदरगाह और प्रोटोकॉल JSoup चरित्र एन्कोडिंग समस्या कोणीय UI राउटर – एकाधिक लेआउट के साथ नेस्टेड राज्य ऐक्टिवेटर के बजाय वस्तुओं का तेजी से निर्माण। रचना (प्रकार) क्या मैं यूआरएल के अंदर एक प्रतीक (@) का उपयोग कर सकता हूँ? मैं एक्लिप्स में एंड्रॉइड सपोर्ट लाइब्रेरी स्रोत को कैसे जोड़ूं? एलेप्से में आवेदन ढेर के आकार को कैसे बढ़ाएं? रूबी 2.0.0 पी 0 आईआर चेतावनी: "डीएल नापसंद है, कृपया बेला का उपयोग करें" रूबी में स्ट्रिंग प्रक्षेप काम क्यों करता है जब कोई कर्ल ब्रेसिज़ नहीं होता है? जावास्क्रिप्ट में अस्थायी बिंदु संख्या सटीक से कैसे निपटें? जावास्क्रिप्ट फ़ाइल अपलोड आकार सत्यापन लैम्ब्डा के साथ लूप के साथ टंकिनर बटन कमांड असाइन करें क्या आईओएस में गोपनीयता सेटिंग्स रीसेट करना संभव है? प्रतिलिपि elision और वापसी मूल्य अनुकूलन क्या हैं? फिर से प्रयास करें-पकड़ कैसे करें?

गतिविधि बनाने से पहले एक्शन बार को कैसे छुपाना है, और फिर इसे फिर से दिखाएं?

मुझे अपने मधुकोश ऐप में छप स्क्रीन लागू करने की आवश्यकता है मैं स्प्लैश दिखाने के लिए गतिविधि के क्र्रीट में इस कोड का उपयोग करता हूं:

setContentView(R.layout.splash); getActionBar().hide(); 

और कुछ कोड के बाद मुख्य कोड दिखाने के लिए यह कोड:

 setContentView(R.layout.main); getActionBar().show(); 

लेकिन पहले क्र्रीट को कहा जाता है और छपने लगता है, वहाँ थोड़ी मात्रा होती है जब एक्शन बार दिखाया जाता है।

मैं यह कैसे नहीं दिखा सकता है?

मैंने एक्शन बार के बिना गतिविधि के विषय में विषय को लागू करने की कोशिश की:

 <item name="android:windowActionBar">false</item> 

लेकिन उस मामले में getActionBar () हमेशा रिक्त देता है और मुझे इसे फिर से दिखाने का कोई रास्ता नहीं मिला।

वेब के समाधान से एकत्रित समाधान "गतिविधि बनाने से पहले एक्शन बार को कैसे छुपाना है, और फिर इसे फिर से दिखाएं?"

android:windowActionBar="false" सेटिंग 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 

यह एक्शनबार बनाता है और प्रदर्शित होने का मौका होने से पहले इसे तुरंत छुपाता है।

लेकिन अब एक और समस्या है windowActionBar="false" डाल करने के बाद windowActionBar="false" विषय में, गतिविधि एक एक्शनबार के बजाय अपनी सामान्य विंडो शीर्षक खींचती है।
अगर हम कुछ *.NoTitleBar स्टॉक थीम का उपयोग करके या *.NoTitleBar बचने का प्रयास करते हैं या हम अपने विषय में <item name="android:windowNoTitle">true</item> , यह काम नहीं करेगा।
इसका कारण यह है कि एक्शनबार विंडो शीर्षक पर खुद को प्रदर्शित करने के लिए निर्भर करता है – जो कि एक्शनबार एक परिवर्तित विंडो शीर्षक है।
तो ऐसी चाल जो हमारी सहायता कर सकती है वह हमारी गतिविधि विषय 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 को दिखाया जाए, लेकिन फिर इसे तुरंत छिपाना इस प्रकार हम पहले गैर-एनिमेटेड प्रदर्शन से आगे निकलते हैं और अगले प्रदर्शन को दूसरा माना जाएगा, इस प्रकार यह एनिमेटेड होगा

जैसा कि आपने अनुमान लगाया है कि यह एक मौका है कि एक्शनबारे को देरी से चलने वाले ऑपरेशन द्वारा छुपाए जाने से पहले देखा जा सकता है। यह वास्तव में मामला है। ज्यादातर समय कुछ भी नहीं देखा जाता है, लेकिन फिर भी, एक बार थोड़ी देर में, आप दूसरे भाग के लिए एक्शनबार फ़्लिकर देख सकते हैं।

किसी भी मामले में यह एक बहुत अच्छा समाधान नहीं है, इसलिए मैं किसी भी सुझाव का स्वागत करता हूं।

V7 समर्थन एक्शनबार उपयोगकर्ता के लिए अतिरिक्त , कोड होगा:

 getWindow().requestFeature(Window.FEATURE_ACTION_BAR); getSupportActionBar().hide(); 

यदि आप ActionBarSherlock का उपयोग कर रहे हैं, तो अपनी गतिविधि में Theme.Sherlock.NoActionBar थीम का उपयोग करें

 <activity android:name=".SplashScreenActivity" android:theme="@style/Theme.Sherlock.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

एक्शन बार को छिपाने के लिए आपके क्लासेस फ़ाइल में इस सरल कोड का उपयोग करना

 getSupportActionBar().hide(); 

दो शैलियों बनाएँ:

 <style name="AppThemeNoBar" parent="Theme.AppCompat.Light"> <item name="android:windowNoTitle">true</item> </style> <style name="AppThemeBar" parent="Theme.AppCompat.Light"> <item name="android:windowNoTitle">false</item> </style> 

एप्लिकेशन थीम और ऐपबेरबेर को क्रियाकलाप के रूप में सेट करें जहां आप एक्शनबार दिखाना चाहते हैं। दो शैलियों का उपयोग करते हुए आप एक्शन बार को देख नहीं सकते जबकि दृश्य लोड होते हैं

इस लिंक को एंड्रॉइड की जांच करें : लोड को देखने के दौरान एक्शन बार छिपाएं

हाय मैं 2 विषयों का उपयोग करके एक सरल समाधान है

  1. स्पलैश स्क्रीन थीम (मैनिफेस्ट में इसे जोड़ें):

    <style name="SplashTheme" parent="@android:style/Theme.Holo.NoActionBar"> <item name="android:windowBackground">@color/red</item> </style>

  2. सामान्य थीम (सेटथीम द्वारा अपनी गतिविधि में जोड़ें (R.style.Theme)):

    <style name="Theme" parent="@style/Theme.Holo"> <item name="android:windowBackground">@color/blue</item> </style>

एसडीके का समर्थन करने के लिए 10:

 @Override public void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme); super.onCreate(savedInstanceState); ........... ........... } 

मैं एंड्रॉइड 2.2 पर एक्शन बार को छिपाने का भी प्रयास कर रहा था, लेकिन इनमें से कोई भी समाधान काम नहीं किया। सब कुछ एक दुर्घटना के साथ समाप्त होता है मैंने डीडीएमएस लॉग की जाँच की, यह मुझे 'Theme.AppCompat' का उपयोग करने के लिए कह रहा था। आखिरकार मैंने android:theme="@android:style/Theme.Holo.Light.NoActionBar" को बदलकर इस समस्या का हल android:theme="@android:style/Theme.Holo.Light.NoActionBar" लाइन

android:theme="@style/Theme.AppCompat.NoActionBar" और यह काम किया, लेकिन इंटरफ़ेस अंधेरा था।

तो मैंने android:theme="@style/Theme.AppCompat.Light.NoActionBar" की कोशिश की android:theme="@style/Theme.AppCompat.Light.NoActionBar" और अंत में मुझे जो चाहिए था android:theme="@style/Theme.AppCompat.Light.NoActionBar" मिल गया

उसके बाद जब मैंने डेवलपर साइट पर 'AppCompat' के बारे में खोज की तो मुझे यह मिला।

इसलिए मुझे लगता है कि एंड्रॉइड 2.2 का समाधान है

 <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

और मेरी बुरी अंग्रेजी हमेशा की तरह हमेशा के लिए क्षमा करें

मेरे लिए सबसे अच्छा परिणाम ThemeNoTitleBar के साथ एक गतिविधि बनाने और लांचर के रूप में सामग्री के बिना था तब यह गतिविधि सीधे दूसरे को कॉल करती है

बेशक अगर आप चाहते हैं कि आप स्पलैश गतिविधि में सामग्री जोड़ सकते हैं लेकिन मेरे मामले में मैं सिर्फ आवेदन सीधे दिखाना चाहता था।

मैनिफ़ेस्ट:

 <activity android:name="com.package.SplashActivity" android:theme="@android:style/Theme.Black.NoTitleBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

गतिविधि:

 public class SplashActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //start StartActivity Intent intent = new Intent(this, StartActivity.class); startActivity(intent); finish(); } 

}

यदि आप एक Activity उपयोग करते हैं जिसमें स्प्लैश स्क्रीन शामिल है, तो आप ऐसा कर सकते हैं यदि आप SherlockActionBar इस्तेमाल करते हैं

 getSupportActionBar().hide(); 

स्प्लैश स्क्रीन के बाद आप इसे फिर से दिखा सकते हैं …

 getSupportActionBar().show(); 

यह एंड्रॉइड के मूल ActionBar के साथ समान होना चाहिए।

@क्लोरिक्स समाधान काम करता है लेकिन यह कुछ गुगल देशी ऐप्स के साथ एक समस्या भी हो रहा है: गुगल, प्ले स्टोर, बात करते हैं स्काइप जैसे अन्य बड़े ऐप्स भी

संपादित करें : बीलो समाधान ने मुझे एपीआई <4.0 पर कार्यवाही के लिए समस्या दी है, कारण सेट होने वाला विषय प्री आइस क्रीम सैंडविच काम नहीं करता

आपके अनुप्रयोग या गतिविधि टैग्स के भीतर अपने मैनिफ़ेस्ट में निम्नलिखित जोड़ें:

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

और फिर आपकी मुख्य गतिविधि में:

  // Set theme setTheme(R.style.YOUR_THEME); getSupportActionBar().setTitle(R.string.title); // Start regular onCreate() super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 

सबसे अच्छा और सरल

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

2015, AppCompat थीम के साथ समर्थन v7 लाइब्रेरी का उपयोग करके, अपनी गतिविधि के लिए इस थीम को सेट करें

 <style name="AppTheme.AppStyled" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimaryDark">@color/md_indigo_100</item> <item name="colorPrimary">@color/md_indigo_500</item> <item name="colorAccent">@color/md_red_500</item> <item name="android:textColorPrimary">@color/md_white_1000</item> <item name="android:textColor">@color/md_purple_500</item> <item name="android:textStyle">bold</item> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> </style> 

getActionBar() लिए आपको इस लाइन को manifest में इस्तेमाल करना चाहिए और getActionBar() उपयोग न करें

 <item name="android:windowActionBar">false</item> 

और एक बार जब स्पलैश Activity मुख्य Activity में समाप्त हो जाती है नीचे या कुछ भी नहीं उपयोग करें

 <item name="android:windowActionBar">true</item> 

यह कोशिश करो, यह मेरे लिए काम करता है:

नीचे गतिविधि के शीर्षक बार से छुटकारा दिलाता है

  requestWindowFeature(Window.FEATURE_NO_TITLE); 

गतिविधि को पूर्ण-स्क्रीन पर जाने के लिए नीचे सूचना पट्टी को समाप्त कर दिया गया है

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

(नीचे पूर्ण उदाहरण) ध्यान दें: इससे पहले कि हम हमारी गतिविधि का सामग्री दृश्य सेट करें, इससे पहले कि ये विधियां बुलाई गईं

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Sets Application to full screen by removing action bar requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); // without this check, we would create a new fragment at each orientation change! if (null == savedInstanceState) createFragment(); } 

यह आसान हो सकता है
इसे अपने मैनिफेस्ट में जोड़ें

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

चियर्स

सभी उपलब्ध विकल्पों को पढ़ने के बाद मुझे सबसे अच्छा तरीका एक्शनबार के बिना मुख्य थीम सेट किया गया है और फिर सभी गतिविधि के अभिभावक में कोड में MyTheme सेट।

मैनिफ़ेस्ट:

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

BaseActivity:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(R.style.GreenHoloTheme); } 

इस तरह से मुझे एक्शनबार से बचने में मदद मिलती है जब आवेदन शुरू होता है!

पहले से पोस्ट किए गए समाधान पहले से आ चुके थे, कि पहले। दिखाएं () कॉल ने मेरे लिए एक्शनबियर को सजीव नहीं किया मुझे एक और अच्छा समाधान मिला, जो तय किया कि:

एक पारदर्शी ड्रॉएबल बनाएँ – ऐसा कुछ:

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#00000000" /> </shape> 

वास्तविक कार्यपट्टी पृष्ठभूमि को अदृश्य कस्टम दृश्य में सेट करें, जिसे आप कार्यवाही पर सेट करते हैं:

 getSupportActionBar().setCustomView(R.layout.actionbar_custom_layout); getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); 

क्रिएट में कार्यवाही के लिए पारदर्शी पृष्ठभूमि सेट करें:

 getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.background_transparent)); 

Imortant: क्रिएट में तुरंत कार्रवाई पट्टी छुपाएं, लेकिन थोड़ी देर बाद में – जैसे जब लेआउट निर्माण के साथ समाप्त हो जाता है:

 getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { getSupportActionBar().hide(); } }); 

अपनी पहली .show () कॉल से पहले कस्टम व्यू दृश्य दिखाई देता है:

 _actionbarRoot.setVisibility(View.VISIBLE); getSupportActionBar().show(); 

अगर आप रिक्त हैं क्योंकि आप समर्थन लाइब्रेरी का उपयोग कर रहे हैं, getActionBar() बजाय आपको getSupportActionBar() कॉल करने की आवश्यकता है।

एक अलग गतिविधि में अपनी छप स्क्रीन रखो और इसे प्रदर्शित करने के लिए अपने मुख्य गतिविधि के onCreate विधि से onCreate उपयोग करें। यह कार्य करता है क्योंकि, डॉक्स के अनुसार:

एक विशेष मामले के रूप में, यदि आप startActivityForResult () को अपनी गतिविधि के प्रारंभिक onCreate (बंडल सहेजे गए इन्स्टैंसस्टेट) / परसंबंधा () के दौरान requestcode> = 0 के साथ कॉल करते हैं, तो आपकी विंडो को तब तक प्रदर्शित नहीं किया जाएगा जब तक परिणाम चालू गतिविधि से वापस नहीं किया जाता है । यह किसी दूसरे गतिविधि में रीडायरेक्ट करते समय दृश्यमान दिखने से बचने के लिए है।

आपको शायद यह केवल तभी करना चाहिए जब onCreate का तर्क null (आपकी गतिविधि का एक नया लॉन्च, जैसा कि कॉन्फ़िगरेशन बदलाव के कारण पुनरारंभ के विरोध का संकेत)

मैं अभी भी अशक्त सूचक के साथ त्रुटि था और अंत में जब मैं पहली getWindow () कहा जाता है। RequestFeature () और तब super.onCreate ()

 public void onCreate(Bundle savedInstanceState) { getWindow().requestFeature(Window.FEATURE_ACTION_BAR); super.onCreate(savedInstanceState); getActionBar().show(); 

बस इसे अपने styles.xml में जोड़ें

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

दरअसल, आप आसानी से NoActionBar साथ स्पलैश Activity सेट कर सकते हैं और एक्शन बार के साथ अपनी मुख्य activity सेट कर सकते हैं।

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

लिंक को कभी भी बदल दिया जाए, यह प्रशिक्षण के अंतर्गत आधिकारिक एंड्रॉइड दस्तावेज़ीकरण के अंतर्गत पाया जा सकता है -> आरंभउपयोगकर्ता इंटरफ़ेस के लिए सर्वोत्तम प्रथा -> सिस्टम ui प्रबंधन

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

यहां छवि विवरण दर्ज करें

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

getSupportActionBar().hide(); यदि यह काम नहीं करता है, तो यह एक प्रयास करें:

 getActionBar().hide(); 

यदि ऊपर काम नहीं करता तो इस तरह से प्रयास करें:

आपकी निर्देशिका = res / values ​​/ style.xml में, शैली खोलें style.xml -> parent लिए विशेषता parent परिवर्तन है parent="Theme.AppCompat.Light.DarkActionBar"

अगर यह सब भी काम नहीं करता है मैं अब और नहीं जानता। लेकिन मेरे लिए यह काम करता है