Parça

Uygulamanızı bir Etkinlik içinde barındırılan birden fazla bağımsız ekrana göre segmentlere ayırın.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
29 Kasım 2023 1.6.2 - - 1.7.0-alfa07

Bağımlılıkları bildirme

Fragment'a bağımlılık eklemek için 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:

Groovy

dependencies {
    def fragment_version = "1.6.2"

    // Java language implementation
    implementation "androidx.fragment:fragment:$fragment_version"
    // Kotlin
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
    // Testing Fragments in Isolation
    debugImplementation "androidx.fragment:fragment-testing:$fragment_version"
}

Kotlin

dependencies {
    val fragment_version = "1.6.2"

    // Java language implementation
    implementation("androidx.fragment:fragment:$fragment_version")
    // Kotlin
    implementation("androidx.fragment:fragment-ktx:$fragment_version")
    // Testing Fragments in Isolation
    debugImplementation("androidx.fragment:fragment-testing:$fragment_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.7

Sürüm 1.7.0-alpha07

29 Kasım 2023

androidx.fragment:fragment-*:1.7.0-alpha07 yayınlandı. Sürüm 1.7.0-alpha07 bu kayıtları içerir.

Hata Düzeltmeleri

  • Paylaşılan bir öğe geçişinin ayarlanmasından ve bir enter/exitTransition'ın ayarlanamamasından kaynaklanan NullPointerException düzeltildi. (I8472b)
  • Parçadan 1.6.2: FragmentContainerView Parçası şişirildiğinde FragmentManager, Ana Makine ve kimlik gibi durumlarına artık onInflate geri çağırmasıyla erişilebilir. (I1e44c, b/307427423)
  • Parça 1.6.2'dan: Bir parça grubunu kaldırmak için clearBackStack kullanılırken, üst parçanın ViewModels öğesi temizlendiğinde artık iç içe yerleştirilmiş Fragment'ın ViewModel öğesi de temizlenir. (I6d83c, b/296173018)

Sürüm 1.7.0-alpha06

4 Ekim 2023

androidx.fragment:fragment-*:1.7.0-alpha06 yayınlandı. Sürüm 1.7.0-alpha06 bu kaydetmeleri içerir.

Bağımlılık Güncellemesi

Sürüm 1.7.0-alpha05

20 Eylül 2023

androidx.fragment:fragment-*:1.7.0-alpha05 yayınlandı. Sürüm 1.7.0-alpha05 bu kayıtları içerir.

Yeni Özellikler

  • Androidx Transitions kullanılırken parçalar artık Tahmini geri desteği sağlamaktadır. Böylece, tamamlanan hareketle işlemi kaydetmeye veya iptal etmeye karar vermeden önce geri hareketini kullanarak özel Androidx Geçişinizle önceki parçaya gidebilirsiniz. Bu özelliği etkinleştirmek için Transition 1.5.0-alpha03 sürümünü kullanmanız gerekir. (Ib49b4, b/285175724)

Bilinen Sorunlar

  • Şu an, geçiş içeren bir geri hareketini bir kez iptal etmenizin ardından, geri hareketini bir sonraki başlatışınızda geçişin çalıştırılamamasına ve sonuç olarak boş ekran olmasına neden olan bir sorun bulunmaktadır. Bu durum, Geçiş kitaplığındaki bir sorundan kaynaklanıyor olabilir. (b/300157785). Bu sorunu görürseniz sorununuzu yeniden oluşturan örnek bir projeyle Fragment'a karşı sorun bildirin. Etkinliğinizin onCreate() bölümünde FragmentManager.enabledPredictiveBack(false) kullanarak tahmini geri alma özelliğini devre dışı bırakabilirsiniz.

Sürüm 1.7.0-alpha04

6 Eylül 2023

androidx.fragment:fragment-*:1.7.0-alpha04 yayınlandı. Sürüm 1.7.0-alpha04 bu kayıtları içerir.

Hata Düzeltmeleri

  • Parçaların doğru Yaşam Döngüsü durumuna geçemediği tahmine dayalı bir geri hareketi iptal edilirken yaşanan sorun düzeltildi. (I7cffe, b/297379023)
  • Animasyonların Geçişlerle birlikte çalışmasına izin verilen regresyonlar düzeltildi. (I59f36)
  • Arka yığında son parçadan son parçaya kadar arka arkaya iki kez geri gitmenin kilitlenmeye neden olduğu parçalı Tahmine Dayalı Geri kullanımı sırasında oluşan sorun düzeltildi. (Ifa1a4)

Sürüm 1.7.0-alpha03

23 Ağustos 2023

androidx.fragment:fragment-*:1.7.0-alpha03 yayınlandı. Sürüm 1.7.0-alpha03 bu kayıtları içerir.

Hata Düzeltmeleri

  • Tahmine dayalı geri kullanıldığında, parça yöneticisinin arka yığınındaki ilk parçanın atlanmasına ve sistemi 3 düğmeli gezinme veya tahmine dayalı geri hareketiyle geri kullanırken Etkinliğin bitmesine neden olan bir sorun düzeltildi. (I0664b, b/295231788)

Sürüm 1.7.0-alpha02

9 Ağustos 2023

androidx.fragment:fragment-*:1.7.0-alpha02 yayınlandı. Sürüm 1.7.0-alpha02 bu kayıtları içerir.

Hata Düzeltmeleri

  • API 34'teki Tahmini Geri Hareketleri ile Parçalar'ı kullanırken, sarmayı desteklemeyen bir geçiş sistemi (Animations, Transitions) kullanıyorsanız veya hiç geçiş yoksa Fragments artık geri işlemini yürütmeden önce hareketin tamamlanmasını bekleyecektir. (I8100c)

Sürüm 1.7.0-alpha01

7 Haziran 2023

androidx.fragment:fragment-*:1.7.0-alpha01 yayınlandı. Bu sürüm, dahili bir dalda geliştirilmiştir.

Yeni Özellikler

  • Parçalar artık Animator kullanılırken Tahmine dayalı uygulama içi destek sağlıyor. Bu, işlemi tamamlanan hareketle uygulamaya veya iptal etmeye karar vermeden önce özel Animatörünüzle önceki parçayı görmek için geri hareketini kullanmanıza olanak tanır. Ayrıca, deneme amaçlı enablePredictiveBack() davranışını kullanarak ve false üzerinden geçerek bu yeni davranışı devre dışı bırakabilirsiniz.

Sürüm 1.6

Sürüm 1.6.2

1 Kasım 2023

androidx.fragment:fragment-*:1.6.2 yayınlandı. Sürüm 1.6.2 bu kayıtları içerir.

Hata Düzeltmeleri

  • Bir FragmentContainerView Parçası şişirildiğinde FragmentManager, Ana Makine ve kimlik gibi durumlarına artık onInflate geri çağırmasıyla erişilebilir. (I1e44c, b/307427423)
  • Bir parça grubunu kaldırmak için clearBackStack kullanılırken üst parçanın ViewModels'i silindiğinde iç içe yerleştirilmiş Fragment'ın ViewModel'i de temizlenir. (I6d83c, b/296173018)

Sürüm 1.6.1

26 Temmuz 2023

androidx.fragment:fragment-*:1.6.1 yayınlandı. Sürüm 1.6.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • Etkinlik durdurulduğunda ancak silinmediğinde depolanan kayıtlı durumun, parça örneği RESUMED durumuna geri taşındıktan sonra bile yanlış bir şekilde önbelleğe alınması sorunu düzeltildi. Bu, parçayı kaydetmek ve geri yüklemek için birden fazla arka yığın API'si kullanılırken parça örneği arka yığındaysa önbelleğe alınan durumun yeniden kullanılmasına neden olur. (I71288, b/246289075)

Bağımlılık Güncellemesi

  • Parça artık 1.7.2 Etkinliği'ne bağlıdır. Bu değişiklik, Kotlin kullanıcılarının, Etkinlik'e açık bir şekilde bağımlılık olmadan ComponentDialog erişimini genişletememesine neden olan sorunu düzeltmektedir. (b/287509323)

Sürüm 1.6.0

7 Haziran 2023

androidx.fragment:fragment-*:1.6.0 yayınlandı. 1.6.0 sürümü bu kayıtları içerir.

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

  • Fragment öğelerinin kaydedilen durumu, gizli kitaplık durumu (özel Parcelable sınıfları) ile geliştirici tarafından sağlanan durum arasında tamamen bölündü. Bu durum artık her zaman, parçanın durumunun tam olarak nerede kaynaklandığının belirlenmesine olanak tanıyan bir Bundle içinde depolanır.
  • FragmentManager.OnBackStackChangedListener arayüzü, sırasıyla parça arka yığınına eklenmeden/kaldırılmadan hemen önce ve işlem yapıldıktan hemen sonra her bir Fragment ile çağrılan iki ek onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırmasıyla genişletildi.
  • FragmentStrictMode, bir alt parçanın üst öğenin Görünüm hiyerarşisine iç içe yerleştirildiğini algılayıp üst öğenin childFragmentManager öğesine eklenmediğini tespit eden yeni bir WrongNestedHierarchyViolation ekledi.
  • Intent veya IntentSender alan Fragment ve FragmentManager API'lerine, null değerinin geçirilmesini önlemek için @NonNull ile düzgün bir şekilde not eklenir. Boş değer olarak, bu yöntemlerin çağırdığı ilgili Android çerçevesi API'leri her zaman anında kilitlenir.
  • DialogFragment, artık requireComponentDialog() API üzerinden temel ComponentDialog öğesine erişim sağlıyor.
  • Parça artık Yaşam Döngüsü 2.6.1'ne bağlıdır.
  • Parça artık KayıtlıDurum 1.2.1'a bağlı.
  • Bu parça artık ProfileInstaller 1.3.0 öğesine bağlıdır.
  • fragment-testing-manifest yapısı, manifest girişlerini diğer parça testi bileşenlerinden ayırır. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:

    debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
    androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
    

    Bu, fragment-testing ile androidx.test arasında sürüm değişikliği olması nedeniyle çakışmaları önler

Sürüm 1.6.0-rc01

10 Mayıs 2023

androidx.fragment:fragment-*:1.6.0-rc01 yayınlandı. Sürüm 1.6.0-rc01 bu kayıtları içerir.

Hata Düzeltmeleri

  • Art arda birden fazla startActivityForResult isteği yapıldığında ActivityResult öğelerinin yanlış istek koduyla gönderilmesine neden olan sorun düzeltildi. (If0b9d, b/249519359)
  • onBackStackChangeListener geri çağırmalarının, geri yığının gerçekten değişmediği işlemler ile karıştırıldığı işlemler için gönderilmesine neden olan sorun düzeltildi. (I0eb5c, b/279306628)

Sürüm 1.6.0-beta01

19 Nisan 2023

androidx.fragment:fragment-*:1.6.0-beta01 yayınlandı. Sürüm 1.6.0-beta01 bu kayıtları içerir.

Hata Düzeltmeleri

  • postponeEnterTransition öğesinin zaman aşımı ile kullanılması ve ardından ertelenmiş parçanın değiştirilmesi, artık ertelenmiş parçanın sızdırılmasına neden olmaz. (I2ec7d, b/276375110)
  • Yeni onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırmaları, birden fazla işlem aynı parçayı içerse bile artık yalnızca tek bir parçayı dağıtır. (Ic6b69)

Sürüm 1.6.0-alfa09

5 Nisan 2023

androidx.fragment:fragment-*:1.6.0-alpha09 yayınlandı. Sürüm 1.6.0-alpha09 bu kaydetmeleri içerir.

API Değişiklikleri

  • DialogFragment, artık requireComponentDialog() API üzerinden temel ComponentDialog öğesine erişim sağlıyor. (I022e3, b/234274777)
  • commitNow(), executePendingTransactions() ve popBackStackImmediate() API'leri için @MainThread ek açıklaması eklenmiştir. Bunlar, çalışma zamanında başarısız olmayı beklemek yerine artık ana iş parçacığından çağrılmadıklarında derleme hataları bildirir. (Ic9665, b/236538905)

Hata Düzeltmeleri

  • FragmentManager alanında, aynı çerçevede kaydetme ve geri yükleme işlemlerinin kilitlenmeye neden olabileceği bir hata düzeltildi. (Ib36af, b/246519668)
  • OnBackStackChangedListener onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırmaları artık yalnızca FragmentManager geri yığını değiştirildiğinde yürütülür. (I66055, b/274788957)

Sürüm 1.6.0-alpha08

22 Mart 2023

androidx.fragment:fragment-*:1.6.0-alpha08 yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.

Davranış Değişikliği

  • OnBackStackChangedListener.onBackStackChangeCommited geri çağırma işleminin zamanlaması, parça işlemleri yürütülmeden önce yürütülecek şekilde ayarlandı. Bu, geri çağırmanın hiçbir zaman ayrılmış bir parçaya iletilmemesini sağlar. (I66a76, b/273568280)

Hata Düzeltmeleri

  • Parça 1.5.6: Lifecycle zaten STARTED olduğunda ve bir sonuç zaten mevcut olduğunda setFragmentResultListener içinde clearFragmentResultListener çağrısının çalışmaması sorunu düzeltildi. (If7458)

Bağımlılık Güncellemeleri

Sürüm 1.6.0-alpha07

8 Mart 2023

androidx.fragment:fragment-*:1.6.0-alpha07 yayınlandı. Sürüm 1.6.0-alpha07 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Parçadan 1.5.6: Menü öğeleri eklenmiş olsa da olmasa da herhangi bir parçanın kaldırılmasının etkinlik menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)

Sürüm 1.6.0-alpha06

22 Şubat 2023

androidx.fragment:fragment-*:1.6.0-alpha06 yayınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.

Davranış değişikliği

  • FragmentManager öğesinin onBackStackChangedListener işlevindeki yeni onBackStackChangedStarted geri çağırması, artık parçalar hedef durumlarına taşınmaya başlamadan önce yürütülecek. (I34726)

Sürüm 1.6.0-alpha05

8 Şubat 2023

androidx.fragment:fragment-*:1.6.0-alpha05 yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.

Yeni Özellikler

  • FragmentManager.OnBackStackChagnedListener arayüzü artık FragmentManager içinde geri yığın değişiklikleri olduğunda ek bilgi ve kontrol olanağı sağlayan iki ek geri çağırma (onBackStackChangeStarted ve onBackStackChangeCommitted) sunmaktadır. (Ib7ce5, b/238686802)

API Değişiklikleri

  • Intent veya IntentSender alan Fragment ve FragmentManager API'lerine, null değerinin geçirilmesini önlemek için @NonNull ile düzgün bir şekilde not eklendi. Boş değer, bu yöntemlerin çağırdığı ilgili Android çerçeve API'lerini her zaman anında kilitler. (I06fd4)

Sürüm 1.6.0-alpha04

7 Aralık 2022

androidx.fragment:fragment-*:1.6.0-alpha04 yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • FragmentStrictMode, bir alt parçanın üst öğenin Görünüm hiyerarşisine iç içe yerleştirildiğini algılayıp üst öğenin childFragmentManager öğesine eklenmediğini tespit eden yeni bir WrongNestedHierarchyViolation ekledi. (I72521, b/249299268)

Davranış Değişiklikleri

  • Artık parçalar, SavedStateRegistry durumlarını onAttach() tarihinden önce geri yükleyerek tüm yukarı yaşam döngüsü yöntemlerinde kullanılabilir olmalarını sağlıyor. (I1e2b1)

API Değişiklikleri

  • fragment-testing-manifest yapısı, manifest girişlerini diğer parça testi bileşenlerinden ayırır. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")

Bu, fragment-testing ile androidx.test arasında sürüm değişikliği olması nedeniyle çakışmaları önler.(I8e534, b/128612536)

Hata Düzeltmeleri

  • Parça 1.5.5'dan: Parçalar artık ViewModel durumunu, görüntüleme kaydı kayıtlı durumunun bir parçası olarak hatalı şekilde kaydetmeyecek. (I10d2b, b/253546214)

Sürüm 1.6.0-alpha03

5 Ekim 2022

androidx.fragment:fragment:1.6.0-alpha03, androidx.fragment:fragment-ktx:1.6.0-alpha03 ve androidx.fragment:fragment-testing:1.6.0-alpha03 yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • DialogFragment süresini uzatan sınıfların artık onDismiss() geçersiz kılma işlemlerinde süper çağırması gerekecek. (I14798, b/238928865)

Hata Düzeltmeleri

  • Parçaların her zaman doğru geri çağırmaları almasını sağlamak için yeni sağlayıcı geri çağırma arayüzlerinin (OnConfigurationChangedProvider, OnMultiWindowModeChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider) entegrasyonunun neden olduğu regresyonlar düzeltildi. (I9b380,I34581, (I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)

Sürüm 1.6.0-alpha02

24 Ağustos 2022

androidx.fragment:fragment:1.6.0-alpha02, androidx.fragment:fragment-ktx:1.6.0-alpha02 ve androidx.fragment:fragment-testing:1.6.0-alpha02 yayınlandı. Sürüm 1.6.0-alpha02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Parça 1.5.2'da: Aynı anda popBackStack() ve replace() işlemini yürütmenin, çıkıştaki parçaların yanlış Animation/Animator dosyasını çalıştırmasına neden olması sorunu düzeltildi. (Ib1c07, b/214835303)

Sürüm 1.6.0-alpha01

27 Temmuz 2022

androidx.fragment:fragment:1.6.0-alpha01, androidx.fragment:fragment-ktx:1.6.0-alpha01 ve androidx.fragment:fragment-testing:1.6.0-alpha01 yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.

Davranış Değişiklikleri

  • Fragment öğelerinin kaydedilen durumu, gizli kitaplık durumu (özel Parcelable sınıfları) ile geliştirici tarafından sağlanan durum arasında tamamen bölündü. Bu durum artık her zaman, parçanın durumunun tam olarak nerede kaynaklandığının belirlenmesine olanak tanıyan bir Bundle içinde depolanır. (b/207158202)

Hata Düzeltmeleri

  • Parça 1.5.1'dan: AGP 7.4 ile birlikte sunulan lint sürümünü kullanmanın, lint'in kilitlenmesine neden olduğu DialogFragmentCallbacksDetector öğesindeki regresyon düzeltildi. (b/237567009)

Bağımlılık güncellemesi

Sürüm 1.5

Sürüm 1.5.7

19 Nisan 2023

androidx.fragment:fragment:1.5.7, androidx.fragment:fragment-ktx:1.5.7 ve androidx.fragment:fragment-testing:1.5.7 yayınlandı. Sürüm 1.5.7 bu kayıtları içerir.

Hata Düzeltmeleri

  • postponeEnterTransition öğesinin zaman aşımı ile kullanılması ve ardından ertelenmiş parçanın değiştirilmesi, artık ertelenmiş parçanın sızdırılmasına neden olmaz. (I2ec7d, b/276375110)

Sürüm 1.5.6

22 Mart 2023

androidx.fragment:fragment:1.5.6, androidx.fragment:fragment-ktx:1.5.6 ve androidx.fragment:fragment-testing:1.5.6 yayınlandı. Sürüm 1.5.6 bu kayıtları içerir.

Hata Düzeltmeleri

  • Bir parçanın, Menü öğeleri eklenmiş olsa da olmasa da kaldırıldığında etkinlik menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
  • Lifecycle zaten STARTED ve bir sonuç zaten mevcut olduğunda setFragmentResultListener içinde clearFragmentResultListener çağrısının çalışmaması sorunu düzeltildi. (If7458)

Sürüm 1.5.5

7 Aralık 2022

androidx.fragment:fragment:1.5.5, androidx.fragment:fragment-ktx:1.5.5 ve androidx.fragment:fragment-testing:1.5.5 yayınlandı. 1.5.5 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Artık parçalar, ViewModel durumunu "görüntüleme kaydı kaydedildi" durumunun bir parçası olarak hatalı şekilde kaydetmeyecek. (I10d2b, b/253546214)

Sürüm 1.5.4

24 Ekim 2022

androidx.fragment:fragment:1.5.4, androidx.fragment:fragment-ktx:1.5.4 ve androidx.fragment:fragment-testing:1.5.4 yayınlandı. 1.5.4 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Sağlayıcı geri çağırma arayüzü (OnConfigurationChangedProvider, OnMultiWindowModeChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider) uygulamayan bir ana makineyle özel bir FragmentController kullanmanın ve kullanımdan kaldırılmış dağıtım işlevinin çağrılmasının alt parçalara gönderilememesine neden olan hata düzeltildi. (I9b380)

Sürüm 1.5.3

21 Eylül 2022

androidx.fragment:fragment:1.5.3, androidx.fragment:fragment-ktx:1.5.3 ve androidx.fragment:fragment-testing:1.5.3 yayınlandı. 1.5.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Arka yığındaki parçaların onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory() ve onConfigurationChanged() geri çağırmalarını almasına neden olan bir hata düzeltildi. (I34581, I8dfe6, b/242570955)
  • İç içe yerleştirilmiş alt parçalar artık birden fazla onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory() veya onConfigurationChanged() geri çağırması almayacak. (I690b3, Id0096, If9d6b, I2cba2)

Sürüm 1.5.2

10 Ağustos 2022

androidx.fragment:fragment:1.5.2, androidx.fragment:fragment-ktx:1.5.2 ve androidx.fragment:fragment-testing:1.5.2 yayınlandı. 1.5.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Bir popBackStack() ve bir replace() işlemini aynı anda yürütmenin, çıkıştaki parçaların yanlış Animation/Animator çalıştırılmasına neden olmasına neden olan sorun düzeltildi. (Ib1c07, b/214835303)

Sürüm 1.5.1

27 Temmuz 2022

androidx.fragment:fragment:1.5.1, androidx.fragment:fragment-ktx:1.5.1 ve androidx.fragment:fragment-testing:1.5.1 yayınlandı. 1.5.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • AGP 7.4 ile birlikte sunulan lint sürümünü kullanmanın, lint'in kilitlenmesine neden olduğu DialogFragmentCallbacksDetector içindeki regresyon düzeltildi. (b/237567009)

Bağımlılık güncellemesi

Sürüm 1.5.0

29 Haziran 2022

androidx.fragment:fragment:1.5.0, androidx.fragment:fragment-ktx:1.5.0 ve androidx.fragment:fragment-testing:1.5.0 yayınlandı. 1.5.0 sürümü bu kayıtları içerir.

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

  • CreationExtras Integration: Artık Lifecycle 2.5.0'ın CreationExtras aracılığıyla durum bilgisiz ViewModelProvider.Factory sağlayabilir.Fragment
  • Bileşen İletişim Kutusu Entegrasyonu - DialogFragment, artık onCreateDialog() tarafından döndürülen varsayılan iletişim kutusu olarak 1.5.0 Etkinliği aracılığıyla ComponentDialog kullanıyor.
  • Kaydedilen Örnek Durumunu Yeniden Düzenleme: Parçalar, örnek durumunu kaydetme yöntemlerini değiştirmeye başladı. Bu, parçada hangi durumun ve durumun kaynağında kaydedildiğini net bir şekilde tanımlamaya yardımcı olmak için yapılır. Mevcut değişiklikler aşağıdakileri içermektedir:
    • FragmentManager, kayıtlı örnek durumunu artık doğrudan özel bir Parcelable yerine Bundle klasörüne kaydediyor.
    • Fragment Result APIs ile ayarlanan ve henüz teslim edilmemiş sonuçlar artık FragmentManager öğesinin dahili durumundan ayrı olarak kaydediliyor.
    • Her bir bağımsız parçayla ilişkilendirilen durum, artık FragmentManager öğesinin dahili durumundan ayrı olarak kaydediliyor. Böylece, bağımsız bir parçayla ilişkilendirilmiş kayıtlı durum miktarını, Fragment hata ayıklama günlük kaydında bulunan benzersiz kimliklerle ilişkilendirebilirsiniz.

Diğer Değişiklikler

  • FragmentStrictMode artık sınıf adıyla allowViolation() kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasına olanak tanıyor.
  • Etkinliğinizin ActionBar öğesine menü sağlayan Fragment API'lerinin desteği sonlandırıldı. 1.4.0 etkinliğine eklenen MenuHost ve MenuProvider API'leri, parçaların kullanması gereken, test edilebilir, yaşam döngüsüne duyarlı bir eşdeğer API yüzeyi sağlar.

Sürüm 1.5.0-rc01

11 Mayıs 2022

androidx.fragment:fragment:1.5.0-rc01, androidx.fragment:fragment-ktx:1.5.0-rc01 ve androidx.fragment:fragment-testing:1.5.0-rc01 yayınlandı. Sürüm 1.5.0-rc01 bu kayıtları içerir.

Kayıtlı Örnek Durumunu Yeniden Düzenleme

  • Her bir bağımsız parçayla ilişkilendirilen durum, FragmentManager öğesinin dahili durumundan ayrı olarak kaydedilir. Böylece, tek bir parçayla ilişkilendirilmiş kayıtlı durum miktarını, Parça hata ayıklama günlük kaydında bulunan benzersiz kimliklerle ilişkilendirebilirsiniz. (a153e0, b/207158202)

Sürüm 1.5.0-beta01

20 Nisan 2022

androidx.fragment:fragment:1.5.0-beta01, androidx.fragment:fragment-ktx:1.5.0-beta01 ve androidx.fragment:fragment-testing:1.5.0-beta01 yayınlandı. Sürüm 1.5.0-beta01 bu kayıtları içerir.

API Değişiklikleri

  • DialogFragment, showNow işleviyle denklik için commitNow kullanan yeni bir dismissNow yöntemi ekledi. Bunun Dialog öğesinin hemen kapatılmasına neden olmayacağını, yalnızca FragmentManager durumunu eşzamanlı olarak güncelleyeceğini unutmayın. (I15c36, b/72644830)

Kayıtlı Örnek Durumunu Yeniden Düzenleme

  • FragmentManager, kayıtlı örnek durumunu artık doğrudan özel bir Parcelable yerine Bundle klasörüne kaydediyor. Bu, Fragments tarafından gerçekte nelerin kaydedildiğine ilişkin daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)
  • Pargment Result API'leri aracılığıyla ayarlanan ve henüz teslim edilmemiş sonuçlar artık FragmentManager dahili durumundan ayrı olarak kaydediliyor. Bu, kayıtlı örnek durumunuzun bir parçası olarak hangi sonuçların kaydedildiği konusunda daha fazla şeffaflık sağlar. (I6ea12, b/207158202)

Sürüm 1.5.0-alpha05

6 Nisan 2022

androidx.fragment:fragment:1.5.0-alpha05, androidx.fragment:fragment-ktx:1.5.0-alpha05 ve androidx.fragment:fragment-testing:1.5.0-alpha05 yayınlandı. Sürüm 1.5.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

Sürüm 1.5.0-alpha04

23 Mart 2022

androidx.fragment:fragment:1.5.0-alpha04, androidx.fragment:fragment-ktx:1.5.0-alpha04 ve androidx.fragment:fragment-testing:1.5.0-alpha04 yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Etkinliğinizin ActionBar öğesine menü sağlamak için kullanılan Fragment API'leri, parçanızı etkinliğinize sıkı bir şekilde bağladıkları ve tek başına test edilemedikleri için kullanımdan kaldırılmıştır. 1.4.0-alpha01 etkinliğine eklenen MenuHost ve MenuProvider API'leri, parçaların kullanması gereken, test edilebilir, yaşam döngüsüne duyarlı bir eşdeğer API yüzeyi sağlar. (I50a59, I20758)

Hata Düzeltmeleri

  • SavedStateViewFactory, SavedStateRegistryOwner ile başlatılmış olsa bile artık CreationExtras kullanımını destekliyor. Ekstralar sağlanırsa başlatılan bağımsız değişkenler yoksayılır. (I6c43b, b/224844583)

Sürüm 1.5.0-alpha03

23 Şubat 2022

androidx.fragment:fragment:1.5.0-alpha03, androidx.fragment:fragment-ktx:1.5.0-alpha03 ve androidx.fragment:fragment-testing:1.5.0-alpha03 yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • Artık CreationExtras öğesini by viewModels() ve by activityViewModels() işlevlerine geçirebilirsiniz. (Ibefe7, b/217601110)

Davranış Değişiklikleri

  • DialogFragment artık onCreateDialog() tarafından döndürülen varsayılan iletişim kutusu olarak ComponentDialog iletişim kutusunu kullanıyor. (If3784, b/217618170)

Sürüm 1.5.0-alpha02

9 Şubat 2022

androidx.fragment:fragment:1.5.0-alpha02, androidx.fragment:fragment-ktx:1.5.0-alpha02 ve androidx.fragment:fragment-testing:1.5.0-alpha02 yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • FragmentStrictMode artık sınıf adıyla allowViolation() kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasına olanak tanıyor. (I8f678)

Sürüm 1.5.0-alpha01

26 Ocak 2022

androidx.fragment:fragment:1.5.0-alpha01, androidx.fragment:fragment-ktx:1.5.0-alpha01 ve androidx.fragment:fragment-testing:1.5.0-alpha01 yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

Hata Düzeltmeleri

  • Parça 1.4.1'dan: FragmentContainerView, XML'den oluşturulan görüntüleme kimliklerinin negatif değerlere sahip olduğu durumlarda artık yasa dışı durum istisnası bildirmez. (Ic185b, b/213086140)
  • Parça 1.4.1'dan: by viewModels() tembel işleviyle birlikte özel bir ownerProducer lambda kullanılırken, her zaman parçanın fabrikasını kullanmak yerine özel bir ViewModelProvider.Factory sağlanmazsa artık bu sahibin defaultViewModelProviderFactory öğesini kullanacaktır. (I56170, b/214106513)
  • Bir Fragment öğesinin registerForActivityResult() geri çağırması sırasında ViewModel öğesine ilk kez erişilirken yaşanan kilitlenme düzeltildi. (Iea2b3)

Sürüm 1.4

Sürüm 1.4.1

26 Ocak 2022

androidx.fragment:fragment:1.4.1, androidx.fragment:fragment-ktx:1.4.1 ve androidx.fragment:fragment-testing:1.4.1 yayınlandı. Sürüm 1.4.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • FragmentContainerView, XML'den oluşturulan görünüm kimliklerinin negatif değerlere sahip olduğu durumlarda artık yasa dışı durum istisnası yaratmaz. (Ic185b, b/213086140)
  • by viewModels() geç işleviyle özel bir ownerProducer lambda kullanılırken, her zaman parçanın fabrikasını kullanmak yerine özel ViewModelProvider.Factory sağlanmazsa artık bu sahibin defaultViewModelProviderFactory değeri kullanılır. (I56170, b/214106513)

Sürüm 1.4.0

17 Kasım 2021

androidx.fragment:fragment:1.4.0, androidx.fragment:fragment-ktx:1.4.0 ve androidx.fragment:fragment-testing:1.4.0 yayınlandı. 1.4.0 sürümü bu kayıtları içerir.

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

  • FragmentStrictMode API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılan parça API'leri çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. Hangi kontrollerin etkinleştirildiğini ve hangi "cezaların" tetiklendiğini kontrol eden FragmentStrictMode.Policy, FragmentManager üzerinde yeni setStrictModePolicy() yöntemiyle ayarlanabilir. Bu politika hem söz konusu FragmentManager öğesi hem de kendi benzersiz politikasını ayarlamayan tüm alt parça yöneticileri için geçişli olarak geçerlidir. Parçalar için StrictMode konusuna bakın.
  • FragmentContainerView artık kapsayıcıya en son eklenen parçayı döndüren bir getFragment() yöntemi sunuyor. Bu, FragmentContainerView kimliğiyle findFragmentById() ile aynı mantığı kullanır ancak çağrının zincirleme olarak bağlanmasına izin verir.

    val navController = binding.container.getFragment<NavHostFragment>().navController
    
  • FragmentScenario artık Closeable uygulayarak bu SDK'yı Kotlin use yöntemiyle veya kaynaklarla deneyin ile kullanabilirsiniz.

  • Fragments geçişinde temanızdan alınan standart Etkinlik-geçiş animasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtmek için FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE} eklendi.

  • FragmentManager.enableNewStateManager(boolean) deneysel API'sı kaldırıldı ve artık yalnızca yeni durum yöneticisi kullanılabilir.

