दोहरी फलक अनुकूलन

एंड्रॉइड 12 एक दोहरी फलक डिज़ाइन पेश करता है, जिसमें बाईं ओर एक स्थिर L0 मेनू और दाईं ओर एक सामग्री फलक है। यह सुविधा कई नए अनुकूलन विकल्प पेश करती है। यह पृष्ठ उन विशेषताओं का विवरण देता है और बताता है कि आप अपनी प्राथमिकताओं को कैसे अनुकूलित कर सकते हैं।

एकल फलक पर वापस लौटें

डिफ़ॉल्ट रूप से, कारसेटिंग्स अब दोहरे फलक दृश्य को प्रदर्शित करती है जब ऐप विंडो चौड़ाई में 1400dp से अधिक या उसके बराबर होती है और अन्यथा एकल फलक दृश्य प्रदर्शित करती है। किसी विशिष्ट डिवाइस के लिए इसे अनुकूलित करने के लिए, आवश्यक कॉन्फ़िगरेशन मानों को लक्षित करने के लिए रनटाइम रिसोर्स ओवरले (आरआरओ) का उपयोग करें:

कीमत विवरण
config_global_force_single_pane यदि संपूर्ण ऐप को एकल-फलक कॉन्फ़िगरेशन में चलाना है तो true पर सेट करें।
config_homepage_fragment_class मुखपृष्ठ के लिए आरंभिक खंड निर्दिष्ट करता है. दोहरे फलक में, इसका उपयोग सामग्री फलक में प्रारंभिक टुकड़े के लिए किया जाता है। एकल-फलक में, यह मुखपृष्ठ खंड होना चाहिए।

हेडर कुंजियाँ

क्योंकि विभिन्न कारसेटिंग्स गतिविधियों में एक अनुकूलित आईए हो सकता है, अनुकूलन को सरल बनाने के लिए एक हेडर कुंजी मैपिंग प्रदान की जाती है। AndroidManifest.xml में, दोहरे फलक का समर्थन करने वाली प्रत्येक गतिविधि के मेटाडेटा में TOP_LEVEL_HEADER_KEY निर्दिष्ट है। यह मान res/values/header_keys.xml में निर्दिष्ट कुंजी को इंगित करता है, जिसे शीर्ष-स्तरीय मेनू आइटम की वरीयता कुंजी पर मैप किया जाता है जिसके अंतर्गत प्रारंभिक खंड आता है। इसलिए, यदि किसी गतिविधि का प्रारंभिक खंड बदल दिया गया है या IA को इस तरह पुनर्व्यवस्थित किया गया है कि एक विशेष खंड एक अलग शीर्ष-स्तरीय प्राथमिकता के अंतर्गत आता है, तो 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 UX-प्रतिबंधित अवरोधन दृश्य BaseFragment के उदाहरणों पर दिखाया जाएगा।

चित्र 1. दोहरा फलक लेआउट

शीर्ष-स्तरीय प्राथमिकताएँ

शीर्ष-स्तरीय प्राथमिकताएँ कस्टम 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 हाइलाइट किए जाने पर शीर्ष-स्तरीय प्राथमिकताओं की पृष्ठभूमि।

शीर्ष-स्तरीय चिह्न

चित्र 2 दिखाता है कि कैसे शीर्ष-स्तरीय आइकन अब रंगीन पृष्ठभूमि आकार के अंदर एक वेक्टर आइकन से बने होते हैं। यह आकार वर्तमान में अंडाकार या आयताकार आकार का समर्थन करने के लिए कॉन्फ़िगर किया गया है। डिफ़ॉल्ट रूप से, आकार अंडाकार पर सेट होता है।

डिफ़ॉल्ट को बदलने के लिए, config_top_level_icon_shape में मान को संशोधित करें (जहाँ 0 आयत है और 1 अंडाकार है)। आइकन पृष्ठभूमि आकार से top_level_foreground_icon_inset द्वारा अग्रभूमि आइकन को इनसेट करके बनाए जाते हैं। प्रत्येक शीर्ष-स्तरीय आइकन में res/values/colors.xml में एक अग्रभूमि रंग निर्दिष्ट होता है और res/color फ़ोल्डर में एक पृष्ठभूमि रंग निर्दिष्ट होता है।

एक अनुकूलित स्वरूप बनाने के लिए, आप सभी रंग मानों को ओवरराइड कर सकते हैं।

चित्र 2. शीर्ष-स्तरीय प्राथमिकता घटक

इंजेक्टेड प्राथमिकताओं के लिए आइकन जो config_top_level_injection_categories द्वारा निर्दिष्ट श्रेणियों में आते हैं, उन्हें शीर्ष-स्तरीय आइकन के रूप में भी माना जाता है। प्रदान किए गए आइकन समान मान से इनसेट हैं और उसी आकार में हैं जैसा कि अन्य सभी शीर्ष-स्तरीय आइकन के लिए निर्दिष्ट है (ऊपर देखें)। हालाँकि, पृष्ठभूमि इस क्रम में निम्नलिखित विशेषताओं को देखकर निर्धारित की जाती है:

  1. com.android.settings.bg.argb इंजेक्शन ऐप से मेटा डेटा।
  2. com.android.settings.bg.hint इंजेक्शन ऐप से मेटा डेटा।
  3. top_level_injected_default_background res/values/colors.xml में निर्दिष्ट।

इंजेक्टिंग ऐप डेटा को अनदेखा करने और हमेशा डिफ़ॉल्ट पृष्ठभूमि का उपयोग करने के लिए, config_top_level_injection_background_always_use_default को true पर सेट करें।