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 Yayın Adayı Beta Sürümü Alfa Sürümü
30 Ekim 2024 1.8.5 - - -

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'i iyileştirmemize yardımcı olacaktır. 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 sorun oluşturma

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

Sürüm 1.8

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şler 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 öğesindeki UninitializedPropertyAccessException sorunu düzeltildi. (I12dea)

Sürüm 1.8.3

4 Eylül 2024

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

Hata Düzeltmeleri

  • FragmentManager artık Tahmine Dayalı Geri hareketini kullanırken beklemedeki 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 eklendiğinde 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

  • Tahmine dayalı geri hareketi başlatılırken kapsayıcı içermeyen parçaların hemen DESTROYED olması 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 OnBackStackChangedListener arayüzünde onBackStackChangeCancelled geri çağırması artık FragmentManager ürününde yürütülen işlemlerin bir parçası olarak tetiklenerek onBackStackChangeCommitted geri çağırmasının zamanlamasıyla uyumlu hale geliyor.

Sürüm 1.8.0-rc01

29 Mayıs 2024

androidx.fragment:fragment-*:1.8.0-rc01 yayınlandı. 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 olduğu 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 Fragment'inden: 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ınlandı. 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 parçaların Compose hiyerarşisine eklenmesine olanak tanır. Parçanın durumunun kaydedilmesini ve geri yüklenmesini otomatik olarak gerçekleştirir. Bu, AndroidViewBinding Composable öğesinin doğrudan yerine kullanılabilir.(b/312895363, Icf841)

Belge Değişiklikleri

  • OnBackStackChangedListener API'leriyle ilgili dokümanlar, ne zaman çağrıldıklarını ve nasıl kullanılmaları gerektiğini gösterecek şekilde güncellendi. (I0bfd9)

Bağımlılık güncellemesi

1.7 sürümü

Sürüm 1.7.1

14 Mayıs 2024

androidx.fragment:fragment-*:1.7.1 yayınlanır. Sürüm 1.7.1 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ınlandı. 1.7.0 sürümü bu taahhütleri içerir.

Tahmine Dayalı Geri 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, kullanıcıların hareketi tamamlayarak veya iptal ederek işlemi yapmaya karar vermeden önce Animatörünüzü/Geçişinizi arayarak önceki parçayı görmek için geri hareketini kullanmasına olanak tanır.
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 tahmini geri ilerleme durumunu almak için onBackStackChangeProgressed() ve iptal edilen etkinlikleri almak için onBackStackChangeCancelled() sağlıyor.

Parça Oluşturma Yapısı

Parça tabanlı bir mimariden tamamen Compose tabanlı bir mimariye geçme sürecindeki uygulamaları desteklemeye odaklanan yeni bir fragment-compose yapısı 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ınlandı. 1.7.0-rc02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Başka geçiş olmadan bir sharedElement ayarlama işleminin neden başarısız olacağını gösteren günlükler eklendi. (Iec48e)
  • Diğer tüm geçişlerin aranabileceği işlemlere, aranamayan bir paylaşılan öğe eklenmesi durumunda 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. Sürüm 1.7.0-beta01 bu kayıtları içerir.

API Değişiklikleri

  • FragmentHostCallback artık Kotlin dilinde yazılıyor. Böylece ana makine türünün genel türündeki boş değer, onGetHost() döndürme türünün null değeriyle eşleşir. (I40af5)

Hata Düzeltmeleri

  • Kapsayıcıda olmayan bir parçaya Tahmine Dayalı Geri hareketi uygulanırken 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ı

Parça tabanlı bir mimariden tamamen Compose tabanlı bir mimariye geçme sürecindeki uygulamaları desteklemeye odaklanan yeni bir fragment-compose yapısı 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 Parçanın Tahmine Dayalı Geri desteği kullanılırken addOnBackStackChangedListener aracılığıyla hiç FragmentManager.OnBackStackChangedListener eklenmemişse Fragment'lar handleOnBackProgressed üzerinden NullPointerException gönderir. Manuel olarak bir işleyici eklemek kilitlenmeyi çözer. Bunun için Fragments'ın bir sonraki sürümünde bir düzeltme yayınlanacaktır.

Sürüm 1.7.0-alpha08

10 Ocak 2024

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

Temizlik

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

Hata Düzeltmeleri

  • Paylaşılan öğe geçişinin ayarlanmasından ve bir enter/exitTransition ayarlanmamasından kaynaklanan NullPointerException 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 de temizlenecektir. (I6d83c, b/296173018)

Sürüm 1.7.0-alpha06

4 Ekim 2023

androidx.fragment:fragment-*:1.7.0-alpha06 yayınlandı. 1.7.0-alpha06 sürümü bu 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 kaydetmeleri içerir.