Birden çok arka grup

FragmentManager, addToBackStack() kullanılan parça işlemlerinden oluşan bir arka yığın sağlar. Böylece, parçalarınızın durumlarını uygun şekilde geri yükleyebilmeleri için Parçalarla durumu kaydetme mekanizmalarını kullanarak söz konusu işlemleri açabilir ve önceki duruma dönebilirsiniz.

Bu sürüm; saveBackStack(String name), restoreBackStack(String name) ve clearBackStack(String name) olmak üzere üç yeni FragmentManager API'si sağlayarak söz konusu mekanizmaların kapsamını genişletmektedir. Bu API'ler, FragmentTransaction ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack() ile aynı name özelliğini kullanır. Böylece, daha sonra bu işlemleri ve parçalarını durumlarıyla birlikte geri yüklemenize olanak tanır. Böylece, mevcut arka yığını kaydederek ve kaydedilmiş bir arka yığını geri yükleyerek birden fazla arka grup arasında etkili bir şekilde geçiş yapabilirsiniz.

saveBackStack(), eşzamansız olmasıyla popBackStack() ile benzer şekilde çalışır. Tüm parça işlemlerinin geri alınan ("aktarılmış") bu ada geri dönmesi ve eklenen parçaların yok edilip kaldırılmasıyla sonuçlanır, ancak bazı önemli farklılıklar vardır:

  • saveBackStack() her zaman kapsayıcıdır.
  • Belirtilen ad arka yığında bulunamazsa veya null bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösterecek popBackStack() işlevinin aksine, daha önce addToBackStack() kullanarak tam, null olmayan adla bir parça işlemi gerçekleştirmediyseniz saveBackStack() hiçbir şey yapmaz.
  • Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Diğer bir deyişle, her parçanın Görüntüleme durumu depolanır, her parçanın onSaveInstanceState() durumu çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tüm ViewModel örnekleri korunur (ve onCleared() bunların üzerinde çağrılanmaz).

saveBackStack() ile kullanılabilecek parça işlemleri belirli ölçütleri karşılamalıdır:

  • İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesini sağlamak için her parça işleminde setReorderingAllowed(true) kullanılmalıdır.
  • Kaydedilen işlem grubu, araya giren süre içinde arka grupta ne tür değişiklikler yapılmış olursa olsun, daha sonra geri yüklenebilmesi için bağımsız olmalıdır (yani, söz konusu işlem grubunun dışındaki parçalara açıkça başvuruda bulunmamalıdır).
  • Kaydedilen hiçbir parça, saklanan parça olamaz veya arka yığın kaydedildikten sonra FragmentManager öğesinin kaydedilen parçalara referans döndürmemesini sağlamak için geçişli alt parça grubunda tutulmuş bir parça içeremez.

