पसंद के मुताबिक बनाए गए कंट्रोल

कस्टम कंट्रोल का इस्तेमाल करके, नेविगेशन व्यू में सबसे ऊपर अपने यूज़र इंटरफ़ेस (यूआई) एलिमेंट जोड़े जा सकते हैं. बिल्ट-इन लेआउट में बदलाव होने पर, नेविगेशन SDK टूल आपके कस्टम कंट्रोल की जगह अपने-आप बदल देता है.

हर पोज़िशन के लिए, अपने हिसाब से एक कंट्रोल सेट किया जा सकता है. कस्टम कंट्रोल, एक यूज़र इंटरफ़ेस (यूआई) एलिमेंट हो सकता है. अगर डिज़ाइन के लिए ज़्यादा एलिमेंट की ज़रूरत है, तो एक से ज़्यादा यूज़र इंटरफ़ेस (यूआई) एलिमेंट के साथ ViewGroup का इस्तेमाल किया जा सकता है.

setCustomControl का तरीका, CustomControlPosition enum में बताई गई पोज़िशन देता है:

  • SECONDARY_HEADER (यह सिर्फ़ पोर्ट्रेट मोड में दिखता है)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW

नीचे दी गई इमेज में यूज़र इंटरफ़ेस (यूआई) कंट्रोल के प्लेसमेंट में, हर पोज़िशन के उदाहरण देखे जा सकते हैं. इसमें ड्राइवर की जगह की जानकारी के बारे में बताया गया है.

कस्टम कंट्रोल पोज़िशन

मुख्य हेडर के नीचे कस्टम कंट्रोल जोड़ें

लेआउट में डिफ़ॉल्ट रूप से, प्राइमरी हेडर के नीचे फिर ऐरो या लेन गाइड दिखता है. आपका ऐप्लिकेशन, डिफ़ॉल्ट लेआउट को हेडर की दूसरी पोज़िशन में मौजूद कस्टम कंट्रोल से बदल सकता है. यह कंट्रोल, नेविगेशन व्यू में सबसे ऊपर मौजूद डिफ़ॉल्ट कॉन्टेंट को बदल देता है. अगर आपके व्यू में बैकग्राउंड है, तो बैकग्राउंड पहले जैसा ही रहेगा. जब आपका ऐप्लिकेशन कस्टम कॉन्टेंट हटा देता है, तो डिफ़ॉल्ट कॉन्टेंट उसकी जगह दिखता है.

यह जगह मुख्य मैप हेडर के नीचे होती है. इसमें ऊपरी किनारे, मुख्य हेडर के निचले किनारे को अलाइन करता है. डिफ़ॉल्ट सेकंडरी हेडर छिपा हुआ है. यह क्रम सिर्फ़ portrait mode में काम करता है. landscape mode में, सेकंडरी हेडर उपलब्ध नहीं होता और लेआउट में भी कोई बदलाव नहीं होता.

  1. कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट या ViewGroup के साथ Android व्यू बनाएं.
  2. व्यू का इंस्टेंस पाने के लिए, एक्सएमएल को इनफ़्लेट करें या कस्टम व्यू को इंस्टैंशिएट करें, ताकि इसे सेकंडरी हेडर के तौर पर जोड़ा जा सके.
  3. NavigationView.setCustomControl या NavigationFragment.setCustomControl का इस्तेमाल CustomControlPosition के साथ, स्टिकर_हेडर के तौर पर करें.

    नीचे दिए गए उदाहरण में फ़्रैगमेंट बनाया गया है और हेडर की दूसरी पोज़िशन में कस्टम कंट्रोल जोड़ा गया है.

     mNavFragment.setCustomControl(getLayoutInflater().
       inflate(R.layout.your_custom_control, null),
          CustomControlPosition.SECONDARY_HEADER);
    

सेकंडरी हेडर हटाना

सेकंडरी हेडर को हटाकर डिफ़ॉल्ट कॉन्टेंट पर वापस जाने के लिए, setCustomControl तरीके का इस्तेमाल करें.

  • व्यू हटाने के लिए, व्यू को शून्य पर सेट करें.

    mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
    

नेविगेशन व्यू में सबसे ऊपर कोई कस्टम कंट्रोल जोड़ें

आपका ऐप्लिकेशन, व्यू के निचले किनारे के साथ अलाइन किया हुआ कस्टम कंट्रोल तय कर सकता है. जब आपका ऐप्लिकेशन कस्टम कंट्रोल जोड़ता है, तो री-सेंटर बटन और Google लोगो, कस्टम कंट्रोल को शामिल करने के लिए ऊपर की ओर बढ़ते हैं.

  1. जिस यूज़र इंटरफ़ेस (यूआई) एलिमेंट या व्यू ग्रुप को जोड़ना है उसके साथ Android व्यू बनाएं.
  2. नेविगेशन व्यू या फ़्रैगमेंट बनाएं.
  3. नेविगेशन व्यू या फ़्रैगमेंट पर setCustomControl तरीके को कॉल करें और इस्तेमाल करने के लिए कंट्रोल और जगह की जानकारी दें.

नीचे दिए गए उदाहरण में, NavigationFragment में जोड़े गए कस्टम View के बारे में बताया गया है:

  private NavigationFragment mNavFragment;
    mNavFragment = (NavigationFragment)
      getFragmentManager().findFragmentById(R.id.navigation_fragment);

    // Create the custom control view.
    MyCustomView myCustomView = new MyCustomView();

    // Add the custom control to the bottom end corner of the layout.
    mNavFragment.setCustomControl(myCustomView, CustomControlPosition.
       BOTTOM_END_BELOW);

कस्टम कंट्रोल हटाना

अगर आपको कस्टम कंट्रोल हटाना है, तो setCustomControl तरीके का इस्तेमाल करें. साथ ही, यह भी बताएं कि आपको जिस कंट्रोल को हटाना है उसकी जगह तय करें.

  • उस पोज़िशन के लिए व्यू को null पर सेट करें.

    mNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);