Parça

Uygulamanızı bir Etkinlik içinde barındırılan birden fazla bağımsız ekrana segmentlere ayırın.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürüm
12 Şubat 2025 1.8.6 - - -

Bağımlılıkları beyan etme

Fragment'e bağımlı eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

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

Eski

dependencies {
    def fragment_version = "1.8.3"

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

Kotlin

dependencies {
    val fragment_version = "1.8.3"

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

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni bir sorun oluşturma

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

1.8 sürümü

1.8.6 sürümü

12 Şubat 2025

androidx.fragment:fragment-*:1.8.6 yayınlanır. 1.8.6 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • FragmentContainerView'ın setOnApplyWindowInsetsListener geçersiz kılma işlevi artık çerçevenin izin verdiğiyle eşleşen bir null dinleyici alıyor. (I575f0, b/282790626)

Sürüm 1.8.5

30 Ekim 2024

androidx.fragment:fragment-*:1.8.5 yayınlanır. 1.8.5 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Yalnızca Tahmini Geri hareketi iptal edildikten veya kesintiye uğradıktan sonra saveBackStack tarafından tetiklenen IllegalStateException sorunu düzeltildi. (I3387d, b/342419080)

Sürüm 1.8.4

2 Ekim 2024

androidx.fragment:fragment-*:1.8.4 yayınlanır. 1.8.4 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Androidx geçişleri kullanılırken sistem geri düğmesine hızlıca basmanın veya geri hareketi hızlıca yapmanın Fragment'lerin kilitlenmesine neden olduğu sorun düzeltildi. (Ibc038, b/364804225)
  • Tahmini geri hareketi kesintiye uğratmanın, parça yöneticisini tanımlanmamış bir duruma göndermesine ve hatta yanlış parçayı göstermesine neden olan sorun düzeltildi. (If82e2, b/338624457)
  • AndroidFragment örneğinizin kullandığı sınıfı dinamik olarak değiştirirken AndroidFragment içinde bir UninitializedPropertyAccessException düzeltildi. (I12dea)

Sürüm 1.8.3

4 Eylül 2024

androidx.fragment:fragment-*:1.8.3 yayınlanır. 1.8.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • FragmentManager artık Tahmini Geri hareketini işlerken bekleyen işlemleri doğru şekilde hesaba katıyor. Bu sayede, sistem geri yükleme işlemi artık IndexOutOfBoundsException hatasına neden olmaz. (I9ba32, b/342316801)
  • AndroidFragment, içeren etkinliğin/fragmanın durumu zaten kaydedilmişken besteye eklenirse artık kilitlenmiyor. (I985e9, b/356643968)

1.8.2 sürümü

24 Temmuz 2024

androidx.fragment:fragment-*:1.8.2 yayınlanır. 1.8.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • AndroidFragment artık üst fragmanın Fragman geri yığınına yerleştirildiği durumları düzgün şekilde ele alarak bu fragmana geri dönerken "No view found for id" (No view found for id) sorunlarının önüne geçiyor. (I94608)
  • ViewGroup alan FragmentTransaction.add yöntemi aracılığıyla eklenen parçalar artık onStart()'a geçmeden önce onContainerAvailable'yi bekler. Bu durum, AndroidFragment gibi API kullanıcılarını etkiler. AndroidFragment artık onStart() üzerinden taşımadan önce AndroidFragment'nin kompozisyona yeniden girmesini bekler. (I94608)

Sürüm 1.8.1

26 Haziran 2024

androidx.fragment:fragment-*:1.8.1 yayınlanır. 1.8.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Tahmini geri hareketi başlatıldığında kapsayıcı içermeyen parçaların hemen DESTROYED olarak ayarlanması sorunu düzeltildi. Hareket tamamlanana kadar CREATED durumunda tutulurlar. (If6b83, b/345244539)

1.8.0 sürümü

12 Haziran 2024

androidx.fragment:fragment-*:1.8.0 yayınlanır. 1.8.0 sürümü bu taahhütleri içerir.

1.7.0 sürümünden bu yana yapılan önemli değişiklikler

  • fragment-compose yapıları artık parça sınıfı adı aracılığıyla Oluşturma hiyerarşisine parça eklemenize olanak tanıyan bir AndroidFragment Composable içeriyor. Fragment'in durumunun kaydedilmesini ve geri yüklenmesini otomatik olarak yönetir. Bu yöntem, daha önce önerilen bir Fragment'i şişirmek için AndroidViewBinding kullanma yaklaşımının doğrudan yerine kullanılmalıdır.
  • FragmentManager'un OnBackStackChangedListener arayüzündeki onBackStackChangeCancelled geri çağırma işlevi artık FragmentManager'da yürütülen işlemlerin bir parçası olarak tetikleniyor. Bu sayede, onBackStackChangeCancelled geri çağırma işlevi onBackStackChangeCommitted geri çağırma işlevinin zamanlamasına daha yakın bir zamanlamayla tetikleniyor.

Sürüm 1.8.0-rc01

29 Mayıs 2024

androidx.fragment:fragment-*:1.8.0-rc01 yayınlanır. 1.8.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • FragmentManagers OnBackStackChangedListener arayüzündeki onBackStackChangeCancelled geri çağırma işlevi artık FragmentManager'de yürütülen işlemlerin bir parçası olarak tetikleniyor. Bu sayede, onBackStackChangeCancelled geri çağırma işlevi onBackStackChangeCommitted geri çağırma işlevinin zamanlamasına daha yakın bir zamanlamayla tetikleniyor. (I5ebfb, b/332916112)

Sürüm 1.8.0-beta01

14 Mayıs 2024

androidx.fragment:fragment-*:1.8.0-beta01 yayınlanır. 1.8.0-beta01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Fragment 1.7.1'ten: Tahmini geri sarma özelliği artık yalnızca tüm parçaların bir Animasyonlu veya Aralanabilir Androidx Geçişi'ne sahip olduğu işlemler için çalışır. Bu, kısmen aranabilir bir işlemin iptal edilmesinin siyah ekrana neden olmasına yol açan sorunu düzeltir. (I43037, b/339169168)

Sürüm 1.8.0-alpha02

17 Nisan 2024

androidx.fragment:fragment-*:1.8.0-alpha02 yayınlanır. 1.8.0-alpha02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • 1.7.0-rc02 Kırıntısından: Başka geçiş olmadan sharedElement ayarının neden çalışamayacağını belirtmek için günlükler eklendi. (Iec48e)
  • 1.7.0-rc02 Kırıntısından: Diğer tüm geçişlerin aranabilir olduğu bir işleme aranabilir olmayan bir paylaşılan öğe eklendiğinde kilitlenme yaşanmasına neden olan hata düzeltildi. Artık işlem, doğru şekilde aranabilir olmayan olarak kabul edilecektir. (I18ccd)

Sürüm 1.8.0-alpha01

3 Nisan 2024

androidx.fragment:fragment-*:1.8.0-alpha01 yayınlanır. 1.8.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Yeni AndroidFragment Composable, parça sınıfı adı aracılığıyla Oluştur hiyerarşisine parça eklemenize olanak tanır. Fragment'in durumunun kaydedilmesini ve geri yüklenmesini otomatik olarak yönetir. Bu, AndroidViewBinding Composable için doğrudan bir değişim olarak kullanılabilir.(b/312895363, Icf841)

Belge Değişiklikleri

  • OnBackStackChangedListener API'lerinin ne zaman çağrıldıklarını ve nasıl kullanıldıklarını belirtmek için API'lerle ilgili dokümanlar güncellendi. (I0bfd9)

Bağımlılık güncellemesi

1.7 sürümü

1.7.1 sürümü

14 Mayıs 2024

androidx.fragment:fragment-*:1.7.1 yayınlanır. 1.7.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Tahmini geri alma özelliği artık yalnızca tüm parçaların bir Animasyonlu veya Aralanabilir Androidx Geçişi'ne sahip olduğu işlemler için çalıştırılır. Bu, kısmen aranabilir bir işlemin iptal edilmesinin boş ekrana neden olduğu sorunu düzeltir. (I43037, b/339169168)

1.7.0 sürümü

1 Mayıs 2024

androidx.fragment:fragment-*:1.7.0 yayınlanır. 1.7.0 sürümü bu taahhütleri içerir.

Tahmini Geri Gitme Hareketi Desteği

  • Animator veya AndroidX Transition 1.5.0 kullanılırken artık parçalar, tahmini uygulama içi geri desteği sağlıyor. Bu sayede kullanıcılar, hareketi tamamlayarak işlemi gerçekleştirmeye veya iptal etmeye karar vermeden önce animatör/geçişinizi arayarak önceki parçayı görmek için geri hareketini kullanabilir.
Geçiş sistemi XML Kaynağı Tahmini geri gitmeyi destekler
Animation R.anim Hayır
Animator R.animator Evet
Framework Transition R.transition Hayır
Geçiş 1.4.1 veya daha eski bir sürüme sahip AndroidX Transition R.transition Hayır
Geçiş 1.5.0 ile AndroidX Transition R.transition Evet

Öngörülü geri hareketi etkinleştirdikten sonra Fragmanlar'da tahmini geri desteğiyle ilgili sorun görürseniz lütfen sorununuzu yeniden oluşturan örnek bir projeyle Fragman için sorun gönderin. Etkinliğinizin onCreate() bölümünde FragmentManager.enabledPredictiveBack(false)'ü kullanarak tahmini geri özelliğini devre dışı bırakabilirsiniz.

FragmentManager.OnBackStackChangedListener() artık sırasıyla tahmini geri oynatma ilerleme durumunu ve iptal edilen etkinlikleri almak için onBackStackChangeProgressed() ve onBackStackChangeCancelled() sağlamaktadır.

Parça Oluşturma Yapısı

Fragment tabanlı mimariden tamamen Compose tabanlı mimariye geçiş sürecindeki uygulamaları desteklemeye odaklanan yeni bir fragment-compose yapı oluşturuldu.

Bu yeni yapıda sunulan ilk özellik, Fragment üzerinde bir content uzantı yöntemidir. Bu yöntem, sizin için bir ComposeView oluşturarak ve doğru ViewCompositionStrategy'ı ayarlayarak tek bir Fragment'in kullanıcı arayüzünde Compose'u kullanmayı kolaylaştırmayı amaçlar.

  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)
      }
  }

Sürüm 1.7.0-rc02

17 Nisan 2024

androidx.fragment:fragment-*:1.7.0-rc02 yayınlanır. 1.7.0-rc02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Başka geçiş olmadan sharedElement ayarının neden çalışamayacağını belirtmek için günlükler eklendi. (Iec48e)
  • Diğer tüm geçişlerin aranabilir olduğu bir işleme aranabilir olmayan bir paylaşılan öğe eklendiğinde kilitlenme yaşanmasına neden olan hata düzeltildi. Artık işlem, doğru şekilde aranabilir olmayan olarak kabul edilecektir. (I18ccd)

Sürüm 1.7.0-rc01

3 Nisan 2024

androidx.fragment:fragment-*:1.7.0-rc01 yayınlanır. 1.7.0-rc01 sürümü bu taahhütleri içerir.

Bağımlılık güncellemesi

Sürüm 1.7.0-beta01

20 Mart 2024

androidx.fragment:fragment-*:1.7.0-beta01 yayınlanır. 1.7.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • FragmentHostCallback artık Kotlin'de yazılmıştır. Böylece, ana makinenin genel türünün boşluk kabul edebileceği durum, onGetHost()'un döndürülen türünün boşluk kabul edebileceği durumla eşleşir. (I40af5)

Hata Düzeltmeleri

  • Bir kapsayıcıda olmayan bir parçaya Tahmini Geri hareketi uygulandığında söz konusu parçanın hiçbir zaman yok edilmemesine neden olan sorun düzeltildi. Parça hemen son duruma taşınır. (Ida0d9)
  • Parçalarda, gelen geçişlerin Tahmini geri hareketiyle kesintiye uğratılması durumunda, giriş görünümünün yok olmasına ve boş ekran gösterilmesine neden olan sorun düzeltildi. (Id3f22, b/319531491)

Sürüm 1.7.0-alpha10

7 Şubat 2024

androidx.fragment:fragment-*:1.7.0-alpha10 yayınlanır. 1.7.0-alpha10 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Önceki Fragment sürümünde, Fragment'in Animator veya AndroidX Geçişi için tahmini geri desteği kullanıldığında, addOnBackStackChangedListener aracılığıyla hiç FragmentManager.OnBackStackChangedListener eklenmemişse Fragments'in handleOnBackProgressed'den NullPointerException atması sorunu düzeltildi. (I7c835)

Sürüm 1.7.0-alpha09

24 Ocak 2024

androidx.fragment:fragment-*:1.7.0-alpha09 yayınlanır. 1.7.0-alpha09 sürümü bu taahhütleri içerir.

Parça Oluşturma Yapısı

Fragment tabanlı mimariden tamamen Compose tabanlı mimariye geçiş sürecindeki uygulamaları desteklemeye odaklanan yeni bir fragment-compose yapı oluşturuldu.

Bu yeni yapıda sunulan ilk özellik, Fragment üzerinde bir content uzantı yöntemidir. Bu yöntem, sizin için bir ComposeView oluşturarak ve doğru ViewCompositionStrategy'ı ayarlayarak tek bir Fragment'in kullanıcı arayüzünde Compose'u kullanmayı kolaylaştırmayı amaçlar. (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 sırasıyla tahmini geri oynatma ilerleme durumunu ve iptal edilen etkinlikleri almak için onBackStackChangeProgressed() ve onBackStackChangeCancelled() sağlamaktadır. (214b87)

Bilinen Sorun

  • Animator veya AndroidX geçişi için Fragment'in Tahmini Geri desteği kullanılırken, addOnBackStackChangedListener aracılığıyla hiç FragmentManager.OnBackStackChangedListener eklenmemişse Fragment'ler handleOnBackProgressed'den bir NullPointerException atar. Manuel olarak dinleyici eklemek, kilitlenmeyi önler. Bu sorun, Fragments'ın sonraki sürümünde düzeltilecektir.

Sürüm 1.7.0-alpha08

10 Ocak 2024

androidx.fragment:fragment-*:1.7.0-alpha08 yayınlanır. 1.7.0-alpha08 sürümü bu taahhütleri içerir.

Temizleme

Sürüm 1.7.0-alpha07

29 Kasım 2023

androidx.fragment:fragment-*:1.7.0-alpha07 yayınlanır. 1.7.0-alpha07 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Paylaşılan öğe geçişi ayarlandıktan sonra enter/exitTransition ayarlanmaması nedeniyle oluşan NullPointerException hatası düzeltildi. (I8472b)
  • 1.6.2 Parçası: Bir FragmentContainerView parçası şişirildiğinde FragmentManager, Ana makine ve kimlik gibi durumlarına artık onInflate geri çağırma işlevinde erişilebilir. (I1e44c, b/307427423)
  • 1.6.2 Fragment'inden: Bir dizi fragmenti kaldırmak için clearBackStack kullanılırken, üst fragment'in ViewModels temizlendiğinde iç içe yerleştirilmiş tüm fragment'lerin ViewModel artık temizlenecek. (I6d83c, b/296173018)

Sürüm 1.7.0-alpha06

