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

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

यहां सुधारों का सारांश दिया गया है:

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

नए विजेट:

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

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

  • डिवाइडर बिहेवियर
    • 'सेटिंग' के सभी पेजों में बदलाव किया गया है, ताकि वे नए डिवाइडर बिहेवियर का इस्तेमाल कर सकें.
    • डिवाइडर बिहेवियर को इनमें थीम ओवरले के तौर पर दिखाया जाता है:
      packages/apps/Settings/res/values/styles_preference.xml
  • ActionBar की थीम में बदलाव
    • नई ActionBar थीम का इस्तेमाल करने के लिए, सेटिंग के सभी पेजों में बदलाव किया गया.
    • थीम की जानकारी थीम.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

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

  • डिफ़ॉल्ट ऐप्लिकेशन पिकर
    • बेस क्लास का कोड यहां देखा जा सकता है:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • डिफ़ॉल्ट AppPicerफ़्रैगमेंट की कई सब-क्लास मौजूद हैं. हर सब-क्लास अलग-अलग इंटेंट के लिए पिकर लागू करती है.
  • 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

लागू करने का तरीका

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

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

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