העדפה
העדכון האחרון | גרסה יציבה | מועמד לפרסום | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
26 ביולי 2023 | 1.2.1 | - | - | - |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Preference (העדפה), עליך להוסיף את מאגר Google Maven פרויקט. למאגר Maven של Google אפשר לקבל מידע נוסף.
מוסיפים את יחסי התלות של פריטי המידע הנדרשים בקובץ build.gradle
בשביל
האפליקציה או המודול שלך:
מגניב
dependencies { def preference_version = "1.2.1" // Java language implementation implementation "androidx.preference:preference:$preference_version" // Kotlin implementation "androidx.preference:preference-ktx:$preference_version" }
Kotlin
dependencies { val preference_version = "1.2.1" // Java language implementation implementation("androidx.preference:preference:$preference_version") // Kotlin implementation("androidx.preference:preference-ktx:$preference_version") }
אפשר לקרוא מידע נוסף על יחסי תלות במאמר הוספת יחסי תלות של build.
משוב
המשוב שלך עוזר לנו לשפר את Jetpack. נשמח לשמוע אם גילית בעיות חדשות או אם יש לך רעיונות לשיפור הספרייה הזו. מומלץ לעיין בעיות קיימות בספרייה הזו לפני שיוצרים ספר חדש. אפשר להוסיף את ההצבעה שלך לבעיה קיימת על ידי לחיצה על לחצן הכוכב.
מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.
גרסה 1.2
גרסה 1.2.1
26 ביולי 2023
androidx.preference:preference:1.2.1
משוחרר. גרסה 1.2.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
PreferenceHeaderFragmentCompat
מטפל עכשיו בצורה נכונה בלחצן 'הקודם' של המערכת כשמשתמשים בו בתוךComponentDialog
או כשמשתמשים בספריות כמו@AndroidEntryPoint
של Hilt שעופסת את ה-Context
של ה-Fragment.- ההעדפה תלויה עכשיו בפעילות 1.5.1. (Ie5d22)
- עכשיו
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment
מפיץ אתheader.extras
כארגומנטים מסוגFragment
.
גרסה 1.2.0
26 בינואר, 2022
androidx.preference:preference:1.2.0
ו-androidx.preference:preference-ktx:1.2.0
שוחררו. גרסה 1.2.0 כוללת את ההתחייבויות האלה.
שינויים חשובים מאז 1.1.0
- הוספת את
PreferenceHeaderFragmentCompat
להעדפה של שתי חלוניות שמתאימה את עצמה באופן אוטומטי לפי גודל המכשיר שבו נעשה שימוש, כך שהיא מתאימה לשימוש בטלפונים, במכשירים מתקפלים ובטאבלטים. חלונית הכותרת מוצגת על ידי שינוי של השיטהonCreatePreferenceHeader()
ב-PreferenceHeaderFragmentCompat
. כל<Preference>
בכותרתPreferenceFragmentCompat
שמשתמשת ב-app:fragment
יגרום להצגת המקטע הזה בחלונית הפרטים השנייה. אפשר להתאים אישית את מקטע הפרטים הראשוני שאמור להיות מוצג לפני בחירה ידנית של העדפה מסוימת על ידי שינויonCreateInitialDetailFragment()
. יישום ברירת המחדל מחזיר את ההעדפה הראשונה עם מקטע שמוגדר בה.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
return PreferenceHeader()
}
}
הוסיפו הערות לביטול נעילה לרבים ממשקי API שלא ציינו קודם לכן את
@NonNull
או@Nullable
. מדובר בשינוי שעלול לגרום לכשלים במקור של Kotlin אם יכולת ה-null שבחרת בקוד Kotlin שלך לא תאמה ליכולת ה-null שמוגדרת עכשיו.עכשיו אנחנו ב-
PreferenceFragmentCompat
מחפשים הטמעות של הממשקOnPreferenceStartFragmentCallback
,OnNavigateToScreenListener
ו-OnDisplayPreferenceDialogListener
במקטעי הורה לפני שהם בודקים אם הפעילות או ההקשר של האירוח מטמיעים את הממשקים האלה.
גרסה 1.2.0-rc01
15 בדצמבר 2021
androidx.preference:preference:1.2.0-rc01
ו-androidx.preference:preference-ktx:1.2.0-rc01
מתפרסמים ללא שינויים מאז 1.2.0-beta01
. גרסה 1.2.0-rc01 מכילה את שמירות האלה.
גרסה 1.2.0-beta01
17 בנובמבר 2021
androidx.preference:preference:1.2.0-beta01
ו-androidx.preference:preference-ktx:1.2.0-beta01
יצאו ללא שינויים מהעדפה 1.2.0-alpha02. גרסה 1.2.0-beta01 מכילה את התחייבויות אלה.
גרסה 1.2.0-alpha02
3 בנובמבר 2021
androidx.preference:preference:1.2.0-alpha02
ו-androidx.preference:preference-ktx:1.2.0-alpha02
שוחררו. גרסה 1.2.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- הוסיפו הערות לביטול נעילה לרבים
ממשקי API שלא ציינו קודם לכן את
@NonNull
או@Nullable
. (I04252, Ie2cc0) - הסרת ה-API
openPreference()
מ:PreferenceHeaderFragmentCompat
- השיטה הזו היא שנקראה עבורך, ולא צריך לקרוא לה באופן ידני. (Ia6989)
שינויים בהתנהגות
- קריאות חוזרות (callbacks) של PreferenceFragmentCompat עבור
OnNavigateToScreenListener
, וגםOnDisplayPreferenceDialogListener
עוקבים עכשיו אחר דפוס זהה לזה שלOnPreferenceTreeClickListener
ו לחפש בהיררכיית החלקים של ההורה מאזינים לפני שהם רוצים לבדוק אם המארח ההקשר או הפעילות מטמיעים את הממשקים האלה. (I7ae6c)
גרסה 1.2.0-alpha01
27 באוקטובר 2021
androidx.preference:preference:1.2.0-alpha01
ו-androidx.preference:preference-ktx:1.2.0-alpha01
שוחררו. גרסה 1.2.0-alpha01 מכילה את התחייבויות אלה.
תכונות חדשות
- הוספת את
PreferenceHeaderFragmentCompat
להעדפה של שתי חלוניות (I9a2d8)
שינויים בהתנהגות
עכשיו ניתן להטמיע קריאות חוזרות (callback) של העדפות עבור OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback ו-OnPreferenceStartFragmentCallback בהקשר שאינו של פעילות. הפונקציה getContext() מסומנת כדי לראות אם היא מיישמת את הקריאות החוזרות האלה לפני הבדיקה של getActivity(). אם getContext() מחזירה פעילות (התרחיש הנפוץ), לא שינוי בהתנהגות.
עכשיו, במסגרת הקריאה של
PreferenceFragmentCompat
אלonPreferenceTreeClick
, המערכת מחפשת הטמעות של הממשקOnPreferenceStartFragmentCallback
בקטעי הורה לפני שהיא בודקת את הטמעת הפעילות. (c64eed)
גרסה 1.1
גרסה 1.1.1
15 באפריל 2020
androidx.preference:preference:1.1.1
ו-androidx.preference:preference-ktx:1.1.1
שוחררו. גרסה 1.1.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
PreferenceDialogFragmentCompat
לא יקפיץ יותרIllegalStateException
כשמנפחים אתFragmentContainerView
מ-XML. (b/150051716)
עדכונים בנושא תלות
- עכשיו ההעדפה תלויה במקטע
1.2.4
. (aosp/1277317) - התלות ב-
preference-ktx
תלויה עכשיו ב-androidx.core:core-ktx:1.1.0
וב-androidx.fragment:fragment-ktx:1.2.4
, והיא משקפת את יחסי התלות של ארטיפקטpreference
הראשי ומבטיחה ששדרוג שלpreference-ktx
יעדכן את פריטי המידע העיקריים ופריטי ה--ktx
של יחסי תלות טרנזיים. (aosp/1277319)
גרסה 1.1.0
5 בספטמבר 2019
androidx.preference:preference:1.1.0
ו-androidx.preference:preference-ktx:1.1.0
שוחררו. אפשר למצוא כאן את ההתחייבות שכלולה בגרסה הזו.
אם זו הגרסה הראשונה של 1.1.*
שאליה מעדכנים, הנה רשימה תמציתית של שינויים גדולים יותר מאז הגרסה היציבה האחרונה, 1.0.0
. בנוסף, אפשר להיעזר במדריך ההגדרות, באפליקציה לדוגמה ובשיחת הפסגה של Android למפתחים.
שינויים חשובים מאז 1.0.0
PreferenceFragment
ומחלקות אחרות שמשתמשים ב-framework Fragments הוצאו משימוש. במקום זאת, צריך להשתמש ב-PreferenceFragmentCompat
ובכיתות תואמות אחרות.- עכשיו אפשר להגדיר
SummaryProvider
בהעדפה כדי להגדיר באופן דינמי את הסיכום שלו בכל פעם שההעדפה מתעדכנת או גלויה למשתמש. מידע נוסף זמין במדריך. - נוסף ממשק
EditTextPreference.OnBindEditTextListener
. כך אפשר להתאים אישית אתEditText
שמוצג בתיבת הדו-שיח המתאימה אחרי יצירת תיבת הדו-שיח. זהו החלפה ישירה לשימוש במאפיינים כמוandroid:inputType
ישירות ב-EditTextPreference
, שלא נתמך בספריית AndroidX. מידע נוסף זמין במדריך. - בוצעה הוספה של
Preference.setCopyingEnabled()
אחרי שהיא מוגדרת, לחיצה ארוכה על 'העדפה' תציג תפריט הקשר שמאפשר להעתיק את סיכום ההעדפה. - העיצוב של
SeekBarPreference
עודכן כך שיתאים למפרטי העיצוב. ביומן השינויים המפורט מפורטים שינויים נוספים ב-SeekBarPreference
. - כמות גדולה של תיקוני באגים, עדכוני סגנון, תיקוני תאימות ברמת ה-API ושיפורי QOL כלליים.
גרסה 1.1.0-rc01
2 ביולי 2019
androidx.preference:preference:1.1.0-rc01
ו-androidx.preference:preference-ktx:1.1.0-rc01
שוחררו. אפשר למצוא כאן את ההתחייבות שכלולה בגרסה הזו.
שינויים ב-API
- הוצאה משימוש של
Preference#onInitializeAccessibilityNodeInfo
- פרטי צומת הנגישות של השיטה הזו עבור העדפה ספציפית – אבל זוהי שכבה לא נכונה להתאמה אישית הזו. אם רוצים להתאים את נתוני הנגישות, צריך במקום זאת לבטל את ההגדרה onBindViewHolder ולהוסיף את נתוני הנגישות ישירות לתצוגה.
גרסה 1.1.0-beta01
5 ביוני 2019
androidx.preference:preference:1.1.0-beta01
ו-androidx.preference:preference-ktx:1.1.0-beta01
שוחררו. אפשר למצוא כאן את ההתחייבות שכלולה בגרסה הזו.
שינויים חשובים מאז 1.1.0
אם זו גרסת 1.1.* הראשונה שאליה מעדכנים, הנה רשימה תמציתית של שינויים גדולים יותר מאז הגרסה היציבה האחרונה, 1.1.0. בנוסף, אפשר להיעזר במדריך ההגדרות, באפליקציה לדוגמה ובשיחת הפסגה של Android למפתחים.
- PreferenceFragment ומחלקות אחרות שמשתמשים ב-framework Fragments הוצאו משימוש. במקומו צריך להשתמש ב-PreferenceFragmentCompat ובמחלקות *אחרות.
- עכשיו אפשר להגדיר את SummaryProvider בהעדפה, ולהגדיר את הסיכום שלו באופן דינמי בכל פעם שההעדפה מתעדכנת או שהיא גלויה למשתמש. מידע נוסף זמין במדריך.
- נוסף ממשק
EditTextPreference.OnBindEditTextListener
. כך אפשר להתאים אישית את ה-EditText שמוצג בתיבת הדו-שיח המתאימה לאחר יצירת תיבת הדו-שיח. זהו החלפה ישירה לשימוש במאפיינים כמו android:inputType ישירות ב-EditTextPreference, שלא נתמך בספריית AndroidX. מידע נוסף זמין במדריך. - בוצעה הוספה של
Preference.setCopyingEnabled()
אחרי שהיא מוגדרת, לחיצה ארוכה על 'העדפה' תציג תפריט הקשר שמאפשר להעתיק את סיכום ההעדפה. - הסגנון שלSeekBarPreference עודכן כך שיתאים למפרטי העיצוב. ביומן השינויים המפורט מופיע מידע על שינויים אחרים ב-SeekBarPreference.
- כמות גדולה של תיקוני באגים, עדכוני סגנון, תיקוני תאימות ברמת ה-API ושיפורי QOL כלליים.
שינויים בממשק ה-API מאז 1.1.0-alpha05
- הסרת getOnBindEditTextListener מ-API ציבורי, עליך להשתמש ב-setOnBindEditTextListener רק במהלך אינטראקציה עם ה-API הזה.
אפשר לדווח על באגים כאן אם נתקלת בבעיות, או אם יש לך הצעות לתכונות חדשות.
גרסה 1.1.0-alpha05
7 במאי 2019
androidx.preference:preference:1.1.0-alpha05
ו-androidx.preference:preference-ktx:1.1.0-alpha05
שוחררו. אפשר למצוא כאן את ההתחייבות שכלולה בגרסה הזו.
תכונות חדשות
- עודכן הסגנון של 'העדפות' שלא ניתן לבחור – הצבע של הכותרת והסיכום זהה עכשיו כדי להבהיר שאי אפשר לקיים איתם אינטראקציה והם משמשים רק להצגת מידע.
- הערה: כדאי להוסיף את המאפיין
enableCopying="true"
להעדפות שלא ניתן לבחור, כדי שניתן יהיה ללחוץ לחיצה ארוכה כדי להעתיק את הסיכום.
תיקוני באגים
- תוקנה רגרסיה שבה ל-PreferenceCategory ולהעדפות אחרות שלא ניתנות לבחירה היו אפקט של גלים בעת הבחירה
- תוקנה בעיית נגישות שגרמה לכך ש-TalkBack לא ראה את התפריט הנפתח 'העדפות לגבי תפריט נפתח' כקליקבילי.
- תוקנו כמה בעיות בפריסה מימין לשמאל
- עודכנו כמה הערות null ב-PreferenceFragmentCompat כך שיתאימו ל-Fragment
גרסה 1.1.0-alpha04
13 במרץ 2019
androidx.preference:preference:1.1.0-alpha04
ו-androidx.preference:preference-ktx:1.1.0-alpha04
שוחררו. הרשימה המלאה של ההתחייבויות שכלולות בגרסה הזו זמינה כאן.
תכונות חדשות
העדכון של SeekBarPreference
!
- העיצוב עודכן בהתאם למפרטי החומר
- תווית הערך מוסתרת עכשיו כברירת מחדל, אבל עדיין אפשר להציג אותה באמצעות
app:showSeekBarValue="true"
אוsetShowSeekBarValue(true)
. התווית הזו היא לא חלק ממפרט Material, אבל אנחנו מבינים שהיא עמוסה ולכן נמשיך לתמוך בה – למרות שאנחנו לא ממליצים להשתמש בה. - תווית הערך מתעדכנת עכשיו בזמן גרירה של סרגל הדילוג, במקום כשהוא משוחרר. חשוב לשים לב: זה לא אומר שהערך יעודכן באופן פנימי. בהמשך מופיע מידע על ממשק API חדש שמאפשר את הפונקציונליות הזו.
- הערה: למרות שיש תמיכה בכך, רצוי להימנע מהגדרת סיכום ב-SeekBarPreference (זו לא פעולה מכוונת) והיא לא חלק ממפרט Material.
- תווית הערך מוסתרת עכשיו כברירת מחדל, אבל עדיין אפשר להציג אותה באמצעות
- הוספת תמיכה בעדכונים רציפים, כדי לאפשר ל-SeekBar לעדכן את הערך השמור שלו בזמן גרירת ה-SeekBar. אפשר להפעיל את האפשרות הזו מ-XML או באופן פרוגרמטי באמצעות
app:updatesContinuously="true"
אוsetUpdatesContinuously(true)
. סרגל הדילוג יופעל בכל פעם שהמיקום של סרגל הדילוג במסך ישתנה.
שינויים ב-API
- הוספת הערות חסרות אפסיות לקובץ
findPreference()
תיקוני באגים
- תוקן באג שגרם לכך שמקשי ההאזנה של תפריטי ההקשר לא הוסרו בצורה נכונה אם ההעתקה לא מופעלת
גרסה 1.1.0-alpha03
7 בפברואר 2019
androidx.preference:preference 1.1.0-alpha03
androidx.preference:preference 1.1.0-alpha03
והקבוצה
androidx.preference:preference-ktx 1.1.0-alpha03
יושקו עם
בעקבות השינויים הבאים.
תיקוני באגים
- נפתרה בעיה שבה החלון הקופץ 'העתקה/הדבקה' לא הופיע בתיבת הדו-שיח של EditTextPreference ( לפעמים).
- תוקנה בעיה שבה המתאם הבסיסי לא נרשם כראוי, שגרמה לדליפות זיכרון בתנאים מסוימים (b/121006469)
- תוקנו מספר קריסות הקשורות לתיבת דו-שיח שהתרחשו במהלך שינוי ההגדרה (b/122167543)
- הערך המתוקן של SummaryProvider לא פועל עבור MultiSelectListPreference (b/123022772)
גרסה 1.1.0-alpha02
17 בדצמבר 2018
כדאי לעיין גם מדריך ההגדרות עודכן לאחרונה ודוגמה אפליקציה.
תכונות חדשות
נוסף ממשק אחד (
EditTextPreference.OnBindEditTextListener
) כך אפשר להתאים אישית את ה-EditText שמוצג של תיבת הדו-שיח. לדוגמה, הגדרת אירוע סוג הקלט / אורך או הוספת TextWatcher.הכתובת
Preference.setCopyingEnabled()
התווספה אחרי ההגדרה, לחיצה ארוכה על 'העדפה' תציג תפריט הקשר שמאפשר להעתיק את סיכום ההעדפה. אפשר להשתמש בכך כדי לאפשר העתקה של מידע סטטי, כמו מזהים ספציפיים למשתמש או פרטי גרסת האפליקציה.עיצוב ההעדפות חל עכשיו על נושא הפעילות פירוש הדבר הוא שכאשר יוצרים העדפה מקוד, לא צריך יותר להשתמש בהקשר מ-
PreferenceManager#getContext()
- אפשר פשוט להשתמש בהקשר של מקטע/פעילות.
שינויים ב-API
- בוצע מחדש ארגון של
findPreference()
כדי להחזיר<T extends Preference>
המשמעות היא שאין צורך להפעיל Cast של ההעדפות באופן מפורש כשמשתמשים ב-FindPreference(). לדוגמה,EditTextPreference preference = findPreference(“edit_text”)
הוא עכשיו קוד תקף.
גרסה 1.1.0-alpha01
5 בנובמבר 2018
תכונות חדשות
- עכשיו אפשר להגדיר SummaryProvider בהעדפה, כדי להגדיר באופן דינמי סיכום בכל פעם שההעדפה מתעדכנת או הופכת לגלויה למשתמש.
- נוספו הטמעות ברירת מחדל של SummaryProvider עבור ListPreference ו- EditTextPreference (הרשאת עריכה), כאשר הגדרה זו תעדכן באופן אוטומטי את הסיכום של העדפה לשקף את הערך השמור, או 'לא מוגדר' אם לא נשמר ערך. אפשר להגדיר את הערכים האלה באמצעות app:useSimpleSummaryProvider=”true
- נוספה האפשרות PreferenceGroup#removePreferenceRecursivity, מוצאת ו מסיר העדפה מהקבוצה, או קבוצה בתוך קבוצה נמוכה יותר ההיררכיה.
שינויים ב-API
- PreferenceFragment ומחלקות אחרות באמצעות Fragments של framework היו הוצא משימוש – צריך להשתמש ב-PreferenceFragmentCompat ובמחלקות תואמות אחרות במקום זאת.
תיקוני באגים
- תיקון סמל המרחב המשותף לא פועל בצורה תקינה עם קטגוריות ההעדפות.
- תוקנו של קטגוריות ההעדפות שלא משתמשות ב-colorAccent בצבעי הכותר שלהן מתחת ל-API 21.
- תוקנו כמה מחוסר עקביות בפריסת ה-SeekBarPreference למטה ב-API 21.