पैटर्न और घटक

एंड्रॉइड 8.0 में, सेटिंग्स मेनू में कई घटक और विजेट होते हैं जो सामान्य उपयोग को कवर करते हैं। डिवाइस निर्माताओं और डेवलपर्स को सेटिंग्स ऐप का विस्तार करते समय सामान्य घटकों का उपयोग करने के लिए प्रोत्साहित किया जाता है ताकि नए उपयोगकर्ता इंटरफ़ेस मौजूदा सेटिंग्स यूआई के अनुरूप रहें।

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

  • समर्थन लाइब्रेरी वरीयता ढांचे में विभक्त व्यवहार परिवर्तन। अब श्रेणियों के बीच विभाजक खींचा गया है।
  • एक्शनबार थीम परिवर्तन. एक्शनबार अब उच्चारण रंग टेक्स्ट के साथ हल्के रंग थीम का उपयोग करता है।
  • नया प्राथमिकता लेआउट. आइकन के लिए स्थान तब भी बना रहता है जब किसी प्राथमिकता में कोई आइकन न हो।

नए विजेट:

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

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

  • विभाजक व्यवहार
    • नए डिवाइडर व्यवहार का उपयोग करने के लिए सेटिंग्स में सभी पेज संशोधित किए गए हैं।
    • डिवाइडर व्यवहार को थीमओवरले के रूप में परिभाषित किया गया है:
      packages/apps/Settings/res/values/styles_preference.xml
  • एक्शनबार थीम परिवर्तन
    • नई 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 के साथ किया जाना चाहिए। ( अद्यतन सूचना आर्किटेक्चर में डैशबोर्डफ्रैगमेंट के बारे में अधिक विवरण देखें।)

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

कार्यान्वयन

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

अनुकूलित

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