Tercih
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 26 Temmuz 2023 | 1.2.1 | - | - | - |
Bağımlılıkları bildirme
Preference'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
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") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme Bağımlılıkları Ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.2
Sürüm 1.2.1
26 Temmuz 2023
androidx.preference:preference:1.2.1 iptal edilir. 1.2.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
PreferenceHeaderFragmentCompatartıkComponentDialogiçinde kullanıldığında veya Hilt'in@AndroidEntryPointgibi Fragment'ınContextsarmalayan kitaplıklar kullanılırken sistemin geri düğmesini doğru şekilde işliyor.- Tercih artık Etkinlik 1.5.1'e bağlı. (Ie5d22)
PreferenceHeaderFragmentCompat.onCreateInitialDetailFragmentartıkFragmentbağımsız değişkenleri olarakheader.extrasdeğerini yayar.
Sürüm 1.2.0
26 Ocak 2022
androidx.preference:preference:1.2.0 ve androidx.preference:preference-ktx:1.2.0 yayınlandı. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
- Kullanılan cihazın boyutuna göre otomatik olarak uyum sağlayan ve telefonlarda, katlanabilir cihazlarda ve tabletlerde kullanıma uygun hale getiren iki panelli tercih için
PreferenceHeaderFragmentCompateklendi. Üstbilgi bölmesi,PreferenceHeaderFragmentCompatüzerindeonCreatePreferenceHeader()yöntemi geçersiz kılınarak sağlanır. Üstbilgideapp:fragmentkullanan herhangi bir<Preference>, bu parçanın ikinci ayrıntı bölmesinde görünmesine neden olur.PreferenceFragmentCompatHerhangi bir tercih manuel olarak seçilmeden önce gösterilmesi gereken ilk ayrıntı parçası,onCreateInitialDetailFragment()geçersiz kılınarak özelleştirilebilir. Varsayılan uygulama, üzerinde parça tanımlanmış ilk tercihi döndürür.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
return PreferenceHeader()
}
}
Daha önce
@NonNullveya@Nullablebelirtmeyen birçok API'ye nullability ek açıklamaları eklendi. Kotlin kodunuzda seçtiğiniz nullability, artık tanımlanan nullability ile eşleşmiyorsa bu, Kotlin kaynağında potansiyel olarak bir hataya neden olabilecek bir değişikliktir.PreferenceFragmentCompatartık barındıran bağlamın veya etkinliğin bu arayüzleri uygulayıp uygulamadığını kontrol etmeden önce üst parçalardaOnPreferenceStartFragmentCallback,OnNavigateToScreenListenerveOnDisplayPreferenceDialogListenerarayüzlerinin uygulanıp uygulanmadığını kontrol ediyor.
Sürüm 1.2.0-rc01
15 Aralık 2021
androidx.preference:preference:1.2.0-rc01 ve androidx.preference:preference-ktx:1.2.0-rc01, 1.2.0-beta01 tarihinden beri herhangi bir değişiklik yapılmadan yayınlanmaktadır. 1.2.0-rc01 sürümü şu commit'leri içerir.
Sürüm 1.2.0-beta01
17 Kasım 2021
androidx.preference:preference:1.2.0-beta01 ve androidx.preference:preference-ktx:1.2.0-beta01, Preference 1.2.0-alpha02'ye kıyasla herhangi bir değişiklik yapılmadan yayınlandı. 1.2.0-beta01 sürümü şu commit'leri içerir.
Sürüm 1.2.0-alpha02
3 Kasım 2021
androidx.preference:preference:1.2.0-alpha02 ve androidx.preference:preference-ktx:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Daha önce
@NonNullveya@Nullablebelirtmeyen birçok API'ye nullability ek açıklamaları eklendi. (I04252, Ie2cc0) openPreference()API'siPreferenceHeaderFragmentCompat'den kaldırıldı. Bu yöntem sizin için çağrılır ve manuel olarak çağrılmamalıdır. (Ia6989)
Davranış Değişiklikleri
OnNavigateToScreenListenerveOnDisplayPreferenceDialogListeneriçin PreferenceFragmentCompat geri çağırmaları artıkOnPreferenceTreeClickListenerile aynı kalıbı izliyor ve barındıran bağlamın veya etkinliğin bu arayüzleri uygulayıp uygulamadığını kontrol etmeden önce geçerli işleyiciler için üst parça hiyerarşisini arıyor. (I7ae6c)
Sürüm 1.2.0-alpha01
27 Ekim 2021
androidx.preference:preference:1.2.0-alpha01 ve androidx.preference:preference-ktx:1.2.0-alpha01 yayınlandı. 1.2.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- İki bölmeli tercih için
PreferenceHeaderFragmentCompateklendi (I9a2d8)
Davranış Değişiklikleri
OnPreferenceDisplayDialogCallback, OnPreferenceStartScreenCallback ve OnPreferenceStartFragmentCallback için tercih geri çağırmaları artık Activity olmayan bir bağlamda uygulanabilir. getActivity() kontrol edilmeden önce getContext() işlevinin bu geri çağırmaları uygulayıp uygulamadığı kontrol edilir. getContext() işlevi bir Activity döndürürse (genel durum) davranışta herhangi bir değişiklik olmaz.
PreferenceFragmentCompat'nınonPreferenceTreeClickçağrısı artık Etkinliğin uygulamasını dikkate almadan önce üst parçalardakiOnPreferenceStartFragmentCallbackarayüzünün uygulamalarını arar. (c64eed)
Sürüm 1.1
Sürüm 1.1.1
15 Nisan 2020
androidx.preference:preference:1.1.1 ve androidx.preference:preference-ktx:1.1.1 yayınlandı. 1.1.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
PreferenceDialogFragmentCompatartık XML'denFragmentContainerViewayrıştırılırkenIllegalStateExceptionhata vermeyecek. (b/150051716)
Bağımlılık güncellemeleri
- Tercih artık Fragment
1.2.4'a bağlıdır. (aosp/1277317) preference-ktxbağımlılığı artıkandroidx.core:core-ktx:1.1.0veandroidx.fragment:fragment-ktx:1.2.4'ye bağlıdır. Bu, anapreferenceyapısının bağımlılıklarını yansıtır vepreference-ktx'nin yükseltilmesinin hem ana hem de geçişli bağımlılıkların-ktxyapılarını güncellediğinden emin olunmasını sağlar. (aosp/1277319)
Sürüm 1.1.0
5 Eylül 2019
androidx.preference:preference:1.1.0 ve androidx.preference:preference-ktx:1.1.0 yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Bu, 1.1.* sürümüne güncellediğiniz ilk sürümse son kararlı sürüm 1.0.0'den bu yana yapılan büyük değişikliklerin kısa bir listesini aşağıda bulabilirsiniz. Ayarlar kılavuzu, örnek uygulama ve Android Dev Summit konuşması da faydalı olabilir.
1.0.0 sürümünden beri yapılan önemli değişiklikler
PreferenceFragmentve framework Fragments kullanan diğer sınıflar için destek sonlandırıldı. Bunun yerinePreferenceFragmentCompatve diğer *compat sınıflarını kullanmanız gerekir.- Artık bir Tercih'e
SummaryProviderayarlayarak Tercih güncellendiğinde veya kullanıcıya göründüğünde özetini dinamik olarak yapılandırabilirsiniz. Daha fazla bilgi için kılavuza bakın. EditTextPreference.OnBindEditTextListenerarayüzü eklendi. Bu, iletişim kutusu bağlandıktan sonra ilgili iletişim kutusunda gösterilenEditTextöğesinin özelleştirilmesine olanak tanır. Bu, AndroidX kitaplığında desteklenmeyenandroid:inputTypegibi özelliklerin doğrudanEditTextPreferenceüzerinde kullanılmasının doğrudan yerine geçer. Daha fazla bilgi için kılavuza bakın.Preference.setCopyingEnabled()eklendi. Bu ayar etkinleştirildiğinde tercihe uzun basıldığında, tercihin özetinin kopyalanmasına olanak tanıyan bir içerik menüsü gösterilir.SeekBarPreferencestili, Material spesifikasyonlarıyla eşleşecek şekilde güncellendi.SeekBarPreferenceile ilgili diğer değişiklikler için ayrıntılı değişiklik günlüğüne bakın.- Çok sayıda hata düzeltmesi, stil güncellemesi, API seviyesi uyumluluğu düzeltmesi ve genel yaşam kalitesi iyileştirmesi.
Sürüm 1.1.0-rc01
2 Temmuz 2019
androidx.preference:preference:1.1.0-rc01 ve androidx.preference:preference-ktx:1.1.0-rc01 yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
API değişiklikleri
Preference#onInitializeAccessibilityNodeInfoöğesini kullanımdan kaldırın- Bu yöntem, belirli bir Tercih için erişilebilirlik düğümü bilgilerini proxy'ledi ancak bu özelleştirme için yanlış katman kullanılıyor. Erişilebilirlik bilgilerini ayarlamak istiyorsanız bunun yerine onBindViewHolder'ı geçersiz kılmalı ve erişilebilirlik bilgilerini doğrudan görünüme eklemelisiniz.
Sürüm 1.1.0-beta01
5 Haziran 2019
androidx.preference:preference:1.1.0-beta01 ve androidx.preference:preference-ktx:1.1.0-beta01 yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
1.1.0 sürümünden beri yapılan önemli değişiklikler
1.1.* sürümüne ilk kez güncelleme yapıyorsanız son kararlı sürüm olan 1.1.0'dan bu yana yapılan büyük değişikliklerin kısa bir listesini aşağıda bulabilirsiniz. Ayarlar kılavuzu, örnek uygulama ve Android Dev Summit konuşması da faydalı olabilir.
- PreferenceFragment ve çerçeve parçalarını kullanan diğer sınıflar için destek sonlandırıldı. Bunun yerine PreferenceFragmentCompat ve diğer *compat sınıflarını kullanmanız gerekir.
- Artık bir Tercih'te SummaryProvider ayarlayarak Tercih her güncellendiğinde veya kullanıcıya görünür hale geldiğinde özetini dinamik olarak yapılandırabilirsiniz. Daha fazla bilgi için kılavuza bakın.
EditTextPreference.OnBindEditTextListenerarayüzü eklendi. Bu, iletişim kutusu bağlandıktan sonra ilgili iletişim kutusunda gösterilen EditText'in özelleştirilmesine olanak tanır. Bu, AndroidX kitaplığında desteklenmeyen android:inputType gibi özellikleri doğrudan EditTextPreference üzerinde kullanmanın doğrudan yerine geçer. Daha fazla bilgi için kılavuza bakın.Preference.setCopyingEnabled()eklendi. Bu ayar etkinleştirildiğinde tercihe uzun basıldığında, tercihin özetinin kopyalanmasına olanak tanıyan bir içerik menüsü gösterilir.- SeekBarPreference stili, Material spesifikasyonlarıyla eşleşecek şekilde güncellendi. SeekBarPreference'taki diğer değişiklikler için ayrıntılı değişiklik günlüğüne bakın.
- Çok sayıda hata düzeltmesi, stil güncellemesi, API seviyesi uyumluluğu düzeltmesi ve genel yaşam kalitesi iyileştirmesi.
1.1.0-alpha05 sürümünden beri yapılan API değişiklikleri
- getOnBindEditTextListener, genel API'den kaldırıldı. Bu API ile etkileşimde bulunurken yalnızca setOnBindEditTextListener'ı kullanmanız gerekir.
Herhangi bir sorunla karşılaşırsanız veya yeni özellik önerileriniz varsa lütfen buradan hata kaydı oluşturun.
Sürüm 1.1.0-alpha05
7 Mayıs 2019
androidx.preference:preference:1.1.0-alpha05 ve androidx.preference:preference-ktx:1.1.0-alpha05 yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- Seçilemeyen tercihler için stil güncellendi. Başlık ve özet artık aynı renkte. Bu sayede, bunlarla etkileşim kurulamadığı ve yalnızca bilgi görüntülemek için kullanıldığı net bir şekilde anlaşılıyor.
- Not: Özetini kopyalamak için uzun basabilmek amacıyla, seçilemeyen Tercihler'inize
enableCopying="true"eklemeyi düşünebilirsiniz.
Hata düzeltmeleri
- PreferenceCategory ve seçilemeyen diğer tercihler seçildiğinde dalgalanma efektinin oluşmasına neden olan gerileme düzeltildi.
- TalkBack'in DropDownPreference'ı tıklanabilir olarak görmediği erişilebilirlik sorunu düzeltildi.
- Sağdan sola düzenle ilgili bazı sorunlar düzeltildi.
- PreferenceFragmentCompat'teki bazı boş değer atanabilir notlar, Fragment ile eşleşecek şekilde güncellendi.
Sürüm 1.1.0-alpha04
13 Mart 2019
androidx.preference:preference:1.1.0-alpha04 ve androidx.preference:preference-ktx:1.1.0-alpha04 yayınlandı. Bu sürüme dahil edilen tüm commit'lerin listesini burada bulabilirsiniz.
Yeni özellikler
SeekBarPreference güncellemesi
- Stil, Materyal Spesifikasyonları ile eşleşecek şekilde güncellendi.
- Değer etiketi artık varsayılan olarak gizli olsa da
app:showSeekBarValue="true"veyasetShowSeekBarValue(true)ile gösterilebilir. Bu etiket, Material spesifikasyonunun bir parçası olmasa da yoğun bir şekilde kullanıldığını biliyoruz. Bu nedenle, kullanmanızı önermemesek de bu etiketi desteklemeye devam edeceğiz. - Değer etiketi artık SeekBar sürüklenirken güncelleniyor. Bu durumun, değerin dahili olarak güncellendiği anlamına gelmediğini unutmayın. Bu işlevselliği sağlayan yeni bir API için aşağıya bakın.
- Not: Desteklenmesine rağmen, SeekBarPreference'ta özet ayarlamaktan kaçınmalısınız. Bu özellik, Material spesifikasyonunda yer almaz ve amaçlanmamıştır.
- Değer etiketi artık varsayılan olarak gizli olsa da
- Sürekli güncellemeler için destek eklenir. Bu sayede, SeekBar sürüklenirken SeekBar'ın kayıtlı değerini güncellemesine olanak tanınır. Bu özellik, XML'den veya programatik olarak
app:updatesContinuously="true"ya dasetUpdatesContinuously(true)ile etkinleştirilebilir. Bu, ekrandaki SeekBar'ın konumu her değiştiğinde tetiklenir.
API değişiklikleri
findPreference()öğesine eksik olan nullability ek açıklamalarını ekler.
Hata düzeltmeleri
- Kopyalama etkin değilse bağlam menüsü dinleyicilerinin doğru şekilde kaldırılmamasına neden olan hata düzeltildi.
Sürüm 1.1.0-alpha03
7 Şubat 2019
androidx.preference:preference 1.1.0-alpha03
androidx.preference:preference 1.1.0-alpha03 ve androidx.preference:preference-ktx 1.1.0-alpha03, aşağıdaki değişikliklerle yayınlanmıştır.
Hata düzeltmeleri
- Kopyalama/yapıştırma pop-up'ının bazen EditTextPreference'ın iletişim kutusunda gösterilmemesi sorunu düzeltildi.
- Temel bağdaştırıcının düzgün şekilde kaydı silinmediği için belirli koşullarda bellek sızıntılarına neden olan sorun düzeltildi (b/121006469).
- Yapılandırma değişikliği sırasında oluşan bazı iletişim kutusuyla ilgili kilitlenme sorunları düzeltildi (b/122167543).
- SummaryProvider'ın MultiSelectListPreference için çalışmaması sorunu düzeltildi (b/123022772).
Sürüm 1.1.0-alpha02
17 Aralık 2018
Ayrıca, yakın zamanda güncellenen ayarlar kılavuzuna ve örnek uygulamaya da göz atın.
Yeni özellikler
EditTextPreference.OnBindEditTextListenerarayüzü eklendi. Bu arayüz, iletişim kutusu bağlandıktan sonra ilgili iletişim kutusunda gösterilen EditText'in özelleştirilmesine olanak tanır. Örneğin, özel bir giriş türü / uzunluğu ayarlama veya TextWatcher ekleme.Preference.setCopyingEnabled()eklendi. Ayarlanmışsa tercihe uzun basıldığında, tercihin özetinin kopyalanmasına olanak tanıyan bir içerik menüsü gösterilir. Bu, kullanıcıya özel kimlikler / uygulama sürümü bilgileri gibi statik bilgilerin kopyalanmasına izin vermek için kullanılabilir.preferenceTheme artık etkinlik temasına uygulanıyor. Bu, koddan bir Preference oluştururken artık
PreferenceManager#getContext()bağlamını kullanmanız gerekmediği anlamına geliyor. Bunun yerine Fragment/Activity bağlamınızı kullanabilirsiniz.
API değişiklikleri
findPreference(),<T extends Preference>döndürecek şekilde yeniden düzenlendi. Bu, findPreference() işlevini kullanırken Tercihler'i açıkça yayınlamanız gerekmediği anlamına gelir. Örneğin,EditTextPreference preference = findPreference(“edit_text”)artık geçerli bir koddur.
Sürüm 1.1.0-alpha01
5 Kasım 2018
Yeni özellikler
- Artık bir Tercih'te SummaryProvider ayarlayarak Tercih güncellendiğinde veya kullanıcıya görünür hale geldiğinde özetini dinamik olarak yapılandırabilirsiniz.
- ListPreference ve EditTextPreference için varsayılan SummaryProvider uygulamaları eklendi. Bu uygulamalar ayarlandığında, Preference'ın özetini kaydedilen değerini yansıtacak şekilde otomatik olarak günceller. Değer kaydedilmemişse özet "Ayarlanmadı" olarak güncellenir. Bunlar, app:useSimpleSummaryProvider="true" ile ayarlanabilir.
- PreferenceGroup#removePreferenceRecursively işlevi eklendi. Bu işlev, gruptaki veya hiyerarşide daha aşağıda bulunan iç içe yerleştirilmiş bir gruptaki bir tercihi yinelemeli olarak bulur ve kaldırır.
API değişiklikleri
- PreferenceFragment ve çerçeve parçalarını kullanan diğer sınıfların desteği sonlandırıldı. Bunun yerine PreferenceFragmentCompat ve diğer uyumlu sınıfları kullanmanız gerekir.
Hata düzeltmeleri
- iconSpaceReserved'ın PreferenceCategory'lerle düzgün çalışmaması sorunu düzeltildi.
- API 21'in altındaki PreferenceCategories'in başlık rengi için colorAccent'i kullanmaması sorunu düzeltildi.
- API 21'den önceki sürümlerde SeekBarPreference düzenindeki bazı tutarsızlıklar düzeltildi.