4 Ekim 2023

androidx.fragment:fragment-*:1.7.0-alpha06 yayınlanır. 1.7.0-alpha06 sürümü bu taahhütleri içerir.

Bağımlılık Güncellemesi

  • Fragment'ler, 1.5.0-alpha04 Geçişi'nde eklenen yeni animateToStart API'ye 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ınlanır. 1.7.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Androidx geçişleri kullanılırken artık fragmanlar tahmini geri özelliğini destekliyor. Bu sayede, tamamlanmış hareket aracılığıyla işlemi gerçekleştirmeye 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 Geçiş 1.5.0-alpha03 sürümünü kullanmanız gerekir. (Ib49b4, b/285175724)

Bilinen Sorunlar

  • Geçiş içeren bir geri hareketini bir kez iptal ettikten sonra, geri hareketini tekrar başlattığınızda geçişin çalışmaması ve boş ekran oluşması sorunu mevcut. Bu durum, Geçiş kitaplığındaki bir sorundan kaynaklanıyor olabilir. (b/300157785). Bu sorunu görürseniz lütfen sorununuzu yeniden üreten örnek bir projeyle Fragman için sorun gönderin. Etkinliğinizin onCreate() bölümünde FragmentManager.enabledPredictiveBack(false)'ü kullanarak tahmini geri özelliğini devre dışı bırakabilirsiniz.

Sürüm 1.7.0-alpha04

6 Eylül 2023

androidx.fragment:fragment-*:1.7.0-alpha04 yayınlanır. 1.7.0-alpha04 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Tahmini geri hareketi iptal ederken parçaların doğru yaşam döngüsü durumuna geçemediği bir sorun düzeltildi. (I7cffe, b/297379023)
  • Animasyonların Geçişlerle birlikte çalışmasına izin verilen bir gerileme düzeltildi. (I59f36)
  • Tahmini Geri özelliği, parçalarla birlikte kullanıldığında arka yığıntaki sondan ikinci parçada arkaya art arda iki kez gitmeye çalışıldığında kilitlenme sorunu düzeltildi. (Ifa1a4)

Sürüm 1.7.0-alpha03

23 Ağustos 2023

androidx.fragment:fragment-*:1.7.0-alpha03 yayınlanır. 1.7.0-alpha03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Tahmini geri düğmesi kullanıldığında, parça yöneticisinin geri yığınındaki ilk parçanın atlanmasına ve 3 düğmeli gezinme veya tahmini geri hareketi aracılığıyla sistem geri düğmesi kullanıldığında etkinliğin sona ermesine neden olan parçalarla ilgili 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ınlanır. 1.7.0-alpha02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • API 34'ten itibaren tahmini geri hareketlerle parçaları kullanırken, aramayı (Animations, Transitions) desteklemeyen veya hiç geçiş içermeyen bir geçiş sistemi kullanıyorsanız parçalar 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ınlanır. Bu sürüm, dahili bir dalda geliştirilmiştir.

Yeni Özellikler

  • Animator kullanıldığında artık parçalar, tahmine dayalı uygulama içi geri desteği sağlıyor. Bu sayede, tamamlanmış hareketle işlemi gerçekleştirmeye veya iptal etmeye karar vermeden önce özel animatörünüzle önceki parçayı görmek için geri hareketini kullanabilirsiniz. Deneysel enablePredictiveBack() özelliğini kullanarak ve false parametresini ileterek de bu yeni davranışı devre dışı bırakabilirsiniz.

1.6 sürümü

Sürüm 1.6.2

1 Kasım 2023

androidx.fragment:fragment-*:1.6.2 yayınlanır. 1.6.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Bir FragmentContainerView öğesinin Fragment'i şişirildiğinde FragmentManager, Host ve id gibi durumlarına artık onInflate geri çağırma işlevinde erişilebilir. (I1e44c, b/307427423)
  • Bir dizi parçayı kaldırmak için clearBackStack kullanıldığında, üst parçanın ViewModels temizlendiğinde iç içe yerleştirilmiş parçanın ViewModel da temizlenir. (I6d83c, b/296173018)

1.6.1 sürümü

26 Temmuz 2023

androidx.fragment:fragment-*:1.6.1 yayınlanır. 1.6.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Etkinlik durdurulduğunda ancak yok edilmediğinde saklanan 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, söz konusu fragmanı kaydetmek ve geri yüklemek için birden fazla geri yığın API'si kullanılırken söz konusu fragman örneği arka yığıntaysa önbelleğe alınan durumun yeniden kullanılmasına neden olur. (I71288, b/246289075)

Bağımlılık Güncellemesi

  • Fragment artık Activity 1.7.2'ye bağlıdır. Bu, Kotlin kullanıcılarının Activity'ye açık bir bağımlılık olmadan ComponentDialog'ü genişletememesine neden olan sorunu düzeltir. (b/287509323)

1.6.0 sürümü

7 Haziran 2023

androidx.fragment:fragment-*:1.6.0 yayınlanır. 1.6.0 sürümü bu taahhütleri içerir.

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

  • Fragment'ların kayıtlı durumu, özel kitaplık durumu (özel Parcelable sınıfları) ve geliştirici tarafından sağlanan durum arasında tamamen bölünmüştür. Geliştirici tarafından sağlanan durum artık her zaman bir Bundle içinde depolanır. Bu sayede, bir parçanın durumunun tam olarak nereden geldiğini belirleyebilirsiniz.
  • FragmentManager.OnBackStackChangedListener arayüzü, her Fragment ile sırasıyla parça arka yığınına eklenmeden/yığından kaldırılmadan hemen önce ve işlem taahhüt edildikten hemen sonra çağrılan iki ek onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırma işlevi ile genişletildi.
  • FragmentStrictMode, bir alt fragmanın ebeveyninin Görünüm hiyerarşisinde iç içe yerleştirildiğini ancak ebeveyninin childFragmentManager öğesine eklenmediğini algılayan yeni bir WrongNestedHierarchyViolation ekledi.
  • Intent veya IntentSender alan Fragment ve FragmentManager API'leri artık null değerinin iletilmesini önlemek için @NonNull ile uygun şekilde ek açıklamaya sahiptir. Null değer, bu yöntemlerin çağırdığı ilgili Android çerçeve API'lerini her zaman hemen kilitlediğinden, null değer iletilmesi engellenir.
  • DialogFragment artık requireComponentDialog() API aracılığıyla temel ComponentDialog'ye erişim sağlıyor.
  • Fragment artık Lifecycle 2.6.1'e 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'a bağlıdır.
  • fragment-testing-manifest yapı, manifest girişlerini, parça testi bileşenlerinin geri kalanından ayırır. Bu durumda aşağıdakileri yapabilirsiniz:

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

    Bu sayede fragment-testing ve androidx.test arasındaki sürüm uyuşmazlığı nedeniyle çakışmalar önlenir.

Sürüm 1.6.0-rc01

10 Mayıs 2023

androidx.fragment:fragment-*:1.6.0-rc01 yayınlanır. 1.6.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.6.0-beta01

19 Nisan 2023

androidx.fragment:fragment-*:1.6.0-beta01 yayınlanır. 1.6.0-beta01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • postponeEnterTransition işlevini zaman aşımı ile kullanmak ve ardından ertelenen parçayı değiştirmek artık ertelenen parçanın sızmasına neden olmuyor. (I2ec7d, b/276375110)
  • Yeni onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırma işlevleri artık aynı parça birden fazla işlemde bulunsa bile bir parçayı yalnızca tek sefer gönderir. (Ic6b69)

Sürüm 1.6.0-alpha09

5 Nisan 2023

androidx.fragment:fragment-*:1.6.0-alpha09 yayınlanır. 1.6.0-alpha09 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • DialogFragment artık requireComponentDialog() API aracılığıyla temel ComponentDialog'ye erişim sağlıyor. (I022e3, b/234274777)
  • commitNow(), executePendingTransactions() ve popBackStackImmediate() API'leri @MainThread ile ek açıklamaya tabi tutuldu. Bu, artık bunların ana iş parçacığında çağrılmadığında derleme hatası vereceği anlamına geliyor. (Ic9665, b/236538905)

Hata Düzeltmeleri

  • FragmentManager'te aynı karede kaydetme ve geri yükleme işleminin kilitlenmeye neden olabileceği bir hata düzeltildi. (Ib36af, b/246519668)
  • OnBackStackChangedListener onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırma işlevleri 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ınlanır. 1.6.0-alpha08 sürümü bu taahhütleri içerir.

Davranış Değişikliği

  • OnBackStackChangedListener.onBackStackChangeCommited geri çağırma işlevinin zamanlaması, parça işlemleri yürütülmeden önce yürütülecek şekilde ayarlandı. Bu sayede geri çağırma işlevine hiçbir zaman ayrılmış bir parça iletilmez. (I66a76, b/273568280)

Hata Düzeltmeleri

  • 1.5.6 Fragment'inden: Lifecycle zaten STARTED ise ve bir sonuç zaten mevcutsa setFragmentResultListener içinde clearFragmentResultListener çağrısının çalışmamasına neden olan sorun düzeltildi. (If7458)

Bağımlılık Güncellemeleri

Sürüm 1.6.0-alpha07

8 Mart 2023

androidx.fragment:fragment-*:1.6.0-alpha07 yayınlanır. 1.6.0-alpha07 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • 1.5.6 Fragment'inden: Menü öğesi eklenmiş olsun veya olmasın herhangi bir Fragment'in kaldırılmasının, etkinliğin 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ınlanır. 1.6.0-alpha06 sürümü bu taahhütleri içerir.

Davranış değişikliği

  • FragmentManager'un onBackStackChangedListener bölümündeki yeni onBackStackChangedStarted geri çağırma işlevi artık parçalar hedef durumlarına taşınmaya başlamadan önce yürütülecek. (I34726)

Sürüm 1.6.0-alpha05

8 Şubat 2023

androidx.fragment:fragment-*:1.6.0-alpha05 yayınlanır. 1.6.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Intent veya IntentSender alan Fragment ve FragmentManager API'leri artık null değerinin iletilmesini önlemek için @NonNull ile uygun şekilde ek açıklamaya sahiptir. Null değer, bu yöntemlerin çağırdığı ilgili Android çerçeve API'lerini her zaman hemen kilitlediğinden, null değer iletilmesi engellenir. (I06fd4)

Sürüm 1.6.0-alpha04

7 Aralık 2022

androidx.fragment:fragment-*:1.6.0-alpha04 yayınlanır. 1.6.0-alpha04 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • FragmentStrictMode, bir alt fragmanın ebeveyninin Görünüm hiyerarşisinde iç içe yerleştirildiğini ancak ebeveyninin childFragmentManager öğesine eklenmediğini algılayan yeni bir WrongNestedHierarchyViolation ekledi. (I72521, b/249299268)

Davranış Değişiklikleri

  • Parçalar artık onAttach() öncesi SavedStateRegistry durumlarını geri yükler ve bu sayede tüm üst yaşam döngüsü yöntemlerinden kullanılabilir. (I1e2b1)

API Değişiklikleri

  • fragment-testing-manifest yapı, manifest girişlerini, parça testi bileşenlerinin geri kalanından ayırır. Bu durumda aşağıdakileri yapabilirsiniz:
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")

Bu, fragment-testing ile androidx.test arasındaki sürüm uyuşmazlığı nedeniyle çakışmaları önler.(I8e534, b/128612536)

Hata Düzeltmeleri

  • 1.5.5 Fragmanı: Fragmanlar artık görünüm sicil dairesi kayıtlı durumunun bir parçası olarak ViewModel durumunu yanlış bir şekilde kaydetmeyecek. (I10d2b, b/253546214)

Sürüm 1.6.0-alpha03

5 Ekim 2022

androidx.fragment:fragment:1.6.0-alpha03, androidx.fragment:fragment-ktx:1.6.0-alpha03 ve androidx.fragment:fragment-testing:1.6.0-alpha03 yayınlandı. 1.6.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • DialogFragment'ü genişleten sınıfların artık onDismiss() geçersiz kılmalarında super çağrısı yapması gerekecek. (I14798, b/238928865)

Hata Düzeltmeleri

  • Parçaların her zaman doğru geri çağırmalara sahip olmasını sağlamak için yeni sağlayıcı geri çağırma arayüzlerinin (OnConfigurationChangedProvider, OnMultiWindowModeChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider) entegrasyonundan kaynaklanan geriye gidişler 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ı. 1.6.0-alpha02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • 1.5.2 Fragment'inden: popBackStack() ve replace() işlemlerinin aynı anda yürütülmesinin, ayrılan fragment'lerin yanlış Animation/Animator çalıştırmasına neden olduğu 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ı. 1.6.0-alpha01 sürümü bu taahhütleri içerir.

Davranış Değişiklikleri

  • Fragment'ların kayıtlı durumu, özel kitaplık durumu (özel Parcelable sınıfları) ve geliştirici tarafından sağlanan durum arasında tamamen bölünmüştür. Geliştirici tarafından sağlanan durum artık her zaman bir Bundle içinde depolanır. Bu sayede, bir parçanın durumunun tam olarak nereden geldiğini belirleyebilirsiniz. (b/207158202)

Hata Düzeltmeleri

  • 1.5.1 Fragmanı: DialogFragmentCallbacksDetector'ta, AGP 7.4 ile birlikte paketlenen lint sürümünün kullanılmasının lint'in kilitlenmesine neden olduğu bir gerileme düzeltildi. (b/237567009)

Bağımlılık güncellemesi

Sürüm 1.5

1.5.7 sürümü

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 taahhütleri içerir.

Hata Düzeltmeleri

  • postponeEnterTransition işlevini zaman aşımı ile kullanmak ve ardından ertelenen parçayı değiştirmek artık ertelenen parçanın sızmasına neden olmuyor. (I2ec7d, b/276375110)

1.5.6 sürümü

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ı. 1.5.6 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Menü öğesi eklenmiş olsun veya olmasın herhangi bir Fragment'in kaldırılmasının 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ılmasının çalışmadığı sorun düzeltildi. (If7458)

1.5.5 sürümü

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 taahhütleri içerir.

Hata Düzeltmeleri

  • Parçalar artık görüntü kayıt defteri kayıtlı durumu kapsamında ViewModel durumunu yanlış ş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 taahhütleri içerir.

Hata Düzeltmeleri

  • Sağlayıcı geri çağırma arayüzü (OnConfigurationChangedProvider, OnMultiWindowModeChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider) uygulamayan bir ana makineyle özel FragmentController kullanılması ve desteği sonlandırılan dağıtım işlevinin çağrılması durumunda alt parçalara dağıtım yapılamamasına neden olan bir 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 taahhütleri içerir.

Hata Düzeltmeleri

  • Arka yığıntaki parçaların onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory() ve onConfigurationChanged() geri çağırma çağrıları almasına neden olan bir hata düzeltildi. (I34581, I8dfe6, b/242570955)
  • İç içe yerleştirilmiş alt parçacıklar artık birden fazla onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory() veya onConfigurationChanged() geri çağırma 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 taahhütleri içerir.

