Thursday, 15 March 2012

android - How to hide the "Up button" in the top Fragment and show it in other Fragments? -


एक ब्लूटूथ से संबंधित ऐप में ( minSdkVersion = "18" के साथ) मेरे पास एक एकल < Strong> MainActivity.java , निम्न 3 यूआई के टुकड़ों में से एक प्रदर्शित करना:

  • MainFragment.java (शीर्ष स्क्रीन)
  • ScanningFragment.java (पास के ब्लूटूथ डिवाइसों की सूची)
SettingsFragment.java (सेटिंग्स स्क्रीन, मेनू के माध्यम से प्रवेश किया जाता है)

screenshot

"ऊपर बटन" प्रदर्शित करने के लिए और "वापस बटन" "मेरे पास निम्न कोड है:

  सार्वजनिक वर्ग की मुख्य गतिविधि गतिविधि के विस्तार को बढ़ाती है BleWrapperUiCallbacks {// प्रत्येक रीमेक पर सेट () (रीसेट) प्रत्येक टुकड़ा निजी टुकड़ा mactifragment = null; '@BackPressed पर सार्वजनिक शून्य को ओवरराइड करें (यदि (! GetFragmentManager)। पॉपबैक स्टैक इम्यडिएट ()) super.onBackpressed (); } @ ओवरराइड सार्वजनिक शून्य पर क्रेट (बंडल सहेजे गए इन्स्टैंसस्टेट) {सुपर.नक्रेट (सहेजे गए इन्स्टेंसस्टेट); requestWindowFeature (Window.FEATURE_ACTION_BAR); setContentView (R.layout.activity_root); getActionBar () setDisplayHomeAsUpEnabled (सही)। यदि (सहेजे गए इन्स्टैंसस्टेट == रिक्त) {टुकड़ा टुकड़ा = नया मुख्य फ्रेममेंट (); GetFragmentManager ()। BeginTransaction () .replace (R.id.root, fragment, "main") .commit (); }} @ ओवरराइड पब्लिक बूलियन ऑन ऑप्शन इटैम सिलेक्ट (मेनूइटम आइटम) {स्विच (आईटेट। आईटीएमआईडी ()) {केस एंड्रॉइड। आर.डिडएचओएम: फॉरमैटमेंट मैनेजर ()। पॉपबैक स्टैक इम्यडिएट (); टूटना; मामले R.id.action_settings: टुकड़ा टुकड़ा = नया सेटिंग्सफ्रैगमेंट (); GetFragmentManager ()। BeginTransaction () .addToBackStack (रिक्त) .replace (R.id.root, fragment, "settings") .commit (); टूटना; } वापसी सुपर.ऑनॉप्शन आईटम चयनित (आइटम); }  

यह अच्छी तरह से काम करता है, लेकिन कॉस्मेटिक समस्या है, जब " मेनफ्रैगमेंट.जावा प्रदर्शित किया जा रहा है -" बटन ऊपर "अभी भी प्रदर्शित किया जाता है - जैसा कि आप कर सकते हैं उपरोक्त स्क्रीनशॉट के बाईं तरफ देखें।

मैंने कॉल करने की कोशिश की है

  getActionBar ()। SetHomeButtonEnabled (गलत);  

जब वह टुकड़ा सक्रिय हो रहा है, लेकिन वह केवल "अप बटन" को अक्षम कर देता है - वास्तव में इसे छिपाने के बिना।

आप भाग्य में हैं क्योंकि एपीआई स्तर 18 में यह है:

  getActionBar ()। SetHomeAsUpIndicator (R.drawable.ic_yourindicator);  

सहायता पुस्तकालय के लिए, यह है:

  getSupportActionBar ()। SetHomeAsUpIndicator (R.drawable.ic_yourindicator);  

तो अब आप किस टुकड़े में हैं, आप "अप" बटन के आइकन को बदल सकते हैं।

इसके अलावा, यह प्रयास करें:

  getActionBar ()। SetDisplayHomeAsUpEnabled (गलत);  

सेट करें कि घर को "अप" बोनस के रूप में प्रदर्शित किया जाना चाहिए।


No comments:

Post a Comment