Tercih

Cihaz depolama alanıyla etkileşimde bulunmak veya kullanıcı arayüzünü yönetmek zorunda kalmadan etkileşimli ayar ekranları oluşturun.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
26 Temmuz 2023 1.2.1 - - -

Bağımlılıkları bildirme

Preference'e bağımlılık eklemek için belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.

build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin. uygulamanız veya modülünüz:

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

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • PreferenceHeaderFragmentCompat, artık bir ComponentDialog içinde veya Parça'nın Context öğesini sarmalayan Hilt'in @AndroidEntryPoint gibi kitaplıkları kullanırken sistem geri düğmesini doğru şekilde işliyor.
  • Şu an tercihler, Etkinlik 1.5.1'e bağlıdır. (Ie5d22)
  • PreferenceHeaderFragmentCompat.onCreateInitialDetailFragment, header.extras değerini artık Fragment bağımsız değişkenleri olarak yayıyor.

Sürüm 1.2.0

26 Ocak 2022

androidx.preference:preference:1.2.0 ve androidx.preference:preference-ktx:1.2.0 serbest bırakıldı. 1.2.0 sürümü bu kaydetmeleri içerir.

1.1.0'dan bu yana önemli değişiklikler

  • İki bölmeli tercih için PreferenceHeaderFragmentCompat eklendi. Bu seçenek, kullanılan cihazın boyutuna göre otomatik olarak uyarlanarak telefon, katlanabilir cihaz ve tabletlerde kullanılmaya uygun hale getirilir. Üstbilgi bölmesi, PreferenceHeaderFragmentCompat üzerinde onCreatePreferenceHeader() yöntemi geçersiz kılınarak sağlanır. PreferenceFragmentCompat üstbilgisinde bulunan ve app:fragment değerini 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ılınarak özelleştirilebilir. Varsayılan uygulama, üzerinde tanımlı bir parçaya sahip ilk tercihi döndürür.
class TwoPanePreference : PreferenceHeaderFragmentCompat() {
    override fun onCreatePreferenceHeader(): PreferenceFragmentCompat {
        return PreferenceHeader()
    }
}
  • Çoğu öğeye null değer ek açıklaması ekledi Daha önce @NonNull veya @Nullable. Kotlin kodunuzda seçtiğiniz null değer, şu anda tanımlanmış olan null değer ile eşleşmediyse bu, Kotlin kaynağında değişiklik yapma olasılığı olan bir değişikliktir.

  • PreferenceFragmentCompat, artık barındırıldığı Bağlam veya Etkinliğin bu arayüzleri uygulayıp uygulamadığına bakmadan önce üst parçalardaki OnPreferenceStartFragmentCallback, OnNavigateToScreenListener ve OnDisplayPreferenceDialogListener arayüzlerine bakı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 hiçbir değişiklik yapılmadan yayınlandı. Sürüm 1.2.0-rc01 bu kaydetmeleri 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 yapılmadan yayınlanmıştır. Sürüm 1.2.0-beta01 bu kaydetmeleri 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 serbest bırakıldı. 1.2.0-alpha02 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Çoğu öğeye null değer ek açıklaması ekledi Daha önce @NonNull veya @Nullable. (I04252, Ie2cc0)
  • openPreference() API, şuradan kaldırıldı: PreferenceHeaderFragmentCompat - Bu yöntem ve manuel olarak aranmamalıdır. (Ia6989)

