Tercih

Cihazın depolama alanıyla etkileşimde bulunmanıza veya kullanıcı arayüzünü yönetmenize gerek kalmadan etkileşimli ayar ekranları oluşturun.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
26 Temmuz 2023 1.2.1 - - -

Bağımlılıkları bildirme

Preference (Tercih) için bir bağımlılık eklemek üzere projenize Google Maven deposunu 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 ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

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 bölümüne bakın.

Geri bildirim

Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap 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 belgelerine bakın.

Sürüm 1.2

Sürüm 1.2.1

26 Temmuz 2023

androidx.preference:preference:1.2.1 yayınlandı. Sürüm 1.2.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • PreferenceHeaderFragmentCompat artık bir ComponentDialog içinde veya Fragment'ın Context öğesini saran Hilt @AndroidEntryPoint gibi kitaplıklar kullanırken sistem geri düğmesini düzgün şekilde işliyor.
  • Bu tercih artık Etkinlik 1.5.1'e bağlıdır. (Ie5d22)
  • PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment artık header.extras bağımsız değişkenlerini Fragment bağımsız değişkenleri olarak 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ü bu kayıtları içerir.

1.1.0 sürümünden sonraki önemli değişiklikler

  • Kullanılan cihazın boyutuna göre otomatik olarak uyum sağlayan iki bölmeli tercih için PreferenceHeaderFragmentCompat eklendi. Böylece telefonlar, katlanabilir cihazlar ve tabletlerde kullanıma uygun hale geldi. Başlık bölmesi, PreferenceHeaderFragmentCompat üzerinde onCreatePreferenceHeader() yönteminin geçersiz kılınmasıyla sağlanır. PreferenceFragmentCompat üstbilgisinde app:fragment kullanan herhangi bir <Preference>, bu parçanın ikinci ayrıntı bölmesinde görünmesine neden olur. Herhangi bir tercih manuel olarak seçilmeden önce gösterilmesi gereken ilk ayrıntı parçası, onCreateInitialDetailFragment() geçersiz kılarak özelleştirilebilir. Varsayılan uygulama, üzerinde tanımlanmış bir parça bulunan ilk tercihi döndürür.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
    override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
        return PreferenceHeader()
    }
}
  • Daha önce @NonNull veya @Nullable belirtilmeyen API'lerin çoğuna null değer ek açıklamaları eklendi. Kotlin kodunuzda seçtiğiniz null değer, şu anda tanımlanan null durumuyla eşleşmediğinde bu, Kotlin kaynağında bozulma yaşanabilecek bir değişiklik olabilir.

  • PreferenceFragmentCompat şimdi, barındıran Bağlam veya Etkinlik'in bu arayüzleri uygulayıp uygulamadığını görmek için üst parçalarda OnPreferenceStartFragmentCallback, OnNavigateToScreenListener ve OnDisplayPreferenceDialogListener arayüzlerinin uygulamalarını arıyor.

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 bu yana herhangi bir değişiklik olmadan yayınlandı. Sürüm 1.2.0-rc01 bu kayıtları 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, Tercih 1.2.0-alpha02'de herhangi bir değişiklik olmadan kullanıma sunulmuştur. Sürüm 1.2.0-beta01 bu kayıtları 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ı. Sürüm 1.2.0-alpha02 bu kaydetmeleri içerir.

