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