خيار مفضّل
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
26 تموز (يوليو) 2023 | 1.2.1 | - | - | - |
إعلان التبعيات
لإضافة اعتمادية على Preference، يجب إضافة مستودع Google Maven إلى مشروعك. الاطّلاع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الملحقات التابعة للعناصر التي تحتاجها في ملف build.gradle
لـ
لتطبيقك أو الوحدة التي تستخدمها:
Groovy
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") }
لمزيد من المعلومات عن العناصر التابعة، يُرجى الاطّلاع على إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية عن طريق بالنقر فوق زر النجمة.
يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل. لمزيد من المعلومات.
الإصدار 1.2
الإصدار 1.2.1
26 تموز (يوليو) 2023
تم طرح androidx.preference:preference:1.2.1
. يحتوي الإصدار 1.2.1 على عمليات الالتزام هذه.
إصلاح الأخطاء
- يعالج
PreferenceHeaderFragmentCompat
الآن زر الرجوع في النظام بشكل صحيح عند استخدامه فيComponentDialog
أو عند استخدام مكتبات مثل@AndroidEntryPoint
من Hilt التي تغطيContext
للجزء. - تعتمد التفضيل الآن على النشاط 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()
}
}
تمت إضافة التعليقات التوضيحية للقيم الفارغة إلى العديد من واجهات برمجة التطبيقات التي لم تحدّد
@NonNull
من قبل أو@Nullable
من المحتمل أن يكون هذا تغييرًا قد يؤدي إلى عطل في مصدر Kotlin إذا لم تتطابق قابلية القيم الفارغة التي اخترتها في رمز Kotlin مع قابلية القيم الفارغة المحددة الآن.يبحث
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 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة التعليقات التوضيحية للقيم الفارغة إلى العديد من
واجهات برمجة التطبيقات التي لم تحدّد
@NonNull
من قبل أو@Nullable
(I04252، Ie2cc0) - تمت إزالة واجهة برمجة التطبيقات
openPreference()
منPreferenceHeaderFragmentCompat
- هذه الطريقة في هذه الحالة وينبغي ألا يتم استدعاؤه يدويًا. (Ia6989)
تغييرات السلوك
- استدعاءات 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)
تغييرات السلوك
يمكن الآن تنفيذ استدعاءات التفضيلات لـ OnPreferenceDisplayDialogCallback وOnPreferencescreenCallback وOnPreferenceStartFragmentCallback جميعها في سياق غير متعلق بالنشاط. يتم التحقّق من الطريقة getContext() لمعرفة ما إذا كانت تنفّذ عمليات الاستدعاء هذه قبل التحقّق من getActivity(). إذا عرضت getContext() نشاطًا (الحالة الشائعة)، فلن يكون هناك تغيير في السلوك.
يبحث طلب
PreferenceFragmentCompat
إلىonPreferenceTreeClick
الآن عن عمليات تنفيذ واجهةOnPreferenceStartFragmentCallback
على الأجزاء الرئيسية قبل التفكير في تنفيذ النشاط. (c64eed)
الإصدار 1.1
الإصدار 1.1.1
نيسان (أبريل) 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 Dev Summit.
تغييرات مهمة منذ الإصدار 1.0.0
- تم نهائيًا إيقاف وظائف الإصدار
PreferenceFragment
والفئات الأخرى التي تستخدم أجزاء إطار العمل. عليك استخدامPreferenceFragmentCompat
وغيرها من الصفوف المماثلة*. - يمكنك الآن ضبط
SummaryProvider
على إحدى "الإعدادات المفضّلة" لضبط ملخّصها ديناميكيًا عند تعديل الإعدادات المفضّلة أو عند ظهورها للمستخدم. يمكنك الاطّلاع على الدليل للحصول على مزيد من المعلومات. - تمت إضافة الواجهة
EditTextPreference.OnBindEditTextListener
. يتيح ذلك تخصيصEditText
المعروض في مربّع الحوار المقابل بعد ربط مربّع الحوار. وهذا استبدال مباشر لاستخدام سمات مثلandroid:inputType
مباشرةً علىEditTextPreference
، وهو غير متاح في مكتبة AndroidX. يمكنك الاطّلاع على الدليل للحصول على مزيد من المعلومات. - تمت إضافة
Preference.setCopyingEnabled()
عند ضبط الإعدادات، سيؤدي الضغط مع الاستمرار على "الإعدادات المفضّلة" إلى عرض قائمة سياق تسمح بنسخ ملخّص الإعداد المفضّل. - تم تعديل نمط "
SeekBarPreference
" ليتطابق مع مواصفات "المواد". يمكنك الاطّلاع على سجلّ التغييرات التفصيلي لمعرفة التغييرات الأخرى التي تم إجراؤها على "SeekBarPreference
". - قدر كبير من إصلاحات الأخطاء، وتحديثات الأنماط، وإصلاحات التوافق على مستوى واجهة برمجة التطبيقات، وتحسينات QOL العامة.
الإصدار 1.1.0-rc01
2 تموز (يوليو) 2019
تم طرح androidx.preference:preference:1.1.0-rc01
وandroidx.preference:preference-ktx:1.1.0-rc01
. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.
التغييرات في واجهة برمجة التطبيقات
- إيقاف
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 Dev Summit.
- تم إيقاف PreferenceFragment والفئات الأخرى التي تستخدم أجزاء إطار العمل نهائيًا، وعليك استخدام PreferenceFragmentCompat وفئات *compat أخرى بدلاً من ذلك.
- يمكنك الآن ضبط SummaryProvider على إحدى التفضيلات لضبط ملخصه ديناميكيًا كلما تم تعديل التفضيل أو أصبح مرئيًا للمستخدم. يمكنك الاطّلاع على الدليل للحصول على مزيد من المعلومات.
- تمت إضافة الواجهة
EditTextPreference.OnBindEditTextListener
. ويسمح ذلك بتخصيص نص EditText المعروض في مربّع الحوار المقابل بعد ربط مربّع الحوار. وهذا بديل مباشر لاستخدام سمات، مثل android:inputType مباشرةً من EditTextPreference، وهي غير متاحة في مكتبة AndroidX. يمكنك الاطّلاع على الدليل للحصول على مزيد من المعلومات. - تمت إضافة
Preference.setCopyingEnabled()
عند ضبط الإعدادات، سيؤدي الضغط مع الاستمرار على "الإعدادات المفضّلة" إلى عرض قائمة سياق تسمح بنسخ ملخّص الإعداد المفضّل. - تم تعديل نمط SeekBarPreference ليتطابق مع مواصفات Material. يمكنك الاطّلاع على سجلّ التغييرات التفصيلي للتعرّف على التغييرات الأخرى التي تم إجراؤها على SeekBarPreference.
- قدر كبير من إصلاحات الأخطاء، وتحديثات الأنماط، وإصلاحات التوافق على مستوى واجهة برمجة التطبيقات، وتحسينات QOL العامة.
تغييرات واجهة برمجة التطبيقات منذ الإصدار 1.1.0-alpha05
- لإزالة getOnBindEditTextListener من واجهة برمجة التطبيقات العامة، لن تحتاج إلا إلى استخدام setOnBindEditTextListener عند التفاعل مع واجهة برمجة التطبيقات هذه.
يُرجى الإبلاغ عن الأخطاء هنا إذا واجهت أي مشاكل أو إذا كانت لديك اقتراحات بشأن ميزات جديدة.
الإصدار 1.1.0-alpha05
7 أيار (مايو) 2019
تم طرح androidx.preference:preference:1.1.0-alpha05
وandroidx.preference:preference-ktx:1.1.0-alpha05
. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.
الميزات الجديدة
- تم تعديل التصميم لاستخدام الإعدادات المفضّلة غير القابلة للاختيار: يتشارك العنوان والملخّص الآن اللون نفسه لتوضيح أنّه لا يمكن التفاعل معهما، وأنّهما يُستخدمان فقط لعرض المعلومات.
- ملاحظة: يمكنك إضافة
enableCopying="true"
إلى إعداداتك المفضّلة غير القابلة للاختيار، كي تتمكّن من الضغط مع الاستمرار لنسخ الملخّص.
إصلاح الأخطاء
- تم إصلاح الانحدار حيث سيكون لـ PreferenceCategory والتفضيلات الأخرى غير القابلة للاختيار تأثير مضاعف عند تحديدها.
- تم إصلاح مشكلة في إمكانية الوصول حيث لا يظهر خيار DropDownPreferences كعنصر قابل للنقر في TalkBack.
- تم إصلاح بعض مشاكل تنسيق من اليمين إلى اليسار
- تم تعديل بعض التعليقات التوضيحية القابلة للقيم الفارغة في PreferenceFragmentCompat لمطابقة الجزء.
الإصدار 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، ولكننا ندرك أنها مستخدَمة بشكل كبير، لذا سنواصل استخدامها - على الرغم من أننا لا ننصح باستخدامها. - يتم الآن تعديل تصنيف القيمة أثناء سحب شريط التمرير، بدلاً من وقت إصداره. يُرجى العِلم أنّ هذا لا يعني تعديل القيمة داخليًا. ويمكنك الاطّلاع أدناه على واجهة برمجة تطبيقات جديدة تتيح تفعيل هذه الوظيفة.
- ملاحظة: على الرغم من توفّر هذه الميزة، يجب تجنّب إعداد ملخّص على SeekBarPreference، فهو ليس مقصودًا وليس جزءًا من مواصفات Material.
- أصبح تصنيف القيمة مخفيًا الآن تلقائيًا على الرغم من إمكانية عرضه مع
- إتاحة التحديثات المستمرة، ما يسمح لـ SeekBar بتعديل القيمة المحفوظة أثناء سحب شريط التمرير. ويمكن تفعيل هذا الإعداد آليًا أو من خلال
app:updatesContinuously="true"
أوsetUpdatesContinuously(true)
. وسيتم تنشيطها كلما تغير موضع شريط التمرير على الشاشة.
التغييرات في واجهة برمجة التطبيقات
- تتم إضافة التعليقات التوضيحية غير المضمّنة في القيم الفارغة إلى
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()
عند الضبط، سيؤدي الضغط مع الاستمرار على "الإعدادات المفضّلة" إلى عرض قائمة سياق تسمح بنسخ ملخّص الإعدادات المفضّلة. يمكن استخدام ذلك للسماح بنسخ المعلومات الثابتة، مثل أرقام التعريف الخاصة بالمستخدم أو معلومات إصدار التطبيق.تم تطبيق Preferences Theme الآن على مظهر النشاط ويعني ذلك أنّه عند إنشاء إعدادات مفضّلة من خلال رمز برمجي، لن تحتاج بعد ذلك إلى استخدام السياق من
PreferenceManager#getContext()
، إذ يمكنك استخدام سياق الجزء/النشاط.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة ضبط بنية
findPreference()
لعرض<T extends Preference>
. وهذا يعني أنّك لست بحاجة إلى إرسال الإعدادات المفضّلة بشكل صريح عند استخدام findPreference(). على سبيل المثال:EditTextPreference preference = findPreference(“edit_text”)
هو الآن رمز صالح.
الإصدار 1.1.0-alpha01
5 تشرين الثاني (نوفمبر) 2018
الميزات الجديدة
- يمكنك الآن ضبط SummaryProvider على تفضيل لإعداده ديناميكيًا عند تعديل الإعداد المفضّل أو عند ظهوره للمستخدم.
- تمت إضافة عمليات تنفيذ SummaryProvider التلقائية الخاصة بـ ListPreference و EditTextPreference، يعمل عند تعيينه على تحديث ملخص ملف التفضيل لإظهار قيمته المحفوظة، أو "لم يتم الضبط" إذا لم يتم حفظ أي قيمة. يمكن ضبطها باستخدام app:useSimpleSummaryProvider=”true”
- تمت إضافة PreferenceGroup#removePreferenceRecursively، مما يؤدي إلى العثور على إزالة تفضيل من المجموعة، أو مجموعة متداخلة أسفل في القائمة التسلسل الهرمي.
التغييرات في واجهة برمجة التطبيقات
- تم استخدام PreferenceFragment والفئات الأخرى التي تستخدم أجزاء إطار العمل متوقفة - يجب عليك استخدام PreferenceFragmentCompat وفئات التوافق الأخرى بدلاً من ذلك.
إصلاح الأخطاء
- لا يعمل الرمز الثابتةSpaceReserve بشكل صحيح مع سمة PreferenceCategory.
- تم إصلاح فئة التفضيلات التي لا تستخدم colorAccent للون عنوانها أقل من واجهة برمجة التطبيقات 21.
- تم إصلاح بعض تناقضات تنسيق SeekBarPreference تحت واجهة برمجة التطبيقات 21.