Parça
Uygulamanızı bir Etkinlik içinde barındırılan birden fazla bağımsız ekrana ayırın.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
26 Haziran 2024 1.8.1 - - -

Bağımlılıkları bildirme

Parça'ya bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanız veya modülünün build.gradle dosyasına ihtiyaç duyduğunuz yapılar için bağımlılıkları ekleyin:

Modern

dependencies {
    def fragment_version = "1.8.1"

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

Kotlin

dependencies {
    val fragment_version = "1.8.1"

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

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme bölümüne bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa 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 ekleyebilirsiniz.

Yeni sayı oluştur

Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.

Sürüm 1.8

Sürüm 1.8.1

26 Haziran 2024

androidx.fragment:fragment-*:1.8.1 yayınlandı. Sürüm 1.8.1 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. Artık hareket tamamlanana kadar CREATED durumunda tutulurlar. (If6b83, b/345244539)

Sürüm 1.8.0

12 Haziran 2024

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

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

  • fragment-compose yapısı artık parça sınıfı adı aracılığıyla Compose hiyerarşisine parça eklenmesini sağlayan bir AndroidFragment Composable içeriyor. Parçanın durumunun kaydedilmesini ve geri yüklenmesini otomatik olarak gerçekleştirir. Bu, daha önce önerilen AndroidViewBinding yöntemini kullanarak bir parçayı şişirmek için doğrudan alternatif olarak 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 getirilecek.

Sürüm 1.8.0-rc01

29 Mayıs 2024

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

Hata Düzeltmeleri

  • FragmentManagers OnBackStackChangedListener arayüzünde onBackStackChangeCancelled geri çağırması artık FragmentManager uygulamasındaki işlemlerin bir parçası olarak tetiklenerek onBackStackChangeCommitted geri çağırmasının zamanlamasıyla uyumlu hale getirilecek. (I5ebfb, b/332916112)

Sürüm 1.8.0-beta01

14 Mayıs 2024

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

Hata Düzeltmeleri

  • Parça 1.7.1'dan: Tahmine dayalı geri artık yalnızca tüm parçaların bir Animator veya Aranabilir Androidx Geçişine sahip olduğu işlemler için çalıştırılacaktır. Bu, kısmen aranabilir bir işlemi iptal etmenin siyah ekrana neden olacağı sorunu düzeltir. (I43037, b/339169168)

Sürüm 1.8.0-alpha02

17 Nisan 2024

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

Hata Düzeltmeleri

  • 1.7.0-rc02 Parçasından: Başka geçiş olmadan bir sharedElement ayarlama işleminin neden başarısız olacağını belirtmek için günlükler eklendi. (Iec48e)
  • 1.7.0-rc02 Parça: Aranamayan bir paylaşılan öğenin, diğer tüm geçişlerin aranabildiği işlemlere eklenmesi durumunda kilitlenme yaşanmasına neden olan hata düzeltildi. Bu işlemin ardından işlem, doğru şekilde aranamaz olarak kabul edilir. (I18ccd)

Sürüm 1.8.0-alpha01

3 Nisan 2024

androidx.fragment:fragment-*:1.8.0-alpha01 yayınlandı. Sürüm 1.8.0-alpha01 bu kaydetmeleri 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)

Dokümanlardaki Değişiklikler

  • 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

Sürüm 1.7

Sürüm 1.7.1

14 Mayıs 2024

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

Hata Düzeltmeleri

  • Tahmine dayalı geri artık yalnızca tüm parçaların bir Animatöre veya Aranabilir Androidx Geçişine sahip olduğu işlemler için çalışır. Bu işlem, kısmen aranabilir bir işlemi iptal etmenin boş ekrana neden olacağı sorunu düzeltir. (I43037, b/339169168)

Sürüm 1.7.0

1 Mayıs 2024

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

Tahmine Dayalı Geri Hareketi Desteği

  • Parçalar artık Animator veya AndroidX Transition 1.5.0 kullanılırken Tahmine dayalı 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ğı Tahmine Dayalı Geriliği Destekler
Animation R.anim Hayır
Animator R.animator Evet
Çerçeve Transition R.transition Hayır
Transition 1.4.1 veya önceki sürüme sahip AndroidX Transition R.transition Hayır
Transition 1.5.0 sürümüne sahip AndroidX Transition R.transition Evet

Tahmine dayalı geri hareketini etkinleştirdikten sonra Parçalar'da Tahmine Dayalı Geriye Dönük desteği ile ilgili herhangi bir sorun görürseniz lütfen sorununuzu yeniden üreten örnek bir proje kullanarak Parça'ya karşı sorun bildirin. Etkinliğinizin onCreate() bölümünde FragmentManager.enabledPredictiveBack(false) kullanarak tahmini geri almayı devre dışı bırakabilirsiniz.

FragmentManager.OnBackStackChangedListener(), artık tahmini geri ilerleme durumu ve iptal edilen etkinlikleri almak için sırasıyla onBackStackChangeProgressed() ve 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 kullanılabilen ilk özellik, sizin için bir ComposeView oluşturup doğru ViewCompositionStrategy ayarlayarak tek bir Parçanın kullanıcı arayüzü için Oluşturma'nın Fragment üzerinde daha kolay kullanılmasını sağlamayı amaçlayan bir content uzantı yöntemidir.

  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ı. Sürüm 1.7.0-rc02 bu kayıtları 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. Bu işlemin ardından işlem, doğru şekilde aranamaz olarak kabul edilir. (I18ccd)

Sürüm 1.7.0-rc01

3 Nisan 2024

androidx.fragment:fragment-*:1.7.0-rc01 yayınlandı. Sürüm 1.7.0-rc01 bu kayıtları 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ınlandı. 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çalar'da, Tahmine dayalı geri hareketiyle gelen geçişlerin kesintiye uğramasının giriş görünümünü yok etmesine ve boş bir ekran bırakmasına 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ınlandı. 1.7.0-alpha10 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Önceki Parça sürümünde, Animator veya AndroidX Geçişi için Parça'nın Tahmine Dayalı Geri desteği kullanıldığında addOnBackStackChangedListener aracılığıyla hiç FragmentManager.OnBackStackChangedListener eklenmemişse parçaların handleOnBackProgressed'dan NullPointerException değeri atmasıyla ilgili bilinen sorun düzeltildi. (I7c835)

Sürüm 1.7.0-alpha09

24 Ocak 2024

androidx.fragment:fragment-*:1.7.0-alpha09 yayınlandı. 1.7.0-alpha09 sürümü bu kaydetmeleri 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 kullanılabilen ilk özellik, sizin için bir ComposeView oluşturup doğru ViewCompositionStrategy ayarlayarak tek bir Parçanın kullanıcı arayüzü için Oluşturma'nın Fragment üzerinde daha kolay kullanılmasını sağlamayı amaçlayan bir content uzantı yöntemidir. (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 tahmini geri ilerleme durumu ve iptal edilen etkinlikleri almak için sırasıyla onBackStackChangeProgressed() ve onBackStackChangeCancelled() sağlıyor. (214b87)

Bilinen Sorun

  • Animator veya AndroidX Geçişi için 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. Fragments'ın bir sonraki sürümünde bu sorun için 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 kaydetmeleri içerir.

Temizlik

Sürüm 1.7.0-alpha07

29 Kasım 2023

androidx.fragment:fragment-*:1.7.0-alpha07 yayınlandı. 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ından: Bir FragmentContainerView parçası şişirildiğinde FragmentManager, Ana makine ve kimlik gibi durumlarına artık onInflate geri çağırmasıyla erişilebilir. (I1e44c, b/307427423)
  • 1.6.2 Parça'dan: Bir parça grubunu kaldırmak için clearBackStack kullanılırken üst parçanın ViewModels temizlendiğinde, iç içe yerleştirilmiş tüm Parça'nın ViewModel öğesi artık temizlenecek. (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 kaydetmeleri içerir.

Bağımlılık Güncellemesi

Sürüm 1.7.0-alpha05

20 Eylül 2023

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

Yeni Özellikler

  • Parçalar artık Androidx Geçişleri kullanılırken Tahmine dayalı geri gelme desteği sağlıyor. 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

  • Şu anda, geçişli bir geri hareketini bir kez iptal etmenizin ardından geri hareketini bir sonraki başlatmanızda geçişi çalıştıramamasına ve boş ekran olmasına neden olan bir sorun bulunmaktadır. Bu durum, Geçiş kitaplığındaki bir sorundan kaynaklanıyor olabilir. (b/300157785). Bu sorunla karşılaşıyorsanız lütfen sorununuzu yeniden üreten örnek bir proje kullanarak Fragment'a yönelik sorun bildiriminde bulunun. Etkinliğinizin onCreate() bölümünde FragmentManager.enabledPredictiveBack(false) kullanarak tahmini geri almayı devre dışı bırakabilirsiniz.

Sürüm 1.7.0-alpha04

6 Eylül 2023

androidx.fragment:fragment-*:1.7.0-alpha04 yayınlandı. 1.7.0-alpha04 sürümü bu kaydetmeleri 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)
  • Arka yığındaki ikinciden son parçaya hızlı bir şekilde arka arkaya iki kez geri gitme girişiminin kilitlenmeye neden olacağı, parçalarla Tahmine Dayalı Geri kullanıldığında yaşanan sorun düzeltildi. (Ifa1a4)

Sürüm 1.7.0-alpha03

23 Ağustos 2023

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

Hata Düzeltmeleri

  • 3 düğmeli gezinme veya tahmine dayalı geri hareketiyle sistem geri kullanılırken parça yöneticisinin arka yığınındaki ilk parçanın atlanmasına ve Etkinliğin tamamlanmasına neden olan tahmine dayalı geri özelliği kullanılırken Parçalarla ilgili 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 kaydetmeleri 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ınlandı. Bu sürüm dahili bir dalda geliştirildi.

Yeni Özellikler

  • Parçalar artık Animator kullanılırken Tahmini uygulama içi geri desteği sağlıyor. Bu, tamamlanan hareket aracılığıyla işlemi uygulamaya veya iptal etmeye karar vermeden önce, özel Animatörünüzde önceki parçayı görmek için geri hareketini kullanmanıza olanak tanır. Ayrıca deneysel enablePredictiveBack() özelliğini kullanarak ve false ayında ileterek 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 parçası şişirildiğinde, FragmentManager, Ana makine ve kimlik gibi durumlarına artık onInflate geri çağırmasıyla erişilebilir. (I1e44c, b/307427423)
  • Bir parça grubunu kaldırmak için clearBackStack kullanılırken üst parçanın ViewModels temizlendiğinde, iç içe yerleştirilmiş tüm Parça'nın ViewModel öğesi artık temizlenecektir. (I6d83c, b/296173018)

Sürüm 1.6.1

26 Temmuz 2023

androidx.fragment:fragment-*:1.6.1 yayınlandı. Sürüm 1.6.1 bu 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 durum, parçayı kaydetmek ve geri yüklemek için çoklu arka yığın API'si kullanılırken parça örneği arka yığındaysa önbelleğe alınmış durumun yeniden kullanılmasına neden olur. (I71288, b/246289075)

Bağımlılık Güncellemesi

  • Parça artık Etkinlik 1.7.2'ye bağlıdır. Bu düzeltme, Kotlin kullanıcılarının Etkinlik'e açık bir bağımlılık olmadan ComponentDialog öğesini genişletmesini engelleyen sorunu düzeltir. (b/287509323)

Sürüm 1.6.0

7 Haziran 2023

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

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

  • 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.
  • FragmentManager.OnBackStackChangedListener arayüzü, parça arka yığınına eklenmeden/kaldırılmadan hemen önce ve işlem kaydedildikten hemen sonra her Fragment ile birlikte çağrılan iki ek onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırmasıyla genişletildi.
  • FragmentStrictMode, bir alt parçanın üst öğenin Görünüm hiyerarşisinde iç içe yerleştirildiğini ancak üst öğenin childFragmentManager öğesine eklenmediğini algılayan yeni bir WrongNestedHierarchyViolation ekledi.
  • Intent veya IntentSender alan Fragment ve FragmentManager API'lerine artık uygun şekilde @NonNull ek açıklamaları getiriliyor. Böylece boş değer olarak boş değerin geçirilmesi önlenmektedir. Bu durum, bu yöntemlerin çağırdığı ilgili Android çerçevesi API'lerinin her zaman anında kilitlenmesine neden olur.
  • DialogFragment, artık requireComponentDialog() API aracılığıyla temel ComponentDialog öğesine erişim sağlıyor.
  • Parça artık Yaşam döngüsü 2.6.1'ne bağlı.
  • Parça artık SavedState 1.2.1 öğesine bağlı.
  • Parça artık ProfileLoader 1.3.0 öğesine bağlıdır.
  • 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ınlandı. Sürüm 1.6.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Art arda birden fazla startActivityForResult isteği yapıldığında ActivityResult öğelerinin yanlış istek koduyla gönderilmesine neden olan sorun düzeltildi. (If0b9d, b/249519359)
  • Yapılan işlemlerle karışık olarak değerlendirilen ve aslında geri yığını değiştirmeyen işlemler için onBackStackChangeListener geri çağırmalarının gönderilmesine neden olan sorun düzeltildi. (I0eb5c, b/279306628)

Sürüm 1.6.0-beta01

19 Nisan 2023

androidx.fragment:fragment-*:1.6.0-beta01 yayınlandı. Sürüm 1.6.0-beta01 bu kaydetmeleri 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 olmamaktadır. (I2ec7d, b/276375110)
  • Yeni onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırmaları artık birden fazla işlem aynı parçayı içerse bile yalnızca tek seferde bir parça dağıtacak. (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 kaydetmeleri içerir.

API Değişiklikleri

  • DialogFragment, artık requireComponentDialog() API aracılığıyla temel ComponentDialog öğesine erişim sağlıyor. (I022e3, b/234274777)
  • commitNow(), executePendingTransactions() ve popBackStackImmediate() parçasına @MainThread ek açıklaması eklenmiştir. Bu API'lerin tümü, çalışma zamanında başarısız olmayı beklemek yerine ana iş parçacığından çağrılmadığında artık derleme hataları gönderecek. (Ic9665, b/236538905)

Hata Düzeltmeleri

  • FragmentManager ürününde, aynı çerçevede kaydedip geri yüklemenin kilitlenmeye neden olabileceği bir hata düzeltildi. (Ib36af, b/246519668)
  • OnBackStackChangedListener onBackStackChangeStarted ve onBackStackChangeCommitted geri çağırmaları artık yalnızca FragmentManager geri yığını değiştirildiğinde yürütülmektedir. (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ğırmasının 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 Parçasından: 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ınlandı. 1.6.0-alpha07 sürümü bu kaydetmeleri 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ınlandı. 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ınlandı. 1.6.0-alpha05 sürümü bu kaydetmeleri 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'lerine artık uygun şekilde @NonNull ek açıklamaları yapılıyor. Böylece, boş değer olarak boş değerin geçirilmesini önlemek için bu yöntemlerin çağırdığı ilgili Android çerçevesi API'leri her zaman anında çöküyor. (I06fd4)

Sürüm 1.6.0-alpha04

7 Aralık 2022

androidx.fragment:fragment-*:1.6.0-alpha04 yayınlandı. 1.6.0-alpha04 sürümü bu kaydetmeleri 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 SavedStateRegistry durumunu onAttach() tarihinden önce geri yükleyerek yukarı doğru tüm yaşam döngüsü yöntemlerinden kullanılabilir olmasını sağlıyor. (I1e2b1)

API Değişiklikleri

  • 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.(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 serbest bırakıldı. 1.6.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • DialogFragment süresini uzatan sınıfların, onDismiss() geçersiz kılma işlemleri için "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 serbest bırakıldı. 1.6.0-alpha02 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • 1.5.2 Parça: popBackStack() ve replace() işlemi aynı anda yürütmenin, çıkış parçalarının yanlış Animation/Animator çalıştırılmasına neden olabileceği 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 kaydetmeleri 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 Parçası'ndan: DialogFragmentCallbacksDetector öğesinde, AGP 7.4 ile paket halinde sunulan lint sürümünü kullanmanın lint'in kilitlenmesine neden olacağı regresyonu düzeltin. (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 serbest bırakıldı. 1.5.7 sürümü bu kaydetmeleri 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 olmamaktadır. (I2ec7d, b/276375110)

Sürüm 1.5.6

22 Mart 2023

androidx.fragment:fragment:1.5.6, androidx.fragment:fragment-ktx:1.5.6 ve androidx.fragment:fragment-testing:1.5.6 serbest bırakıldı. 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ına neden olan sorun düzeltildi. (If7458)

Sürüm 1.5.5

7 Aralık 2022

androidx.fragment:fragment:1.5.5, androidx.fragment:fragment-ktx:1.5.5 ve androidx.fragment:fragment-testing:1.5.5 serbest bırakıldı. 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 serbest bırakıldı. 1.5.4 sürümü bu kaydetmeleri 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ının ve bu özelliğin desteği sonlandırılmış gönderme işlevinin çağrılmasının alt parçalara gönderilememesine neden olan hata düzeltildi. (I9b380)

Sürüm 1.5.3

21 Eylül 2022

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

Hata Düzeltmeleri

  • Arka yığındaki parçaların onMultiWindowModeChanged(), onPictureInPictureModeChanged(), onLowMemory() ve onConfigurationChanged() geri çağırmalarını almasına neden olan 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 serbest bırakıldı. Sürüm 1.5.2 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.5.1

27 Temmuz 2022

androidx.fragment:fragment:1.5.1, androidx.fragment:fragment-ktx:1.5.1 ve androidx.fragment:fragment-testing:1.5.1 serbest bırakıldı. Sürüm 1.5.1 bu kaydetmeleri 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 İletişim Kutusu Entegrasyonu - DialogFragment, artık onCreateDialog() tarafından döndürülen varsayılan iletişim kutusu olarak Etkinlik 1.5.0 üzerinden ComponentDialog kullanıyor.
  • Kayıtlı Örnek Durumunu Yeniden Düzenleme: Parçalar, örnek durumlarını kaydetme yöntemlerini değiştirmeye başladı. Bu, parçaya hangi durumun kaydedildiğini ve durumun kaynağını net bir şekilde tanımlamaya yardımcı olmaya yönelik bir çabadır. Mevcut değişiklikler aşağıdakileri içerir:
    • FragmentManager, kaydedilen örnek durumunu artık doğrudan özel bir Parcelable yerine Bundle öğesine kaydediyor.
    • Fragment Result APIs aracılığıyla ayarlanan ancak henüz teslim edilmemiş sonuçlar artık FragmentManager dahili durumundan ayrı olarak kaydediliyor.
    • Her bir parçayla ilişkilendirilen durum artık FragmentManager öğesinin dahili durumundan ayrı olarak kaydedilir. Böylece, tek bir parçayla ilişkili kaydedilen durum miktarını Fragment hata ayıklama günlük kaydında bulunan benzersiz kimliklerle ilişkilendirebilirsiniz.

Diğer Değişiklikler

  • FragmentStrictMode, artık sınıf adıyla birlikte allowViolation() kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasını sağlıyor.
  • Etkinliğinize ait ActionBar öğesine menü sağlamaya yönelik Fragment API'leri kullanımdan kaldı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 serbest bırakıldı. Sürüm 1.5.0-rc01 bu kaydetmeleri içerir.

Kayıtlı Örnek Durumunu Yeniden Düzenleme

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

Sürüm 1.5.0-beta01

20 Nisan 2022

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

API Değişiklikleri

  • DialogFragment, showNow işleviyle denklik için commitNow kullanan yeni bir dismissNow yöntemi ekledi. Bunun, Dialog öğesinin hemen kapatılmasına neden olmayacağını, yalnızca FragmentManager öğesinin 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, Parçalar tarafından gerçekten kaydedilen veriler hakkında daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)
  • Parça Sonuç API'leri aracılığıyla ayarlanmış ancak henüz teslim edilmemiş sonuçlar artık FragmentManager dahili durumundan ayrı olarak kaydediliyor. Bu sayede, kaydedilen örnek durumunuz kapsamında 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 serbest bırakıldı. 1.5.0-alpha04 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Etkinliğinizin ActionBar öğesine menü sağlamaya yönelik Fragment API'leri, parçanızı etkinliğinize sıkıca bağladıkları ve tek başına test edilemeyeceği 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üne duyarlı eşdeğer bir API yüzeyi sağlar. (I50a59, I20758)

Hata Düzeltmeleri

  • SavedStateViewFactory, SavedStateRegistryOwner ile başlatıldığında bile artık CreationExtras kullanımını destekliyor. Ekstra özellikler 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 serbest bırakıldı. 1.5.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Artık CreationExtras öğesini by viewModels() ve by activityViewModels() işlevlerine aktarabilirsiniz. (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 sınıf adıyla birlikte allowViolation() kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasını sağlıyor. (I8f678)

Sürüm 1.5.0-alpha01

26 Ocak 2022

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

Yeni Özellikler

Hata Düzeltmeleri

  • 1.4.1 Parçasından: FragmentContainerView, artık XML kaynağından oluşturulan görüntüleme kimliklerinin negatif değerleri olduğunda geçersiz bir durum istisnası bildirmez. (Ic185b, b/213086140)
  • 1.4.1 Parça'dan: by viewModels() geç işleviyle birlikte özel bir ownerProducer lambdası kullanılırken, her zaman parçanın fabrikasını kullanmak yerine özel bir ViewModelProvider.Factory sağlanmazsa artık bu sahibin defaultViewModelProviderFactory öğesini kullanacak. (I56170, b/214106513)
  • Fragment öğesinin registerForActivityResult() geri çağırmasından ilk kez ViewModel öğesine erişilirken karşılaşılan kilitlenme düzeltildi. (Iea2b3)

Sürüm 1.4

Sürüm 1.4.1

26 Ocak 2022

androidx.fragment:fragment:1.4.1, androidx.fragment:fragment-ktx:1.4.1 ve androidx.fragment:fragment-testing:1.4.1 serbest bırakıldı. Sürüm 1.4.1 bu kaydetmeleri 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)

Sürüm 1.4.0

17 Kasım 2021

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

1.3.0'dan bu yana ö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 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. 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 işlem, 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 özelliğini uyguluyor. Böylece, Kotlin'in use yöntemi veya kaynaklarla deneyin özelliğini kullanabilirsiniz.

  • 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 kullanılabilen tek seçenek yeni durum yöneticisi.

Birden çok yığın

FragmentManager, addToBackStack() kullanan parça işlemlerinden oluşan bir arka yığın sağlar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Durumu parçalarla kaydetme mekanizmalarını kullanarak bu işlemleri açıp önceki duruma geri dönebilirsiniz.

Bu sürüm, üç yeni FragmentManager API'si sağlayarak bu mekanizmaların kapsamını genişletmektedir: saveBackStack(String name), restoreBackStack(String name) ve clearBackStack(String name). Bu API'ler, FragmentTransaction durumunu ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack() ile aynı name kullanır. Ayrıca, bu işlemleri ve parçalarını daha sonra sağlam durumlarıyla 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(), 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 kapsayıcıdır.
  • Belirtilen ad arka yığında bulunamazsa veya boş bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösteren popBackStack() işlevinin aksine, saveBackStack() daha önce addToBackStack() kullanarak bu tam, boş olmayan adla bir parça işlemi gerçekleştirmediyseniz saveBackStack() hiçbir şey yapmaz.
  • Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. 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 saklanacağı (ve onCleared() bunlar üzerinde çağrılanmaz) anlamına gelir.

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

  • İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her parça işleminde setReorderingAllowed(true) kullanılması gerekir.
  • Kaydedilen işlemler grubunun, araya giren sürede arka yığında ne değişiklik yapılmış olursa olsun daha sonra geri yüklenebilmesi için bağımsız olması gerekir (diğer bir deyişle, söz konusu işlem grubunun dışındaki herhangi bir parçaya açıkça başvuruda bulunmamalı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(), restoreBackStack() ve clearBackStack() işlemlerine benzer şekilde, daha önce aynı adla saveBackStack() çağırmadıysanız daha önce kaydedilen bir yığını geri yükleyen veya daha önce kaydedilen bir yığını temizleyen saveBackStack() işlemlerinin ikisi de hiçbir şey yapmaz.

Daha fazla bilgi için Birden çok geriye dönük yığın: Ayrıntılı inceleme bölümünü inceleyin.

Sürüm 1.4.0-rc01

3 Kasım 2021

androidx.fragment:fragment:1.4.0-rc01, Fragment 1.4.0-beta01'de herhangi bir değişiklik yapılmadan yayınlandı. Sürüm 1.4.0-rc01 bu kaydetmeleri 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 serbest bırakıldı. Sürüm 1.4.0-beta01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Üst parçalar artık kendi geri çağırmasını başlatmadan önce hiyerarşilerinin tamamına onHiddenChanged() gönderir. (Iedc20, b/77504618)
  • Açık klavyeli bir parçadan geri dönüşüm görünümüne sahip bir parçaya geçerken klavye artık 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 ile ilgili çok uzun Lint 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 serbest bırakıldı. 1.4.0-alpha10 sürümü bu kaydetmeleri içerir.

Lint

  • Aynı FragmentTransaction içinde aynı Fragment üzerinde hem detach() hem de attach() çağrısının algılanması için DetachAndAttachFragmentInSameFragmentTransaction lint uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde tamamlandığında birbirini iptal eder. Dolayısıyla, herhangi bir işlem yapabilmeleri için ayrı işlemlere bölünmeleri gerekir. (aosp/1832956, b/200867930)
  • MenuHost öğesinin addMenuProvider API'si kullanılırken Parça görünümü yaşam döngüsüne Parça Yaşam Döngüsü kullanımlarının düzeltilmesi için FragmentAddMenuProvider lint hatası eklendi. (aosp/1830457, b/200326272)

Doküman Güncellemeleri

  • API'lerle ilgili kullanımdan kaldırma mesajı artık Etkinlik Sonucu API'leri tarafından (startActivityForResult, startIntentSenderForResult, onActivityResult, requestPermissions ve onRequestPermissionsResult) işlenmekte ve daha fazla ayrıntı içerecek şekilde genişletildi. (cce80f)
  • Fragment ve DialogFragment için onActivityCreated() için desteği sonlandırma mesajının tamamı, daha fazla ayrıntı içerecek şekilde genişletildi. (224db4)

Sürüm 1.4.0-alpha09

15 Eylül 2021

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

Yeni Özellikler

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

API Değişiklikleri

  • FragmentContainerView sınıfı, getFragment işlevinin boşluğa uygun şekilde saygı göstermesi için Kotlin'de yeniden yazıldı. (If694a, b/189629145)
  • FragmentStrictMode artık Kotlin'de (I11767, b/199183506) yazılıyor

Hata Düzeltmeleri

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

Sürüm 1.4.0-alpha08

1 Eylül 2021

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

Hata Düzeltmeleri

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

Sürüm 1.4.0-alpha07

18 Ağustos 2021

androidx.fragment:fragment:1.4.0-alpha07, androidx.fragment:fragment-ktx:1.4.0-alpha07 ve androidx.fragment:fragment-testing:1.4.0-alpha07 herhangi bir önemli değişiklik yapılmadan yayınlandı. 1.4.0-alpha07 sürümü bu kaydetmeleri 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 serbest bırakıldı. 1.4.0-alpha06 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • FragmentTransaction geri yüklenirken veya görünen bir parçanın ikinci kopyası olarak IllegalStateException olarak görünen geri yığınlar arasında hızla geçiş yaparken çoklu arka yığınlarla ilgili sorun düzeltildi. (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 işlevinin dismissAllowingStateLoss() yöntemi, show(FragmentTransaction, String) yöntemiyle DialogFragment eklenirken durum kaydedildikten sonra çağrıldığınızda artık çökmüyor. (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 serbest bırakıldı. 1.4.0-alpha05 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • 1.3.6 Parçası'ndan: 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 şekilde GONE olarak ayarlanıyor. (aosp/1766655, b/193603427)
  • 1.3.6 Parçasından: FragmentActivity, yaşam döngüsü geri çağırmalarında geçersiz kılındığı geri çağırmalarda ilk işlemi olarak artık kayıtlı durumun kilidini açıyor. (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 kaydetmeleri içerir.

API Değişiklikleri

  • FragmentManager artık durumunu kaydetmek için arka planda SavedStateRegistry kullanıyor. saveAllState() ve restoreSavedState() yöntemleri de FragmentController ürünü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 çok arka yığını destekleme kapsamında saveBackStack() çağrısının, replace() kullanan bir FragmentTransaction çalıştırmakla aynı anda başarısız olması sorunu düzeltildi. (I73137)
  • Birden fazla arka yığın desteği için restoreBackStack() API kullanılırken birden fazla işlem içeren kaydedilmiş bir geri yığını manuel olarak geri yükledikten sonra meydana gelen NullPointerException düzeltildi. Bu güncelleme sonucunda setReorderingAllowed(true) ürününün tüm işlemler için kontrol edilmemesi sorunu da düzeltildi. (I8c593)
  • Parçalar FragmentManager uygulamasından kaldırıldıktan sonra bile FragmentManager ürününün, önceden kaydedilmiş olan durumunu yanlışlıkla geri yüklemeye devam etmesi sonucunda kaydedilen durumun zaman içinde sürekli olarak büyümesine neden olan sorun düzeltildi. (I1fb8e)

Sürüm 1.4.0-alpha03

16 Haziran 2021

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

Yeni Özellikler

  • Tüm Fragment StrictMode Violation sınıfları, ihlalin ayrıntılarını açıklayan daha ayrıntılı hata mesajlarıyla güncellendi. (b/187871638)
    • FragmentTagUsageViolation artık parçanın ekleneceği üst kapsayıcıyı kapsayıcı için daha ayrıntılı bir hata mesajı içeriyor. (Ic33a7)
    • WrongFragmentContainerViolation artık parçanın eklendiği kapsayıcıyı içeren daha ayrıntılı bir hata mesajı sunuyor. (Ib55f8)
    • TargetFragmentUsageViolation için kullanım alanı sınıflarında artık ihlale neden olan parçayı ve içerdiği diğer bilgileri içeren daha ayrıntılı hata mesajları bulunuyor. (Icc6ac)
    • RetainInstanceUsageViolation kapsamını genişleten sınıflarda artık ihlale neden olan parçayı içeren daha ayrıntılı hata mesajları yer alıyor. (I6bd55)
    • FragmentReuseViolation artık parçanın önceki kimliğini içeren daha ayrıntılı bir hata mesajı içeriyor. (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 cihazında fitsSystemWindows araması yapma kısıtlaması geri alındı: Bu durum artık uygulamanızın kilitlenmesini kaldırmıyor. (6b8ddd, b/190622202)

Hata Düzeltmeleri

  • 1.3.5 Parça: aosp/1679887 ile 1.3.4 Parça'da oluşturulan paylaşılan öğe geçişlerindeki regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" veya dolaylı olarak bir transitionName ya da background ile ayarlanmış) doğru şekilde işler ve paylaşılan öğeler artık IndexOutOfBoundsException yansıtmaz. (I16484, b/188679569, b/188969304)
  • Kaldırma bir parçayı gizlemeye çalıştığınızda FragmentManager artık kilitlenmez. (I573dd, b/183634730)
  • OnCreateDialogIncorrectCallback hata analizi kontrolü, üst düzey değişken değerlendirilirken artık kilitlenmez. (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 serbest bırakıldı. 1.4.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • FragmentStrictMode, kullanılan katı kurallı mod politikasından bağımsız olarak, FragmentManager aracılığıyla günlük kaydı etkinleştirildiğinde artık her zaman ihlalleri günlüğe kaydedecek. (I02df6, b/187872638)
  • FragmentStrictMode artık belirli Fragment sınıflarının katı mod Violation'lerinden muaf tutulmasını destekliyor ve bu sayede o sınıfın tüm cezaları atlatmasına olanak tanıyor. (Ib4e5d, b/184786736)

  • FragmentStrictMode Violation sınıfı, her bir ihlale göre yapı bilgilerini eklemek için genişletildi. Böylece, ihlale neden olan parçayla (If5118, b/187871150) birlikte ihlalin nedenini tam olarak doğrulayabilirsiniz. Her Violation şunları içerir:

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

Davranış Değişiklikleri

  • FragmentContainerView, fitsSystemWindow özelliğini programatik olarak veya XML aracılığıyla değiştirmeye çalışırken artık bir istisnayı devreye sokuyor. Ekler, her bağımsız parçanın görünümü tarafından işlenmelidir. (Ie6651, b/187304502)

Sürüm 1.4.0-alpha01

18 Mayıs 2021

androidx.fragment:fragment:1.4.0-alpha01, androidx.fragment:fragment-ktx:1.4.0-alpha01 ve androidx.fragment:fragment-testing:1.4.0-alpha01 serbest bırakıldı. 1.4.0-alpha01 sürümü bu kaydetmeleri 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ç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. (I46652)

Birden çok yığın

FragmentManager, addToBackStack() kullanan parça işlemlerinden oluşan bir arka yığın sağlar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Durumu parçalarla kaydetme mekanizmalarını kullanarak bu işlemleri açıp önceki duruma geri dönebilirsiniz.

Bu sürüm, iki yeni FragmentManager API'si sağlayarak bu mekanizmaların kapsamını genişletmektedir: saveBackStack(String name) ve restoreBackStack(String name). Bu API'ler, FragmentTransaction durumunu ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack() ile aynı name kullanır. Ayrıca, bu işlemleri ve parçalarını daha sonra sağlam durumlarıyla 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(), 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 kapsayıcıdır.
  • Belirtilen ad arka yığında bulunamazsa veya boş bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösteren popBackStack() işlevinin aksine, saveBackStack() daha önce addToBackStack() kullanarak bu tam, boş olmayan adla bir parça işlemi gerçekleştirmediyseniz saveBackStack() hiçbir şey yapmaz.
  • Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. 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 saklanacağı (ve onCleared() bunlar üzerinde çağrılanmaz) anlamına gelir.

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

  • İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her parça işleminde setReorderingAllowed(true) kullanılması gerekir.
  • Kaydedilen işlemler grubunun, araya giren sürede arka yığında ne değişiklik yapılmış olursa olsun daha sonra geri yüklenebilmesi için bağımsız olması gerekir (diğer bir deyişle, söz konusu işlem grubunun dışındaki herhangi bir parçaya açıkça başvuruda bulunmamalı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() işlevine benzer şekilde, saveBackStack() öğesini daha önce aynı adla çağırmadıysanız restoreBackStack() hiçbir şey yapmaz. (b/80029773)

Parça StrictMode

FragmentStrictMode API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı denetimleri sunar. 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 bir FragmentManager öğesine yeniden eklenip eklenmediğini algılar. Bir FragmentManager örneği silinip silindikten sonra Fragment örneğiyle hiçbir zaman etkileşimde bulunmamalı ve örneğe referans tutmamalısınız. (#142, b/153738653)
  • detectFragmentTagUsage(), düzen XML'inizde <fragment> etiketini kullandığınızı algılar. Düzeninizin bir parçası olarak parçaları şişirirken her zaman FragmentContainerView kullanmanız gerekir. (#141, b/153738235)
  • detectWrongFragmentContainer(), FragmentContainerView olmayan bir kapsayıcıya parça eklediğinizi algılar. Düzeninizdeki parçalar için kapsayıcı olarak her zaman FragmentContainerView kullanmanız gerekir. (#146, b/181137036)
  • detectRetainInstanceUsage(), kullanımdan kaldırılan setRetainInstance() veya getRetainInstance() API'lerini kullandığınızı algılar. (#140, b/153737954)
  • detectSetUserVisibleHint(), kullanımdan kaldırılan setUserVisibleHint() API'yi kullandığınızı algılar. (#136, b/153738974)
  • detectTargetFragmentUsage(); kullanımdan kaldırılmış setTargetFragment(), getTargetFragment() veya getTargetRequestCode() API'lerini kullandığınızı algılar. (#139, b/153737745)

API Değişiklikleri

Yeni Lint kontrolleri

  • UseGetLayoutInflater Lint kontrolü artık DialogFragment içinde LayoutInflater.from(Context) kullanıldığında uyarı veriyor. LayoutInflater için uygun olanı almak için her zaman iletişim kutusu 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

  • Parça 1.3.4'ten: ViewTreeViewModelStoreOwner.get() API'yi ViewModelProvider ile veya bir Parça içinde viewModel() Jetpack Compose yöntemi kullanılırken 1.3.3 Parça'da ortaya çıkan regresyon düzeltildi. Bu kullanım alanlarında artık, getDefaultViewModelProviderFactory() geçersiz kılması durumunda Fragment'ınız tarafından sağlanan ViewModelProvider.Factory doğru şekilde kullanılmaktadır (@AndroidEntryPoint ek açıklamalı Parçalar'ın Hilt kullanılırken yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Parça'nın görünümüyle birlikte durumunu kaydeden ve geri yükleyen bir SavedStateViewModelFactory, varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368)
  • Parça 1.3.4'ten itibaren: API 29'da FragmentContainerView kullanılırken iç kümeleri artık süresiz olarak gönderilmez. Böylece BottomNavigationBar ve FloatingActionButton örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452)
  • Parça 1.3.4'ten: Artık işlem iptalinin ardından, Parcelable'ınızı parça sonuç paketinden alabilirsiniz. (I65932, b/187443158)
  • Parça 1.3.4'ten: ViewGroup'ta paylaşılan bir öğe geçişi yaparken ViewGroup'un transitionGroup değeri "false" (yanlış) değerine ayarlanmışsa artık düzgün bir şekilde geçiş yapacaktır. (I99675)

Harici Katkı

Sürüm 1.3

Sürüm 1.3.6

21 Temmuz 2021

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

Hata Düzeltmeleri

  • 1.4.0-alpha03 Parçasından: Kaldıran bir parçayı gizlemeye çalıştığınızda FragmentManager artık kilitlenmez. (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 yaşam döngüsü geri çağırmalarındaki ilk işlemi geçersiz kıldığından her zaman kayıtlı durumun kilidini açıyor. (I6db7a)

Bağımlılık güncellemesi

Sürüm 1.3.5

16 Haziran 2021

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

Hata Düzeltmeleri

  • aosp/1679887 tarafından 1.3.4 Parça'da açıklanan paylaşılan öğe geçişlerindeki regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudan transitionGroup="true" veya dolaylı olarak bir transitionName ya da background ile ayarlanmış) doğru şekilde işler ve paylaşılan öğeler artık IndexOutOfBoundsException yansıtmaz. (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 serbest bırakıldı. 1.3.4 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • ViewTreeViewModelStoreOwner.get() API'yi ViewModelProvider ile kullanırken veya Hilt kullanılırken bir Parça içinde viewModel() Jetpack Compose yöntemi kullanılırken 1.3.3 Parça'da ortaya çıkan regresyon düzeltildi. Bu kullanım alanlarında artık, getDefaultViewModelProviderFactory() geçersiz kılması durumunda Parçanız tarafından sağlanan ViewModelProvider.Factory doğru şekilde kullanılmaktadır (@AndroidEntryPoint ek açıklamalı Fragment'ın kullandığı şekilde). Bu yöntemi geçersiz kılmazsanız Parça'nın görünümüyle birlikte durumunu kaydeden ve geri yükleyen bir SavedStateViewModelFactory, varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368)
  • API 29'da FragmentContainerView kullanıldığında, Inset'ler artık süresiz olarak 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)
  • ViewGroup'ta paylaşılan bir öğe geçişi yaparken, ViewGroup'un transitionGroup öğesi yanlış değerine ayarlanmışsa artık düzgün bir şekilde geçiş yapacaktı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 serbest bırakıldı. 1.3.3 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

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

Hata Düzeltmeleri

  • 1.3.2 Parçası'nda bulunan ve NavHostFragment tarafından kullanılanlara benzer setPrimaryNavFragment işlemi içeren bir FragmentTransaction açılırken popEnter animasyonlarının çalışmamasına neden olan regresyon düzeltildi. (I38c87, b/183877426)
  • FragmentContainerView, artık her Fragment öğesinin 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 girintiler. (If5c33, b/183705451)

Yeni Eyalet Yöneticisi Hata Düzeltmeleri

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

Sürüm 1.3.2

24 Mart 2021

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

Yeni Eyalet Yöneticisi Hata Düzeltmeleri

  • Hem popBackStack() hem de commit() işlemlerini birlikte çalıştırırken son işlem, bazı pop animasyonları ve bazı giriş animasyonları çalıştırmak yerine artık tüm animasyonların yönünü belirler. (I7072e, b/181142246)
  • Paylaşılan öğe hiyerarşisindeki görünümlerin geçiş adları, paylaşılan öğe geçişi yaparken artık silinmez. (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.
  • Parça artık Yaşam Döngüsü 2.3.1'e bağlı.

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 serbest bırakıldı. Sürüm 1.3.1 bu kaydetmeleri içerir.

Yeni Özellikler

  • DialogFragment içindeki iletişim kutuları artık DecorView üzerinden ViewTree sahiplerine erişebilir. Böylece DialogFragment, ComposeView ile kullanılabilir. (Ib9290, b/180691023)

Hata Düzeltmeleri

  • FragmentContainerView kullanılarak halihazırda RESUMED etkinliğine şişirilmiş parçalar artık yapılandırma değişikliğinden sonra düzgün ş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 javaDoc temel yöntemini (I736ce, b/139548782) düzgün şekilde devralıyor
  • setFragmentResult ve setFragmentResultListener belgeleri, parametre dokümanlarını artık null değerleri kabul etmediklerini gösterecek şekilde güncelledi (I990ba, b/178348386)

Yeni Eyalet Yöneticisi Hata Düzeltmeleri

  • mFocusedView (Ib4e9e, b/179925887) nedeniyle parçalarda oluşan bellek sızıntısı düzeltildi
  • Parçalar artık göster/gizle işlemleri (I8bce8, b/180255554) kullanılırken onCreateOptionsMenu düzgün şekilde çağrılıyor
  • Parçanın yerleştirilmesinden önce başlayan geçişlere sahip alt parçalar artık RESUMED (Ic11e6, b/180825150) değerine ulaşacaktır
  • <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

Sürüm 1.3.0

10 Şubat 2021

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

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

  • Yeni Durum Yöneticisi: FragmentManager ürününün dahili öğelerinin önemli ölçüde yeniden yazılması, yaşam döngüsü etkinliklerinin, animasyonların ve geçişlerin dağıtımı ve ertelenen parçaların işlenme şekliyle ilgili çok sayıda sorunu düzeltti.
  • Etkinlik Sonucu API'si 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 Activity Result API'nin önceki FragmentActivity sürümlerinde çalışmasını engelleyen izin isteklerinin gönderilmesiyle ilgili çeşitli sorunlar giderilmektedir. Etkinlik Sonucu API'lerini FragmentActivity veya AppCompatActivity içinde kullanmak için Parça 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, hiyerarşi parçaları (üst/alt), DialogFragments'lar ve Gezinme'deki parçalar için işe yarar ve sonuçların yalnızca en az STARTED durumunda olan Parçanıza gönderilmesini sağlar. Hedef parça API'ler kullanımdan kaldırılarak yeni API'lerin kullanılmaya başlanmasıdır. Fragment Result API'sini kullanarak Sonuç Alma bölümüne bakın.

  • FragmentOnAttachListener: FragmentActivity ve Fragment üzerinde onAttachFragment() geri çağırması kullanımdan kaldırıldı. Daha esnek bir alternatif sağlamak amacıyla yeni bir FragmentOnAttachListener eklendi. Bu sayede onAttachFragment() için ayrı, test edilebilir dinleyicilere yetki verebilir ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara işleyici ekleme desteği de alabilirsiniz.

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

    • FragmentScenario, moveToState() uygulamak için artık setMaxLifecycle() kullanıyor. Böylece tüm API düzeylerinde tutarlı davranışlar sağlanıyor ve parçanın durumunu temel etkinlikten ayrıştırı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'nin, değer döndürmenizi sağlayan Kotlin birleştirilmiş uzantı yöntemi withFragment biçimindeki bir alternatifi bulunmaktadır. Özellikle, belirtilen blokta ortaya çıkan istisnaları yeniden atar.
  • ViewTree Desteği: Fragment artık Yaşam Döngüsü 2.3.0 ve SavedState 1.1.0 süreçlerine eklenen ViewTreeLifecycleOwner.get(View), ViewTreeViewModelStoreOwner.get(View) ve ViewTreeSavedStateRegistryOwner API'lerini desteklemektedir. Böylece, Parçayı ViewModelStoreOwner olarak döndürür ve Fragment içinde kullanılırken parçanın görünüm Yaşam Döngüsü olarak parçanın SavedStateRegistryOwner ve LifecycleOwner öğesine bağlı olduğu bir SavedStateRegistryOwner ve LifecycleOwner API'si döndürülür.View

  • 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ğinin sonlandırılması: Parçalar için setRetainInstance() yöntemi kullanımdan kaldırıldı. ViewModels'in kullanıma sunulmasıyla, geliştiricilerin durumu korumak için Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek belirli bir API'sı vardır. Bu, geliştiricilerin normal, saklanmayan bir Parça'yı kullanmalarına ve istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, ortak bir sızıntı kaynağından kaçınarak, tutulan durumun (yani ViewModel öğesinin ve aldığı onCleared() geri çağırmasının oluşturucusu) oluşturulma ve yok edilmesinin yararlı özelliklerini korurlar.

  • ViewPager 1 bağdaştırıcısının kullanımdan kaldırılması: ViewPager2 1.0.0 sürümüyle birlikte, ViewPager ile etkileşimde bulunmak için 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ı. Sürüm 1.3.0-rc02 bu kaydetmeleri 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şlere sahip parçalar artık RESUMED hedefine düzgün bir şekilde ulaşıyor. (I1fc1d, b/177154873)

Yeni Eyalet Yöneticisi Hata Düzeltmeleri

  • Parçanın görünümü Lifecycle artık Parçanın görünümünün, Lifecycle CREATED tutarına ulaşmadan yok edildiği durumları düzgün bir şekilde işliyor. Bu durumda, "INITIALIZED'den itibaren etkinlik yok" ifadelerinin yer aldığı istisnalar engelleniyor (eda2bd, b/176138645).
  • Animator kullanan parçalar artık FragmentContainerView kullanılırken doğru sırada gösteriliyor. (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 serbest bırakıldı. Sürüm 1.3.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • onPrepareOptionsMenu(), artık onCreateOptionsMenu() ile aynı mantığı uygular ve bir üst parça setMenuVisibility(false) çağrısı yaptığı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)
  • Parça görünümünün, onCreate() veya onViewCreated() yöntemleri sırasında değiştirilirse görünüm hiyerarşisinde kalmasına neden olan sorun 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)
  • Pop ve değiştir işlemleri aynı parça işleminde birleştirildiğinde artık uygun animasyonlar gösterilir (Ifd4e4, b/170328691)

Sürüm 1.3.0-beta02

2 Aralık 2020

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

Yeni Özellikler

  • FragmentScenario, FragmentAction için Kotlin 1.4'ün işlevsel arayüzleri kullanılarak kaynak ve ikili program uyumluluğu korunurken 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
  • Parça Senaryosu, DESTROYED durumuyla başlatıldığında artık IllegalArgumentException (I73590, b/170765622) atar

Yeni Eyalet Yöneticisi Hata Düzeltmeleri

  • Animator veya TRANSIT_FRAGMENT_ seçeneklerinden birini kullanan bir parça geçişini kesintiye uğrattığınızda görünümün son durumuna ulaşmamasına neden olan sorun düzeltildi. (I92426, b/169874632)
  • Çıkış noktası Animation olan parçaların düzgün şekilde kaldırılmasını engelleyen bir 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 ertelendiklerinde ve hemen başlatıldığında düzgün şekilde görünüyor. (Ie713b, b/170022857)
  • Animasyon sırasında odaklanılan görünümü kaldıran parçalar, RESUMED hedefine ulaştığında artık odağı ayrılmış görünüme geri getirmeye çalışmayacak (I38c65, b/172925703)

Harici Katkı

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

Sürüm 1.3.0-beta01

1 Ekim 2020

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

Yeni Özellikler

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

API Değişiklikleri

Davranış Değişiklikleri

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

Hata Düzeltmeleri

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

Yeni Eyalet 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 kaldırılmadan önce her zaman container'dan kaldırılıyor. (Id5876)
  • Yeni durum yöneticisi artık girilen parçayı eklemeden önce mevcut parça görünümünü tutarlı şekilde kaldırıyor. (I41a6e)
  • Parça görünümünün görünürlüğünde yapılan açık değişiklikler artık yeni durum yöneticisi tarafından dikkate alınıyor. Bu, giren bir parçanın görünümünü animasyon başlamadan önce INVISIBLE değerine ayarlarsanız, gerçekte görünmez kalacağı anlamına gelir. (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, animasyon girerken artık parçaların yanıp sönmesine neden olmuyor. (b/163084315)

Bilinen Sorun

Yeni durum yöneticisini kullanırken, özel efekt girerken önceki parçaya dönmek yerine geri tuşuna basarsanız, eski parça hiçbir zaman yeniden eklenmez ve 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 serbest bırakıldı. 1.3.0-alpha08 sürümü bu kaydetmeleri içerir.

Yeni Eyalet Yöneticisi

Bu sürümde, FragmentManager ürününün dahili durum yönetiminde önemli bir yeniden düzenleme yapıldı. Bu değişiklik, yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin dağıtılmasını ve ertelenen işlemlerin nasıl yapıldığını etkiler. Bu ayar varsayılan olarak etkindir. Daha fazla bilgi için Parçalar: 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) ürünündeki deneysel bir API kullanılabilir. (I7b6ee)

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

  • replace işleminin önceki parçası artık yeni parça başlatılmadan önce doğru şekilde durduruldu. (b/161654580)
  • Parçalar artık aynı parçalarda rekabet eden birden çok animasyonu engelleyerek Animation öğesinin tüm Transition efektlerini veya tek bir parçadaki Animator ve Transition öğelerinin her ikisini de geçersiz kılacağı durumlardan kaçınıyor. (b/149569323)
  • Giren ve çıkan tüm parçaların enterTransition ve exitTranstion değerleri artık yalnızca son giren parça ve ilk çıkış parçası yerine çalıştırılıyor. (b/149344150)
  • Ertelenen parçalar artık CREATED durumunda takılı kalmaz, bunun yerine diğer parçalarla birlikte STARTED konumuna taşınır. (b/129035555)
  • Ertelenen ve yeniden sipariş edilmiş bir işlemle yeniden sipariş edilmemiş bir işlemi karıştırırken FragmentManager ürününün, işlemleri hatalı bir şekilde yürütmesine neden olan sorun düzeltildi. (b/147297731)
  • Birden fazla parçanın aynı anda yerleştirilmesi, parçalar ertelenirken ara parçaların artık 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, yerini alacakları 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)
  • Bir yapılandırma değişikliğinden sonra sonuçları sessizce teslim etmek yerine, onCreate() sonrasında registerForActivityResult() çağrıldığında artık buna izin verilmediğini belirten bir istisna devreye giriyor. (b/162255449)
  • FragmentActivity, artık FragmentManager durumunu geri yüklemek için 1.2.0-alpha08 Etkinliği'nde sunulan OnContextAvailableListener API'sini kullanıyor. FragmentActivity alt sınıflarına eklenen tüm işleyiciler, bu işleyiciden sonra çalışır. (I513da)

Hata Düzeltmeleri

  • startIntentSenderForResult() kullanılırken iletilen ActivityOptions parametresi artık dikkate alınıyor. (b/162247961)

Bilinen Sorun

  • Yeni durum yöneticisi kullanılırken parçanın kök görünümünün görünürlüğünü onViewCreated() tarihinden sonra ve onResume() öncesinde doğrudan ayarlamak, ayarladığınız görünürlüğün FragmentManager tarafından geçersiz kılınmasına neden olur. Bu ayar, kök görünümünün görünürlüğünü kontrol eder. 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 kullanmalısınız. (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 serbest bırakıldı. 1.3.0-alpha07 sürümü bu kaydetmeleri 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 birleştirilmiş uzantı yöntemi withFragment biçimindeki bir alternatif eklendi. Özellikle, belirtilen blokta ortaya çıkan istisnaları yeniden atar. (b/158697631)

Davranış Değişiklikleri

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

Hata Düzeltmeleri

  • Parçalar artık ViewCompat.requestApplyInsets() çağrısından önce parça görünümünün eklenmesini bekler. Böylece, ek isteğinin bırakıldığı durumlardan kaçınmış olursunuz. (b/158095749)
  • clearFragmentResultListener işlevinin çağrılması artık yaşam döngüsü gözlemleyicisini düzgün bir ş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 kaydetmeleri 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 yeni bir FragmentOnAttachListener eklendi. Bu sayede, onAttachFragment() için ayrı ve test edilebilir işleyiciler yetkilendirilebilir ve doğrudan alt FragmentManager'ınız dışında FragmentManagers'a işleyici eklenebilir. (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 zincir kullanımlarını doğru şekilde işlememesine neden olan sorun 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 serbest bırakıldı. 1.3.0-alpha05 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

API Değişiklikleri

  • setFragmentResult() ve setFragmentResultListener() API'leri artık boş olmayan Bundle ve FragmentResultListener değerini 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şaretlendi. (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ılacaktır. (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 serbest bırakıldı. 1.3.0-alpha04 sürümü bu kaydetmeleri 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 işe yarar ve sonuçların yalnızca en az STARTED durumunda olan Parçanıza gönderilmesini sağlar. (b/149787344)

API Değişiklikleri

  • Hedef parça API'lerin desteği sonlandırılmıştır. Parçalar arasında veri iletmek için bunun yerine yeni Parça Sonuç API'leri kullanılmalıdır. (b/149787344)
  • Fragment'taki startActivityForResult()/onActivityResult() ve requestPermissions()/onRequestPermissionsResult() API'leri kullanımdan kaldırıldı. Lütfen Activity Result API'lerini kullanın. (aosp/1290887)
  • 1.2.0-alpha04 Etkinliği'nde önemli değişiklik: prepareCall() yöntemi registerForActivityResult() olarak yeniden adlandırıldı. (aosp/1278717)

Hata Düzeltmeleri

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

Sürüm 1.3.0-alpha03

1 Nisan 2020

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

API Değişiklikleri

  • Fragment için prepareCall yöntemleri artık final. (b/152439361)

Hata Düzeltmeleri

  • BottomSheetDialogFragment kullanılırken 1.3.0-alpha02 Parça'da oluşturulan regresyon düzeltildi. (b/151652127, aosp/1263328, aosp/1265163)
  • Yapılandırma değişikliğinden sonra bir parçadan prepareCall kullanıldığında oluşan 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'dan: Parça ProGuard kuralları, saklanan parçaların kod karartmasına izin verecek şekilde güncellendi. (b/151605338)
  • 1.2.4 Parça'dan: Yaşam döngüsü ve görünüm 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 kullanımı güvenli hale geldi. (b/151765086)

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

  • Bölümler, 1.2.0-alpha02. Etkinlik'te kullanıma sunulan Activity Result API'de önemli iyileştirmeler barındıran 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 serbest bırakıldı. 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 desteği, bu akışları test etmek için kancalar sağlamanın yanı sıra Parçanızda 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. (b/125158199)

API Değişiklikleri

  • DialogFragment, artık onCreateView() ürününün varsayılan olarak şişirmesi gereken düzeni belirten bir @LayoutRes alan oluşturucu sağlıyor. (b/150327080)
  • onActivityCreated() yöntemi kullanımdan kaldırıldı. Parçanın görünümüne dokunan kodlar onViewCreated() içinde (onActivityCreated() öncesinde ç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

  • Parça 1.2.3: DialogFragment içindeki onCreateDialog() içinden getLayoutInflater() çağrılırken StackOverflowError hatasına neden olan bir hata düzeltildi. (b/117894767, aosp/1258664)
  • Parça 1.2.3'tan: Kullanılmayan Parça sınıflarının çıkarılabilmesi için Fragment'ın içerdiği ProGuard kurallarının kapsamı daraltıldı. (b/149665169)
  • 1.2.3 Parça: 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)
  • 1.2.3 Parçası'ndan: FragmentContainerView, düzen önizlemesinde yanlış oluşturucuyu kullandığı için artık UnsupportedOperationException bildirmez. (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

  • Parçalar üzerinde setRetainInstance() yöntemi kullanımdan kaldırıldı. ViewModels'in kullanıma sunulmasıyla, geliştiricilerin durumu korumak için Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek belirli bir API'sı vardır. Bu, geliştiricilerin normal, saklanmayan bir Parça'yı kullanmalarına ve istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, ortak bir sızıntı kaynağından kaçınarak, tutulan durumun (yani ViewModel öğesinin ve aldığı onCleared() geri çağırmasının oluşturucusu) oluşturulma ve yok edilmesinin yararlı özelliklerini korurlar. (b/143911815)
  • ViewPager2 1.0.0 sürümünün kullanıma sunulmasıyla birlikte, ViewPager ile etkileşimde bulunmak için 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 varsayılan oluşturucuları Fragment sınıflarını doğru şekilde tutarak 1.2.1 Parçası'nda sunulan bir regresyonu düzeltiyor. (b/149665169
  • 1.2.2 Parçası'na eklenen require___() Lint kuralları, gölgelendirilen Kotlin özelliği adlarıyla (ör. view). (b/149891163)
  • FragmentContainerView, Android Studio'daki düzen önizlemesini kullanırken artık UnsupportedOperationException işlevi bildirmiyor. (b/149707833)
  • Durum kaydedildikten sonra eklenen saklanan parçaların sürekli olarak yeniden oluşturulmaması ve her yapılandırma değişikliğinden sonra yok edilmesi 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 serbest bırakıldı. 1.2.5 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Parçanın getViewLifecycleOwner() işlevi artık onSaveInstanceState() çağrılmadan önce durdurularak parçanın yaşam döngüsü davranışını yansıtır. Bu öğe daha önce 1.3.0-alpha04 Parça sürümünde kullanıma sunulmuştu. (b/154645875)
  • Bir parça üzerinde setMenuVisibility(false) çağrısı yapıldığında, alt parçaları tarafından sağlanan menülerin görünürlüğü artık doğru şekilde değişiyor. Bu öğe daha önce 1.3.0-alpha04 Parça sürümünde kullanıma sunulmuştu. (b/153593580)

Sürüm 1.2.4

Sürüm 1.2.4

1 Nisan 2020

androidx.fragment:fragment:1.2.4, androidx.fragment:fragment-ktx:1.2.4 ve androidx.fragment:fragment-testing:1.2.4 serbest bırakıldı. 1.2.4 sürümü bu kaydetmeleri 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 kullanımı 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 serbest bırakıldı. 1.2.3 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • onCreateDialog() içinden getLayoutInflater() çağrılırken StackOverflowError hatasına neden olan DialogFragment hatası düzeltildi. (b/117894767, aosp/1258665)
  • Kullanılmayan Fragment sınıflarının çıkarılabilmesi için Fragment'ın içerdiği ProGuard kurallarının kapsamı daraltı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, düzen önizlemesinde yanlış oluşturucuyu kullandığı için artık UnsupportedOperationException atmıyor. (b/149707833)

Sürüm 1.2.2

Sürüm 1.2.2

19 Şubat 2020

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

Yeni Lint kontrolleri

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

Hata Düzeltmeleri

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

Harici katkılar

  • Slack adına require___() Lint kontrollerine katkıda bulunduğ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 serbest bırakıldı. Sürüm 1.2.1 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Class örneği (veya Kotlin'in düzeltilmiş versiyonları) alan add ve replace yöntemleriyle eklenen parçaların varsayılan oluşturucuları artık ProGuard tarafından tutulur. (b/148181315)
  • FragmentStatePagerAdapter ve FragmentPagerAdapter, finishUpdate() çalışırken FragmentManager tarafından atılan 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 onCreate() öncesinde her zaman onInflate() çağrısı alıyor. (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 serbest bırakıldı. 1.2.0 sürümü bu kaydetmeleri içerir.

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

  • FragmentContainerView: FragmentContainerView, FrameLayout veya diğer düzenlerin kullanımının yerini alan, dinamik olarak eklenen Parçalar için kesinlikle önerilen kapsayıcıdır. Ayrıca, <fragment> etiketiyle aynı class, android:name ve isteğe bağlı android:tag öğelerini destekler, ancak bu ilk parçayı eklemek için <fragment> tarafından kullanılan özel kod yolu yerine normal bir FragmentTransaction kullanır.
  • onDestroyView() zamanlaması: Parçalar artık onDestroyView() çağrılmadan önce çıkış animasyonlarının, çıkış çerçevesi geçişlerinin ve AndroidX geçişlerinin (Geçiş 1.3.0 kullanılırken) tamamlanmasını bekliyor.
  • Sınıfa dayalı add() ve replace(): FragmentTransaction üzerinde Class<? extends Fragment> ve isteğe bağlı Bundle bağımsız değişken alan yeni add() ve replace() aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek parçanın bir örneğini oluşturmak için FragmentFactory öğenizi kullanır. Yeniden ifade edilmiş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)) kullanan Kotlin uzantıları da fragment-ktx klasörüne eklendi.
  • Yaşam Döngüsü ViewModel SavedState Entegrasyonu: SavedStateViewModelFactory, artık by viewModels(), by activityViewModels(), ViewModelProvider oluşturucusu veya bir Parça ile ViewModelProviders.of() kullanılırken kullanılan varsayılan fabrika oldu.
  • Yeni Lint kontrolleri: onCreateView(), onViewCreated() veya onActivityCreated() üzerinde LiveData gözlemini yaparken getViewLifecycleOwner() kullandığınızdan emin olan yeni bir Lint kontrolü eklendi.
  • getFragmentManager() desteğinin sonlandırılması: Parça'daki getFragmentManager() ve requireFragmentManager() yöntemleri kullanımdan kaldırıldı ve yerine, Parçanın eklendiği boş olmayan FragmentManager değerini döndüren tek bir getParentFragmentManager() yöntemiyle değiştirildi (çağrının güvenli olup olmadığını belirlemek için isAdded() kullanabilirsiniz).
  • FragmentManager.enableDebugLogging() desteğinin sonlandırılması: Statik FragmentManager.enableDebugLogging yöntemi kullanımdan kaldırı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

  • FragmentContainerView üzerinde yalnızca class veya android:name özelliği aracılığıyla başvurulan parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir keep 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 serbest bırakıldı. Sürüm 1.2.0-rc05 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • <fragment> etiketi kullanılırken 1.2.0-rc04 Parçasında, etkinlik kaldırma sırasında onViewCreated() öğesinin yanlış çağrılmasına neden olan regresyon düzeltildi. (b/146290333)
  • <fragment> etiketiyle eklenen parçaların yapılandırma dışı özellikleri artık, yalnızca bazen düzende (ör. yalnızca yatay düzeninizde) bulunduklarında 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 serbest bırakıldı. Sürüm 1.2.0-rc04 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Görsel sorunları önlemek için TRANSIT_FRAGMENT_OPEN, TRANSIT_FRAGMENT_CLOSE ve TRANSIT_FRAGMENT_FADE animasyonları ayarlandı. (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ı. Sürüm 1.2.0-rc03 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Kaldırılan parçaların çıkış animasyonları / geçişleri çalışırken findFragmentById()/findFragmentByTag() tarafından döndürülmeye devam etmesine neden olan istenmeyen davranış değişikliği düzeltildi. (b/143982969, aosp/1167585)
  • Kapsayıcı etkinliği onSaveInstanceState() öğesini çağırdığında, alt parçalar artık üst öğelerden önce doğru şekilde durduruluyor. (b/144380645)
  • Gizli bir parça patlatıldıktan sonra görüntüleme sayısının hatalı şekilde INVISIBLE olarak işaretlenmesine neden olan sorun düzeltildi. (b/70793925)
  • Parçalı paylaşılan öğe geçişleri artık döndürülen, ölçeklendirilen ve benzeri görünümleri işler (b/142835261)

Doküman Güncellemeleri

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

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

  • Parçalar artık Yaşam Döngüsü 2.2.0-rc03, Yaşam Döngüsü ViewModel SavedState 1.0.0-rc03 ve 1.1.0-rc03 Etkinliği'ne 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 serbest bırakıldı. Sürüm 1.2.0-rc02 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Kotlin kullanılırken, onCreateView(), onViewCreated() veya onActivityCreated() üzerinden (Fragment 1.2.0-rc01 içinde kullanıma sunulan) LiveData gözlemlenirken getViewLifecycleOwner() kullanımı için LintFix, artık getViewLifecycleOwner() yerine Kotlin özelliği erişimi söz dizimini viewLifecycleOwner 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 serbest bırakıldı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.

Yeni özellikler

  • FragmentContainerView, <fragment> etiketinin işlevlerini yansıtarak artık android:name özelliğine ek olarak class özelliğini de desteklemektedir. (b/142722242)
  • onCreateView(), onViewCreated() veya onActivityCreated() üzerinden LiveData gözlemlerini 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ğırmaları artık kendilerine iletilen DialogInterface parametresinin null olmadığını ve yürütüldüğünde getDialog() değerinin null olmayan bir değer döndüreceğini garanti ediyor. (b/141974033)
  • FragmentContainerView, class veya android:name tarafından tanımlanan Parçayı enflasyonun bir parçası olarak ekliyor. Böylece findFragmentById() ve findFragmentByTag(), bundan hemen sonra çalışıyor. (b/142520327)
  • Durumun kaydedilmesi nedeniyle FragmentContainerView içindeki IllegalStateException sorunu düzeltildi. (b/142580713)
  • FragmentContainerView sınıfının kodu karartıldığında FragmentContainerView öğesinde UnsupportedOperationException hatası düzeltildi. (b/142657034)

Bilinen sorunlar

  • FragmentContainerView üzerinde yalnızca class veya android:name özelliği aracılığıyla başvurulan parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir keep kuralı eklemeniz gerekir. Bu durum aapt2 aracılığıyla düzeltilene kadar FragmentContainerView hizmetine taşınmayı ö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 serbest bırakıldı. Sürüm 1.2.0-beta02 bu kaydetmeleri içerir.

Hata düzeltmeleri

  • Fragment'ın onInflate() öğesinin FragmentContainerView kaynağından uygun özellikleri almamasına neden olan sorun düzeltildi (NavHostFragment gibi durumlar bozuldu). (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 serbest bırakıldı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.

Yeni özellikler

  • FragmentContainerView, android:name ve isteğe bağlı android:tag XML özellikleri için ek destekle birlikte bir başlangıç parçası ekleme desteği ekler. <fragment> etiketinden farklı olarak FragmentContainerView, ilk parçayı eklemek için arka planda normal bir FragmentTransaction kullanır, böylece FragmentContainerView üzerinde daha fazla FragmentTransaction işlemi yapılmasına olanak tanır ve düzen için Görünüm Bağlamanın kullanılmasını sağlar. (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 düzeltildi. (b/140680619)
  • Geçiş 1.3.0-beta01 kullanılırken Parçalar artık onDestroyView() öğesini göndermeden önce androidx.transition geçişlerinin (sırasıyla Parça 1.2.0-alpha03 ve Parça 1.2.0-alpha02'da düzeltilen çerçeve geçişlerine ve animasyonlara ek olarak) tamamlanmasını bekliyor. (aosp/1119841)
  • Geçiş 1.3.0-beta01 kullanılırken Parçalar artık aynı kapsayıcıda yeni geçişler / animasyonlar başlatmadan önce androidx.transition geçişlerini düzgün şekilde iptal ediyor. (aosp/1119841)
  • FragmentContainerView kullanılırken Parçanızın kök görünümünde androidx.transition geçişleri kullanılırken API 17 ve önceki sürümlerdeki sorun düzeltildi. (b/140361893)
  • fragment-testing yapısı artık AndroidX Test 1.2.0 uygulamasına bağlı olup en son Espresso 3.2.0 ile uyumsuzluk sorununu düzeltmektedir. (b/139100149)
  • FragmentManager'da Log.w kullanımı kaldırıldı. (aosp/1126468)

Bilinen sorunlar

  • Parçanın onInflate() öğesi, FragmentContainerView özelliğinden NavHostFragment gibi sorunlu durumlar için uygun özellikleri almıyor. (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 serbest bırakıldı. 1.2.0-alpha04 sürümü bu kaydetmeleri içerir.

API değişiklikleri

  • Fragment üzerindeki getFragmentManager() ve requireFragmentManager() yöntemleri kullanımdan kaldırıldı ve parçanın eklendiği boş olmayan FragmentManager değerini döndüren tek bir getParentFragmentManager() yöntemiyle değiştirildi (çağrının güvenli olup olmadığını belirlemek için isAdded() kullanabilirsiniz). (b/140574496)
  • 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. (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'ların Activity.findViewById() işlevini çağırmasına neden olan sorun düzeltildi. (aosp/1116431)

Sürüm 1.2.0-alpha03

5 Eylül 2019

androidx.fragment:fragment:1.2.0-alpha03, androidx.fragment:fragment-ktx:1.2.0-alpha03 ve androidx.fragment:fragment-testing:1.2.0-alpha03 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

API değişiklikleri

Hata düzeltmeleri

  • FragmentContainerView artık parçalar arka yığından patlatılırken çizim sırasını düzgün şekilde tersine çeviriyor. (b/139104187)
  • Bir parça açılırken ve aynı anda yeni bir parça eklenirken yanlış animasyonun çalıştırılmasına neden olan sorun düzeltildi. (b/111659726)
  • Parçalar artık onDestroyView() gönderilmeden önce geçişlerin (Parça 1.2.0-alpha02 öğesinde sabitlenen animasyonlara ek olarak) tamamlanmasını bekliyor. (b/138741697)

Sürüm 1.2.0-alpha02

7 Ağustos 2019

androidx.fragment:fragment:1.2.0-alpha02, androidx.fragment:fragment-ktx:1.2.0-alpha02 ve androidx.fragment:fragment-testing:11.2.0-alpha02 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

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

API değişiklikleri

  • Animasyon z sıralama sorunlarını ve Parçalara gönderilen pencere içe aktarmalarını düzelttiğinden dinamik olarak eklenen Parçalar, FrameLayout kullanımı vb. için kesinlikle önerilen kapsayıcı olarak FragmentContainerView sunar. (b/37036000, aosp/985243, b/136494650)
  • Parçayla şişirilmiş bir görünümden kapsayıcı Parçayı almak için statik bir FragmentManager.findFragment(View) yöntemi eklendi. fragment-ktx için bir Kotlin uzantısı da mevcut. (aosp/1090757)
  • FragmentTransaction üzerinde Class<? extends Fragment> ve isteğe bağlı Bundle bağımsız değişken alan yeni add() ve replace() aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek parçanın bir örneğini oluşturmak için FragmentFactory öğenizi kullanır. Yeniden ifade edilmiş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)) kullanan Kotlin uzantısı da fragment-ktx klasörüne eklendi. (b/126124987)
  • Fragment yaşam döngüsü geri çağırmasına @MainThread ek açıklama 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 kapsamındaki yöntemlerin çoğu artık abstract değil. FragmentManager öğesinin kendisi abstract olarak kalır ve doğrudan örneklenmemeli veya genişletilmemelidir. Yalnızca getSupportFragmentManager(), getChildFragmentManager() vb. üzerinden mevcut bir örneği almaya devam etmelisiniz.

Hata düzeltmeleri

  • 1.1.0-rc04 Parça'dan: Parçalar artık pencerede bulunan, ertelenen geçişleri doğru şekilde iptal ediyor. (b/138251858)
  • 1.1.0-rc03 Parçası: postponeEnterTransition() zaman aşımıyla birden fazla kez çağrının, önceki zaman aşımlarının iptal edilmesine neden olmamasına neden olan sorun düzeltildi. (b/137797118)
  • 1.1.0-rc02 Parçasından: Geçerli öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter öğelerindeki kilitlenme düzeltildi. (b/137209870)
  • Parçalar artık onDestroyView() dağıtılmadan önce animasyonların bitmesini bekliyor. (b/136110528)
  • Alt parçalardan ve alt parçalarından parça animasyonları artık üst Parçayı canlandırırken düzgün bir şekilde işlenmektedir. (b/116675313)
  • Paylaşılan öğe geçişleri kullanılırken ve pop ile ekleme işlemini birleştirirken 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

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

Hata düzeltmeleri

  • replace() öncesinde setPrimaryNavigationFragment() kullanan bir FragmentTransaction açılırken NullPointerException düzeltildi. (b/134673465)

Sürüm 1.1.0

Sürüm 1.1.0

5 Eylül 2019

androidx.fragment:fragment:1.1.0, androidx.fragment:fragment-ktx:1.1.0 ve androidx.fragment:fragment-testing:1.1.0 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

1.0.0'dan Beri Önemli Değişiklikler

  • parça testi: fragment-testing yapısı, bir parçanın izole halde test edilmesi için bir FragmentScenario sınıfı sağlar. Daha fazla ayrıntı için Uygulamanızın parçalarıyla ilgili dokümanları test etme başlıklı makaleye bakın.
  • FragmentFactory: Parça örneklerinin oluşturulmasını yönetmek için artık FragmentManager üzerinde bir FragmentFactory ayarlayabilirsiniz. Böylece, bağımsız değişkensiz bir kurucuya sahip olmaya yönelik katı koşul kaldırılır.
  • ViewModel'ler için Kotlin Mülkü Temsilcileri: fragment-ktx yapısı artık iki Kotlin mülkü yetki sahibi içeriyor: bağımsız parçayla ilişkili ViewModel'lere erişmek için by viewModels() ve etkinliği kapsayan ViewModel'lere erişim için by activityViewModels().
  • Maksimum Yaşam Döngüsü: Artık FragmentTransaction üzerinde setMaxLifecycle() yöntemini çağırarak bir Parça için maksimum Yaşam Döngüsü durumunu ayarlayabilirsiniz. Bu, artık desteği sonlandırılan setUserVisibleHint() öğesinin yerini alı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 FragmentActivity üzerinde, onCreate() içinde setContentView() çağrısına alternatif olarak içerik görünümü olarak ayarlanması gereken düzeni belirten R.layout kimliği alan bir kurucu çağırabilir. Bu, alt sınıfınızın bağımsız değişkensiz kurucusu olması şartını değiştirmez.
  • Pragment LayoutId oluşturucusu: Fragment alt sınıfları artık isteğe bağlı olarak Fragment üzerinde, onCreateView() geçersiz kılmaya alternatif olarak bu parça için kullanılması gereken düzeni belirten R.layout kimliği alan bir kurucu çağırabilir. Şişmiş düzen, onViewCreated() içinde yapılandırılabilir.
  • Zaman aşımı ile erteleme: Zaman aşımını gerektiren yeni postponeEnterTransition() aşırı yüklemesi eklendi.

Sürüm 1.1.0-rc04

7 Ağustos 2019

androidx.fragment:fragment:1.1.0-rc04, androidx.fragment:fragment-ktx:1.1.0-rc04 ve androidx.fragment:fragment-testing:1.1.0-rc04 yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • Parçalar artık patlatılan Parçalar'daki 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ümdeki kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

  • Geçerli öğe kaldırılırken FragmentPagerAdapter ve FragmentStatePagerAdapter kilitlenmesi 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Hata düzeltmeleri

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

Sürüm 1.1.0-beta01

5 Haziran 2019

androidx.fragment:fragment:1.1.0-beta01, androidx.fragment:fragment-ktx:1.1.0-beta01 ve androidx.fragment:fragment-testing:1.1.0-beta01 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

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'ın onCreate() öğesine kayıtlı OnBackPressedCallback örnekleri artık alt FragmentManager'a göre uygun şekilde önceliklidir. (b/133175997)
  • Üst parçaları değiştirilirken alt parçalar artık canlandırılmıyor. (b/121017790)
  • animateLayoutChanges="true" kullanılırken parça animasyonları ve geçişleri artık yoksayılıyor. Böylece, parçaların düzgün şekilde kaldırılmamasına yol açan bir sorun düzeltiliyor. (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ümdeki kaydetmelere buradan ulaşabilirsiniz.

API değişiklikleri

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

Hata düzeltmeleri

  • Üst parça kaldırıldığında, alt öğe tarafından şişirilen menü öğeleri 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 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Bu sürüm, Tercihler 1.1.0-alpha01 ile 1.1.0-alpha04 arası sürümlerle 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ını gerektirecek yeni bir postponeEnterTransition() aşırı yüklemesi eklendi. Bu sürenin sonunda Parça otomatik olarak startPostponedEnterTransition() b/120803208 yöntemini çağırır

API değişiklikleri

  • Zarar veren değişiklik: Daha önce kullanımdan kaldırılan ve Bundle alan FragmentFactory instantiate yöntemi kaldırıldı. aosp/953856
  • Büyük değişiklik: FragmentPagerAdapter ve FragmentStatePagerAdapter için 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ılırken Parçalar'ın görünümü düzgün bir şekilde kaldırılır. aosp/954180

Sürüm 1.1.0-alpha07

25 Nisan 2019

androidx.fragment:fragment:1.1.0-alpha07, androidx.fragment:fragment-ktx:1.1.0-alpha07 ve androidx.fragment:fragment-testing:1.1.0-alpha07 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • Artık FragmentTransaction üzerinde setMaxLifecycle() yöntemini çağırarak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu, artık desteği sonlandırılan setUserVisibleHint() öğesinin yerini alır. FragmentPagerAdapter ve FragmentStatePagerAdapter, yeni davranışa geçiş yapmanıza olanak tanıyan yeni bir oluşturucuya sahip. (b/129780800)

API Değişiklikleri

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

Davranış Değişiklikleri

  • (b/129907905) sonucunda, arka yığındaki parçalar barındırma etkinliği yeniden oluşturulduğunda 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ığındaki parçaların, yapılandırma değişikliğinden sonra en az CREATED hedefine taşınmaması ve ViewModelleri'nin ve alt saklanan parçaların uygun şekilde atı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)
  • Parça yaşam döngüsüne sahip bir OnBackPressedCallback öğesinin, FragmentManager geri yığını olduğunda çağrılmadığı sorunlar düzeltildi. Daha ayrıntılı bilgi için androidx.activity 1.0.0-alpha07 başlıklı makaleyi inceleyin. (aosp/948209)
  • Parçalar artık animasyonlar için LAYER_TYPE_HARDWARE öğesini zorunlu kılmıyor. Özel olarak bir donanım katmanı animasyonuna ihtiyacınız varsa lütfen bunu animasyonunuzun bir parçası olarak ayarlayın. (b/129486478)

Sürüm 1.1.0-alpha06

3 Nisan 2019

androidx.fragment:fragment:1.1.0-alpha06, androidx.fragment:fragment-ktx:1.1.0-alpha06 ve androidx.fragment:fragment-testing:1.1.0-alpha06 serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.

Yeni özellikler

  • FragmentManager tarafından atanan istisnalar, artık iletiye Parçanın adını da içeriyor. (b/67759402)

API Değişiklikleri

  • Fragment ve FragmentActivity artık @LayoutRes int alan ikinci bir oluşturucu içeriyor. Bu oluşturucu, sınıfınıza not ekleme işleminin önceki davranışını @ContentView ile değiştirir. Bu yaklaşım hem uygulama hem de kitaplık modüllerinde işe yarar. (b/128352521)
  • FragmentActivity öğesinin onActivityResult() özelliği artık @CallSuper olarak düzgün şekilde 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öntemlerine artık düzgün bir şekilde @StyleRes ile ek açıklamalar ekleniyor. (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)
  • Parça durumunu geri yüklerken Etkinliğinizde @ContentView oluşturucuları kullanırken ortaya çıkan bir sorun düzeltildi. (b/127313094)
  • Mevcut bir hedef Fragment, henüz FragmentManager'a eklenmemiş bir Fragment ile değiştirilirken setTargetFragment() mantığı düzeltildi. (aosp/932156)

Sürüm 1.1.0-alpha05

13 Mart 2019

androidx.fragment:fragment:1.1.0-alpha05, androidx.fragment:fragment-ktx:1.1.0-alpha05 ve androidx.fragment:fragment-testing:1.1.0-alpha05 serbest bırakıldı. Bu sürüme dahil edilen taahhütlerin tam listesini burada bulabilirsiniz.

Yeni özellikler

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

Davranış değişiklikleri

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

Hata düzeltmeleri

  • FragmentActivity için onNewIntent, artık doğru şekilde @CallSuper (b/124120586) ile işaretlendi
  • 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 serbest bırakıldı.

Yeni özellikler

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

API değişiklikleri

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

Hata düzeltmeleri

  • setTargetFragment() için null ilettiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)
  • Hedef parçaların onDestroy() içinde veya sonrasında bazen kullanılamamasına neden olan sorun düzeltildi. (b/122312935)
  • DialogFragment’ın onKapat() işlevi artık onDestroy() öncesinde çağrılıyor. (aosp/874133) (aosp/890734)

Sürüm 1.1.0-alpha03

17 Aralık 2018

Yeni özellikler

  • Parça artık BundleSavedStateRegistryOwner özelliğini uyguluyor ve yeni kullanıma sunulan SavedState kitaplığına bağlıdır [aosp/824380]
  • [b/119050253] Etkinliği ile ilişkili ViewModelleri almak için bir by activityViewModels Kotlin mülkü temsilcisi eklendi
  • by viewModels Kotlin mülkü temsilcisi, ViewModelStoreOwner öğesini almak için isteğe bağlı bir lambda yöntemini kullanacak şekilde genişletildi. Böylece, üst parçayı veya başka bir özel ViewModelStoreOwner öğesini val viewModel: MyViewModel by viewModels(::requireParentFragment) [b/119050253] gibi bir kodla aktarmanıza olanak tanır.

API değişiklikleri

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

Hata düzeltmeleri

  • Yasadışı Durum İstisnası düzeltildi: b/120814739 durumu kaydedilemedi
  • Kayıtlı örnek durumundan geri yüklenen parçalar artık her zaman boş olmayan bir Bundle [b/119794496] alacak
  • Kaldırılan Parçalar yeniden eklenirse artık Lifecycle nesnelerini yeniden kullanmaz [b/118880674]

Sürüm 1.1.0-alpha02

3 Aralık 2018

Yeni özellikler

  • FragmentSenaryo'nun Kotlin uzantıları, FragmentFactory örneğini iletmeye alternatif olarak Parça oluşturmak için lambda kullanmanıza olanak tanır. (aosp/812913)

Hata düzeltmeleri

  • Arka yığında iç içe yerleştirilmiş Fragments kullanılırken LegalStateException düzeltildi (b/119256498)
  • FragmentScenario.recreate(), FragmentFactory ile kullanılırken karşılaşılan 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 bilgi için Parça testi dokümanlarına bakın.

Yeni özellikler

  • Fragment'ları ayrı ayrı test etmek için yeni FragmentScenario sınıfı.
  • Artık yeni Parça örneklerinin nasıl örneklendirildiğini kontrol etmek için herhangi bir FragmentManager üzerinde FragmentFactory ayarlayabilirsiniz.
  • Bir Parçadan ViewModelleri almak için yeni bir by viewModels() Kotlin mülkü temsilcisi eklendi.
  • Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık bir Parça'nın onStop() uygulamasında iptal ediliyor.

API değişiklikleri

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

Hata düzeltmeleri

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

Bilinen sorunlar

  • FragmentManager'dan bir Fragment kaldırıldıktan sonra Hedef Parçalara erişilemez.
  • fragment-testing, doğru androidx.test:core:1.0.0 yerine androidx.test:core:1.0.0-beta01 metriğine bağlıdır.