Tercih

Cihaz depolama alanıyla etkileşimde bulunmaya veya kullanıcı arayüzünü yönetmeye gerek kalmadan etkileşimli ayarlar ekranları oluşturun.
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:

Eski

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.

Yeni sorun oluşturma

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

  • PreferenceHeaderFragmentCompat artık ComponentDialog içinde kullanıldığında veya Hilt'in @AndroidEntryPoint gibi Fragment'ın Context sarmalayan 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.onCreateInitialDetailFragment artık Fragment bağımsız değişkenleri olarak header.extras değ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 PreferenceHeaderFragmentCompat eklendi. Üstbilgi bölmesi, PreferenceHeaderFragmentCompat üzerinde onCreatePreferenceHeader() yöntemi geçersiz kılınarak sağlanır. Üstbilgide app:fragment kullanan herhangi bir <Preference>, bu parçanın ikinci ayrıntı bölmesinde görünmesine neden olur.PreferenceFragmentCompat Herhangi 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 @NonNull veya @Nullable belirtmeyen 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.

  • PreferenceFragmentCompat artık barındıran bağlamın veya etkinliğin bu arayüzleri uygulayıp uygulamadığını kontrol etmeden önce üst parçalarda OnPreferenceStartFragmentCallback, OnNavigateToScreenListener ve OnDisplayPreferenceDialogListener arayü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 @NonNull veya @Nullable belirtmeyen birçok API'ye nullability ek açıklamaları eklendi. (I04252, Ie2cc0)
  • openPreference() API'si PreferenceHeaderFragmentCompat'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

  • OnNavigateToScreenListener ve OnDisplayPreferenceDialogListener için PreferenceFragmentCompat geri çağırmaları artık OnPreferenceTreeClickListener ile 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 PreferenceHeaderFragmentCompat eklendi (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ın onPreferenceTreeClick çağrısı artık Etkinliğin uygulamasını dikkate almadan önce üst parçalardaki OnPreferenceStartFragmentCallback arayü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

  • PreferenceDialogFragmentCompat artık XML'den FragmentContainerView ayrıştırılırken IllegalStateException hata vermeyecek. (b/150051716)

Bağımlılık güncellemeleri

  • Tercih artık Fragment 1.2.4'a bağlıdır. (aosp/1277317)
  • preference-ktx bağımlılığı artık androidx.core:core-ktx:1.1.0 ve androidx.fragment:fragment-ktx:1.2.4'ye bağlıdır. Bu, ana preference yapısının bağımlılıklarını yansıtır ve preference-ktx'nin yükseltilmesinin hem ana hem de geçişli bağımlılıkların -ktx yapı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

  • PreferenceFragment ve framework Fragments 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'e SummaryProvider ayarlayarak 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.OnBindEditTextListener arayüzü eklendi. Bu, iletişim kutusu bağlandıktan sonra ilgili iletişim kutusunda gösterilen EditText öğesinin özelleştirilmesine olanak tanır. Bu, AndroidX kitaplığında desteklenmeyen android:inputType gibi özelliklerin doğrudan EditTextPreference ü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.
  • SeekBarPreference stili, Material spesifikasyonlarıyla eşleşecek şekilde güncellendi. SeekBarPreference ile 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.OnBindEditTextListener arayü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" veya setShowSeekBarValue(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.
  • 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 da setUpdatesContinuously(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.OnBindEditTextListener arayü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.