Davranış Değişiklikleri

  • Şunun için PreferenceFragmentCompat geri aramaları: OnNavigateToScreenListener ve OnDisplayPreferenceDialogListener artık OnPreferenceTreeClickListener ile aynı kalıp ve geçerli öğe için üst parça hiyerarşisini arayın kontrol etmeye başlamadan önce Bağlam veya Etkinlik bu arayüzleri uygular. (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 serbest bırakıldı. Sürüm 1.2.0-alpha01 bu kaydetmeleri 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. getActivity() işlevini kontrol etmeden önce, bu geri çağırmaları uygulayıp uygulamadığını görmek için getContext() kontrol edilir. getContext() bir Etkinlik döndürürse (genel durum) herhangi bir davranış değişikliği olmaz.

  • PreferenceFragmentCompat tarafından onPreferenceTreeClick için yapılan çağrı, Etkinlik uygulamasını değerlendirmeden önce artık üst parçalardaki OnPreferenceStartFragmentCallback arayüzünün uygulamalarını araştırıyor. (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 serbest bırakıldı. Sürüm 1.1.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • PreferenceDialogFragmentCompat artık XML'de FragmentContainerView şişirilirken IllegalStateException. (b/150051716)

Bağımlılık güncellemeleri

  • Tercih artık 1.2.4 Parça'ya 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 bağımlılığına bağlıdır. Ana preference yapısının bağımlılıklarını yansıtır ve preference-ktx yükseltmesinin, geçişli bağımlılıkların hem ana hem de -ktx yapılarını güncellemesini 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

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 önemli değişikliklerin kısa bir listesini aşağıda bulabilirsiniz. Ayrıca Ayarlar rehberini, örnek uygulamayı ve Android Dev Summit konuşmasını da yararlı bulabilirsiniz.

1.0.0'dan bu yana önemli değişiklikler

  • PreferenceFragment ve Fragments çerçevelerini kullanan diğer sınıflar için destek sonlandırıldı; bunun yerine PreferenceFragmentCompat ve diğer *uyumlu sınıfları kullanmalısınız.
  • Artık Tercih güncellendiğinde veya kullanıcı tarafından görülebildiğinde özetini dinamik olarak yapılandırmak için Tercih için bir SummaryProvider ayarlayabilirsiniz. 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örüntülenen EditText öğesinin özelleştirilmesine olanak tanır. Bu, AndroidX kitaplığında desteklenmeyen android:inputType gibi özellikleri doğrudan EditTextPreference üzerinde kullanmanın doğrudan alternatifidir. Daha fazla bilgi için kılavuza bakın.
  • Eklendi: Preference.setCopyingEnabled() Ayarlandığında, Tercih üzerine uzun basıldığında, Tercih özetinin kopyalanmasına olanak tanıyan 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 QOL 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

API değişiklikleri

  • Preference#onInitializeAccessibilityNodeInfo öğesini kullanımdan kaldırın
  • Bu yöntem, belirli bir Tercih için erişilebilirlik düğümü bilgisine proxy uyguladı ancak bu, bu özelleştirme için yanlış katmandır. Erişilebilirlik bilgilerini ayarlamak istiyorsanız bunun yerine onBindViewHolder'ı geçersiz kılmanız ve 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

1.1.0'dan bu yana önemli değişiklikler

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 en büyük değişikliklerin kısa listesini aşağıda bulabilirsiniz. Ayrıca Ayarlar rehberini, örnek uygulamayı ve Android Dev Summit konuşmasını da yararlı bulabilirsiniz.

  • PreferenceFragment ve Fragment çerçevelerini kullanan diğer sınıflar kullanımdan kaldırılmıştır. Bunun yerine PreferenceFragmentCompat ve diğer *compat sınıfları kullanmanız gerekir.
  • Artık Tercih güncellendiğinde veya kullanıcı tarafından görülebildiğinde özetini dinamik olarak yapılandırmak için Preference için bir SummaryProvider ayarlayabilirsiniz. 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örüntülenen EditText'in özelleştirilmesine olanak tanır. Bu, Android:inputType gibi özellikleri doğrudan EditTextPreference üzerinde kullanmanın doğrudan yerine geçer. Bu özellik, AndroidX kitaplığında desteklenmez. Daha fazla bilgi için kılavuza bakın.
  • Eklendi: Preference.setCopyingEnabled() Ayarlandığında, Tercih üzerine uzun basıldığında, Tercih özetinin kopyalanmasına olanak tanıyan bir içerik menüsü gösterilir.
  • SeekBarPreference stili, Materyal özelliklerine uygun şekilde güncellendi. SeekBarPreference'ta yapılan 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üncellemeleri, API düzeyi uyumluluk düzeltmeleri ve genel QOL iyileştirmeleri.

1.1.0-alpha05'ten bu yana API değişiklikleri

  • getOnBindEditTextListener öğesini genel API'den kaldırır. Bu API ile etkileşimde bulunurken 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • Seçilemeyen Tercihler için stil güncellendi. Başlık ve özet, etkileşimde bulunulamayacağını ve yalnızca bilgi görüntülemek için kullanıldığının anlaşılması için artık aynı renkte kullanılıyor.
  • Not: Seçilemez Tercihler bölümüne enableCopying="true" öğesini ekleyerek özeti kopyalayabilirsiniz.

Hata düzeltmeleri

  • PreferenceCategory ve diğer seçilemeyen diğer Tercihler'in seçildiğinde dalga etkisine sahip olacağı regresyon düzeltildi
  • TalkBack'in DropDownPreference'ı tıklanabilir olarak görmemesine neden olan erişilebilirlik sorunu düzeltildi
  • Sağdan sola düzeniyle ilgili bazı sorunlar giderildi
  • PreferenceFragmentCompat'taki bazı null 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 serbest bırakıldı. Bu sürüme dahil edilen taahhütlerin tam listesini burada bulabilirsiniz.

Yeni özellikler

SeekBarPreference güncellemesi!

  • Stil, Materyal Özellikleri ile eşleşecek şekilde güncellendi
    • Değer etiketi artık varsayılan olarak gizleniyor ancak app:showSeekBarValue="true" veya setShowSeekBarValue(true) ile gösterilmeye devam ediyor. Bu etiket, Materyal spesifikasyonunun bir parçası değildir, ancak yoğun bir şekilde kullanıldığını anlıyor ve bu etiketi kullanmanızı önermesek de desteklemeye devam edeceğiz.
    • Değer etiketi artık Arama Çubuğu bırakıldığında değil, sürüklenirken güncelleniyor. Bunun, değerin dahili olarak güncelleneceğ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 özet ayarlamaktan kaçınmalısınız. Çünkü bu, malzeme spesifikasyonunun bir parçası değildir ve kasten değildir.
  • Sürekli güncelleme desteği sağlayarak SeekBar'ın, arama çubuğu sürüklenirken kaydedilen değerini güncellemesine olanak tanır. Bu, XML üzerinden veya programatik olarak app:updatesContinuously="true" ya da setUpdatesContinuously(true) ile etkinleştirilebilir. Bu, SeekBar'ın ekrandaki konumu 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 etkinleştirilmezse içerik menüsü işleyicilerinin doğru şekilde kaldırılmamasına neden olan hata düzeltildi.

Sürüm 1.1.0-alpha03

7 Şubat 2019

androidx.preference:tercih 1.1.0-alfa03

androidx.preference:preference 1.1.0-alpha03 ve androidx.preference:preference-ktx 1.1.0-alpha03 uyarlayabilirsiniz.

Hata düzeltmeleri

  • EditTextPreference’in iletişim kutusunda bazen kopyalama/yapıştırma pop-up'ının gösterilmemesine neden olan sorun düzeltildi
  • Temel bağdaştırıcının kaydının düzgün şekilde iptal edilmemesine neden olan ve 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 iletişim kutusuyla ilgili olarak meydana gelen bazı kilitlenmeler 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 lütfen kısa süre önce güncellenen Ayarlar rehberi ve örnek uygulamasını indirin.

Yeni özellikler

  • EditTextPreference.OnBindEditTextListener arayüzü eklendi Bu, iletişim kutusunu açar. Örneğin, giriş türünü / uzunluğunu veya TextWatcher ekleme yöntemini kullanabilirsiniz.

  • Preference.setCopyingEnabled() eklendi Ayarlandığında, Tercih üzerine uzun süre basıldığında Tercih ö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 olanak tanımak için kullanılabilir.

  • tercihleri artık etkinlik temasına uygulandı Diğer bir deyişle, koddan Tercih oluştururken artık PreferenceManager#getContext() kaynağındaki bağlamı kullanmanız gerekmez. Yalnızca Parça/Etkinlik bağlamını kullanabilirsiniz.

API değişiklikleri

  • <T extends Preference> değerini döndürmek için findPreference() yeniden düzenlendi Bu, findPreference() kullanılırken Tercihler'i açık bir şekilde yayınlamanıza gerek olmadığı 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 Özet Sağlayıcısı'nı dinamik olarak yapılandırmak için bir Tercih'e özet şeklinde görünür.
  • ListPreference ve EditTextPreference, bu ayar belirlendiğinde özetin otomatik olarak güncellenmesini sağlar. Kayıtlı değeri yansıtmayı tercih edebilir veya herhangi bir değer kaydedilmemişse "Belirlenmedi"yi tercih edebilirsiniz. Bunlar app:useSimpleSummaryProvider=”true” ile ayarlanabilir.
  • Tekrarlayan olarak bulup gönderen ve veya reklam öğesi grubunun altında bulunan iç içe yerleştirilmiş bir grubu gruptan kaldırır hiyerarşik olarak düzenlenmiştir.

API değişiklikleri

  • PreferenceFragment ve çerçeve Fragments kullanan diğer sınıflar desteği sonlandırıldı; PreferenceFragmentCompat ve diğer uyumlu sınıfları kullanmanız gerekir. .

Hata düzeltmeleri

  • iconSpaceReserve'in PreferenceCategory ile düzgün çalışmaması sorunu düzeltildi.
  • Başlık rengi için colorAccent kullanmayan PreferenceCategory politikası düzeltildi API 21'den daha düşük bir değerdir.
  • API 21'in altındaki SeekBarPreference düzen tutarsızlıklarından bazıları düzeltildi.