Android 12 में दो पैनल वाला डिज़ाइन है. इसमें बाईं ओर स्टैटिक L0 मेन्यू और दाईं ओर कॉन्टेंट पैनल है. इस सुविधा में, पसंद के मुताबिक बनाने के कई नए विकल्प दिए गए हैं. इस पेज में उन सुविधाओं की जानकारी दी गई है. साथ ही, यह भी बताया गया है कि अपनी प्राथमिकताओं को कैसे कस्टमाइज़ किया जा सकता है.
सिंगल पैनल मोड पर वापस जाना
अब डिफ़ॉल्ट रूप से, CarSettings ऐप्लिकेशन की विंडो की चौड़ाई 1400 डीपी या उससे ज़्यादा होने पर, ड्यूअल पैनल व्यू दिखाता है. इसके अलावा, किसी दूसरी चौड़ाई पर सिंगल पैनल व्यू दिखाता है. किसी खास डिवाइस के लिए इसे पसंद के मुताबिक बनाने के लिए, ज़रूरी कॉन्फ़िगरेशन वैल्यू को टारगेट करने के लिए, रनटाइम रिसॉर्स ओवरले (आरआरओ) का इस्तेमाल करें:
वैल्यू | ब्यौरा |
---|---|
config_global_force_single_pane |
अगर पूरा ऐप्लिकेशन सिंगल-पैन कॉन्फ़िगरेशन में चलाना है, तो इसे true पर सेट करें. |
config_homepage_fragment_class |
होम पेज के लिए शुरुआती फ़्रैगमेंट की जानकारी देता है. ड्यूअल पैनल में, इसका इस्तेमाल कॉन्टेंट पैनल में मौजूद शुरुआती फ़्रैगमेंट के लिए किया जाता है. सिंगल-पैन में, यह होम पेज का फ़्रैगमेंट होना चाहिए. |
हेडर बटन
अलग-अलग CarSettings गतिविधियों में पसंद के मुताबिक बनाया गया आईए हो सकता है. इसलिए, पसंद के मुताबिक बनाने की सुविधा को आसान बनाने के लिए, हेडर बटन की मैपिंग दी गई है. AndroidManifest.xml
में, ड्यूअल पैनल के साथ काम करने वाली हर गतिविधि के मेटाडेटा में TOP_LEVEL_HEADER_KEY
की जानकारी होती है.
यह वैल्यू, res/values/header_keys.xml
में बताई गई कुंजी पर ले जाती है. इसे
टॉप-लेवल मेन्यू आइटम की प्राथमिकता कुंजी से मैप किया जाता है, जिसके तहत शुरुआती फ़्रैगमेंट आता है.
इसलिए, अगर किसी गतिविधि के शुरुआती फ़्रैगमेंट में बदलाव किया जाता है या आईए को इस तरह से फिर से व्यवस्थित किया जाता है कि कोई खास फ़्रैगमेंट किसी दूसरी टॉप-लेवल प्राथमिकता के तहत आता है, तो सही वैल्यू बताने के लिए header_keys.xml
फ़ाइल में मौजूद काम की मैपिंग को अपडेट किया जा सकता है.
गतिविधि के लेआउट को पसंद के मुताबिक बनाएं
BaseCarSettingsActivity
का लेआउट, res/layout/car_setting_activity
और इन सेक्शन में मौजूद है:
वैल्यू | ब्यौरा |
---|---|
top_level_menu |
ड्यूअल पैनल कॉन्फ़िगरेशन में दिखाया गया टॉप-लेवल मेन्यू फ़्रैगमेंट. इस सेक्शन की चौड़ाई top_level_menu_width से बताई गई है. इस व्यू के चारों ओर, टूलबार वाला चेसिस बेस लेआउट होता है. |
top_level_divider |
वर्टिकल लाइन, जो दो पैनल को बांटती है और जिसकी चौड़ाई को
top_level_divider_width की मदद से पसंद के मुताबिक बनाया जा सकता है. |
fragment_container_wrapper |
कॉन्टेंट पैनल के लिए रैपर लेआउट (या एक पैनल कॉन्फ़िगरेशन में मुख्य पैनल). इस व्यू के चारों ओर, टूलबार वाला चेसिस बेसलेआउट मौजूद है. |
settings_focus_parking_view |
ज़रूरत पड़ने पर रोटरी फ़ोकस को बनाए रखने के लिए, FocusParkingView को पसंद के मुताबिक लागू करना. |
fragment_container |
मुख्य कॉन्टेंट कंटेनर. कॉन्टेंट फ़्रैगमेंट, इसका इस्तेमाल टारगेट लेआउट के तौर पर करते हैं. |
restricted_message |
BaseFragment के इंस्टेंस पर दिखाया जाने वाला, यूज़र एक्सपीरियंस पर असर डालने वाला ब्लॉकिंग व्यू. |
पहली इमेज. ड्यूअल पैनल लेआउट
टॉप-लेवल की प्राथमिकताएं
टॉप-लेवल की सेटिंग, कस्टम CarUiPreferences होती हैं. इनमें लेआउट में थोड़ा बदलाव किया जाता है, ताकि सेटिंग की ऊंचाई और बैकग्राउंड का आकार बदला जा सके. इन प्राथमिकताओं को अपनी पसंद के मुताबिक बनाने के कई तरीके हैं:
वैल्यू | ब्यौरा |
---|---|
res/layout/top_level_preference.xml |
प्राथमिकता के पूरे लेआउट को ओवरले करें. |
top_level_preference_min_height |
सबसे ऊपर के लेवल की प्राथमिकता की कम से कम ऊंचाई. कॉन्टेंट (उदाहरण के लिए, कोई सबटाइटल मौजूद है) के आधार पर, प्राथमिकताएं इस वैल्यू से ज़्यादा हो सकती हैं. |
top_level_preference_corner_radius |
कोने की गोलाई का रेडियस. |
top_level_preference_background |
टॉप-लेवल की प्राथमिकताओं का बैकग्राउंड, जब वे हाइलाइट नहीं की गई हों. |
top_level_preference_highlight |
हाइलाइट किए जाने पर, टॉप-लेवल की प्राथमिकताओं का बैकग्राउंड. |
टॉप-लेवल आइकॉन
दूसरी इमेज में दिखाया गया है कि अब टॉप-लेवल आइकॉन में, रंगीन बैकग्राउंड आकार के अंदर वेक्टर आइकॉन कैसे दिखता है. फ़िलहाल, इस आकार को अंडाकार या आयताकार आकार के लिए कॉन्फ़िगर किया गया है. डिफ़ॉल्ट रूप से, आकार को ओवल पर सेट किया जाता है.
डिफ़ॉल्ट वैल्यू बदलने के लिए, config_top_level_icon_shape
में वैल्यू में बदलाव करें
(जहां 0 का मतलब रेक्टैंगल और 1 का मतलब ओवल है). आइकॉन बनाने के लिए, बैकग्राउंड के आकार में top_level_foreground_icon_inset
का इस्तेमाल करके, फ़ोरग्राउंड आइकॉन को इनसेट किया जाता है. हर टॉप-लेवल आइकॉन का फ़ोरग्राउंड रंग res/values/colors.xml
में और बैकग्राउंड रंग res/color
फ़ोल्डर में तय किया गया है.
पसंद के मुताबिक रंग-रूप बनाने के लिए, रंग की सभी वैल्यू को बदला जा सकता है.
दूसरी इमेज. टॉप-लेवल की प्राथमिकता के कॉम्पोनेंट
config_top_level_injection_categories
के ज़रिए तय की गई कैटगरी में आने वाली, इंजेक्ट की गई प्राथमिकताओं के आइकॉन को भी टॉप लेवल के आइकॉन माना जाता है.
दिए गए आइकॉन उसी वैल्यू से इनसेट में होते हैं और उनका आकार वैसा ही होता है जैसा बाकी सभी टॉप-लेवल आइकॉन के लिए तय किया गया है (ऊपर देखें). हालांकि, बैकग्राउंड का पता लगाने के लिए,
इन एट्रिब्यूट को इस क्रम में देखा जाता है:
com.android.settings.bg.argb
इंजेक्शन करने वाले ऐप्लिकेशन का मेटाडेटा.com.android.settings.bg.hint
इंजेक्शन करने वाले ऐप्लिकेशन का मेटाडेटा.top_level_injected_default_background
res/values/colors.xml
में बताया गया है.
इंजेक्शन वाले ऐप्लिकेशन डेटा को अनदेखा करने और हमेशा डिफ़ॉल्ट बैकग्राउंड का इस्तेमाल करने के लिए, config_top_level_injection_background_always_use_default
को true
पर सेट करें.