2013-02-20 45 views
22

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

+0

जो मैं समझता हूं टैब और एक्शनबार एक हैं, और सिस्टम गठबंधन/विभाजित होगा उन्हें फिट बैठता है। – Whymarrh

+1

@Wymymh नहीं, आप * एक टैब केवल गतिविधि कर सकते हैं (मेरा जवाब देखें) :) सर्वश्रेष्ठ उदाहरण contscts ऐप होगा। – Ahmad

+0

@ अहमद बहुत अच्छा है। नहीं पता था कि यह संभव था। – Whymarrh

उत्तर

35

आप एक खाली Actionbar है, तो टैब स्थान में समा जाएगा कर सकते हैं:

final ActionBar actionBar = getActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    actionBar.setDisplayShowHomeEnabled(false); 
    actionBar.setDisplayShowTitleEnabled(false); 

इसके अलावा नीचे हटाने कोड में जो डिफ़ॉल्ट जब परियोजना जोड़ा जाता है:

getSupportActionBar().setDisplayShowHomeEnabled(false);    
getSupportActionBar().setDisplayShowTitleEnabled(false); 
+0

धन्यवाद, मैं कोशिश करूँगा। – user2082169

+3

तकनीकी रूप से, "टैब स्थान पर कब्जा करेंगे" जब वे टैब के रूप में प्रदर्शित होते हैं। एक्शन बार टैब स्क्रीन आकार और अभिविन्यास के आधार पर एक ड्रॉप-डाउन सूची (जैसा कि सूची नेविगेशन में देखा गया है) में जादुई रूप से बदल जाएगा, जिस बिंदु पर उस ड्रॉप-डाउन सूची को होस्ट करने के लिए एक्शन बार दिखाई देगा। यदि आप वास्तव में हर समय टैब चाहते हैं, और कोई एक्शन बार नहीं है, तो 'ViewPager' और एक उचित संकेतक (उदा।,' पेजरटैबस्ट्रिप ') का उपयोग करें और एक्शन बार को पूरी तरह छुपाएं। – CommonsWare

+0

@ कॉमन्सवेयर हाँ, बिल्कुल सही। – Ahmad

13

नीचे कोड का प्रयास करें बनाई गई है:

public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
} 
+1

ऑनक्रेटऑप्शनमेनू के बारे में दूसरे भाग के लिए आपको बहुत बहुत धन्यवाद। मैं सोच रहा था कि मेरे टैब के ऊपर अभी भी सफेद बार क्यों था। – Marty

+0

@ मार्टी क्या आप स्क्रीन के स्नैपशॉट पेस्ट कर सकते हैं। – Psypher

+0

@Ranjuth: शायद मैं स्पष्ट नहीं था, मैं बस आपको धन्यवाद देना चाहता था क्योंकि आपकी टिप्पणी ने अंततः मेरी समस्या हल की थी। मेरे पास ऐसे हिस्से थे जहां मैंने एक्शनबार बदल दिया था, लेकिन मैंने ऑन क्रेटऑप्शनमेनू को नहीं हटाया जिसके कारण सफेद बार (क्योंकि शीर्षक और आइकन खाली हैं लेकिन स्पष्ट रूप से इसे अभी भी कुछ प्रदर्शित करने की आवश्यकता है। वैसे भी यहां [स्क्रीनशॉट] हैं (http: // tinypic.com/view.php?pic=huhapz&s=8) – Marty

3

यह मैं

के लिए चाल किया
actionBar.setDisplayHomeAsUpEnabled(false); 
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.setDisplayShowHomeEnabled(false); 

मैं भी लाइन

टिप्पणी की
getMenuInflater().inflate(R.menu.main, menu); 
1

अहमद का जवाब सही है, लेकिन यह एपीआई 11. आवश्यकता कम एपीआई इस कोड को समर्थन, का उपयोग के लिए -

setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 

इसे सक्षम करने के उपयोग -

setNavigationMode(ActionBar.NAVIGATION_MODE_TABS) 
+0

क्या यह एनिमेट करना संभव है? – noooooooob

+0

इस उत्तर को जांचने का प्रयास करें - http://stackoverflow.com/questions/21949879/hiding-actionbar-timed-and-animating-views/21949939#21949939 – Confuse