API Değişiklikleri

  • Daha önce @NonNull veya @Nullable belirtilmeyen API'lerin çoğuna null değer ek açıklamaları eklendi. (I04252, Ie2cc0)
  • openPreference() API, PreferenceHeaderFragmentCompat öğesinden kaldırıldı. Bu yöntem sizin için sunulmuştur 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ırma Bağlamı veya Etkinliğinin bu arayüzleri uygulayıp uygulamadığını kontrol etmeden önce geçerli işleyiciler için üst parça hiyerarşisini araştırın. (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ı. Sürüm 1.2.0-alpha01 bu kayıtları 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 Etkinlik olmayan bir Bağlamda uygulanabilir. getContext(), getActivity() kontrolünden önce bu geri çağırmaları uygulayıp uygulamadığı için getContext() kontrol edilir. getContext() bir Etkinlik döndürürse (sık karşılaşılan durum) bu durumda herhangi bir davranış değişikliği olmaz.

  • PreferenceFragmentCompat tarafından yapılan onPreferenceTreeClick çağrısı, artık etkinliğin uygulamasını dikkate almadan önce üst parçalarda 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ı. Sürüm 1.1.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • PreferenceDialogFragmentCompat, XML'den FragmentContainerView şişirirken artık IllegalStateException hatası vermeyecek. (b/150051716)

Bağımlılık güncellemeleri

  • Tercih artık Parçaya 1.2.4 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 ürünlerine bağlıdır. Bu sayede, ana preference yapısının bağımlılıkları yansıtılır ve preference-ktx yükseltildiğinde geçişli bağımlılıkların hem ana hem de -ktx yapılarının güncellenmesi sağlanır. (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ümdeki kaydetmeleri burada bulabilirsiniz.

Bu güncelleme yaptığınız ilk 1.1.* sürümüyse son kararlı sürümden (1.0.0) bu yana yapılan daha büyük değişikliklerin kısa bir listesini burada bulabilirsiniz. Ayarlar rehberi, örnek uygulama ve Android Dev Summit konuşması da sizin için yararlı olabilir.

1.0.0 sürümünden sonraki önemli değişiklikler

  • 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ı kullanmalısınız.
  • Artık bir Tercih güncellendiğinde veya kullanıcı tarafından görünür hale geldiğinde, özetini dinamik olarak yapılandırmak için Tercih'te SummaryProvider ayarlayabilirsiniz. Daha fazla bilgi için kılavuzu inceleyin.
  • EditTextPreference.OnBindEditTextListener arayüzü eklendi. Bu, iletişim kutusu bağlandıktan sonra ilgili iletişim kutusunda görüntülenen EditText öğesinin özelleştirilmesini sağlar. Bu, AndroidX kitaplığında desteklenmeyen android:inputType gibi özelliklerin doğrudan EditTextPreference'da kullanılmasının doğrudan yerine geçiyor. Daha fazla bilgi için kılavuzu inceleyin.
  • Preference.setCopyingEnabled() Eklendi: Ayarlandığında, Tercih seçeneğine uzun basıldığında Tercih özetinin kopyalanmasına izin veren bir içerik menüsü gösterilir.
  • SeekBarPreference stili, Materyal özelliklerine uyacak şekilde güncellendi. SeekBarPreference ile ilgili diğer değişiklikler için ayrıntılı değişiklik günlüğünü inceleyin.
  • Çok sayıda hata düzeltmesi, stil güncellemeleri, API düzeyi uyumluluk düzeltmeleri ve genel hizmet kalitesi iyileştirmeleri.

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ümdeki kaydetmeleri 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ü bilgileri için proxy kullanıyordu. Ancak bu, söz konusu özelleştirme için yanlış katmandır. Erişilebilirlik bilgilerini ayarlamak isterseniz bunun yerine onBindViewHolder'ı geçersiz kılıp erişilebilirlik bilgilerini doğrudan görünüme eklemeniz gerekir.

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ümdeki kaydetmeleri burada bulabilirsiniz.

1.1.0 sürümünden sonraki önemli değişiklikler

Bu, güncelleme yaptığınız ilk 1.1.* sürümüyse son kararlı sürüm olan 1.1.0'dan bu yana yapılan daha büyük değişikliklerin kısa bir listesini burada bulabilirsiniz. Ayarlar rehberi, örnek uygulama ve Android Dev Summit konuşması da sizin için yararlı olabilir.

  • PreferenceFragment ve çerçeve Fragment'larını kullanan diğer sınıfların desteği sonlandırıldı. Bunun yerine PreferenceFragmentCompat ve diğer *uyumlu sınıfları kullanmalısınız.
  • Artık bir Tercih güncellendiğinde veya kullanıcı tarafından görülebildiğinde özetini dinamik olarak yapılandırmak için bir Tercih'te bir ÖzetSağlayıcı ayarlayabilirsiniz. Daha fazla bilgi için kılavuzu inceleyin.
  • EditTextPreference.OnBindEditTextListener arayüzü eklendi. Bu, iletişim kutusu bağlandıktan sonra ilgili iletişim kutusunda görüntülenen EditText'in özelleştirilmesine olanak tanır. Bu özellik, android:inputType gibi özelliklerin doğrudan EditTextPreference'da kullanılması yerine, AndroidX kitaplığında desteklenmeyen bir alternatiftir. Daha fazla bilgi için kılavuzu inceleyin.
  • Preference.setCopyingEnabled() Eklendi: Ayarlandığında, Tercih seçeneğine uzun basıldığında Tercih özetinin kopyalanmasına izin veren bir içerik menüsü gösterilir.
  • SeekBarPreference stili, Materyal özellikleriyle eşleşecek şekilde güncellendi. SeekBarPreference ile ilgili diğer değişiklikler için ayrıntılı değişiklik günlüğünü inceleyin.
  • Çok sayıda hata düzeltmesi, stil güncellemeleri, API düzeyi uyumluluk düzeltmeleri ve genel hizmet kalitesi iyileştirmeleri.

1.1.0-alpha05 sürümünden beri API değişiklikleri

  • getOnBindEditTextListener aracını genel API'den kaldırır. Bu API ile etkileşim kurarken yalnızca setOnBindEditTextListener öğesini kullanmanız gerekir.

Herhangi bir sorunla karşılaşırsanız veya yeni özellik önerileriniz varsa lütfen hataları buradan bildirin.

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ümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • Seçilemeyen Tercihler için stil güncellendi. Başlık ve özet, bunlarla etkileşimin mümkün olmadığını ve yalnızca bilgileri görüntülemek için kullanıldığını netleştirmek amacıyla artık aynı rengi kullanıyor.
  • Not: Seçilemeyen Tercihler bölümüne enableCopying="true" eklemeyi düşünebilirsiniz. Böylece özeti kopyalamak için uzun basabilirsiniz.

Hata düzeltmeleri

  • PreferenceCategory ve seçilemeyen diğer Tercihler'in seçildiğinde dalga etkisi olması şeklinde ortaya çıkan bir regresyon düzeltildi
  • TalkBack'in DropDownPreference'yı tıklanabilir olarak görmemesine neden olan erişilebilirlik sorunu düzeltildi
  • RTL düzeniyle ilgili bazı sorunlar düzeltildi
  • PreferenceFragmentCompat öğesindeki bazı boş ek açıklamalar 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 kaydetmelerin tam listesini burada bulabilirsiniz.

Yeni özellikler

SeekBarPreference güncellemesi!

  • Stil, Materyal Spesifikasyonlarla eşleşecek şekilde güncellendi
    • Değer etiketi artık varsayılan olarak gizlidir ancak app:showSeekBarValue="true" veya setShowSeekBarValue(true) ile gösterilmeye devam edebilir. Bu etiket, Materyal spesifikasyonunun bir parçası değildir ancak yoğun şekilde kullanıldığının farkındayız. Bu nedenle, bu etiketi kullanmanızı önermesek de desteklemeye devam edeceğiz.
    • Değer etiketi artık SeekBar serbest bırakıldığında değil, sürüklenirken güncellenir. Bunun, değerin dahili olarak güncellendiği anlamına gelmediğini unutmayın. Bu işlevi etkinleştiren yeni bir API için aşağıya bakın.
    • Not: Desteklenmesine rağmen SeekBarPreference ile ilgili bir özet ayarlamamaktan kaçınmalısınız. Çünkü bu özet tasarlanmamıştır ve Materyal özelliklerinin bir parçası değildir.
  • Sürekli güncellemeler için destek ekleyerek SeekBar'ın, SeekBar sürüklenirken kaydedilen değerini güncellemesine olanak tanır. Bu özellik, XML aracılığıyla ya da app:updatesContinuously="true" veya setUpdatesContinuously(true) ile programatik olarak etkinleştirilebilir. Bu ayar, SeekBar'ın ekrandaki konumu her değiştiğinde etkinleşir.

API değişiklikleri

  • Eksik null değer ek açıklamalarını findPreference() öğesine ekler

Hata düzeltmeleri

  • Kopyalama etkin olmadığında içerik menüsü işleyicilerin 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 birlikte kullanıma sunuldu.

Hata düzeltmeleri

  • Kopyalama/yapıştırma pop-up'ının bazen EditTextPreference'nın iletişim kutusunda gösterilmemesine neden olan sorun düzeltildi.
  • Temel adaptörün kaydının doğru şekilde silinmemesi ve belirli koşullar altında bellek sızıntılarına neden olması sorunu düzeltildi (b/121006469)
  • Yapılandırma değişikliği sırasında iletişim kutusuyla ilgili bazı kilitlenmeler düzeltildi (b/122167543)
  • MultipleSelectListPreference için çalışmama sorunu düzeltildi (b/123022772)

Sürüm 1.1.0-alpha02

17 Aralık 2018

Lütfen kısa süre önce güncellenen Ayarlar kılavuzuna ve örnek uygulamaya da göz atın.

Yeni özellikler

  • EditTextPreference.OnBindEditTextListener arayüzü eklendi Bu, iletişim kutusu bağlandıktan sonra ilgili iletişim kutusunda görüntülenen EditText'in özelleştirilmesine olanak tanır. Örneğin, özel bir giriş türü / uzunluğu ayarlama veya bir TextWatcher ekleme.

  • Eklendi Preference.setCopyingEnabled() Ayarlandığında, Tercih seçeneğine uzun basıldığında Tercih özetinin kopyalanmasına izin veren 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.

  • tercihTeması artık etkinlik temasına uygulandı Yani, koddan bir Tercih oluştururken artık PreferenceManager#getContext() bağlamını kullanmanıza gerek yoktur, yalnızca Parça/Etkinlik bağlamınızı kullanabilirsiniz.

API değişiklikleri

  • findPreference(), <T extends Preference> değerini döndürecek şekilde yeniden düzenlendi Bu, findPreference() kullanırken Tercihler'i açık bir şekilde 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, Tercih güncellendiğinde veya kullanıcı tarafından görülebildiğinde özetini dinamik olarak yapılandırmak için bir Preference'da bir ÖzetSağlayıcı ayarlayabilirsiniz.
  • ListPreference ve EditTextPreference için kullanılan varsayılan ÖzetProvider uygulamaları eklendi. Bu uygulamalar ayarlandığında, Tercih Özetini kaydedilen değerini yansıtacak şekilde otomatik olarak günceller veya hiçbir değer kaydedilmemişse "Belirlenmedi" ayarı kullanılır. Bunlar app:use SimpleSummaryProvider=”true” ile ayarlanabilir.
  • Bir Tercihler'i yinelemeli olarak bulup gruptan veya hiyerarşide daha alt sıralarda yer alan iç içe yerleştirilmiş bir grubu kaldıran PreferenceGroup#removePreferenceRecursly eklendi.

API değişiklikleri

  • PreferenceFragment ve çerçeve Fragment'larını kullanan diğer sınıflar kullanımdan kaldırılmıştır. Bunun yerine PreferenceFragmentCompat ve diğer uyumlu sınıfları kullanmalısınız.

Hata düzeltmeleri

  • iconSpaceAyrılmış'ın PreferenceKategoriler ile doğru çalışmaması düzeltildi.
  • API 21'in altındaki PreferenceCategory kategorilerinin, başlıklarının rengi için colorAccent kullanmaması düzeltildi.
  • API 21'in altındaki bazı SeekBarPreference düzen tutarsızlıkları düzeltildi.