התאמה אישית של חלונית כפולה

אנדרואיד 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 תצוגת חסימה מוגבלת ל-UX שתוצג במופעים של 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 .

כדי להתעלם מנתוני האפליקציה המזריקים ולהשתמש תמיד ברקע ברירת המחדל, הגדר את config_top_level_injection_background_always_use_default ל- true .