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

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

एकल फलक पर वापस जाएं

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

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

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

क्योंकि विभिन्न CarSettings गतिविधियों में एक अनुकूलित IA हो सकता है, अनुकूलन को सरल बनाने के लिए एक हेडर कुंजी मैपिंग प्रदान की जाती है। 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 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 colors.xml में निर्दिष्ट है।

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