Önceden kaydedilmiş bir arka yığını geri yükleyen veya daha önce kaydedilmiş bir geri yığını temizleyen saveBackStack(), restoreBackStack() ve clearBackStack()'ye benzer şekilde, daha önce aynı adla saveBackStack() çağırmadıysanız her ikisi de hiçbir şey yapmaz.

Daha fazla bilgi için Birden çok arka plan yığını: Ayrıntılı inceleme bölümüne bakın.

Sürüm 1.4.0-rc01

3 Kasım 2021

androidx.fragment:fragment:1.4.0-rc01, Fragment 1.4.0-beta01 sürümünde herhangi bir değişiklik yapılmadan yayınlandı. Sürüm 1.4.0-rc01 bu kayıtları içerir.

Sürüm 1.4.0-beta01

27 Ekim 2021

androidx.fragment:fragment:1.4.0-beta01, androidx.fragment:fragment-ktx:1.4.0-beta01 ve androidx.fragment:fragment-testing:1.4.0-beta01 yayınlandı. Sürüm 1.4.0-beta01 bu kayıtları içerir.

Hata Düzeltmeleri

  • Üst parçalar artık kendi geri çağırmalarını başlatmadan önce hiyerarşinin tamamında onHiddenChanged() öğesini dağıtır. (Iedc20, b/77504618)
  • Klavye artık açık klavyeli bir parçadan geri dönüşüm uygulaması görünümü olan bir parçaya giderken otomatik olarak kapanacak. (I8b842, b/196852211)
  • DialogFragment artık show(), showNow() veya dismiss() çağrısı yaptığınızda oluşturduğu tüm işlemler için setReorderingAllowed(true) kullanıyor. (Ie2c14)
  • DetachAndAttachFragmentInSameFragmentTransaction olan çok uzun Lint uyarısı DetachAndAttachSameFragment olarak kısaltıldı. (e9eca3)

Sürüm 1.4.0-alfa10

29 Eylül 2021

androidx.fragment:fragment:1.4.0-alpha10, androidx.fragment:fragment-ktx:1.4.0-alpha10 ve androidx.fragment:fragment-testing:1.4.0-alpha10 yayınlandı. Sürüm 1.4.0-alpha10 bu kayıtları içerir.

Lint

  • Aynı FragmentTransaction içinde aynı Fragment üzerinde hem detach() hem de attach() çağrısının algılanması için DetachAndAttachFragmentInSameFragmentTransaction hata uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde yapıldığında birbirini iptal ettiğinden, herhangi bir şey yapabilmek için ayrı işlemlere bölünmesi gerekir. (aosp/1832956, b/200867930)
  • MenuHost addMenuProvider API'si kullanılırken Parça Yaşam Döngüsü kullanımlarını düzeltmek için FragmentAddMenuProvider lint hatası eklendi. (aosp/1830457, b/200326272)

Belge Güncellemeleri

  • Etkinlik Sonucu API'leri (startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions ve onRequestPermissionsResult) tarafından işlenen API'lere yönelik desteği sonlandırma mesajının tamamı daha fazla ayrıntı içerecek şekilde genişletildi. (cce80f)
  • Hem Fragment hem de DialogFragment için onActivityCreated() desteğinin sonlandırılmasıyla ilgili mesajın tamamı daha fazla ayrıntı içerecek şekilde genişletildi. (224db4)

Sürüm 1.4.0-alpha09

15 Eylül 2021

androidx.fragment:fragment:1.4.0-alpha09, androidx.fragment:fragment-ktx:1.4.0-alpha09 ve androidx.fragment:fragment-testing:1.4.0-alpha09 yayınlandı. Sürüm 1.4.0-alpha09 bu kaydetmeleri içerir.

Yeni Özellikler

  • Artık saveBackStack(name) ile önceden kaydedilmiş olan durumları temizlemek için clearBackStack(name) numaralı telefonu arayabilirsiniz. (I70cd7)

API Değişiklikleri

  • FragmentContainerView sınıfı, getFragment işlevinin boş değer atanabilirliğine düzgün bir şekilde uymasını sağlamak amacıyla Kotlin'de yeniden yazılmıştır. (If694a, b/189629145)
  • FragmentStrictMode artık Kotlin dilinde (I11767, b/199183506) yazılıyor

Hata Düzeltmeleri

  • setReorderingAllowed(true) ile eklenen ve ardından bekleyen işlemler yürütülmeden önce hemen kaldırılan bir Parçanın durumunun düzgün bir şekilde temizlenememesine neden olan sorun düzeltildi. (I8ccb8)

Sürüm 1.4.0-alpha08

1 Eylül 2021

androidx.fragment:fragment:1.4.0-alpha08, androidx.fragment:fragment-ktx:1.4.0-alpha08 ve androidx.fragment:fragment-testing:1.4.0-alpha08 yayınlandı. Sürüm 1.4.0-alpha08 bu kayıtları içerir.

Hata Düzeltmeleri

  • Gereksiz parantezleri daha iyi işlemek için UseRequireInsteadOfGet Lint denetimi iyileştirildi. (I2d865)
  • Ek uç durumları ele almak için UseGetLayoutInflater Lint denetimi iyileştirildi. (Ie5423)

Sürüm 1.4.0-alpha07

18 Ağustos 2021

androidx.fragment:fragment:1.4.0-alpha07, androidx.fragment:fragment-ktx:1.4.0-alpha07 ve androidx.fragment:fragment-testing:1.4.0-alpha07 kayda değer bir değişiklik olmadan yayınlandı. Sürüm 1.4.0-alpha07 bu kayıtları içerir.

Sürüm 1.4.0-alpha06

4 Ağustos 2021

androidx.fragment:fragment:1.4.0-alpha06, androidx.fragment:fragment-ktx:1.4.0-alpha06 ve androidx.fragment:fragment-testing:1.4.0-alpha06 yayınlandı. Sürüm 1.4.0-alpha06 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • FragmentTransaction geri yüklenirken veya görünen bir parçanın ikinci kopyası olarak IllegalStateException olarak görünen arka yığınlar arasında hızlı bir şekilde geçiş yapılırken birden fazla arka yığınla ilgili sorun düzeltildi. (I9039f)
  • Bu durum geri yüklendikten sonra bile FragmentManager ürününün, saveBackStack() aracılığıyla önceden kaydedilmiş olan bir durumun kopyasını saklamasına neden olan sorun düzeltildi. (Ied212)
  • show(FragmentTransaction, String) yöntemiyle DialogFragment'ı özel olarak eklerken durum kaydedildikten sonra DialogFragment için dismissAllowingStateLoss() yöntemi artık kilitlenmez. (I84422)

Sürüm 1.4.0-alpha05

21 Temmuz 2021

androidx.fragment:fragment:1.4.0-alpha05, androidx.fragment:fragment-ktx:1.4.0-alpha05 ve androidx.fragment:fragment-testing:1.4.0-alpha05 yayınlandı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.

Hata Düzeltmeleri

  • Parça 1.3.6'dan: Kök görünümü transitionGroup=”true” ayarlandığında, hide() kullanılırken Fragment'ın görünümü artık düzgün şekilde GONE olarak ayarlanmıştır. (aosp/1766655, b/193603427)
  • Parça 1.3.6'dan: FragmentActivity, yaşam döngüsündeki ilk işlem geçersiz kılma işlemi yapıldığında her zaman kayıtlı durumun kilidini açar. (I6db7a)

Bağımlılık güncellemesi

Sürüm 1.4.0-alpha04

30 Haziran 2021

androidx.fragment:fragment:1.4.0-alpha04, androidx.fragment:fragment-ktx:1.4.0-alpha04 ve androidx.fragment:fragment-testing:1.4.0-alpha04 yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • FragmentManager, durumunu kaydetmek için artık gelişmiş cihazlarda SavedStateRegistry kullanıyor. saveAllState() ve restoreSavedState() yöntemleri de FragmentController ürününde kullanımdan kaldırılmıştır. FragmentActivity dışında parçaları barındırmak için FragmentController kullanıyorsanız FragmentHostCallbacks uygulamanız SavedStateRegistryOwner gerekir. (Iba68e, b/188734238)

Hata Düzeltmeleri

  • Birden fazla arka yığını destekleme kapsamında saveBackStack() çağrısının, replace() kullanan bir FragmentTransaction çalıştırmayla aynı anda yapıldığında başarısız olması sorunu düzeltildi. (I73137)
  • Birden fazla arka yığın desteği için restoreBackStack() API kullanılırken birden fazla işlem içeren kaydedilmiş bir geri yığını manuel olarak geri yüklendikten sonra ortaya çıkan NullPointerException düzeltildi. Bu ayrıca, tüm işlemler için setReorderingAllowed(true) kontrol edilmemesine neden olan bir sorunu da düzeltti. (I8c593)
  • FragmentManager ürününün, bu parçalar FragmentManager ürününden kaldırıldıktan sonra bile parçaların önceden kaydedilmiş durumlarını hatalı bir şekilde geri yüklemeye devam etmesi ve böylece kayıtlı durumun zaman içinde sürekli olarak büyümesine neden olması sorunu düzeltildi. (I1fb8e)

Sürüm 1.4.0-alpha03

16 Haziran 2021

androidx.fragment:fragment:1.4.0-alpha03, androidx.fragment:fragment-ktx:1.4.0-alpha03 ve androidx.fragment:fragment-testing:1.4.0-alpha03 yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • Tüm Fragment StrictMode Violation sınıfları, ihlalin ayrıntılarını açıklayan daha ayrıntılı hata mesajlarıyla güncellendi. (b/187871638)
    • FragmentTagUsageViolation artık, parçanın ekleneceği üst kapsayıcıyı kapsayıcıyla ilgili daha ayrıntılı bir hata mesajı içermektedir. (Ic33a7)
    • WrongFragmentContainerViolation artık, parçanın eklendiği kapsayıcıyı içeren daha ayrıntılı bir hata mesajı sunuyor. (Ib55f8)
    • TargetFragmentUsageViolation kullanım örneği sınıflarında artık, ihlale neden olan parçayı ve içerdiği diğer bilgileri içeren daha ayrıntılı hata mesajları bulunmaktadır. (Icc6ac)
    • RetainInstanceUsageViolation kapsamını genişleten sınıflarda artık, ihlale neden olan parçayı içeren daha ayrıntılı hata mesajları bulunmaktadır. (I6bd55)
    • FragmentReuseViolation artık, parçanın önceki kimliğini içeren daha ayrıntılı hata mesajına sahip. (I28ce2)
    • SetUserVisibleHintViolation artık, kullanıcı tarafından görülebilen ipucunun neye ayarlandığını içeren daha ayrıntılı bir hata mesajı içeriyor. (Ib2d5f)

Davranış Değişiklikleri

  • FragmentContainerView cihazında fitsSystemWindows çağrısına ilişkin kısıtlama geri alındı. Bu durum artık uygulamanızın kilitlenmesine neden olmuyor. (6b8ddd, b/190622202)

Hata Düzeltmeleri

  • Parça 1.3.5'dan: aosp/1679887 tarafından Parça 1.3.4'da tanıtılan paylaşılan öğe geçişlerindeki bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" aracılığıyla veya dolaylı olarak bir transitionName ya da background ile ayarlanır) doğru şekilde ele alıyor ve paylaşılan öğeler artık IndexOutOfBoundsException öğelerini bildirmeyecek. (I16484, b/188679569, b/188969304)
  • Kaldıran bir parçayı gizlemeye çalıştığınızda FragmentManager artık kilitlenmez. (I573dd, b/183634730)
  • Üst düzey bir değişken değerlendirilirken OnCreateDialogIncorrectCallback hata analizi denetimi artık daha fazla kilitlenmeyecektir. (0a9efa, b/189967522)

Sürüm 1.4.0-alpha02

2 Haziran 2021

androidx.fragment:fragment:1.4.0-alpha02, androidx.fragment:fragment-ktx:1.4.0-alpha02 ve androidx.fragment:fragment-testing:1.4.0-alpha02 yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • Şu anda kullanılan yüksek düzey mod politikasından bağımsız olarak, günlük kaydı FragmentManager üzerinden etkinleştirildiğinde FragmentStrictMode artık her zaman ihlalleri günlüğe kaydedecek. (I02df6, b/187872638)
  • FragmentStrictMode artık belirli Fragment sınıflarının katı kurallı Violation modlarından muaf tutulmasını destekler ve bu sınıfın cezaları atlamasına olanak tanır. (Ib4e5d, b/184786736)

  • FragmentStrictMode Violation sınıfı, her ihlale göre yapı bilgileri eklenecek şekilde genişletildi. Bu sayede, ihlale neden olan parçayla (If5118, b/187871150) birlikte ihlalin nedenini tam olarak doğrulayabilirsiniz. Her Violation şunları içerir:

    • WrongFragmentContainerViolation artık Fragment öğesinin eklenmeye çalıştığı ViewGroup öğesini içeriyor. (I83c75, b/187871150)
    • TargetFragmentUsageViolationSetTargetFragmentUsageViolation, GetTargetFragmentUsageViolation ve GetTargetFragmentRequestCodeUsageViolation olarak genişletildi ve SetTargetFragmentUsageViolation hedef parça ve istek kodunu içeriyor. (I741b4, b/187871150)
    • SetUserVisibleHintViolation artık setUserVisibleHint() içine aktarılan boole değerini içeriyor. (I00585, b/187871150)
    • FragmentTagUsageViolation artık <fragment> etiketinin bir parçayı içine genişletmeye çalıştığı ViewGroup'u içeriyor.(I5dbbc, b/187871150)
    • FragmentReuseViolation artık, ihlale neden olan önceki Fragment örneğinin benzersiz kimliğini içeriyor. (I0544d, b/187871150)
    • RetainInstanceUsageViolation artık soyuttur ve ihlal türü için iki durumu temsil eden SetRetainInstanceUsageViolation ve GetRetainInstanceUsageViolation adlı iki alt sınıfa sahiptir. (Ic81e5, b/187871150)

Davranış Değişiklikleri

  • FragmentContainerView artık fitsSystemWindow özelliğini programatik olarak veya XML aracılığıyla değiştirmeye çalışırken bir istisna bildiriyor. Ekler, her bir parçanın görünümüne göre işlenmelidir. (Ie6651, b/187304502)

Sürüm 1.4.0-alpha01

18 Mayıs 2021

androidx.fragment:fragment:1.4.0-alpha01, androidx.fragment:fragment-ktx:1.4.0-alpha01 ve androidx.fragment:fragment-testing:1.4.0-alpha01 yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • FragmentContainerView artık kapsayıcıya en son eklenen parçayı döndüren bir getFragment() yöntemi sunuyor. Bu, FragmentContainerView kimliğiyle findFragmentById() ile aynı mantığı kullanır ancak çağrının zincirleme olarak bağlanmasına izin verir. (Ife17a, b/162527857)

    val navController = binding.container.getFragment<NavHostFragment>().navController
    
  • Fragments geçişinde temanızdan alınan standart Etkinlik-geçiş animasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtmek için FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE} eklendi. (I46652)

Birden çok arka grup

FragmentManager, addToBackStack() kullanılan parça işlemlerinden oluşan bir arka yığın sağlar. Böylece, parçalarınızın durumlarını uygun şekilde geri yükleyebilmeleri için Parçalarla durumu kaydetme mekanizmalarını kullanarak söz konusu işlemleri açabilir ve önceki duruma dönebilirsiniz.

Bu sürüm, saveBackStack(String name) ve restoreBackStack(String name) olmak üzere iki yeni FragmentManager API'si sağlayarak bu mekanizmaların kapsamını genişletmektedir. Bu API'ler, FragmentTransaction ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack() ile aynı name özelliğini kullanır. Böylece, daha sonra bu işlemleri ve parçalarını durumlarıyla birlikte geri yüklemenize olanak tanır. Böylece, mevcut arka yığını kaydederek ve kaydedilmiş bir arka yığını geri yükleyerek birden fazla arka grup arasında etkili bir şekilde geçiş yapabilirsiniz.

saveBackStack(), eşzamansız olmasıyla popBackStack() ile benzer şekilde çalışır. Tüm parça işlemlerinin geri alınan ("aktarılmış") bu ada geri dönmesi ve eklenen parçaların yok edilip kaldırılmasıyla sonuçlanır, ancak bazı önemli farklılıklar vardır:

  • saveBackStack() her zaman kapsayıcıdır.
  • Belirtilen ad arka yığında bulunamazsa veya null bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösterecek popBackStack() işlevinin aksine, daha önce addToBackStack() kullanarak tam, null olmayan adla bir parça işlemi gerçekleştirmediyseniz saveBackStack() hiçbir şey yapmaz.
  • Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Diğer bir deyişle, her parçanın Görüntüleme durumu depolanır, her parçanın onSaveInstanceState() durumu çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tüm ViewModel örnekleri korunur (ve onCleared() bunların üzerinde çağrılanmaz).

saveBackStack() ile kullanılabilecek parça işlemleri belirli ölçütleri karşılamalıdır:

  • İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesini sağlamak için her parça işleminde setReorderingAllowed(true) kullanılmalıdır.
  • Kaydedilen işlem grubu, araya giren süre içinde arka grupta ne tür değişiklikler yapılmış olursa olsun, daha sonra geri yüklenebilmesi için bağımsız olmalıdır (yani, söz konusu işlem grubunun dışındaki parçalara açıkça başvuruda bulunmamalıdır).
  • Kaydedilen hiçbir parça, saklanan parça olamaz veya arka yığın kaydedildikten sonra FragmentManager öğesinin kaydedilen parçalara referans döndürmemesini sağlamak için geçişli alt parça grubunda tutulmuş bir parça içeremez.

