पैटर्न और कॉम्पोनेंट

Android 8.0 में, सेटिंग मेन्यू में कई कॉम्पोनेंट और विजेट जोड़े गए हैं. ये कॉम्पोनेंट और विजेट, सामान्य इस्तेमाल के लिए उपलब्ध हैं. डिवाइस बनाने वाली कंपनियों और डेवलपर को सलाह दी जाती है कि वे Settings ऐप्लिकेशन को बढ़ाते समय, सामान्य कॉम्पोनेंट का इस्तेमाल करें. इससे नए यूज़र इंटरफ़ेस, Settings के मौजूदा यूज़र इंटरफ़ेस के साथ काम कर पाएंगे.

बेहतर बनाने के लिए किए गए बदलावों की खास जानकारी यहां दी गई है:

  • Support Library के Preference फ़्रेमवर्क में, डिवाइडर के व्यवहार में बदलाव. अब कैटगरी के बीच डिवाइडर बनाया गया है.
  • ऐक्शनबार की थीम बदली गई. ActionBar में अब हल्के रंग वाली थीम का इस्तेमाल किया जाता है. साथ ही, इसमें हाइलाइट किए गए रंग में टेक्स्ट दिखता है.
  • प्राथमिकता के लिए नया लेआउट. अगर किसी सेटिंग के लिए आइकॉन नहीं है, तब भी आइकॉन के लिए जगह बनी रहती है.

नए विजेट:

  • ऐप्लिकेशन की जानकारी के लिए हेडर विजेट. ऐप्लिकेशन का आइकॉन, ऐप्लिकेशन का लेबल, और अन्य जानकारी दिखाता है.
  • कुछ पेजों पर 'बड़ा करें' बटन. पेज को छोटा करके दिखाया जा सकता है. साथ ही, जब तक उपयोगकर्ता 'बड़ा करें' बटन पर क्लिक नहीं करता, तब तक कम ज़रूरी आइटम छिपाए जा सकते हैं.
  • ऐप्लिकेशन चुनने के लिए डिफ़ॉल्ट यूज़र इंटरफ़ेस (यूआई):
    • डिफ़ॉल्ट ब्राउज़र, डिफ़ॉल्ट फ़ोन ऐप्लिकेशन वगैरह चुनने के लिए यूज़र इंटरफ़ेस (यूआई)
    • पहले यह एक डायलॉग बॉक्स था. अब यह फ़ुल स्क्रीन वाला यूज़र इंटरफ़ेस (यूआई) है, जिसमें रेडियो बटन का इस्तेमाल किया जाता है.
  • "MasterSwitch" स्टाइल पिकर की प्राथमिकता. यह दो क्लिक टारगेट वाली प्राथमिकता है. लेफ़्ट टारगेट, सबसेट वाले फ़्रैगमेंट या इंटेंट पर ले जाता है. दाईं ओर मौजूद टारगेट, स्विच टॉगल है. यह पूरे पेज के लिए, चालू/बंद करने की सुविधा को कंट्रोल करता है.

उदाहरण और सोर्स

  • डिवाइडर का व्यवहार
    • सेटिंग के सभी पेजों में बदलाव किया गया है, ताकि नए डिवाइडर का इस्तेमाल किया जा सके.
    • डिवाइडर के व्यवहार को ThemeOverlay के तौर पर इन फ़ाइलों में तय किया गया है:
      packages/apps/Settings/res/values/styles_preference.xml
  • ActionBar की थीम में बदलाव
    • सेटिंग में मौजूद सभी पेजों में बदलाव किया गया है, ताकि नई ActionBar थीम का इस्तेमाल किया जा सके.
    • थीम को Theme.DeviceDefault.Settings में तय किया गया है
  • प्राथमिकता के लिए नया लेआउट
    • सेटिंग के कई पेजों पर अब प्राथमिकताओं के लिए नए लेआउट का इस्तेमाल किया जा रहा है.
    • आपको यह कोड यहां मिल सकता है:
      packages/apps/Settings/res/values/styles_preference.xml
  • ऐप्लिकेशन हेडर विजेट
    • सेटिंग में मौजूद ज़्यादातर ऐप्लिकेशन की जानकारी वाले पेजों पर, नया ऐप्लिकेशन हेडर पहले से ही लागू है.
    • उदाहरण और कोड यहां देखे जा सकते हैं:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • बड़ा करें बटन
    • उदाहरण और कोड यहां देखे जा सकते हैं:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      ध्यान दें: इस कॉम्पोनेंट का इस्तेमाल DashboardFragment के साथ किया जाना चाहिए. (अपडेट किया गया इन्फ़ॉर्मेशन आर्किटेक्चर में DashboardFragment के बारे में ज़्यादा जानकारी देखें.)

  • ऐप्लिकेशन चुनने के लिए डिफ़ॉल्ट विकल्प
    • आपको बेस क्लास का कोड यहां मिल सकता है:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • DefaultAppPickerFragment की कई सबक्लास हैं. हर सबक्लास, अलग-अलग इंटेंट के लिए पिकर लागू करती है.
  • MasterSwitch स्टाइल की प्राथमिकता
    • कोड यहां है: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • इस्तेमाल का एक उदाहरण, वाई-फ़ाई को मुख्य नेटवर्क के तौर पर स्विच करना है. आपको इसका उदाहरण यहां मिलेगा: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

लागू करना

डिवाइस बनाने वाली कंपनियां, इन नए कॉम्पोनेंट का इस्तेमाल तुरंत शुरू कर सकती हैं. अगर ओईएम, "MasterSwitch" के लिए नई स्टाइल की प्राथमिकता या डिफ़ॉल्ट ऐप्लिकेशन पिकर लागू करने का फ़ैसला करते हैं, तो उन्हें इस दस्तावेज़ में दिए गए उदाहरणों और हर कॉम्पोनेंट के साथ लिखी गई रेफ़रंस फ़ाइलों (Javadoc) का पालन करना चाहिए. इससे उन्हें ज़्यादा जानकारी मिलेगी.

सेटिंग मेन्यू को पसंद के मुताबिक बनाना

  • डिवाइडर का व्यवहार. डिवाइडर को दिखाने का तरीका बदलने के लिए, सेटिंग डिवाइडर की स्टाइल अपडेट करें. साथ ही, यहां दी गई वैल्यू बदलें:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • ऐक्शनबार की थीम का रंग. गतिविधियों में Theme.DeviceDefault.Settings को थीम के तौर पर इस्तेमाल किया जाना चाहिए या Theme.DeviceDefault.Settings को पैरंट के तौर पर इस्तेमाल करके, पसंद के मुताबिक थीम बनानी चाहिए.
  • ऐप्लिकेशन हेडर विजेट. AppHeaderController में सेटर का इस्तेमाल करके, हर फ़ील्ड को पसंद के मुताबिक बनाएं. इसके बाद, सभी फ़ील्ड सेट होने पर build() को कॉल करें.
  • बड़ा करें बटन:
    • इस सुविधा को पूरी तरह से बंद करने के लिए, ProgressiveDisclosureMixin के कंस्ट्रक्टर को बदलें और keepExpanded को true पर सेट करें.
    • शुरुआत में कितने आइटम दिखाने हैं, इसे पसंद के मुताबिक बनाने के लिए, फ़्रैगमेंट के onAttach(Context) तरीके के दौरान ProgressiveDisclosureMixin.setTileLimit() तरीके को कॉल करें.