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ü
4 Eylül 2024 1.8.3 - - -

Bağımlılıkları bildirme

Parça'ya bağımlılık eklemek için belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.

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

Eski

dependencies {
    def fragment_version = "1.8.3"

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

Kotlin

dependencies {
    val fragment_version = "1.8.3"

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

Bağımlılıklar hakkında daha fazla bilgi 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 sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Sürüm 1.8

Sürüm 1.8.3

4 Eylül 2024

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

Hata Düzeltmeleri

  • FragmentManager artık Tahmine Dayalı Geri hareketini kullanırken beklemedeki işlemleri doğru şekilde hesaba katıyor. Bu, bir sistemi geri almanın artık IndexOutOfBoundsException sorununun ortaya çıkmamasını sağlar. (I9ba32, b/342316801)
  • AndroidFragment, içeren etkinliğin/parçanın durumu zaten kayıtlıyken bileşime eklenirse artık kilitlenmez. (I985e9, b/356643968)

Sürüm 1.8.2

24 Temmuz 2024

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

Hata Düzeltmeleri

  • AndroidFragment, artık üst parçanın Parça arka yığınına yerleştirildiği durumları düzgün şekilde işleyerek "Kimlik için görünüm bulunamadı" durumunu önler sıklıkla sorun yaşadığınız parçaya geri dönün. (I94608)
  • FragmentTransaction.add yöntemi kullanılarak eklenen ve ViewGroup süren parçalar için artık onStart() adımına geçilmeden önce onContainerAvailable bekleniyor. Bu durum söz konusu API'nin kullanıcılarını (ör. AndroidFragment) etkiler. AndroidFragment, söz konusu API'yi onStart() üzerinden taşımadan önce besteyi yeniden girmesini bekler. (I94608)

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ünde Oluşturma özelliğinin daha kolay kullanılmasını amaçlayan, Fragment üzerinde 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 değerini ayarlayarak bağımsız bir Parçanın kullanıcı arayüzünde Oluşturma özelliğinin kullanımını daha kolay hale getirmek için Fragment üzerinde çalışan 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 dönüş 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 yol açan bir sorun mevcut. 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.
ziyaret edin.

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ı 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.
  • 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ıştırılmışsa aslında geri yığını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ı veriliyor. 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ırmasına neden olmasına yol açan 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 olmasına yol açan 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 ayarını by viewModels() ve by activityViewModels() işlevleri. (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 yasa dışı bir durum bildirmez XML'den oluşturulan görüntüleme kimlikleri negatif değerler içerdiğinde özel bir istisna oluşturur. (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 yasa dışı bir durum bildirmiyor XML'den oluşturulan görüntüleme kimlikleri negatif değerler içerdiğinde özel bir istisna oluşturur. (Ic185b, b/213086140)
  • by viewModels() geç işleviyle birlikte özel bir ownerProducer lambdası kullanılırken, özel bir değişiklikse artık söz konusu sahibin defaultViewModelProviderFactory öğesi kullanılacak ViewModelProvider.Factory her zaman parçanın kullanılması yerine sağlanmıyor fabrika ayarlarına sıfırlamanız gerekir. (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.

  • Eklenme zamanı FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}. tıklayın.

  • 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 View 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 onHiddenChanged() öğeyi aşağı dağıtacak hiyerarşinin tamamını kontrol eder. (Iedc20, b/77504618)
  • Şu noktadan giderken klavye otomatik olarak kapanacak: açık klavyeli bir parçayı geri dönüşüm görünümüyle bir parçaya dönüştürüyor. (I8b842, b/196852211)
  • DialogFragment artık kullanıyor Tüm işlemler için setReorderingAllowed(true) show(), showNow() ve veya dismiss(). (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

  • Artık clearBackStack(name) adlı kişiyi telefonla arayarak şunları yapabilirsiniz: daha önce saveBackStack(name) ile kaydedilmiş durumları temizleyin. (I70cd7)

API Değişiklikleri

  • FragmentContainerView sınıfı Kotlin'de yeniden yazıldı getFragment işlevinin null bulunabilirlik. (If694a, b/189629145)
  • FragmentStrictMode artık Kotlin'de (I11767, b/199183506) yazılıyor

Hata Düzeltmeleri

  • Bir Parçanın durumunun aşağıdaki gibi olması sorunu düzeltildi (setReorderingAllowed(true) ve ardından beklemedeki işlemleri yürütmeden hemen önce kaldırılır etkin bir şekilde temizlenmez. (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

  • Çoklu arka planla ilgili bir sorun düzeltildi yığınlar arasında hızla geçiş yaparken IllegalStateException olarak görünür FragmentTransaction veya ikinci bir kopyasının görünmesini sağlayabilirsiniz. (I9039f)
  • Şu sorun düzeltildi: FragmentManager daha önce kaydedilmiş durumun bir kopyasını bu eyaletten sonra bile saveBackStack() üzerinden geri yüklendi. (Ied212)
  • dismissAllowingStateLoss() yöntemi DialogFragment telefon numarasını aradığınızda artık kilitlenmiyor durum kaydedildikten sonra bu kodu özel olarak eklediğinizde DialogFragment'ı show(FragmentTransaction, String) yöntemi. (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 artık kilidi her zaman açıyor yaşam döngüsündeki ilk işlem olarak kayıtlı duruma geri çağırmalarını yapar. (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ı SavedStateRegistryOwner. (Iba68e, b/188734238)

Hata Düzeltmeleri

  • Şu çağrının yapılmasıyla ilgili sorun düzeltildi: saveBackStack(), birden fazla destek kapsamında yığınlar aynı anda başarısız olsa bile replace() kullanan bir FragmentTransaction çalıştırılıyor. (I73137)
  • Şu özellikteki NullPointerException düzeltildi: kaydedilen bir dosyayı manuel olarak geri yükledikten sonra birden fazla işlem içeren arka yığın restoreBackStack() API'sini çoklu arka yığın desteği sunar. Bu işlem ayrıca düzeltti setReorderingAllowed(true) tüm işlemler için kontrol edilmiyordu. (I8c593)
  • FragmentManager uygulamasının yanlış bir şekilde, daha önce kaydedilmiş durumu geri yüklemeye devam edebilir bile olsa söz konusu parçalardan FragmentManager bağlantı noktasından kopuyor ve bu durum, zamanla sürekli büyümesini sağlamaktır. (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 daha fazlasını içeriyor üst kapsayıcıyı kapsayıcı içine alan ayrıntılı hata mesajı parçanın eklenip eklenmeyeceğini belirtir. (Ic33a7)
    • WrongFragmentContainerViolation artık daha fazlasına sahip kapsayıcıyı içeren ayrıntılı hata mesajı parçasının eklenmediğini gösterir. (Ib55f8)
    • TargetFragmentUsageViolation için kullanım alanı sınıfları parçasını dahil etmek için daha ayrıntılı hata mesajlarına sahip ve bulunan diğer bilgiler ihlal edilir. (Icc6ac)
    • RetainInstanceUsageViolation uzatılan dersler parçasını içeren daha ayrıntılı hata mesajlarına sahip bu ihlale neden olur. (I6bd55)
    • FragmentReuseViolation artık daha fazlasına sahip önceki kimliği içerir. (I28ce2)
    • SetUserVisibleHintViolation artık daha fazlasına sahip kullanıcının görünür ipucu olarak ayarlandı. (Ib2d5f)

Davranış Değişiklikleri

  • FragmentContainerView cihazında fitsSystemWindows numarasını arama 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" ile dolaylı olarak veya transitionName ya da background ile dolaylı olarak ayarlanır) doğru şekilde işliyor ve paylaşılan öğeler artık IndexOutOfBoundsException öğesini tetiklemez. (I16484, b/188679569, b/188969304)
  • FragmentManager, şu işlemleri yapmayı denediğinizde artık kilitlenmez: gizlenen parçayı görüntüleyebilirsiniz. (I573dd, b/183634730)
  • OnCreateDialogIncorrectCallback hata analizi kontrolü daha uzun kilitlenme yaşandığını görebilirsiniz. (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 içeriyor Fragment öğesinin eklenmeye çalıştığı ViewGroup. (I83c75, b/187871150)
    • TargetFragmentUsageViolation, SetTargetFragmentUsageViolation, GetTargetFragmentUsageViolation ve GetTargetFragmentRequestCodeUsageViolation; SetTargetFragmentUsageViolation, hedef parçayı ve istek kodunu içerir. (I741b4, b/187871150)
    • SetUserVisibleHintViolation, artık setUserVisibleHint() işlevine geçirilen boole değerini içeriyor. (I00585, b/187871150)
    • FragmentTagUsageViolation artık içeriyor <fragment> etiketinin bir parçayı genişletmeye çalıştığı ViewGroup.(I5dbbc, b/187871150)
    • FragmentReuseViolation artık şunları içeriyor: ihlale neden olan önceki Fragment örneğinin benzersiz kimliği. (I0544d, b/187871150)
    • RetainInstanceUsageViolation şimdi soyut ve iki alt sınıf vardır: SetRetainInstanceUsageViolation ve GetRetainInstanceUsageViolation (ikisini temsil eder) daha fazla bilgi edineceksiniz. (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
    
  • Eklenme zamanı FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}. tıklayın. (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 View 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)
  • 1.3.4'ten itibaren: API 29'da FragmentContainerView kullanılırken ek verileri daha uzun süre boyunca dağıtarak BottomNavigationBar ve FloatingActionButton örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452)
  • Parça 1.3.4'ten: Artık Parcel öğesini parça sonucundan alabilirsiniz paketleme aşamasıdır. (I65932, b/187443158)
  • Parça 1.3.4'ten: ViewGroup'ta paylaşılan bir öğe geçişi yaparken ViewGroup'un transitionGroup değeri "yanlış" olarak ayarlandı ve artık düzgün şekilde ayarlanacak için geçerlidir. (I99675)

Harici Katkı

  • FragmentScenario tarafından Closeable uygulanmasına izin verdiğiniz için simonschiller'a teşekkür ederiz. (#121, b/143774122)
  • Bu sürüme FragmentStrictMode API'nin tamamını eklediğiniz için simonschiller'a teşekkür ederiz.
  • UseGetLayoutInflater Lint kontrolünü eklediğiniz için tatocaster'a teşekkür ederiz. (#156, b/170781346)
  • DialogFragmentCallbacksDetector Lint kontrolünü eklediğiniz için tatocaster'a teşekkür ederiz. (#171, b/181780047)

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: Şu işlemi denediğinizde FragmentManager artık kilitlenmez gizlenen parçayı görüntüleyebilirsiniz. (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 kilidi her zaman açıyor yaşam döngüsündeki ilk işlem olarak kayıtlı duruma geri çağırmalarını yapar. (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" ile dolaylı olarak veya transitionName ya da background ile dolaylı olarak ayarlanır) doğru şekilde işliyor ve paylaşılan öğeler artık IndexOutOfBoundsException öğesini tetiklemez. (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'ları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 üzerinde FragmentContainerView kullanılırken ek verileri daha uzun süre boyunca dağıtarak BottomNavigationBar ve FloatingActionButton örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452)
  • Artık Parcelable'ınızı parça sonucundan alabilirsiniz paketleme aşamasıdır. (I65932, b/187443158)
  • ViewGroup'ta paylaşılan bir öğe geçişi yaparken ViewGroup transitionGroup "yanlış" olarak ayarlandı, artık düzgün bir şekilde olacak için geçerlidir. (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 ile artık kullanılabilir tarafından döndürülen SavedStateRegistryOwner ile kullanıldığında ViewTreeSavedStateRegistryOwner.get() kullanıyorsanız Parçanın Görünümü. (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 için yeni bir grup WindowInsets ile her parçanın ekleri bağımsız olarak tüketebilmesi sağlanır. (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ışı düzgün şekilde işliyor geçişleri yapabilirsiniz. (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 çalıştırırken aynı olursa son işlem de tüm öğelerin pop animasyonlar çalıştırmak yerine animasyon animasyonları da ekler. (I7072e, b/181142246)
  • Paylaşılan öğe hiyerarşisindeki görünümlerin paylaşılan öğe geçişi yaparken geçiş adı temizlendi. (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

  • Bir DialogFragment içindeki iletişim kutuları artık ViewTree'ye erişebilir özelliklerini kullanarak DialogFragment öğesinin ComposeView ile kullanılabilmesini sağlar. (Ib9290, b/180691023)

Hata Düzeltmeleri

  • Parçalar şişirilerek daha önce RESUMED aktiviteye dönüştürüldü FragmentContainerView artık yapılandırmadan sonra düzgün bir şekilde gösteriliyor unutmayın. (Ie14c8, b/180538371)
  • Artık parçanın sonunda fazladan bir } yok toString() (I54705, b/177761088)
  • FragmentActivity'deki geçersiz kılınan yöntemler artık temel yöntem javaDoc (I736ce, b/139548782)
  • setFragmentResult ve setFragmentResultListener için dokümanlar parametre dokümanlarını artık kabul etmediklerini null değerler (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 kullanıldığında onCreateOptionsMenu düzgün şekilde çağrılıyor işlemleri gösterme/gizleme (I8bce8, b/180255554)
  • Parçanın yerleştirilmesinden önce başlayan geçişlere sahip alt parçalar artık düzgün bir şekilde RESUMED (Ic11e6, b/180825150)
  • <fragment> etiketi kullanılarak şişirilen parçalar artık her zaman RESUMED (I452ac, (I9fa49)) hedefine ulaşmak

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, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragments'lar ve parçalar için çalışır ve sonuçların yalnızca en az STARTED durumundayken 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 yapılmasıyla ilgili sorun düzeltildi saklama parçasının animasyonun sonunda yanıp sönmesine neden olur. (I57e22, b/175417675)
  • Görünüm hiyerarşisinden önce eklenen geçişlere sahip parçalar düzgün şekilde eklenmiş olması durumunda RESUMED. (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, "BAŞLANGIÇ TARİHİNDEN itibaren herhangi bir etkinlik gerçekleşmedi" gibi istisnaların önüne geçiliyor. (eda2bd, b/176138645)
  • Animator kullanan parçalar artık FragmentContainerView. (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() ve artık bir üst parça olduğunda çağrılmaz setMenuVisibility(false) numaralı telefonu arar. (Id7de8, b/173203654)

Yeni Eyalet Yöneticisi Hata Düzeltmeleri

  • Ekleme sırasında oluşan sızıntı ve görsel yapı düzeltildi bir parçaya Animation FragmentContainerView ve ardından bu işlemi kesintiye uğratıyor pop işlemiyle ekleme. (I952d8)
  • Parça görünümünün neden olacağı sorun giderildi sırasında değiştirilirse görünüm hiyerarşisinde kalır. onun onCreate() veya onViewCreated() yöntemleri. (I8a7d5)
  • Aşağıdaki durumlarda odak, Parça kök görünümlerine düzgün şekilde geri yüklenir. devam ettirilir. (Ifc84b)
  • Pop ve değiştirme işlemlerini aynı parçada birleştirme işlemi artık uygun animasyonları gösterecek (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 şimdi tersine çevrilen parçalardan çıkma ve doğru giriş efektiyle yeniden başlatın. (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 düzgün bir şekilde tamamlanacak BAŞLANGIÇ (I02f4c) bölümüne geçmeden önce görünümlerinin bir kapsayıcıya eklenmesini bekleyin
  • 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 görüntüleme odağı durumunu hemen önce gösterilecek şekilde değiştirmeniz gerekir. (Icc256)
  • Şu anda yalnızca paylaşılan öğe geçişi olan parçaların geçişi doğru şekilde tamamlamalarını sağlayarak son durumları (Iaebc7, b/166658128)
  • Parça görünümleri artık her zaman kapsayıcıdan kaldırılıyor geri yüklenir. (Id5876)
  • Yeni durum yöneticisi artık mevcut parça görünümünü açar. (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 artık bir baş harfinin ayarlanmasını destekliyor CREATED, STARTED veya RESUMED yaşam döngüsü durumu Parçayı her zaman RESUMED hedefine taşımak yerine durumu. (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 arandığında artık düzgün şekilde temizlenecek yaşam döngüsü gözlemcisidir. (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

  • onAttachFragment() geri çağırması FragmentActivity ve Fragment desteği sonlandırıldı. Şu konuma yeni bir FragmentOnAttachListener eklendi: daha esnek bir alternatif sunar. Böylece, Ayrı, test edilebilir dinleyiciler için onAttachFragment() ve FragmentManagers'a bir işleyici ekleme desteği yardımcı olan başka bir e-posta alırsınız. (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, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragments'lar ve parçalar için çalışır ve sonuçların yalnızca en az STARTED durumundayken 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) bilgileri gösterilir. (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 hâlâ döndürülmesine 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, abstract olarak kalır ve doğrudan örneklenmemeli veya genişletilmemelidir; getSupportFragmentManager(), getChildFragmentManager() vb. üzerinden yalnızca mevcut bir örneği almaya devam edersiniz.

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 durumuna ulaşmadan devam ettirilmiyor. b/131557151
  • setMaxLifecycle(Lifecycle.State.CREATED) kullanılırken Parçalar'ın görünümleri düzgün ş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, Temel alınan fragment-testing yapı ve FragmentScenario androidx.test:core API'ler. 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 herhangi bir FragmentManager üzerinde FragmentFactory ayarlayarak yeni Parça örnekleri örneklenir.
  • Alma işlemi için yeni bir by viewModels() Kotlin mülkü temsilcisi eklendi ViewModels from a Fragment.
  • Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık bir Parça'nın onStop()

API değişiklikleri

  • Fragment API'de null değer ek açıklamaları önemli ölçüde genişletildi teşekkür ederiz.

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

  • inceleyeceğiz.
  • fragment-testing,androidx.test:core:1.0.0-beta01 doğru androidx.test:core:1.0.0.