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

סקירה כללית על פריסת הבסיס

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

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

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

תמיכה ב-Rotary

כדי לתמוך בפקדים רוטורים, פרמטר 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. MenuItem ראשי צריך להיראות שונה מבחינה חזותית מ-MenuItem רגיל, למשל באמצעות לחצן עם שוליים או ללא שוליים. כברירת מחדל, car_ui_toolbar_menu_item_primary מפנה אוטומטית אל car_ui_toolbar_menu_item, כך שהן נראות אותו הדבר.

אפשר להפעיל את MenuItems, שהוא מצב חזותי נוסף שמציין שהאפשרות הזו ב-MenuItem מופעלת. כדי להטמיע את המצב הזה, קוראים ל-setActivated(true) בתצוגת MenuItem, שמוסיפה את המצב state_activated לכל ה-drawables בתצוגות של MenuItem. אפשר להגיב למצב הניתן לציור באמצעות בורר drawable בשכבת-העל של המשאבים בסביבת זמן הריצה (RRO).

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

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