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ü
20 Mart 2024 1.6.2 - 1.7.0-beta01 -

Bağımlılıkları bildirme

Fragment'e 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ın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

dependencies {
    def 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 edinmek için Derleme bağımlılıkları ekleme konusuna bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sayı oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.7

Sürüm 1.7.0-beta01

20 Mart 2024

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

API Değişiklikleri

  • Ana makinenin genel türünün boş değer atanabilirliği, onGetHost() döndürülen türünün boş değerleriyle eşleşecek şekilde FragmentHostCallback artık Kotlin'de yazılmıştır. (I40af5)

Hata Düzeltmeleri

  • Kapsayıcıda olmayan bir parçaya Tahmine Dayalı Geri hareketi uygulandığında, söz konusu parçanın hiçbir zaman kaldırılmaması sorunu giderildi. Artık Parça hemen son duruma taşınır. (Ida0d9)
  • Tahmine dayalı geri hareketiyle gelen geçişleri kesintiye uğratmanın giriş görünümünü bozmasına ve boş bir ekran bırakmasına neden olan bir sorun düzeltildi. (Id3f22, b/319531491)

Sürüm 1.7.0-alfa10

7 Şubat 2024

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

Hata Düzeltmeleri

  • Önceki Fragment sürümünde, Animator veya AndroidX Geçişi için Fragment'ın Tahmine Dayalı Geri desteği kullanıldığında addOnBackStackChangedListener aracılığıyla hiç FragmentManager.OnBackStackChangedListener eklenmemişse Fragment'ların handleOnBackProgressed öğesinden NullPointerException atması sorunu giderildi. (I7c835)

Sürüm 1.7.0-alpha09

24 Ocak 2024

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

Parça Oluşturma Yapısı

Fragment tabanlı mimariden tamamen Compose tabanlı bir mimariye geçiş süreci devam eden uygulamaların desteklenmesine odaklanan yeni bir fragment-compose yapısı oluşturuldu.

Bu yeni yapıda kullanıma sunulan ilk özellik, Fragment üzerinde bir content uzatma yöntemidir. Bu özellik, bağımsız bir Parçanın kullanıcı arayüzü için Oluşturma özelliğinin kullanımını kolaylaştırmak amacıyla sizin için bir ComposeView oluşturup doğru ViewCompositionStrategy değerini ayarlayarak çalışır. (561cb7, b/258046948)

class ExampleFragment : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ) = content {
        // Write your @Composable content here
        val viewModel: ExampleViewModel = viewModel()

        // or extract it into a separate, testable method
        ExampleComposable(viewModel)
    }
}

Yeni Özellikler

  • FragmentManager.OnBackStackChangedListener() artık tahmine dayalı geri ilerleme durumunu ve iptal edilen etkinlikleri almak için sırasıyla onBackStackChangeProgressed() ve onBackStackChangeCancelled() sağlıyor. (214b87)

Bilinen Sorun

  • Animator veya AndroidX Geçişi için Fragment'ın Tahmine Dayalı Geri Desteği kullanılırken addOnBackStackChangedListener aracılığıyla hiç FragmentManager.OnBackStackChangedListener eklenmemişse Fragment'lar handleOnBackProgressed öğesinden bir NullPointerException atar. İşleyiciyi manuel olarak eklemek kilitlenmeyi atlatacaktır. Fragments'in bir sonraki sürümünde bunun için bir düzeltme sunulacaktır.

Sürüm 1.7.0-alpha08

10 Ocak 2024

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

Temizleme

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ça 1.6.2'dan: 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)
  • 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ı. 1.7.0-alpha06 sürümü bu kayıtları içerir.

Bağımlılık Güncellemesi

  • Parçalar, 1.5.0-alpha04 Geçişi sırasında eklenen yeni animateToStart API'sine bağlı olacak şekilde güncellendi.

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

  • Parçalar artık Androidx Transitions kullanılırken Forecastive için geri destek sağlıyor. Böylece, tamamlanan hareketle işlemi uygulamaya veya iptal etmeye karar vermeden önce özel Androidx Geçişinizle önceki parçaya gitmek için geri hareketini kullanabilirsiniz. Bu özelliği etkinleştirmek için 1.5.0-alpha03 geçişine güvenmeniz gerekir. (Ib49b4, b/285175724)