Yeni Özellikler

  • Fragment'ler artık Androidx Geçişler kullanılırken tahmini geri özelliğini destekliyor. Bu, tamamlanan hareketi kullanarak işlemi kaydetmeye veya iptal etmeye karar vermeden önce özel Androidx Transition ile önceki parçaya gitmek için geri hareketini kullanmanıza olanak tanır. Bu özelliği etkinleştirmek için 1.5.0-alpha03 Geçişi 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ı sorunuyla ilgili olarak çalışmalarımız devam ediyor. 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

  • Parçaların doğru yaşam döngüsü durumuna getirilemediği, tahmine dayalı geri hareketi iptal edilirken karşılaşılan sorun düzeltildi. (I7cffe, b/297379023)
  • Animasyonların Geçişlerle çalışmasına izin verilen regresyonlar düzeltildi. (I59f36)
  • Tahmini Geri özelliği, parçalarla birlikte kullanıldığında arka yığıntaki sondan ikinci parçada art arda iki kez geri 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 kaydetmeleri 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ınlandı. 1.7.0-alpha02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • API 34'teki Tahmine Dayalı Geri Hareketlerle Parçalar kullanılırken, sarmayı (Animations, Transitions) desteklemeyen veya hiç geçiş içermeyen bir geçiş sistemi kullanıyorsanız Parçalar artık geri işlemi yürütmeden önce hareketin tamamlanmasını bekleyecek. (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.

Sürüm 1.6

Sürüm 1.6.2

1 Kasım 2023

androidx.fragment:fragment-*:1.6.2 yayınlandı. 1.6.2 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Bir FragmentContainerView öğesinin Fragment'i şişirildiğinde FragmentManager, Ana makine ve kimlik 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. Sürüm 1.6.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Etkinlik durdurulduğunda ancak silinmediğinde kaydedilen durumun, parça örneği RESUMED durumuna geri taşındıktan sonra bile yanlış bir şekilde önbelleğe alınmasına neden olan sorun 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 değişiklik, Kotlin kullanıcılarının Activity'ye açık bir bağımlılık olmadan ComponentDialog'ü genişletememesine neden olan sorunu giderir. (b/287509323)

Sürüm 1.6.0

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, tamamen özel kitaplık durumu (özel Parcelable sınıfları) ve geliştirici tarafından sağlanan durum arasında 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ğerin 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ı.
  • Parça artık ProfilePlayer 1.3.0 öğesine bağlı.
  • fragment-testing-manifest yapısı, manifest girişlerini parça testi bileşenlerinin geri kalanından ayırır. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:

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

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

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 (bu işlemler, arka yığını değiştiren işlemlerle karıştırılmışsa) 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 öğesinin zaman aşımıyla kullanılması ve ardından ertelenen parçanın değiştirilmesi, ertelenen parçanın sızdırılmasına neden olmaz. (I2ec7d, b/276375110)
  • Yeni onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırma işlevleri artık aynı parçayı birden fazla işlem içerse bile yalnızca bir kez gönderir. (Ic6b69)

Sürüm 1.6.0-alpha09

5 Nisan 2023

