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

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

यहां इन सुधारों की खास जानकारी दी गई है:

  • सहायता लाइब्रेरी के Preference फ़्रेमवर्क में, डिवाइडर के व्यवहार में बदलाव. अब कैटगरी के बीच डिवाइडर दिख रहा है.
  • ActionBar की थीम बदलना. 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/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • इस्तेमाल के उदाहरण के तौर पर, वाई-फ़ाई का प्राइमरी स्विच है. इसका उदाहरण यहां देखें: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

लागू करना

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

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

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