मैं इस कोड का उपयोग करके मधुकोश में एक्शन बार छिपा सकता हूं:
getActionBar().hide();
लेकिन जब कीबोर्ड खुलता है, और उपयोगकर्ता कुछ भी कॉपी-पेस्ट करता है, तो एक्शन बार फिर से दिखाई देता है। मैं स्थायी रूप से एक्शन बार को कैसे निष्क्रिय कर सकता हूं?
मैं इस कोड का उपयोग करके मधुकोश में एक्शन बार छिपा सकता हूं:
getActionBar().hide();
लेकिन जब कीबोर्ड खुलता है, और उपयोगकर्ता कुछ भी कॉपी-पेस्ट करता है, तो एक्शन बार फिर से दिखाई देता है। मैं स्थायी रूप से एक्शन बार को कैसे निष्क्रिय कर सकता हूं?
जवाबों:
यदि आप उपयोग कर रहे हैं Theme.Holo.Light
और Theme.Holo.Light.NoActionBar
पूर्व 3.2 उपकरणों पर संस्करण का उपयोग करना चाहते हैं तो आप इसे अपने साथ जोड़ सकते हैं styles.xml
:
<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
और फिर इसे अपनी गतिविधि के विषय के रूप में सेट करें:
<activity android:theme="@style/NoActionBar" ... />
<item name="android:windowFullscreen">true</item>
मैनिफेस्ट में गतिविधि विषय निर्धारित करके,
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
ActionBar
मेरे लिए पूरी तरह से हटा देती है।
मैं अपने ऑनक्रीट फ़ंक्शन के अंदर निम्न कोड का उपयोग करता हूं:
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
स्रोत: https://developer.android.com/guide/topics/ui/actionbar.html
एंड्रॉइड स्टूडियो के साथ डिफ़ॉल्ट रूप से उत्पन्न गतिविधि सुपरक्लास है ActionBarActivity
और फिर, अन्य प्रतिक्रियाओं में कोई भी समाधान काम नहीं करता है। केवल सुपरक्लॉस बदलने के लिए हल करने के लिए:
public class xxxActivity extends ActionBarActivity{
सेवा:
public class xxxActivity extends Activity {
अगर आप बिना एक्शन और टाइटल के फुल स्क्रीन पाना चाहते हैं।
इसे style.xml में जोड़ें
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
और मैनिफ़ेस्ट का उपयोग मैनिफ़ेस्ट। xml पर करें।
android:theme="@style/AppTheme.NoActionBar"
सबसे अच्छा तरीका मैंने पाया जो कस्टम थीम देता है और कोई एक्शन बार नहीं है, मेरी परियोजना में सभी गतिविधियों के लिए सुपरक्लास बनाना है और इसमें ऑनक्रिएट () कोड की निम्नलिखित पंक्ति को कॉल करना है -
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
यह हमेशा मेरे लिए काम करता है। इस दृष्टिकोण में एकमात्र मुद्दा है, आपको ऐप शुरू करते समय सेकंड के एक अंश के लिए एक्शन बार दिखाई देगा (गतिविधि नहीं, पूर्ण ऐप)।
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
getSupportActionBar().hide();
}
आप बस एक्शन बार को छिपाने के लिए मजबूर कर सकते हैं:
ActionBar actionbar = getSupportActionBar();
actionBar.hide();
बस अपने डिफ़ॉल्ट विषय का उपयोग करें।
यदि आप केवल बिना किसी एक्शन बार वाली थीम चाहते हैं, तो आप 'NoActionBar' वेरिएंट का उपयोग कर सकते हैं, उदाहरण के लिए। यदि आपका आधार विषय नीचे है
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
तो आप उपयोग कर सकते हैं
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
लेकिन अगर आप अपने मुख्य विषय के गुणों को बनाए रखना चाहते हैं तो AppTheme को आप नीचे बता सकते हैं
<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
आप अपने बेस थीम के सभी गुणों को इस तरह से बनाए रख सकते हैं और उन्हें स्पष्ट रूप से अपने NoActionBar थीम में जोड़ना नहीं है :)
होलो थीम का उपयोग न करें और एक्शनबार गायब हो जाएगा। यह कोड API 8+ पर मेरे लिए काम कर रहा है, जिसमें समर्थन v7 है:
<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
अपनी गतिविधि के लिए वह विषय सेट करें:
<activity android:theme="@style/NoActionBar" ... />
और आपकी गतिविधि कक्षा में।
यह तब भी काम करता है जब यह ActionBarActivity को बढ़ाता है।
नीचे कार्रवाई पट्टी को स्थायी रूप से छिपाने के चरण दिए गए हैं:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
।अब माता-पिता को किसी अन्य विषय के साथ बदलें जिसमें "NoActionBar" शामिल है।
ए। आप यह भी देख सकते हैं कि कैसे एक विषय गतिविधि_main.xml के डिज़ाइन टैब पर स्विच करके दिखता है और फिर UI की थीम ड्रॉप-डाउन सूची में दिए गए प्रत्येक विषय को आज़मा रहा है।
अपने तो MainActivity फैली AppCompatActivity , सुनिश्चित करें कि आप एक AppCompat विषय का उपयोग कर सकते हैं।
इस कोड को अपनी onCreate
विधि से पहले टाइप करें setContentView
:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
मैं इसके बजाय एक डिज़ाइनर दृष्टिकोण के लिए पोस्ट करना चाहूंगा, इससे डिज़ाइन आपके व्यावसायिक तर्क से अलग रहेगा:
चरण 1. में नई शैली बनाएं (res-> मान-> स्टाइल.xml): मूल रूप से यह विभिन्न माता-पिता के साथ आपकी समग्र योजना की प्रति है - माता-पिता = "Theme.AppCompat.Light.NoActionBar"
<!-- custom application theme. -->
<style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
</style>
चरण 2: अपने AndroidManifest.xml में, इस विषय को अपनी इच्छित गतिविधि में जोड़ें: उदाहरण के लिए, मैं बिना एक्शन-बार के मेरी मुख्य गतिविधि चाहता हूँ, इसलिए इसे नीचे जोड़ें:
<activity android:name=".MainActivity"
android:theme="@style/MarkitTheme">
बहुत सी चीजों को आजमाने के बाद मेरे लिए यह सबसे अच्छा उपाय है।
सुनिश्चित करें कि आप styles.xml
फ़ाइल में डिफ़ॉल्ट थीम का नाम बदलकर एक नया विषय बनाएँ :
<style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">
और अपने विषय को ड्रॉप-डाउन से विषय को बदलने के लिए main_activity.xml
जिसे आपने अपना विषय कहा है।
एक और दिलचस्प समाधान जहां आप एक्शन बार को हटाते समय ViewPager को बनाए रखना चाहते हैं, शो के रूप में एक शैली है
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/NoActionBarStyle</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
<item name="android:backgroundSplit">@null</item>
<item name="android:displayOptions"></item>
</style>
यह उस तरह से है जैसे एंड्रॉइड में अधिकांश डायलर एप्लिकेशन बिना किसी एक्शन बार के व्यूपेजर दिखा रहे हैं।
Ref: https://github.com/CyanogenMod/android_packages_apps_Dialer
styles.xml
फ़ाइल में इसका उपयोग करें :
<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
मैं इस समाधान का उपयोग करता हूं:
अपनी गतिविधि टैग के अंदर प्रकट में:
android:label="@string/empty_string"
और तार में। xml:
<string name="empty_string">""</string>
इस तरह आप ActionBar (या टूलबार) शीर्षक के साथ रखते हैं, लेकिन जब गतिविधि बनाई जाती है तो शीर्षक स्वचालित रूप से खाली होता है।
अजीब तरह से, इनमें से कोई भी मेरे लिए काम नहीं करता था जब नेक्सस 7 पर 4.4.2 (एपीआई 19) चल रहा था। कम से कम गतिविधि ऐप बनाने के बाद, अधिकांश भाग के लिए, कम से कम एंड्रॉइड स्टूडियो के नवीनतम संस्करण (1.2.1.1) के साथ:
एंड्रॉयड: विषय = "@ शैली / AppTheme"
अनुप्रयोग तत्व में है, गतिविधि तत्व नहीं है। अगर मैंने उपरोक्त कोड हटा दिया है या इसे बदलने की कोशिश की है:
एंड्रॉयड: विषय = "@ एंड्रॉयड: शैली / Theme.Holo.Light.NoActionBar"
एप्लिकेशन नहीं चलेगा ... यदि यह आपके साथ हो रहा है, तो बस अपनी शैलियों में जाएं। xml फ़ाइल (res> मान> स्टाइल.xml) और इस ब्लॉक की तरह माता-पिता के अंत में .NoTitleBar जोड़ें:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
AndroidManifest फ़ाइल में कोई परिवर्तन की आवश्यकता नहीं है।
अपने में activity_main.xml
, आप वहाँ से लाइन में समायोजित कर सकते हैं:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
android:theme="@style/Theme.Design.Light.NoActionBar"
.......
">
कभी-कभी जब आप इस तरह की चीजों को देख सकते हैं तो यहां क्लिक करें , आप यहां से "noActionBar" थीम का चयन कर सकते हैं।
आशा है कि मेरी मदद की।