דפוסים ורכיבים

ב-Android 8.0, נוספו לתפריט ההגדרות כמה רכיבים ווידג'טים שמתאימים לשימושים נפוצים. יצרני מכשירים ומפתחים מוזמנים להשתמש ברכיבים המשותפים כדי להרחיב את אפליקציית ההגדרות, כך שממשקי משתמש חדשים יהיו עקביים עם ממשק המשתמש הקיים של ההגדרות.

הנה סיכום של השיפורים:

  • שינוי בהתנהגות של קו מפריד בספריית התמיכה Preference framework. קו ההפרדה מוצג עכשיו בין הקטגוריות.
  • שינוי העיצוב של ActionBar. שורת הפעולות משתמשת עכשיו בעיצוב בהיר עם טקסט בצבע הדגשה.
  • פריסת העדפות חדשה. השטח לסמלים נשאר גם אם להעדפה מסוימת אין סמל.

ווידג'טים חדשים:

  • ווידג'ט של כותרת עם פרטי האפליקציה. הצגת סמל האפליקציה, תווית האפליקציה ומידע נוסף.
  • לחצן הרחבה בחלק מהדפים. הדף יכול להתחיל במצב מכווץ ולהסתיר פריטים פחות חשובים עד שהמשתמש לוחץ על לחצן ההרחבה.
  • ממשק המשתמש של בורר האפליקציות שמוגדר כברירת מחדל:
    • ממשק המשתמש לבחירת דפדפן ברירת מחדל, אפליקציית טלפון ברירת מחדל וכו'.
    • בעבר היה מדובר בתיבת דו-שיח, אבל עכשיו זה ממשק משתמש במסך מלא שמבוסס על כפתורי בחירה.
  • העדפה לגבי סגנון של 'מתג ראשי'. זו העדפה עם שני יעדים לקליקים. היעד השמאלי מוביל לקטע או לכוונת משנה. היעד הימני הוא מתג ששולט בהפעלה או בהשבתה של כל הדף.

דוגמאות ומקור

  • התנהגות של קו מפריד
    • כל הדפים בהגדרות ישתנו כך שישתמשו בהתנהגות החדשה של הקו המפריד.
    • ההתנהגות של הקו המפריד מוגדרת כ-ThemeOverlay ב:
      packages/apps/Settings/res/values/styles_preference.xml
  • שינוי העיצוב של ActionBar
    • כל הדפים בהגדרות משתמשים עכשיו בערכת הנושא החדשה של סרגל הפעולות.
    • העיצוב מוגדר ב-Theme.DeviceDefault.Settings
  • פריסה חדשה של ההעדפות
    • הרבה דפים בהגדרות משתמשים עכשיו בפריסת ההעדפות החדשה.
    • הקוד מופיע במיקומים הבאים:
      packages/apps/Settings/res/values/styles_preference.xml
  • ווידג'ט של כותרת האפליקציה
    • ברוב דפי פרטי האפליקציה בהגדרות כבר מוטמעת כותרת האפליקציה החדשה.
    • דוגמאות וקוד אפשר למצוא בכתובת:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • לחצן ההרחבה
    • דוגמאות וקוד אפשר למצוא בכתובת:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      הערה: חובה להשתמש ברכיב הזה יחד עם DashboardFragment. (פרטים נוספים על DashboardFragment זמינים במאמר ארכיטקטורת מידע מעודכנת).

  • בורר אפליקציות שמוגדר כברירת מחדל
    • אפשר למצוא את הקוד של מחלקת הבסיס בכתובת:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • יש כמה מחלקות משנה של DefaultAppPickerFragment, שכל אחת מהן מטמיעה כלי לבחירת אפליקציה למטרה אחרת.
  • העדפת סגנון MasterSwitch
    • הקוד נמצא בכתובת: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • תרחיש שימוש לדוגמה הוא מעבר ראשי ל-Wi-Fi. דוגמה אפשר למצוא בכתובת: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

הטמעה

יצרני מכשירים יכולים להתחיל להשתמש בכל הרכיבים החדשים מיד. אם יצרני ציוד מקורי מחליטים להטמיע העדפה חדשה בסגנון MasterSwitch או כלי לבחירת אפליקציות שמוגדר כברירת מחדל, הם צריכים לפעול לפי הדוגמאות במסמך הזה ובקבצי ההפניה (Javadoc) שנכתבו עם כל רכיב לקבלת פרטים נוספים.

התאמה אישית של תפריט ההגדרות

  • התנהגות הקו המפריד. כדי לשנות את אופן הציור של הקו המפריד, מעדכנים את הסגנון של קווים מפרידים בהגדרות ומשנים את הערך של ההגדרות הבאות:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • צבע העיצוב של ActionBar. הפעילויות צריכות להשתמש ב-Theme.DeviceDefault.Settings כעיצוב שלהן, או ליצור עיצוב מותאם אישית באמצעות Theme.DeviceDefault.Settings כעיצוב אב.
  • ווידג'ט של כותרת האפליקציה. משתמשים ב-setters ב-AppHeaderController כדי להתאים אישית כל שדה ומבצעים קריאה ל-build() אחרי שכל השדות מוגדרים.
  • לחצן ההרחבה:
    • כדי להשבית לגמרי את הפונקציונליות, צריך לשנות את ה-constructor של ProgressiveDisclosureMixin ולהגדיר את keepExpanded ל-true.
    • כדי להתאים אישית את מספר הפריטים שיוצגו בהתחלה, צריך להפעיל את method ProgressiveDisclosureMixin.setTileLimit() במהלך method onAttach(Context) של fragment.