החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
דפוסים ורכיבים
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
ב-Android 8.0, תפריט ההגדרות כולל כמה רכיבים וווידג'טים שמיועדים לשימושים נפוצים. אנחנו ממליצים ליצרני מכשירים ולמפתחים להשתמש ברכיבים הנפוצים כשהם מרחיבים את אפליקציית ההגדרות, כדי שממשקי המשתמש החדשים יהיו עקביים עם ממשק המשתמש הקיים של ההגדרות.
זהו סיכום של השיפורים:
- שינוי בהתנהגות של מחיצות במסגרת ההעדפות של ספריית התמיכה. עכשיו יש קו מפריד בין הקטגוריות.
- שינוי העיצוב של ActionBar. עכשיו נעשה שימוש בעיצוב בהיר של ActionBar עם טקסט בצבע מודגש.
- פריסה חדשה של ההעדפות. המקום לסמלים נשאר גם אם להעדפה אין סמל.
ווידג'טים חדשים:
- ווידג'ט כותרת לפרטי האפליקציה. מוצגים סמל האפליקציה, תווית האפליקציה ומידע נוסף.
- כפתור הרחבה בדפים מסוימים. הדף יכול להתחיל כמצומצם ולהסתיר פריטים פחות חשובים עד שהמשתמש לוחץ על לחצן ההרחבה.
- ממשק המשתמש של בורר האפליקציות שמוגדר כברירת מחדל:
- ממשק המשתמש לבחירת דפדפן ברירת המחדל, אפליקציית ברירת המחדל לטלפון וכו'
- בעבר היה זה חלון דו-שיח, ועכשיו זה ממשק משתמש במסך מלא שמבוסס על לחצני בחירה.
- העדפה של סגנון 'MasterSwitch'. זוהי העדפה עם שני יעדי קליקים. היעד הימני מוביל לקטע או לכוונת טירגוט משניים. היעד הימני הוא מתג החלפת מצב, שמפעיל או משבית את כל הדף.
דוגמאות ומקור
- התנהגות הקו המפריד
- כל הדפים בהגדרות שונו כך שישתמשו בהתנהגות החדשה של המחיצה.
- התנהגות המחיצה מוגדרת כ-ThemeOverlay בקטע:
packages/apps/Settings/res/values/styles_preference.xml
- שינוי העיצוב של ActionBar
- כל הדפים בהגדרות שונו כך שישתמשו בנושא החדש של 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/applications/defaultapps/DefaultAppPickerFragment.java
- יש כמה תת-כיתות של DefaultAppPickerFragment, כל אחת מהן מטמיעה בורר ל-intent שונה.
- העדפת הסגנון של 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
הטמעה
יצרני המכשירים יכולים להתחיל להשתמש בכל הרכיבים החדשים כבר מההתחלה.
אם יצרני ציוד מקורי (OEM) מחליטים להטמיע העדפה חדשה בסגנון MasterSwitch או בורר אפליקציות ברירת מחדל, הם צריכים לפעול לפי הדוגמאות במסמך הזה ולעיין בקובצי העזר (Javadoc) שנכתבו עם כל רכיב כדי לקבל פרטים נוספים.
התאמה אישית של תפריט ההגדרות
- התנהגות הקו המפריד. כדי לשנות את אופן הציור של המחיצה, מעדכנים את הסגנון של המחיצות בהגדרות ומשנים את הערך של הפרמטרים הבאים:
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- צבע העיצוב של ActionBar. בפעילויות צריך להשתמש ב-
Theme.DeviceDefault.Settings
בתור העיצוב, או ליצור עיצוב מותאם אישית עם Theme.DeviceDefault.Settings
בתור הורה.
- ווידג'ט של כותרת האפליקציה. משתמשים ב-setters ב-AppHeaderController כדי להתאים אישית כל שדה, ומפעילים את
build()
אחרי שמגדירים את כל השדות.
- לחצן ההרחבה:
- כדי להשבית את הפונקציונליות לגמרי, משנים את ה-constructor של ProgressiveDisclosureMixin ומגדירים את keepExpanded כ-true.
- כדי להתאים אישית את מספר הפריטים שיוצגו בהתחלה, צריך להפעיל את השיטה
ProgressiveDisclosureMixin.setTileLimit()
במהלך השיטה onAttach(Context)
של החלק.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Patterns and components\n\nIn Android 8.0, the Settings menu gains several components and widgets that\ncover common uses. Device manufacturers and developers are encouraged to use the\ncommon components when extending the Settings app so new user interfaces stay\nconsistent with the existing Settings UI.\n\n\nHere is a summary of improvements:\n\n- Divider behavior change in support library Preference framework. Divider is now drawn between categories.\n- ActionBar theme change. The ActionBar now uses light color theme, with accent color text.\n- New preference layout. The space for icons remains even when a preference has no icon.\n\n\nNew widgets:\n\n- A header widget for app details. Displays app icon, app label and other information.\n- An expand button on some pages. Page can start as collapsed and hide less important items until user clicks expand button.\n- Default app picker UI:\n - The UI for choosing default browser, default phone app, etc.\n - Formerly a dialog, now it's a full screen radio button-based UI.\n- A \"MasterSwitch\" style preference. This is a preference with two click targets. Left target leads to a subsetting fragment or intent. Right target is a switch toggle, controlling on/off for the entire page.\n\nExamples and source\n-------------------\n\n- Divider behavior\n - All pages in Settings are modified to use the new divider behavior.\n - The divider behavior is defined as a ThemeOverlay in: \n `packages/apps/Settings/res/values/styles_preference.xml`\n- ActionBar theme change\n - All pages in Settings are modified to use the new ActionBar theme.\n - The theme is defined in Theme.DeviceDefault.Settings\n- New preference layout\n - Many pages in Settings are now using the new preference layout.\n - You can find the code in: \n `packages/apps/Settings/res/values/styles_preference.xml`\n- App header widget\n - Most app information pages in Settings are already implementing the new App header.\n - Examples and code can be found at: \n `packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java`\n- Expand button\n - Examples and code can be found at: \n `packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java`\n\n **Note:** This component must be used together with\n DashboardFragment. (See more details about DashboardFragment in [Updated Information Architecture](/docs/core/settings/info-architecture).)\n- Default app picker\n - You can find the code for base class in: \n `packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java`\n - There are several subclasses of DefaultAppPickerFragment, each implementing a picker for different intent.\n- *MasterSwitch* style preference\n - Code is at: `https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java`\n - An example use case is Wi-Fi primary switch. You can find an example at: `packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java`\n\nImplementation\n--------------\n\n\nDevice manufacturers can start using all of the new components out of the box.\nIf OEMs decide to implement a new \"MasterSwitch\" style preference or default app\npicker, they should follow the examples in this document and the reference files\n(Javadoc) written with each component for more details.\n\nCustomize the settings menu\n---------------------------\n\n- Divider behavior. To change how divider is drawn, update the style for Settings dividers and change the value for the following:\n - `allowDividerAbove`\n - `allowDividerBelow`\n - `allowDividerAfterLastItem`\n- ActionBar theme color. Activities should use `Theme.DeviceDefault.Settings` as their theme, or create a custom theme using `Theme.DeviceDefault.Settings` as parent.\n- App header widget. Use setters in AppHeaderController to customize each field and call `build()` once all fields are set.\n- Expand button:\n - To fully disable the functionality, override the constructor for ProgressiveDisclosureMixin and set keepExpanded to true.\n - To customize how many items to show initially, call the `ProgressiveDisclosureMixin.setTileLimit()` method during fragment's `onAttach(Context)` method."]]