androidx.fragment:fragment-*:1.6.0-alpha09 yayınlandı. 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ınlandı. 1.6.0-alpha08 sürümü bu kaydetmeleri 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, geri çağırmanın hiçbir zaman ayrılan bir parçanın iletilmemesini sağlar. (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 Parça'dan: Bir Parçanın kaldırılmasının, Menü öğeleri eklenmiş olup olmamasına bakılmaksızı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 kaydetmeleri içerir.

Davranış değişikliği

  • Artık, parçalar hedef durumlarına taşınmaya başlamadan önce FragmentManager ürününün onBackStackChangedListener üzerindeki yeni onBackStackChangedStarted geri çağırması 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ünde artık iki ek geri çağırma (onBackStackChangeStarted ve onBackStackChangeCommitted) bulunmaktadır. Bunlar, FragmentManager içinde geri yığın değişikliklerinin ne zaman gerçekleşeceğini kontrol etmenize ve ek bilgiler sağlamanıza olanak tanır. (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 istenmez. (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 parçanın üst öğenin Görünüm hiyerarşisinde iç içe yerleştirildiğini ancak üst öğenin 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 Parçası'ndan: Parçalar, ViewModel durumunu artık görünüm kayıt defteri kaydedilmiş durumunun bir parçası olarak hatalı bir şekilde kaydetmez. (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 kaydetmeleri 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ğırmaları almasını sağlamak için, yeni sağlayıcı geri çağırma arayüzlerinin (OnConfigurationChangedProvider, OnMultiWindowModeChangedProvider, OnTrimMemoryProvider, OnPictureInPictureModeChangedProvider) entegrasyonunun neden olduğu regresyonlar düzeltildi. (I9b380,I34581, (I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)

Sürüm 1.6.0-alpha02

24 Ağustos 2022

androidx.fragment:fragment:1.6.0-alpha02, androidx.fragment:fragment-ktx:1.6.0-alpha02 ve androidx.fragment:fragment-testing:1.6.0-alpha02 yayınlandı. 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 serbest bırakıldı. 1.6.0-alpha01 sürümü bu taahhütleri içerir.

Davranış Değişiklikleri

  • Fragment öğelerinin kayıtlı durumu, özel kitaplık durumu (özel Parcelable sınıfları) ile geliştirici tarafından sağlanan durum arasında tamamen bölündü. Bu durum, artık her zaman bir parçanın durumunun tam olarak nereden kaynaklandığını belirlemeye olanak tanıyan bir Bundle içinde depolanıyor. (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

Sürüm 1.5.7

19 Nisan 2023

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

Hata Düzeltmeleri

  • postponeEnterTransition öğesinin zaman aşımıyla kullanılması ve ardından ertelenen parçanın değiştirilmesi, ertelenen parçanın sızdırılmasına neden olmaz. (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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Herhangi bir Parça'nın kaldırılmasının, Menü öğeleri eklenmiş olup olmamasına bakılmaksızı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ısının çalışmaması sorunu 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 kaydetmeleri içerir.

Hata Düzeltmeleri

  • Parçalar, ViewModel durumunu artık görünüm kayıt defteri kaydedilmiş durumunun bir parçası olarak hatalı bir ş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 kaydetmeleri 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çalar artık birden fazla onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory() veya onConfigurationChanged() geri çağırması almayacak. (I690b3, Id0096, If9d6b, I2cba2)

Sürüm 1.5.2

10 Ağustos 2022

androidx.fragment:fragment:1.5.2, androidx.fragment:fragment-ktx:1.5.2 ve androidx.fragment:fragment-testing:1.5.2 yayınlandı. 1.5.2 sürümü bu kaydetmeleri 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 serbest bırakıldı. 1.5.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • AGP 7.4 ile paket halinde sunulan lint sürümünü kullanmanın lint'in çökmesine neden olacağı DialogFragmentCallbacksDetector regresyonunu düzeltin. (b/237567009)

Bağımlılık güncellemesi

Sürüm 1.5.0

29 Haziran 2022

androidx.fragment:fragment:1.5.0, androidx.fragment:fragment-ktx:1.5.0 ve androidx.fragment:fragment-testing:1.5.0 serbest bırakıldı. 1.5.0 sürümü bu kaydetmeleri içerir.

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

  • CreationExtras Entegrasyonu - Fragment, artık Yaşam döngüsü 2.5.0'nin CreationExtras aracılığıyla durum bilgisiz 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 yönelik bir çabadı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 sınıf adıyla birlikte allowViolation() kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasını sağlıyor.
  • 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üne duyarlı 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 Durumunu Yeniden Düzenleme

  • 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ı 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 Durumunu Yeniden Düzenleme

  • FragmentManager, kaydedilen örnek durumunu artık doğrudan özel bir Parcelable yerine Bundle öğesine 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 serbest bırakıldı. 1.5.0-alpha05 sürümü bu kaydetmeleri 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 kaydetmeleri 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 kaydetmeleri 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 serbest bırakıldı. 1.5.0-alpha02 sürümü bu kaydetmeleri 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 serbest bırakıldı. 1.5.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

Hata Düzeltmeleri

  • 1.4.1 Fragment'inden: 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, artık XML dosyasından oluşturulan görüntüleme kimlikleri negatif değerler içerdiğinde geçersiz durum istisnası bildirmez. (Ic185b, b/213086140)
  • by viewModels() geç işleviyle birlikte özel bir ownerProducer lambdası kullanılırken, her zaman parçanın fabrikasını kullanmak yerine özel ViewModelProvider.Factory sağlanmazsa artık bu sahibin defaultViewModelProviderFactory öğesini kullanı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 kullandığınız kitaplıkların kullanımdan kaldırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı denetimleri sunar. 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 ve kendi benzersiz politikalarını ayarlamayan tüm alt parça yöneticileri için geçerlidir. Parçalar için StrictMode sayfasına bakın.
  • 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çalar geçişinde temanızdan alınan standart Etkinlik geçiş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 sağlar. Bu sayede, bu işlemleri pop up olarak gösterebilir 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, mevcut arka yığını kaydederek ve kaydedilen bir yığını geri yükleyerek birden fazla arka yığını etkili bir şekilde "değiştirmenize" olanak tanır.

saveBackStack(), popBackStack() ile benzer şekilde çalışır. 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 boş 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 boş 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 parçanın görüntüleme durumunun depolandığı, her parçanın onSaveInstanceState() tanesinin çağrıldığı ve bu durumun geri yüklendiği, bu parçalarla ilişkilendirilmiş tüm ViewModel örneklerinin saklandığı (ve onCleared() bunlar üzerinde çağrılanmaz) 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 yeterli olmalıdır (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() çağrılarını yaptığı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()'ün kullanımdan kaldırılmasıyla ilgili 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ç durumları ele alacak ş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 herhangi bir önemli değişiklik yapılmadan yayınlandı. 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 kaydetmeleri 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 öğesinin, daha önce saveBackStack() aracılığıyla kaydedilen durumun bir kopyasını, ilgili durum geri yüklendikten sonra bile saklamasına neden olan sorun 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 ş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 serbest bırakıldı. 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ı. Parçaları FragmentActivity dışında barındırmak için FragmentController kullanıyorsanız FragmentHostCallbacks uygulamanızın SavedStateRegistryOwner uygulamasını yapmanız 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 serbest bırakıldı. 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ı görünen ipucunun neye ayarlandığını içeren daha ayrıntılı bir hata mesajı içeriyor. (Ib2d5f)

Davranış Değişiklikleri

  • FragmentContainerView üzerinde fitsSystemWindows çağrısı yapmayla ilgili kısıtlama 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 günlük kaydı FragmentManager aracılığıyla 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ın katı moddan Violation muaf tutulmasını destekliyor. Bu sayede, ilgili 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 (If5118, b/187871150) tam olarak ne olduğunu doğrulayabilirsiniz. Her Violation aşağıdakileri içerir:

    • WrongFragmentContainerViolation, artık Fragment öğesinin eklenmeye çalıştığı ViewGroup öğesini 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'ı 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üne ait 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 serbest bırakıldı. 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 işlem, 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ı arasında etkili bir şekilde "takas" yapabilirsiniz.

saveBackStack(), eşzamansız olması ve tüm parça işlemlerinin tersine çevrilmesi ("aktarılması") ve eklenen parçaların kaldırılıp kaldırılmaması açısından popBackStack() ile benzer şekilde çalışır. Ancak aralarında birkaç önemli fark vardır:

  • saveBackStack() her zaman dahildir.
  • Belirtilen ad arka yığınta bulunamazsa veya boş 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 boş 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 parçanın görüntüleme durumunun depolandığı, her parçanın onSaveInstanceState() tanesinin çağrıldığı ve bu durumun geri yüklendiği, bu parçalarla ilişkilendirilmiş tüm ViewModel örneklerinin saklandığı (ve onCleared() bunlar üzerinde çağrılanmaz) 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 yeterli olmalıdır (yani, bu işlem grubunun dışındaki herhangi bir parçayı açıkça referans almamalıdır).
  • FragmentManager öğesinin, arka yığın kaydedildikten sonra kaydedilen parçalara herhangi bir referans döndürmemesini sağlamak için, kaydedilen hiçbir parça, saklanan bir parça olamaz veya geçişli alt parçalar kümesinde tutulan bir parçaya sahip olamaz.

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 tespit edildiğinde günlük mesajı yazdırmayı, kendi özel işleyicinizi tetiklemeyi veya uygulamanızı kilitlenmeyi seçebilirsiniz. Hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy, yeni setStrictModePolicy() yöntemiyle FragmentManager üzerinde ayarlanabilir. Bu politika, söz konusu FragmentManager için ve kendi benzersiz politikasını ayarlamamış tüm alt parça yöneticileri için geçişli olarak geçerlidir. (#123, #131, #150, b/143774122)

  • detectFragmentReuse(), daha önce kaldırılmış bir Fragment örneğinin FragmentManager öğesine yeniden eklenip eklenmediğini algılar. Bir Fragment örneği, 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(), kullanımdan kaldırılan setRetainInstance() veya getRetainInstance() API'lerini kullandığınızı algılar. (#140, b/153737954)
  • detectSetUserVisibleHint(), kullanımdan kaldırılan setUserVisibleHint() API'sini kullandığınızda bunu algılar. (#136, b/153738974)
  • detectTargetFragmentUsage(), desteği sonlandırılmış 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 kontrolü artık DialogFragment için onCreateDialog() yönteminde setOnCancelListener veya setOnDismissListener çağrısı yapıldığında uyarı veriyor. Bu işleyiciler DialogFragment öğesine aittir ve geri çağırmaları almak için onCancel() ve onDismiss() değerlerini 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ın yaptığı 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'ınızı 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 serbest bırakıldı. 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ümünde transitionGroup=”true” ayarlandığında, hide() kullanılırken Parçanın görünümü artık düzgün bir şekilde GONE olarak ayarlanıyor. (aosp/1766655, b/193603427)
  • FragmentActivity 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 serbest bırakıldı. 1.3.5 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • aosp/1679887 tarafından 1.3.4 Parça'da belirtilen paylaşılan öğe geçişlerindeki regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" aracılığıyla veya dolaylı olarak bir transitionName ya da background 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ıldığında, Inset'ler artık süresiz olarak gönderilmez ve BottomNavigationBar ve FloatingActionButton örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452)
  • Artık işlem ölümünün ardından Parcelable'ınızı parça sonuç 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 kaydetmeleri 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 Fragment'inde, 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 ürününün yeni bir WindowInsets grubu dağıtılmasını sağlayarak her parçanın ekleri bağımsız olarak tüketebilmesini sağlıyor. (I63f68, b/172153900)
  • DialogFragment, özel Dialog sınıfınızdaki bir kapsayıcıyla aynı kimliğe sahip olan bir kapsayıcıya alt parçanın eklendiği durumları artık düzgün bir şekilde işliyor ve BottomSheetDialog gibi iletişim kutuları tarafından dahili olarak kullanılan kimlikleri yeniden kullanırken görünüm hiyerarşisi sorunlarını düzeltiyor. (Ie6279, b/180021387)
  • FragmentManager.dump() artık etkin parçalar listesindeki ilk parçayı düzgün şekilde girintilendiriyor. (If5c33, b/183705451)

Yeni Durum Yöneticisi Hata Düzeltmeleri

  • Yeni parça durum yöneticisi artık çıkış geçişlerini gizleme işlemleriyle düzgün şekilde yönetir. (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 serbest bırakıldı. 1.3.2 sürümü bu kaydetmeleri 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

  • Parça artık Etkinlik 1.2.2'ye bağlı olarak, Parça 1.3.1 veya sonraki bir sürümü kullanırken Etkinlik'in InvalidFragmentVersionForActivityResult hata analizi kontrolüyle ilgili bir sorunu düzeltiyor.
  • Fragment artık Lifecycle 2.3.1'e bağlıdır.

Sürüm 1.3.1

10 Mart 2021

androidx.fragment:fragment:1.3.1, androidx.fragment:fragment-ktx:1.3.1 ve androidx.fragment:fragment-testing:1.3.1 yayınlandı. Sürüm 1.3.1 bu kaydetmeleri 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 şişirilmiş bir RESUMED etkinliği olan parçalar, artık bir yapılandırma değişikliğinden sonra düzgün bir şekilde gösterilmektedir. (Ie14c8, b/180538371)
  • Artık toString() parçasının sonunda fazladan bir } yok (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, artık boş değerleri kabul etmediklerini belirtmek için parametre dokümanlarını güncelledi (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
  • Parçalar artık işlem gösterme/gizleme özelliğini 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 (I452ac, I9fa49) değerine ayarlanır

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 dağıtımı ve ertelenen parçaların nasıl ele alındığıyla ilgili birçok sorunu düzeltti.
  • Etkinlik Sonucu API Entegrasyonu: 1.2.0 Etkinliği'nde kullanıma sunulan ActivityResultRegistry API desteği, bu akışları test etmek için kancalar sağlamanın yanı sıra parçanızdaki yöntemleri geçersiz kılmadan requestPermissions()+onRequestPermissionsResult() akışlarının yanı sıra startActivityForResult()+onActivityResult() akışlarını işlemek üzere eklendi. Güncellenmiş Etkinlikten Sonuç Alma bölümüne göz atın.

    • Bu sürümde, geçersiz istek kodları ve izin isteklerinin gönderilmesiyle ilgili, Activity Result API'nin FragmentActivity'ün önceki sürümlerinde çalışmasını engelleyen çeşitli sorunlar düzeltilmiştir. Activity Result API'leri FragmentActivity veya AppCompatActivity içinde kullanmak için Fragment 1.3.0'a yükseltmeniz gerekir.
  • Pragment Result API: FragmentManager'de yeni API'ler aracılığıyla iki Parça arasında sonuçların iletilmesi için destek eklendi. Bu yöntem, hiyerarşi parçaları (ebeveyn/çocuk), 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. Fragment Result API'yi 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ştirmeler: fragment-testing yapısındaki FragmentScenario sınıfı Kotlin'de yeniden yazıldı ve çeşitli iyileştirmeler yapıldı:

    • 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 bir Lifecycle.State için ilk kez taşımadan önce parçanın durumunun doğrulanmasını desteklemek için bir başlangıç Lifecycle.State ayarlanmasını 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üntüleme yaşam döngüsüne bağlı bir SavedStateRegistryOwner ve LifecycleOwner döndürür.

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

  • setRetainInstance() desteğ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 yok edilmesinin 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 taşıma 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 serbest bırakıldı. 1.3.0-rc02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Yapılandırma değişikliğinden sonra üst DialogFragment öğesinin, alt DialogFragment öğesinin üzerinde görünmesine neden olan sorun düzeltildi. Alt iletişim kutusu parçaları artık her zaman üst iletişim kutusu parçasının üzerinde görünüyor. (I30806, b/177439520)
  • Animation ile hide işlemi yapmanın, gizleme parçasının animasyonun sonunda yanıp sönmesine neden olmasıyla ilgili sorun düzeltildi. (I57e22, b/175417675)
  • Görünüm hiyerarşisi eklenmeden önce geçiş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 Eyalet Yöneticisi Hata Düzeltmeleri

  • FragmentContainerView öğesine Animation içeren bir parçanın eklenmesi ve ardından bu ekleme işleminin pop işlemi ile kesintiye uğraması durumunda sızıntı ve görsel yapı 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)
  • Odak, devam ettirildiğinde artık Parçalı kök görünümlerine düzgün şekilde geri yükleniyor. (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 serbest bırakıldı. 1.3.0-beta02 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

Davranış Değişiklikleri

  • class veya android:name özelliğini kullanarak bir parçayı genişletmeyen FragmentContainerView'lar artık FragmentActivity dışında kullanılabilir. (Id4397, b/172266337)
  • Bir parçanın maksimum yaşam döngüsü DESTROYED olarak ayarlanmaya çalışıldığında IllegalArgumentException (Ie7651, b/170765622) atılır
  • FragmentScenario nesnesi DESTROYED durumuyla başlatılırken artık IllegalArgumentException hatası veriliyor (I73590, b/170765622)

Yeni Eyalet 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 çevrilen parçalardan çıkmak, şimdi doğru şekilde iptal edilir ve uygun giriş efektiyle yeniden başlatılır. (I62226, b/167092035)
  • hide() öğesinden Animator çıkışının çalışmamasına neden olan sorun düzeltildi. (Id7ffe)
  • Parçalar artık ertelendiyse ve hemen başlatıldıysa 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ürler Simon Schiller. (#87, b/113886460)

Sürüm 1.3.0-beta01

1 Ekim 2020

androidx.fragment:fragment:1.3.0-beta01, androidx.fragment:fragment-ktx:1.3.0-beta01 ve androidx.fragment:fragment-testing:1.3.0-beta01 yayınlandı. Sürüm 1.3.0-beta01 bu kaydetmeleri 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 getirilmiştir. (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 boş olmayan bir FragmentManager öğesine sahip olacak ve boş olmayan FragmentManager öğesine sahip parçalar her zaman etkin 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ını başlatmadan hemen önce görünüm odağı durumunu düzgün bir şekilde geri yüklüyor. (Icc256)
  • Yalnızca paylaşılan bir öğe geçişi olan parçalar artık özel efektlerini doğru şekilde tamamlıyor ve son durumlarına taşınıyor (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)
  • Parça görünümünün görünürlüğünde yapılan açık değişiklikler artık yeni durum yöneticisi tarafından dikkate alınıyor. 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 Animations yerine Animators değerine öncelik verir. Yani, her ikisine sahip bir parça yalnızca Animator öğesini çalıştırır ve Animation öğesini yoksayar. (b/167579557)
  • Yeni durum yöneticisi, artık giriş animasyonları kullanıldığında parçaların yanıp sönmesine neden olmaz. (b/163084315)

Bilinen Sorun

Yeni durum yöneticisini kullanırken, özel bir efekt girerken önceki parçaya dönmek yerine geri tuşuna basarsanız, eski parça hiçbir zaman yeniden eklenmez ve sonuç olarak boş ekran görüntülenir. (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 ertelenirken ara parçaların geçici olarak görünmesine neden olmayacak. (b/37140383)
  • FragmentManager, onAttachFragment() geri çağırmasından findFragmentById() veya findFragmentByTag() çağrısında artık doğru parçaları döndürüyor. (b/153082833)
  • Parçalar, yerlerini alan parça ertelendiğinde yok edilen parçalarda artık onCreateView() çağırmaz. (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 parçanın onCreate() yaşam döngüsü yöntemindeki bir 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ç verme yerine, buna 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, Parça'yı her zaman RESUMED durumuna taşımak yerine artık başlangıç yaşam döngüsü durumunu CREATED, STARTED veya RESUMED olarak ayarlamayı destekliyor. (b/159662750)
  • onFragment için FragmentScenario API'ye, değer döndürmenizi sağlayan Kotlin yeniden birleştirilmiş uzantı yöntemi withFragment biçimindeki 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 serbest bırakıldı. 1.3.0-alpha06 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • FragmentActivity ve Fragment için onAttachFragment() geri çağırması kullanımdan kaldırıldı. Daha esnek bir alternatif sağlamak amacıyla daha esnek bir alternatif sağlayan yeni bir FragmentOnAttachListener eklendi. Bu sayede, onAttachFragment() öğesine ayrı, test edilebilir işleyiciler için yetki verilmesinin yanı sıra doğrudan alt FragmentManager'ınız dışında FragmentManager'lara işleyici ekleme desteği de sunulmaktadır. (I06d3d)

Hata Düzeltmeleri

  • Üst parçaların görünüm durumu artık alt parçalardan önce geri yükleniyor. Bir yapılandırma değişikliğinden sonra, DialogFragment öğesi alt parça olarak başka bir DialogFragment gösterdiğinde ortaya çıkan görsel sıralama sorunu düzeltiliyor. (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. Önceden ayarlanmış bir sonucu veya işleyiciyi açıkça temizlemek için yeni clearFragmentResult() ve clearFragmentResultListener() yöntemlerini kullanın. (b/155416778)
  • Lambda alan setFragmentResultListener() Kotlin uzantıları artık inline olarak işaretlenir. (b/155323404)

Davranış Değişiklikleri

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

Doküman Güncellemeleri

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

Sürüm 1.3.0-alpha04

29 Nisan 2020

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

Yeni Özellikler

  • FragmentManager tarihinde yeni API'ler aracılığıyla iki Parça arasında sonuçların aktarılması için destek eklendi. Bu, hiyerarşi parçaları (üst/alt), DialogFragments'lar ve Gezinme'deki parçalar için çalışır ve sonuçların yalnızca en az STARTED iken Parçanıza 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)
  • Etkinlik 1.2.0-alpha04'deki ö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ı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 serbest bırakıldı. 1.3.0-alpha03 sürümü bu kaydetmeleri 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 kaydetmeleri 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() tarafından varsayılan olarak genişletilmesi gereken düzeni belirten bir @LayoutRes oluşturucu sunuyor. (b/150327080)
  • onActivityCreated() yöntemi 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 kodları ise onCreate() içinde olmalıdır. Özellikle etkinlikle ilgili onCreate() tamamlandığında geri arama almak için onAttach() bölgesindeki aktivitenin Lifecycle öğesine LifeCycleObserver kaydedilmeli ve onCreate() geri çağırması alındığında 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 Kırıntısından: 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 bir ş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 serbest bırakıldı. 1.3.0-alpha01 sürümü bu kaydetmeleri 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 yok edilmesinin (yani ViewModel sınıfının kurucusu ve aldığı onCleared() geri çağırma işlevi) yararlı özelliklerini 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 taşıma 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 koruyor. Bu sayede, Parça 1.2.1'de ortaya çıkan bir gerileme düzeltildi. (b/149665169
  • 1.2.2 Parçası'na eklenen require___() Lint kuralları, gölgelendirilmiş Kotlin özelliği adlarıyla (ö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 kaydetmeleri 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ı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 Kırıntısı'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 kod karartılmasına olanak tanıyacak ş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 özelliğinin adını gölgeleyen bir yerel değişken adı kullanılırken UseRequireInsteadOfGet Lint kontrolündeki 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 serbest bırakıldı. 1.2.2 sürümü bu taahhütleri içerir.

Yeni hata analizi kontrolleri

  • Lint, onCreateView(), onViewCreated() ve onActivityCreated()'te OnBackPressedDispatcher çağrıları 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 kontrollerine katkıda bulunduğu için Zac Sweers'a teşekkür ederiz. (aosp/1202883)

Sürüm 1.2.1

Sürüm 1.2.1

5 Şubat 2020

androidx.fragment:fragment:1.2.1, androidx.fragment:fragment-ktx:1.2.1 ve androidx.fragment:fragment-testing:1.2.1 yayınlandı. Sürüm 1.2.1 bu kaydetmeleri 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() öğesinin, <fragment> etiketi aracılığıyla eklenen parçalarla çalışmamasına neden olan sorun 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)
  • FragmentManager örneğinde toString() çağrıldığında, Etkinlik zaten kaldırıldığında artık NullPointerException tetiklenmez. (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 değerlerini 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'e 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() 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()'ı dikkate alıyor. Böylece, 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 Parçalar artık örneklenmek ancak hiçbir yaşam döngüsü yönteminden geçmemek yerine düzeninizde değilken bile CREATED bölümüne 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 serbest bırakıldı. 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ı. Sürüm 1.2.0-rc01 bu kaydetmeleri 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() üzerinden LiveData gözlem yaparken getViewLifecycleOwner() kullandığınızdan emin olmanızı sağlayan yeni bir Lint kontrolü eklendi. (b/137122478)

Hata düzeltmeleri

  • DialogFragment üzerindeki onDismiss ve onCancel geri çağırma işlevleri artık kendilerine iletilen DialogInterface değerinin null olmadığını ve getDialog() işlevinin yürütüldüğünde null olmayan bir değer döndürdüğünü garanti eder. (b/141974033)
  • FragmentContainerView, class veya android:name tarafından tanımlanan Parçayı enflasyonun bir parçası olarak ekler. Böylece findFragmentById() ve findFragmentByTag(), bundan hemen sonra çalışır. (b/142520327)
  • Durum kaydedildiği için FragmentContainerView içindeki bir IllegalStateException düzeltildi. (b/142580713)
  • FragmentContainerView sınıfının kodu karartıldığında FragmentContainerView öğesinde UnsupportedOperationException hatası 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ı. Sürüm 1.2.0-beta02 bu kaydetmeleri 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ünüm Bağlantısı kullanılabilir. (b/139830628, b/141177981)
  • Parçalar artık <fragment> yerine FragmentContainerView için hızlı 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()'yi göndermeden önce androidx.transition geçişlerinin (sırasıyla Parça 1.2.0-alpha03 ve Parça 1.2.0-alpha02'te 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 sürümüyle ilgili bir 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 parçalar artık düzgün bir ş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ı bekler. (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 cihazında setTransition ile TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE, TRANSIT_FRAGMENT_FADE kullanılırken varsayılan animasyonlar, Android 10 cihazlardaki etkinlikler tarafından kullanılan animasyonlarla eşleşecek şekilde güncellendi. (aosp/1012812, aosp/1014730)

API değişiklikleri

  • Animasyon z sıralama sorunlarını ve Fragment'lere gönderilen pencere içe eklemelerini düzelttiği için dinamik olarak eklenen Fragment'ler 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şirilmiş 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 parçanın bir örneğini oluşturmak için FragmentFactory öğenizi kullanır. fragment-ktx'a, somutlaştırılmış türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)) kullanan Kotlin uzantısı da eklendi. (b/126124987)
  • @MainThread yaşam döngüsü geri çağırmalarına Fragment ek açıklamaları eklendi. (b/127272564)
  • FragmentTransaction ve FragmentManager.BackStackEntry sürümlerindeki içerik haritası başlığıyla ilgili API'ler kullanımdan kaldırıldı. (b/138252944)
  • FragmentTransaction üzerindeki 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ı iptal edilmeyen sorun 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() dağıtılmadan önce animasyonların bitmesini bekliyor. (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 öğelerine geçici bir çözüm eklendi. (b/137201343)

Sürüm 1.2.0-alpha01

2 Temmuz 2019

androidx.fragment:fragment:1.2.0-alpha01, androidx.fragment:fragment-ktx:1.2.0-alpha01 ve androidx.fragment:fragment-testing:1.2.0-alpha01 yayınlandı. Bu sürü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 bir FragmentManager üzerinde 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çiş yapmanıza olanak tanıyan yeni bir oluşturucuya sahip.
  • 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ılmanın alternatifi olarak 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.
  • Tüme zaman aşımı ile 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ümdeki kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

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

Sürüm 1.1.0-rc02

17 Temmuz 2019

androidx.fragment:fragment:1.1.0-rc02, androidx.fragment:fragment-ktx:1.1.0-rc02 ve androidx.fragment-testing:fragment:1.1.0-rc02 serbest bırakıldı. 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()'den önce setPrimaryNavigationFragment() kullanan bir FragmentTransaction'i 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ş parçalar için androidx.lifecycle.Lifecycle geri çağırmaları (özellikle STARTED, RESUMED, PAUSED, STOPPED ve DESTROYED ile ilgili) düzgün bir şekilde iç içe yerleştirilmiş. (b/133497591)
  • Bir Fragment'in onCreate() özelliğine kaydedilen OnBackPressedCallback örnekleri artık alt FragmentManager'a göre uygun şekilde önceliklidir. (b/133175997)
  • Ebeveyn parçaları değiştirilirken artık alt parçalar 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 serbest bırakıldı. 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'ın bu sürümünü kullanırken lütfen Tercihler 1.1.0-alpha05 sürümüne geçin.

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'deki 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

  • setMaxLifecycle() üzerinden yaşam döngüsü sınırlanan parçalar artık son durumlarına ulaşmadan devam ettirilmiyor. 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ümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • Artık FragmentTransaction üzerinde setMaxLifecycle() çağrısı yaparak bir Fragment için maksimum yaşam döngüsü durumu belirleyebilirsiniz. Bu, artık desteği sonlandırılan setUserVisibleHint() öğesinin yerini alı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ılacaktır.

Hata düzeltmeleri

  • XML'de <fragment> etiketi ve FragmentActivity ya da AppCompatActivity öğesinin contentLayoutId oluşturucusu kullanılırken karşılaşılan 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 saklanan parçaların senkronizasyonunun neden olduğu restoreSaveState kilitlenmesi 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 öğesini 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 bağımsız değişken Bundle'ı alan instantiate yöntemi kullanımdan kaldırıldı. Ayrıca uygulamalar, Bundle 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 öğesinin getThemedContext() özelliği kaldırıldı. (aosp/934078)

Hata düzeltmeleri

  • 1.1.0-alpha05 sürümünde gelen parçanın ekranda yanıp sönmesine neden olan regresyon düzeltildi. (b/129405432)
  • popBackStack+replace+popBackStack işlem dizilerinden sonra birincil gezinme parçasının kaybolmasına neden olan sorun düzeltildi. (b/124332597)
  • Fragment durumunu geri yüklerken Etkinliğinizde @ContentView kurucuları kullanırken oluşan 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 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 onDismiss() öğesinin 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çıklama, 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 üzerinde 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 getirilmesi gerektiğini belirten 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() öğesinin geçersiz kılınmaması gerektiği ve gelecekteki bir sürümde kesinleşeceği 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 program uyumluluğuyla ilgili 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 zarar veren 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 FragmentFactory örneğini iletmek yerine Fragment oluşturmak için 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ıldığında 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, fragment-testing yapısının ve androidx.test:core API'lerin üzerine kurulmuş FragmentScenario öğesinin ilk sürümüdür. Daha fazla ayrıntı 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 null değer 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.