Bilinen Sorunlar

  • Şu anda, geçiş içeren bir geri hareketini bir kez iptal etmenizin ardından geri hareketini bir sonraki başlatmanızda geçişin çalıştırılamamasına ve sonuç olarak boş ekrana neden olması sorunu yaşanıyor. Bu durum, Transition kitaplığındaki bir sorundan kaynaklanıyor olabilir. (b/300157785). Bu sorunla karşılaşırsanız lütfen sorununuzu yeniden oluşturan bir örnek projeyle Fragment'e karşı sorun bildirin. Tahmine dayalı geri alma özelliğini, Etkinliğinizin onCreate() bölümündeki FragmentManager.enabledPredictiveBack(false) öğesini kullanarak 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 getirememesine neden olan tahmine dayalı geri hareketi iptal edilirken yaşanan sorun düzeltildi. (I7cffe, b/297379023)
  • Animasyonların Geçişlerle çalıştırılmasına izin verilen bir regresyon düzeltildi. (I59f36)
  • Arka yığında son parçadan ikincisine doğru arka arkaya iki kez geri gitmeye çalışıldığında arka yığında son parçaya kadar arka arkaya iki kez geri gitmenin kilitlenmeye neden olduğu bir tahmin ile geri gitme sorunu giderildi. (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 geri 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 tamamlanmasına 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 Hareketlerle 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ı bekler. (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 Tahminli uygulama içi için 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, deneysel özelliği enablePredictiveBack() kullanıp false ileterek bu yeni davranışı devre dışı bırakabilirsiniz.
2.6.0

Sürüm 1.6

Sürüm 1.6.2

1 Kasım 2023

androidx.fragment:fragment-*:1.6.2 yayınlandı. 1.6.2 sürümü 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ıldığında, ü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.6.1

26 Temmuz 2023

androidx.fragment:fragment-*:1.6.1 yayınlandı. 1.6.1 sürümü 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 çoklu arka yığınlar 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ğine bağlıdır. Bu değişiklik, Kotlin kullanıcılarının Etkinliğe açık bir şekilde bağımlılık olmadan ComponentDialog paketinin kapsamını 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'dan sonraki önemli değişiklikler

  • Fragment öğelerinin kayıtlı durumu tamamen özel kitaplık durumu (özel Parcelable sınıfları) ile geliştirici tarafından sağlanan durum arasında bölündü. Bu durum artık her zaman bir parçanın durumunun tam olarak nereden 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 gerçekleştirildikten 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ği ancak üst öğenin childFragmentManager öğesine eklenmediği durumları algılayan yeni bir WrongNestedHierarchyViolation ekledi.
  • Intent veya IntentSender alan Fragment ve FragmentManager API'lerine, null değer geçirilmesini önlemek için @NonNull ile düzgün şekilde ek açıklamalar eklendi. Bu sayede boş değer, bu yöntemlerin çağırdığı ilgili Android çerçevesi API'lerini her zaman anında kilitleyebilir.
  • DialogFragment, artık requireComponentDialog() API üzerinden temel ComponentDialog erişimi sağlar.
  • Parça artık Yaşam Döngüsüne 2.6.1 bağlıdır.
  • Parça artık SavedState 1.2.1 öğesine bağlıdır.
  • 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 sapma olması nedeniyle sürüm çakışmalarını önler

Sürüm 1.6.0-rc01

10 Mayıs 2023

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

Hata Düzeltmeleri

  • Art arda birden fazla startActivityForResult isteği gönderildiğinde ActivityResult değerlerinin yanlış istek koduyla gönderilmesine neden olan sorun düzeltildi. (If0b9d, b/249519359)
  • onBackStackChangeListener geri çağırmalarının, arka yığını değiştirmemiş işlemlerle karıştırılması durumunda gerçekte arka yığını değiştirmeyen 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ı. 1.6.0-beta01 sürümü 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 çok işlem aynı parçayı içerse bile artık yalnızca bir parçayı tek seferde dağıtır. (Ic6b69)

Sürüm 1.6.0-alpha09

5 Nisan 2023

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

API Değişiklikleri

  • DialogFragment, artık requireComponentDialog() API üzerinden temel ComponentDialog erişimi sağlar. (I022e3, b/234274777)
  • commitNow(), executePendingTransactions() ve popBackStackImmediate() API'lerine @MainThread ek açıklaması eklendi. Böylece, artık çalışma zamanında başarısız olmayı beklemek yerine ana iş parçacığından çağrılmadıklarında tüm derleme hataları bildirecekler. (Ic9665, b/236538905)

Hata Düzeltmeleri

  • FragmentManager ürününde, 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 ayrılmış bir parçaya hiçbir zaman iletilmemesini sağlar. (I66a76, b/273568280)

Hata Düzeltmeleri

  • 1.5.6 Parçasında: Lifecycle zaten STARTED ise ve bir sonuç zaten mevcutsa setFragmentResultListener içinde clearFragmentResultListener çağrısının çalışmaması sorunu giderildi. (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 kayıtları içerir.

Hata Düzeltmeleri

  • Parçada 1.5.6: Menü öğeleri eklenmiş olsun veya olmasın, 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

  • Artık FragmentManager öğenin onBackStackChangedListener işlevindeki yeni onBackStackChangedStarted geri çağırması, 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ünde artık iki ek geri çağırma (onBackStackChangeStarted ve onBackStackChangeCommitted) sunulmaktadır. Bu geri çağırma, ek bilgi sağlamak ve FragmentManager içinde geri yığın değişikliklerinin ne zaman gerçekleşeceğini kontrol etmek içindir. (Ib7ce5, b/238686802)

API Değişiklikleri

  • Intent veya IntentSender alan Fragment ve FragmentManager API'lerine, boş değerin geçirilmesini önlemek için @NonNull ile düzgün bir şekilde ek açıklama eklenmiştir. (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ği ancak üst öğenin childFragmentManager öğesine eklenmediği durumları algılayan yeni bir WrongNestedHierarchyViolation ekledi. (I72521, b/249299268)

Davranış Değişiklikleri

  • Parçalar artık SavedStateRegistry durumlarını onAttach() tarihinden önce geri yükleyerek yukarı doğru tüm yaşam döngüsü yöntemlerinde kullanılabilir olmalarını sağlamaktadır. (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 sapması nedeniyle çakışmaları önler.(I8e534, b/128612536)

Hata Düzeltmeleri

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ğrısı yapması 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 kayıtları içerir.

Hata Düzeltmeleri

  • Parçada 1.5.2: Aynı anda bir popBackStack() ve replace() işlemini yürütmenin, çıkış parçalarının yanlış Animation/Animator çalıştırmasına neden olabileceği bir sorun 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 kayıtlı durumu tamamen özel kitaplık durumu (özel Parcelable sınıfları) ile geliştirici tarafından sağlanan durum arasında bölündü. Bu durum artık her zaman bir parçanın durumunun tam olarak nereden kaynaklandığının belirlenmesine olanak tanıyan bir Bundle içinde depolanır. (b/207158202)

Hata Düzeltmeleri

  • Fragment 1.5.1 öğesinde: AGP 7.4 ile birlikte sunulan lint sürümünü kullanmanın, lint'in kilitlenmesine neden olduğu DialogFragmentCallbacksDetector'deki bir 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ı. 1.5.7 sürümü 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

  • Herhangi bir Parçanın kaldırılmasının, Menü öğeleri eklenmiş olsa da olmasa da etkinliğin menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
  • Lifecycle zaten STARTED ise ve bir sonuç zaten mevcutsa 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ı kaydedilen 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ılan 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

  • Aynı anda popBackStack() ve replace() işlemini yürütmenin, çıkış parçalarının yanlış Animation/Animator çalıştırmasına neden olabileceği 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ı. Sürüm 1.5.1 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 olacağı bir DialogFragmentCallbacksDetector regresyonu 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'dan sonraki önemli değişiklikler

  • CreationExtras Integration (Oluşturma Ekstraları Entegrasyonu) - Fragment, artık Lifecycle 2.5.0'ın CreationExtras aracılığıyla durum bilgisiz ViewModelProvider.Factory sağlayabilir.
  • Bileşen İletişim Kutusu Entegrasyonu - DialogFragment, onCreateDialog() tarafından döndürülen varsayılan iletişim kutusu olarak artık 1.5.0 Etkinliği üzerinden ComponentDialog kullanıyor.
  • Kayıtlı Örnek Durumunu Yeniden Düzenleme: Parçalar örnek durumunu kaydetme yöntemlerini değiştirmeye başladı. Bu, parçaya hangi durumun kaydedildiğini ve durumun kaynağını net bir şekilde tanımlamaya yardımcı olma çabasıdır. Mevcut değişiklikler şunlardır:
    • FragmentManager, kayıtlı örnek durumunu artık doğrudan özel bir Parcelable içine değil, 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ı atlayabilmesini sağlıyor.
  • Etkinliğinizin ActionBar öğesine menü sağlamak için kullanılan Fragment API'lerinin desteği sonlandırılmıştır. 1.4.0 etkinliğinde 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ı. 1.5.0-rc01 sürümü bu kayıtları içerir.

Kaydedilen Örnek Durumunu Yeniden Düzenleme

  • 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ı, 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ı. 1.5.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Kaydedilen Örnek Durumunu Yeniden Düzenleme

  • FragmentManager, kayıtlı örnek durumunu artık doğrudan özel bir Parcelable içine değil, Bundle klasörüne kaydediyor. Bu, Fragments tarafından gerçekte nelerin kaydedildiği konusunda daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)
  • Parça Sonuç API'leri aracılığıyla ayarlanan ve henüz yayınlanmamış sonuçlar, artık FragmentManager öğesinin dahili durumundan ayrı olarak kaydedilmektedir. 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ğinde 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 artık SavedStateRegistryOwner ile başlatıldığında bile 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 işlevini by viewModels() ve by activityViewModels() işlevlerine iletebilirsiniz. (Ibefe7, b/217601110)

Davranış Değişiklikleri

  • DialogFragment, artık onCreateDialog() tarafından döndürülen varsayılan iletişim kutusu olarak ComponentDialog adresini 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ı atlayabilmesini sağlı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

  • 1.4.1 Bölümünden: FragmentContainerView, xml'den oluşturulan görüntüleme kimliklerinin negatif değerleri olduğunda artık yasa dışı durum istisnası bildirmez. (Ic185b, b/213086140)
  • 1.4.1 Parçasından: by viewModels() geçit işleviyle özel bir ownerProducer lambda kullanılırken, her zaman parçanın fabrikasını kullanmak yerine, özel ViewModelProvider.Factory sağlanmamışsa artık bu sahibin defaultViewModelProviderFactory değeri kullanılır. (I56170, b/214106513)
  • Bir Fragment öğesinin registerForActivityResult() geri çağırmasından 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ı. 1.4.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • XML'den oluşturulan görünüm kimlikleri negatif değerlere sahip olduğunda FragmentContainerView artık geçersiz durum istisnası uygulamaz. (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'dan sonraki önemli değişiklikler

  • FragmentStrictMode API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sunar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel işleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. FragmentManager üzerinde, hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy yeni setStrictModePolicy() yöntemi ile ayarlanabilir. Bu politika, söz konusu FragmentManager öğesi ve kendi benzersiz politikasını ayarlamamış 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ğine sahip findFragmentById() ile aynı mantığı kullanır ancak zincirleme çağrıya izin verir.

    val navController = binding.container.getFragment<NavHostFragment>().navController
    
  • FragmentScenario artık Closeable özelliğini uygulayarak Kotlin’in use yöntemiyle veya kaynaklarla deneyin.

  • FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}, Fragments geçişinde temanızdan alınan standart Etkinlik geçişi animasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtmek için 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() kullanan parça işlemlerinden oluşan bir arka yığın tutar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Parçalarla durumu kaydetme mekanizmalarını kullanarak bu işlemleri pop ve önceki duruma geri döndürebilirsiniz.

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

saveBackStack(), eşzamansız olması ve tüm parça işlemlerinin ters çevrilecek ("aktarılan") ve sonradan kaldırılıp kaldırılmak üzere seçilen ada geri dönmesini sağladığından popBackStack() ile benzer şekilde çalışır. Ancak bu kullanım, birkaç önemli açıdan farklılık gösterir:

  • saveBackStack() her zaman kapsayıcıdır.
  • Belirtilen ad arka yığında bulunamazsa veya boş bir ad verilirse tüm işlemleri arka yığında gösterecek popBackStack()'ten farklı olarak, 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 View durumu depolanır, her parçanın onSaveInstanceState() çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tüm ViewModel örnekleri korunur (ve bunlar üzerinde onCleared() ç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şlemi setReorderingAllowed(true) kullanmalıdır.
  • Kaydedilen işlem grubu, aradaki zamanda arka grupta ne tür değişiklikler yapılmış olursa olsun, herhangi bir zamanda 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 herhangi bir referans döndürmemesini sağlamak için geçişli alt parça kümelerinde tutulmuş bir parça içeremez.

Önceden kaydedilmiş bir yığını geri yükleyen veya daha önce kaydedilmiş bir arka yığını temizleyen saveBackStack(), restoreBackStack() ve clearBackStack() ile benzer şekilde, daha önce aynı adla saveBackStack() çağırmadıysanız bunların 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ı. 1.4.0-rc01 sürümü 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ı. 1.4.0-beta01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Üst parçalar, artık kendi geri çağırma işlemini başlatmadan önce hiyerarşinin tamamında onHiddenChanged() öğesini dağıtır. (Iedc20, b/77504618)
  • Klavye, açık klavyeli bir parçadan geri dönüşüm görünümlü bir parçaya giderken artık otomatik olarak kapanacak. (I8b842, b/196852211)
  • DialogFragment artık show(), showNow() veya dismiss() yöntemini çağırdığınızda oluşturduğu tüm işlemler için setReorderingAllowed(true) kullanıyor. (Ie2c14)
  • DetachAndAttachFragmentInSameFragmentTransaction için ç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 analizi uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde yapıldığında birbirlerini iptal eder. Bu nedenle, herhangi bir şey yapabilmek için ayrı işlemlere bölünmeleri 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

  • Artık Etkinlik Sonuçları API'leri (startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions ve onRequestPermissionsResult) tarafından işlenen API'lere yönelik kullanımdan kaldırma mesajının tamamı daha fazla ayrıntı eklenerek genişletildi. (cce80f)
  • Hem Fragment hem de DialogFragment için onActivityCreated() ile ilgili desteği sonlandırma mesajı 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 kayıtları içerir.

Yeni Özellikler

  • Daha önce saveBackStack(name) ile kaydedilmiş durumları temizlemek için artık clearBackStack(name) numaralı telefonu arayabilirsiniz. (I70cd7)

API Değişiklikleri

  • FragmentContainerView sınıfı, getFragment işlevinin boş değerine düzgün bir şekilde uymasını sağlamak için Kotlin ile yeniden yazılmıştır. (If694a, b/189629145)
  • FragmentStrictMode artık Kotlin dilinde (I11767, b/199183506) yazılmıştır

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 dikkate 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 kayıtları içerir.

Hata Düzeltmeleri

  • FragmentTransaction geri yüklenirken veya görünen bir parçanın ikinci kopyası olarak görünen 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 giderildi. (I9039f)
  • saveBackStack() aracılığıyla kaydedilen durumun, bu durum geri yüklendikten sonra bile FragmentManager tarafından tutulmasına neden olan sorun düzeltildi. (Ied212)
  • show(FragmentTransaction, String) yöntemiyle DialogFragment'i ö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ıldığında Fragment'ın görünümü artık doğru şekilde GONE olarak ayarlanır. (aosp/1766655, b/193603427)
  • 1.3.6 Parçasından: FragmentActivity, yaşam döngüsünde geçersiz kılınan geri çağırmalarda ilk işlemi olarak artık kayıtlı durumun kilidini her zaman 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ş ayarda SavedStateRegistry kullanıyor. saveAllState() ve restoreSavedState() yöntemleri de FragmentController sürümünde kullanımdan kaldırılmıştır. FragmentActivity dışındaki parçaları barındırmak için FragmentController kullanıyorsanız FragmentHostCallbacks uygulamanızın SavedStateRegistryOwner uygulamasını sağlamanız gerekir. (Iba68e, b/188734238)

Hata Düzeltmeleri

  • Birden fazla arka yığını desteklemenin bir parçası olarak, replace() kullanan bir FragmentTransaction çalıştırmayla aynı anda tamamlandığında saveBackStack() çağrısının başarısız olmasına neden olan sorun düzeltildi. (I73137)
  • Çoklu 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ükledikten sonra ortaya çıkan NullPointerException düzeltildi. Bu sayede setReorderingAllowed(true) tüm işlemler için kontrol edilmeyebilir. (I8c593)
  • FragmentManager ürününün, FragmentManager ürününden kaldırılmış olsalar bile parçaların önceden kaydedilmiş durumunu 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ı hata mesajı içeriyor. (Ic33a7)
    • WrongFragmentContainerViolation artık, parçanın eklendiği kapsayıcıyı içeren daha ayrıntılı hata mesajına sahip. (Ib55f8)
    • TargetFragmentUsageViolation kullanım alanı sınıflarında artık ihlale neden olan parçayı ve içerdiği diğer bilgileri eklemek için daha ayrıntılı hata mesajları bulunmaktadır. (Icc6ac)
    • RetainInstanceUsageViolation uzantısına sahip sınıflarda artık, ihlale neden olan parçayı içeren daha ayrıntılı hata mesajları bulunuyor. (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ının görebildiği 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 yol açmadı. (6b8ddd, b/190622202)

Hata Düzeltmeleri

  • Parça 1.3.5'da: aosp/1679887 tarafından Parça 1.3.4'da sunulan paylaşılan öğe geçişlerinde bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" aracılığıyla veya transitionName ya da background ile dolaylı olarak ayarlanır) düzgün şekilde işler ve paylaşılan öğeler artık IndexOutOfBoundsException öğesi göndermez. (I16484, b/188679569, b/188969304)
  • Kaldırma parçasını gizlemeye çalıştığınızda FragmentManager artık kilitlenmez. (I573dd, b/183634730)
  • Üst düzey değişken değerlendirilirken OnCreateDialogIncorrectCallback hata analizi denetimi artık kilitlenmeyecek. (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 katı mod politikasından bağımsız olarak, FragmentManager üzerinden günlük kaydı 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ı moddaki Violation'lerden muaf tutulmasını destekler ve bu sınıfın cezaları atlamasını sağlar. (Ib4e5d, b/184786736)

  • FragmentStrictMode Violation sınıfının kapsamı, her ihlale göre yapı bilgileri eklenecek şekilde genişletildi. Bu sayede, ihlale neden olan parçayla (If5118, b/187871150) birlikte ihlale tam olarak neyin neden olduğunu 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 öğelerine genişletildi. SetTargetFragmentUsageViolation, hedef parçayı ve istek kodunu içeriyor. (I741b4, b/187871150)
    • SetUserVisibleHintViolation artık setUserVisibleHint() işlevine iletilen boole değerini içeriyor. (I00585, b/187871150)
    • FragmentTagUsageViolation artık <fragment> etiketinin bir parçayı doldurmaya ç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 soyut ve ihlal türü için iki durumu temsil eden SetRetainInstanceUsageViolation ve GetRetainInstanceUsageViolation olmak üzere iki alt sınıfa sahip. (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ğine sahip findFragmentById() ile aynı mantığı kullanır ancak zincirleme çağrıya izin verir. (Ife17a, b/162527857)

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

Birden çok arka grup

FragmentManager, addToBackStack() kullanan parça işlemlerinden oluşan bir arka yığın tutar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Parçalarla durumu kaydetme mekanizmalarını kullanarak bu işlemleri pop ve önceki duruma geri döndürebilirsiniz.

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

saveBackStack(), eşzamansız olması ve tüm parça işlemlerinin ters çevrilecek ("aktarılan") ve sonradan kaldırılıp kaldırılmak üzere seçilen ada geri dönmesini sağladığından popBackStack() ile benzer şekilde çalışır. Ancak bu kullanım, birkaç önemli açıdan farklılık gösterir:

  • saveBackStack() her zaman kapsayıcıdır.
  • Belirtilen ad arka yığında bulunamazsa veya boş bir ad verilirse tüm işlemleri arka yığında gösterecek popBackStack()'ten farklı olarak, 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 View durumu depolanır, her parçanın onSaveInstanceState() çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tüm ViewModel örnekleri korunur (ve bunlar üzerinde onCleared() ç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şlemi setReorderingAllowed(true) kullanmalıdır.
  • Kaydedilen işlem grubu, aradaki zamanda arka grupta ne tür değişiklikler yapılmış olursa olsun, herhangi bir zamanda 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 herhangi bir referans döndürmemesini sağlamak için geçişli alt parça kümelerinde tutulmuş bir parça içeremez.

saveBackStack() operatörüne benzer şekilde, daha önce aynı adla saveBackStack() çağırmadıysanız restoreBackStack() herhangi 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ılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sunar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel işleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. FragmentManager üzerinde, hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy yeni setStrictModePolicy() yöntemi ile ayarlanabilir. Bu politika, söz konusu FragmentManager öğesi ve kendi benzersiz politikasını ayarlamamış 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 FragmentManager öğesine yeniden eklenip eklenmediğini algılar. Bir Fragment örneği silindikten ve FragmentManager öğesinden kaldırıldıktan sonra hiçbir zaman Fragment örneğiyle 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 bunu algılar. Her zaman, düzeninizdeki parçalar için kapsayıcı olarak 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 denetimi artık bir DialogFragment içinde LayoutInflater.from(Context) kullanıldığında uyarı verir. 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 denetimi artık DialogFragment öğesinin onCreateDialog() yönteminde setOnCancelListener veya setOnDismissListener çağrılırken uyarı verir. Bu işleyiciler DialogFragment'in 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

  • Fragment 1.3.4'te: ViewModelProvider ile ViewTreeViewModelStoreOwner.get() API veya bir Parça içinde viewModel() Jetpack Compose yöntemi kullanıldığında Fragment 1.3.3 öğesinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları, getDefaultViewModelProviderFactory() değerini geçersiz kılması durumunda artık Fragment'iniz tarafından sağlanan ViewModelProvider.Factory öğesini doğru bir şekilde kullanmaktadır (@AndroidEntryPoint ek açıklamalı Fragment'ların Hilt kullanırken yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment görünümünün yanı sıra durumunu kaydeden ve 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 dağıtılmayacak ve BottomNavigationBar ve FloatingActionButton örneklerindeki sorunlar düzeltilecektir. (I1bb78, b/186012452)
  • Fragment 1.3.4'ten: Artık ayrıştırılabilir öğenizi, işlem sonlandırıldıktan sonra 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 öğesi false (yanlış) değerine ayarlandıysa 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

  • 1.4.0-alpha03 Bölümünden: 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 doğru şekilde GONE olarak ayarlanmıştır. (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çar. (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.4da sunulan paylaşılan öğe geçişlerinde ortaya çıkan bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" aracılığıyla veya transitionName ya da background ile dolaylı olarak ayarlanır) düzgün şekilde işler ve paylaşılan öğeler artık IndexOutOfBoundsException öğesi göndermez. (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

  • ViewTreeViewModelStoreOwner.get() API ViewModelProvider ile kullanıldığında veya Hilt kullanırken bir Fragment içinde viewModel() Jetpack Compose yöntemi ile kullanıldığında Fragment 1.3.3 öğesinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları, artık getDefaultViewModelProviderFactory() öğesini geçersiz kıldığı takdirde Parçanızın sağladığı ViewModelProvider.Factory değerini doğru şekilde kullanmaktadır (@AndroidEntryPoint ek açıklamalı Parçaların yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment görünümünün yanı sıra durumunu kaydeden ve 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 dağıtılmaz ve BottomNavigationBar ve FloatingActionButton örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452)
  • Artık işlem sonlandırıldıktan sonra Parcelable öğenizi parça sonuç paketinden alabilirsiniz. (I65932, b/187443158)
  • Bir ViewGroup'ta paylaşılan öğe geçişi yaparken, ViewGroup için transitionGroup değeri false olarak ayarlanmışsa artık düzgün bir şekilde geçiş yapılmaktadı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 Parçanın Görünümü ile ViewTreeSavedStateRegistryOwner.get() kullanılarak döndürülen SavedStateRegistryOwner ile kullanıldığında çalışmaktadır. (I21acf, b/181577191)

Hata Düzeltmeleri

  • 1.3.2 Parçasında kullanıma sunulan ve NavHostFragment tarafından kullanılanlar gibi setPrimaryNavFragment işlemi içeren bir FragmentTransaction öğesi çağrı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 kümesi dağıtılmasını sağlayarak her parçanın artık ekleri bağımsız olarak tüketebilmesini sağlar. (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ı artık düzgün şekilde ele alıyor ve BottomSheetDialog gibi iletişim kutuları tarafından kullanılan kimlikleri yeniden kullanırken görünüm hiyerarşisi sorunlarını düzeltiyor. (Ie6279, b/180021387)
  • FragmentManager.dump(), etkin parçalar listesindeki ilk parçaya artık düzgün bir şekilde girinti ekler. (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 ş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 girmek yerine artık tüm animasyonlar için yönü ayarlar. (I7072e, b/181142246)
  • Paylaşılan öğe geçişi yapılırken paylaşılan öğe hiyerarşisinde bulunan görünümlerin geçiş adları artık silinmez. (I4d4a6, b/179934757)

Bağımlılık Güncellemeleri

  • Parça artık Etkinlik 1.2.2'ye bağlıdır ve Fragment 1.3.1 veya sonraki bir sürümü kullanılırken Etkinlik InvalidFragmentVersionForActivityResult hata analizi denetimiyle ilgili bir sorun düzeltildi.
  • 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

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

Hata Düzeltmeleri

  • FragmentContainerView kullanarak zaten RESUMED etkinliği olarak genişletilen 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 fazladan 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 dokümanları, parametre belgelerini artık boş değer kabul etmeyeceklerini (I990ba, b/178348386) kabul edecek şekilde güncelledi

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/gizle işlemleri kullanılırken parçalar artık düzgün bir şekilde onCreateOptionsMenu çağrısı yapıyor (I8bce8, b/180255554)
  • Parça yerleştirilmeden önce başlayan geçişlere sahip alt parçalar artık düzgün şekilde RESUMED özelliğine erişebilir (Ic11e6, b/180825150)
  • <fragment> etiketi kullanılarak şişirilen parçalar artık her zaman RESUMED (I452ac, (I9fa49) olur.

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'dan bu yana 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 sayısız sorunu giderdi.
  • Etkinlik Sonucu API'si Entegrasyonu: 1.2.0 etkinliğinde sunulan ActivityResultRegistry API'si için destek eklendi. Böylece startActivityForResult()+onActivityResult() ve Fragment'ınızdaki yöntemleri geçersiz kılmadan requestPermissions()+onRequestPermissionsResult() akışları işlenecek. Ayrıca, bu akışları test etmek için kancalar sağladılar. Güncellenen Bir Etkinlikten Sonuç Alma konusuna bakın.

    • Bu sürümde, geçersiz istek kodları ve etkinlik sonucu API'sinin önceki FragmentActivity sürümlerinde çalışmasını engelleyen izin isteklerinin gönderilmesi ile ilgili çeşitli sorunlar giderilmiştir. FragmentActivity veya AppCompatActivity içinde 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ın iki Parça arasında geçirilmesi için destek eklendi. Bu yöntem, hiyerarşi parçaları (üst/alt), DialogFragment'lar ve Gezinme'deki parçalar için çalışır ve sonuçların yalnızca Parçanıza en az STARTED durumundayken gönderilmesini sağlar. Hedef parça API'leri kullanımdan kaldırılmış ve bunların yerine bu yeni API'ler yer almaktadır. Fragment Result API'yi kullanarak sonuç alma bölümünü inceleyin.

  • FragmentOnAttachListener: FragmentActivity ve Fragment için onAttachFragment() geri çağırma desteği sonlandırıldı. Daha esnek bir alternatif sunmak için yeni bir FragmentOnAttachListener eklendi. Bu sayede onAttachFragment(), doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara ayrı, test edilebilir işleyiciler için yetki verebilir ve FragmentManager'lara işleyici ekleme desteği sunar.

  • 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ı bir davranış sergileniyor ve Parça'nın durumunu temel Etkinlikten ayırıyor.
    • FragmentScenario artık her Lifecycle.State öğesine ilk kez geçmeden önce parçanın durumunun doğrulanmasını desteklemek için başlangıç Lifecycle.State ayarlamayı destekliyor.
    • Artık onFragment FragmentScenario API'sinin, Kotlin tarafından yeniden değiştirilen uzantı yöntemi withFragment biçiminde bir alternatifi bulunmaktadır. Bu yöntem, değer döndürmenizi sağlar. Özellikle, belirtilen blokta ortaya çıkan istisnaları tekrar ortadan kaldırır.
  • ViewTree Desteği: Fragment artık Yaşam Döngüsü 2.3.0 ve SavedState 1.1.0'e eklenen ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) ve ViewTreeSavedStateRegistryOwner API'lerini desteklemektedir. Böylece, bir kullanılırken parçanın ViewModelStoreOwner olarak ve parçanın görünümüne LifecycleOwner bağlı bir SavedStateRegistryOwner ile LifecycleOwner döndürülecektir. FragmentView

  • TRANSIT_ animasyon değişikliği: 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 gizli.

  • setRetainInstance() desteğinin sonlandırılması: Fragment'larda setRetainInstance() yöntemi kullanımdan kaldırılmıştır. ViewModel'lerin 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 normal, tutulmayan Parçayı kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, yaygın bir sızıntı kaynağını ortadan kaldırırken tek bir saklama durumunun (yani, ViewModel ürününün kurucusu ve onCleared() geri çağırmasını) oluşturan ve yok edilmesinin yararlı özelliklerini korur.

  • ViewPager 1 bağdaştırıcısının kullanımdan kaldırılması: ViewPager2 1.0.0 sürümüyle birlikte, ViewPager ile etkileşim için FragmentPagerAdapter ve FragmentStatePagerAdapter sınıflarının desteği sonlandırıldı. ViewPager'dan ViewPager2'ye geçiş 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ı. 1.3.0-rc02 sürümü 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ünmesi sorunu düzeltildi; alt iletişim kutusu parçaları artık her zaman üst iletişim kutusu parçasının üzerinde görünüyor. (I30806, b/177439520)
  • Animation ile bir hide işlemi yapmanın animasyonun sonunda gizlenen parçanın yanıp sönmesine neden olmasıyla ilgili sorun düzeltildi. (I57e22, b/175417675)
  • Görünüm hiyerarşisi eklenmeden önce eklenen geçişleri olan parçalar artık RESUMED değerine doğru şekilde erişiyor. (I1fc1d, b/177154873)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Fragment'ın Lifecycle görünümü, artık "no event down from INITIALIZED" (INITIALIZED tarihinden itibaren etkinlik yok) belirten istisnalardan kaçınarak, Lifecycle öğesinin CREATED hedefine ulaşmadan önce Fragment'ın görünümünün kaldırıldığı durumları uygun şekilde ele almaktadır. (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ı. 1.3.0-rc01 sürümü 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 eklenirken ve ardından ekleme işlemi bir pop işlemiyle kesintiye uğratıldığında ortaya çıkan sızıntı ve görsel yapı düzeltildi. (I952d8)
  • onCreate() veya onViewCreated() yöntemleri sırasında parça değiştirildiğinde parçanın görünümünün görünüm hiyerarşisinde kalması sorunu düzeltildi. (I8a7d5)
  • Bunlar devam ettirildiğinde odak artık Parça kök görünümlerine doğru şekilde geri yüklenir. (Ifc84b)
  • Pop ve değiştirme işlemleri aynı parçada birleştirildiğinde artık uygun animasyonlar gösterilir (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 program uyumluluğu korunarak tamamen Kotlin'e dönüştürüldü. (I19d31)

Davranış Değişiklikleri

  • class veya android:name özelliğini kullanarak bir parçayı şişirmeyen FragmentContainerViews artık bir FragmentActivity dışında kullanılabilir. (Id4397, b/172266337)
  • Bir parçanın maksimum yaşam döngüsü DESTROYED olarak ayarlanmaya çalışıldığında IllegalArgumentException hatası (Ie7651, b/170765622) döndürülür
  • Parça Senaryosunu DESTROYED durumuyla başlatmak artık bir IllegalArgumentException (I73590, b/170765622) hatası verir

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Animator veya TRANSIT_FRAGMENT_ seçeneklerinden birini kullanan bir parça geçişini kesintiye uğratırsanız görünümün son durumuna ulaşmamasına neden olan sorun düzeltildi. (I92426, b/169874632)
  • Çıkan bir Animation öğesine sahip parçaların düzgün şekilde kaldırılmasını engelleyen bir sorun düzeltildi. (I83d65)
  • Efektleri tersine çevrilen parçalardan çıkış yapılması, artık doğru şekilde iptal edilir ve uygun girme efektiyle yeniden başlatılır. (I62226, b/167092035)
  • hide() çıkışının Animator çalışmaması sorunu giderildi. (Id7ffe)
  • Parçalar artık ertelenip hemen başlatıldığında düzgün bir şekilde görünüyor. (Ie713b, b/170022857)
  • Animasyon sırasında odaklanılan görünümlerini kaldıran parçalar, RESUMED değerine (I38c65, b/172925703) ulaştığında artık 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

  • setMaxLifecycle(), parça CREATED konumuna taşınmadığı sürece artık Lifecycle durumunun INITIALIZING olarak ayarlanmasını destekler. (b/159662173)

API Değişiklikleri

Davranış Değişiklikleri

  • Parça kaynak dosyaların doğru şekilde özel hale getirilmesi. (aosp/1425237)

Hata Düzeltmeleri

  • <fragment> etiketi kullanılarak şişirilen parçalar artık STARTED (I02f4c) etiketine geçmeden önce görünümleri bir kapsayıcıya eklenene kadar düzgün bir şekilde bekler.
  • Görünür olan parçaların ardından setMaxLifecycle() - CREATED arası artık çıkış efektlerini düzgün bir şekilde çalıştırıyor. (b/165822335)
  • Arka yığına eklenmeyen 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 boş olmayan bir FragmentManager içeren parçalar her zaman etkin sayılacaktır. (aosp/1422346)
  • Parçanın varsayılan efektleri olan TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE artık Animation yerine Animator özelliğini kullanıyor. (b/166155034)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Parçalar artık animasyonlarını başlatmadan hemen önce görünüm odağı durumlarını düzgün bir şekilde geri yükliyor. (Icc256)
  • Yalnızca paylaşılan öğe geçişi olan parçalar özel etkilerini düzgün bir ş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ılmaktadır. (Id5876)
  • Yeni durum yöneticisi, artık mevcut parça görünümünü eklemeden önce mevcut parça görünümünü tutarlı şekilde kaldırıyor. (I41a6e)
  • 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 olarak ayarlarsanız, animasyonun gerçekte görünmez olacağı anlamına gelir. (b/164481490)
  • Parçalar artık Animations yerine Animators değerine öncelik veriyor. 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ın girilmesi sırasında parçaların yanıp sönmesine neden olmuyor. (b/163084315)

Bilinen Sorun

Yeni durum yöneticisini kullanırken, önceki parçaya dönmek yerine özel efekt girerken 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üm; FragmentManager ürününün dahili durum yönetiminde önemli bir yeniden düzenleme içeriyor. Bu değişiklik yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin dağıtımını ve ertelenmiş işlemlerin işlenme şeklini etkiliyor. 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) içinde 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 durduruluyor. (b/161654580)
  • Parçalar artık aynı parçalarda birbiriyle rekabet eden birden çok animasyonu engelleyerek, Animation değerinin tüm Transition etkilerini geçersiz kılacağı veya bağımsız bir parçada bir Animator ile Transition değerinin çalışacağı durumları ortadan kaldırıyor. (b/149569323)
  • Artık yalnızca son giren parça ve çıkan ilk parça yerine, giren ve çıkan tüm parçalardan enterTransition ve exitTranstion çalıştırılır. (b/149344150)
  • Ertelenen parçalar artık CREATED durumunda takılmaz. Bunun yerine, diğer parçalarla birlikte STARTED konumuna taşınır. (b/129035555)
  • FragmentManager ürününün, ertelenmiş bir yeniden sıralanmış işlem ile yeniden sipariş edilmemiş bir işlem karıştırılırken işlemleri sırayla 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 artık onAttachFragment() geri çağırma işlevinden findFragmentById() veya findFragmentByTag() çağrısı yaparken doğru parçaları döndürüyor. (b/153082833)
  • Parçalar, onları değiştiren parça ertelendiğinde, yok edilmekte olan parçalarda onCreateView() çağrısı yapmaz. (b/143915710)
  • Transition çerçevesi ve AndroidX Transition örnekleri birleştirilmeye çalışılırken 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ılırsa, artık bir yapılandırma değişikliğinden sonra sessizce veri sağlanmaması yerine buna izin verilmediğini belirten bir istisna bildiriliyor. (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 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() 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 başlangıç 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'in yeniden iyileştirilmiş uzantı yöntemi withFragment biçiminde bir alternatif eklendi. Özellikle, belirtilen blokta ortaya çıkan istisnaları tekrar ortadan 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ı bir davranış sergileniyor ve Parça'nın durumunu temel Etkinlikten ayırıyor. (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ıldığında artık yaşam döngüsü gözlemleyicisi düzgün bir şekilde temizlenir. (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ı. Sürüm 1.3.0-alpha06 bu kayıtları içerir.

Yeni Özellikler

  • FragmentActivity ve Fragment ile ilgili onAttachFragment() geri çağırma özelliği kullanımdan kaldırıldı. Daha esnek bir alternatif sağlamak amacıyla yeni bir FragmentOnAttachListener eklendi. Bu sayede onAttachFragment(), doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara ayrı, test edilebilir dinleyiciler için yetki verilirken, FragmentManager'lar için işleyici de desteklenir. (I06d3 gün)

Hata Düzeltmeleri

  • Üst parçaların görünüm durumları artık alt parçalarından önce geri yüklenir. Yapılandırma değişikliğinden sonra, DialogFragment alt parça olarak başka bir DialogFragment gösterdiğinde görsel sıralama sorunu düzeltilir. (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 kullanıyor. Önceden ayarlanmış bir sonucu veya işleyiciyi açıkça 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 üzerinde 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ımı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ı. Sürüm 1.3.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • FragmentManager üzerinde yeni API'ler aracılığıyla sonuçların iki Parça arasında geçirilmesi için destek eklendi. Bu yöntem, hiyerarşi parçaları (üst/alt), DialogFragment'lar ve Gezinme'deki parçalar için çalışır ve sonuçların yalnızca Parçanıza en az STARTED durumundayken 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 Activity Result API'lerini kullanın. (aosp/1290887)
  • 1.2.0-alpha04 Etkinliği'ndeki önemli 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ıldığında, artık alt parçaları tarafından sağlanan menülerin görünürlüğü doğru bir şekilde değişir. (b/153593580)
  • FragmentContainerView ile DialogFragment görünüm hiyerarşisine parça eklerken karşılaşılan illegalStateException düzeltildi. (b/154366601)
  • Parçalar bir etkinliğin dışında barındırılırken parçalardaki getDefaultViewModelProviderFactory() yöntemi 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 kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • BottomSheetDialogFragment kullanılırken Parça 1.3.0-alpha02da 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 yoksayılmasına neden olan sorun düzeltildi. (b/152023196)
  • Fragment 1.2.4 ürününden: Fragment ProGuard kuralları, saklanan parçaların kod karartılmasına izin verecek şekilde güncellendi. (b/151605338)
  • Fragment 1.2.4 öğesinde: DialogFragment sınıflarının 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ı. Böylece, observe çağırırken this veya viewLifecycleOwner kullanımı güvenli hale gelir. (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ı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • 1.2.0-alpha02 Etkinliğinde sunulan ActivityResultRegistry API'si için destek eklendi. Bu API, Fragment'ınızdaki yöntemleri geçersiz kılmadan startActivityForResult()+onActivityResult() ve requestPermissions()+onRequestPermissionsResult() akışlarını işleyecek ve bu akışları test etmek için kancalar sağladı. Güncellenen Bir Etkinlikten Sonuç Alma konusuna bakın. (b/125158199)

API Değişiklikleri

  • DialogFragment artık onCreateView() öğesinin varsayılan olarak şişirilmesi gereken düzeni belirten @LayoutRes kodunu alan bir kurucu sağlıyor. (b/150327080)
  • onActivityCreated() yöntemi kullanımdan kaldırıldı. Parçanın görünümüne dokunan kod onViewCreated() içinde (onActivityCreated() öncesinde çağrılır) yapılmalı ve diğer başlatma kodu onCreate() içinde olmalıdır. Özellikle etkinliğin onCreate() işlemi tamamlandığında geri arama almak için bir LifeCycleObserver etkinliğin onAttach() içinde Lifecycle kaydına kaydedilmeli ve onCreate() geri çağırması alındıktan sonra kaldırılmalıdır. (b/144309266)

Hata Düzeltmeleri

  • 1.2.3 Parçasında: onCreateDialog() içinden getLayoutInflater() çağrısı yapılırken DialogFragment öğesinde StackOverflowError neden olan bir hata düzeltildi. (b/117894767, aosp/1258664)
  • Parçadan 1.2.3: Kullanılmayan Fragment sınıflarının sadeleştirilebilmesini sağlamak için Fragment'ın dahil edilen ProGuard kurallarının kapsamı azaltıldı. (b/149665169)
  • Parça 1.2.3'dan: Kotlin özelliğinin adını gölgeleyen bir yerel değişken adı kullanıldığında UseRequireInsteadOfGet Lint denetimindeki 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, artık iletişim kutusunu ekrana düzgün ş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

  • Fragment'larda setRetainInstance() yöntemi kullanımdan kaldırılmıştır. ViewModel'lerin 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 normal, tutulmayan Parçayı kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, yaygın bir sızıntı kaynağını ortadan kaldırırken tek bir saklama durumunun (yani, ViewModel ürününün kurucusu ve onCleared() geri çağırmasını) oluşturan ve yok edilmesinin yararlı özelliklerini korur. (b/143911815)
  • ViewPager2 1.0.0 sürümünün yayınlanmasıyla birlikte, ViewPager ile etkileşim için kullanılan FragmentPagerAdapter ve FragmentStatePagerAdapter sınıflarının desteği sonlandırılmıştır. ViewPager'dan ViewPager2'ye geçiş konusuna bakın. (b/145132715)

Hata Düzeltmeleri

  • Parça ProGuard kuralları artık tüm Fragment örnekleri yerine, yalnızca kullanılan varsayılan kurucular Fragment sınıflarını doğru şekilde tutarak Fragment 1.2.1 öğesinde sunulan bir regresyonu düzeltir. (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ış pozitiflik göstermez (ör. view). (b/149891163)
  • FragmentContainerView artık Android Studio'da düzen önizlemesini kullanırken bir UnsupportedOperationException atmıyor. (b/149707833)
  • Durum kaydedildikten sonra eklenen elde tutulan 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 öğe daha önce 1.3.0-alpha04 Parçasında yayınlandı. (b/154645875)
  • Bir parçada setMenuVisibility(false) çağrıldığında, artık alt parçaları tarafından sağlanan menülerin görünürlüğü doğru bir şekilde değişir. Bu öğe 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ı. 1.2.4 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Saklanan parçaların kod karartmaya izin vermesi için Fragment ProGuard kuralları güncellendi. (b/151605338)
  • Yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğundan DialogFragment sınıflarında FragmentLiveDataObserve Lint kuralı devre dışı bırakıldı. Bu sayede, observe çağırırken this veya viewLifecycleOwner kullanılabilmesini güvenli hale getirir. (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

  • DialogFragment ürününde, onCreateDialog() içinden getLayoutInflater() çağrılırken StackOverflowError hatasına neden olan bir hata düzeltildi. (b/117894767, aosp/1258665)
  • Kullanılmayan Fragment sınıflarının sadeleştirilebilmesini sağlamak için Fragment'in 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 artık düzen önizlemesinde yanlış oluşturucuyu kullandığı için bir UnsupportedOperationException bildirmez. (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 çağrıları 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'leri için artık parçalar, daha açıklayıcı hata mesajları için checkNotNull(get___()), requireNonNull(get___()) veya get___()!! yerine ilişkili require___() yöntemlerinin kullanılmasını öneriyor. (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)
  • Lint denetimlerinin birçoğunun (aosp/1157012) biçimlendirmesi düzeltildi

Harici katkılar

  • Slack adına require___() Lint kontrollerine katkıda bulunduğu 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ğini (veya Kotlin'in düzeltilmiş versiyonlarını) alan parçaların varsayılan oluşturucuları artık ProGuard tarafından korunuyor. (b/148181315)
  • FragmentStatePagerAdapter ve FragmentPagerAdapter, finishUpdate() çalıştırılırken FragmentManager tarafından oluşturulan istisnaları artık yakalamıyor. (aosp/1208711)
  • FragmentManager.findFragment() öğesinin, <fragment> etiketi aracılığıyla eklenen parçalarla çalışmaması sorunu giderildi. (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ışken 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'dan sonraki önemli değişiklikler

  • FragmentContainerView: FragmentContainerView, dinamik olarak eklenen Fragment'lar için FrameLayout veya diğer düzenlerin kullanımının yerini alacak, kesinlikle önerilen 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 (1.3.0 geçişini kullanı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şken 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 kullanan Kotlin uzantıları da (fragmentTransaction.replace<YourFragment>(R.id.container)) fragment-ktx etiketine eklendi.
  • Yaşam Döngüsü ViewModel SavedState 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 denetimleri: onCreateView(), onViewCreated() veya onActivityCreated() öğesinde LiveData öğesini gözlemlerken getViewLifecycleOwner() kullandığınızdan emin olmanızı sağlayan yeni bir Lint denetimi eklendi.
  • getFragmentManager() desteğinin sonlandırılması: Parçadaki getFragmentManager() ve requireFragmentManager() yöntemleri kullanımdan kaldırılmıştır ve bunların yerine tek bir getParentFragmentManager() yöntemiyle değiştirilmiştir. 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() etiketini dikkate alarak uygulamanızı yeniden derlemeden DEBUG veya VERBOSE günlük kaydını etkinleştirmenize olanak tanır.

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. Bu nedenle, her parça sınıfı için manuel olarak bir Keep kuralı eklemeniz gerekir. (b/142601969)
  • FragmentContainerView ile XML olarak 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ı. 1.2.0-rc05 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • <fragment> etiketi kullanılırken 1.2.0-rc04 parçasındaki regresyon sorunu giderildi. Bu regresyon, etkinliği kaldırma sırasında onViewCreated() öğesinin yanlış çağrılmasına neden olur. (b/146290333)
  • <fragment> etiketiyle eklenen parçalar, yalnızca bazen düzende (yani yalnızca yatay düzeninizde) olsa bile yapılandırma dışı öğeleri düzgün bir şekilde temizleniyor. Sonuç olarak bu Fragment'lar, örneklendirmek yerine hiçbir zaman yaşam döngüsü yönteminden geçmek yerine düzeninizde değilken bile doğru şekilde CREATED konumuna 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ı. 1.2.0-rc04 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • Görsel sorunları önlemek için TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE 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ı. 1.2.0-rc03 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • Kaldırılan parçaların çıkış animasyonları / geçişleri çalışırken findFragmentById()/findFragmentByTag() tarafından yine de 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 öğelerden önce doğru şekilde durdurulur. (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ülmüş, ölçeklendirilmiş vb. Görünümler'i işliyor (b/142835261)

Belge Güncellemeleri

  • setUserVisibleHint() tarihiyle ilgili desteği sonlandırma dokümanlarına 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 SavedState 1.0.0-rc03 ve Etkinliğe 1.1.0-rc03 bağlıdır.

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ı. 1.2.0-rc02 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • Kotlin'de onCreateView(), onViewCreated() veya onActivityCreated() öğelerinden LiveData öğesini gözlemlerken getViewLifecycleOwner() kullanımı için LintFix (Fragment 1.2.0-rc01 öğesinde kullanıma sunulmuştur) artık getViewLifecycleOwner() yerine Kotlin özellik erişimi söz dizimini viewLifecycleOwner kullanmaktadı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ı. 1.2.0-rc01 sürümü bu kayıtları içerir.

Yeni özellikler

  • FragmentContainerView, <fragment> etiketinin işlevselliğini yansıtan android:name özelliğine ek olarak artık class özelliğini de desteklemektedir. (b/142722242)
  • onCreateView(), onViewCreated() veya onActivityCreated() değerlerinde LiveData öğesini gözlemlerken getViewLifecycleOwner() kullandığınızdan emin olmanızı sağlayan yeni bir Lint denetimi eklendi. (b/137122478)

Hata düzeltmeleri

  • DialogFragment üzerindeki onDismiss ve onCancel geri çağırmaları artık kendilerine geçirilen DialogInterface değerinin boş olmadığını ve yürütüldüğünde getDialog() işlevinin null değerini döndürmeyeceğini garanti eder. (b/141974033)
  • FragmentContainerView, class veya android:name tarafından tanımlanan Parçayı enflasyonun bir parçası olarak ekleyerek findFragmentById() ve findFragmentByTag() öğelerinin hemen ardından çalışmasını sağlar. (b/142520327)
  • Durumun kaydedilmesinden dolayı FragmentContainerView öğesinde IllegalStateException düzeltildi. (b/142580713)
  • FragmentContainerView sınıfı karartıldığında FragmentContainerView öğesinde ortaya çıkan bir 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. Bu nedenle, her parça sınıfı için manuel olarak bir Keep kuralı eklemeniz gerekir. aapt2 aracılığıyla düzeltilene kadar FragmentContainerView hizmetine geçmeyi ö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ı. 1.2.0-beta02 sürümü bu kayıtları içerir.

Hata düzeltmeleri

  • Fragment öğesi onInflate() öğesinin, FragmentContainerView öğesinden uygun özellikleri alamamasına ve NavHostFragment gibi destek kayıtlarını bozmasına 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ı. 1.2.0-beta01 sürümü bu kayıtları içerir.

Yeni özellikler

  • FragmentContainerView, android:name ve isteğe bağlı android:tag XML özellikleri için ek destekle başlangıç parçası ekleme desteği sunar. <fragment> etiketinden farklı olarak, FragmentContainerView, başlangıç parçasını eklemek için arka planda normal bir FragmentTransaction kullanır. Bu, FragmentContainerView üzerinde başka FragmentTransaction işlemi yapılmasına olanak tanır ve düzen için Görünüm Bağlama özelliğinin kullanılmasını sağlar. (b/139830628, b/141177981)
  • Parçalar artık <fragment> öğesini FragmentContainerView ile değiştirmek için hızlı bir düzeltme sunan bir Lint uyarısı içeriyor. (b/139830056)

Hata düzeltmeleri

  • androidx.transition kullanılırken ClassCastException sorunu düzeltildi. (b/140680619)
  • Geçiş 1.3.0-beta01 kullanılırken Fragment'lar, onDestroyView() dağıtımını göndermeden önce artık androidx.transition geçişlerinin (sırasıyla Parça 1.2.0-alpha03 ve Parça 1.2.0-alpha02'de düzeltilen çerçeve geçişlerine ve animasyonlara ek olarak) tamamlanmasını bekliyor. (aosp/1119841)
  • 1.3.0-beta01 Geçişi kullanılırken Fragment'lar artık aynı kapsayıcıda yeni geçişler / animasyonlar başlatmadan önce androidx.transition geçişlerini düzgün şekilde iptal ediyor. (aosp/1119841)
  • FragmentContainerView kullanılırken Fragment'inizin kök görünümünde androidx.transition geçişleri kullanılırken API 17 ve önceki sürümlerdeki bir sorun giderildi. (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'daki Log.w kullanımı kaldırıldı. (aosp/1126468)

Bilinen sorunlar

  • Parçanın onInflate() öğesi, FragmentContainerView öğesinden uygun özellikleri alamıyor. Bu durum, NavHostFragment gibi sorunlara 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ılmıştır ve bunların yerine tek bir getParentFragmentManager() yöntemiyle değiştirilmiştir. Bu yöntem, Parçanın eklendiği boş olmayan FragmentManager yöntemini 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() etiketini dikkate alarak uygulamanızı yeniden derlemeden DEBUG veya VERBOSE günlük kaydını etkinleştirmenize olanak tanır. (aosp/1116591)

Hata düzeltmeleri

  • Diğer parçalardaki çıkış animasyonları çalışırken parçalar artık düzgün bir şekilde kaldırılıyor. (b/140574199)
  • Fragment'ların Activity.findViewById() çağrısını, daha önce belirtmediği halde çağırması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 arkadaki yığından çıkarken çizim sırasını düzgün bir şekilde tersine çeviriyor. (b/139104187)
  • Aynı anda hem bir parça açılırken hem de yeni bir parça eklendiğinde yanlış animasyonun çalışması sorunu giderildi. (b/111659726)
  • Parçalar artık onDestroyView() öğesini göndermeden önce geçişlerin (Parça 1.2.0-alpha02 özelliğinde 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 kurucusu veya Fragment ile ViewModelProviders.of() kullanılırken varsayılan fabrika ayarıdır. (b/135716331)
  • FragmentTransaction cihazda 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

  • Animasyon z sıralaması sorunlarını ve Parçalara gönderilen pencere eklerini düzelttiği için FragmentContainerView, dinamik olarak eklenen Parçalar için kesinlikle önerilen kapsayıcı olarak sunulur, FrameLayout kullanımı yerine geçer. (b/37036000, aosp/985243, b/136494650)
  • Bir parçayla ş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)
  • Yaşam döngüsü boyunca Fragment geri çağırmaya @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 kapsamındaki yöntemlerin çoğu artık abstract değil. FragmentManager öğesinin kendisi abstract olarak kalır ve doğrudan örnek oluşturulmamalı veya genişletilmemelidir; getSupportFragmentManager(), getChildFragmentManager() vb. kaynaklardan yalnızca mevcut bir örneği almaya devam etmelisiniz.

Hata düzeltmeleri

  • Parça 1.1.0-rc04'dan: Parçalar artık Fragments'taki ertelenmiş geçişleri doğru şekilde iptal etmektedir. (b/138251858)
  • 1.1.0-rc03 Parçasında: 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)
  • 1.1.0-rc02 Bölümünde: Geçerli öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter kilitlenmeleri düzeltildi. (b/137209870)
  • Parçalar onDestroyView() öğesini dağıtmadan önce animasyonların tamamlanmasını bekler. (b/136110528)
  • Alt parçalardan ve alt parçalarından oluşturulan 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şleri kullanılırken ve pop-up ekleme işlemi birleştirilirken karşılaşılan NullPointerException düzeltildi. (b/120507394)
  • Robofactric testlerinde FragmentPagerAdapter ve FragmentStatePagerAdapter kullanılırken IllegalStateException'lere geçici bir çö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 doğrudan onViewCreated() çağrısı yapmadan önce requestApplyInsets() işlevini çağırarak görünümünüzün her zaman doğru eklerin olmasını sağlar. (b/135945162)

Hata düzeltmeleri

  • replace() öncesinde setPrimaryNavigationFragment() kullanan bir FragmentTransaction açılırken oluşan 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'dan Sonraki Önemli Değişiklikler

  • parça testi: fragment-testing yapısı, bir parçayı izole halde test etmek için bir FragmentScenario sınıfı sağlar. Daha ayrıntılı bilgi için Uygulamanızın parçalar belgelerini 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.
  • ViewModel'ler için Kotlin Mülk Yetkileri: 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 etkinliğin kapsamındaki ViewModel'lere erişmek için by activityViewModels().
  • Maksimum Yaşam Döngüsü: Artık FragmentTransaction üzerinde setMaxLifecycle() çağırarak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılan 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 R.layout kimliği alan bir oluşturucuyu çağırabilir. Bu, onCreate() içinde setContentView() çağrısına alternatif olarak içerik görünümü olarak ayarlanması gereken düzeni belirtir. Bu, alt sınıfınızın bağımsız değişkensiz oluşturucuya sahip olma koşulunu değiştirmez.
  • Fragment LayoutId oluşturucu: Fragment alt sınıfları artık isteğe bağlı olarak Fragment üzerinde R.layout kimliği alan bir kurucuya çağrı yapabilir. Böylece, onCreateView() geçersiz kılınmasına alternatif olarak bu parça için kullanılması gereken düzen belirtilir. 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çalardaki ertelenmiş geçişler doğru şekilde iptal ediliyor. (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

  • Zaman aşımına sahip postponeEnterTransition() aramasının birden fazla kez zaman aşımıyla ö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

  • Geçerli öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter kilitlenmeleri 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 bir şekilde güncelliyor. (b/133385058)
  • replace() öncesinde setPrimaryNavigationFragment() kullanan bir FragmentTransaction açılırken oluşan 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'lar için androidx.lifecycle.Lifecycle geri çağırma (özellikle STARTED, RESUMED, PAUSED, STOPPED ve DESTROYED ile ilgili) artık düzgün bir şekilde iç içe yerleştirilmiş. (b/133497591)
  • Bir Fragment'in onCreate()'sine kaydedilen OnBackPressedCallback örnek, 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)
  • Artık animateLayoutChanges="true" kullanılırken parça animasyonları ve geçişleri yoksayılıyor, böylece Parçaların düzgün bir şekilde kaldırılmaması sorunu düzeltildi. (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öntemi için geri çağırma alı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ğildir. 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ına uğrayan yeni bir postponeEnterTransition() aşırı yüklemesi eklendi. Bu işlemin ardından Parça otomatik olarak startPostponedEnterTransition() b/120803208 çağrısı yapacak.

API değişiklikleri

  • Zarar veren değişiklik: Daha önce kullanımdan kaldırılan ve Bundle alan FragmentFactory instantiate yöntemi kaldırıldı. aosp/953856
  • Çarpıcı 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ış olan parçalar artık son durumlarına ulaşmadan devam ettirilmez. b/131557151
  • setMaxLifecycle(Lifecycle.State.CREATED) kullanılırken Parçaları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() çağrısı yaparak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılan 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 sonraki sürümlere sahip cihazlarda çağrılabilir. (b/129880016)

Davranış Değişiklikleri

  • (b/129907905) sonucu olarak, 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ı sorunu düzeltildi. Bu durum, ViewModel'lerin ve saklanan alt saklanan parçaların düzgün bir şekilde atılmamasına neden olur. (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ı varsa parça yaşam döngüsüyle eklenen OnBackPressedCallback öğesinin çağrılmamasına neden olan sorunlar düzeltildi. Daha ayrıntılı bilgi için androidx.activity 1.0.0-alpha07'ye bakın. (aosp/948209)
  • Parçalar artık animasyonlar için LAYER_TYPE_HARDWARE uygulamasını zorunlu kılmamaktadır. Özellikle bir donanım katmanı animasyonuna ihtiyacınız varsa lütfen bunu animasyonunuzun bir 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’in adını içeriyor. (b/67759402)

API Değişiklikleri

  • Fragment ve FragmentActivity artık @LayoutRes int alanlı ikinci bir kurucu içeriyor. Bu oluşturucu, sınıfınıza ek açıklama ekleme işleminin önceki 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 bir bağımsız değişken Bundle'ı alan instantiate yöntemi kullanımdan kaldırılmıştır. Uygulamaların bunun Pakete dahil olmayan yeni instantiate aşırı yüklemesini kullanması gerekir. (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 bileşeninin getThemedContext() öğesi kaldırıldı. (aosp/934078)

Hata düzeltmeleri

  • 1.1.0-alpha05 sürümünde, gelen Fragment'ın ekranda yanıp sönmesine neden olan bir regresyon düzeltildi. (b/129405432)
  • Bir popBackStack+replace+popBackStack işlem dizisinden sonra birincil gezinme parçasının kaybolmasına neden olan sorun giderildi. (b/124332597)
  • Parça durumunu geri yüklerken Etkinliğinizde @ContentView oluşturucularını kullanırken oluşan sorun düzeltildi. (b/127313094)
  • Mevcut bir hedef Parçayı henüz FragmentManager'a eklenmemiş bir Fragment ile değiştirirken 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ümdeki 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 bağlı bir Fragment ile remove(), hide(), show(), detach() ve setPrimaryNavigationFragment() çağrıldığında sessizce hata vermek yerine artık IllegalStateException hatası verir (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 öğesi onDismiss() değerinin iki kez çağrılabilmesine 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() 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. onViewCreated() içinde ilgili çalışmaları 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 (b/121196360) veren bir requireArguments() yöntemi eklendi
  • getLifecycle(), getViewLifecycleOwner() ve getViewLifecycleOwnerLiveData() öğelerinin geçersiz kılınmaması gerektiğine ve gelecekteki bir sürümde nihai hale getirileceğine ilişkin bir not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen bir özellik isteğinde bulunun. (aosp/880714)
  • getViewModelStore() öğesinin geçersiz kılınmaması gerektiğine 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ğinde bulunun. (aosp/880713)
  • Fragments'in önceki sürümleriyle ikili program uyumluluğuyla ilgili bir sorun giderildi. (aosp/887877) (aosp/889834)

Hata düzeltmeleri

  • null öğesini setTargetFragment() öğesine geçirdiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)
  • onDestroy() içinde veya sonrasında hedef Parçalar'ın bazen kullanılmamasına neden olan sorun düzeltildi. (b/122312935)
  • DialogFragment’ın onDismiss() artık onDestroy() öncesinde çağrılıyor. (aosp/874133) (aosp/890734)

Sürüm 1.1.0-alpha03

17 Aralık 2018

Yeni özellikler

  • Fragment artık BundleSavedStateRegistryOwner işlemini uyguluyor ve yeni yayınlanan SavedState kitaplığına bağlıdır [aosp/824380]
  • İçeren Etkinlik [b/119050253] ile ilişkili ViewModel'leri almak için by activityViewModels Kotlin mülkü temsilcisi eklendi
  • by viewModels Kotlin mülkünün yetkisinin kapsamı, ViewModelStoreOwner öğesini almak için isteğe bağlı 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) gibi kodla [b/119050253] iletebileceksiniz.

API değişiklikleri

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

Hata düzeltmeleri

  • Kuraldışı durum düzeltildi: b/120814739 hatası kaydetme durumu
  • Kayıtlı örnek durumundan geri yüklenen parçalar artık her zaman boş olmayan bir Bundle [b/119794496] alacak
  • Kaldırılan Fragment, yeniden eklenirse artık Lifecycle nesnesini yeniden kullanmaz [b/118880674]

Sürüm 1.1.0-alpha02

3 Aralık 2018

Yeni özellikler

  • FragmentSenaryodaki Kotlin uzantıları, FragmentFactory örneğinde geçmeye alternatif olarak Fragment oluşturma işlemi için lambda kullanmanıza olanak tanıyor. (aosp/812913)

Hata düzeltmeleri

  • Arka yığında iç içe yerleştirilmiş Fragment'lar kullanıldığında bir IllegalStateException sorunu giderildi (b/119256498)
  • FragmentScenario.recreate(), FragmentFactory (aosp/820540) ile birlikte kullanılırken yaşanan kilitlenme düzeltildi
  • Parça kaldırıldıktan sonra hedef Parçalara 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 üzerinde derlenen FragmentScenario özelliğinin ilk sürümüdür. Daha ayrıntılı bilgi için Parça testi belgelerine bakın.

Yeni özellikler

  • Parçaları izole olarak test etmek için yeni Parça Senaryo sınıfı.
  • Artık yeni Fragment örneklerinin nasıl örneklendiğini kontrol etmek için herhangi bir FragmentManager öğesinde FragmentFactory ayarlayabilirsiniz.
  • Bir Fragment'tan ViewModel'leri almak için yeni bir by viewModels() Kotlin mülkü temsilcisi eklendi.
  • Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık bir 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.