התאם אישית את סרגל הכלים עם שכבות-על של משאבי זמן ריצה

סקירת פריסת בסיס

סרגל הכלים car-ui-lib מותאם אישית באמצעות קובץ הפריסה car_ui_base_layout_toolbar.xml . זה נקרא סרגל הכלים *base layout* מכיוון שקובץ פריסה זה מכיל FrameLayout עם id car_ui_base_layout_content_container , שיכיל את כל תוכן האפליקציה זמן קצר לאחר ניפוח הפריסה. מבנה זה מאפשר ל-OEM למקם את סרגל הכלים במיקומים שאינם בחלק העליון של המסך.

פריסות אפשריות
פריסת סרגל הכלים 1פריסת סרגל הכלים 2פריסת סרגל הכלים 3
פריסת סרגל הכלים 4פריסת סרגל הכלים 5פריסת סרגל הכלים 6

על ידי שינוי פרמטרי הפריסה ב- car_ui_base_layout_content_container , ניתן לדחוס את האפליקציה לאזור קטן יותר כדי לפנות מקום לסרגל הכלים. עם זאת, התאמות אישיות מסוימות עשויות לחייב את סרגל הכלים להיות שקוף ומכוסה על גבי האפליקציה. במקרה זה, ניתן לתייג תצוגות עם car_ui_top/bottom/left/right_inset . אם car-ui-lib מזהה תצוגה עם תג כזה, היא מתקשרת לאפליקציה את המיקום והממדים של תצוגה זו, כך שהיא יכולה להכניס את התוכן שלה פנימה בכמות זו, אך עדיין לשמור על רקע סביר במרחב שמתחת לסרגל הכלים . לדוגמה, לרוב האפליקציות יהיה הפריט הראשון ב-CarUiRecyclerView שלהם יתחיל מתחת לתוספות שצוינו, אך עדיין יהיו גלויים מאחורי סרגל הכלים כאשר המשתמש גולל מטה.

תמיכה רוטרית

כדי לתמוך בבקרים סיבוביים, פריסת הבסיס חייבת להכיל FocusParkingView מוקדם ככל האפשר בפריסה. תצוגה זו היא מה שמתמקד כאשר אין מיקוד גלוי למשתמש. סרגל הכלים חייב להיות עטוף גם ב- 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 בקוד Java, כך שיש להתאים אישית את car_ui_toolbar_tab_item_selector לצד הפריסה. אפליקציות יכולות לבקש שהסמלים של הכרטיסייה שלהן לא יהיו צבועים בצבע זה.

TextView של הכרטיסייה מראה הטקסט שלה מוגדר ל- TextAppearance.CarUi.Widget.Toolbar.Tab או TextAppearance.CarUi.Widget.Toolbar.Tab.Selected .נבחר בקוד Java, כך שמראה הטקסט שהוגדר בקובץ הפריסה לא יחול. סגנונות אלה חייבים להיות מותאם אישית גם כן.

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 זה מוחלף. מצב זה מיושם על ידי קריאה ל- setActivated(true) בתצוגת MenuItem, מה שמוסיף את המצב state_activated לכל ה- drawables בתצוגות של MenuItem. ניתן להגיב למצב משיכה זה באמצעות בורר ניתן למשיכה בשכבת המשאבים בזמן ריצה (RRO).

ניתן להגביל MenuItems כאשר הרכב בתנועה. UX מוגבל הוא רק עוד מצב שניתן לצייר כמו מופעל , אבל הפעם המצב מוגדר באפליקציה במקום במסגרת אנדרואיד. המשמעות היא שהתכונה state_ux_restricted חייבת להיות מוגשת גם עם ה-RRO, כך שהתכונה שהוגדרה ב-RRO תתאים לתכונה שהוגדרה באפליקציה.

סרגל החיפוש כלול בקובץ פריסת car_ui_toolbar_search_view נפרד, על מנת לשפר את ביצועי ניפוח הפריסה עבור אפליקציות שאינן זקוקות לסרגל חיפוש. ה- FrameLayout עם id car_ui_toolbar_search_view_container יכיל את סרגל החיפוש כאשר הוא מנופח.