Daha önce aynı adla saveBackStack() çağrısı yapmadıysanız restoreBackStack(), saveBackStack() operatörüne benzer şekilde hiçbir işlem yapmaz. (b/80029773)

Parça StrictMode

FragmentStrictMode API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılan parça API'leri çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. Hangi kontrollerin etkinleştirildiğini ve hangi "cezaların" tetiklendiğini kontrol eden FragmentStrictMode.Policy, FragmentManager üzerinde yeni setStrictModePolicy() yöntemiyle ayarlanabilir. Bu politika hem söz konusu FragmentManager öğesi hem de kendi benzersiz politikasını ayarlamayan tüm alt parça yöneticileri için geçişli olarak geçerlidir. (#123, #131, #150, b/143774122)

  • detectFragmentReuse(), daha önce kaldırılmış bir Fragment örneğinin bir FragmentManager öğesine yeniden eklenip eklenmediğini tespit eder. Bir FragmentManager örneği silindikten ve kaldırıldıktan sonra Fragment örneğiyle hiçbir zaman etkileşimde bulunmamalı veya örneğe referans saklamamalısınız. (#142, b/153738653)
  • detectFragmentTagUsage(), düzen XML'nizde <fragment> etiketini kullandığınızı algılar. Düzeninizin bir parçası olarak parçaları şişirirken her zaman FragmentContainerView kullanmanız gerekir. (#141, b/153738235)
  • detectWrongFragmentContainer(), FragmentContainerView olmayan bir kapsayıcıya parça eklediğinizde algılar. Düzeninizdeki parçalar için kapsayıcı olarak her zaman FragmentContainerView kullanmanız gerekir. (#146, b/181137036)
  • detectRetainInstanceUsage(), kullanımdan kaldırılan setRetainInstance() veya getRetainInstance() API'lerini kullandığınızı algılar. (#140, b/153737954)
  • detectSetUserVisibleHint(), kullanımdan kaldırılan setUserVisibleHint() API'yi kullandığınızı algılar. (#136, b/153738974)
  • detectTargetFragmentUsage(), kullanımdan kaldırılan setTargetFragment(), getTargetFragment() veya getTargetRequestCode() API'lerini kullandığınızı algılar. (#139, b/153737745)

API Değişiklikleri

Yeni Lint kontrolleri

  • UseGetLayoutInflater Lint kontrolü artık bir DialogFragment içinde LayoutInflater.from(Context) kullanıldığında uyarıda bulunur. LayoutInflater için uygun olanı almak için her zaman iletişim parçasının getLayoutInflater() yöntemini kullanmanız gerekir. (#156, b/170781346)
  • DialogFragmentCallbacksDetector Lint kontrolü, artık bir DialogFragment öğesinin onCreateDialog() yönteminde setOnCancelListener veya setOnDismissListener çağrılırken uyarı verir. Bu işleyiciler DialogFragment öğesinin kendisine aittir ve bu geri çağırmaları almak için onCancel() ve onDismiss() öğelerini geçersiz kılmanız gerekir. (#171, b/181780047, b/187524311)

Hata Düzeltmeleri

  • Parça 1.3.4'ten: ViewModelProvider ile ViewTreeViewModelStoreOwner.get() API veya bir Parça içinde viewModel() Jetpack Compose yöntemi kullanıldığında Parça 1.3.3 içinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları, artık getDefaultViewModelProviderFactory() değerini geçersiz kılarsa Fragment'ınız tarafından sağlanan ViewModelProvider.Factory değerini doğru bir şekilde kullanır (@AndroidEntryPoint ek açıklamalı Fragment'ların Hilt kullanırken yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment'ın görünümüyle birlikte durumunu kaydedip geri yükleyen bir SavedStateViewModelFactory varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368)
  • Fragment 1.3.4'ten itibaren: API 29'da FragmentContainerView kullanılırken ekler artık süresiz olarak gönderilmeyecek ve BottomNavigationBar ve FloatingActionButton örneklerindeki sorunları düzeltecektir. (I1bb78, b/186012452)
  • Parça 1.3.4'ten: Artık süreç sonlandırıldıktan sonra Parcelable öğenizi parça sonuç paketinden alabilirsiniz. (I65932, b/187443158)
  • Fragment 1.3.4'ten itibaren: Bir ViewGroup'ta paylaşılan öğe geçişi yaparken, ViewGroup transitionGroup değeri false (yanlış) değerine ayarlanmışsa artık düzgün bir şekilde geçiş yapacaktır. (I99675)

Harici Katkı

Sürüm 1.3

Sürüm 1.3.6

21 Temmuz 2021

androidx.fragment:fragment:1.3.6, androidx.fragment:fragment-ktx:1.3.6 ve androidx.fragment:fragment-testing:1.3.6 yayınlandı. 1.3.6 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Parçadan 1.4.0-alpha03: Kaldıran bir parçayı gizlemeye çalıştığınızda FragmentManager artık kilitlenmez. (I573dd, b/183634730)
  • Kök görünümü transitionGroup=”true” ayarlandığında, hide() kullanılırken Parçanın görünümü artık düzgün bir şekilde GONE olarak ayarlanıyor. (aosp/1766655, b/193603427)
  • FragmentActivity, yaşam döngüsündeki ilk işlemi geçersiz kıldığından artık her zaman kayıtlı durumun kilidini açıyor. (I6db7a)

Bağımlılık güncellemesi

Sürüm 1.3.5

16 Haziran 2021

androidx.fragment:fragment:1.3.5, androidx.fragment:fragment-ktx:1.3.5 ve androidx.fragment:fragment-testing:1.3.5 yayınlandı. 1.3.5 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • aosp/1679887 tarafından Parça 1.3.4'da sunulan paylaşılan öğe geçişlerindeki bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" aracılığıyla veya dolaylı olarak bir transitionName ya da background ile ayarlanır) doğru şekilde ele alıyor ve paylaşılan öğeler artık IndexOutOfBoundsException öğelerini bildirmeyecek. (I16484, b/188679569, b/188969304)

Sürüm 1.3.4

18 Mayıs 2021

androidx.fragment:fragment:1.3.4, androidx.fragment:fragment-ktx:1.3.4 ve androidx.fragment:fragment-testing:1.3.4 yayınlandı. 1.3.4 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • ViewModelProvider ile ViewTreeViewModelStoreOwner.get() API'si kullanıldığında veya Hilt kullanırken bir Fragment içinde viewModel() için Jetpack Compose yöntemi kullanılırken Fragment 1.3.3 öğesinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları, artık getDefaultViewModelProviderFactory() değerini geçersiz kılarsa Fragment'ınız tarafından sağlanan ViewModelProvider.Factory değerini doğru bir şekilde kullanır (@AndroidEntryPoint ek açıklamalı Fragment'ların yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment'ın görünümüyle birlikte durumunu kaydedip geri yükleyen bir SavedStateViewModelFactory varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368)
  • API 29'da FragmentContainerView kullanıldığında, inset'ler artık süresiz olarak gönderilmez ve BottomNavigationBar ve FloatingActionButton örnekleriyle ilgili sorunları düzeltir. (I1bb78, b/186012452)
  • Artık süreç sonlandırıldıktan sonra Parselable dosyanızı parça sonuç paketinden alabilirsiniz. (I65932, b/187443158)
  • Bir ViewGroup'ta paylaşılan öğe geçişi yaparken, ViewGroup için transitionGroup yanlış değerine ayarlanırsa artık düzgün bir şekilde geçiş yapılır. (I99675)

Sürüm 1.3.3

21 Nisan 2021

androidx.fragment:fragment:1.3.3, androidx.fragment:fragment-ktx:1.3.3 ve androidx.fragment:fragment-testing:1.3.3 yayınlandı. 1.3.3 sürümü bu kayıtları içerir.

Yeni Özellikler

  • SavedStateViewModelFactory kullanımı, artık Fragment Görünümü ile ViewTreeSavedStateRegistryOwner.get() kullanılarak döndürülen SavedStateRegistryOwner ile kullanıldığında da çalışmaktadır. (I21acf, b/181577191)

Hata Düzeltmeleri

  • 1.3.2 Parçasında sunulan ve NavHostFragment tarafından kullanılanlar gibi setPrimaryNavFragment işlemi içeren bir FragmentTransaction pop-up'ı açılırken popEnter animasyonlarının çalışmamasına neden olan bir regresyon düzeltildi. (I38c87, b/183877426)
  • FragmentContainerView artık her Fragment öğesinin yeni bir WindowInsets grubu dağıtılmasını sağlayarak her bir parçanın ekleri bağımsız olarak tüketmesini sağlıyor. (I63f68, b/172153900)
  • DialogFragment, özel Dialog sınıfınızdaki kapsayıcıyla aynı kimliğe sahip kapsayıcıya bir alt parçanın eklendiği durumları düzgün şekilde ele alıyor ve BottomSheetDialog gibi iletişim kutuları tarafından dahili olarak kullanılan kimlikleri yeniden kullanırken görünüm hiyerarşisi sorunlarını düzeltiyor. (Ie6279, b/180021387)
  • FragmentManager.dump() artık etkin parçalar listesindeki ilk parçaya düzgün bir şekilde girinti ekliyor. (If5c33, b/183705451)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Yeni parça durumu yöneticisi artık gizleme işlemleriyle çıkış geçişlerini düzgün bir şekilde işliyor. (I9e4de, b/184830265)

Sürüm 1.3.2

24 Mart 2021

androidx.fragment:fragment:1.3.2, androidx.fragment:fragment-ktx:1.3.2 ve androidx.fragment:fragment-testing:1.3.2 yayınlandı. 1.3.2 sürümü bu kayıtları içerir.

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Hem popBackStack() hem de commit() işlemleri birlikte çalıştırılırken son işlem, bazı pop animasyonlar ve bazı animasyonlar çalıştırmak yerine artık tüm animasyonların yönünü ayarlar. (I7072e, b/181142246)
  • Paylaşılan öğe hiyerarşisinde yer alan görünümlerin geçiş adları, paylaşılan öğe geçişi yapılırken artık silinmez. (I4d4a6, b/179934757)

Bağımlılık Güncellemeleri

  • Bölüm artık Etkinlik 1.2.2'ye bağlı olup Fragment 1.3.1 veya sonraki bir sürümü kullanırken Etkinlik'in InvalidFragmentVersionForActivityResult lint kontrolüyle ilgili bir sorunu düzeltmektedir.
  • Parça artık Yaşam Döngüsü 2.3.1'e bağlıdır.

Sürüm 1.3.1

10 Mart 2021

androidx.fragment:fragment:1.3.1, androidx.fragment:fragment-ktx:1.3.1 ve androidx.fragment:fragment-testing:1.3.1 yayınlandı. 1.3.1 sürümü bu kayıtları içerir.

Yeni Özellikler

  • DialogFragment içindeki iletişim kutuları artık ViewTree sahiplerine DecorView aracılığıyla erişebilir ve böylece DialogFragment, ComposeView ile kullanılabilir. (Ib9290, b/180691023)

Hata Düzeltmeleri

  • FragmentContainerView kullanarak zaten RESUMED etkinliği haline getirilmiş parçalar artık bir yapılandırma değişikliğinden sonra düzgün bir şekilde gösteriliyor. (Ie14c8, b/180538371)
  • Parçanın sonunda artık ekstra bir } yok toString() (I54705, b/177761088)
  • FragmentActivity alanındaki geçersiz kılınan yöntemler artık javaDoc temel yöntemini (I736ce, b/139548782) düzgün bir şekilde devralmaktadır
  • setFragmentResult ve setFragmentResultListener belgeleri, parametre dokümanlarını artık null değer atanabilir değerleri (I990ba, b/178348386) kabul etmediklerini yansıtacak şekilde güncellediler.

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • mFocusedView nedeniyle parçalarda oluşan bellek sızıntısı düzeltildi (Ib4e9e, b/179925887)
  • Gösterme/gizleme işlemlerini kullanırken parçalar artık düzgün bir şekilde onCreateOptionsMenu çağırıyor (I8bce8, b/180255554)
  • Parça yerleştirilmeden önce başlayan geçişlere sahip alt parçalar artık düzgün bir şekilde RESUMED özelliğine erişebilir (Ic11e6, b/180825150)
  • <fragment> etiketi kullanılarak şişirilen parçalar artık her zaman RESUMED (I452ac, (I9fa49) haline gelir

Bağımlılık Güncellemeleri

Sürüm 1.3.0

10 Şubat 2021

androidx.fragment:fragment:1.3.0, androidx.fragment:fragment-ktx:1.3.0 ve androidx.fragment:fragment-testing:1.3.0 yayınlandı. 1.3.0 sürümü bu kayıtları içerir.

1.2.0 sürümünden beri yapılan önemli değişiklikler

  • Yeni Durum Yöneticisi: FragmentManager ürününün dahili öğelerinin önemli ölçüde yeniden yazılması; yaşam döngüsü olaylarının, animasyonların ve geçişlerin gönderilmesi ve ertelenmiş parçaların işlenme şekliyle ilgili çok sayıda sorunu düzeltti.
  • Etkinlik Sonucu API'sı Entegrasyonu: 1.2.0 Etkinliği'nde startActivityForResult()+onActivityResult() ve Fragment'ınızdaki yöntemleri geçersiz kılmadan requestPermissions()+onRequestPermissionsResult() akışlarını işlemek için bu akışların test edilmesi için kancalar sağlayan ActivityResultRegistry API desteği eklendi. Güncellenen Etkinlikten Sonuç Alma konusuna bakın.

    • Bu sürümde, geçersiz istek kodları ve Activity Result API'nin önceki FragmentActivity sürümlerinde çalışmasını engelleyen izin isteklerinin gönderilmesiyle ilgili bir dizi sorun düzeltilmiştir. FragmentActivity veya AppCompatActivity'da Activity Result API'lerini kullanmak için Fragment 1.3.0 sürümüne geçmeniz gerekir.
  • Fragment Result API: FragmentManager'da yeni API'ler aracılığıyla sonuçları iki parça arasında geçirme desteği eklendi. Bu yöntem, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragmentler ve parçalar için çalışır ve sonuçların yalnızca Parçanıza en az STARTED olduğunda gönderilmesini sağlar. Hedef parça API'leri kullanımdan kaldırılmış ve yerini bu yeni API'ler almıştır. Fragment Result API'yi kullanarak sonuçları alma konusuna bakın.

  • FragmentOnAttachListener: FragmentActivity ve Fragment için onAttachFragment() geri çağırma desteği sonlandırıldı. Daha esnek bir alternatif sunmak amacıyla yeni bir FragmentOnAttachListener eklendi. Böylece onAttachFragment() yetkisini, ayrı, test edilebilir dinleyicilere ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara işleyici ekleme konusunda destek alabilirsiniz.

  • FragmentScenario İyileştirmeler: fragment-testing yapısındaki FragmentScenario sınıfı Kotlin'de yeniden yazıldı ve çeşitli iyileştirmeler yapıldı:

    • FragmentScenario, moveToState() uygulamasını uygulamak için artık setMaxLifecycle() kullanıyor. Böylece tüm API düzeylerinde tutarlı davranış sağlanır ve Fragment'ın durumu temel Etkinlikten ayrılır.
    • FragmentScenario artık her bir Lifecycle.State öğesine ilk kez geçmeden önce parçanın durumunun doğrulanmasını desteklemek için ilk Lifecycle.State ayarlamayı destekliyor.
    • Artık onFragment için FragmentScenario API'nin, Kotlin'in yeniden düzenlenmiş uzantı yöntemi withFragment biçiminde olup bir değer döndürmenizi sağlayan bir alternatifi bulunmaktadır. Söz konusu blokta ortaya çıkan istisnaları tekrar kaldırır.
  • ViewTree Desteği: Fragment artık Yaşam Döngüsü 2.3.0 ve Kayıtlı Durum 1.1.0'a eklenen ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) ve ViewTreeSavedStateRegistryOwner API'lerini desteklemektedir. Böylece,FragmentViewModelStoreOwnerSavedStateRegistryOwnerLifecycleOwnerView

  • TRANSIT_ animasyon değişiklikleri: Parçanın varsayılan efektleri olan TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE artık Animation yerine Animator kullanıyor. Bu animatörleri oluşturmak için kullanılan kaynaklar artık gizlidir.

  • setRetainInstance() desteğinin sonlandırılması: Fragments'teki setRetainInstance() yöntemi kullanımdan kaldırılmıştır. ViewModels'in kullanıma sunulmasıyla birlikte geliştiriciler; Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek, durumu korumak için belirli bir API'ye sahiptir. Bu, geliştiricilerin korunmuş durumda olmayan normal bir Fragment kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece yaygın bir sızıntı kaynağını önlerken, tek bir oluşumun yararlı özelliklerini korur ve korunmuş durumun (yani, aldığı ViewModel oluşturucuyu ve onCleared() geri çağırmasını) korur.

  • ViewPager 1 bağdaştırıcısının kullanımdan kaldırılması: ViewPager2 1.0.0'ın kullanıma sunulmasıyla birlikte, ViewPager ile etkileşimde bulunmak için kullanılan FragmentPagerAdapter ve FragmentStatePagerAdapter sınıflarının desteği sonlandırılmıştır. ViewPager'dan ViewPager2'ye taşıma konusuna bakın.

Sürüm 1.3.0-rc02

27 Ocak 2021

androidx.fragment:fragment:1.3.0-rc02, androidx.fragment:fragment-ktx:1.3.0-rc02 ve androidx.fragment:fragment-testing:1.3.0-rc02 yayınlandı. Sürüm 1.3.0-rc02 bu kayıtları içerir.

Hata Düzeltmeleri

  • Yapılandırma değişikliğinden sonra üst DialogFragment öğesinin bir alt DialogFragment üzerinde görünmesiyle ilgili sorun düzeltildi; alt iletişim kutusu parçaları artık her zaman bir üst iletişim kutusu parçasının üzerinde görünüyor. (I30806, b/177439520)
  • Animation ile hide işlemi yapmanın, gizlenen parçanın animasyonun sonunda yanıp sönmesine neden olmasıyla ilgili sorun düzeltildi. (I57e22, b/175417675)
  • Görünüm hiyerarşisi eklenmeden önce geçişleri olan parçalar artık düzgün şekilde RESUMED değerine ulaşır. (I1fc1d, b/177154873)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Fragment'ın Lifecycle görünümü artık, Lifecycle öğesi CREATED ulaşmadan önce Fragment'ın görünümünün kaldırıldığı durumları düzgün şekilde ele alıyor ve "no event down from INITIALIZED" (INITIALIZED sonrasından gelen olay yok) istisnalarını atlatıyor. (eda2bd, b/176138645)
  • Animator kullanan parçalar artık FragmentContainerView kullanılırken doğru sırada görünüyor. (Id9aa3, b/176089197)

Sürüm 1.3.0-rc01

16 Aralık 2020

androidx.fragment:fragment:1.3.0-rc01, androidx.fragment:fragment-ktx:1.3.0-rc01 ve androidx.fragment:fragment-testing:1.3.0-rc01 yayınlandı. Sürüm 1.3.0-rc01 bu kayıtları içerir.

Hata Düzeltmeleri

  • onPrepareOptionsMenu() artık onCreateOptionsMenu() ile aynı mantığı izler ve bir üst parça setMenuVisibility(false) çağırdığında artık çağrılmaz. (Id7de8, b/173203654)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • FragmentContainerView öğesine Animation içeren bir parça eklendiğinde ve ardından ekleme işlemi bir pop işlemiyle kesintiye uğradığında yaşanan sızıntı ve görsel yapı düzeltildi. (I952d8)
  • Parçanın onCreate() veya onViewCreated() yöntemleri sırasında değiştirilmesi durumunda görünümün görünüm hiyerarşisinde kalması sorunu düzeltildi. (I8a7d5)
  • Devam ettirildiğinde odak artık Parça kök görünümlerine düzgün bir şekilde geri yüklenir. (Ifc84b)
  • Pop ve değiştirme işlemlerinin aynı parçada birleştirilmesi, artık uygun animasyonları gösterir (Ifd4e4, b/170328691)

Sürüm 1.3.0-beta02

2 Aralık 2020

androidx.fragment:fragment:1.3.0-beta02, androidx.fragment:fragment-ktx:1.3.0-beta02 ve androidx.fragment:fragment-testing:1.3.0-beta02 yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • FragmentScenario, FragmentAction için Kotlin 1.4'ün işlevsel arayüzleri kullanılarak kaynak ve ikili uyumluluğu koruyarak tamamen Kotlin'e dönüştürüldü. (I19d31)

Davranış Değişiklikleri

  • class veya android:name özelliğini kullanarak bir parçayı genişletmeyen FragmentContainerView'lar artık FragmentActivity dışında kullanılabilir. (Id4397, b/172266337)
  • Bir parçanın maksimum yaşam döngüsünü DESTROYED olarak ayarlamaya çalıştığınızda IllegalArgumentException (Ie7651, b/170765622) hatası oluşur.
  • Bir Fragment senaryosunu DESTROYED durumuyla başlatmak artık IllegalArgumentException hatasına neden olacaktır (I73590, b/170765622)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Animator veya TRANSIT_FRAGMENT_ seçeneklerinden birini kullanan bir parça geçişini kesintiye uğratmanız durumunda görünümün son durumuna ulaşmaması sorunu düzeltildi. (I92426, b/169874632)
  • Çıkışı Animation olan parçaların düzgün şekilde yok edilmesini engelleyen bir sorun düzeltildi. (I83d65)
  • Efektleri tersine çevrilmiş olan parçalardan çıkılması artık doğru bir şekilde iptal edilir ve uygun giriş efektiyle yeniden başlatılır. (I62226, b/167092035)
  • hide() çıkışının Animator çıkışının çalışmamasına neden olan sorun düzeltildi. (Id7ffe)
  • Parçalar artık ertelendiğinde ve hemen başladığında düzgün bir şekilde görünüyor. (Ie713b, b/170022857)
  • Bir animasyon sırasında odaklanılan görünümünü kaldıran parçalar, artık RESUMED değerine (I38c65, b/172925703) ulaştığında odağı ayrılmış görünüme geri yüklemeye çalışmayacaktır.

Harici Katkı

  • FragmentFactory artık farklı ClassLoader örnekleri için parça sınıflarını ayrı ayrı önbelleğe alıyor. Teşekkürler Simon Schiller. (#87, b/113886460)

Sürüm 1.3.0-beta01

1 Ekim 2020

androidx.fragment:fragment:1.3.0-beta01, androidx.fragment:fragment-ktx:1.3.0-beta01 ve androidx.fragment:fragment-testing:1.3.0-beta01 yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Parça CREATED konumuna taşınmadığı sürece setMaxLifecycle() artık Lifecycle durumunu INITIALIZING olarak ayarlamayı destekliyor. (b/159662173)

API Değişiklikleri

Davranış Değişiklikleri

  • Parça kaynak dosyaları doğru şekilde gizli hale getirildi. (aosp/1425237)

Hata Düzeltmeleri

  • <fragment> etiketi kullanılarak şişirilen parçalar artık "STARTED"e (I02f4c) geçmeden önce görünümleri bir kapsayıcıya eklenene kadar düzgün bir şekilde bekleyecek
  • Görünür olan ve daha sonra setMaxLifecycle() ile CREATED arasında olan parçalar artık çıkış efektlerini düzgün bir şekilde çalıştırıyor. (b/165822335)
  • Arka yığına eklenmemiş ayrılmış bir parçanın kaldırılması artık bellek sızıntısına neden olmaz. Nicklas Ansman Giertz'in izniyle! (b/166489383)
  • Etkin parçalar artık her zaman boş olmayan bir FragmentManager değerine sahip olacak ve null olmayan FragmentManager içeren parçalar her zaman etkin olarak kabul edilecektir. (aosp/1422346)
  • Parça varsayılan efektleri TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE, artık Animation yerine Animator kullanıyor. (b/166155034)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Artık parçalar animasyonlarına başlamadan hemen önce görünüm odağı durumlarını düzgün bir şekilde geri yükler. (Icc256)
  • Yalnızca paylaşılan öğe geçişi olan parçalar özel efektlerini düzgün şekilde tamamlar, yani nihai durumuna geçer (Iaebc7, b/166658128)
  • Parçalı görünümler artık kaldırılmadan önce her zaman container'dan kaldırılıyor. (Id5876)
  • Yeni durum yöneticisi artık giren görünümü eklemeden önce mevcut parça görünümünü tutarlı bir şekilde kaldırıyor. (I41a6e)
  • Bir parça görünümünün görünürlüğünde yapılan açık değişiklikler, artık yeni durum yöneticisi tarafından dikkate alınıyor. Bu, animasyon başlamadan önce giriş parçasının görünümünü INVISIBLE değerine ayarlarsanız gerçekte görünmez olarak kalacağı anlamına gelir. (b/164481490)
  • Parçalar artık Animations yerine Animators önceliğine sahip. Yani her ikisini de içeren bir parça yalnızca Animator öğesini çalıştırır ve Animation öğesini yoksayar. (b/167579557)
  • Yeni durum yöneticisi artık animasyonlar girerken parçaların yanıp sönmesine neden olmuyor. (b/163084315)

Bilinen Sorun

Yeni durum yöneticisini kullanırken, özel efekt girerken önceki parçaya dönmek yerine geri tuşuna basarsanız eski parça hiçbir zaman yeniden eklenmez ve boş ekran ortaya çıkar. (b/167259187, b/167092035, b/168442830)

Sürüm 1.3.0-alpha08

19 Ağustos 2020

androidx.fragment:fragment:1.3.0-alpha08, androidx.fragment:fragment-ktx:1.3.0-alpha08 ve androidx.fragment:fragment-testing:1.3.0-alpha08 yayınlandı. Sürüm 1.3.0-alpha08 bu kayıtları içerir.

Yeni Durum Yöneticisi

Bu sürümde, FragmentManager platformu dahili durum yönetiminde kapsamlı bir yeniden düzenleme yer alır. Bu değişiklik yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin dağıtımını ve ertelenen işlemlerin işlenme şeklini etkiler. Bu ayar varsayılan olarak etkindir. Daha fazla ayrıntı için Fragments: Rebuilding the Internals blog yayınına bakın. (b/139536619, b/147749580)

  • FragmentManager'ın yeni durum yöneticisini kullanıp kullanmadığını kontrol etmek için FragmentManager.enableNewStateManager(boolean) öğesindeki deneysel bir API kullanılabilir. (I7b6ee)

Aşağıdaki sorunlar yalnızca yeni durum yöneticisi kullanılırken düzeltilir:

  • replace işleminin önceki parçası, yeni parça başlatılmadan önce doğru şekilde durdurulmuştur. (b/161654580)
  • Parçalar artık aynı parçalarda birden fazla rekabet eden animasyonu engelleyerek, bir Animation öğesinin tüm Transition efektlerini geçersiz kılacağı veya bağımsız bir parçada bir Animator ile Transition öğesinin birlikte çalışacağı durumları önlüyor. (b/149569323)
  • Artık yalnızca son giren parça ve çıkan ilk parça yerine, giren ve çıkan tüm parçalar için enterTransition ve exitTranstion çalıştırılır. (b/149344150)
  • Ertelenen parçalar artık CREATED durumunda takılıp kalmaz, bunun yerine diğer parçalarla birlikte STARTED konumuna taşınır. (b/129035555)
  • FragmentManager ürününün, ertelenmiş bir yeniden sipariş edilen işlemle yeniden sipariş edilmemiş bir işlemi karıştırırken işlemleri sırada dışında yürütmesine neden olan sorun düzeltildi. (b/147297731)
  • Birden fazla parçanın aynı anda patlatılması, parçalar ertelenirken ara parçaların geçici olarak görünmesine neden olmayacak. (b/37140383)
  • FragmentManager, onAttachFragment() geri çağırması içinden findFragmentById() veya findFragmentByTag() çağrılırken artık doğru parçaları döndürüyor. (b/153082833)
  • Parçalar, yerine geçen parça ertelendiğinde, yok edilmekte olan parçalarda onCreateView() çağrısı yapmaz. (b/143915710)
  • Transition ve AndroidX Transition örnekleri birleştirilmeye çalışıldığında görüntülenen hata mesajı artık geçersiz geçişe sahip parçadan bahsediyor. (b/155574969)

Davranış Değişiklikleri

  • Artık bir parçanın onCreate() yaşam döngüsü yönteminde ActivityResultLauncher üzerinde launch() çağırabilirsiniz. (b/161464278)
  • onCreate() tarihinden sonra registerForActivityResult() çağrıldığında, yapılandırma değişikliğinden sonra sessizce veri sağlanmaması yerine, buna izin verilmediğini belirten bir istisna oluşur. (b/162255449)
  • FragmentActivity, FragmentManager durumunu geri yüklemek için artık 1.2.0-alpha08 Etkinliğinde sunulan OnContextAvailableListener API'sini kullanıyor. FragmentActivity alt sınıflarına eklenen tüm işleyiciler, bu işleyiciden sonra çalıştırılır. (I513da)

Hata Düzeltmeleri

  • startIntentSenderForResult() kullanılırken geçirilen ActivityOptions politikası artık dikkate alınıyor. (b/162247961)

Bilinen Sorun

  • Yeni durum yöneticisini kullanırken parçanın kök görünümünün onViewCreated() tarihinden sonra ve onResume() öncesinde doğrudan görünürlüğünü ayarlamak, ayarladığınız görünürlüğün, kök görünümün görünürlüğünü kontrol eden FragmentManager tarafından geçersiz kılınmasına neden olur. Geçici bir çözüm olarak, parçanızın görünürlüğünü değiştirmek için her zaman hide() ve show() işlemlerini kullanmanız gerekir. (b/164481490)

Sürüm 1.3.0-alpha07

22 Temmuz 2020

androidx.fragment:fragment:1.3.0-alpha07, androidx.fragment:fragment-ktx:1.3.0-alpha07 ve androidx.fragment:fragment-testing:1.3.0-alpha07 yayınlandı. Sürüm 1.3.0-alpha07 bu kayıtları içerir.

Yeni Özellikler

  • FragmentScenario, artık Parçayı her zaman RESUMED durumuna taşımak yerine ilk Yaşam Döngüsü durumunun CREATED, STARTED veya RESUMED olarak ayarlanmasını destekler. (b/159662750)
  • onFragment FragmentScenario API'sine, bir değer döndürmenizi sağlayan Kotlin yeniden yapılandırılmış uzantı yöntemi withFragment biçiminde bir alternatif eklendi. Söz konusu blokta ortaya çıkan istisnaları tekrar kaldırır. (b/158697631)

Davranış Değişiklikleri

  • FragmentScenario, moveToState() uygulamasını uygulamak için artık setMaxLifecycle() kullanıyor. Böylece tüm API düzeylerinde tutarlı davranış sağlanır ve Fragment'ın durumu temel Etkinlikten ayrılır. (b/156527405)
  • ViewTreeSavedStateRegistryOwner tarafından döndürülen SavedStateRegistryOwner, artık parça görünümünün Yaşam Döngüsüne bağlıdır. Bu, parçanın görünümüyle aynı anda durumunun kaydedilmesini ve geri yüklenmesini sağlar. (b/158503763)

Hata Düzeltmeleri

  • Parçalar artık ViewCompat.requestApplyInsets() çağrısı yapmadan önce parçanın görünümünün eklenmesini bekler. Böylece, inset isteğinin bırakıldığı durumlardan kaçınılır. (b/158095749)
  • clearFragmentResultListener çağrısı artık yaşam döngüsü gözlemcisini düzgün bir şekilde temizler. (b/159274993)

Sürüm 1.3.0-alpha06

10 Haziran 2020

androidx.fragment:fragment:1.3.0-alpha06, androidx.fragment:fragment-ktx:1.3.0-alpha06 ve androidx.fragment:fragment-testing:1.3.0-alpha06 yayınlandı. 1.3.0-alpha06 sürümü bu kayıtları içerir.

Yeni Özellikler

  • FragmentActivity ve Fragment için onAttachFragment() geri çağırma desteği sonlandırıldı. Daha esnek bir alternatif sunmak amacıyla yeni bir FragmentOnAttachListener eklendi. Bu sayede onAttachFragment() yetkisini, ayrı ve test edilebilir dinleyicilere verebilir ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara dinleyici ekleme desteğinden yararlanabilirsiniz. (I06d3d)

Hata Düzeltmeleri

  • Üst parçaların görüntüleme durumu artık alt parçalarından önce geri yüklenir. DialogFragment, alt parça olarak başka bir DialogFragment gösterdiğinde yapılandırma değişikliğinden sonra ortaya çıkan görsel sıralama sorunu düzeltildi. (b/157195715)
  • UseRequireInsteadOfGet Lint denetiminin, ?. ve !! operatörlerinin zincirleme kullanımlarını doğru şekilde işlememesi sorunu düzeltildi. (b/157677616)

Sürüm 1.3.0-alpha05

20 Mayıs 2020

androidx.fragment:fragment:1.3.0-alpha05, androidx.fragment:fragment-ktx:1.3.0-alpha05 ve androidx.fragment:fragment-testing:1.3.0-alpha05 yayınlandı. Sürüm 1.3.0-alpha05 bu kayıtları içerir.

Yeni Özellikler

API Değişiklikleri

  • setFragmentResult() ve setFragmentResultListener() API'leri artık sırasıyla boş olmayan Bundle ve FragmentResultListener alıyor. Önceden ayarlanmış bir sonucu veya işleyiciyi açık bir şekilde temizlemek için yeni clearFragmentResult() ve clearFragmentResultListener() yöntemlerini kullanın. (b/155416778)
  • Lambda alan setFragmentResultListener() Kotlin uzantıları artık inline olarak işaretlendi. (b/155323404)

Davranış Değişiklikleri

  • Fragment üzerindeki daha önce kullanımdan kaldırılan startActivityForResult(), startIntentSenderForResult() ve requestPermissions artık dahili olarak ActivityResultRegistry kullanmaktadır. Böylece, bu API'leri kullanırken istek kodlarınız için yalnızca alt bitlerin (0xFFFF'ın altında) kullanılmasına ilişkin kısıtlama kaldırılacaktır. (b/155518741)

Belge Güncellemeleri

  • Varsayılan FragmentFactory kullanılırken alt sınıflarınızın bağımsız değişken oluşturucudan çağrılması gerektiğini netleştirmek için Fragment(@LayoutRes int) ve DialogFragment(@LayoutRes int) kurucularıyla ilgili dokümanlar genişletildi. (b/153042497)

Sürüm 1.3.0-alpha04

29 Nisan 2020

androidx.fragment:fragment:1.3.0-alpha04, androidx.fragment:fragment-ktx:1.3.0-alpha04 ve androidx.fragment:fragment-testing:1.3.0-alpha04 yayınlandı. 1.3.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • FragmentManager üzerindeki yeni API'ler aracılığıyla sonuçları iki parça arasında geçirme desteği eklendi. Bu yöntem, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragmentler ve parçalar için çalışır ve sonuçların yalnızca Parçanıza en az STARTED olduğunda gönderilmesini sağlar. (b/149787344)

API Değişiklikleri

  • Hedef parça API'leri kullanımdan kaldırıldı. Parçalar arasında veri aktarmak için bunun yerine yeni Fragment Result API'leri kullanılmalıdır. (b/149787344)
  • Fragment'teki startActivityForResult()/onActivityResult() ve requestPermissions()/onRequestPermissionsResult() API'lerinin desteği sonlandırıldı. Lütfen Etkinlik Sonucu API'lerini kullanın. (aosp/1290887)
  • 1.2.0-alpha04 Etkinliği'ndeki kırıcı değişiklik: prepareCall() yöntemi registerForActivityResult() olarak yeniden adlandırıldı. (aosp/1278717)

Hata Düzeltmeleri

  • Parçanın getViewLifecycleOwner() işlevi, onSaveInstanceState() çağrılmadan önce durdurulur. Bu, parçanın yaşam döngüsünün davranışını yansıtır. (b/154645875)
  • Bir parçada setMenuVisibility(false) çağrısı, artık alt parçaları tarafından sağlanan menülerin görünürlüğünü doğru bir şekilde değiştiriyor. (b/153593580)
  • FragmentContainerView ile DialogFragment görünüm hiyerarşisine parça eklenirken oluşan illegalStateException düzeltildi. (b/154366601)
  • Parçalar üzerindeki getDefaultViewModelProviderFactory() yöntemi, parçalarınızı bir etkinliğin dışında barındırırken artık kilitlenmez. (b/153762914)

Sürüm 1.3.0-alpha03

1 Nisan 2020

androidx.fragment:fragment:1.3.0-alpha03, androidx.fragment:fragment-ktx:1.3.0-alpha03 ve androidx.fragment:fragment-testing:1.3.0-alpha03 yayınlandı. Sürüm 1.3.0-alpha03 bu kaydetmeleri içerir.

API Değişiklikleri

  • Fragment üzerindeki prepareCall yöntemleri artık final olarak ayarlandı. (b/152439361)

Hata Düzeltmeleri

  • BottomSheetDialogFragment kullanılırken Parça 1.3.0-alpha02'da ortaya çıkan bir regresyon düzeltildi. (b/151652127, aosp/1263328, aosp/1265163)
  • Yapılandırma değişikliğinden sonra bir parçadan prepareCall kullanılırken yaşanan kilitlenme düzeltildi. (b/152137004)
  • setTargetFragment() kullanılırken paylaşılan öğe ve çıkış geçişlerinin yok sayılmasına neden olan bir sorun düzeltildi. (b/152023196)
  • Parçadan 1.2.4: Fragment ProGuard kuralları, saklanan parçaların kod karartılmasına izin verecek şekilde güncellendi. (b/151605338)
  • Parça 1.2.4'dan: DialogFragment sınıflarında yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğu için FragmentLiveDataObserve Lint kuralı devre dışı bırakıldı. Bu sayede, observe çağrısında this veya viewLifecycleOwner kullanılabilir. (b/151765086)

Bağımlılık Değişiklikleri

  • Parçalar, 1.2.0-alpha02 Etkinliği'nde sunulan Activity Result API'de önemli iyileştirmeler içeren 1.2.0-alpha03 etkinliğine bağlıdır.

Sürüm 1.3.0-alpha02

18 Mart 2020

androidx.fragment:fragment:1.3.0-alpha02, androidx.fragment:fragment-ktx:1.3.0-alpha02 ve androidx.fragment:fragment-testing:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • 1.2.0-alpha02 Etkinliği'nde, startActivityForResult()+onActivityResult() akışlarının yanı sıra Fragment'ınızdaki yöntemleri geçersiz kılmadan requestPermissions()+onRequestPermissionsResult() akışlarının işlenmesi için 1.2.0-alpha02 etkinliğinde sunulan ActivityResultRegistry API desteği eklendi. Ayrıca, bu akışları test etmek için kancalar sağladık. Güncellenen Etkinlikten Sonuç Alma konusuna bakın. (b/125158199)

API Değişiklikleri

  • DialogFragment artık onCreateView() öğesinin varsayılan olarak genişletilmesi gereken düzeni belirten @LayoutRes alan bir kurucu sağlıyor. (b/150327080)
  • onActivityCreated() yöntemi kullanımdan kaldırılmıştır. Parçanın görünümüne dokunan kod onViewCreated() içinde (onActivityCreated() hemen önce çağrılır) ve diğer başlatma kodu onCreate() içinde yapılmalıdır. Özellikle etkinliğin onCreate() işlemi tamamlandığında geri aranmak için etkinliğin onAttach() içinde Lifecycle öğesine bir LifeCycleObserver kaydı olmalı ve onCreate() geri araması alındığında bu öğe kaldırılmalıdır. (b/144309266)

Hata Düzeltmeleri

  • Parça 1.2.3'dan: onCreateDialog() içinden getLayoutInflater() çağrılırken StackOverflowError hatasına neden olan DialogFragment hatası düzeltildi. (b/117894767, aosp/1258664)
  • Parçadan 1.2.3: Kullanılmayan Fragment sınıflarının çıkartılmasını sağlamak için Fragment'ın içerdiği ProGuard kurallarının kapsamı azaltıldı. (b/149665169)
  • Parça 1.2.3'dan: Kotlin özellik adını gölgeleyen bir yerel değişken adı kullanıldığında UseRequireInsteadOfGet Lint kontrolündeki yanlış pozitifler düzeltildi. (b/149891163)
  • 1.2.3 Parçasından: FragmentContainerView, düzen önizlemesinde yanlış oluşturucuyu kullandığı için artık UnsupportedOperationException bildirmiyor. (b/149707833)

Bilinen Sorunlar

  • BottomSheetDialogFragment, iletişim kutusunu artık ekranda doğru şekilde konumlandırmıyor. (b/151652127)

Sürüm 1.3.0-alpha01

4 Mart 2020

androidx.fragment:fragment:1.3.0-alpha01, androidx.fragment:fragment-ktx:1.3.0-alpha01 ve androidx.fragment:fragment-testing:1.3.0-alpha01 yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

API Değişiklikleri

  • Parçalar üzerindeki setRetainInstance() yöntemi kullanımdan kaldırılmıştır. ViewModels'in kullanıma sunulmasıyla birlikte geliştiriciler; Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek, durumu korumak için belirli bir API'ye sahiptir. Bu, geliştiricilerin korunmuş durumda olmayan normal bir Fragment kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece yaygın bir sızıntı kaynağını önlerken, tek bir oluşumun yararlı özelliklerini korur ve korunmuş durumun (yani, aldığı ViewModel oluşturucuyu ve onCleared() geri çağırmasını) korur. (b/143911815)
  • ViewPager2 1.0.0 sürümünün yayınlanmasıyla birlikte, ViewPager ile etkileşim kurmak için kullanılan FragmentPagerAdapter ve FragmentStatePagerAdapter sınıflarının desteği sonlandırılmıştır. ViewPager'dan ViewPager2'ye taşıma konusuna bakın. (b/145132715)

Hata Düzeltmeleri

  • Fragment ProGuard kuralları artık tüm Fragment örnekleri yerine yalnızca kullanılan varsayılan kurucular Fragment sınıflarını tutarak Fragment 1.2.1 içinde başlatılan bir regresyonu düzeltiyor. (b/149665169
  • 1.2.2 Parçası'na eklenen require___() Lint kuralları, gölgelendirilmiş Kotlin özellik adlarıyla aynı adı paylaşan yerel değişkenlerde artık yanlış pozitif sonuç vermez (ör. view). (b/149891163)
  • FragmentContainerView artık Android Studio'da düzen önizlemesini kullanırken UnsupportedOperationException hatası vermiyor. (b/149707833)
  • Durum kaydedildikten sonra eklenen saklanan parçaların sürekli olarak yeniden oluşturulmaması ve her yapılandırma değişikliğinden sonra yok edilmemesine neden olan sorun düzeltildi. (b/145832397)

Sürüm 1.2.5

Sürüm 1.2.5

10 Haziran 2020

androidx.fragment:fragment:1.2.5, androidx.fragment:fragment-ktx:1.2.5 ve androidx.fragment:fragment-testing:1.2.5 yayınlandı. 1.2.5 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Parçanın getViewLifecycleOwner() işlevi, onSaveInstanceState() çağrılmadan önce durdurulur. Bu, parçanın yaşam döngüsünün davranışını yansıtır. Bu özellik daha önce 1.3.0-alpha04 Parçasında yayınlandı. (b/154645875)
  • Bir parçada setMenuVisibility(false) çağrısı, artık alt parçaları tarafından sağlanan menülerin görünürlüğünü doğru bir şekilde değiştiriyor. Bu özellik daha önce 1.3.0-alpha04 Parçasında yayınlandı. (b/153593580)

Sürüm 1.2.4

Sürüm 1.2.4

1 Nisan 2020

androidx.fragment:fragment:1.2.4, androidx.fragment:fragment-ktx:1.2.4 ve androidx.fragment:fragment-testing:1.2.4 yayınlandı. Sürüm 1.2.4 bu kayıtları içerir.

Hata Düzeltmeleri

  • Saklanan parçaların kod karartılmasına izin vermek için Fragment ProGuard kuralları güncellendi. (b/151605338)
  • DialogFragment sınıflarında yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğundan FragmentLiveDataObserve Lint kuralı devre dışı bırakıldı. Bu sayede, observe çağrısında this veya viewLifecycleOwner kullanılabilir. (b/151765086)

Sürüm 1.2.3

Sürüm 1.2.3

18 Mart 2020

androidx.fragment:fragment:1.2.3, androidx.fragment:fragment-ktx:1.2.3 ve androidx.fragment:fragment-testing:1.2.3 yayınlandı. 1.2.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • onCreateDialog() içinden getLayoutInflater() çağrılırken StackOverflowError hatasına neden olan DialogFragment hatası düzeltildi. (b/117894767, aosp/1258665)
  • Kullanılmayan Fragment sınıflarının kaldırılabilmesini sağlamak için Fragment'ın dahil edilen ProGuard kurallarının kapsamı azaltıldı. (b/149665169)
  • Kotlin özellik adını gölgeleyen bir yerel değişken adı kullanıldığında UseRequireInsteadOfGet Lint kontrolündeki yanlış pozitifler düzeltildi. (b/149891163)
  • FragmentContainerView, düzen önizlemesinde yanlış oluşturucuyu kullandığı için artık bir UnsupportedOperationException etiketi vermiyor. (b/149707833)

Sürüm 1.2.2

Sürüm 1.2.2

19 Şubat 2020

androidx.fragment:fragment:1.2.2, androidx.fragment:fragment-ktx:1.2.2 ve androidx.fragment:fragment-testing:1.2.2 yayınlandı. 1.2.2 sürümü bu kayıtları içerir.

Yeni Lint kontrolleri

  • Lint; onCreateView(), onViewCreated() ve onActivityCreated() içinde OnBackPressedDispatcher telefonlarını aramak için LifecycleOwner olarak viewLifecycleOwner kullanılmasını öneriyor. (b/142117657)
  • fragment-testing yapısını kullanırken doğru debugImplementation öğesini kullandığınızı onaylayan yeni bir Lint denetimi eklendi. (b/141500106)
  • Hem get hem de require eşdeğeri içeren tüm Fragment API'lerinde, parçalar artık daha açıklayıcı hata mesajları için checkNotNull(get___()), requireNonNull(get___()) veya get___()!! yerine ilişkili require___() yöntemlerinin kullanılmasını önermektedir. (aosp/1202883)

Hata Düzeltmeleri

  • Fragment ProGuard dosyaları, R8 uyarılarını önleyecek şekilde düzeltildi (b/148963981)
  • observe kullanılırken viewLifecycleOwner kullanılmasını öneren mevcut Lint kontrolü, observe livedata-ktx uzantı yöntemi sürümünü de işlemek için iyileştirildi. (b/148996309)
  • Çoğu Lint denetiminin biçimlendirmesi düzeltildi (aosp/1157012)

Harici katkılar

  • Slack adına require___() Lint kontrollerine katkıda bulunduğunuz için Zac Sweers'e teşekkür ederiz. (aosp/1202883)

Sürüm 1.2.1

Sürüm 1.2.1

5 Şubat 2020

androidx.fragment:fragment:1.2.1, androidx.fragment:fragment-ktx:1.2.1 ve androidx.fragment:fragment-testing:1.2.1 yayınlandı. Sürüm 1.2.1 bu kayıtları içerir.

Hata düzeltmeleri

  • add ve replace yöntemleriyle eklenen ve Class örneği (veya Kotlin'in yenidenlaştırılmış sürümlerini) alan parçalar için varsayılan oluşturucuları ProGuard tarafından korunuyor. (b/148181315)
  • FragmentStatePagerAdapter ve FragmentPagerAdapter, finishUpdate() çalıştırılırken FragmentManager tarafından uygulanan istisnaları artık yakalamıyor. (aosp/1208711)
  • FragmentManager.findFragment() işlevinin <fragment> etiketi aracılığıyla eklenen parçalarla çalışmaması sorunu düzeltildi. (b/147784323)
  • <fragment> etiketi kullanılarak şişirilen parçalar artık düzendeyken onCreate() öncesinde her zaman onInflate() çağrısı alıyor. (aosp/1215856)
  • Etkinlik zaten kaldırılmışsa FragmentManager örneğinde toString() çağrıldığında artık NullPointerException gönderilmiyor. (b/148189412)

Bağımlılık değişiklikleri

Sürüm 1.2.0

Sürüm 1.2.0

22 Ocak 2020

androidx.fragment:fragment:1.2.0, androidx.fragment:fragment-ktx:1.2.0 ve androidx.fragment:fragment-testing:1.2.0 yayınlandı. Sürüm 1.2.0 bu kayıtları içerir.

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

  • FragmentContainerView: FragmentContainerView, dinamik olarak eklenen Fragment'lar için FrameLayout veya diğer düzenlerin yerine kullanılması önemle tavsiye edilen kapsayıcıdır. Ayrıca, <fragment> etiketiyle aynı class, android:name ve isteğe bağlı android:tag öğelerini destekler, ancak bu başlangıç parçasını eklemek için <fragment> tarafından kullanılan özel kod yolu yerine normal bir FragmentTransaction kullanır.
  • onDestroyView() zamanlaması: Parçalar artık onDestroyView() çağrısı yapmadan önce çıkış animasyonlarının, çıkış çerçevesi geçişlerinin ve çıkış AndroidX geçişlerinin (Geçiş 1.3.0 kullanılırken) tamamlanmasını bekliyor.
  • Sınıf tabanlı add() ve replace(): FragmentTransaction öğesine Class<? extends Fragment> ve isteğe bağlı Bundle bağımsız değişkeni alan yeni add() ve replace() yüklemeleri eklendi. Bu yöntemler, eklenecek Parçanın bir örneğini oluşturmak için FragmentFactory öğenizi kullanır. Yenidenlaştırılmış türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)) kullanan Kotlin uzantıları da fragment-ktx öğesine de eklendi.
  • Yaşam Döngüsü ViewModel KaydedilmişState Entegrasyonu: SavedStateViewModelFactory artık by viewModels(), by activityViewModels(), ViewModelProvider oluşturucu veya ViewModelProviders.of() bir Fragment ile kullanılırken varsayılan fabrika olarak kullanılıyor.
  • Yeni Lint kontrolleri: onCreateView(), onViewCreated() veya onActivityCreated() değerlerinden LiveData gözlemleri sırasında getViewLifecycleOwner() kullandığınızdan emin olmanızı sağlayan yeni bir Lint kontrolü eklendi.
  • getFragmentManager()'un kullanımdan kaldırılması: Fragment'taki getFragmentManager() ve requireFragmentManager() yöntemleri kullanımdan kaldırıldı ve bunların yerini tek bir getParentFragmentManager() yöntemiyle aldı. Bu yöntem, Parçanın eklendiği boş olmayan FragmentManager değerini döndürür (çağrı yapmanın güvenli olup olmadığını belirlemek için isAdded() kullanabilirsiniz).
  • FragmentManager.enableDebugLogging() desteğinin sonlandırılması: Statik FragmentManager.enableDebugLogging yöntemi kullanımdan kaldırılmıştır. FragmentManager artık FragmentManager etiketi için Log.isLoggable() değerlerini dikkate alarak uygulamanızı yeniden derlemeden DEBUG veya VERBOSE günlük kaydını etkinleştirmenize olanak tanıyor.

Bilinen Sorunlar

  • FragmentContainerView üzerinde yalnızca class veya android:name özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir koruma kuralı eklemeniz gerekir. (b/142601969)
  • FragmentContainerView ile XML'de class veya android:name kullanarak bir NavHostFragment eklerken, Etkinliğinizin onCreate() bölümünde findNavController() kullanamazsınız. (b/142847973)

Sürüm 1.2.0-rc05

8 Ocak 2020

androidx.fragment:fragment:1.2.0-rc05, androidx.fragment:fragment-ktx:1.2.0-rc05 ve androidx.fragment:fragment-testing:1.2.0-rc05 yayınlandı. Sürüm 1.2.0-rc05 bu kayıtları içerir.

Hata düzeltmeleri

  • <fragment> etiketi kullanılırken 1.2.0-rc04 parçasındaki regresyon, etkinliği kaldırma sırasında onViewCreated() ürününün yanlış çağrılmasına neden olan bir regresyon düzeltildi. (b/146290333)
  • <fragment> etiketiyle eklenen parçalar, düzende yalnızca bazen (yani yalnızca yatay düzeninizde) olsa bile yapılandırma olmayan öğeleri artık düzgün bir şekilde temizleniyor. Sonuç olarak bu Fragment'lar, örneklenmek ve hiçbir zaman yaşam döngüsü yönteminden geçmek yerine düzeninizde olmasa bile artık doğru şekilde CREATED'e taşınıyor. (b/145769287)

Sürüm 1.2.0-rc04

18 Aralık 2019

androidx.fragment:fragment:1.2.0-rc04, androidx.fragment:fragment-ktx:1.2.0-rc04 ve androidx.fragment:fragment-testing:1.2.0-rc04 yayınlandı. Sürüm 1.2.0-rc04 bu kayıtları içerir.

Hata düzeltmeleri

  • Görsel sorunları önlemek amacıyla TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE için animasyonlar düzenlendi. (b/145468417)

Sürüm 1.2.0-rc03

4 Aralık 2019

androidx.fragment:fragment:1.2.0-rc03, androidx.fragment:fragment-ktx:1.2.0-rc03 ve androidx.fragment:fragment-testing:1.2.0-rc03 yayınlandı. Sürüm 1.2.0-rc03 bu kayıtları içerir.

Hata düzeltmeleri

  • findFragmentById() / findFragmentByTag() tarafından çıkış animasyonları/geçişleri çalışırken kaldırılmış parçaların geri döndürülmesine neden olan istenmeyen davranış değişikliği düzeltildi. (b/143982969, aosp/1167585)
  • Alt öğeler, kapsayıcı etkinliği onSaveInstanceState() çağırdığında üst öğelerinden önce doğru şekilde durduruluyor. (b/144380645)
  • Gizli bir parça açıldıktan sonra Görünümlerin yanlış bir şekilde INVISIBLE olarak işaretlenmesine neden olan sorun düzeltildi. (b/70793925)
  • Parça paylaşılan öğe geçişleri artık döndürülen, ölçeklendirilen vb. Görünümler'i işliyor (b/142835261)

Belge Güncellemeleri

  • setUserVisibleHint() tarihindeki desteğin sonlandırılmasıyla ilgili dokümanlara açıklık getirildi. (b/143897055)
  • FragmentFactory ayarlamanın alt FragmentManager'ları da etkileyeceğini daha iyi belirtmek için setFragmentFactory() ve getFragmentFactory() ile ilgili dokümanlar iyileştirildi. (aosp/1170095)

Bağımlılık değişiklikleri

  • Parçalar artık Yaşam Döngüsü 2.2.0-rc03, Yaşam Döngüsü ViewModel KayıtlıDurum 1.0.0-rc03 ve Etkinlik 1.1.0-rc03'e bağlı.

Sürüm 1.2.0-rc02

7 Kasım 2019

androidx.fragment:fragment:1.2.0-rc02, androidx.fragment:fragment-ktx:1.2.0-rc02 ve androidx.fragment:fragment-testing:1.2.0-rc02 yayınlandı. Sürüm 1.2.0-rc02 bu kayıtları içerir.

Hata düzeltmeleri

  • Kotlin'de onCreateView(), onViewCreated() veya onActivityCreated() öğesinden LiveData öğesini gözlemlerken getViewLifecycleOwner() kullanımı için LintFix (Fragment 1.2.0-rc01 ile kullanıma sunulmuştur) artık getViewLifecycleOwner() yerine Kotlin özellik erişimi söz dizimini viewLifecycleOwner kullanır. (aosp/1143821)

Sürüm 1.2.0-rc01

23 Ekim 2019

androidx.fragment:fragment:1.2.0-rc01, androidx.fragment:fragment-ktx:1.2.0-rc01 ve androidx.fragment:fragment-testing:1.2.0-rc01 yayınlandı. Sürüm 1.2.0-rc01 bu kayıtları içerir.

Yeni özellikler

  • <fragment> etiketinin işlevlerine benzer şekilde, FragmentContainerView artık android:name ve class özelliğini de desteklemektedir. (b/142722242)
  • onCreateView(), onViewCreated() veya onActivityCreated() üzerinden LiveData gözlemleri sırasında getViewLifecycleOwner() kullandığınızdan emin olmanızı sağlayan yeni bir Lint kontrolü eklendi. (b/137122478)

Hata düzeltmeleri

  • DialogFragment üzerindeki onDismiss ve onCancel geri çağırmaları artık kendilerine geçirilen DialogInterface değerinin null olmadığını ve yürütüldüğünde getDialog() işlevinin null olmayan bir değer döndürdüğünü garanti eder. (b/141974033)
  • FragmentContainerView, artık class veya android:name tarafından tanımlanan Parçayı enflasyonun bir parçası olarak ekleyerek findFragmentById() ve findFragmentByTag() öğelerinin hemen sonra çalışmasını sağlar. (b/142520327)
  • Durumun kaydedilmesi nedeniyle FragmentContainerView öğesinde IllegalStateException düzeltildi. (b/142580713)
  • FragmentContainerView sınıfı kod karartma yapıldığında FragmentContainerView öğesindeki UnsupportedOperationException düzeltildi. (b/142657034)

Bilinen sorunlar

  • FragmentContainerView üzerinde yalnızca class veya android:name özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir koruma kuralı eklemeniz gerekir. Bu durum aapt2 aracılığıyla düzeltilene kadar FragmentContainerView ürününe geçilmesini öneren Lint kuralını devre dışı bıraktık. (b/142601969)

Sürüm 1.2.0-beta02

11 Ekim 2019

androidx.fragment:fragment:1.2.0-beta02, androidx.fragment:fragment-ktx:1.2.0-beta02 ve androidx.fragment:fragment-testing:1.2.0-beta02 yayınlandı. Sürüm 1.2.0-beta02 bu kayıtları içerir.

Hata düzeltmeleri

  • Fragment'ın onInflate() öğesinin, FragmentContainerView öğesinden uygun özellikleri alamamasına ve NavHostFragment gibi destek kayıtlarına zarar vermesine neden olan sorun düzeltildi. (b/142421837)

Sürüm 1.2.0-beta01

9 Ekim 2019

androidx.fragment:fragment:1.2.0-beta01, androidx.fragment:fragment-ktx:1.2.0-beta01 ve androidx.fragment:fragment-testing:1.2.0-beta01 yayınlandı. Sürüm 1.2.0-beta01 bu kayıtları içerir.

Yeni özellikler

  • FragmentContainerView, başlangıç parçası ekleme desteğinin yanı sıra android:name ve isteğe bağlı android:tag XML özellikleri için de destek sunar. <fragment> etiketinden farklı olarak FragmentContainerView, başlangıç parçasını eklemek için gelişmiş ayar altında normal bir FragmentTransaction kullanır. Bu sayede, FragmentContainerView üzerinde daha fazla FragmentTransaction işlemi gerçekleştirilebilir ve düzen için Görünüm Bağlantısı kullanılabilir. (b/139830628, b/141177981)
  • Artık parçalarda, <fragment> değerini FragmentContainerView ile değiştirmek için hızlı bir düzeltme sunan Lint uyarısı bulunuyor. (b/139830056)

Hata düzeltmeleri

  • androidx.transition kullanılırken karşılaşılan ClassCastException düzeltildi. (b/140680619)
  • Geçiş 1.3.0-beta01 kullanılırken Fragments artık onDestroyView() dağıtımını göndermeden önce androidx.transition geçişlerinin (sırasıyla Parça 1.2.0-alpha03 ve Parça 1.2.0-alpha02'da düzeltilen çerçeve geçişlerine ve animasyonlara ek olarak) tamamlanmasını bekliyor. (aosp/1119841)
  • Geçiş 1.3.0-beta01 kullanılırken Fragments artık aynı kapsayıcıda yeni geçişlere / animasyonlara başlamadan önce androidx.transition geçişlerini düzgün bir şekilde iptal ediyor. (aosp/1119841)
  • FragmentContainerView kullanılırken Fragment'inizin kök görünümünde androidx.transition geçişlerini kullanırken API 17 ve önceki sürümlerdeki bir sorun düzeltildi. (b/140361893)
  • fragment-testing yapısı artık en son Espresso 3.2.0 ile uyumsuzluğu düzelten AndroidX Test 1.2.0 uygulamasına bağlı. (b/139100149)
  • FragmentManager'da Log.w kullanımı kaldırıldı. (aosp/1126468)

Bilinen sorunlar

  • Parçanın onInflate() özelliği, FragmentContainerView ürününden uygun özellikleri alamıyor. Bu durum, NavHostFragment gibi büyük/küçük harf kullanımına neden oluyor. (b/142421837)

Sürüm 1.2.0-alpha04

18 Eylül 2019

androidx.fragment:fragment:1.2.0-alpha04, androidx.fragment-ktx:example:1.2.0-alpha04 ve androidx.fragment:fragment-testing:1.2.0-alpha04 yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.

API değişiklikleri

  • Fragment üzerindeki getFragmentManager() ve requireFragmentManager() yöntemleri kullanımdan kaldırıldı ve bunların yerini tek bir getParentFragmentManager() yöntemi aldı. Bu yöntem, Parçanın eklendiği ve boş olmayan FragmentManager değerini döndürür (çağrı yapmanın güvenli olup olmadığını belirlemek için isAdded() yöntemini kullanabilirsiniz). (b/140574496)
  • Statik FragmentManager.enableDebugLogging yöntemi kullanımdan kaldırıldı. FragmentManager artık FragmentManager etiketi için Log.isLoggable() değerlerini dikkate alarak uygulamanızı yeniden derlemeden DEBUG veya VERBOSE günlük kaydını etkinleştirmenize olanak tanıyor. (aosp/1116591)

Hata düzeltmeleri

  • Diğer parçalardaki çıkış animasyonları çalışırken parçalar artık düzgün bir şekilde yok ediliyor. (b/140574199)
  • Fragments'ın önceden Activity.findViewById() çağrısı yapmadığı halde Activity.findViewById() çağrısı yapmasına neden olan sorun düzeltildi. (aosp/1116431)

Sürüm 1.2.0-alpha03

5 Eylül 2019

androidx.fragment:fragment:1.2.0-alpha03, androidx.fragment:fragment-ktx:1.2.0-alpha03 ve androidx.fragment:fragment-testing:1.2.0-alpha03 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

API değişiklikleri

Hata düzeltmeleri

  • FragmentContainerView artık parçaları arka yığından çıkarırken çizim sırasını düzgün bir şekilde tersine çeviriyor. (b/139104187)
  • Aynı anda hem bir parça popülasyon hem de yeni bir parça eklendiğinde yanlış animasyonun çalışması sorunu düzeltildi. (b/111659726)
  • Artık parçalar, onDestroyView() öğesini göndermeden önce geçişlerin (Parça 1.2.0-alpha02'da düzeltilmiş olan animasyonlara ek olarak) tamamlanmasını bekliyor. (b/138741697)

Sürüm 1.2.0-alpha02

7 Ağustos 2019

androidx.fragment:fragment:1.2.0-alpha02, androidx.fragment:fragment-ktx:1.2.0-alpha02 ve androidx.fragment:fragment-testing:11.2.0-alpha02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • SavedStateViewModelFactory artık by viewModels(), by activityViewModels(), ViewModelProvider oluşturucu veya Fragment ile ViewModelProviders.of() kullanılırken varsayılan fabrika ayarıdır. (b/135716331)
  • FragmentTransaction üzerinde setTransition ile TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, TRANSIT_FRAGMENT_FADE kullanılırken varsayılan animasyonlar Android 10 cihazlardaki etkinlikler tarafından kullanılan animasyonlarla eşleşecek şekilde güncellendi. (aosp/1012812, aosp/1014730)

API değişiklikleri

  • Animasyonun z sırası sorunlarını ve Fragment'lara gönderilen pencere eklerini düzelttiği için FragmentContainerView, dinamik olarak eklenen Fragment'lar için şiddetle önerilen kapsayıcı olarak, FrameLayout kullanımının yerini alarak vb. sunar. (b/37036000, aosp/985243, b/136494650)
  • Bir parça tarafından şişirilmiş bir görünümden kapsayıcı Parçayı almak için statik FragmentManager.findFragment(View) yöntemi eklendi. fragment-ktx dilinde bir Kotlin uzantısı da mevcut. (aosp/1090757)
  • FragmentTransaction öğesine Class<? extends Fragment> ve isteğe bağlı Bundle bağımsız değişken alan yeni add() ve replace() aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek Parçanın bir örneğini oluşturmak için FragmentFactory öğenizi kullanır. Yenidenlaştırılmış türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)) kullanan Kotlin uzantısı da fragment-ktx öğesine eklendi. (b/126124987)
  • Fragment yaşam döngüsü geri çağırmasına @MainThread ek açıklaması eklendi. (b/127272564)
  • FragmentTransaction ve FragmentManager.BackStackEntry üzerindeki içerik haritası başlığıyla ilgili API'lerin desteği sonlandırılmıştır. (b/138252944)
  • FragmentTransaction üzerindeki setTransitionStyle yöntemi kullanımdan kaldırıldı. (aosp/1011537)
  • FragmentManager alanındaki yöntemlerin çoğu artık abstract değil. FragmentManager öğesinin kendisi abstract olarak kalır ve doğrudan örneklenmemeli veya genişletilmez. Yalnızca getSupportFragmentManager(), getChildFragmentManager() vb. üzerinden mevcut bir örneği almaya devam etmelisiniz.

Hata düzeltmeleri

  • Parça 1.1.0-rc04'dan: Parçalar artık Fragments'teki ertelenmiş geçişleri doğru şekilde iptal etmektedir. (b/138251858)
  • Parça 1.1.0-rc03'da: Zaman aşımı süresi birden fazla olan postponeEnterTransition() çağrısının önceki zaman aşımlarının iptal edilmemesine neden olan sorun düzeltildi. (b/137797118)
  • Parça 1.1.0-rc02'dan: Geçerli öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter içinde meydana gelen kilitlenme düzeltildi. (b/137209870)
  • Artık parçalar onDestroyView() öğesini dağıtmadan önce animasyonların tamamlanmasını bekler. (b/136110528)
  • Alt parçalardan ve bunların alt öğelerinden parça animasyonları artık üst Parçayı canlandırırken düzgün bir şekilde işlenmektedir. (b/116675313)
  • Paylaşılan öğe geçişlerini kullanırken ve bir pop-up ekleme işlemini birleştirirken karşılaşılan NullPointerException düzeltildi. (b/120507394)
  • Robofactric testlerinde FragmentPagerAdapter ve FragmentStatePagerAdapter kullanılırken IllegalStateException'lere geçici çözüm eklendi. (b/137201343)

Sürüm 1.2.0-alpha01

2 Temmuz 2019

androidx.fragment:fragment:1.2.0-alpha01, androidx.fragment:fragment-ktx:1.2.0-alpha01 ve androidx.fragment:fragment-testing:1.2.0-alpha01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • FragmentManager artık Fragment'ın görünümünü ekledikten sonra ve onViewCreated() çağrısından hemen önce requestApplyInsets() yöntemini çağırarak görünümünüzde her zaman doğru eklerin olmasını sağlar. (b/135945162)

Hata düzeltmeleri

  • replace() tarihinden önce setPrimaryNavigationFragment() kullanan bir FragmentTransaction pop-up açılırken NullPointerException düzeltildi. (b/134673465)

Sürüm 1.1.0

Sürüm 1.1.0

5 Eylül 2019

androidx.fragment:fragment:1.1.0, androidx.fragment:fragment-ktx:1.1.0 ve androidx.fragment:fragment-testing:1.1.0 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

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

  • parça testi: fragment-testing yapısı, bir parçayı izole olarak test etmek için FragmentScenario sınıfı sağlar. Daha ayrıntılı bilgi için Uygulamanızın parçalar dokümanlarını test etme bölümüne bakın.
  • FragmentFactory: Artık parça örneklerinin oluşturulmasını yönetmek için FragmentManager üzerinde bir FragmentFactory ayarlayabilirsiniz. Böylece, bağımsız değişkensiz oluşturucuya sahip olma katı gereksinimini ortadan kaldırır.
  • ViewModels için Kotlin Mülk Temsilcileri: fragment-ktx yapısı artık iki Kotlin mülkü temsilcisi içeriyor: bağımsız parçayla ilişkilendirilmiş ViewModel'lere erişmek için by viewModels() ve etkinlik kapsamındaki ViewModel'lere erişmek için by activityViewModels().
  • Maksimum Yaşam Döngüsü: Artık FragmentTransaction üzerinde setMaxLifecycle() yöntemini çağırarak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılmış setUserVisibleHint() ürününün yerini almıştır. FragmentPagerAdapter ve FragmentStatePagerAdapter, yeni davranışa geçiş yapmanızı sağlayan yeni bir oluşturucuya sahip.
  • FragmentActivity LayoutId oluşturucu: FragmentActivity alt sınıfları artık isteğe bağlı olarak FragmentActivity üzerinde, onCreate() içinde setContentView() çağrısına alternatif olarak içerik görünümü olarak ayarlanması gereken düzeni belirten R.layout kimliği alan bir oluşturucuya çağrıda bulunabilir. Bu durum, alt sınıfınızın bağımsız değişkensiz oluşturucuya sahip olma şartını değiştirmez.
  • Parça LayoutId oluşturucu: Fragment alt sınıfları artık isteğe bağlı olarak Fragment üzerinde R.layout kimliği alan bir oluşturucuya çağrıda bulunabilir. Bu, onCreateView() geçersiz kılmaya alternatif olarak bu parça için kullanılması gereken düzeni belirtir. Artırılmış düzen, onViewCreated() içinde yapılandırılabilir.
  • Zaman aşımı ile ertele: Zaman aşımına uğrayan yeni bir postponeEnterTransition() aşırı yüklemesi eklendi.

Sürüm 1.1.0-rc04

7 Ağustos 2019

androidx.fragment:fragment:1.1.0-rc04, androidx.fragment:fragment-ktx:1.1.0-rc04 ve androidx.fragment:fragment-testing:1.1.0-rc04 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Artık Parçalar'daki ertelenmiş geçişleri doğru şekilde iptal eden Parçalar hale getirilmiştir. (b/138251858)

Sürüm 1.1.0-rc03

19 Temmuz 2019

androidx.fragment:fragment:1.1.0-rc03, androidx.fragment:fragment-ktx:1.1.0-rc03 ve androidx.fragment:fragment-testing:1.1.0-rc03 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • postponeEnterTransition() zaman aşımının birden fazla kez çağrılmasının, önceki zaman aşımlarının iptal edilmemesine neden olan sorun düzeltildi. (b/137797118)

Sürüm 1.1.0-rc02

17 Temmuz 2019

androidx.fragment:fragment:1.1.0-rc02, androidx.fragment:fragment-ktx:1.1.0-rc02 ve androidx.fragment-testing:fragment:1.1.0-rc02 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Mevcut öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter arasındaki kilitlenme düzeltildi. (b/137209870)

Sürüm 1.1.0-rc01

2 Temmuz 2019

androidx.fragment:fragment:1.1.0-rc01, androidx.fragment:fragment-ktx:1.1.0-rc01 ve androidx.fragment:fragment-testing:1.1.0-rc01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Parçalar artık geçiş çalışırken show() veya hide() işlemlerini kullanırken görünürlüklerini düzgün şekilde güncelliyor. (b/133385058)
  • replace() tarihinden önce setPrimaryNavigationFragment() kullanan bir FragmentTransaction pop-up açılırken NullPointerException düzeltildi. (b/134673465)

Sürüm 1.1.0-beta01

5 Haziran 2019

androidx.fragment:fragment:1.1.0-beta01, androidx.fragment:fragment-ktx:1.1.0-beta01 ve androidx.fragment:fragment-testing:1.1.0-beta01 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Hata düzeltmeleri

  • İç içe yerleştirilmiş Fragment'lara yönelik androidx.lifecycle.Lifecycle geri çağırmaları (özellikle STARTED, RESUMED, PAUSED, STOPPED ve DESTROYED ile ilgili olanlar) artık düzgün bir şekilde iç içe yerleştirilmiş. (b/133497591)
  • Bir Fragment'ın onCreate() öğesine kaydedilen OnBackPressedCallback örnekleri, artık düzgün şekilde alt FragmentManager'a göre önceliklidir. (b/133175997)
  • Üst parçaları değiştirilirken alt parçalara artık animasyon uygulanmaz. (b/121017790)
  • animateLayoutChanges="true" kullanılırken parça animasyonları ve geçişler artık yoksayılıyor, böylece Parçaların düzgün şekilde kaldırılmaması sorunu gideriliyor. (b/116257087)

Sürüm 1.1.0-alpha09

16 Mayıs 2019

androidx.fragment:fragment:1.1.0-alpha09, androidx.fragment:fragment-ktx:1.1.0-alpha09 ve androidx.fragment:fragment-testing:1.1.0-alpha09 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

API değişiklikleri

  • Birincil gezinme parçası değiştiğinde parçalar artık yeni bir onPrimaryNavigationFragmentChanged(boolean) yöntemini geri çağırıyor. aosp/960857

Hata düzeltmeleri

  • Bir alt parça ile şişirilen menü öğeleri artık üst parça kaldırıldığında doğru şekilde kaldırılıyor. b/131581013

Sürüm 1.1.0-alpha08

7 Mayıs 2019

androidx.fragment:fragment:1.1.0-alpha08, androidx.fragment:fragment-ktx:1.1.0-alpha08 ve androidx.fragment:fragment-testing:1.1.0-alpha08 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Bu sürüm, Tercihler 1.1.0-alpha01 ile 1.1.0-alpha04 arasındakilerle uyumlu değil. Parçaların bu sürümünü kullanırken lütfen Tercihler 1.1.0-alpha05 sürümüne yükseltin.

Yeni özellikler

  • Zaman aşımı alan yeni bir postponeEnterTransition() aşırı yüklemesi eklendi. Bu sürenin ardından parça otomatik olarak startPostponedEnterTransition() b/120803208 değerini çağırır.

API değişiklikleri

  • Zarar veren değişiklik: Önceden kullanımdan kaldırılan ve Bundle alan FragmentFactory instantiate yöntemi kaldırıldı. aosp/953856
  • Zarar veren değişiklik: FragmentPagerAdapter ve FragmentStatePagerAdapter için RESUME_ONLY_CURRENT_FRAGMENT ve USE_SET_USER_VISIBLE_HINT sabit değerleri, sırasıyla BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT ve BEHAVIOR_SET_USER_VISIBLE_HINT olarak yeniden adlandırıldı. aosp/954782

Hata düzeltmeleri

  • Yaşam döngüsü setMaxLifecycle() aracılığıyla sınırlanmış parçalar artık son durumlarına ulaşmadan devam ettirilmez. b/131557151
  • setMaxLifecycle(Lifecycle.State.CREATED) kullanılırken Fragment'ların görünümleri düzgün bir şekilde kaldırılır. aosp/954180

Sürüm 1.1.0-alpha07

25 Nisan 2019

androidx.fragment:fragment:1.1.0-alpha07, androidx.fragment:fragment-ktx:1.1.0-alpha07 ve androidx.fragment:fragment-testing:1.1.0-alpha07 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • Artık FragmentTransaction üzerinde setMaxLifecycle() yöntemini çağırarak bir Fragment için maksimum yaşam döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılmış setUserVisibleHint() ürününün yerini almıştır. FragmentPagerAdapter ve FragmentStatePagerAdapter, yeni davranışa geçiş yapmanızı sağlayan yeni bir oluşturucuya sahip. (b/129780800)

API Değişiklikleri

  • FragmentScenario üzerindeki moveToState(STARTED) artık yalnızca API 24 ve üstü cihazlarda çağrılabilir. (b/129880016)

Davranış Değişiklikleri

  • (b/129907905) nedeniyle, barındırma etkinliği yeniden oluşturulduğunda arka yığındaki parçalar onCreateView() için geri çağırma almaz. onCreateView(), artık yalnızca parça görünür hale geldiğinde (yani, arka yığın başlatıldığında) çağrılır.

Hata düzeltmeleri

  • XML'de <fragment> etiketi ve FragmentActivity ya da AppCompatActivity oluşturucunun contentLayoutId oluşturucusu kullanılırken yaşanan sorun düzeltildi. (b/129907905)
  • Bir yapılandırma değişikliğinden sonra arka yığındaki parçaların en az CREATED konumuna taşınmaması ve dolayısıyla, ViewModels ve alt saklanan parçaların düzgün şekilde atılmamasına neden olan sorun düzeltildi. (b/129593351)
  • Örnek durumu kaydedildikten sonra saklanan parçaların senkronizasyonunun bozulmasından kaynaklanan restoreSaveState kilitlenmesi düzeltildi. (b/130433793) (aosp/947824)
  • FragmentManager öğesinin bir arka yığını olsaydı parça yaşam döngüsüyle eklenen OnBackPressedCallback öğesinin çağrılmamasıyla ilgili sorunlar düzeltildi. Daha ayrıntılı bilgi için androidx.activity 1.0.0-alpha07 adresine bakın. (aosp/948209)
  • Parçalar artık animasyonlar için LAYER_TYPE_HARDWARE öğesini zorunlu kılmaz. Özellikle bir donanım katmanı animasyonuna ihtiyacınız varsa lütfen bunu animasyonunuzun parçası olarak ayarlayın. (b/129486478)

Sürüm 1.1.0-alpha06

3 Nisan 2019

androidx.fragment:fragment:1.1.0-alpha06, androidx.fragment:fragment-ktx:1.1.0-alpha06 ve androidx.fragment:fragment-testing:1.1.0-alpha06 yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.

Yeni özellikler

  • FragmentManager tarafından oluşturulan istisnalar artık iletiye Fragment’ın adını da dahil ediyor. (b/67759402)

API Değişiklikleri

  • Fragment ve FragmentActivity artık @LayoutRes int alanlı ikinci bir oluşturucu içeriyor. Bu, sınıfınıza daha önce gönderilen not ekleme davranışını @ContentView ile değiştirir. Bu yaklaşım hem uygulama hem de kitaplık modüllerinde çalışır. (b/128352521)
  • FragmentActivity öğesinin onActivityResult() öğesi artık doğru şekilde @CallSuper olarak işaretlendi. (b/127971684)
  • FragmentFactory'nin bağımsız değişken Paketi alan instantiate yönteminin desteği sonlandırılmıştır. Uygulamalar, Paket kabul etmeyen yeni instantiate aşırı yüklemesini kullanmalıdır. (b/128836103)
  • FragmentScenario yöntemlerine artık doğru şekilde @StyleRes ek açıklaması eklendi. (aosp/924193)
  • FragmentTabHost desteği sonlandırıldı. (b/127971835)
  • FragmentActivity öğesinin getThemedContext() etiketi kaldırıldı. (aosp/934078)

Hata düzeltmeleri

  • 1.1.0-alpha05 sürümünde gelen parçanın ekranda yanıp sönmesine neden olan bir regresyon düzeltildi. (b/129405432)
  • Bir popBackStack+replace+popBackStack işlem serisinden sonra birincil gezinme parçasının kaybolmasına neden olan sorun düzeltildi. (b/124332597)
  • Parça durumunu geri yüklerken Etkinliğinizde @ContentView kurucularını kullanırken yaşanan sorun düzeltildi. (b/127313094)
  • Mevcut bir hedef Fragment, henüz FragmentManager'a eklenmemiş bir Fragment ile değiştirilirken setTargetFragment() mantığı düzeltildi. (aosp/932156)

Sürüm 1.1.0-alpha05

13 Mart 2019

androidx.fragment:fragment:1.1.0-alpha05, androidx.fragment:fragment-ktx:1.1.0-alpha05 ve androidx.fragment:fragment-testing:1.1.0-alpha05 yayınlandı. Bu sürüme dahil edilen kaydetmelerin tam listesini burada bulabilirsiniz.

Yeni özellikler

  • @ContentView ek açıklama araması artık önbelleğe alındı (b/123709449)

Davranış değişiklikleri

  • Farklı bir FragmentManager'a eklenmiş bir Fragment ile remove(), hide(), show(), detach() ve setPrimaryNavigationFragment() çağrıldığında sessizce başarısız olmak yerine artık bir IllegalStateException hatası veriliyor (aosp/904301)

Hata düzeltmeleri

  • FragmentActivity için onNewIntent artık @CallSuper ile doğru şekilde işaretlendi (b/124120586)
  • getDialog().dismiss() veya getDialog().cancel() (b/126563750) kullanılırken DialogFragment onDismiss() öğesinin iki kez çağrılmasına neden olan sorun düzeltildi.

Sürüm 1.1.0-alpha04

7 Şubat 2019

androidx.fragment:fragment 1.1.0-alpha04, androidx.fragment:fragment-ktx 1.1.0-alpha04 ve androidx.fragment:fragment-testing 1.1.0-alpha04 yayınlandı.

Yeni özellikler

  • onCreateView() politikasını geçersiz kılmaya alternatif olarak hangi düzen XML dosyasının şişirilmesi gerektiğini belirtmenize olanak tanıyan @ContentView sınıfı ek açıklaması için destek eklendi. İlgili çalışmaları onViewCreated() uygulamasında görüntülemeniz önerilir. (aosp/837619)
  • fragment-testing artık androidx.test:core-ktx 1.1.0 kararlı sürümüne bağlıdır (b/121209673)
  • Parça barındırılan seçenekler menülerini (b/121126668) test etmek için artık openActionBarOverflowOrOptionsMenu öğesini FragmentScenario ile kullanabilirsiniz

API değişiklikleri

  • @NonNull Bundle döndüren veya IllegalStateException veren bir requireArguments() yöntemi eklendi (b/121196360)
  • getLifecycle(), getViewLifecycleOwner() ve getViewLifecycleOwnerLiveData() öğelerinin geçersiz kılınmayacağına ve gelecekteki bir sürümde nihai hale getirileceğine dair bir not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen bir özellik isteği gönderin. (aosp/880714)
  • getViewModelStore() öğesinin geçersiz kılınmaması gerektiğine ve gelecekteki bir sürümde kesinleştirileceğine dair bir not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen bir özellik isteği gönderin. (aosp/880713)
  • Fragments'ın önceki sürümleriyle ikili program uyumluluğuyla ilgili bir sorun giderildi. (aosp/887877) (aosp/889834)

Hata düzeltmeleri

  • null öğesini setTargetFragment() içine geçirdiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)
  • onDestroy() içinde veya sonrasında hedef parçalarının bazen kullanılamaması sorunu düzeltildi. (b/122312935)
  • DialogFragment’ın onDismiss() artık onDestroy() öncesinde çağrıldı. (aosp/874133) (aosp/890734)

Sürüm 1.1.0-alpha03

17 Aralık 2018

Yeni özellikler

  • Fragment artık BundleSavedStateRegistryOwner öğesini kullanıyor ve yeni yayınlanan KayıtlıState kitaplığına bağlıdır [aosp/824380]
  • [b/119050253] İçeren Etkinlikle ilişkilendirilmiş ViewModel'leri almak için by activityViewModels Kotlin mülk yetkilendirmesi eklendi
  • by viewModels Kotlin mülk yetkilendirmesi, ViewModelStoreOwner öğesini almak için isteğe bağlı bir lambda yöntemini alacak şekilde genişletildi. Böylece üst parçayı veya başka bir özel ViewModelStoreOwner öğesini val viewModel: MyViewModel by viewModels(::requireParentFragment) [b/119050253] gibi bir kodla iletebileceksiniz.

API değişiklikleri

  • FragmentScenario artık Theme.AppCompat [b/119054431] gibi bir tema belirtmenize olanak tanıyor. Bu, zarar verici bir değişiklik.
  • @NonNull View döndüren veya IllegalStateException [b/120241368] gönderen bir requireView() yöntemi eklendi
  • @NonNull Fragment döndüren veya IllegalStateException gönderen bir requireParentFragment() yöntemi eklendi [b/112103783]

Hata düzeltmeleri

  • LegalStateException: Başarısız kaydetme durumu b/120814739 düzeltildi
  • Kayıtlı örnek durumundan geri yüklenen parçalar artık her zaman boş olmayan bir Bundle [b/119794496] alacak
  • Kaldırılan Fragmentler, yeniden eklenirse artık Lifecycle nesnelerini yeniden kullanmaz [b/118880674]

Sürüm 1.1.0-alpha02

3 Aralık 2018

Yeni özellikler

  • FragmentSenaryo'nun Kotlin uzantıları, FragmentFactory örneğinde geçmeye alternatif olarak Fragment yapısı için lambda kullanmanıza olanak tanıyor. (aosp/812913)

Hata düzeltmeleri

  • Arka yığında iç içe yerleştirilmiş Fragment'lar kullanılırken oluşan Kuraldışı İstisna durumu düzeltildi (b/119256498)
  • FragmentScenario.recreate(), FragmentFactory (aosp/820540) ile kullanıldığında yaşanan kilitlenme düzeltildi
  • Parça kaldırıldıktan sonra hedef parçalarına erişilememesi sorunu düzeltildi (aosp/807634)

Sürüm 1.1.0-alpha01

5 Kasım 2018

Bu, fragment-testing yapısının ve androidx.test:core API'lerinin üzerine derlenen FragmentScenario uygulamasının ilk sürümüdür. Daha ayrıntılı bilgi için Parça testi dokümanlarına bakın.

Yeni özellikler

  • Fragment'ları ayrı ayrı test etmek için yeni FragmentSenaryo sınıfı.
  • Artık yeni Fragment örneklerinin nasıl örneklendiğini kontrol etmek için herhangi bir FragmentManager öğesinde bir FragmentFactory ayarlayabilirsiniz.
  • Bir Fragment'ten ViewModel'leri almak için yeni bir by viewModels() Kotlin mülkü temsilcisi eklendi.
  • Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık Fragment'ın onStop() öğesinde iptal ediliyor.

API değişiklikleri

  • Fragment API yüzeyinde null değer ek açıklamaları önemli ölçüde genişletildi.

Hata düzeltmeleri

  • Parça işlemlerinin LiveData içinden başarısız olmasına neden olan bir sorunu düzeltme (b/77944637)

Bilinen sorunlar

  • Bir Fragment, FragmentManager'dan kaldırıldıktan sonra Target Fragment'lara erişilemez.
  • fragment-testing, doğru androidx.test:core:1.0.0 yerine androidx.test:core:1.0.0-beta01 değerine bağlıdır.