बेस लेआउट सिंहावलोकन
कार-यूआई-लिब टूलबार को car_ui_base_layout_toolbar.xml
लेआउट फ़ाइल के माध्यम से अनुकूलित किया गया है। इसे *बेस लेआउट* टूलबार कहा जाता है क्योंकि इस लेआउट फ़ाइल में आईडी car_ui_base_layout_content_container
के साथ एक FrameLayout
होता है, जिसमें लेआउट फुलाए जाने के तुरंत बाद ऐप की सभी सामग्री शामिल होगी। यह संरचना OEM को टूलबार को स्क्रीन के शीर्ष के अलावा अन्य स्थानों पर रखने की अनुमति देती है।
संभावित लेआउट | ||
---|---|---|
car_ui_base_layout_content_container
पर लेआउट पैरामीटर को बदलकर, टूलबार के लिए जगह बनाने के लिए ऐप को एक छोटे क्षेत्र में संपीड़ित किया जा सकता है। हालाँकि, कुछ अनुकूलन के लिए टूलबार को पारदर्शी और ऐप के शीर्ष पर मढ़ा जाना आवश्यक हो सकता है। इस मामले में, दृश्यों को car_ui_top/bottom/left/right_inset
के साथ टैग किया जा सकता है। यदि कार-यूआई-लिब ऐसे टैग के साथ एक दृश्य का पता लगाता है, तो यह ऐप को उस दृश्य की स्थिति और आयाम बताता है, ताकि वह अपनी सामग्री को उस मात्रा में इंडेंट कर सके, लेकिन फिर भी टूलबार के नीचे की जगह में एक उचित पृष्ठभूमि रखें . उदाहरण के लिए, अधिकांश ऐप्स के CarUiRecyclerView में पहला आइटम निर्दिष्ट इनसेट के नीचे शुरू होगा, लेकिन उपयोगकर्ता द्वारा नीचे स्क्रॉल करने पर भी टूलबार के पीछे दिखाई देगा।
रोटरी समर्थन
रोटरी नियंत्रकों का समर्थन करने के लिए, बेस लेआउट में यथाशीघ्र FocusParkingView
शामिल होना चाहिए। जब उपयोगकर्ता को कोई फ़ोकस दिखाई नहीं देता है तो यह दृश्य फ़ोकस हो जाता है। टूलबार को FocusParkingView
में भी लपेटा जाना चाहिए, जो निर्दिष्ट करता है कि यह रोटरी नियंत्रक के लिए एक अलग नज जोन है। यदि इसे फोकसपार्किंग व्यू में लपेटा नहीं गया है, तो उपयोगकर्ता रोटरी नियंत्रक के साथ टूलबार के साथ इंटरैक्ट नहीं कर सकता है।
टैब
टूलबार टैब को या तो car_ui_toolbar_tab_item.xml
या car_ui_toolbar_tab_item_flexible.xml
लेआउट फ़ाइलों द्वारा अनुकूलित किया जाता है। फ़ाइलों के बीच कोई कार्यात्मक अंतर नहीं है, car_ui_toolbar_tab_flexible_layout
बूलियन संसाधन निर्धारित करता है कि किसका उपयोग किया जाता है। परिणामस्वरूप, car_ui_toolbar_tab_flexible_layout
false
पर सेट रखने और केवल नियमित लेआउट फ़ाइल को अनुकूलित करने की अनुशंसा की जाती है।
टैब का ImageView
जावा कोड में रंग car_ui_toolbar_tab_item_selector
से रंगा जाएगा, इसलिए लेआउट के साथ car_ui_toolbar_tab_item_selector
को अनुकूलित किया जाना चाहिए। ऐप्स अनुरोध कर सकते हैं कि उनके टैब के आइकन भी इस रंग से न रंगे जाएं।
टैब के TextView
का टेक्स्ट स्वरूप या तो जावा कोड में TextAppearance.CarUi.Widget.Toolbar.Tab
या TextAppearance.CarUi.Widget.Toolbar.Tab.Selected
पर सेट है, इसलिए लेआउट फ़ाइल पर सेट किया गया टेक्स्ट स्वरूप लागू नहीं होगा। इन शैलियों को भी अनुकूलित किया जाना चाहिए।
विकल्प सूची की चीज़ें
MenuItems
डिफ़ॉल्ट टूलबार के ऊपरी दाएं कोने में स्थित बटन हैं। वे टेक्स्ट, आइकन, आइकन और टेक्स्ट या स्विच हो सकते हैं। ये विविधताएँ car_ui_toolbar_menu_item
लेआउट फ़ाइल का हिस्सा हैं, क्योंकि यदि ऐप अनुरोध करता है तो MenuItems
प्रत्येक फॉर्म के बीच बदलने में सक्षम होना चाहिए।
MenuItems
प्राथमिक हो सकते हैं, जो एक अलग लेआउट फ़ाइल को फुलाते हैं: car_ui_toolbar_menu_item_primary
। प्राथमिक मेनूआइटम को सामान्य मेनूआइटम से दृष्टिगत रूप से अलग दिखना चाहिए, उदाहरण के लिए बॉर्डर वाले/बॉर्डर रहित बटन के माध्यम से। डिफ़ॉल्ट रूप से, car_ui_toolbar_menu_item_primary
बस car_ui_toolbar_menu_item
पर रीडायरेक्ट करता है, इसलिए वे समान दिखते हैं।
MenuItems
सक्रिय किया जा सकता है, जो एक अन्य दृश्य स्थिति है जो इंगित करती है कि यह MenuItem टॉगल किया गया है। यह स्थिति MenuItem दृश्य पर setActivated(true)
कॉल करके कार्यान्वित की जाती है, जो MenuItem के दृश्य में सभी ड्रॉएबल्स में state_activated
स्थिति जोड़ती है। इस ड्रॉएबल स्थिति का जवाब रनटाइम रिसोर्स ओवरले (आरआरओ) में ड्रॉएबल चयनकर्ता के साथ दिया जा सकता है।
जब वाहन चल रहा हो तो MenuItems
UX प्रतिबंधित किया जा सकता है। यूएक्स प्रतिबंधित सक्रिय की तरह ही एक और ड्रा करने योग्य स्थिति है, लेकिन इस बार राज्य को एंड्रॉइड फ्रेमवर्क के बजाय ऐप में परिभाषित किया गया है। इसका मतलब है कि state_ux_restricted
विशेषता को RRO के साथ भी जोड़ा जाना चाहिए, ताकि RRO में परिभाषित विशेषता ऐप में परिभाषित विशेषता से मेल खाए।
खोज
जिन ऐप्स को खोज बार की आवश्यकता नहीं है, उनके लिए लेआउट मुद्रास्फीति प्रदर्शन को बेहतर बनाने के लिए खोज बार एक अलगcar_ui_toolbar_search_view
लेआउट फ़ाइल में समाहित है। car_ui_toolbar_search_view_container
आईडी वाले FrameLayout
में फुलाए जाने पर खोज बार शामिल होगा।