/ / Google Play - Android, Android- टुकड़े की तरह Android के टुकड़ों में उचित स्तर के स्तर नेविगेट

Google Play - android, android-fragments जैसे एंड्रॉइड टुकड़ों में उचित शीर्ष स्तर नेविगेशन

मेरे पास नेविगेशन ड्रावर के साथ एक गतिविधि है और आवेदन शुरू होने पर गतिविधि में एक डिफ़ॉल्ट टुकड़ा सेट है।

मेरे नेविगेशन ड्रावर में 4 शीर्ष स्तर का नेविगेशन है

  1. टुकड़ा करना १
  2. टुकड़ा करना २
  3. टुकड़े करना ३
  4. टुकड़े करना ४

और गतिविधि के अंदर अंशों को स्विच करनाप्रत्येक नेविगेशन पर क्लिक करें। मैं खंड नेविगेशन को इस तरह लागू करना चाहता हूं कि प्रत्येक शीर्ष स्तर के नेविगेशन टुकड़े से, यदि उपयोगकर्ता बैक बटन पर क्लिक करता है तो उसे पहले मुख्य या डिफ़ॉल्ट टुकड़े पर आना चाहिए और वहां से ऐप को Google Play की तरह ही बाहर निकलना चाहिए। मैं इसे मास्टर टुकड़ा कहता हूं।

उदाहरण के लिए:

डिफ़ॉल्ट (मास्टर) टुकड़ा> टुकड़ा १

टुकड़ा> टुकड़ा 2

टुकड़ा 2 - वापस दबाया> बहरापन टुकड़ा और ऐसा ही।

मैंने अब तक क्या प्रयास किया है:

मैंने बैकस्टैक में टुकड़ा जोड़ने की कोशिश की है, लेकिन यह मुझे ढेर में सभी टुकड़े लेने में मदद नहीं करता है।

getSupportFragmentManager().beginTransaction()
.add(R.id.container, selectedFragment)
.addToBackStack("naviagtion_stack")
.commit();

मेरे प्रत्येक शीर्ष अंश में भी ढेर के बाल टुकड़े होते हैं इसलिए स्टैक काउंट ने भी मेरी मदद नहीं की।

मैं "अपने डिफ़ॉल्ट टुकड़े को निकालना और जोड़ना नहीं चाहता क्योंकि क्योंकि यह नेटवर्क से कुछ डेटा प्राप्त करता है इसलिए मनोरंजन फिर से नेटवर्क कॉल करेगा जिसे मैं नहीं चाहता"

मैं वही चाहता हूं जो Google Play करता है। मैं सिर्फ तर्क जानना चाहता हूं।

उत्तर:

उत्तर № 1 के लिए 1

अपने मास्टर टुकड़े को बैकस्टैक में जोड़ें और टैग को याद रखें: fragmentManager.beginTransaction() .add(R.id.main_layout, masterFragment) .addToBackStack(INITIAL_STATE) .commit();

इसी अंश को जोड़ने से पहले नेविगेशन तत्वों पर क्लिक करना चाहिए: fragmentManager.popBackStack(INITIAL_STATE, 0); यह कॉल बैकस्टैक से सब कुछ हटा देता है लेकिन आपका मास्टर टुकड़ा।

सभी टुकड़ा लेनदेन (नेविगेशन टुकड़े सहित) आम तौर पर एक ही काम करना चाहिए, उदाहरण के लिए: fragmentManager.beginTransaction() .add(R.id.main_layout, fragment) .addToBackStack(null) .commit();