Hata Düzeltmeleri

  • Aynı anda bir popBackStack() ve bir replace() işleminin yürütülmesinin, ayrılan parçaları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ı. 1.5.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • DialogFragmentCallbacksDetector'te, AGP 7.4 ile birlikte sunulan lint sürümünün kullanılmasının lint'in kilitlenmesine neden olduğu gerileme düzeltildi. (b/237567009)

Bağımlılık güncellemesi

1.5.0 sürümü

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 taahhütleri içerir.

1.4.0'dan sonraki önemli değişiklikler

  • CreationExtras Entegrasyonu: Fragment artık Lifecycle 2.5.0'in CreationExtras aracılığıyla durum bilgisi olmayan bir ViewModelProvider.Factory sağlayabilir.
  • Bileşen iletişim kutusu entegrasyonu: DialogFragment artık onCreateDialog() tarafından döndürülen varsayılan iletişim kutusu olarak 1.5.0 etkinliği aracılığıyla ComponentDialog'ı kullanır.
  • Kayıtlı Örnek Durumu Yeniden Düzenleme: Fragment'ler, örnek durumlarını kaydetme şeklini değiştirmeye başladı. Bu, parçaya hangi durumun kaydedildiğini ve durumun kaynağını net bir şekilde tanımlamaya yardımcı olmak için yapılan bir çalışmadır. Mevcut değişiklikler şunlardır:
    • FragmentManager artık kayıtlı örnek durumunu doğrudan özel bir Parcelable yerine Bundle içine kaydediyor.
    • Fragment Result APIs aracılığıyla ayarlanan ve henüz yayınlanmamış sonuçlar artık FragmentManager'ın dahili durumundan ayrı olarak kaydedilir.
    • Her bir parçayla ilişkili durum artık FragmentManager'ün dahili durumundan ayrı olarak kaydedilir. Böylece, her bir parçayla ilişkili kayıtlı durum miktarını Fragment hata ayıklama günlüğündeki benzersiz kimliklerle ilişkilendirebilirsiniz.

Diğer Değişiklikler

  • FragmentStrictMode artık özel üçüncü taraf parçalarının sınıf adıyla allowViolation() kullanarak belirli ihlal cezalarını atlama olanağı sunuyor.
  • Etkinliğinizin ActionBar bölümüne menü sağlamak için kullanılan Fragment API'lerin desteği sonlandırıldı. 1.4.0 Etkinliği'ne eklenen MenuHost ve MenuProvider API'leri, parçaların kullanması gereken test edilebilir, yaşam döngüsü bilincine sahip eşdeğer bir 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 taahhütleri içerir.

Kayıtlı Örnek Durumu Yeniden Düzenleme

  • Her bir parçayla ilişkili durum artık FragmentManager'ün dahili durumundan ayrı olarak kaydedilir. Böylece, bir parçayla ilişkili kayıtlı durum miktarını parça hata ayıklama günlüklerinde 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 taahhütleri içerir.

API Değişiklikleri

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

