ترجیح

بدون نیاز به تعامل با فضای ذخیره‌سازی دستگاه یا مدیریت رابط کاربری، صفحه‌های تنظیمات تعاملی بسازید.
آخرین به روز رسانی انتشار پایدار کاندید را آزاد کنید نسخه بتا انتشار آلفا
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"
}

کاتلین

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 حاوی این commit ها است.

رفع اشکال

  • 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 حاوی این commit ها است.

تغییرات مهم از 1.1.0

  • PreferenceHeaderFragmentCompat برای ترجیح دو صفحه اضافه شد که به طور خودکار بر اساس اندازه دستگاه مورد استفاده سازگار می شود و آن را برای استفاده در تلفن ها، تاشوها و تبلت ها مناسب می کند. صفحه هدر با نادیده گرفتن متد onCreatePreferenceHeader() در PreferenceHeaderFragmentCompat ارائه می شود. هر <Preference> در هدر PreferenceFragmentCompat که از app:fragment استفاده می کند باعث می شود آن قطعه در پنجره جزئیات دوم ظاهر شود. قطعه جزئیات اولیه که باید قبل از انتخاب دستی هر اولویتی نمایش داده شود، می‌تواند با نادیده گرفتن onCreateInitialDetailFragment() سفارشی شود. پیاده‌سازی پیش‌فرض اولین اولویتی را برمی‌گرداند که یک قطعه بر روی آن تعریف شده است.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
    override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
        return PreferenceHeader()
    }
}
  • حاشیه‌نویسی‌های پوچ‌پذیری به بسیاری از API‌هایی اضافه شد که قبلاً @NonNull یا @Nullable را مشخص نکرده بودند. اگر پوچ‌پذیری که در کد Kotlin خود انتخاب کرده‌اید با قابلیتی که اکنون تعریف شده مطابقت نداشته باشد، این یک تغییر بالقوه شکست منبع Kotlin است.

  • PreferenceFragmentCompat اکنون به دنبال پیاده‌سازی‌های OnPreferenceStartFragmentCallback ، OnNavigateToScreenListener و OnDisplayPreferenceDialogListener بر روی قطعات والد می‌گردد، قبل از اینکه ببیند آیا Context یا Activity میزبان این رابط‌ها را پیاده‌سازی می‌کند یا خیر.

نسخه 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 حاوی این commit ها است.

نسخه 1.2.0-beta01

17 نوامبر 2021

androidx.preference:preference:1.2.0-beta01 و androidx.preference:preference-ktx:1.2.0-beta01 بدون تغییر نسبت به Preference 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 حاوی این commit ها است.

تغییرات API

  • حاشیه‌نویسی‌های پوچ‌پذیری به بسیاری از API‌هایی اضافه شد که قبلاً @NonNull یا @Nullable را مشخص نکرده بودند. ( I04252 , Ie2cc0 )
  • API openPreference() از PreferenceHeaderFragmentCompat حذف شد - این روش برای شما فراخوانی شده است و نباید به صورت دستی فراخوانی شود. ( Ia6989 )