Kayıtlı Örnek Durumu Yeniden Düzenleme

  • FragmentManager artık kayıtlı örnek durumunu doğrudan özel bir Parcelable yerine Bundle içine kaydediyor. Bu, Fragment'ler tarafından aslında nelerin kaydedildiği konusunda daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)
  • Fragment Result API'leri aracılığıyla ayarlanan ve henüz yayınlanmayan sonuçlar artık FragmentManager'nin dahili durumundan ayrı olarak kaydedilir. Bu sayede, kayıtlı örnek durumunuzun bir parçası olarak hangi sonuçların kaydedildiği konusunda daha fazla şeffaflık elde edebilirsiniz. (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ı. 1.5.0-alpha05 sürümü bu taahhütleri 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ı. 1.5.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • SavedStateViewFactory artık SavedStateRegistryOwner ile başlatılmış olsa bile CreationExtras kullanımını destekliyor. Ek bilgiler 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ı. 1.5.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Artık CreationExtras değerini by viewModels() ve by activityViewModels() işlevlerine iletebilirsiniz. (Ibefe7, b/217601110)

Davranış Değişiklikleri

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ı. 1.5.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • FragmentStrictMode artık özel üçüncü taraf parçalarının sınıf adıyla allowViolation() kullanarak belirli ihlal cezalarını atlama olanağı sunuyor. (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ı. 1.5.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

Hata Düzeltmeleri

  • 1.4.1 Kırıntısından: FragmentContainerView, xml'den oluşturulan görüntüleme kimlikleri negatif değerlere sahip olduğunda artık yasa dışı durum istisnası atmaz. (Ic185b, b/213086140)
  • 1.4.1 Fragmanı: by viewModels() üşengeç işleviyle özel bir ownerProducer lambda kullanılırken artık özel bir ViewModelProvider.Factory sağlanmazsa her zaman parçanın fabrikasını kullanmak yerine söz konusu sahibin defaultViewModelProviderFactory işlevi kullanılır. (I56170, b/214106513)
  • Fragment'nin registerForActivityResult() geri çağırma işlevinden ViewModel'e ilk kez erişildiğinde kilitlenme sorunu 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 taahhütleri içerir.

Hata Düzeltmeleri

  • FragmentContainerView, xml'den oluşturulan görüntüleme kimlikleri negatif değerlere sahip olduğunda artık yasa dışı durum istisnası atmıyor. (Ic185b, b/213086140)
  • by viewModels() ertelenen işleviyle özel bir ownerProducer lambda kullanıldığında, özel bir ViewModelProvider.Factory sağlanmazsa artık her zaman parçanın fabrikasını kullanmak yerine söz konusu sahipten defaultViewModelProviderFactory kullanılır. (I56170, b/214106513)

1.4.0 sürümü

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 taahhütleri içerir.

1.3.0 sürümünden bu yana yapılan önemli değişiklikler

  • FragmentStrictMode API'leri, uygulamanızın veya bağımlı olduğunuz kitaplıkların desteği sonlandırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. Bir ihlal algılandığında günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. Hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy, yeni setStrictModePolicy() yöntemi aracılığıyla bir FragmentManager üzerinde ayarlanabilir. Bu politika, söz konusu FragmentManager için geçerlidir ve kendi benzersiz politikalarını ayarlamayan tüm alt parça yöneticileri için de geçerlidir. Bölümler için StrictMode başlıklı makaleyi inceleyin.
  • FragmentContainerView artık kapsayıcıya en son eklenen parçayı döndüren bir getFragment() yöntemi sağlıyor. Bu, FragmentContainerView kimliğiyle findFragmentById() ile aynı mantığı kullanır ancak çağrının zincirlenmesine olanak tanır.

    val navController = binding.container.getFragment<NavHostFragment>().navController
    
  • FragmentScenario artık Closeable'ü uygulayarak Kotlin'in use yöntemi veya try-with-resources ile kullanmanıza olanak tanır.

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

  • FragmentManager.enableNewStateManager(boolean) deneysel API'si kaldırıldı ve artık tek seçenek yeni durum yöneticisi.

Birden fazla geri yığın

FragmentManager, addToBackStack() kullanan parça işlemlerinden oluşan bir arka yığın tutar. Bu sayede, bu işlemleri pop up olarak görüntüleyebilir ve Durumları parçalarla kaydetme mekanizmalarını kullanarak parçalarınızın durumlarını uygun şekilde geri yüklemesine izin vererek önceki duruma dönebilirsiniz.

Bu sürüm, saveBackStack(String name), restoreBackStack(String name) ve clearBackStack(String name) olmak üzere üç yeni FragmentManager API sağlayarak bu mekanizmaları genişletiyor. Bu API'ler, FragmentTransaction öğesinin ve bu işlemlere eklenen her bir parçanın durumunu kaydetmek için addToBackStack() ile aynı name öğesini kullanır ve daha sonra bu işlemleri ve parçalarını durumlarını koruyarak geri yüklemenize olanak tanır. Bu sayede, geçerli geri yığınını kaydedip kayıtlı bir geri yığınını geri yükleyerek birden fazla geri yığını arasında etkili bir şekilde "takas" yapabilirsiniz.

saveBackStack(), popBackStack()'e benzer şekilde asenkrondur ve belirli bir ada geri dönen tüm parça işlemlerinin geri alınmasına ("pop") ve eklenen parçaların yok edilip kaldırılmasına neden olur. Ancak birkaç önemli açıdan farklılık gösterir:

  • saveBackStack() her zaman dahildir.
  • Belirtilen ad arka yığınta bulunamazsa veya null bir ad sağlanırsa arka yığıntaki tüm işlemleri pop-up olarak gösteren popBackStack()'in aksine, daha önce tam olarak bu null olmayan adla addToBackStack() kullanarak bir parça işlemi taahhüt etmediyseniz saveBackStack() hiçbir şey yapmaz.
  • Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Bu, her bir parçanın Görüntüleme durumunun depolandığı, her bir parçanın onSaveInstanceState() çağrıldığı ve bu durumun geri yüklenmesinin yanı sıra bu parçalarla ilişkili tüm ViewModel örneklerin tutulduğu (ve onCleared()'nin bunlarda çağrılmadığı) anlamına gelir.

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

  • İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her bir parça işleminde setReorderingAllowed(true) kullanılmalıdır.
  • Kayıtlı işlem grubu, aradaki süre içinde arka yığınta ne tür değişiklikler yapılmış olursa olsun daha sonra geri yüklenebilmesi için kendi kendine yetmelidir (yani, bu işlem grubunun dışındaki herhangi bir parçayı açıkça referans almamalıdır).
  • Kayıtlı hiçbir parça, geri yığın kaydedildikten sonra FragmentManager'ün kayıtlı parçalara ait referans döndürmediğinden emin olmak için ayrılmış parça olamaz veya geçişli alt parça grubunda ayrılmış parça içeremez.

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

Daha fazla bilgi için Birden fazla arka yığın: Ayrıntılı inceleme başlıklı makaleyi inceleyin.

Sürüm 1.4.0-rc01

3 Kasım 2021

androidx.fragment:fragment:1.4.0-rc01 Fragment 1.4.0-beta01'den herhangi bir değişiklik olmadan yayınlandı. 1.4.0-rc01 sürümü bu taahhütleri 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 taahhütleri içerir.

Hata Düzeltmeleri

  • Üst öğe parçaları artık kendi geri çağırma işlevini başlatmadan önce onHiddenChanged() öğesini tüm hiyerarşileri boyunca dağıtacaktır. (Iedc20, b/77504618)
  • Artık açık klavyesi olan bir parçadan, geri dönüştürücü görünümü olan bir parçaya geçiş yapıldığında klavye otomatik olarak kapanacak. (I8b842, b/196852211)
  • DialogFragment artık show(), showNow() veya dismiss()'i çağırdığınızda oluşturduğu tüm işlemler için setReorderingAllowed(true) kullanıyor. (Ie2c14)
  • DetachAndAttachFragmentInSameFragmentTransaction olan son derece uzun hata analizi uyarısı DetachAndAttachSameFragment olarak kısaltıldı. (e9eca3)

Sürüm 1.4.0-alpha10

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ı. 1.4.0-alpha10 sürümü bu taahhütleri içerir.

Lint

  • Aynı FragmentTransaction içinde hem detach() hem de attach() işlevinin aynı Fragment üzerinde çağrıldığını algılayan DetachAndAttachFragmentInSameFragmentTransaction lint uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde yapıldığında birbirini iptal ettiğinden, herhangi bir şey yapmak için ayrı işlemlere bölünmelidir. (aosp/1832956, b/200867930)
  • MenuHost'nin addMenuProvider API'si kullanılırken Fragment yaşam döngüsünün Fragment görünümü yaşam döngüsüne doğru şekilde uygulanması için FragmentAddMenuProvider lint hatası eklendi. (aosp/1830457, b/200326272)

Belge Güncellemeleri

  • Artık Activity Result API'leri (startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions ve onRequestPermissionsResult) tarafından yönetilen API'ler için desteğin sonlandırılmasıyla ilgili mesajlar daha fazla ayrıntı içerecek şekilde genişletildi. (cce80f)
  • Hem Fragment hem de DialogFragment için onActivityCreated() ile ilgili desteğin sonlandırılması 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ı. 1.4.0-alpha09 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Artık saveBackStack(name) ile daha önce kaydedilen tüm durumları temizlemek için clearBackStack(name)'ü arayabilirsiniz. (I70cd7)

API Değişiklikleri

  • FragmentContainerView sınıfı, getFragment işlevinin boş değere uygun şekilde saygı göstermesini sağlamak için Kotlin'de yeniden yazıldı. (If694a, b/189629145)
  • FragmentStrictMode artık Kotlin ile yazılmıştır (I11767, b/199183506)

Hata Düzeltmeleri

  • setReorderingAllowed(true) ile eklenen ve ardından bekleyen işlemler yürütülmeden hemen kaldırılan bir Fragment'in durumunun düzgün şekilde temizlenmemesi sorunu 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ı. 1.4.0-alpha08 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Gereksiz parantezleri daha iyi ele almak için UseRequireInsteadOfGet lint denetimi iyileştirildi. (I2d865)
  • UseGetLayoutInflater lint kontrolü, ek uç durumlarla başa çıkabilecek şekilde 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, önemli bir değişiklik olmadan yayınlanır. 1.4.0-alpha07 sürümü bu taahhütleri 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ı. 1.4.0-alpha06 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Arka yığınlar arasında hızlıca geçiş yaparken birden fazla arka yığınla ilgili bir sorun düzeltildi. Bu sorun, FragmentTransaction geri yüklenirken IllegalStateException olarak veya bir parçanın ikinci kopyası olarak görünürdü. (I9039f)
  • FragmentManager'ün, daha önce saveBackStack() aracılığıyla kaydedilen durumun kopyasını, bu durum geri yüklendikten sonra bile tutması sorunu düzeltildi. (Ied212)
  • DialogFragment sınıfının dismissAllowingStateLoss() yöntemi, DialogFragment sınıfını show(FragmentTransaction, String) yöntemi aracılığıyla eklediğinizde durum kaydedildikten sonra çağrıldığında artık kilitlenmiyor. (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ı. 1.4.0-alpha05 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Bağımlılık güncellemesi

Sürüm 1.4.0-alpha04

30 Haziran 2021

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

API Değişiklikleri

  • FragmentManager, durumunu kaydetmek için artık SavedStateRegistry kullanıyor. saveAllState() ve restoreSavedState() yöntemleri de FragmentController sürümünde kullanımdan kaldırıldı. FragmentActivity dışındaki parçaları barındırmak için FragmentController kullanıyorsanız FragmentHostCallbacks'nizin SavedStateRegistryOwner'ı uygulaması gerekir. (Iba68e, b/188734238)

Hata Düzeltmeleri

  • Birden fazla arka yığının desteklenmesi kapsamında saveBackStack() çağrısının, replace() kullanan bir FragmentTransaction çalıştırılırken aynı anda yapılması durumunda başarısız olmasına neden olan sorun düzeltildi. (I73137)
  • Birden fazla geri yığın desteği için restoreBackStack() API'si kullanılırken birden fazla işlem içeren kayıtlı bir geri yığın manuel olarak geri yüklendikten sonra ortaya çıkan NullPointerException hatası düzeltildi. Bu sayede, setReorderingAllowed(true) değerinin tüm işlemler için kontrol edilmediği bir sorun da düzeltildi. (I8c593)
  • FragmentManager'ün, FragmentManager'ten kaldırılmış olsa bile parçaların daha önce kaydedilmiş durumunu yanlış bir şekilde geri yüklemeye devam etmesiyle ilgili sorun düzeltildi. Bu durum, kayıtlı durumun zaman içinde sürekli olarak büyümesine neden oluyordu. (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ı. 1.4.0-alpha03 sürümü bu taahhütleri 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ı içeren daha ayrıntılı bir hata mesajı içeriyor. (Ic33a7)
    • WrongFragmentContainerViolation artık parçanın eklenmekte olduğu kapsayıcıyı içeren daha ayrıntılı bir hata mesajına sahiptir. (Ib55f8)
    • TargetFragmentUsageViolation için kullanım alanı sınıflarında artık ihlalin neden olduğu parçayı ve içerdiği diğer bilgileri içeren daha ayrıntılı hata mesajları var. (Icc6ac)
    • RetainInstanceUsageViolation sınıfını genişleten sınıflar artık ihlal eden parçayı içeren daha ayrıntılı hata mesajlarına sahip. (I6bd55)
    • FragmentReuseViolation artık parçanın önceki kimliğini içeren daha ayrıntılı bir hata mesajına sahip. (I28ce2)
    • SetUserVisibleHintViolation artık kullanıcının görünür ipucunun ne olarak ayarlandığını içeren daha ayrıntılı bir hata mesajına sahiptir. (Ib2d5f)

Davranış Değişiklikleri

  • FragmentContainerView üzerinde fitsSystemWindows çağrısı yapma kısıtlaması geri alındı. Bu işlem artık uygulamanızı kilitlemiyordur. (6b8ddd, b/190622202)

Hata Düzeltmeleri

  • Parça 1.3.5'ten: aosp/1679887 tarafından Parça 1.3.4'te paylaşılan öğe geçişlerinde tanıtılan bir gerileme düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" aracılığıyla veya dolaylı olarak bir transitionName ya da background aracılığıyla ayarlanır) doğru şekilde yönetiyor ve paylaşılan öğeler artık IndexOutOfBoundsException hatası vermiyor. (I16484, b/188679569, b/188969304)
  • Kaldırılan bir parçayı gizlemeye çalıştığınızda FragmentManager artık kilitlenmeyecek. (I573dd, b/183634730)
  • OnCreateDialogIncorrectCallback dil bilgisi denetimi, üst düzey bir değişkeni değerlendirirken 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ı. 1.4.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • FragmentStrictMode artık, FragmentManager aracılığıyla günlük kaydı etkinleştirildiğinde, kullanılan mevcut katı mod politikasından bağımsız olarak ihlalleri her zaman günlüğe kaydedecektir. (I02df6, b/187872638)
  • FragmentStrictMode artık belirli Fragment sınıflarını katı moddan Violation muaf tutmayı destekliyor. Bu sayede, sınıf herhangi bir cezadan kaçabilir. (Ib4e5d, b/184786736)

  • FragmentStrictMode Violation sınıfı, her ihlal için yapı bilgileri eklemek üzere genişletildi. Bu sayede, ihlal eden parçayla birlikte ihlal eden öğenin tam olarak ne olduğunu doğrulayabilirsiniz (If5118, b/187871150). Her Violation aşağıdakileri içerir:

    • WrongFragmentContainerViolation artık Fragment'nin eklenmeye çalışıldığı ViewGroup'yi içeriyor. (I83c75, b/187871150)
    • TargetFragmentUsageViolation, SetTargetFragmentUsageViolation, GetTargetFragmentUsageViolation ve GetTargetFragmentRequestCodeUsageViolation olarak genişletildi. SetTargetFragmentUsageViolation, hedef parçayı ve istek kodunu içerir. (I741b4, b/187871150)
    • SetUserVisibleHintViolation artık setUserVisibleHint() işlevine iletilen Boole değerini içerir. (I00585, b/187871150)
    • FragmentTagUsageViolation artık <fragment> etiketinin bir parçayı şişirmeye çalıştığı ViewGroup'u içeriyor.(I5dbbc, b/187871150)
    • FragmentReuseViolation artık ihlal eden önceki Fragment örneğinin benzersiz kimliğini içerir. (I0544d, b/187871150)
    • RetainInstanceUsageViolation artık soyuttur ve ihlal türü için iki durumu temsil eden SetRetainInstanceUsageViolation ve GetRetainInstanceUsageViolation adlı iki alt sınıfa sahiptir. (Ic81e5, b/187871150)

Davranış Değişiklikleri

  • FragmentContainerView artık fitsSystemWindow özelliğini programatik olarak veya XML aracılığıyla değiştirmeye çalışırken istisna oluşturuyor. İçerikler, her bir parçanın görünümü tarafından ele alınmalıdır. (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ı. 1.4.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • FragmentContainerView artık kapsayıcıya en son eklenen parçayı döndüren bir getFragment() yöntemi sağlıyor. Bu, FragmentContainerView kimliğiyle findFragmentById() ile aynı mantığı kullanır ancak çağrının zincirlenmesine olanak tanır. (Ife17a, b/162527857)

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

Birden fazla geri yığın

FragmentManager, addToBackStack() kullanan parça işlemlerinden oluşan bir arka yığın tutar. Bu sayede, bu işlemleri pop up olarak görüntüleyebilir ve Durumları parçalarla kaydetme mekanizmalarını kullanarak parçalarınızın durumlarını uygun şekilde geri yüklemesine izin vererek önceki duruma dönebilirsiniz.

Bu sürüm, saveBackStack(String name) ve restoreBackStack(String name) olmak üzere iki yeni FragmentManager API'si sunarak bu mekanizmaları genişletiyor. Bu API'ler, FragmentTransaction öğesinin ve bu işlemlere eklenen her bir parçanın durumunu kaydetmek için addToBackStack() ile aynı name öğesini kullanır ve daha sonra bu işlemleri ve parçalarını durumlarını koruyarak geri yüklemenize olanak tanır. Bu sayede, geçerli geri yığınını kaydedip kayıtlı bir geri yığınını geri yükleyerek birden fazla geri yığını etkili bir şekilde "değiştirebilirsiniz".

saveBackStack(), popBackStack()'e benzer şekilde asenkrondur ve belirli bir ada geri dönen tüm parça işlemlerinin geri alınmasına ("pop") ve eklenen parçaların yok edilip kaldırılmasına neden olur. Ancak birkaç önemli açıdan farklılık gösterir:

  • saveBackStack() her zaman dahildir.
  • Belirtilen ad arka yığınta bulunamazsa veya null bir ad sağlanırsa arka yığıntaki tüm işlemleri pop-up olarak gösteren popBackStack()'in aksine, daha önce tam olarak bu null olmayan adla addToBackStack() kullanarak bir parça işlemi taahhüt etmediyseniz saveBackStack() hiçbir şey yapmaz.
  • Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Bu, her bir parçanın Görüntüleme durumunun depolandığı, her bir parçanın onSaveInstanceState() çağrıldığı ve bu durumun geri yüklenmesinin yanı sıra bu parçalarla ilişkili tüm ViewModel örneklerin tutulduğu (ve onCleared()'nin bunlarda çağrılmadığı) anlamına gelir.

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

  • İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her bir parça işleminde setReorderingAllowed(true) kullanılmalıdır.
  • Kayıtlı işlem grubu, aradaki süre içinde arka yığınta ne tür değişiklikler yapılmış olursa olsun daha sonra geri yüklenebilmesi için kendi kendine yetmelidir (yani, bu işlem grubunun dışındaki herhangi bir parçayı açıkça referans almamalıdır).
  • Kayıtlı hiçbir parça, geri yığın kaydedildikten sonra FragmentManager'ün kayıtlı parçalara ait referans döndürmediğinden emin olmak için ayrılmış parça olamaz veya geçişli alt parça grubunda ayrılmış parça içeremez.

saveBackStack()'e benzer şekilde, daha önce aynı ada sahip bir saveBackStack() çağırmadıysanız restoreBackStack() hiçbir işlem yapmaz. (b/80029773)

Fragment StrictMode

FragmentStrictMode API'leri, uygulamanızın veya bağlı olduğunuz kitaplıkların desteği sonlandırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. Bir ihlal algılandığında günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. Hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy, yeni setStrictModePolicy() yöntemi aracılığıyla bir FragmentManager üzerinde ayarlanabilir. Bu politika, söz konusu FragmentManager için geçerlidir ve kendi benzersiz politikalarını ayarlamayan tüm alt parça yöneticileri için de 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, yok edildikten ve FragmentManager'dan kaldırıldıktan sonra hiçbir zaman bu örnekle etkileşime girmemeli veya bu örneğe referans vermemelisiniz. (#142, b/153738653)
  • detectFragmentTagUsage(), düzen XML'inizde <fragment> etiketini kullandığınızda bunu algılar. Tasarımınızın bir parçası olarak parçaları şişirirken her zaman FragmentContainerView kullanmalısınız. (#141, b/153738235)
  • detectWrongFragmentContainer(), bir kapsayıcıya FragmentContainerView olmayan bir parça eklediğinizde bunu algılar. Sayfa düzeninizdeki parçalar için her zaman FragmentContainerView öğesini kullanmanız gerekir. (#146, b/181137036)
  • detectRetainInstanceUsage(), desteği sonlandırılmış setRetainInstance() veya getRetainInstance() API'lerini kullandığınızda bunu algılar. (#140, b/153737954)
  • detectSetUserVisibleHint(), kullanımdan kaldırılan setUserVisibleHint() API'sini kullandığınızda bunu algılar. (#136, b/153738974)
  • detectTargetFragmentUsage(), desteği sonlandırılan setTargetFragment(), getTargetFragment() veya getTargetRequestCode() API'lerini kullandığınızda bunu algılar. (#139, b/153737745)

API Değişiklikleri

Yeni hata analizi kontrolleri

  • UseGetLayoutInflater Dil bilgisi denetimi artık DialogFragment içinde LayoutInflater.from(Context) kullanıldığında uyarı veriyor. LayoutInflater için uygun olanı almak üzere her zaman iletişim parçasının getLayoutInflater() yöntemini kullanmanız gerekir. (#156, b/170781346)
  • DialogFragmentCallbacksDetector lint denetimi artık bir DialogFragment nesnesinin onCreateDialog() yönteminde setOnCancelListener veya setOnDismissListener çağrılırken uyarı veriyor. Bu dinleyicilerin sahibi DialogFragment'dir ve bu geri çağırma çağrılarını almak için onCancel() ve onDismiss()'yi geçersiz kılmanız gerekir. (#171, b/181780047, b/187524311)

Hata Düzeltmeleri

  • 1.3.4 sürümü itibarıyla: ViewTreeViewModelStoreOwner.get() API'si ViewModelProvider ile birlikte kullanıldığında veya bir parça içinde viewModel()'in Jetpack Compose yöntemi kullanıldığında 1.3.3 parçasında ortaya çıkan bir gerileme düzeltildi. Bu kullanım alanları artık getDefaultViewModelProviderFactory()'ü geçersiz kılıyorsa (Hilt kullanılırken @AndroidEntryPoint ek açıklamalı parçalar gibi) parçanız tarafından sağlanan ViewModelProvider.Factory'ü doğru şekilde kullanıyor. Bu yöntemi geçersiz kılmazsanız varsayılan fabrika olarak, Fragment'in görünümüyle birlikte durumunu kaydedip geri yükleyen bir SavedStateViewModelFactory oluşturulur. (I5cbfa, b/186097368)
  • Parça 1.3.4'ten itibaren: API 29'da FragmentContainerView kullanılırken artık ek bölümler süresiz olarak dağıtılmaz. Bu sayede BottomNavigationBar ve FloatingActionButton örneklerindeki sorunlar düzeltilir. (I1bb78, b/186012452)
  • 1.3.4 sürümü ve sonraki sürümlerde: Artık işlem sona erdikten sonra Parcelable öğenizi parça sonucu paketinden alabilirsiniz. (I65932, b/187443158)
  • Fragment 1.3.4'ten itibaren: Bir ViewGroup'da paylaşılan öğe geçişi yapılırken ViewGroup'da transitionGroup false olarak ayarlanmışsa artık geçiş düzgün şekilde yapılır. (I99675)

Harici Katkı

Sürüm 1.3

1.3.6 sürümü

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 taahhütleri içerir.

Hata Düzeltmeleri

  • 1.4.0-alpha03 Fragment'inden: Kaldırılan bir fragment'i gizlemeye çalıştığınızda FragmentManager artık kilitlenmeyecek. (I573dd, b/183634730)
  • Kök görünümde transitionGroup=”true” ayarlandığında, hide() kullanılırken Fragment'in görünümü artık GONE olarak doğru şekilde ayarlanır. (aosp/1766655, b/193603427)
  • FragmentActivity artık geçersiz kıldığı yaşam döngüsü geri çağırmalarında ilk işlemi olarak 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 taahhütleri içerir.

Hata Düzeltmeleri

  • aosp/1679887 tarafından 1.3.4 Fragmanı'nda paylaşılan öğe geçişlerinde ortaya çıkan bir gerileme düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" aracılığıyla veya dolaylı olarak bir transitionName ya da background aracılığıyla ayarlanır) doğru şekilde yönetiyor ve paylaşılan öğeler artık IndexOutOfBoundsException hatası vermiyor. (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 taahhütleri içerir.

Hata Düzeltmeleri

  • Hilt kullanılırken ViewTreeViewModelStoreOwner.get() API'si ViewModelProvider ile birlikte kullanıldığında veya bir Fragment içinde viewModel()'in Jetpack Compose yöntemi kullanıldığında 1.3.3 Fragment'inde ortaya çıkan bir gerileme düzeltildi. Bu kullanım alanları artık getDefaultViewModelProviderFactory()'ü geçersiz kılıyorsa (@AndroidEntryPoint ek açıklamalı parçaların yaptığı gibi) parçanız tarafından sağlanan ViewModelProvider.Factory değerini doğru şekilde kullanıyor. Bu yöntemi geçersiz kılmazsanız varsayılan fabrika olarak, Fragment'in görünümüyle birlikte durumunu kaydedip geri yükleyen bir SavedStateViewModelFactory oluşturulur. (I5cbfa, b/186097368)
  • API 29'da FragmentContainerView kullanılırken artık ek gönderilmeyecek. Bu sayede BottomNavigationBar ve FloatingActionButton örneklerindeki sorunlar düzeltilecek. (I1bb78, b/186012452)
  • Artık işlem sona erdikten sonra Parcelable'ınızı parça sonucu paketinden alabilirsiniz. (I65932, b/187443158)
  • Bir ViewGroup'da paylaşılan öğe geçişi yapılırken ViewGroup'da transitionGroup false olarak ayarlanmışsa artık geçiş düzgün şekilde yapılır. (I99675)

Sürüm 1.3.3

21 Nisan 2021

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

Yeni Özellikler

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

Hata Düzeltmeleri

  • 1.3.2 Fragmanı'nda, NavHostFragment tarafından kullanılanlar gibi bir setPrimaryNavFragment işlemi içeren bir FragmentTransaction gösterildiğinde popEnter animasyonların çalışmamasına neden olan bir gerileme düzeltildi. (I38c87, b/183877426)
  • FragmentContainerView artık her Fragment için yeni bir WindowInsets grubu göndererek her bir parçanın artık bağımsız olarak içe aktarmaları kullanabilmesini sağlar. (I63f68, b/172153900)
  • DialogFragment artık özel Dialog sınıfınızdaki bir kapsayıcıyla aynı kimliğe sahip bir kapsayıcıya alt fragman eklendiğinde ortaya çıkan durumları düzgün şekilde ele alıyor. Böylece, BottomSheetDialog gibi iletişim kutuları tarafından dahili olarak kullanılan kimlikler yeniden kullanıldığında ortaya çıkan görüntü hiyerarşisi sorunlarını düzeltiyor. (Ie6279, b/180021387)
  • FragmentManager.dump() artık etkin parçalar listesindeki ilk parçayı düzgün şekilde girintilendiriyor. (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 yönetiyor. (I9e4de, b/184830265)

1.3.2 sürümü

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 taahhütleri içerir.

Yeni Durum Yöneticisi Hata Düzeltmeleri

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

Bağımlılık Güncellemeleri

  • Fragment artık Activity 1.2.2'ye bağlıdır. Bu sayede, Fragment 1.3.1 veya sonraki sürümler kullanılırken Activity'nin InvalidFragmentVersionForActivityResult lint kontrolüyle ilgili bir sorun düzeltildi.
  • Fragment artık Lifecycle 2.3.1'e bağlıdır.

1.3.1 sürümü

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 taahhütleri içerir.

Yeni Özellikler

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

Hata Düzeltmeleri

  • FragmentContainerView kullanılarak mevcut bir RESUMED etkinliğine şişirilen parçalar, yapılandırma değişikliğinden sonra artık düzgün şekilde gösteriliyor. (Ie14c8, b/180538371)
  • Parçanın sonunda artık fazladan bir } yoktoString() (I54705, b/177761088)
  • FragmentActivity'de geçersiz kılınan yöntemler artık temel yöntem javaDoc'unu (I736ce, b/139548782) düzgün bir şekilde devralıyor
  • setFragmentResult ve setFragmentResultListener ile ilgili dokümanların parametre dokümanları, artık boş değerleri kabul etmediklerini yansıtacak şekilde güncellendi (I990ba, b/178348386)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • mFocusedView (Ib4e9e, b/179925887) tarafından oluşturulan parçalarda bellek sızıntısı düzeltildi
  • Fragment'ler artık gösterme/gizleme işlemlerini kullanırken onCreateOptionsMenu'ü düzgün şekilde çağırıyor (I8bce8, b/180255554)
  • Parçanın düzenlenmesinden önce başlayan geçişlere sahip alt parçalar artık RESUMED'e düzgün şekilde ulaşacak (Ic11e6, b/180825150)
  • <fragment> etiketi kullanılarak şişirilen parçalar artık her zaman RESUMED'e (I452ac, (I9fa49)

Bağımlılık Güncellemeleri

1.3.0 sürümü

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 taahhütleri içerir.

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

  • Yeni Durum Yöneticisi: FragmentManager'in iç kısımlarının önemli ölçüde yeniden yazılması, yaşam döngüsü etkinliklerinin, animasyonların ve geçişlerin gönderilmesiyle ve ertelenen parçaların nasıl ele alındığıyla ilgili birçok sorunu düzeltti.
  • Activity Result API Entegrasyonu: Activity 1.2.0'te kullanıma sunulan ActivityResultRegistry API'si için destek eklendi. Bu API, Fragment'inizdeki yöntemleri geçersiz kılmadan startActivityForResult()+onActivityResult() ve requestPermissions()+onRequestPermissionsResult() akışlarını işlemek ve bu akışları test etmek için kanca sağlamak amacıyla kullanılır. Güncellenen Bir Etkinlikten Sonuç Alma başlıklı makaleyi inceleyin.

    • Bu sürümde, Activity Result API'nin FragmentActivity'ün önceki sürümlerinde çalışmasını engelleyen geçersiz istek kodları ve izin isteklerinin gönderilmesiyle ilgili çeşitli sorunlar düzeltilmiştir. Activity Result API'leri FragmentActivity veya AppCompatActivity'te kullanmak için Fragment 1.3.0'a yükseltmeniz gerekir.
  • Fragment Result API: FragmentManager'deki yeni API'ler aracılığıyla iki Fragment arasında sonuç aktarma desteği eklendi. Bu yöntem, hiyerarşi parçaları (üst/alt), DialogFragment'ler ve gezinmedeki parçalar için kullanılabilir ve sonuçların yalnızca Fragment'iniz en az STARTED olduğunda gönderilmesini sağlar. Hedef parça API'lerinin desteği sonlandırıldı ve bu yeni API'ler kullanıma sunuldu. Bölünmüş Sonuç API'sini kullanarak sonuç alma başlıklı makaleyi inceleyin.

  • FragmentOnAttachListener: FragmentActivity ve Fragment'teki onAttachFragment() geri çağırma işlevinin desteği sonlandırıldı. Daha esnek bir alternatif sunmak için yeni bir FragmentOnAttachListener eklendi. Bu alternatif, onAttachFragment()'un ayrı, test edilebilir dinleyicilere devredilmesine ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara dinleyici ekleme desteğine olanak tanır.

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

    • FragmentScenario artık moveToState()'i uygulamak için setMaxLifecycle() kullanıyor. Bu sayede tüm API düzeylerinde tutarlı bir davranış sağlanıyor ve Fragment'in durumu, temel etkinlikten ayrılıyor.
    • FragmentScenario artık her Lifecycle.State'a ilk kez geçmeden önce parçanın durumunu doğrulamak için ilk bir Lifecycle.State ayarlama özelliğini destekliyor.
    • Artık onFragment için FragmentScenario API'sine alternatif olarak, değer döndürmenize olanak tanıyan Kotlin gerçekleştirilmiş uzantı yöntemi withFragment mevcuttur. Özellikle, belirli bir blokta oluşturulan istisnaları yeniden atar.
  • ViewTree Desteği: Fragment artık Yaşam Döngüsü 2.3.0 ve Kayıtlı Durum 1.1.0'a eklenen ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) ve ViewTreeSavedStateRegistryOwner API'lerini destekliyor. Böylece, Fragment içinde bir View kullanıldığında, Fragment, Fragment'i ViewModelStoreOwner olarak döndürür ve Fragment'in görünüm yaşam döngüsüne bağlı bir SavedStateRegistryOwner ve LifecycleOwner döndürür.

  • TRANSIT_ animasyon değişiklikleri: TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE adlı varsayılan parça efektleri artık Animation yerine Animator kullanmaktadır. Bu animatörleri oluşturmak için kullanılan kaynaklar artık gizli.

  • setRetainInstance() desteği sonlandırılıyor: Parçalardaki setRetainInstance() yönteminin desteği sonlandırıldı. ViewModels'ın kullanıma sunulmasıyla birlikte geliştiriciler, etkinlikler, parçalar ve gezinme grafikleriyle ilişkilendirilebilecek durumu korumak için belirli bir API'ye sahip oldu. Bu sayede geliştiriciler, normal ve saklanmayan bir Fragment kullanabilir ve saklanmasını istedikleri belirli durumu ayrı tutabilir. Böylece, saklanmayan durumun tek bir kez oluşturulması ve kaldırılmasının yararlı özelliklerini (yani ViewModel sınıfının kurucusunu ve aldığı onCleared() geri çağırma işlevini) korurken yaygın bir sızıntı kaynağından kaçınabilirler.

  • ViewPager 1 bağdaştırıcısı desteği sonlandırıldı: ViewPager2 1.0.0'nin kullanıma sunulmasıyla birlikte, ViewPager ile etkileşime geçmek için kullanılan FragmentPagerAdapter ve FragmentStatePagerAdapter sınıflarının desteği sonlandırıldı. ViewPager'dan ViewPager2'ye geçiş başlıklı makaleyi inceleyin.

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 taahhütleri içerir.

Hata Düzeltmeleri

  • Yapılandırma değişikliğinden sonra DialogFragment üst öğesinin DialogFragment alt öğesinin ü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ür. (I30806, b/177439520)
  • Animation ile hide işlemi yapmanın, animasyon sonunda gizlenen parçanın yanıp sönmesine neden olduğu sorun düzeltildi. (I57e22, b/175417675)
  • Görünüm hiyerarşisi eklenmeden önce geçişlerin eklendiği parçalar artık RESUMED'e düzgün şekilde ulaşıyor. (I1fc1d, b/177154873)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Fragment'in görünümü Lifecycle artık Fragment'in görünümü Lifecycle'e ulaşmadan önce yok edildiği durumları düzgün şekilde ele alıyor ve "INITIALIZED'dan sonra etkinlik yok" ifadesini içeren istisnaları önlüyor. (eda2bd, b/176138645)CREATED
  • Animator kullanan parçalar artık FragmentContainerView kullanıldığında 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 taahhütleri içerir.

Hata Düzeltmeleri

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

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Animation içeren bir parçayı FragmentContainerView'a ekleyip ardından bu eklemeyi bir pop işlemiyle kesintiye uğratırken ortaya çıkan sızıntı ve görsel kusur düzeltildi. (I952d8)
  • onCreate() veya onViewCreated() yöntemleri sırasında değiştirilirse parçanın görünümünün görünüm hiyerarşisinde kalması sorunu düzeltildi. (I8a7d5)
  • Artık devam ettirildiğinde odak, Fragment kök görünümlerine düzgün şekilde geri yüklenmektedir. (Ifc84b)
  • Aynı parça işleminde pop ve replace işlemleri birleştirildiğinde artık uygun animasyonlar gösterilecek (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 taahhütleri içerir.

Yeni Özellikler

  • FragmentScenario, Kotlin 1.4'ün FragmentAction için işlevsel arayüzlerinin kullanılmasıyla kaynak ve ikili uyumluluğu korurken tamamen Kotlin'e dönüştürülmüştür. (I19d31)

Davranış Değişiklikleri

  • class veya android:name özelliğini kullanarak bir fragmanı şişirmeyen FragmentContainerViews artık FragmentActivity dışında kullanılabilir. (Id4397, b/172266337)
  • Bir parçanın maksimum yaşam döngüsünü DESTROYED olarak ayarlamaya çalışmak artık bir IllegalArgumentException (Ie7651, b/170765622) hatası oluşturuyor
  • FragmentScenario nesnesi DESTROYED durumuyla başlatılırken artık IllegalArgumentException hatası veriliyor (I73590, b/170765622)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Animator veya TRANSIT_FRAGMENT_ seçeneklerinden birini kullanan bir parça geçişini kesintiye uğratırsanız görünümün nihai durumuna ulaşamamasına neden olan sorun düzeltildi. (I92426, b/169874632)
  • Çıkış yapan Animation içeren parçaların düzgün şekilde yok edilmesini engelleyen sorun düzeltildi. (I83d65)
  • Etkileri tersine çevrilmiş çıkış parçaları artık doğru şekilde iptal edilir ve doğru giriş efektiyle yeniden başlatılır. (I62226, b/167092035)
  • hide() için exit Animator komutunun çalışmamasına neden olan sorun düzeltildi. (Id7ffe)
  • Parçalar artık ertelendikten sonra hemen başlatıldığında düzgün şekilde gösteriliyor. (Ie713b, b/170022857)
  • Bir animasyon sırasında odaklanan görünümünü kaldıran parçalar, RESUMED değerine ulaştıklarında artık ayrılmış görünüme odaklanmayı denemeyecek (I38c65, b/172925703)

Harici Katkı

  • FragmentFactory artık farklı ClassLoader örnekleri için ayrı ayrı parça sınıfları önbelleğe alıyor. Teşekkür ederiz Sinan 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 taahhütleri içerir.

Yeni Özellikler

  • setMaxLifecycle() artık, parça CREATED'a taşınmadığı sürece Lifecycle durumunu INITIALIZING olarak ayarlama özelliğini destekliyor. (b/159662173)

API Değişiklikleri

Davranış Değişiklikleri

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

Hata Düzeltmeleri

  • <fragment> etiketi kullanılarak şişirilen parçalar artık STARTED (I02f4c) durumuna geçmeden önce görüntülemelerinin bir kapsayıcıya eklenmesini uygun şekilde bekler.
  • Görünen ve ardından setMaxLifecycle() ile CREATED arasında olan parçalar artık çıkış efektlerini düzgün şekilde çalıştırıyor. (b/165822335)
  • Arka yığına eklenmemiş, ayrılmış bir parçanın kaldırılması artık bellek sızıntısına neden olmaz. Fotoğraflar Nicklas Ansman Giertz'e aittir. (b/166489383)
  • Etkin parçalar artık her zaman null olmayan bir FragmentManager değerine sahip olacak ve null olmayan FragmentManager değerine sahip parçalar her zaman etkin olarak kabul edilecek. (aosp/1422346)
  • Parçanın varsayılan efektleri TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE için artık Animation yerine Animator kullanılıyor. (b/166155034)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Parçalar artık animasyonlarına başlamadan hemen önce görüntüleme odak durumunu düzgün şekilde geri yükler. (Icc256)
  • Yalnızca paylaşılan öğe geçişi olan parçalar artık özel efektlerini düzgün şekilde tamamlıyor. Yani nihai durumlarına geçiyorlar (Iaebc7, b/166658128)
  • Parça görünümleri artık her zaman yok edilmeden önce kapsayıcıdan kaldırılır. (Id5876)
  • Yeni durum yöneticisi artık giren parça görünümünü eklemeden önce çıkış yapan parça görünümünü tutarlı bir şekilde kaldırıyor. (I41a6e)
  • Yeni durum yöneticisi, artık bir parça görünümünün görünürlüğünde yapılan açık değişikliklere uyuyor. Yani, animasyon başlamadan önce giren bir parçanın görünümünü INVISIBLE olarak ayarlarsanız parça görünmez kalır. (b/164481490)
  • Parçalar artık Animators'e Animations'ten öncelik veriyor. Yani her ikisini de içeren bir parça yalnızca Animator'yi çalıştırır ve Animation'ı yoksayar. (b/167579557)
  • Yeni durum yöneticisi, artık giriş animasyonları kullanılırken parçaların yanıp sönmesine neden olmaz. (b/163084315)

Bilinen Sorun

Yeni durum yöneticisini kullanırken, özel efektin girişi sırasında önceki parçaya dönmek yerine geri tuşuna basarsanız eski parça hiçbir zaman yeniden eklenmez ve ekran boş görünür. (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ı. 1.3.0-alpha08 sürümü bu taahhütleri içerir.

New State Manager

Bu sürüm, yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin dağıtımını ve ertelenen işlemlerin nasıl ele alındığını etkileyen FragmentManager'ün dahili durum yönetiminde büyük bir yeniden yapılandırmayı içerir. Bu ayar varsayılan olarak etkindir. Daha fazla bilgi için Fragments: Rebuilding the Internals blog yayınını inceleyin. (b/139536619, b/147749580)

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

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

  • replace işleminin önceki parçası artık yeni parça başlatılmadan önce doğru şekilde durduruluyor. (b/161654580)
  • Parçalar artık aynı parçalarda birden fazla animasyon yarışmasının olmasını önleyerek bir Animation'nin tüm Transition efektlerini geçersiz kılacağı veya tek bir parçadaki Animator ve Transition'un aynı anda çalışacağı durumları önler. (b/149569323)
  • Artık yalnızca son giren ve ilk çıkan parça yerine, giren ve çıkan tüm parçaların enterTransition ve exitTranstion işlenir. (b/149344150)
  • Ertelenen parçalar artık CREATED durumunda takılıp kalmaz ve diğer parçalarla birlikte STARTED durumuna geçer. (b/129035555)
  • FragmentManager'ün, ertelenen yeniden sıralanan bir işlemi ve yeniden sıralanmayan bir işlemi karıştırırken işlemleri sıra dışı şekilde yürütmesine neden olan sorun düzeltildi. (b/147297731)
  • Birden fazla parçanın aynı anda gösterilmesi, parçalar ertelendiğinde ara parçaların geçici olarak görünür olmasına neden olmayacak. (b/37140383)
  • FragmentManager artık onAttachFragment() geri çağırma işlevi içinden findFragmentById() veya findFragmentByTag() çağrılırken doğru parçaları döndürüyor. (b/153082833)
  • Parçalar artık, yerlerine geçen parça ertelendiğinde yok edilen parçalarda onCreateView() çağrısı yapmıyor. (b/143915710)
  • Transition çerçevesi ve AndroidX Transition örnekleri birleştirilmeye çalışılırken gösterilen hata mesajında artık geçersiz geçişe sahip parçadan bahsediliyor. (b/155574969)

Davranış Değişiklikleri

  • Artık bir fragmanın onCreate() yaşam döngüsü yönteminde ActivityResultLauncher üzerinde launch()'ü çağırabilirsiniz. (b/161464278)
  • onCreate() çağrıldıktan sonra registerForActivityResult() çağrıldığında artık yapılandırma değişikliğinden sonra sessizce sonuç vermeden ziyade bunun izin verilmediğini belirten bir istisna atılır. (b/162255449)
  • FragmentActivity artık FragmentManager durumunu geri yüklemek için 1.2.0-alpha08 Etkinliği'nde kullanıma sunulan OnContextAvailableListener API'yi kullanıyor. FragmentActivity alt sınıflarına eklenen tüm dinleyiciler bu dinleyiciden sonra çalışır. (I513da)

Hata Düzeltmeleri

  • startIntentSenderForResult() kullanılırken iletilen ActivityOptions parametrelerine artık uyuluyor. (b/162247961)

Bilinen Sorun

  • Yeni durum yöneticisi kullanılırken, onViewCreated()'ten sonra ve onResume()'ten önce doğrudan parçanın kök görünümünün görünürlüğünü ayarlamak, belirlediğiniz 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 çö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ı. 1.3.0-alpha07 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • FragmentScenario artık parçayı her zaman RESUMED durumuna taşımak yerine CREATED, STARTED veya RESUMED olarak bir başlangıç yaşam döngüsü durumu ayarlama özelliğini destekliyor. (b/159662750)
  • onFragment API'sinin FragmentScenario yerine, değer döndürmenize olanak tanıyan Kotlin gerçekleştirilmiş uzantı yöntemi withFragment şeklinde bir alternatif eklendi. Özellikle, belirli bir blokta oluşturulan istisnaları yeniden atar. (b/158697631)

Davranış Değişiklikleri

  • FragmentScenario artık moveToState()'i uygulamak için setMaxLifecycle() kullanıyor. Bu sayede tüm API düzeylerinde tutarlı bir davranış sağlanıyor ve Fragment'in durumu, temel etkinlikten ayrılı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 sayede, durumunun kaydedilmesi ve fragmanın görünümüyle aynı anda geri yüklenmesi sağlanır. (b/158503763)

Hata Düzeltmeleri

  • Parçalar artık ViewCompat.requestApplyInsets() çağrılmadan önce parçanın görünümünün eklenmesini bekler. Böylece, içe yerleştirilme isteğinin bırakıldığı durumlar önlenir. (b/158095749)
  • clearFragmentResultListener çağrısı artık yaşam döngüsü gözlemcisini düzgün şekilde temizliyor. (b/159274993)

Sürüm 1.3.0-alpha06

10 Haziran 2020

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

Yeni Özellikler

  • FragmentActivity ve Fragment'deki onAttachFragment() geri çağırma işlevinin desteği sonlandırıldı. Daha esnek bir alternatif sunmak için yeni bir FragmentOnAttachListener eklendi. Bu, onAttachFragment()'un ayrı, test edilebilir dinleyicilere devredilmesine olanak tanır ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara dinleyici ekleme desteği sağlar. (I06d3d)

Hata Düzeltmeleri

  • Ebeveyn parçalarının görüntüleme durumu artık alt parçalarından önce geri yüklenir. Bu sayede, bir DialogFragment alt parça olarak başka bir DialogFragment gösterdiğinde yapılandırmanın değiştirilmesinden sonra ortaya çıkan görsel sıralama sorunu düzeltilir. (b/157195715)
  • UseRequireInsteadOfGet lint kontrolünün, ?. ve !! operatörlerinin zincirlenmiş 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ı. 1.3.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

API Değişiklikleri

  • setFragmentResult() ve setFragmentResultListener() API'leri artık sırasıyla boş olmayan bir Bundle ve FragmentResultListener alıyor. Daha önce ayarlanmış bir sonucu veya dinleyiciyi 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şaretlenir. (b/155323404)

Davranış Değişiklikleri

  • Fragment'daki daha önce desteği sonlandırılmış startActivityForResult(), startIntentSenderForResult() ve requestPermissions artık dahili olarak ActivityResultRegistry'i kullanıyor. Bu sayede, bu API'leri kullanırken istek kodlarınız için yalnızca alt bitleri (0xFFFF'in altında) kullanma kısıtlaması kaldırıldı. (b/155518741)

Belge Güncellemeleri

  • Varsayılan FragmentFactory kullanılırken Fragment(@LayoutRes int) ve DialogFragment(@LayoutRes int) kurucularının alt sınıflarınızın bağımsız değişken içermeyen kurucusundan çağrılması gerektiğini açıklığa kavuşturmak için bu kurucularla ilgili dokümanları genişlettik. (b/153042497)

Sürüm 1.3.0-alpha04

29 Nisan 2020

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

Yeni Özellikler

  • FragmentManager'te yeni API'ler aracılığıyla iki Fragment arasında sonuç aktarma desteği eklendi. Bu yöntem, hiyerarşi parçaları (üst/alt), DialogFragment'ler ve gezinmedeki parçalar için kullanılabilir ve sonuçların yalnızca Fragment'iniz en az STARTED olduğunda gönderilmesini sağlar. (b/149787344)

API Değişiklikleri

  • Hedef parça API'lerinin desteği sonlandı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

  • Fragment'in getViewLifecycleOwner(), artık onSaveInstanceState() çağrılmadan önce durdurulur. Bu durum, fragment'in yaşam döngüsünün davranışını yansıtır. (b/154645875)
  • Bir fragmanda setMenuVisibility(false) çağrısı yapıldığında artık alt fragmanları tarafından sağlanan menülerin görünürlüğü doğru şekilde değiştiriliyor. (b/153593580)
  • FragmentContainerView ile bir DialogFragment'un görünüm hiyerarşisine bir parça eklenirken yaşanan bir illegalStateException düzeltildi. (b/154366601)
  • Parçalardaki getDefaultViewModelProviderFactory() yöntemi, artık parçalarınızı bir etkinlik dışında barındırırken kilitlenmiyor. (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ı. 1.3.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Fragment'daki prepareCall yöntemleri artık final. (b/152439361)

Hata Düzeltmeleri

  • BottomSheetDialogFragment kullanıldığında 1.3.0-alpha02 parçasında ortaya çıkan bir gerileme 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)
  • Parça 1.2.4: Parça ProGuard kuralları, tutulan parçaların karartılmasına izin verecek şekilde güncellendi. (b/151605338)
  • 1.2.4 Fragment'inden: Yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğundan DialogFragment sınıflarındaki FragmentLiveDataObserve lint kuralı devre dışı bırakıldı. Bu sayede, observe çağrılırken this veya viewLifecycleOwner'in kullanılması güvenli hale geldi. (b/151765086)

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

  • Parçalar, 1.2.0-alpha02 etkinliğinde kullanıma sunulan Activity Result API'de önemli iyileştirmeler yapılan 1.2.0-alpha03 etkinliğine bağlıdır.

Sürüm 1.3.0-alpha02

18 Mart 2020

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

Yeni Özellikler

  • 1.2.0-alpha02 Etkinliği'nde kullanıma sunulan ActivityResultRegistry API'si için destek eklendi. Bu API, Fragment'inizdeki yöntemleri geçersiz kılmadan startActivityForResult()+onActivityResult() ve requestPermissions()+onRequestPermissionsResult() akışlarını işlemek ve bu akışları test etmek için kanca sağlamak amacıyla kullanılır. Güncellenen Bir Etkinlikten Sonuç Alma başlıklı makaleyi inceleyin. (b/125158199)

API Değişiklikleri

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

Hata Düzeltmeleri

  • 1.2.3 Fragment'inden: DialogFragment içinde onCreateDialog()'den getLayoutInflater() çağrılırken StackOverflowError'ye neden olan bir hata düzeltildi. (b/117894767, aosp/1258664)
  • Parça 1.2.3'ten: Kullanılmayan parça sınıflarının kaldırılabilmesi için parçanın dahil edilen ProGuard kurallarının kapsamı azaltıldı. (b/149665169)
  • 1.2.3 Fragmanı: Kotlin mülk adını gölgeleyen yerel bir değişken adı kullanıldığında UseRequireInsteadOfGet Lint kontrolünde yanlış pozitifler düzeltildi. (b/149891163)
  • 1.2.3 Parçası: FragmentContainerView artık düzen önizlemesinde yanlış kurucuyu kullandığı için UnsupportedOperationException hatası vermiyor. (b/149707833)

Bilinen Sorunlar

  • BottomSheetDialogFragment artık iletişim kutusunu ekranda 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ı. 1.3.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

API Değişiklikleri

  • Fragment'lerdeki setRetainInstance() yöntemi kullanımdan kaldırıldı. ViewModels'ın kullanıma sunulmasıyla birlikte geliştiriciler, etkinlikler, parçalar ve gezinme grafikleriyle ilişkilendirilebilecek durumu korumak için belirli bir API'ye sahip oldu. Bu sayede geliştiriciler, normal ve saklanmayan bir Fragment kullanabilir ve saklanmasını istedikleri belirli durumu ayrı tutabilir. Böylece, saklanmayan durumun tek bir kez oluşturulması ve kaldırılmasının yararlı özelliklerini (yani ViewModel sınıfının kurucusunu ve aldığı onCleared() geri çağırma işlevini) korurken yaygın bir sızıntı kaynağından kaçınabilirler. (b/143911815)
  • ViewPager2 1.0.0'nin kullanıma sunulmasıyla birlikte, ViewPager ile etkileşime geçmek için kullanılan FragmentPagerAdapter ve FragmentStatePagerAdapter sınıflarının desteği sonlandırıldı. ViewPager'dan ViewPager2'ye geçiş başlıklı makaleyi inceleyin. (b/145132715)

Hata Düzeltmeleri

  • Parça ProGuard kuralları artık tüm Fragment örnekleri yerine yalnızca kullanılan varsayılan kurucu Fragment sınıflarını doğru şekilde saklıyor. Bu sayede, Parça 1.2.1'de ortaya çıkan bir gerileme düzeltildi. (b/149665169
  • 1.2.2 Fragmanı'na eklenen require___() Lint kuralları, artık gölgelenen Kotlin özellik adlarıyla aynı adı paylaşan yerel değişkenlerde yanlış pozitif sonuç vermiyor (ör. view). (b/149891163)
  • FragmentContainerView, Android Studio'da düzen önizlemesi kullanılırken artık UnsupportedOperationException hatası vermiyor. (b/149707833)
  • Durum kaydedildikten sonra eklenen ve saklanan parçaların her yapılandırma değişikliğinden sonra sürekli olarak yeniden oluşturulup yok edilmemesi sorunu 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 taahhütleri içerir.

Hata Düzeltmeleri

  • Fragment'in getViewLifecycleOwner(), artık onSaveInstanceState() çağrılmadan önce durdurulur. Bu durum, fragment'in yaşam döngüsünün davranışını yansıtır. Bu, daha önce 1.3.0-alpha04 Fragmanı'nda yayınlanmıştı. (b/154645875)
  • Bir fragmanda setMenuVisibility(false) çağrısı yapıldığında artık alt fragmanları tarafından sağlanan menülerin görünürlüğü doğru şekilde değiştiriliyor. Bu, daha önce 1.3.0-alpha04 Fragmanı'nda yayınlanmıştı. (b/153593580)

1.2.4 sürümü

1.2.4 sürümü

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 taahhütleri içerir.

Hata Düzeltmeleri

  • Parça ProGuard kuralları, saklanan parçaların karartılmasına izin verecek şekilde 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ılırken this veya viewLifecycleOwner'ın kullanılması güvenli hale geldi. (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 taahhütleri içerir.

Hata Düzeltmeleri

  • DialogFragment'te, onCreateDialog() içinden getLayoutInflater() çağrılırken StackOverflowError'e neden olan bir hata düzeltildi. (b/117894767, aosp/1258665)
  • Kullanılmayan Fragment sınıflarının kaldırılabilmesi için Fragment'in dahil edilen ProGuard kurallarının kapsamı azaltıldı. (b/149665169)
  • Kotlin mülk adını gölgeleyen yerel bir değişken adı kullanıldığında UseRequireInsteadOfGet Lint kontrolünde yanlış pozitifler düzeltildi. (b/149891163)
  • FragmentContainerView artık düzen önizlemesinde yanlış kurucunun kullanılması nedeniyle UnsupportedOperationException hatası vermiyor. (b/149707833)

1.2.2 sürümü

1.2.2 sürümü

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 taahhütleri içerir.

Yeni hata analizi kontrolleri

  • Lint, onCreateView(), onViewCreated() ve onActivityCreated()'te OnBackPressedDispatcher'ye yapılan aramalar için LifecycleOwner olarak viewLifecycleOwner kullanılmasını önerir. (b/142117657)
  • fragment-testing yapısını kullanırken doğru debugImplementation kullandığınızı doğrulayan yeni bir Lint denetimi eklendi. (b/141500106)
  • Parçalar artık hem get hem de require eşdeğeri içeren tüm Parça API'leri için checkNotNull(get___()), requireNonNull(get___()) veya get___()!! yerine daha açıklayıcı hata mesajları için ilişkili require___() yöntemlerini kullanmanızı önerir. (aosp/1202883)

Hata Düzeltmeleri

  • R8 uyarılarını önlemek için Fragment ProGuard dosyaları düzeltildi (b/148963981)
  • observe kullanırken viewLifecycleOwner kullanmayı öneren mevcut lint kontrolünü, observe'un livedata-ktx uzantı yöntemi sürümünü de ele alacak şekilde iyileştirildi. (b/148996309)
  • Hata analizi kontrollerinin çoğunun biçimlendirmesi düzeltildi (aosp/1157012)

Harici katkılar

  • Slack adına require___() lint kontrollerini katkıda bulunan Zac Sweers'e teşekkürler. (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ı. 1.2.1 sürümü bu taahhütleri içerir.

Hata düzeltmeleri

  • add ve replace yöntemleri aracılığıyla eklenen ve Class örneği (veya Kotlin'in yeniden oluşturulmuş sürümleri) alan parçaların varsayılan kurucuları artık ProGuard tarafından korunuyor. (b/148181315)
  • FragmentStatePagerAdapter ve FragmentPagerAdapter, finishUpdate() çalıştırıldığında FragmentManager tarafından oluşturulan istisnaları artık yakalamıyor. (aosp/1208711)
  • FragmentManager.findFragment() etiketinin, <fragment> etiketi aracılığıyla eklenen parçalarla çalışmaması sorunu düzeltildi. (b/147784323)
  • <fragment> etiketi kullanılarak şişirilen parçalar artık düzendeyken her zaman onCreate() çağrısından önce onInflate() çağrısı alır. (aosp/1215856)
  • Etkinlik zaten yok edildiğinde FragmentManager örneğinde toString() çağrısı artık NullPointerException hatası atmaz. (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ı. 1.2.0 sürümü bu taahhütleri içerir.

1.1.0 sürümünden bu yana yapılan önemli değişiklikler

  • FragmentContainerView: FragmentContainerView, dinamik olarak eklenen Fragment'ler için kesinlikle önerilen kapsayıcıdır ve FrameLayout veya diğer düzenlerin kullanımını değiştirir. <fragment> etiketiyle aynı class, android:name ve isteğe bağlı android:tag etiketlerini de destekler ancak bu ilk parçayı eklemek için <fragment> tarafından kullanılan özel kod yolu yerine normal bir FragmentTransaction kullanır.
  • onDestroyView() zamanlaması: Fragment'ler artık onDestroyView() çağrılmadan önce çıkış animasyonlarının, çıkış çerçevesi geçişlerinin ve çıkış AndroidX geçişlerinin (Geçiş 1.3.0 kullanılırken) tamamlanmasını bekler.
  • Sınıf tabanlı add() ve replace(): FragmentTransaction üzerinde Class<? extends Fragment> ve isteğe bağlı Bundle bağımsız değişkeni alan yeni add() ve replace() aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek Fragment örneğini oluşturmak için FragmentFactory öğenizi kullanır. Yeniden oluşturulmuş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)) kullanan Kotlin uzantıları da fragment-ktx'a eklendi.
  • Lifecycle ViewModel SavedState Entegrasyonu: by viewModels(), by activityViewModels(), ViewModelProvider kurucusu veya ViewModelProviders.of() ile bir parça kullanılırken artık varsayılan fabrika SavedStateViewModelFactory'dir.
  • Yeni hata analizi kontrolleri: onCreateView(), onViewCreated() veya onActivityCreated()'den LiveData'i gözlemlerken getViewLifecycleOwner()'yi kullandığınızdan emin olmanızı sağlayan yeni bir hata analizi kontrolü eklendi.
  • getFragmentManager() desteğinin sonlandırılması: Fragment'teki getFragmentManager() ve requireFragmentManager() yöntemlerinin desteği sonlandırıldı ve bu yöntemler, Fragment'in eklendiği null olmayan FragmentManager değerini döndüren tek bir getParentFragmentManager() yöntemiyle değiştirildi (çağrılmasının güvenli olup olmadığını belirlemek için isAdded()'i kullanabilirsiniz).
  • FragmentManager.enableDebugLogging() desteği sonlandırıldı: Statik FragmentManager.enableDebugLogging yöntemi kullanımdan kaldırıldı. FragmentManager artık FragmentManager etiketi için Log.isLoggable() değerine uyuyor. Bu sayede uygulamanızı yeniden derlemeden DEBUG veya VERBOSE günlük kaydını etkinleştirebilirsiniz.

Bilinen Sorunlar

  • Yalnızca FragmentContainerView üzerindeki class veya android:name özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak saklanmaz. Bu nedenle, her bir parça sınıfı için manuel olarak bir saklama kuralı eklemeniz gerekir. (b/142601969)
  • FragmentContainerView ile XML'de class veya android:name kullanarak 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 taahhütleri içerir.

Hata düzeltmeleri

  • <fragment> etiketi kullanılırken 1.2.0-rc04 Fragment'inde, etkinlik imha edilirken onViewCreated()'nin yanlış çağrılmasına neden olan bir gerileme düzeltildi. (b/146290333)
  • <fragment> etiketiyle eklenen parçaların yapılandırma dışı verileri artık yalnızca bazen düzende (ör. yalnızca yatay düzeninizde) olsalar bile düzgün şekilde temizleniyor. Sonuç olarak, bu Fragment'ler artık taslak halinde oluşturulmak yerine, hiçbir yaşam döngüsü yönteminde hareket etmeden düzeninizde olmasa bile CREATED alanına doğru şekilde 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 taahhütleri içerir.

Hata düzeltmeleri

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

Sürüm 1.2.0-rc03

4 Aralık 2019

androidx.fragment:fragment:1.2.0-rc03, androidx.fragment:fragment-ktx:1.2.0-rc03 ve androidx.fragment:fragment-testing:1.2.0-rc03 yayınlandı. 1.2.0-rc03 sürümü bu taahhütleri içerir.

Hata düzeltmeleri

  • Kaldırılan parçaların, çıkış animasyonları / geçişleri çalışırken findFragmentById()/findFragmentByTag() tarafından hâlâ döndürüldüğü istenmeyen bir davranış değişikliği düzeltildi. (b/143982969, aosp/1167585)
  • İçerdiği etkinlik onSaveInstanceState()'ü çağırdığında artık alt parçalar ebeveynlerinden önce doğru şekilde durduruluyor. (b/144380645)
  • Gizli bir Fragment gösterildikten sonra Görüntüleme Sayısı'nın yanlışlıkla INVISIBLE olarak işaretlenmesi sorunu düzeltildi. (b/70793925)
  • Paylaşılan öğe geçişleri artık döndürülmüş, ölçeklendirilmiş vb. görünümleri yönetiyor (b/142835261)

Belge Güncellemeleri

  • setUserVisibleHint() ile ilgili desteğin sonlandırılması dokümanlarına açıklık getirildi. (b/143897055)
  • FragmentFactory ayarını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

  • Fragment'ler artık yaşam döngüsü 2.2.0-rc03, yaşam döngüsü ViewModel SavedState 1.0.0-rc03 ve etkinlik 1.1.0-rc03'e 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 taahhütleri içerir.

Hata düzeltmeleri

  • Kotlin'de, onCreateView(), onViewCreated() veya onActivityCreated()'ten LiveData'u gözlemlerken getViewLifecycleOwner() kullanmaya yönelik LintFix (Parça 1.2.0-rc01'te kullanıma sunulmuştur) artık getViewLifecycleOwner() yerine Kotlin mülk erişim söz dizimi viewLifecycleOwner'i kullanıyor. (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 taahhütleri içerir.

Yeni özellikler

  • FragmentContainerView artık <fragment> etiketinin işlevini yansıtarak android:name'ye ek olarak class özelliğini de destekliyor. (b/142722242)
  • onCreateView(), onViewCreated() veya onActivityCreated()'ten LiveData'u gözlemlerken getViewLifecycleOwner()'ü kullandığınızdan emin olmanızı sağlayan yeni bir hata kontrolü eklendi. (b/137122478)

Hata düzeltmeleri

  • DialogFragment üzerindeki onDismiss ve onCancel geri çağırma işlevleri artık kendilerine iletilen DialogInterface değerinin null olmadığını ve çalıştırıldıklarında getDialog() değerinin null olmadığını garanti eder. (b/141974033)
  • FragmentContainerView artık şişirme kapsamında class veya android:name tarafından tanımlanan Fragment'i ekleyerek findFragmentById() ve findFragmentByTag()'in hemen ardından çalışmasını sağlar. (b/142520327)
  • Durum kaydedildiği için FragmentContainerView içindeki bir IllegalStateException düzeltildi. (b/142580713)
  • FragmentContainerView sınıfı karartıldığında FragmentContainerView içinde bir UnsupportedOperationException düzeltildi. (b/142657034)

Bilinen sorunlar

  • Yalnızca FragmentContainerView üzerindeki class veya android:name özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak saklanmaz. Bu nedenle, her bir parça sınıfı için manuel olarak bir saklama kuralı eklemeniz gerekir. Bu sorun aapt2 aracılığıyla düzeltilene kadar FragmentContainerView'e 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 taahhütleri içerir.

Hata düzeltmeleri

  • Fragment'in onInflate() öğesinin FragmentContainerView öğesinden doğru özellikleri almaması ve NavHostFragment gibi durumların bozulması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 taahhütleri içerir.

Yeni özellikler

  • FragmentContainerView, android:name ve isteğe bağlı android:tag XML özellikleri için ek destek içeren bir başlangıç parçası ekleme desteği ekler. <fragment> etiketinin aksine FragmentContainerView, ilk parçayı eklemek için arka planda normal bir FragmentTransaction kullanır. Bu sayede FragmentContainerView üzerinde daha fazla FragmentTransaction işlemi yapılabilir ve düzen için Görüntü Bağlama kullanılabilir. (b/139830628, b/141177981)
  • Parçalar artık <fragment> yerine FragmentContainerView kullanmaya yönelik 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 parçalar artık onDestroyView() göndermeden önce androidx.transition geçişlerinin (sırasıyla Parça 1.2.0-alpha03 ve Parça 1.2.0-alpha02'ta düzeltilen çerçeve geçişleri ve animasyonlarına ek olarak) tamamlanmasını bekler. (aosp/1119841)
  • Geçiş 1.3.0-beta01 kullanılırken artık Fragmanlar, 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)
  • API 17 ve önceki sürümlerde, FragmentContainerView kullanırken Fragment'inizin kök görünümünde androidx.transition geçişleri kullanılırken ortaya çıkan bir sorun düzeltildi. (b/140361893)
  • fragment-testing yapı artık AndroidX Test'e 1.2.0 bağlıdır. Bu sayede, en son Espresso 3.2.0 ile uyumsuzluk düzeltildi. (b/139100149)
  • FragmentManager'da Log.w kullanımı kaldırıldı. (aosp/1126468)

Bilinen sorunlar

  • Parçanın onInflate() öğesi, FragmentContainerView öğesinden doğru özellikleri almıyor ve NavHostFragment gibi durumları bozuyor. (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ı. 1.2.0-alpha04 sürümü bu taahhütleri içerir.

API değişiklikleri

  • Fragment üzerindeki getFragmentManager() ve requireFragmentManager() yöntemlerinin desteği sonlandırıldı ve bunların yerine, Fragment'in eklendiği null olmayan FragmentManager öğesini döndüren tek bir getParentFragmentManager() yöntemi eklendi (çağrılmasının güvenli olup olmadığını belirlemek için isAdded()'i kullanabilirsiniz). (b/140574496)
  • Statik FragmentManager.enableDebugLogging yöntemi kullanımdan kaldırıldı. FragmentManager artık FragmentManager etiketi için Log.isLoggable() değerine uyuyor. Bu sayede uygulamanızı yeniden derlemeden DEBUG veya VERBOSE günlük kaydını etkinleştirebilirsiniz. (aosp/1116591)

Hata düzeltmeleri

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

Sürüm 1.2.0-alpha03

5 Eylül 2019

androidx.fragment:fragment:1.2.0-alpha03, androidx.fragment:fragment-ktx:1.2.0-alpha03 ve androidx.fragment:fragment-testing:1.2.0-alpha03 yayınlandı. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

API değişiklikleri

Hata düzeltmeleri

  • FragmentContainerView artık arka yığıntan parçalar çıkarıldığında çizim sırasını düzgün şekilde tersine çeviriyor. (b/139104187)
  • Hem bir parçayı pop up olarak açarken hem de aynı anda yeni bir parça eklerken yanlış animasyonun oynatılmasına neden olan sorun düzeltildi. (b/111659726)
  • Parçalar artık onDestroyView()'ı göndermeden önce geçişlerin (1.2.0-alpha02 Parçası'nda düzeltilen 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üme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • SavedStateViewModelFactory artık by viewModels(), by activityViewModels(), ViewModelProvider kurucusu veya Fragment ile ViewModelProviders.of() kullanılırken kullanılan varsayılan fabrikadır. (b/135716331)
  • FragmentTransaction cihazlarda setTransition ile birlikte TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, TRANSIT_FRAGMENT_FADE kullanı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ıralama sorunlarını ve parçalara gönderilen pencere içe eklemelerini düzelttiği için dinamik olarak eklenen parçalar için FragmentContainerViewFrameLayout vb. kullanımların yerine güçlü bir şekilde önerilen kapsayıcı olarak kullanıma sunar. (b/37036000, aosp/985243, b/136494650)
  • Bir parça tarafından şişirilen bir görünümden içeren parçayı almak için statik bir FragmentManager.findFragment(View) yöntemi eklendi. fragment-ktx'te Kotlin uzantısı da mevcuttur. (aosp/1090757)
  • FragmentTransaction üzerinde Class<? extends Fragment> ve isteğe bağlı bir Bundle bağımsız değişkeni alan yeni add() ve replace() aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek Fragment örneğini oluşturmak için FragmentFactory öğenizi kullanır. fragment-ktx'a, gerçekleştirilmiş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)) kullanan Kotlin uzantısı da eklendi. (b/126124987)
  • Fragment yaşam döngüsü geri çağırmalarına @MainThread ek açıklamaları eklendi. (b/127272564)
  • FragmentTransaction ve FragmentManager.BackStackEntry'teki içerik haritası başlığıyla ilgili API'lerin desteği sonlandırıldı. (b/138252944)
  • FragmentTransaction'daki setTransitionStyle yöntemi kullanımdan kaldırıldı. (aosp/1011537)
  • FragmentManager yöntemlerinden çoğu artık abstract değildir. FragmentManager kendisi abstract olarak kalır ve doğrudan örneklendirilmemeli veya genişletilmemelidir; yalnızca getSupportFragmentManager(), getChildFragmentManager() vb. öğelerden mevcut bir örnek almaya devam etmeniz gerekir.

Hata düzeltmeleri

  • Parça 1.1.0-rc04: Parçalar artık pop-up olarak gösterilen parçalarda ertelenen geçişleri doğru şekilde iptal ediyor. (b/138251858)
  • 1.1.0-rc03 Fragment'inden: postponeEnterTransition() işlevinin zaman aşımı parametresi birden fazla kez çağrıldığında önceki zaman aşımlarının iptal edilmemesi sorunu düzeltildi. (b/137797118)
  • 1.1.0-rc02 Fragment'inden: Geçerli öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter'te yaşanan kilitlenme sorunu düzeltildi. (b/137209870)
  • Parçalar artık onDestroyView() göndermeden önce animasyonların tamamlanmasını bekler. (b/136110528)
  • Alt parçalardan ve alt öğelerinden gelen parça animasyonları, artık üst parça animasyonlarında düzgün şekilde ele alınıyor. (b/116675313)
  • Ortak öğe geçişleri kullanılırken ve pop ile ekleme işlemi birleştirilirken ortaya çıkan bir NullPointerException sorunu düzeltildi. (b/120507394)
  • Robolectric testlerinde FragmentPagerAdapter ve FragmentStatePagerAdapter kullanılırken IllegalStateException için bir geçici çözüm eklendi. (b/137201343)

Sürüm 1.2.0-alpha01

2 Temmuz 2019

androidx.fragment:fragment:1.2.0-alpha01, androidx.fragment:fragment-ktx:1.2.0-alpha01 ve androidx.fragment:fragment-testing:1.2.0-alpha01 yayınlandı. Bu sürüme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • FragmentManager artık Fragment'in görünümünü ekledikten sonra ve doğrudan onViewCreated()'ı çağırmadan önce requestApplyInsets()'yi çağırıyor. Böylece görünümünüzün her zaman doğru iç içe yerleştirilmelerine sahip olmasını sağlıyor. (b/135945162)

Hata düzeltmeleri

  • replace()'dan önce setPrimaryNavigationFragment() kullanan bir FragmentTransaction'ı açarken oluşan bir NullPointerException düzeltildi. (b/134673465)

1.1.0 sürümü

1.1.0 sürümü

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üme dahil edilen taahhütleri burada bulabilirsiniz.

1.0.0 sürümünden bu yana yapılan önemli değişiklikler

  • fragment-testing: fragment-testing yapıları, bir parçayı tek başına test etmek için FragmentScenario sınıfı sağlar. Daha fazla bilgi için Uygulamanızın parçalarını test etme dokümanlarını inceleyin.
  • FragmentFactory: Artık, bağımsız bölüm örneklerinin oluşturulmasını yönetmek için FragmentManager üzerinde bir FragmentFactory ayarlayabilirsiniz. Böylece, bağımsız bölüm oluşturucunun bağımsız değişken içermemesi şartı kaldırılmış olur.
  • ViewModel'ler için Kotlin mülk temsilcileri: fragment-ktx yapı artık iki Kotlin mülk temsilcisi içeriyor: Ayrı bir fragmanla ilişkili ViewModel'lere erişmek için by viewModels() ve etkinlik kapsamına alınmış ViewModel'lere erişmek için by activityViewModels().
  • Maks. yaşam döngüsü: Artık bir FragmentTransaction üzerinde setMaxLifecycle() çağrısı yaparak bir parça için maksimum yaşam döngüsü durumu ayarlayabilirsiniz. Bu, artık kullanımdan kaldırılan setUserVisibleHint()'ün yerini almıştır. FragmentPagerAdapter ve FragmentStatePagerAdapter, yeni davranışa geçmenize olanak tanıyan yeni bir oluşturucuya sahiptir.
  • FragmentActivity LayoutId oluşturucusu: FragmentActivity alt sınıfları artık isteğe bağlı olarak onCreate()'te setContentView()'i çağırmanın alternatifi olarak FragmentActivity'de R.layout kimliği alan bir oluşturucu çağırabilir. Bu oluşturucu, 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şken içermeyen bir kurucuya sahip olması şartını değiştirmez.
  • Fragment LayoutId oluşturucusu: Fragment alt sınıfları artık isteğe bağlı olarak onCreateView()'i geçersiz kılma yerine bu parça için kullanılacak düzeni belirten bir R.layout kimliği alan Fragment oluşturucusunu çağırabilir. Şişirilmiş düzen onViewCreated()'te yapılandırılabilir.
  • Aşırı yüklemeyi zaman aşımıyla erteleme: Zaman aşımı alan yeni bir postponeEnterTransition() aşırı yükleme işlevi 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üme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Parçalar artık pop-up olarak gösterilen parçalarda ertelenen geçişleri doğru şekilde iptal ediyor. (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üme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Zaman aşımı ile postponeEnterTransition() çağrısının birden fazla kez çağrılmasının önceki zaman aşımlarını iptal etmemesi sorunu 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üme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Mevcut öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter'te yaşanan kilitlenme sorunu 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üme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

  • Geçiş çalışırken show() veya hide() işlemleri kullanıldığında artık parçaların görünürlüğü doğru şekilde güncelleniyor. (b/133385058)
  • replace()'dan önce setPrimaryNavigationFragment() kullanan bir FragmentTransaction'ı açarken oluşan bir 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üme dahil edilen taahhütleri burada bulabilirsiniz.

Hata düzeltmeleri

  • İç içe yerleştirilmiş Fragment'ler için androidx.lifecycle.Lifecycle geri çağırma işlevleri (özellikle STARTED, RESUMED, PAUSED, STOPPED ve DESTROYED ile ilgili) artık düzgün şekilde iç içe yerleştiriliyor. (b/133497591)
  • Bir Fragment'in onCreate() özelliğine kaydedilen OnBackPressedCallback örnekleri artık alt FragmentManager'a göre uygun şekilde önceliklidir. (b/133175997)
  • Üst parçaları değiştirilirken alt parçalar artık animasyonlu olarak gösterilmiyor. (b/121017790)
  • animateLayoutChanges="true" kullanılırken artık parça animasyonları ve geçişler yoksayılıyor. Bu sayede, parçaların düzgün şekilde yok edilmemesine neden olan sorun 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üme dahil edilen taahhütleri burada bulabilirsiniz.

API değişiklikleri

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

Hata düzeltmeleri

  • Bir alt fragman tarafından şişirilen menü öğeleri, ana fragman kaldırıldığında artık 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üme dahil edilen taahhütleri burada bulabilirsiniz.

Bu sürüm, Preferences 1.1.0-alpha01 ile 1.1.0-alpha04 arasında uyumlu değildir. Fragments'in bu sürümünü kullanırken lütfen Tercihler 1.1.0-alpha05 sürümüne yükseltin.

Yeni özellikler

  • Zaman aşımı alan yeni bir postponeEnterTransition() aşırı yükleme işlevi eklendi. Bu işlevden sonra Fragment, startPostponedEnterTransition()'ı otomatik olarak çağırır b/120803208

API değişiklikleri

  • Önemli değişiklik: Bundle alan ve daha önce desteği sonlandırılan FragmentFactory instantiate yöntemi kaldırıldı. aosp/953856
  • Önemli değişiklik: FragmentPagerAdapter ve FragmentStatePagerAdapter'daki RESUME_ONLY_CURRENT_FRAGMENT ve USE_SET_USER_VISIBLE_HINT sabitleri 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ırlandırılmış olan parçalar artık son durumlarına ulaşmadan devam ettirilmez. b/131557151
  • setMaxLifecycle(Lifecycle.State.CREATED) kullanıldığında parçaların görünümü uygun ş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üme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • Artık FragmentTransaction üzerinde setMaxLifecycle() çağrısı yaparak bir Fragment için maksimum yaşam döngüsü durumu ayarlayabilirsiniz. Bu, artık kullanımdan kaldırılan setUserVisibleHint()'ün yerini almıştır. FragmentPagerAdapter ve FragmentStatePagerAdapter, yeni davranışa geçmenize olanak tanıyan yeni bir oluşturucuya sahiptir. (b/129780800)

API Değişiklikleri

  • FragmentScenario üzerindeki moveToState(STARTED) artık yalnızca API 24 ve sonraki sürümleri çalıştıran cihazlarda çağrılabilir. (b/129880016)

Davranış Değişiklikleri

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

Hata düzeltmeleri

  • XML'de <fragment> etiketi ve FragmentActivity veya AppCompatActivity için contentLayoutId kurucusu kullanıldığında ortaya çıkan bir sorun düzeltildi. (b/129907905)
  • Arka yığıntaki parçaların, yapılandırma değişikliğinden sonra en az CREATED'e taşınmaması ve bu nedenle ViewModel'lerin ve tutulan alt parçaların düzgün şekilde kaldırılmamasına neden olan sorun düzeltildi. (b/129593351)
  • Örnek durumu kaydedildikten sonra tutulan parçaların senkronizasyonunun kaldırılmasından kaynaklanan restoreSaveState kilitlenme sorunu düzeltildi. (b/130433793) (aosp/947824)
  • FragmentManager'un geri yığını varsa, bir parça yaşam döngüsü ile eklenen OnBackPressedCallback'ün çağrılmaması sorunu düzeltildi. Daha fazla bilgi için androidx.activity 1.0.0-alpha07 bölümüne bakın. (aosp/948209)
  • Parçalar artık animasyonlar için LAYER_TYPE_HARDWARE'ü zorunlu kılmıyor. Özellikle 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üme dahil edilen taahhütleri burada bulabilirsiniz.

Yeni özellikler

  • FragmentManager tarafından atılan istisnalar artık mesaja Fragment'in adını ekliyor. (b/67759402)

API Değişiklikleri

  • Fragment ve FragmentActivity artık @LayoutRes int alan ikinci bir kurucu işlevi içeriyor. Bu işlev, sınıfınıza @ContentView ile not ekleme işleminin önceki davranışını değiştiriyor. Bu yaklaşım hem uygulama hem de kitaplık modüllerinde işe yarar. (b/128352521)
  • FragmentActivity'nin onActivityResult() özelliği artık @CallSuper olarak işaretlendi. (b/127971684)
  • FragmentFactory'nin Bundle bağımsız değişkeni alan instantiate yöntemi kullanımdan kaldırıldı. Uygulamalar, Bundle bağımsız değişkeni almayan yeni instantiate aşırı yüklemesini kullanmalıdır. (b/128836103)
  • FragmentScenario yöntemleri artık @StyleRes ile uygun şekilde ek açıklamaya sahip. (aosp/924193)
  • FragmentTabHost desteği sonlandırıldı. (b/127971835)
  • FragmentActivity'nin getThemedContext() özelliği kaldırıldı. (aosp/934078)

Hata düzeltmeleri

  • 1.1.0-alpha05 sürümünde, gelen Fragment'in ekranda yanıp sönmesine neden olan bir gerileme düzeltildi. (b/129405432)
  • popBackStack+replace+popBackStack işlem dizisi sonrasında birincil gezinme fragmanının kaybolmasına neden olan sorun düzeltildi. (b/124332597)
  • Fragment durumunu geri yüklerken Etkinliğinizde @ContentView kurucuları kullanırken yaşanan bir sorun düzeltildi. (b/127313094)
  • Mevcut bir hedef Fragment'i 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üme dahil edilen tüm taahhütlerin tam listesini burada bulabilirsiniz.

Yeni özellikler

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

Davranış değişiklikleri

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

Hata düzeltmeleri

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

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() sınıfı ek açıklamaları için destek eklendi. Bu ek açıklamalar, onCreateView()'yi geçersiz kılmanın alternatifi olarak hangi düzen XML dosyasının şişirileceğini belirtmenize olanak tanır.@ContentView İlgili çalışmaları onViewCreated()'te görüntülemeniz önerilir. (aosp/837619)
  • fragment-testing artık androidx.test:core-ktx 1.1.0 kararlı sürümüne (b/121209673) bağlıdır
  • Artık openActionBarOverflowOrOptionsMenu ile FragmentScenario'ü kullanarak parça tarafından barındırılan seçenek menülerini test edebilirsiniz (b/121126668)

API değişiklikleri

  • @NonNull Bundle döndüren veya IllegalStateException atan requireArguments() yöntemi eklendi (b/121196360)
  • getLifecycle(), getViewLifecycleOwner() ve getViewLifecycleOwnerLiveData() öğelerinin geçersiz kılınmaması ve gelecekteki bir sürümde nihai hale getirileceğiyle ilgili bir not eklendi. Şu anda bu yöntemi geçersiz kılmaya çalışıyorsanız lütfen özellik isteği gönderin. (aosp/880714)
  • getViewModelStore() parametresinin geçersiz kılınmaması ve gelecekteki bir sürümde nihai hale getirileceğiyle ilgili bir not eklendi. Şu anda bu yöntemi geçersiz kılmaya çalışıyorsanız lütfen özellik isteği gönderin. (aosp/880713)
  • Fragments'ın önceki sürümleriyle ikili uyumlulukla ilgili bir sorun düzeltildi. (aosp/887877) (aosp/889834)

Hata düzeltmeleri

  • null öğesini setTargetFragment() öğesine ilettiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)
  • Hedef Fragment'lerin bazen onDestroy()'te veya sonrasında kullanılamamasına neden olan sorun düzeltildi. (b/122312935)
  • DialogFragment'in onDismiss() işlevi artık onDestroy() işlevinden önce çağrılıyor. (aosp/874133) (aosp/890734)

Sürüm 1.1.0-alpha03

17 Aralık 2018

Yeni özellikler

  • Parça artık BundleSavedStateRegistryOwner'ü uygular ve yeni yayınlanan SavedState kitaplığına [aosp/824380] bağlıdır.
  • İçerdiği Activity ile ilişkili ViewModel'leri almak için bir by activityViewModels Kotlin mülk temsilcisi eklendi [b/119050253]
  • by viewModels Kotlin mülk temsilcisi, ViewModelStoreOwner'yi almak için isteğe bağlı bir lambda yöntemi alacak şekilde genişletildi. Bu sayede, val viewModel: MyViewModel by viewModels(::requireParentFragment) gibi bir kodla ana Fragment'i veya başka bir özel ViewModelStoreOwner'yi iletebilirsiniz [b/119050253]

API değişiklikleri

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

Hata düzeltmeleri

  • IllegalStateException düzeltildi: b/120814739 durumu kaydedilemedi
  • Kayıtlı örnek durumundan geri yüklenen parçalar artık her zaman null olmayan bir alır. [b/119794496]Bundle
  • Kaldırılan Fragmanlar yeniden eklenirse artık Lifecycle nesnelerini yeniden kullanmaz [b/118880674]

Sürüm 1.1.0-alpha02

3 Aralık 2018

Yeni özellikler

  • FragmentScenario'nun Kotlin uzantıları artık Fragment oluşturmak için FragmentFactory örneğini iletmek yerine lambda kullanmanıza olanak tanır. (aosp/812913)

Hata düzeltmeleri

  • Arka yığınta iç içe yerleştirilmiş Fragment'ler kullanılırken oluşan IllegalStateException hatası düzeltildi (b/119256498)
  • FragmentScenario.recreate() ile FragmentFactory kullanırken kilitlenme düzeltildi (aosp/820540)
  • 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, androidx.test:core API'lerinin üzerine inşa edilen fragment-testing yapı ve FragmentScenario'ın ilk sürümüdür. Daha fazla bilgi için Bölüntü testi dokümanlarını inceleyin.

Yeni özellikler

  • Parçaları tek başına test etmek için yeni FragmentScenario sınıfı.
  • Artık yeni Fragment örneklerinin nasıl oluşturulacağını kontrol etmek için herhangi bir FragmentManager üzerinde FragmentFactory ayarlayabilirsiniz.
  • Bir Fragment'ten ViewModel'leri almak için yeni bir by viewModels() Kotlin mülk temsilcisi eklendi.
  • Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık bir Fragment'in onStop() içinde iptal ediliyor.

API değişiklikleri

  • Fragment API yüzeyinde boşluk kabul edilebilirlik ek açıklamaları önemli ölçüde genişletildi.

Hata düzeltmeleri

  • LiveData'dan Fragment işlemlerinin 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 hedef Fragment'lere 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.