تغییرات رفتار

  • تماس‌های PreferenceFragmentCompat برای OnNavigateToScreenListener و OnDisplayPreferenceDialogListener اکنون از همان الگوی OnPreferenceTreeClickListener پیروی می‌کنند و قبل از اینکه ببینند آیا Context یا Activity میزبان این رابط‌ها را اجرا می‌کنند، سلسله‌مراتب قطعه والد را برای شنوندگان معتبر جستجو می‌کنند. ( 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 حاوی این commit ها است.

ویژگی های جدید

  • PreferenceHeaderFragmentCompat برای ترجیح دو صفحه اضافه شد ( I9a2d8 )

تغییرات رفتار

  • تماس‌های ترجیحی برای OnPreferenceDisplayDialogCallback، OnPreferenceStartScreenCallback، و OnPreferenceStartFragmentCallback اکنون می‌توانند در یک زمینه غیرفعالیت پیاده‌سازی شوند. getContext() بررسی می شود تا ببیند آیا این callback ها را قبل از بررسی getActivity() اجرا می کند یا خیر. اگر getContext() یک Activity (مورد رایج) را برگرداند، در این صورت هیچ تغییری در رفتار وجود ندارد.

  • فراخوانی PreferenceFragmentCompat به onPreferenceTreeClick اکنون به دنبال اجرای رابط OnPreferenceStartFragmentCallback در قطعات والد قبل از در نظر گرفتن اجرای Activity می‌گردد. ( c64eed )

نسخه 1.1

نسخه 1.1.1

15 آوریل 2020

androidx.preference:preference:1.1.1 و androidx.preference:preference-ktx:1.1.1 منتشر شد. نسخه 1.1.1 حاوی این commit ها است.

رفع اشکال

  • PreferenceDialogFragmentCompat دیگر هنگام افزایش یک FragmentContainerView از xml، یک IllegalStateException ایجاد نمی کند. ( b/150051716 )

به روز رسانی وابستگی

  • اولویت اکنون به Fragment 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 منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.

اگر این اولین نسخه 1.1.* است که در حال به روز رسانی آن هستید، در اینجا فهرست مختصری از تغییرات بزرگتر از آخرین نسخه پایدار، 1.0.0 آمده است. همچنین ممکن است راهنمای تنظیمات ، برنامه نمونه و گفتگوی Android Dev Summit برای شما مفید باشد.

تغییرات مهم از 1.0.0

  • PreferenceFragment و کلاس‌های دیگر با استفاده از Fragments منسوخ شده‌اند. به جای آن باید از PreferenceFragmentCompat و سایر کلاس های *compat استفاده کنید.
  • اکنون می توانید یک SummaryProvider را روی یک Preference تنظیم کنید تا هر زمان که Preference به روز می شود یا برای کاربر قابل مشاهده است، خلاصه آن را به صورت پویا پیکربندی کند. برای اطلاعات بیشتر به راهنما مراجعه کنید.
  • رابط EditTextPreference.OnBindEditTextListener اضافه شد. این امکان سفارشی کردن EditText نمایش داده شده در گفتگوی مربوطه را پس از بسته شدن گفتگو فراهم می کند. این یک جایگزین مستقیم برای استفاده از ویژگی هایی مانند android:inputType به طور مستقیم در EditTextPreference است که در کتابخانه AndroidX پشتیبانی نمی شود. برای اطلاعات بیشتر به راهنما مراجعه کنید.
  • Preference.setCopyingEnabled() اضافه شد وقتی تنظیم شد، با فشار طولانی روی Preference، یک منوی زمینه نمایش داده می شود که امکان کپی کردن خلاصه Preference را فراهم می کند.
  • استایل SeekBarPreference برای مطابقت با مشخصات مواد به‌روزرسانی شد. برای مشاهده سایر تغییرات در SeekBarPreference تغییرات جزئی را مشاهده کنید.
  • تعداد زیادی رفع اشکال، به‌روزرسانی‌های سبک، رفع سازگاری سطح API، و بهبودهای کلی کیفیت زندگی.

نسخه 1.1.0-rc01

2 جولای 2019

androidx.preference:preference:1.1.0-rc01 و androidx.preference:preference-ktx:1.1.0-rc01 منتشر شدند. commit های موجود در این نسخه را می توانید در اینجا بیابید.

API تغییر می کند

  • Preference#onInitializeAccessibilityNodeInfo را منسوخ کنید
  • این روش اطلاعات گره دسترسی را برای یک Preference خاص پراکسی می‌کند - اما این لایه اشتباهی برای این سفارشی‌سازی است. اگر می‌خواهید اطلاعات دسترس‌پذیری را تنظیم کنید، در عوض باید روی BindViewHolder را نادیده بگیرید و اطلاعات دسترس‌پذیری را مستقیماً به نما اضافه کنید.

نسخه 1.1.0-beta01

5 ژوئن 2019

androidx.preference:preference:1.1.0-beta01 و androidx.preference:preference-ktx:1.1.0-beta01 منتشر شد. commit های موجود در این نسخه را می توانید در اینجا بیابید.

تغییرات مهم از 1.1.0

اگر این اولین نسخه 1.1.* است که در حال به روز رسانی آن هستید، در اینجا لیست مختصری از تغییرات بزرگتر از آخرین نسخه پایدار، 1.1.0، آمده است. همچنین ممکن است راهنمای تنظیمات ، برنامه نمونه و گفتگوی Android Dev Summit برای شما مفید باشد.

  • PreferenceFragment و کلاس های دیگر که از Fragment استفاده می کنند، منسوخ شده اند - به جای آن باید از PreferenceFragmentCompat و سایر کلاس های *compat استفاده کنید.
  • اکنون می توانید یک SummaryProvider را روی یک Preference تنظیم کنید تا هر زمان که Preference به روز می شود یا برای کاربر قابل مشاهده است، خلاصه آن را به صورت پویا پیکربندی کند. برای اطلاعات بیشتر به راهنما مراجعه کنید.
  • رابط EditTextPreference.OnBindEditTextListener اضافه شد. این امکان سفارشی کردن EditText نمایش داده شده در گفتگوی مربوطه را پس از بسته شدن گفتگو فراهم می کند. این یک جایگزین مستقیم برای استفاده از ویژگی هایی مانند android:inputType به طور مستقیم در EditTextPreference است که در کتابخانه AndroidX پشتیبانی نمی شود. برای اطلاعات بیشتر به راهنما مراجعه کنید.
  • Preference.setCopyingEnabled() اضافه شد وقتی تنظیم شد، با فشار طولانی روی Preference، یک منوی زمینه نمایش داده می شود که امکان کپی کردن خلاصه Preference را فراهم می کند.
  • استایل SeekBarPreference برای مطابقت با مشخصات مواد به‌روزرسانی شد. برای سایر تغییرات در SeekBarPreference، تغییرات جزئی را مشاهده کنید.
  • تعداد زیادی رفع اشکال، به‌روزرسانی‌های سبک، رفع سازگاری سطح API، و بهبودهای کلی کیفیت زندگی.

API از 1.1.0-alpha05 تغییر می کند

  • getOnBindEditTextListener را از API عمومی حذف می کند، فقط باید هنگام تعامل با این API از setOnBindEditTextListener استفاده کنید.

لطفاً اگر با مشکلی مواجه شدید، یا اگر پیشنهادی برای ویژگی‌های جدید دارید، اشکالات را در اینجا ثبت کنید!

نسخه 1.1.0-alpha05

7 مه 2019

androidx.preference:preference:1.1.0-alpha05 و androidx.preference:preference-ktx:1.1.0-alpha05 منتشر شدند. commit های موجود در این نسخه را می توانید در اینجا بیابید.

ویژگی های جدید

  • استایل را برای تنظیمات برگزیده غیرقابل انتخاب به‌روزرسانی کرد - عنوان و خلاصه اکنون یک رنگ دارند تا مشخص شود که نمی‌توان با آنها تعامل کرد و فقط برای نمایش اطلاعات استفاده می‌شوند.
  • توجه: ممکن است بخواهید enableCopying="true" را به تنظیمات برگزیده غیرقابل انتخاب خود اضافه کنید، بنابراین می توانید برای کپی کردن خلاصه مدت طولانی فشار دهید.

رفع اشکال

  • اصلاح یک رگرسیون که در آن PreferenceCategory و سایر Preferences غیر قابل انتخاب یک اثر امواج در هنگام انتخاب دارند
  • مشکل دسترس‌پذیری که TalkBack DropDownPreference را به‌عنوان قابل کلیک نمی‌بیند، برطرف شد
  • رفع برخی از مشکلات طرح RTL
  • برخی از حاشیه نویسی های باطل در PreferenceFragmentCompat برای مطابقت با Fragment به روز شد

نسخه 1.1.0-alpha04

13 مارس 2019

androidx.preference:preference:1.1.0-alpha04 و androidx.preference:preference-ktx:1.1.0-alpha04 منتشر شدند. لیست کامل commit های موجود در این نسخه را می توانید در اینجا بیابید.

ویژگی های جدید

به روز رسانی SeekBarPreference !

  • استایل به‌روزرسانی شد تا با مشخصات مواد مطابقت داشته باشد
    • برچسب مقدار اکنون به‌طور پیش‌فرض پنهان است، اگرچه همچنان می‌توان آن را با app:showSeekBarValue="true" یا setShowSeekBarValue(true) نشان داد. این برچسب بخشی از مشخصات مواد نیست، اما می‌دانیم که به شدت از آن استفاده می‌شود، بنابراین به پشتیبانی از آن ادامه خواهیم داد - حتی اگر استفاده از آن را توصیه نکنیم.
    • برچسب مقدار اکنون در حالی که SeekBar کشیده می شود، به جای زمانی که منتشر می شود، به روز می شود. توجه داشته باشید که این بدان معنا نیست که مقدار به صورت داخلی به‌روزرسانی می‌شود، برای یک API جدید که آن عملکرد را فعال می‌کند، به زیر مراجعه کنید.
    • توجه: اگرچه پشتیبانی می شود، باید از تنظیم خلاصه در SeekBarPreference خودداری کنید، زیرا در نظر گرفته نشده است و بخشی از مشخصات Material نیست.
  • پشتیبانی از به‌روزرسانی‌های مداوم را اضافه می‌کند و به SeekBar اجازه می‌دهد تا مقدار ذخیره‌شده خود را در حالی که SeekBar کشیده می‌شود، به‌روزرسانی کند. این را می توان از طریق XML یا برنامه نویسی، با app:updatesContinuously="true" یا setUpdatesContinuously(true) فعال کرد. هر زمان که موقعیت SeekBar روی صفحه تغییر کند، این گزینه فعال می شود.

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() اضافه شد وقتی تنظیم شد، با فشار طولانی روی Preference، یک منوی زمینه نمایش داده می شود که امکان کپی کردن خلاصه Preference را فراهم می کند. این می تواند برای کپی کردن اطلاعات ثابت مانند شناسه های خاص کاربر / اطلاعات نسخه برنامه استفاده شود.

  • preferenceTheme اکنون به موضوع فعالیت اعمال می‌شود، این بدان معناست که هنگام ایجاد یک Preference از کد، دیگر نیازی به استفاده از زمینه از PreferenceManager#getContext() ندارید - فقط می‌توانید از Fragment/Activity زمینه خود استفاده کنید.

API تغییر می کند

  • Refactored findPreference() برای برگرداندن <T extends Preference> این بدان معنی است که هنگام استفاده از findPreference () نیازی به ارسال صریح Preferences ندارید. به عنوان مثال، EditTextPreference preference = findPreference(“edit_text”) اکنون کد معتبر است.

نسخه 1.1.0-alpha01

5 نوامبر 2018

ویژگی های جدید

  • اکنون می توانید یک SummaryProvider را روی یک Preference تنظیم کنید تا هر زمان که Preference به روز می شود یا برای کاربر قابل مشاهده است، خلاصه آن را به صورت پویا پیکربندی کند.
  • اجرای SummaryProvider پیش‌فرض برای ListPreference و EditTextPreference اضافه شده است، که وقتی تنظیم شود به‌طور خودکار خلاصه Preference را به‌روزرسانی می‌کند تا مقدار ذخیره‌شده آن را منعکس کند، یا اگر مقداری ذخیره نشده باشد، «Not Set» را به‌روزرسانی می‌کند. اینها را می توان با برنامه تنظیم کرد:useSimpleSummaryProvider=”true”
  • PreferenceGroup#removePreferenceRecursively اضافه شد که به صورت بازگشتی یک Preference را از گروه یا یک گروه تودرتو در پایین‌تر سلسله مراتب پیدا کرده و حذف می‌کند.

API تغییر می کند

  • PreferenceFragment و کلاس های دیگر با استفاده از Fragment ها منسوخ شده اند - به جای آن باید از PreferenceFragmentCompat و سایر کلاس های compat استفاده کنید.

رفع اشکال

  • رفع مشکل iconSpaceReserved که به درستی با PreferenceCategories کار نمی کند.
  • رفع PreferenceCategories که از colorAccent برای رنگ عنوان خود در زیر API 21 استفاده نمی کنند.
  • برخی از تناقضات طرح‌بندی SeekBarPreference در زیر API 21 رفع شد.