Parça
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
29 Kasım 2023 | 1.6.2 | - | - | 1.7.0-alfa07 |
Bağımlılıkları bildirme
Fragment'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Groovy
dependencies { def fragment_version = "1.6.2" // Java language implementation implementation "androidx.fragment:fragment:$fragment_version" // Kotlin implementation "androidx.fragment:fragment-ktx:$fragment_version" // Testing Fragments in Isolation debugImplementation "androidx.fragment:fragment-testing:$fragment_version" }
Kotlin
dependencies { val fragment_version = "1.6.2" // Java language implementation implementation("androidx.fragment:fragment:$fragment_version") // Kotlin implementation("androidx.fragment:fragment-ktx:$fragment_version") // Testing Fragments in Isolation debugImplementation("androidx.fragment:fragment-testing:$fragment_version") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme bölümüne bakın.
Geri bildirim
Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.7
Sürüm 1.7.0-alpha07
29 Kasım 2023
androidx.fragment:fragment-*:1.7.0-alpha07
yayınlandı. Sürüm 1.7.0-alpha07 bu kayıtları içerir.
Hata Düzeltmeleri
- Paylaşılan bir öğe geçişinin ayarlanmasından ve bir enter/exitTransition'ın ayarlanamamasından kaynaklanan
NullPointerException
düzeltildi. (I8472b) - Parçadan
1.6.2
:FragmentContainerView
Parçası şişirildiğindeFragmentManager
, Ana Makine ve kimlik gibi durumlarına artıkonInflate
geri çağırmasıyla erişilebilir. (I1e44c, b/307427423) - Parça
1.6.2
'dan: Bir parça grubunu kaldırmak içinclearBackStack
kullanılırken, üst parçanınViewModels
öğesi temizlendiğinde artık iç içe yerleştirilmiş Fragment'ınViewModel
öğesi de temizlenir. (I6d83c, b/296173018)
Sürüm 1.7.0-alpha06
4 Ekim 2023
androidx.fragment:fragment-*:1.7.0-alpha06
yayınlandı. Sürüm 1.7.0-alpha06 bu kaydetmeleri içerir.
Bağımlılık Güncellemesi
- Parçalar,
1.5.0-alpha04
geçişinde eklenen yenianimateToStart
API'sine bağlı olacak şekilde güncellendi.
Sürüm 1.7.0-alpha05
20 Eylül 2023
androidx.fragment:fragment-*:1.7.0-alpha05
yayınlandı. Sürüm 1.7.0-alpha05 bu kayıtları içerir.
Yeni Özellikler
- Androidx Transitions kullanılırken parçalar artık Tahmini geri desteği sağlamaktadır. Böylece, tamamlanan hareketle işlemi kaydetmeye veya iptal etmeye karar vermeden önce geri hareketini kullanarak özel Androidx Geçişinizle önceki parçaya gidebilirsiniz. Bu özelliği etkinleştirmek için Transition
1.5.0-alpha03
sürümünü kullanmanız gerekir. (Ib49b4, b/285175724)
Bilinen Sorunlar
- Şu an, geçiş içeren bir geri hareketini bir kez iptal etmenizin ardından, geri hareketini bir sonraki başlatışınızda geçişin çalıştırılamamasına ve sonuç olarak boş ekran olmasına neden olan bir sorun bulunmaktadır. Bu durum, Geçiş kitaplığındaki bir sorundan kaynaklanıyor olabilir. (b/300157785). Bu sorunu görürseniz sorununuzu yeniden oluşturan örnek bir projeyle Fragment'a karşı sorun bildirin. Etkinliğinizin
onCreate()
bölümündeFragmentManager.enabledPredictiveBack(false)
kullanarak tahmini geri alma özelliğini devre dışı bırakabilirsiniz.
Sürüm 1.7.0-alpha04
6 Eylül 2023
androidx.fragment:fragment-*:1.7.0-alpha04
yayınlandı. Sürüm 1.7.0-alpha04 bu kayıtları içerir.
Hata Düzeltmeleri
- Parçaların doğru Yaşam Döngüsü durumuna geçemediği tahmine dayalı bir geri hareketi iptal edilirken yaşanan sorun düzeltildi. (I7cffe, b/297379023)
- Animasyonların Geçişlerle birlikte çalışmasına izin verilen regresyonlar düzeltildi. (I59f36)
- Arka yığında son parçadan son parçaya kadar arka arkaya iki kez geri gitmenin kilitlenmeye neden olduğu parçalı Tahmine Dayalı Geri kullanımı sırasında oluşan sorun düzeltildi. (Ifa1a4)
Sürüm 1.7.0-alpha03
23 Ağustos 2023
androidx.fragment:fragment-*:1.7.0-alpha03
yayınlandı. Sürüm 1.7.0-alpha03 bu kayıtları içerir.
Hata Düzeltmeleri
- Tahmine dayalı geri kullanıldığında, parça yöneticisinin arka yığınındaki ilk parçanın atlanmasına ve sistemi 3 düğmeli gezinme veya tahmine dayalı geri hareketiyle geri kullanırken Etkinliğin bitmesine neden olan bir sorun düzeltildi. (I0664b, b/295231788)
Sürüm 1.7.0-alpha02
9 Ağustos 2023
androidx.fragment:fragment-*:1.7.0-alpha02
yayınlandı. Sürüm 1.7.0-alpha02 bu kayıtları içerir.
Hata Düzeltmeleri
- API 34'teki Tahmini Geri Hareketleri ile Parçalar'ı kullanırken, sarmayı desteklemeyen bir geçiş sistemi (
Animations
,Transitions
) kullanıyorsanız veya hiç geçiş yoksa Fragments artık geri işlemini yürütmeden önce hareketin tamamlanmasını bekleyecektir. (I8100c)
Sürüm 1.7.0-alpha01
7 Haziran 2023
androidx.fragment:fragment-*:1.7.0-alpha01
yayınlandı. Bu sürüm, dahili bir dalda geliştirilmiştir.
Yeni Özellikler
- Parçalar artık
Animator
kullanılırken Tahmine dayalı uygulama içi destek sağlıyor. Bu, işlemi tamamlanan hareketle uygulamaya veya iptal etmeye karar vermeden önce özel Animatörünüzle önceki parçayı görmek için geri hareketini kullanmanıza olanak tanır. Ayrıca, deneme amaçlıenablePredictiveBack()
davranışını kullanarak vefalse
üzerinden geçerek bu yeni davranışı devre dışı bırakabilirsiniz.
Sürüm 1.6
Sürüm 1.6.2
1 Kasım 2023
androidx.fragment:fragment-*:1.6.2
yayınlandı. Sürüm 1.6.2 bu kayıtları içerir.
Hata Düzeltmeleri
- Bir
FragmentContainerView
Parçası şişirildiğindeFragmentManager
, Ana Makine ve kimlik gibi durumlarına artıkonInflate
geri çağırmasıyla erişilebilir. (I1e44c, b/307427423) - Bir parça grubunu kaldırmak için
clearBackStack
kullanılırken üst parçanınViewModels
'i silindiğinde iç içe yerleştirilmiş Fragment'ınViewModel
'i de temizlenir. (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 kayıtları içerir.
Hata Düzeltmeleri
- Etkinlik durdurulduğunda ancak silinmediğinde depolanan kayıtlı durumun, parça örneği
RESUMED
durumuna geri taşındıktan sonra bile yanlış bir şekilde önbelleğe alınması sorunu düzeltildi. Bu, parçayı kaydetmek ve geri yüklemek için birden fazla arka yığın API'si kullanılırken parça örneği arka yığındaysa önbelleğe alınan durumun yeniden kullanılmasına neden olur. (I71288, b/246289075)
Bağımlılık Güncellemesi
- Parça artık 1.7.2 Etkinliği'ne bağlıdır. Bu değişiklik, Kotlin kullanıcılarının, Etkinlik'e açık bir şekilde bağımlılık olmadan
ComponentDialog
erişimini genişletememesine neden olan sorunu düzeltmektedir. (b/287509323)
Sürüm 1.6.0
7 Haziran 2023
androidx.fragment:fragment-*:1.6.0
yayınlandı. 1.6.0 sürümü bu kayıtları içerir.
1.5.0 sürümünden sonraki önemli değişiklikler
Fragment
öğelerinin kaydedilen durumu, gizli kitaplık durumu (özelParcelable
sınıfları) ile geliştirici tarafından sağlanan durum arasında tamamen bölündü. Bu durum artık her zaman, parçanın durumunun tam olarak nerede kaynaklandığının belirlenmesine olanak tanıyan birBundle
içinde depolanır.FragmentManager.OnBackStackChangedListener
arayüzü, sırasıyla parça arka yığınına eklenmeden/kaldırılmadan hemen önce ve işlem yapıldıktan hemen sonra her birFragment
ile çağrılan iki ekonBackStackChangeStarted
veonBackStackChangeCommitted
geri çağırmasıyla genişletildi.FragmentStrictMode
, bir alt parçanın üst öğenin Görünüm hiyerarşisine iç içe yerleştirildiğini algılayıp üst öğeninchildFragmentManager
öğesine eklenmediğini tespit eden yeni birWrongNestedHierarchyViolation
ekledi.Intent
veyaIntentSender
alanFragment
veFragmentManager
API'lerine, null değerinin geçirilmesini önlemek için@NonNull
ile düzgün bir şekilde not eklenir. Boş değer olarak, bu yöntemlerin çağırdığı ilgili Android çerçevesi API'leri her zaman anında kilitlenir.DialogFragment
, artıkrequireComponentDialog()
API üzerinden temelComponentDialog
öğesine erişim sağlıyor.- Parça artık Yaşam Döngüsü
2.6.1
'ne bağlıdır. - Parça artık KayıtlıDurum
1.2.1
'a bağlı. - Bu parça artık ProfileInstaller
1.3.0
öğesine bağlıdır. fragment-testing-manifest
yapısı, manifest girişlerini diğer parça testi bileşenlerinden ayırır. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z") androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Bu,
fragment-testing
ileandroidx.test
arasında sürüm değişikliği olması 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 kayıtları içerir.
Hata Düzeltmeleri
- Art arda birden fazla
startActivityForResult
isteği yapıldığındaActivityResult
öğelerinin yanlış istek koduyla gönderilmesine neden olan sorun düzeltildi. (If0b9d, b/249519359) onBackStackChangeListener
geri çağırmalarının, geri yığının gerçekten değişmediği işlemler ile karıştırıldığı işlemler için gönderilmesine neden olan sorun düzeltildi. (I0eb5c, b/279306628)
Sürüm 1.6.0-beta01
19 Nisan 2023
androidx.fragment:fragment-*:1.6.0-beta01
yayınlandı. Sürüm 1.6.0-beta01 bu kayıtları içerir.
Hata Düzeltmeleri
postponeEnterTransition
öğesinin zaman aşımı ile kullanılması ve ardından ertelenmiş parçanın değiştirilmesi, artık ertelenmiş parçanın sızdırılmasına neden olmaz. (I2ec7d, b/276375110)- Yeni
onBackStackChangeStarted
veonBackStackChangeCommitted
geri çağırmaları, birden fazla işlem aynı parçayı içerse bile artık yalnızca tek bir parçayı dağıtır. (Ic6b69)
Sürüm 1.6.0-alfa09
5 Nisan 2023
androidx.fragment:fragment-*:1.6.0-alpha09
yayınlandı. Sürüm 1.6.0-alpha09 bu kaydetmeleri içerir.
API Değişiklikleri
DialogFragment
, artıkrequireComponentDialog()
API üzerinden temelComponentDialog
öğesine erişim sağlıyor. (I022e3, b/234274777)commitNow()
,executePendingTransactions()
vepopBackStackImmediate()
API'leri için@MainThread
ek açıklaması eklenmiştir. Bunlar, çalışma zamanında başarısız olmayı beklemek yerine artık ana iş parçacığından çağrılmadıklarında derleme hataları bildirir. (Ic9665, b/236538905)
Hata Düzeltmeleri
FragmentManager
alanında, aynı çerçevede kaydetme ve geri yükleme işlemlerinin kilitlenmeye neden olabileceği bir hata düzeltildi. (Ib36af, b/246519668)OnBackStackChangedListener
onBackStackChangeStarted
veonBackStackChangeCommitted
geri çağırmaları artık yalnızcaFragmentManager
geri yığını değiştirildiğinde yürütülür. (I66055, b/274788957)
Sürüm 1.6.0-alpha08
22 Mart 2023
androidx.fragment:fragment-*:1.6.0-alpha08
yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.
Davranış Değişikliği
OnBackStackChangedListener.onBackStackChangeCommited
geri çağırma işleminin zamanlaması, parça işlemleri yürütülmeden önce yürütülecek şekilde ayarlandı. Bu, geri çağırmanın hiçbir zaman ayrılmış bir parçaya iletilmemesini sağlar. (I66a76, b/273568280)
Hata Düzeltmeleri
- Parça
1.5.6
:Lifecycle
zatenSTARTED
olduğunda ve bir sonuç zaten mevcut olduğundasetFragmentResultListener
içindeclearFragmentResultListener
çağrısının çalışmaması sorunu düzeltildi. (If7458)
Bağımlılık Güncellemeleri
- Parça artık Yaşam Döngüsü
2.6.1
'ne bağlıdır. (586fe7) - Parça artık KayıtlıDurum
1.2.1
'a bağlı. (078e4e) - Bu parça artık ProfileInstaller
1.3.0
öğesine bağlıdır. (3fc05b)
Sürüm 1.6.0-alpha07
8 Mart 2023
androidx.fragment:fragment-*:1.6.0-alpha07
yayınlandı. Sürüm 1.6.0-alpha07 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Parçadan
1.5.6
: Menü öğeleri eklenmiş olsa da olmasa da herhangi bir parçanın kaldırılmasının etkinlik menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
Sürüm 1.6.0-alpha06
22 Şubat 2023
androidx.fragment:fragment-*:1.6.0-alpha06
yayınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.
Davranış değişikliği
FragmentManager
öğesininonBackStackChangedListener
işlevindeki yenionBackStackChangedStarted
geri çağırması, artık parçalar hedef durumlarına taşınmaya başlamadan önce yürütülecek. (I34726)
Sürüm 1.6.0-alpha05
8 Şubat 2023
androidx.fragment:fragment-*:1.6.0-alpha05
yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.
Yeni Özellikler
FragmentManager.OnBackStackChagnedListener
arayüzü artıkFragmentManager
içinde geri yığın değişiklikleri olduğunda ek bilgi ve kontrol olanağı sağlayan iki ek geri çağırma (onBackStackChangeStarted
veonBackStackChangeCommitted
) sunmaktadır. (Ib7ce5, b/238686802)
API Değişiklikleri
Intent
veyaIntentSender
alanFragment
veFragmentManager
API'lerine, null değerinin geçirilmesini önlemek için@NonNull
ile düzgün bir şekilde not eklendi. Boş değer, bu yöntemlerin çağırdığı ilgili Android çerçeve API'lerini her zaman anında kilitler. (I06fd4)
Sürüm 1.6.0-alpha04
7 Aralık 2022
androidx.fragment:fragment-*:1.6.0-alpha04
yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
FragmentStrictMode
, bir alt parçanın üst öğenin Görünüm hiyerarşisine iç içe yerleştirildiğini algılayıp üst öğeninchildFragmentManager
öğesine eklenmediğini tespit eden yeni birWrongNestedHierarchyViolation
ekledi. (I72521, b/249299268)
Davranış Değişiklikleri
- Artık parçalar,
SavedStateRegistry
durumlarınıonAttach()
tarihinden önce geri yükleyerek tüm yukarı yaşam döngüsü yöntemlerinde kullanılabilir olmalarını sağlıyor. (I1e2b1)
API Değişiklikleri
fragment-testing-manifest
yapısı, manifest girişlerini diğer parça testi bileşenlerinden ayırır. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Bu, fragment-testing
ile androidx.test
arasında sürüm değişikliği olması nedeniyle çakışmaları önler.(I8e534, b/128612536)
Hata Düzeltmeleri
- Parça
1.5.5
'dan: Parçalar artıkViewModel
durumunu, görüntüleme kaydı kayıtlı durumunun bir parçası olarak hatalı şekilde kaydetmeyecek. (I10d2b, b/253546214)
Sürüm 1.6.0-alpha03
5 Ekim 2022
androidx.fragment:fragment:1.6.0-alpha03
, androidx.fragment:fragment-ktx:1.6.0-alpha03
ve androidx.fragment:fragment-testing:1.6.0-alpha03
yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
DialogFragment
süresini uzatan sınıfların artıkonDismiss()
geçersiz kılma işlemlerinde süper çağırması gerekecek. (I14798, b/238928865)
Hata Düzeltmeleri
- Parçaların her zaman doğru geri çağırmaları almasını sağlamak için yeni sağlayıcı geri çağırma arayüzlerinin (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) entegrasyonunun neden olduğu regresyonlar düzeltildi. (I9b380,I34581, (I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)
Sürüm 1.6.0-alpha02
24 Ağustos 2022
androidx.fragment:fragment:1.6.0-alpha02
, androidx.fragment:fragment-ktx:1.6.0-alpha02
ve androidx.fragment:fragment-testing:1.6.0-alpha02
yayınlandı. Sürüm 1.6.0-alpha02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Parça
1.5.2
'da: Aynı andapopBackStack()
vereplace()
işlemini yürütmenin, çıkıştaki parçaların yanlışAnimation
/Animator
dosyasını çalıştırmasına neden olması sorunu düzeltildi. (Ib1c07, b/214835303)
Sürüm 1.6.0-alpha01
27 Temmuz 2022
androidx.fragment:fragment:1.6.0-alpha01
, androidx.fragment:fragment-ktx:1.6.0-alpha01
ve androidx.fragment:fragment-testing:1.6.0-alpha01
yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.
Davranış Değişiklikleri
Fragment
öğelerinin kaydedilen durumu, gizli kitaplık durumu (özelParcelable
sınıfları) ile geliştirici tarafından sağlanan durum arasında tamamen bölündü. Bu durum artık her zaman, parçanın durumunun tam olarak nerede kaynaklandığının belirlenmesine olanak tanıyan birBundle
içinde depolanır. (b/207158202)
Hata Düzeltmeleri
- Parça
1.5.1
'dan: AGP 7.4 ile birlikte sunulan lint sürümünü kullanmanın, lint'in kilitlenmesine neden olduğuDialogFragmentCallbacksDetector
öğesindeki regresyon düzeltildi. (b/237567009)
Bağımlılık güncellemesi
- Fragment
1.5.1
bölümünden: Fragment kitaplığı artık Yaşam Döngüsü2.5.1
'ne bağlıdır. (Id204c) - Parça
1.5.1
'dan: Parça kitaplığı artık1.5.1
etkinliğine bağlıdır. (I10f07)
Sürüm 1.5
Sürüm 1.5.7
19 Nisan 2023
androidx.fragment:fragment:1.5.7
, androidx.fragment:fragment-ktx:1.5.7
ve androidx.fragment:fragment-testing:1.5.7
yayınlandı. Sürüm 1.5.7 bu kayıtları içerir.
Hata Düzeltmeleri
postponeEnterTransition
öğesinin zaman aşımı ile kullanılması ve ardından ertelenmiş parçanın değiştirilmesi, artık ertelenmiş parçanın sızdırılmasına neden olmaz. (I2ec7d, b/276375110)
Sürüm 1.5.6
22 Mart 2023
androidx.fragment:fragment:1.5.6
, androidx.fragment:fragment-ktx:1.5.6
ve androidx.fragment:fragment-testing:1.5.6
yayınlandı. Sürüm 1.5.6 bu kayıtları içerir.
Hata Düzeltmeleri
- Bir parçanın, Menü öğeleri eklenmiş olsa da olmasa da kaldırıldığında etkinlik menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
Lifecycle
zatenSTARTED
ve bir sonuç zaten mevcut olduğundasetFragmentResultListener
içindeclearFragmentResultListener
çağrısının çalışmaması sorunu düzeltildi. (If7458)
Sürüm 1.5.5
7 Aralık 2022
androidx.fragment:fragment:1.5.5
, androidx.fragment:fragment-ktx:1.5.5
ve androidx.fragment:fragment-testing:1.5.5
yayınlandı. 1.5.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Artık parçalar,
ViewModel
durumunu "görüntüleme kaydı kaydedildi" durumunun bir parçası olarak hatalı şekilde kaydetmeyecek. (I10d2b, b/253546214)
Sürüm 1.5.4
24 Ekim 2022
androidx.fragment:fragment:1.5.4
, androidx.fragment:fragment-ktx:1.5.4
ve androidx.fragment:fragment-testing:1.5.4
yayınlandı. 1.5.4 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Sağlayıcı geri çağırma arayüzü (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) uygulamayan bir ana makineyle özel birFragmentController
kullanmanın ve kullanımdan kaldırılmış dağıtım işlevinin çağrılmasının alt parçalara gönderilememesine neden olan hata düzeltildi. (I9b380)
Sürüm 1.5.3
21 Eylül 2022
androidx.fragment:fragment:1.5.3
, androidx.fragment:fragment-ktx:1.5.3
ve androidx.fragment:fragment-testing:1.5.3
yayınlandı. 1.5.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Arka yığındaki parçaların
onMultiWindowModeChanged()
,onPictureInPictureModeChanged()
,onLowMemory()
veonConfigurationChanged()
geri çağırmalarını almasına neden olan bir hata düzeltildi. (I34581, I8dfe6, b/242570955) - İç içe yerleştirilmiş alt parçalar artık birden fazla
onMultiWindowModeChanged()
,onPictureInPictureModeChanged()
,onLowMemory()
veyaonConfigurationChanged()
geri çağırması almayacak. (I690b3, Id0096, If9d6b, I2cba2)
Sürüm 1.5.2
10 Ağustos 2022
androidx.fragment:fragment:1.5.2
, androidx.fragment:fragment-ktx:1.5.2
ve androidx.fragment:fragment-testing:1.5.2
yayınlandı. 1.5.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Bir
popBackStack()
ve birreplace()
işlemini aynı anda yürütmenin, çıkıştaki parçaların yanlışAnimation
/Animator
çalıştırılmasına neden olmasına neden olan sorun düzeltildi. (Ib1c07, b/214835303)
Sürüm 1.5.1
27 Temmuz 2022
androidx.fragment:fragment:1.5.1
, androidx.fragment:fragment-ktx:1.5.1
ve androidx.fragment:fragment-testing:1.5.1
yayınlandı. 1.5.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- AGP 7.4 ile birlikte sunulan lint sürümünü kullanmanın, lint'in kilitlenmesine neden olduğu
DialogFragmentCallbacksDetector
içindeki regresyon düzeltildi. (b/237567009)
Bağımlılık güncellemesi
- Parça kitaplığı artık Yaşam Döngüsü
2.5.1
'ne bağlıdır. (Id204c) - Parça kitaplığı artık
1.5.1
etkinliğine bağlıdır. (I10f07)
Sürüm 1.5.0
29 Haziran 2022
androidx.fragment:fragment:1.5.0
, androidx.fragment:fragment-ktx:1.5.0
ve androidx.fragment:fragment-testing:1.5.0
yayınlandı. 1.5.0 sürümü bu kayıtları içerir.
1.4.0 sürümünden sonraki önemli değişiklikler
- CreationExtras Integration: Artık Lifecycle
2.5.0
'ınCreationExtras
aracılığıyla durum bilgisizViewModelProvider.Factory
sağlayabilir.Fragment
- Bileşen İletişim Kutusu Entegrasyonu -
DialogFragment
, artıkonCreateDialog()
tarafından döndürülen varsayılan iletişim kutusu olarak1.5.0
Etkinliği aracılığıylaComponentDialog
kullanıyor. - Kaydedilen Örnek Durumunu Yeniden Düzenleme: Parçalar, örnek durumunu kaydetme yöntemlerini değiştirmeye başladı. Bu, parçada hangi durumun ve durumun kaynağında kaydedildiğini net bir şekilde tanımlamaya yardımcı olmak için yapılır. Mevcut değişiklikler aşağıdakileri içermektedir:
FragmentManager
, kayıtlı örnek durumunu artık doğrudan özel birParcelable
yerineBundle
klasörüne kaydediyor.Fragment Result APIs
ile ayarlanan ve henüz teslim edilmemiş sonuçlar artıkFragmentManager
öğesinin dahili durumundan ayrı olarak kaydediliyor.- Her bir bağımsız parçayla ilişkilendirilen durum, artık
FragmentManager
öğesinin dahili durumundan ayrı olarak kaydediliyor. Böylece, bağımsız bir parçayla ilişkilendirilmiş kayıtlı durum miktarını,Fragment
hata ayıklama günlük kaydında bulunan benzersiz kimliklerle ilişkilendirebilirsiniz.
Diğer Değişiklikler
FragmentStrictMode
artık sınıf adıylaallowViolation()
kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasına olanak tanıyor.- Etkinliğinizin
ActionBar
öğesine menü sağlayan Fragment API'lerinin desteği sonlandırıldı.1.4.0
etkinliğine eklenenMenuHost
veMenuProvider
API'leri, parçaların kullanması gereken, test edilebilir, yaşam döngüsüne duyarlı bir eşdeğer API yüzeyi sağlar.
Sürüm 1.5.0-rc01
11 Mayıs 2022
androidx.fragment:fragment:1.5.0-rc01
, androidx.fragment:fragment-ktx:1.5.0-rc01
ve androidx.fragment:fragment-testing:1.5.0-rc01
yayınlandı. Sürüm 1.5.0-rc01 bu kayıtları içerir.
Kayıtlı Örnek Durumunu Yeniden Düzenleme
- Her bir bağımsız parçayla ilişkilendirilen durum,
FragmentManager
öğesinin dahili durumundan ayrı olarak kaydedilir. Böylece, tek bir parçayla ilişkilendirilmiş kayıtlı durum miktarını, Parça hata ayıklama günlük kaydında bulunan benzersiz kimliklerle ilişkilendirebilirsiniz. (a153e0, b/207158202)
Sürüm 1.5.0-beta01
20 Nisan 2022
androidx.fragment:fragment:1.5.0-beta01
, androidx.fragment:fragment-ktx:1.5.0-beta01
ve androidx.fragment:fragment-testing:1.5.0-beta01
yayınlandı. Sürüm 1.5.0-beta01 bu kayıtları içerir.
API Değişiklikleri
DialogFragment
,showNow
işleviyle denklik içincommitNow
kullanan yeni birdismissNow
yöntemi ekledi. BununDialog
öğesinin hemen kapatılmasına neden olmayacağını, yalnızcaFragmentManager
durumunu eşzamanlı olarak güncelleyeceğini unutmayın. (I15c36, b/72644830)
Kayıtlı Örnek Durumunu Yeniden Düzenleme
FragmentManager
, kayıtlı örnek durumunu artık doğrudan özel birParcelable
yerineBundle
klasörüne kaydediyor. Bu, Fragments tarafından gerçekte nelerin kaydedildiğine ilişkin daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)- Pargment Result API'leri aracılığıyla ayarlanan ve henüz teslim edilmemiş sonuçlar artık
FragmentManager
dahili durumundan ayrı olarak kaydediliyor. Bu, kayıtlı örnek durumunuzun bir parçası olarak hangi sonuçların kaydedildiği konusunda daha fazla şeffaflık sağlar. (I6ea12, b/207158202)
Sürüm 1.5.0-alpha05
6 Nisan 2022
androidx.fragment:fragment:1.5.0-alpha05
, androidx.fragment:fragment-ktx:1.5.0-alpha05
ve androidx.fragment:fragment-testing:1.5.0-alpha05
yayınlandı. Sürüm 1.5.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
Fragment
ürünününsetHasOptionsMenu()
desteği sonlandırıldı. Menüleri ve menü öğelerini yönetmek için Parça1.5.0-alpha04
sürüm notlarına uygun şekilde yeni menü API'leri kullanılmalıdır. (I7b4b4, b/226438239)
Sürüm 1.5.0-alpha04
23 Mart 2022
androidx.fragment:fragment:1.5.0-alpha04
, androidx.fragment:fragment-ktx:1.5.0-alpha04
ve androidx.fragment:fragment-testing:1.5.0-alpha04
yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Etkinliğinizin
ActionBar
öğesine menü sağlamak için kullanılan Fragment API'leri, parçanızı etkinliğinize sıkı bir şekilde bağladıkları ve tek başına test edilemedikleri için kullanımdan kaldırılmıştır.1.4.0-alpha01
etkinliğine eklenenMenuHost
veMenuProvider
API'leri, parçaların kullanması gereken, test edilebilir, yaşam döngüsüne duyarlı bir eşdeğer API yüzeyi sağlar. (I50a59, I20758)
Hata Düzeltmeleri
SavedStateViewFactory
,SavedStateRegistryOwner
ile başlatılmış olsa bile artıkCreationExtras
kullanımını destekliyor. Ekstralar sağlanırsa başlatılan bağımsız değişkenler yoksayılır. (I6c43b, b/224844583)
Sürüm 1.5.0-alpha03
23 Şubat 2022
androidx.fragment:fragment:1.5.0-alpha03
, androidx.fragment:fragment-ktx:1.5.0-alpha03
ve androidx.fragment:fragment-testing:1.5.0-alpha03
yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- Artık
CreationExtras
öğesiniby viewModels()
veby activityViewModels()
işlevlerine geçirebilirsiniz. (Ibefe7, b/217601110)
Davranış Değişiklikleri
DialogFragment
artıkonCreateDialog()
tarafından döndürülen varsayılan iletişim kutusu olarakComponentDialog
iletişim kutusunu kullanıyor. (If3784, b/217618170)
Sürüm 1.5.0-alpha02
9 Şubat 2022
androidx.fragment:fragment:1.5.0-alpha02
, androidx.fragment:fragment-ktx:1.5.0-alpha02
ve androidx.fragment:fragment-testing:1.5.0-alpha02
yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
FragmentStrictMode
artık sınıf adıylaallowViolation()
kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasına olanak tanıyor. (I8f678)
Sürüm 1.5.0-alpha01
26 Ocak 2022
androidx.fragment:fragment:1.5.0-alpha01
, androidx.fragment:fragment-ktx:1.5.0-alpha01
ve androidx.fragment:fragment-testing:1.5.0-alpha01
yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
Fragment
artık Yaşam Döngüsü2.5.0-alpha01
kapsamında kullanıma sunulan ViewModel CreationExtras ile entegre olur. (I3060b, b/207012585)
Hata Düzeltmeleri
- Parça
1.4.1
'dan:FragmentContainerView
, XML'den oluşturulan görüntüleme kimliklerinin negatif değerlere sahip olduğu durumlarda artık yasa dışı durum istisnası bildirmez. (Ic185b, b/213086140) - Parça
1.4.1
'dan:by viewModels()
tembel işleviyle birlikte özel birownerProducer
lambda kullanılırken, her zaman parçanın fabrikasını kullanmak yerine özel birViewModelProvider.Factory
sağlanmazsa artık bu sahibindefaultViewModelProviderFactory
öğesini kullanacaktır. (I56170, b/214106513) - Bir
Fragment
öğesininregisterForActivityResult()
geri çağırması sırasındaViewModel
öğesine ilk kez erişilirken yaşanan kilitlenme düzeltildi. (Iea2b3)
Sürüm 1.4
Sürüm 1.4.1
26 Ocak 2022
androidx.fragment:fragment:1.4.1
, androidx.fragment:fragment-ktx:1.4.1
ve androidx.fragment:fragment-testing:1.4.1
yayınlandı. Sürüm 1.4.1 bu kayıtları içerir.
Hata Düzeltmeleri
FragmentContainerView
, XML'den oluşturulan görünüm kimliklerinin negatif değerlere sahip olduğu durumlarda artık yasa dışı durum istisnası yaratmaz. (Ic185b, b/213086140)by viewModels()
geç işleviyle özel birownerProducer
lambda kullanılırken, her zaman parçanın fabrikasını kullanmak yerine özelViewModelProvider.Factory
sağlanmazsa artık bu sahibindefaultViewModelProviderFactory
değeri kullanılır. (I56170, b/214106513)
Sürüm 1.4.0
17 Kasım 2021
androidx.fragment:fragment:1.4.0
, androidx.fragment:fragment-ktx:1.4.0
ve androidx.fragment:fragment-testing:1.4.0
yayınlandı. 1.4.0 sürümü bu kayıtları içerir.
1.3.0 sürümünden sonraki önemli değişiklikler
FragmentStrictMode
API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılan parça API'leri çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. Hangi kontrollerin etkinleştirildiğini ve hangi "cezaların" tetiklendiğini kontrol edenFragmentStrictMode.Policy
,FragmentManager
üzerinde yenisetStrictModePolicy()
yöntemiyle ayarlanabilir. Bu politika hem söz konusuFragmentManager
öğesi hem de kendi benzersiz politikasını ayarlamayan tüm alt parça yöneticileri için geçişli olarak geçerlidir. Parçalar için StrictMode konusuna bakın.FragmentContainerView
artık kapsayıcıya en son eklenen parçayı döndüren birgetFragment()
yöntemi sunuyor. Bu,FragmentContainerView
kimliğiylefindFragmentById()
ile aynı mantığı kullanır ancak çağrının zincirleme olarak bağlanmasına izin verir.val navController = binding.container.getFragment<NavHostFragment>().navController
FragmentScenario
artıkCloseable
uygulayarak bu SDK'yı Kotlinuse
yöntemiyle veya kaynaklarla deneyin ile kullanabilirsiniz.Fragments geçişinde temanızdan alınan standart Etkinlik-geçiş animasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtmek için
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
eklendi.FragmentManager.enableNewStateManager(boolean)
deneysel API'sı kaldırıldı ve artık yalnızca yeni durum yöneticisi kullanılabilir.
Birden çok arka grup
FragmentManager
, addToBackStack()
kullanılan 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ükleyebilmeleri için Parçalarla durumu kaydetme mekanizmalarını kullanarak söz konusu işlemleri açabilir ve önceki duruma dönebilirsiniz.
Bu sürüm; saveBackStack(String name)
, restoreBackStack(String name)
ve clearBackStack(String name)
olmak üzere üç yeni FragmentManager
API'si sağlayarak söz konusu mekanizmaların kapsamını genişletmektedir. Bu API'ler, FragmentTransaction
ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack()
ile aynı name
özelliğini kullanır. Böylece, daha sonra bu işlemleri ve parçalarını durumlarıyla birlikte geri yüklemenize olanak tanır. Böylece, mevcut arka yığını kaydederek ve kaydedilmiş bir arka yığını geri yükleyerek birden fazla arka grup arasında etkili bir şekilde geçiş yapabilirsiniz.
saveBackStack()
, eşzamansız olmasıyla popBackStack()
ile benzer şekilde çalışır. Tüm parça işlemlerinin geri alınan ("aktarılmış") bu ada geri dönmesi ve eklenen parçaların yok edilip kaldırılmasıyla sonuçlanır, ancak bazı önemli farklılıklar vardır:
saveBackStack()
her zaman kapsayıcıdır.- Belirtilen ad arka yığında bulunamazsa veya null bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösterecek
popBackStack()
işlevinin aksine, daha önceaddToBackStack()
kullanarak tam, null olmayan adla bir parça işlemi gerçekleştirmediysenizsaveBackStack()
hiçbir şey yapmaz. - Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Diğer bir deyişle, her parçanın Görüntüleme durumu depolanır, her parçanın
onSaveInstanceState()
durumu çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tümViewModel
örnekleri korunur (veonCleared()
bunların üzerinde çağrılanmaz).
saveBackStack()
ile kullanılabilecek parça işlemleri belirli ölçütleri karşılamalıdır:
- İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesini sağlamak için her parça işleminde
setReorderingAllowed(true)
kullanılmalıdır. - Kaydedilen işlem grubu, araya giren süre içinde arka grupta ne tür değişiklikler yapılmış olursa olsun, daha sonra geri yüklenebilmesi için bağımsız olmalıdır (yani, söz konusu işlem grubunun dışındaki parçalara açıkça başvuruda bulunmamalıdır).
- Kaydedilen hiçbir parça, saklanan parça olamaz veya arka yığın kaydedildikten sonra
FragmentManager
öğesinin kaydedilen parçalara referans döndürmemesini sağlamak için geçişli alt parça grubunda tutulmuş bir parça içeremez.
Önceden kaydedilmiş bir arka yığını geri yükleyen veya daha önce kaydedilmiş bir geri yığını temizleyen saveBackStack()
, restoreBackStack()
ve clearBackStack()
'ye benzer şekilde, daha önce aynı adla saveBackStack()
çağırmadıysanız her ikisi de hiçbir şey yapmaz.
Daha fazla bilgi için Birden çok arka plan yığını: Ayrıntılı inceleme bölümüne bakın.
Sürüm 1.4.0-rc01
3 Kasım 2021
androidx.fragment:fragment:1.4.0-rc01
, Fragment 1.4.0-beta01 sürümünde herhangi bir değişiklik yapılmadan yayınlandı. Sürüm 1.4.0-rc01 bu kayıtları içerir.
Sürüm 1.4.0-beta01
27 Ekim 2021
androidx.fragment:fragment:1.4.0-beta01
, androidx.fragment:fragment-ktx:1.4.0-beta01
ve androidx.fragment:fragment-testing:1.4.0-beta01
yayınlandı. Sürüm 1.4.0-beta01 bu kayıtları içerir.
Hata Düzeltmeleri
- Üst parçalar artık kendi geri çağırmalarını başlatmadan önce hiyerarşinin tamamında
onHiddenChanged()
öğesini dağıtır. (Iedc20, b/77504618) - Klavye artık açık klavyeli bir parçadan geri dönüşüm uygulaması görünümü olan bir parçaya giderken otomatik olarak kapanacak. (I8b842, b/196852211)
DialogFragment
artıkshow()
,showNow()
veyadismiss()
çağrısı yaptığınızda oluşturduğu tüm işlemler içinsetReorderingAllowed(true)
kullanıyor. (Ie2c14)DetachAndAttachFragmentInSameFragmentTransaction
olan çok uzun Lint uyarısıDetachAndAttachSameFragment
olarak kısaltıldı. (e9eca3)
Sürüm 1.4.0-alfa10
29 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha10
, androidx.fragment:fragment-ktx:1.4.0-alpha10
ve androidx.fragment:fragment-testing:1.4.0-alpha10
yayınlandı. Sürüm 1.4.0-alpha10 bu kayıtları içerir.
Lint
- Aynı
FragmentTransaction
içinde aynıFragment
üzerinde hemdetach()
hem deattach()
çağrısının algılanması içinDetachAndAttachFragmentInSameFragmentTransaction
hata uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde yapıldığında birbirini iptal ettiğinden, herhangi bir şey yapabilmek için ayrı işlemlere bölünmesi gerekir. (aosp/1832956, b/200867930) MenuHost
addMenuProvider
API'si kullanılırken Parça Yaşam Döngüsü kullanımlarını düzeltmek içinFragmentAddMenuProvider
lint hatası eklendi. (aosp/1830457, b/200326272)
Belge Güncellemeleri
- Etkinlik Sonucu API'leri (
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
veonRequestPermissionsResult
) tarafından işlenen API'lere yönelik desteği sonlandırma mesajının tamamı daha fazla ayrıntı içerecek şekilde genişletildi. (cce80f) - Hem
Fragment
hem deDialogFragment
içinonActivityCreated()
desteğinin sonlandırılmasıyla ilgili mesajı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
yayınlandı. Sürüm 1.4.0-alpha09 bu kaydetmeleri içerir.
Yeni Özellikler
- Artık
saveBackStack(name)
ile önceden kaydedilmiş olan durumları temizlemek içinclearBackStack(name)
numaralı telefonu arayabilirsiniz. (I70cd7)
API Değişiklikleri
FragmentContainerView
sınıfı,getFragment
işlevinin boş değer atanabilirliğine düzgün bir şekilde uymasını sağlamak amacıyla Kotlin'de yeniden yazılmıştır. (If694a, b/189629145)- FragmentStrictMode artık Kotlin dilinde (I11767, b/199183506) yazılıyor
Hata Düzeltmeleri
setReorderingAllowed(true)
ile eklenen ve ardından bekleyen işlemler yürütülmeden önce hemen kaldırılan bir Parçanın durumunun düzgün bir şekilde temizlenememesine neden olan sorun düzeltildi. (I8ccb8)
Sürüm 1.4.0-alpha08
1 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha08
, androidx.fragment:fragment-ktx:1.4.0-alpha08
ve androidx.fragment:fragment-testing:1.4.0-alpha08
yayınlandı. Sürüm 1.4.0-alpha08 bu kayıtları içerir.
Hata Düzeltmeleri
- Gereksiz parantezleri daha iyi işlemek için
UseRequireInsteadOfGet
Lint denetimi iyileştirildi. (I2d865) - Ek uç durumları ele almak için
UseGetLayoutInflater
Lint denetimi iyileştirildi. (Ie5423)
Sürüm 1.4.0-alpha07
18 Ağustos 2021
androidx.fragment:fragment:1.4.0-alpha07
, androidx.fragment:fragment-ktx:1.4.0-alpha07
ve androidx.fragment:fragment-testing:1.4.0-alpha07
kayda değer bir değişiklik olmadan yayınlandı. Sürüm 1.4.0-alpha07 bu kayıtları içerir.
Sürüm 1.4.0-alpha06
4 Ağustos 2021
androidx.fragment:fragment:1.4.0-alpha06
, androidx.fragment:fragment-ktx:1.4.0-alpha06
ve androidx.fragment:fragment-testing:1.4.0-alpha06
yayınlandı. Sürüm 1.4.0-alpha06 bu kaydetmeleri içerir.
Hata Düzeltmeleri
FragmentTransaction
geri yüklenirken veya görünen bir parçanın ikinci kopyası olarakIllegalStateException
olarak görünen arka yığınlar arasında hızlı bir şekilde geçiş yapılırken birden fazla arka yığınla ilgili sorun düzeltildi. (I9039f)- Bu durum geri yüklendikten sonra bile
FragmentManager
ürününün,saveBackStack()
aracılığıyla önceden kaydedilmiş olan bir durumun kopyasını saklamasına neden olan sorun düzeltildi. (Ied212) show(FragmentTransaction, String)
yöntemiyle DialogFragment'ı özel olarak eklerken durum kaydedildikten sonraDialogFragment
içindismissAllowingStateLoss()
yöntemi artık kilitlenmez. (I84422)
Sürüm 1.4.0-alpha05
21 Temmuz 2021
androidx.fragment:fragment:1.4.0-alpha05
, androidx.fragment:fragment-ktx:1.4.0-alpha05
ve androidx.fragment:fragment-testing:1.4.0-alpha05
yayınlandı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.
Hata Düzeltmeleri
- Parça
1.3.6
'dan: Kök görünümütransitionGroup=”true”
ayarlandığında,hide()
kullanılırken Fragment'ın görünümü artık düzgün şekildeGONE
olarak ayarlanmıştır. (aosp/1766655, b/193603427) - Parça
1.3.6
'dan:FragmentActivity
, yaşam döngüsündeki ilk işlem geçersiz kılma işlemi yapıldığında her zaman kayıtlı durumun kilidini açar. (I6db7a)
Bağımlılık güncellemesi
- Parça
1.3.6
: Parçalar artık1.2.4
etkinliğine (I3a66c) bağlıdır
Sürüm 1.4.0-alpha04
30 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha04
, androidx.fragment:fragment-ktx:1.4.0-alpha04
ve androidx.fragment:fragment-testing:1.4.0-alpha04
yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
FragmentManager
, durumunu kaydetmek için artık gelişmiş cihazlardaSavedStateRegistry
kullanıyor.saveAllState()
verestoreSavedState()
yöntemleri deFragmentController
ürününde kullanımdan kaldırılmıştır.FragmentActivity
dışında parçaları barındırmak içinFragmentController
kullanıyorsanızFragmentHostCallbacks
uygulamanızSavedStateRegistryOwner
gerekir. (Iba68e, b/188734238)
Hata Düzeltmeleri
- Birden fazla arka yığını destekleme kapsamında
saveBackStack()
çağrısının,replace()
kullanan birFragmentTransaction
çalıştırmayla aynı anda yapıldığında başarısız olması sorunu düzeltildi. (I73137) - Birden fazla arka yığın desteği için
restoreBackStack()
API kullanılırken birden fazla işlem içeren kaydedilmiş bir geri yığını manuel olarak geri yüklendikten sonra ortaya çıkanNullPointerException
düzeltildi. Bu ayrıca, tüm işlemler içinsetReorderingAllowed(true)
kontrol edilmemesine neden olan bir sorunu da düzeltti. (I8c593) FragmentManager
ürününün, bu parçalarFragmentManager
ürününden kaldırıldıktan sonra bile parçaların önceden kaydedilmiş durumlarını hatalı bir şekilde geri yüklemeye devam etmesi ve böylece kayıtlı durumun zaman içinde sürekli olarak büyümesine neden olması sorunu düzeltildi. (I1fb8e)
Sürüm 1.4.0-alpha03
16 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha03
, androidx.fragment:fragment-ktx:1.4.0-alpha03
ve androidx.fragment:fragment-testing:1.4.0-alpha03
yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
- Tüm Fragment StrictMode
Violation
sınıfları, ihlalin ayrıntılarını açıklayan daha ayrıntılı hata mesajlarıyla güncellendi. (b/187871638)FragmentTagUsageViolation
artık, parçanın ekleneceği üst kapsayıcıyı kapsayıcıyla ilgili daha ayrıntılı bir hata mesajı içermektedir. (Ic33a7)WrongFragmentContainerViolation
artık, parçanın eklendiği kapsayıcıyı içeren daha ayrıntılı bir hata mesajı sunuyor. (Ib55f8)TargetFragmentUsageViolation
kullanım örneği sınıflarında artık, ihlale neden olan parçayı ve içerdiği diğer bilgileri içeren daha ayrıntılı hata mesajları bulunmaktadır. (Icc6ac)RetainInstanceUsageViolation
kapsamını genişleten sınıflarda artık, ihlale neden olan parçayı içeren daha ayrıntılı hata mesajları bulunmaktadır. (I6bd55)FragmentReuseViolation
artık, parçanın önceki kimliğini içeren daha ayrıntılı hata mesajına sahip. (I28ce2)SetUserVisibleHintViolation
artık, kullanıcı tarafından görülebilen ipucunun neye ayarlandığını içeren daha ayrıntılı bir hata mesajı içeriyor. (Ib2d5f)
Davranış Değişiklikleri
FragmentContainerView
cihazındafitsSystemWindows
çağrısına ilişkin kısıtlama geri alındı. Bu durum artık uygulamanızın kilitlenmesine neden olmuyor. (6b8ddd, b/190622202)
Hata Düzeltmeleri
- Parça
1.3.5
'dan: aosp/1679887 tarafından Parça1.3.4
'da tanıtılan paylaşılan öğe geçişlerindeki bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
aracılığıyla veya dolaylı olarak birtransitionName
ya dabackground
ile ayarlanır) doğru şekilde ele alıyor ve paylaşılan öğeler artıkIndexOutOfBoundsException
öğelerini bildirmeyecek. (I16484, b/188679569, b/188969304) - Kaldıran bir parçayı gizlemeye çalıştığınızda
FragmentManager
artık kilitlenmez. (I573dd, b/183634730) - Üst düzey bir değişken değerlendirilirken
OnCreateDialogIncorrectCallback
hata analizi denetimi artık daha fazla kilitlenmeyecektir. (0a9efa, b/189967522)
Sürüm 1.4.0-alpha02
2 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha02
, androidx.fragment:fragment-ktx:1.4.0-alpha02
ve androidx.fragment:fragment-testing:1.4.0-alpha02
yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
- Şu anda kullanılan yüksek düzey mod politikasından bağımsız olarak, günlük kaydı
FragmentManager
üzerinden etkinleştirildiğindeFragmentStrictMode
artık her zaman ihlalleri günlüğe kaydedecek. (I02df6, b/187872638) FragmentStrictMode
artık belirliFragment
sınıflarının katı kurallıViolation
modlarından muaf tutulmasını destekler ve bu sınıfın cezaları atlamasına olanak tanır. (Ib4e5d, b/184786736)FragmentStrictMode
Violation
sınıfı, her ihlale göre yapı bilgileri eklenecek şekilde genişletildi. Bu sayede, ihlale neden olan parçayla (If5118, b/187871150) birlikte ihlalin nedenini tam olarak doğrulayabilirsiniz. HerViolation
şunları içerir:WrongFragmentContainerViolation
artıkFragment
öğesinin eklenmeye çalıştığıViewGroup
öğesini içeriyor. (I83c75, b/187871150)TargetFragmentUsageViolation
SetTargetFragmentUsageViolation
,GetTargetFragmentUsageViolation
veGetTargetFragmentRequestCodeUsageViolation
olarak genişletildi veSetTargetFragmentUsageViolation
hedef parça ve istek kodunu içeriyor. (I741b4, b/187871150)SetUserVisibleHintViolation
artıksetUserVisibleHint()
içine aktarılan boole değerini içeriyor. (I00585, b/187871150)FragmentTagUsageViolation
artık<fragment>
etiketinin bir parçayı içine genişletmeye çalıştığı ViewGroup'u içeriyor.(I5dbbc, b/187871150)FragmentReuseViolation
artık, ihlale neden olan öncekiFragment
örneğinin benzersiz kimliğini içeriyor. (I0544d, b/187871150)RetainInstanceUsageViolation
artık soyuttur ve ihlal türü için iki durumu temsil edenSetRetainInstanceUsageViolation
veGetRetainInstanceUsageViolation
adlı iki alt sınıfa sahiptir. (Ic81e5, b/187871150)
Davranış Değişiklikleri
FragmentContainerView
artıkfitsSystemWindow
özelliğini programatik olarak veya XML aracılığıyla değiştirmeye çalışırken bir istisna bildiriyor. Ekler, her bir parçanın görünümüne göre işlenmelidir. (Ie6651, b/187304502)
Sürüm 1.4.0-alpha01
18 Mayıs 2021
androidx.fragment:fragment:1.4.0-alpha01
, androidx.fragment:fragment-ktx:1.4.0-alpha01
ve androidx.fragment:fragment-testing:1.4.0-alpha01
yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
FragmentContainerView
artık kapsayıcıya en son eklenen parçayı döndüren birgetFragment()
yöntemi sunuyor. Bu,FragmentContainerView
kimliğiylefindFragmentById()
ile aynı mantığı kullanır ancak çağrının zincirleme olarak bağlanmasına izin verir. (Ife17a, b/162527857)val navController = binding.container.getFragment<NavHostFragment>().navController
Fragments geçişinde temanızdan alınan standart Etkinlik-geçiş animasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtmek için
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
eklendi. (I46652)
Birden çok arka grup
FragmentManager
, addToBackStack()
kullanılan 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ükleyebilmeleri için Parçalarla durumu kaydetme mekanizmalarını kullanarak söz konusu işlemleri açabilir ve önceki duruma dönebilirsiniz.
Bu sürüm, saveBackStack(String name)
ve restoreBackStack(String name)
olmak üzere iki yeni FragmentManager
API'si sağlayarak bu mekanizmaların kapsamını genişletmektedir. Bu API'ler, FragmentTransaction
ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack()
ile aynı name
özelliğini kullanır. Böylece, daha sonra bu işlemleri ve parçalarını durumlarıyla birlikte geri yüklemenize olanak tanır. Böylece, mevcut arka yığını kaydederek ve kaydedilmiş bir arka yığını geri yükleyerek birden fazla arka grup arasında etkili bir şekilde geçiş yapabilirsiniz.
saveBackStack()
, eşzamansız olmasıyla popBackStack()
ile benzer şekilde çalışır. Tüm parça işlemlerinin geri alınan ("aktarılmış") bu ada geri dönmesi ve eklenen parçaların yok edilip kaldırılmasıyla sonuçlanır, ancak bazı önemli farklılıklar vardır:
saveBackStack()
her zaman kapsayıcıdır.- Belirtilen ad arka yığında bulunamazsa veya null bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösterecek
popBackStack()
işlevinin aksine, daha önceaddToBackStack()
kullanarak tam, null olmayan adla bir parça işlemi gerçekleştirmediysenizsaveBackStack()
hiçbir şey yapmaz. - Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Diğer bir deyişle, her parçanın Görüntüleme durumu depolanır, her parçanın
onSaveInstanceState()
durumu çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tümViewModel
örnekleri korunur (veonCleared()
bunların üzerinde çağrılanmaz).
saveBackStack()
ile kullanılabilecek parça işlemleri belirli ölçütleri karşılamalıdır:
- İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesini sağlamak için her parça işleminde
setReorderingAllowed(true)
kullanılmalıdır. - Kaydedilen işlem grubu, araya giren süre içinde arka grupta ne tür değişiklikler yapılmış olursa olsun, daha sonra geri yüklenebilmesi için bağımsız olmalıdır (yani, söz konusu işlem grubunun dışındaki parçalara açıkça başvuruda bulunmamalıdır).
- Kaydedilen hiçbir parça, saklanan parça olamaz veya arka yığın kaydedildikten sonra
FragmentManager
öğesinin kaydedilen parçalara referans döndürmemesini sağlamak için geçişli alt parça grubunda tutulmuş bir parça içeremez.
Daha önce aynı adla saveBackStack()
çağrısı yapmadıysanız restoreBackStack()
, saveBackStack()
operatörüne benzer şekilde hiçbir işlem yapmaz. (b/80029773)
Parça StrictMode
FragmentStrictMode
API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılan parça API'leri çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. Hangi kontrollerin etkinleştirildiğini ve hangi "cezaların" tetiklendiğini kontrol eden FragmentStrictMode.Policy
, FragmentManager
üzerinde yeni setStrictModePolicy()
yöntemiyle ayarlanabilir. Bu politika hem söz konusu FragmentManager
öğesi hem de kendi benzersiz politikasını ayarlamayan 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ış birFragment
örneğinin birFragmentManager
öğesine yeniden eklenip eklenmediğini tespit eder. BirFragmentManager
örneği silindikten ve kaldırıldıktan sonraFragment
örneğiyle hiçbir zaman etkileşimde bulunmamalı veya örneğe referans saklamamalısınız. (#142, b/153738653)detectFragmentTagUsage()
, düzen XML'nizde<fragment>
etiketini kullandığınızı algılar. Düzeninizin bir parçası olarak parçaları şişirirken her zamanFragmentContainerView
kullanmanız gerekir. (#141, b/153738235)detectWrongFragmentContainer()
,FragmentContainerView
olmayan bir kapsayıcıya parça eklediğinizde algılar. Düzeninizdeki parçalar için kapsayıcı olarak her zamanFragmentContainerView
kullanmanız gerekir. (#146, b/181137036)detectRetainInstanceUsage()
, kullanımdan kaldırılansetRetainInstance()
veyagetRetainInstance()
API'lerini kullandığınızı algılar. (#140, b/153737954)detectSetUserVisibleHint()
, kullanımdan kaldırılansetUserVisibleHint()
API'yi kullandığınızı algılar. (#136, b/153738974)detectTargetFragmentUsage()
, kullanımdan kaldırılansetTargetFragment()
,getTargetFragment()
veyagetTargetRequestCode()
API'lerini kullandığınızı algılar. (#139, b/153737745)
API Değişiklikleri
FragmentManager.enableNewStateManager(boolean)
deneysel API'sı kaldırıldı ve artık yalnızca yeni durum yöneticisi kullanılabilir. (I90036, b/162776418)FragmentScenario
artıkCloseable
uygulayarak bu SDK'yı Kotlinuse
yöntemiyle veya kaynaklarla deneyin ile kullanabilirsiniz. (#121, b/143774122)
Yeni Lint kontrolleri
UseGetLayoutInflater
Lint kontrolü artık birDialogFragment
içindeLayoutInflater.from(Context)
kullanıldığında uyarıda bulunur.LayoutInflater
için uygun olanı almak için her zaman iletişim parçasınıngetLayoutInflater()
yöntemini kullanmanız gerekir. (#156, b/170781346)DialogFragmentCallbacksDetector
Lint kontrolü, artık birDialogFragment
öğesininonCreateDialog()
yöntemindesetOnCancelListener
veyasetOnDismissListener
çağrılırken uyarı verir. Bu işleyicilerDialogFragment
öğesinin kendisine aittir ve bu geri çağırmaları almak içinonCancel()
veonDismiss()
öğelerini geçersiz kılmanız gerekir. (#171, b/181780047, b/187524311)
Hata Düzeltmeleri
- Parça 1.3.4'ten:
ViewModelProvider
ileViewTreeViewModelStoreOwner.get()
API veya bir Parça içindeviewModel()
Jetpack Compose yöntemi kullanıldığında Parça1.3.3
içinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları, artıkgetDefaultViewModelProviderFactory()
değerini geçersiz kılarsa Fragment'ınız tarafından sağlananViewModelProvider.Factory
değerini doğru bir şekilde kullanır (@AndroidEntryPoint
ek açıklamalı Fragment'ların Hilt kullanırken yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment'ın görünümüyle birlikte durumunu kaydedip geri yükleyen birSavedStateViewModelFactory
varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368) - Fragment 1.3.4'ten itibaren: API 29'da
FragmentContainerView
kullanılırken ekler artık süresiz olarak gönderilmeyecek veBottomNavigationBar
veFloatingActionButton
örneklerindeki sorunları düzeltecektir. (I1bb78, b/186012452) - Parça 1.3.4'ten: Artık süreç sonlandırıldıktan sonra Parcelable öğenizi parça sonuç paketinden alabilirsiniz. (I65932, b/187443158)
- Fragment 1.3.4'ten itibaren: Bir ViewGroup'ta paylaşılan öğe geçişi yaparken, ViewGroup
transitionGroup
değeri false (yanlış) değerine ayarlanmışsa artık düzgün bir şekilde geçiş yapacaktır. (I99675)
Harici Katkı
FragmentScenario
uygulamasınıCloseable
uygulamasını yaptığınız için simonschiller'e teşekkür ederiz. (#121, b/143774122)- Bu sürümde
FragmentStrictMode
API'nin tamamını eklediğiniz için simonschiller'e teşekkür ederiz. (#123, #131, #150, b/143774122, #142, b/153738653, b/15373823} b/153738235 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
yayınlandı. 1.3.6 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Parçadan
1.4.0-alpha03
: Kaldıran bir parçayı gizlemeye çalıştığınızdaFragmentManager
artık kilitlenmez. (I573dd, b/183634730) - Kök görünümü
transitionGroup=”true”
ayarlandığında,hide()
kullanılırken Parçanın görünümü artık düzgün bir şekildeGONE
olarak ayarlanıyor. (aosp/1766655, b/193603427) FragmentActivity
, yaşam döngüsündeki ilk işlemi geçersiz kıldığından artık her zaman kayıtlı durumun kilidini açıyor. (I6db7a)
Bağımlılık güncellemesi
- Parça
1.3.6
: Parçalar artık1.2.4
etkinliğine (I3a66c) bağlıdır
Sürüm 1.3.5
16 Haziran 2021
androidx.fragment:fragment:1.3.5
, androidx.fragment:fragment-ktx:1.3.5
ve androidx.fragment:fragment-testing:1.3.5
yayınlandı. 1.3.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- aosp/1679887 tarafından Parça
1.3.4
'da sunulan paylaşılan öğe geçişlerindeki bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
aracılığıyla veya dolaylı olarak birtransitionName
ya dabackground
ile ayarlanır) doğru şekilde ele alıyor ve paylaşılan öğeler artıkIndexOutOfBoundsException
öğelerini bildirmeyecek. (I16484, b/188679569, b/188969304)
Sürüm 1.3.4
18 Mayıs 2021
androidx.fragment:fragment:1.3.4
, androidx.fragment:fragment-ktx:1.3.4
ve androidx.fragment:fragment-testing:1.3.4
yayınlandı. 1.3.4 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
ViewModelProvider
ileViewTreeViewModelStoreOwner.get()
API'si kullanıldığında veya Hilt kullanırken bir Fragment içindeviewModel()
için Jetpack Compose yöntemi kullanılırken Fragment1.3.3
öğesinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları, artıkgetDefaultViewModelProviderFactory()
değerini geçersiz kılarsa Fragment'ınız tarafından sağlananViewModelProvider.Factory
değerini doğru bir şekilde kullanır (@AndroidEntryPoint
ek açıklamalı Fragment'ların yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment'ın görünümüyle birlikte durumunu kaydedip geri yükleyen birSavedStateViewModelFactory
varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368)- API 29'da
FragmentContainerView
kullanıldığında, inset'ler artık süresiz olarak gönderilmez veBottomNavigationBar
veFloatingActionButton
örnekleriyle ilgili sorunları düzeltir. (I1bb78, b/186012452) - Artık süreç sonlandırıldıktan sonra Parselable dosyanızı parça sonuç paketinden alabilirsiniz. (I65932, b/187443158)
- Bir ViewGroup'ta paylaşılan öğe geçişi yaparken, ViewGroup için
transitionGroup
yanlış değerine ayarlanırsa artık düzgün bir şekilde geçiş yapılır. (I99675)
Sürüm 1.3.3
21 Nisan 2021
androidx.fragment:fragment:1.3.3
, androidx.fragment:fragment-ktx:1.3.3
ve androidx.fragment:fragment-testing:1.3.3
yayınlandı. 1.3.3 sürümü bu kayıtları içerir.
Yeni Özellikler
SavedStateViewModelFactory
kullanımı, artık Fragment Görünümü ileViewTreeSavedStateRegistryOwner.get()
kullanılarak döndürülenSavedStateRegistryOwner
ile kullanıldığında da çalışmaktadır. (I21acf, b/181577191)
Hata Düzeltmeleri
1.3.2
Parçasında sunulan veNavHostFragment
tarafından kullanılanlar gibisetPrimaryNavFragment
işlemi içeren birFragmentTransaction
pop-up'ı açılırkenpopEnter
animasyonlarının çalışmamasına neden olan bir regresyon düzeltildi. (I38c87, b/183877426)FragmentContainerView
artık herFragment
öğesinin yeni birWindowInsets
grubu dağıtılmasını sağlayarak her bir parçanın ekleri bağımsız olarak tüketmesini sağlıyor. (I63f68, b/172153900)DialogFragment
, özelDialog
sınıfınızdaki kapsayıcıyla aynı kimliğe sahip kapsayıcıya bir alt parçanın eklendiği durumları düzgün şekilde ele alıyor veBottomSheetDialog
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çaya düzgün bir şekilde girinti ekliyor. (If5c33, b/183705451)
Yeni Durum Yöneticisi Hata Düzeltmeleri
- Yeni parça durumu yöneticisi artık gizleme işlemleriyle çıkış geçişlerini düzgün bir şekilde işliyor. (I9e4de, b/184830265)
Sürüm 1.3.2
24 Mart 2021
androidx.fragment:fragment:1.3.2
, androidx.fragment:fragment-ktx:1.3.2
ve androidx.fragment:fragment-testing:1.3.2
yayınlandı. 1.3.2 sürümü bu kayıtları içerir.
Yeni Durum Yöneticisi Hata Düzeltmeleri
- Hem
popBackStack()
hem decommit()
işlemleri birlikte çalıştırılırken son işlem, bazı pop animasyonlar ve bazı animasyonlar çalıştırmak yerine artık tüm animasyonların yönünü ayarlar. (I7072e, b/181142246) - Paylaşılan öğe hiyerarşisinde yer alan görünümlerin geçiş adları, paylaşılan öğe geçişi yapılırken artık silinmez. (I4d4a6, b/179934757)
Bağımlılık Güncellemeleri
- Bölüm artık Etkinlik 1.2.2'ye bağlı olup Fragment 1.3.1 veya sonraki bir sürümü kullanırken Etkinlik'in
InvalidFragmentVersionForActivityResult
lint kontrolüyle ilgili bir sorunu düzeltmektedir. - Parça artık Yaşam Döngüsü 2.3.1'e bağlıdır.
Sürüm 1.3.1
10 Mart 2021
androidx.fragment:fragment:1.3.1
, androidx.fragment:fragment-ktx:1.3.1
ve androidx.fragment:fragment-testing:1.3.1
yayınlandı. 1.3.1 sürümü bu kayıtları içerir.
Yeni Özellikler
DialogFragment
içindeki iletişim kutuları artık ViewTree sahiplerine DecorView aracılığıyla erişebilir ve böyleceDialogFragment
,ComposeView
ile kullanılabilir. (Ib9290, b/180691023)
Hata Düzeltmeleri
- FragmentContainerView kullanarak zaten
RESUMED
etkinliği haline getirilmiş parçalar artık bir yapılandırma değişikliğinden sonra düzgün bir şekilde gösteriliyor. (Ie14c8, b/180538371) - Parçanın sonunda artık ekstra bir
}
yoktoString()
(I54705, b/177761088) - FragmentActivity alanındaki geçersiz kılınan yöntemler artık javaDoc temel yöntemini (I736ce, b/139548782) düzgün bir şekilde devralmaktadır
setFragmentResult
vesetFragmentResultListener
belgeleri, parametre dokümanlarını artık null değer atanabilir değerleri (I990ba, b/178348386) kabul etmediklerini yansıtacak şekilde güncellediler.
Yeni Durum Yöneticisi Hata Düzeltmeleri
mFocusedView
nedeniyle parçalarda oluşan bellek sızıntısı düzeltildi (Ib4e9e, b/179925887)- Gösterme/gizleme işlemlerini kullanırken parçalar artık düzgün bir şekilde
onCreateOptionsMenu
çağırıyor (I8bce8, b/180255554) - Parça yerleştirilmeden önce başlayan geçişlere sahip alt parçalar artık düzgün bir şekilde
RESUMED
özelliğine erişebilir (Ic11e6, b/180825150) <fragment>
etiketi kullanılarak şişirilen parçalar artık her zamanRESUMED
(I452ac, (I9fa49) haline gelir
Bağımlılık Güncellemeleri
- 1.3.1 bölümü,
1.2.1
Etkinliğine bağlıdır. (I557b9)
Sürüm 1.3.0
10 Şubat 2021
androidx.fragment:fragment:1.3.0
, androidx.fragment:fragment-ktx:1.3.0
ve androidx.fragment:fragment-testing:1.3.0
yayınlandı. 1.3.0 sürümü bu kayıtları içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
- Yeni Durum Yöneticisi:
FragmentManager
ürününün dahili öğelerinin önemli ölçüde yeniden yazılması; yaşam döngüsü olaylarının, animasyonların ve geçişlerin gönderilmesi ve ertelenmiş parçaların işlenme şekliyle ilgili çok sayıda sorunu düzeltti. Etkinlik Sonucu API'sı Entegrasyonu:
1.2.0
Etkinliği'ndestartActivityForResult()
+onActivityResult()
ve Fragment'ınızdaki yöntemleri geçersiz kılmadanrequestPermissions()
+onRequestPermissionsResult()
akışlarını işlemek için bu akışların test edilmesi için kancalar sağlayanActivityResultRegistry
API desteği eklendi. Güncellenen Etkinlikten Sonuç Alma konusuna bakı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 bir dizi sorun düzeltilmiştir.FragmentActivity
veyaAppCompatActivity
'da Activity Result API'lerini kullanmak için Fragment 1.3.0 sürümüne geçmeniz gerekir.
- Bu sürümde, geçersiz istek kodları ve Activity Result API'nin önceki
Fragment Result API:
FragmentManager
'da yeni API'ler aracılığıyla sonuçları iki parça arasında geçirme desteği eklendi. Bu yöntem, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragmentler ve parçalar için çalışır ve sonuçların yalnızca Parçanıza en azSTARTED
olduğunda gönderilmesini sağlar. Hedef parça API'leri kullanımdan kaldırılmış ve yerini bu yeni API'ler almıştır. Fragment Result API'yi kullanarak sonuçları alma konusuna bakın.FragmentOnAttachListener
:FragmentActivity
veFragment
içinonAttachFragment()
geri çağırma desteği sonlandırıldı. Daha esnek bir alternatif sunmak amacıyla yeni birFragmentOnAttachListener
eklendi. BöyleceonAttachFragment()
yetkisini, ayrı, test edilebilir dinleyicilere ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara işleyici ekleme konusunda destek alabilirsiniz.FragmentScenario
İyileştirmeler:fragment-testing
yapısındakiFragmentScenario
sınıfı Kotlin'de yeniden yazıldı ve çeşitli iyileştirmeler yapıldı:FragmentScenario
,moveToState()
uygulamasını uygulamak için artıksetMaxLifecycle()
kullanıyor. Böylece tüm API düzeylerinde tutarlı davranış sağlanır ve Fragment'ın durumu temel Etkinlikten ayrılır.FragmentScenario
artık her birLifecycle.State
öğesine ilk kez geçmeden önce parçanın durumunun doğrulanmasını desteklemek için ilkLifecycle.State
ayarlamayı destekliyor.- Artık
onFragment
içinFragmentScenario
API'nin, Kotlin'in yeniden düzenlenmiş uzantı yöntemiwithFragment
biçiminde olup bir değer döndürmenizi sağlayan bir alternatifi bulunmaktadır. Söz konusu blokta ortaya çıkan istisnaları tekrar kaldırır.
ViewTree
Desteği:Fragment
artık Yaşam Döngüsü2.3.0
ve Kayıtlı Durum1.1.0
'a eklenenViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
veViewTreeSavedStateRegistryOwner
API'lerini desteklemektedir. Böylece,Fragment
ViewModelStoreOwner
SavedStateRegistryOwner
LifecycleOwner
View
TRANSIT_
animasyon değişiklikleri: Parçanın varsayılan efektleri olanTRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
artıkAnimation
yerineAnimator
kullanıyor. Bu animatörleri oluşturmak için kullanılan kaynaklar artık gizlidir.setRetainInstance()
desteğinin sonlandırılması: Fragments'tekisetRetainInstance()
yöntemi kullanımdan kaldırılmıştır. ViewModels'in kullanıma sunulmasıyla birlikte geliştiriciler; Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek, durumu korumak için belirli bir API'ye sahiptir. Bu, geliştiricilerin korunmuş durumda olmayan normal bir Fragment kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece yaygın bir sızıntı kaynağını önlerken, tek bir oluşumun yararlı özelliklerini korur ve korunmuş durumun (yani, aldığıViewModel
oluşturucuyu veonCleared()
geri çağırmasını) korur.ViewPager 1 bağdaştırıcısının kullanımdan kaldırılması: ViewPager2
1.0.0
'ın kullanıma sunulmasıyla birlikte,ViewPager
ile etkileşimde bulunmak için kullanılanFragmentPagerAdapter
veFragmentStatePagerAdapter
sınıflarının desteği sonlandırılmıştır. ViewPager'dan ViewPager2'ye taşıma konusuna bakın.
Sürüm 1.3.0-rc02
27 Ocak 2021
androidx.fragment:fragment:1.3.0-rc02
, androidx.fragment:fragment-ktx:1.3.0-rc02
ve androidx.fragment:fragment-testing:1.3.0-rc02
yayınlandı. Sürüm 1.3.0-rc02 bu kayıtları içerir.
Hata Düzeltmeleri
- Yapılandırma değişikliğinden sonra üst
DialogFragment
öğesinin bir altDialogFragment
üzerinde görünmesiyle ilgili sorun düzeltildi; alt iletişim kutusu parçaları artık her zaman bir üst iletişim kutusu parçasının üzerinde görünüyor. (I30806, b/177439520) Animation
ilehide
işlemi yapmanın, gizlenen parçanın animasyonun sonunda yanıp sönmesine neden olmasıyla ilgili sorun düzeltildi. (I57e22, b/175417675)- Görünüm hiyerarşisi eklenmeden önce geçişleri olan parçalar artık düzgün şekilde
RESUMED
değerine ulaşır. (I1fc1d, b/177154873)
Yeni Durum Yöneticisi Hata Düzeltmeleri
- Fragment'ın
Lifecycle
görünümü artık,Lifecycle
öğesiCREATED
ulaşmadan önce Fragment'ın görünümünün kaldırıldığı durumları düzgün şekilde ele alıyor ve "no event down from INITIALIZED" (INITIALIZED sonrasından gelen olay yok) istisnalarını atlatıyor. (eda2bd, b/176138645) Animator
kullanan parçalar artıkFragmentContainerView
kullanılırken doğru sırada görünüyor. (Id9aa3, b/176089197)
Sürüm 1.3.0-rc01
16 Aralık 2020
androidx.fragment:fragment:1.3.0-rc01
, androidx.fragment:fragment-ktx:1.3.0-rc01
ve androidx.fragment:fragment-testing:1.3.0-rc01
yayınlandı. Sürüm 1.3.0-rc01 bu kayıtları içerir.
Hata Düzeltmeleri
onPrepareOptionsMenu()
artıkonCreateOptionsMenu()
ile aynı mantığı izler ve bir üst parçasetMenuVisibility(false)
çağırdığında artık çağrılmaz. (Id7de8, b/173203654)
Yeni Durum Yöneticisi Hata Düzeltmeleri
FragmentContainerView
öğesineAnimation
içeren bir parça eklendiğinde ve ardından ekleme işlemi bir pop işlemiyle kesintiye uğradığında yaşanan sızıntı ve görsel yapı düzeltildi. (I952d8)- Parçanın
onCreate()
veyaonViewCreated()
yöntemleri sırasında değiştirilmesi durumunda görünümün görünüm hiyerarşisinde kalması sorunu düzeltildi. (I8a7d5) - Devam ettirildiğinde odak artık Parça kök görünümlerine düzgün bir şekilde geri yüklenir. (Ifc84b)
- Pop ve değiştirme işlemlerinin aynı parçada birleştirilmesi, artık uygun animasyonları gösterir (Ifd4e4, b/170328691)
Sürüm 1.3.0-beta02
2 Aralık 2020
androidx.fragment:fragment:1.3.0-beta02
, androidx.fragment:fragment-ktx:1.3.0-beta02
ve androidx.fragment:fragment-testing:1.3.0-beta02
yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.
Yeni Özellikler
FragmentScenario
,FragmentAction
için Kotlin 1.4'ün işlevsel arayüzleri kullanılarak kaynak ve ikili uyumluluğu koruyarak tamamen Kotlin'e dönüştürüldü. (I19d31)
Davranış Değişiklikleri
class
veyaandroid:name
özelliğini kullanarak bir parçayı genişletmeyen FragmentContainerView'lar artıkFragmentActivity
dışında kullanılabilir. (Id4397, b/172266337)- Bir parçanın maksimum yaşam döngüsünü
DESTROYED
olarak ayarlamaya çalıştığınızdaIllegalArgumentException
(Ie7651, b/170765622) hatası oluşur. - Bir Fragment senaryosunu
DESTROYED
durumuyla başlatmak artıkIllegalArgumentException
hatasına neden olacaktır (I73590, b/170765622)
Yeni Durum Yöneticisi Hata Düzeltmeleri
Animator
veyaTRANSIT_FRAGMENT_
seçeneklerinden birini kullanan bir parça geçişini kesintiye uğratmanız durumunda görünümün son durumuna ulaşmaması sorunu düzeltildi. (I92426, b/169874632)- Çıkışı
Animation
olan parçaların düzgün şekilde yok edilmesini engelleyen bir sorun düzeltildi. (I83d65) - Efektleri tersine çevrilmiş olan parçalardan çıkılması artık doğru bir şekilde iptal edilir ve uygun giriş efektiyle yeniden başlatılır. (I62226, b/167092035)
hide()
çıkışınınAnimator
çıkışının çalışmamasına neden olan sorun düzeltildi. (Id7ffe)- Parçalar artık ertelendiğinde ve hemen başladığında düzgün bir şekilde görünüyor. (Ie713b, b/170022857)
- Bir animasyon sırasında odaklanılan görünümünü kaldıran parçalar, artık
RESUMED
değerine (I38c65, b/172925703) ulaştığında odağı ayrılmış görünüme geri yüklemeye çalışmayacaktır.
Harici Katkı
FragmentFactory
artık farklıClassLoader
örnekleri için parça sınıflarını ayrı ayrı önbelleğe alıyor. Teşekkürler Simon Schiller. (#87, b/113886460)
Sürüm 1.3.0-beta01
1 Ekim 2020
androidx.fragment:fragment:1.3.0-beta01
, androidx.fragment:fragment-ktx:1.3.0-beta01
ve androidx.fragment:fragment-testing:1.3.0-beta01
yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Parça
CREATED
konumuna taşınmadığı sürecesetMaxLifecycle()
artıkLifecycle
durumunuINITIALIZING
olarak ayarlamayı destekliyor. (b/159662173)
API Değişiklikleri
- Kotlin 1.4'ü kullanmak için Androidx'i yükseltin (Id6471, b/165307851, b/165300826)
Davranış Değişiklikleri
- Parça kaynak dosyaları doğru şekilde gizli hale getirildi. (aosp/1425237)
Hata Düzeltmeleri
<fragment>
etiketi kullanılarak şişirilen parçalar artık "STARTED"e (I02f4c) geçmeden önce görünümleri bir kapsayıcıya eklenene kadar düzgün bir şekilde bekleyecek- Görünür olan ve daha sonra
setMaxLifecycle()
ileCREATED
arasında olan parçalar artık çıkış efektlerini düzgün bir şekilde çalıştırıyor. (b/165822335) - Arka yığına eklenmemiş ayrılmış bir parçanın kaldırılması artık bellek sızıntısına neden olmaz. Nicklas Ansman Giertz'in izniyle! (b/166489383)
- Etkin parçalar artık her zaman boş olmayan bir
FragmentManager
değerine sahip olacak ve null olmayanFragmentManager
içeren parçalar her zaman etkin olarak kabul edilecektir. (aosp/1422346) - Parça varsayılan efektleri
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
, artıkAnimation
yerineAnimator
kullanıyor. (b/166155034)
Yeni Durum Yöneticisi Hata Düzeltmeleri
- Artık parçalar animasyonlarına başlamadan hemen önce görünüm odağı durumlarını düzgün bir şekilde geri yükler. (Icc256)
- Yalnızca paylaşılan öğe geçişi olan parçalar özel efektlerini düzgün şekilde tamamlar, yani nihai durumuna geçer (Iaebc7, b/166658128)
- Parçalı görünümler artık kaldırılmadan önce her zaman container'dan kaldırılıyor. (Id5876)
- Yeni durum yöneticisi artık giren görünümü eklemeden önce mevcut parça görünümünü tutarlı bir şekilde kaldırıyor. (I41a6e)
- Bir parça görünümünün görünürlüğünde yapılan açık değişiklikler, artık yeni durum yöneticisi tarafından dikkate alınıyor. Bu, animasyon başlamadan önce giriş parçasının görünümünü
INVISIBLE
değerine ayarlarsanız gerçekte görünmez olarak kalacağı anlamına gelir. (b/164481490) - Parçalar artık
Animations
yerineAnimators
önceliğine sahip. Yani her ikisini de içeren bir parça yalnızcaAnimator
öğesini çalıştırır veAnimation
öğesini yoksayar. (b/167579557) - Yeni durum yöneticisi artık animasyonlar girerken 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 boş ekran ortaya çıkar. (b/167259187, b/167092035, b/168442830)
Sürüm 1.3.0-alpha08
19 Ağustos 2020
androidx.fragment:fragment:1.3.0-alpha08
, androidx.fragment:fragment-ktx:1.3.0-alpha08
ve androidx.fragment:fragment-testing:1.3.0-alpha08
yayınlandı. Sürüm 1.3.0-alpha08 bu kayıtları içerir.
Yeni Durum Yöneticisi
Bu sürümde, FragmentManager
platformu dahili durum yönetiminde kapsamlı bir yeniden düzenleme yer alır. Bu değişiklik yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin dağıtımını ve ertelenen işlemlerin işlenme şeklini etkiler. Bu ayar varsayılan olarak etkindir. Daha fazla ayrıntı için Fragments: Rebuilding the Internals blog yayınına bakın. (b/139536619, b/147749580)
- FragmentManager'ın yeni durum yöneticisini kullanıp kullanmadığını kontrol etmek için
FragmentManager.enableNewStateManager(boolean)
öğesindeki deneysel bir API kullanılabilir. (I7b6ee)
Aşağıdaki sorunlar yalnızca yeni durum yöneticisi kullanılırken düzeltilir:
replace
işleminin önceki parçası, yeni parça başlatılmadan önce doğru şekilde durdurulmuştur. (b/161654580)- Parçalar artık aynı parçalarda birden fazla rekabet eden animasyonu engelleyerek, bir
Animation
öğesinin tümTransition
efektlerini geçersiz kılacağı veya bağımsız bir parçada birAnimator
ileTransition
öğesinin birlikte çalışacağı durumları önlüyor. (b/149569323) - Artık yalnızca son giren parça ve çıkan ilk parça yerine, giren ve çıkan tüm parçalar için
enterTransition
veexitTranstion
çalıştırılır. (b/149344150) - Ertelenen parçalar artık
CREATED
durumunda takılıp kalmaz, bunun yerine diğer parçalarla birlikteSTARTED
konumuna taşınır. (b/129035555) FragmentManager
ürününün, ertelenmiş bir yeniden sipariş edilen işlemle yeniden sipariş edilmemiş bir işlemi karıştırırken işlemleri sırada dışında yürütmesine neden olan sorun düzeltildi. (b/147297731)- Birden fazla parçanın aynı anda patlatılması, parçalar ertelenirken ara parçaların geçici olarak görünmesine neden olmayacak. (b/37140383)
FragmentManager
,onAttachFragment()
geri çağırması içindenfindFragmentById()
veyafindFragmentByTag()
çağrılırken artık doğru parçaları döndürüyor. (b/153082833)- Parçalar, yerine geçen parça ertelendiğinde, yok edilmekte olan parçalarda
onCreateView()
çağrısı yapmaz. (b/143915710) Transition
ve AndroidXTransition
örnekleri birleştirilmeye çalışıldığında görüntülenen hata mesajı artık geçersiz geçişe sahip parçadan bahsediyor. (b/155574969)
Davranış Değişiklikleri
- Artık bir parçanın
onCreate()
yaşam döngüsü yöntemindeActivityResultLauncher
üzerindelaunch()
çağırabilirsiniz. (b/161464278) onCreate()
tarihinden sonraregisterForActivityResult()
çağrıldığında, yapılandırma değişikliğinden sonra sessizce veri sağlanmaması yerine, buna izin verilmediğini belirten bir istisna oluşur. (b/162255449)FragmentActivity
,FragmentManager
durumunu geri yüklemek için artık1.2.0-alpha08
Etkinliğinde sunulanOnContextAvailableListener
API'sini kullanıyor.FragmentActivity
alt sınıflarına eklenen tüm işleyiciler, bu işleyiciden sonra çalıştırılır. (I513da)
Hata Düzeltmeleri
startIntentSenderForResult()
kullanılırken geçirilenActivityOptions
politikası artık dikkate alınıyor. (b/162247961)
Bilinen Sorun
- Yeni durum yöneticisini kullanırken parçanın kök görünümünün
onViewCreated()
tarihinden sonra veonResume()
öncesinde doğrudan görünürlüğünü ayarlamak, ayarladığınız görünürlüğün, kök görünümün görünürlüğünü kontrol edenFragmentManager
tarafından geçersiz kılınmasına neden olur. Geçici bir çözüm olarak, parçanızın görünürlüğünü değiştirmek için her zamanhide()
veshow()
işlemlerini kullanmanız gerekir. (b/164481490)
Sürüm 1.3.0-alpha07
22 Temmuz 2020
androidx.fragment:fragment:1.3.0-alpha07
, androidx.fragment:fragment-ktx:1.3.0-alpha07
ve androidx.fragment:fragment-testing:1.3.0-alpha07
yayınlandı. Sürüm 1.3.0-alpha07 bu kayıtları içerir.
Yeni Özellikler
FragmentScenario
, artık Parçayı her zamanRESUMED
durumuna taşımak yerine ilk Yaşam Döngüsü durumununCREATED
,STARTED
veyaRESUMED
olarak ayarlanmasını destekler. (b/159662750)onFragment
FragmentScenario
API'sine, bir değer döndürmenizi sağlayan Kotlin yeniden yapılandırılmış uzantı yöntemiwithFragment
biçiminde bir alternatif eklendi. Söz konusu blokta ortaya çıkan istisnaları tekrar kaldırır. (b/158697631)
Davranış Değişiklikleri
FragmentScenario
,moveToState()
uygulamasını uygulamak için artıksetMaxLifecycle()
kullanıyor. Böylece tüm API düzeylerinde tutarlı davranış sağlanır ve Fragment'ın durumu temel Etkinlikten ayrılır. (b/156527405)ViewTreeSavedStateRegistryOwner
tarafından döndürülenSavedStateRegistryOwner
, artık parça görünümünün Yaşam Döngüsüne bağlıdır. Bu, parçanın görünümüyle aynı anda durumunun kaydedilmesini ve geri yüklenmesini sağlar. (b/158503763)
Hata Düzeltmeleri
- Parçalar artık
ViewCompat.requestApplyInsets()
çağrısı yapmadan önce parçanın görünümünün eklenmesini bekler. Böylece, inset isteğinin bırakıldığı durumlardan kaçınılır. (b/158095749) clearFragmentResultListener
çağrısı artık yaşam döngüsü gözlemcisini düzgün bir şekilde temizler. (b/159274993)
Sürüm 1.3.0-alpha06
10 Haziran 2020
androidx.fragment:fragment:1.3.0-alpha06
, androidx.fragment:fragment-ktx:1.3.0-alpha06
ve androidx.fragment:fragment-testing:1.3.0-alpha06
yayınlandı. 1.3.0-alpha06 sürümü bu kayıtları içerir.
Yeni Özellikler
FragmentActivity
veFragment
içinonAttachFragment()
geri çağırma desteği sonlandırıldı. Daha esnek bir alternatif sunmak amacıyla yeni birFragmentOnAttachListener
eklendi. Bu sayedeonAttachFragment()
yetkisini, ayrı ve test edilebilir dinleyicilere verebilir ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara dinleyici ekleme desteğinden yararlanabilirsiniz. (I06d3d)
Hata Düzeltmeleri
- Üst parçaların görüntüleme durumu artık alt parçalarından önce geri yüklenir.
DialogFragment
, alt parça olarak başka birDialogFragment
gösterdiğinde yapılandırma değişikliğinden sonra ortaya çıkan görsel sıralama sorunu düzeltildi. (b/157195715) UseRequireInsteadOfGet
Lint denetiminin,?.
ve!!
operatörlerinin zincirleme kullanımlarını doğru şekilde işlememesi sorunu düzeltildi. (b/157677616)
Sürüm 1.3.0-alpha05
20 Mayıs 2020
androidx.fragment:fragment:1.3.0-alpha05
, androidx.fragment:fragment-ktx:1.3.0-alpha05
ve androidx.fragment:fragment-testing:1.3.0-alpha05
yayınlandı. Sürüm 1.3.0-alpha05 bu kayıtları içerir.
Yeni Özellikler
Fragment
içindeView
kullanılırken2.3.0-alpha03
Yaşam Döngüsü'ndenViewTreeViewModelStoreOwner
ve KayıtlıState1.1.0-alpha01
'tenViewTreeSavedStateRegistryOwner
için destek eklendi. (aosp/1297993, aosp/1300264)
API Değişiklikleri
setFragmentResult()
vesetFragmentResultListener()
API'leri artık sırasıyla boş olmayanBundle
veFragmentResultListener
alıyor. Önceden ayarlanmış bir sonucu veya işleyiciyi açık bir şekilde temizlemek için yeniclearFragmentResult()
veclearFragmentResultListener()
yöntemlerini kullanın. (b/155416778)- Lambda alan
setFragmentResultListener()
Kotlin uzantıları artıkinline
olarak işaretlendi. (b/155323404)
Davranış Değişiklikleri
Fragment
üzerindeki daha önce kullanımdan kaldırılanstartActivityForResult()
,startIntentSenderForResult()
verequestPermissions
artık dahili olarakActivityResultRegistry
kullanmaktadır. Böylece, bu API'leri kullanırken istek kodlarınız için yalnızca alt bitlerin (0xFFFF
'ın altında) kullanılmasına ilişkin kısıtlama kaldırılacaktır. (b/155518741)
Belge Güncellemeleri
- Varsayılan
FragmentFactory
kullanılırken alt sınıflarınızın bağımsız değişken oluşturucudan çağrılması gerektiğini netleştirmek içinFragment(@LayoutRes int)
veDialogFragment(@LayoutRes int)
kurucularıyla ilgili dokümanlar genişletildi. (b/153042497)
Sürüm 1.3.0-alpha04
29 Nisan 2020
androidx.fragment:fragment:1.3.0-alpha04
, androidx.fragment:fragment-ktx:1.3.0-alpha04
ve androidx.fragment:fragment-testing:1.3.0-alpha04
yayınlandı. 1.3.0-alpha04 sürümü bu kayıtları içerir.
Yeni Özellikler
FragmentManager
üzerindeki yeni API'ler aracılığıyla sonuçları iki parça arasında geçirme desteği eklendi. Bu yöntem, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragmentler ve parçalar için çalışır ve sonuçların yalnızca Parçanıza en azSTARTED
olduğunda gönderilmesini sağlar. (b/149787344)
API Değişiklikleri
- Hedef parça API'leri kullanımdan kaldırıldı. Parçalar arasında veri aktarmak için bunun yerine yeni Fragment Result API'leri kullanılmalıdır. (b/149787344)
- Fragment'teki
startActivityForResult()
/onActivityResult()
verequestPermissions()
/onRequestPermissionsResult()
API'lerinin desteği sonlandırıldı. Lütfen Etkinlik Sonucu API'lerini kullanın. (aosp/1290887) 1.2.0-alpha04
Etkinliği'ndeki kırıcı değişiklik:prepareCall()
yöntemiregisterForActivityResult()
olarak yeniden adlandırıldı. (aosp/1278717)
Hata Düzeltmeleri
- Parçanın
getViewLifecycleOwner()
işlevi,onSaveInstanceState()
çağrılmadan önce durdurulur. Bu, parçanın yaşam döngüsünün davranışını yansıtır. (b/154645875) - Bir parçada
setMenuVisibility(false)
çağrısı, artık alt parçaları tarafından sağlanan menülerin görünürlüğünü doğru bir şekilde değiştiriyor. (b/153593580) FragmentContainerView
ileDialogFragment
görünüm hiyerarşisine parça eklenirken oluşanillegalStateException
düzeltildi. (b/154366601)- Parçalar üzerindeki
getDefaultViewModelProviderFactory()
yöntemi, parçalarınızı bir etkinliğin dışında barındırırken artık kilitlenmez. (b/153762914)
Sürüm 1.3.0-alpha03
1 Nisan 2020
androidx.fragment:fragment:1.3.0-alpha03
, androidx.fragment:fragment-ktx:1.3.0-alpha03
ve androidx.fragment:fragment-testing:1.3.0-alpha03
yayınlandı. Sürüm 1.3.0-alpha03 bu kaydetmeleri içerir.
API Değişiklikleri
Fragment
üzerindekiprepareCall
yöntemleri artıkfinal
olarak ayarlandı. (b/152439361)
Hata Düzeltmeleri
BottomSheetDialogFragment
kullanılırken Parça1.3.0-alpha02
'da ortaya çıkan bir regresyon düzeltildi. (b/151652127, aosp/1263328, aosp/1265163)- Yapılandırma değişikliğinden sonra bir parçadan
prepareCall
kullanılırken yaşanan kilitlenme düzeltildi. (b/152137004) setTargetFragment()
kullanılırken paylaşılan öğe ve çıkış geçişlerinin yok sayılmasına neden olan bir sorun düzeltildi. (b/152023196)- Parçadan
1.2.4
: Fragment ProGuard kuralları, saklanan parçaların kod karartılmasına izin verecek şekilde güncellendi. (b/151605338) - Parça
1.2.4
'dan:DialogFragment
sınıflarında yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğu içinFragmentLiveDataObserve
Lint kuralı devre dışı bırakıldı. Bu sayede,observe
çağrısındathis
veyaviewLifecycleOwner
kullanılabilir. (b/151765086)
Bağımlılık Değişiklikleri
- Parçalar,
1.2.0-alpha02
Etkinliği'nde sunulan Activity Result API'de önemli iyileştirmeler içeren1.2.0-alpha03
etkinliğine bağlıdır.
Sürüm 1.3.0-alpha02
18 Mart 2020
androidx.fragment:fragment:1.3.0-alpha02
, androidx.fragment:fragment-ktx:1.3.0-alpha02
ve androidx.fragment:fragment-testing:1.3.0-alpha02
yayınlandı. 1.3.0-alpha02 sürümü bu kayıtları içerir.
Yeni Özellikler
1.2.0-alpha02
Etkinliği'nde,startActivityForResult()
+onActivityResult()
akışlarının yanı sıra Fragment'ınızdaki yöntemleri geçersiz kılmadanrequestPermissions()
+onRequestPermissionsResult()
akışlarının işlenmesi için1.2.0-alpha02
etkinliğinde sunulanActivityResultRegistry
API desteği eklendi. Ayrıca, bu akışları test etmek için kancalar sağladık. Güncellenen Etkinlikten Sonuç Alma konusuna bakın. (b/125158199)
API Değişiklikleri
DialogFragment
artıkonCreateView()
öğesinin varsayılan olarak genişletilmesi gereken düzeni belirten@LayoutRes
alan bir kurucu sağlıyor. (b/150327080)onActivityCreated()
yöntemi kullanımdan kaldırılmıştır. Parçanın görünümüne dokunan kodonViewCreated()
içinde (onActivityCreated()
hemen önce çağrılır) ve diğer başlatma koduonCreate()
içinde yapılmalıdır. Özellikle etkinliğinonCreate()
işlemi tamamlandığında geri aranmak için etkinliğinonAttach()
içindeLifecycle
öğesine birLifeCycleObserver
kaydı olmalı veonCreate()
geri araması alındığında bu öğe kaldırılmalıdır. (b/144309266)
Hata Düzeltmeleri
- Parça
1.2.3
'dan:onCreateDialog()
içindengetLayoutInflater()
çağrılırkenStackOverflowError
hatasına neden olanDialogFragment
hatası düzeltildi. (b/117894767, aosp/1258664) - Parçadan
1.2.3
: Kullanılmayan Fragment sınıflarının çıkartılmasını sağlamak için Fragment'ın içerdiği ProGuard kurallarının kapsamı azaltıldı. (b/149665169) - Parça
1.2.3
'dan: Kotlin özellik adını gölgeleyen bir yerel değişken adı kullanıldığındaUseRequireInsteadOfGet
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ıkUnsupportedOperationException
bildirmiyor. (b/149707833)
Bilinen Sorunlar
BottomSheetDialogFragment
, iletişim kutusunu artık ekranda doğru şekilde konumlandırmıyor. (b/151652127)
Sürüm 1.3.0-alpha01
4 Mart 2020
androidx.fragment:fragment:1.3.0-alpha01
, androidx.fragment:fragment-ktx:1.3.0-alpha01
ve androidx.fragment:fragment-testing:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
- Yaşam Döngüsü
2.3.0-alpha01
'neViewTreeLifecycleOwner.get(View)
API'si için destek eklendi. Bu destek,onCreateView()
tarafından döndürülen Görünümler için ParçanınviewLifecycleOwner
değeriniLifecycleOwner
olarak döndürecek. (aosp/1182955)
API Değişiklikleri
- Parçalar üzerindeki
setRetainInstance()
yöntemi kullanımdan kaldırılmıştır. ViewModels'in kullanıma sunulmasıyla birlikte geliştiriciler; Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek, durumu korumak için belirli bir API'ye sahiptir. Bu, geliştiricilerin korunmuş durumda olmayan normal bir Fragment kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece yaygın bir sızıntı kaynağını önlerken, tek bir oluşumun yararlı özelliklerini korur ve korunmuş durumun (yani, aldığıViewModel
oluşturucuyu veonCleared()
geri çağırmasını) korur. (b/143911815) - ViewPager2
1.0.0
sürümünün yayınlanmasıyla birlikte,ViewPager
ile etkileşim kurmak için kullanılanFragmentPagerAdapter
veFragmentStatePagerAdapter
sınıflarının desteği sonlandırılmıştır. ViewPager'dan ViewPager2'ye taşıma konusuna bakın. (b/145132715)
Hata Düzeltmeleri
- Fragment ProGuard kuralları artık tüm
Fragment
örnekleri yerine yalnızca kullanılan varsayılan kurucularFragment
sınıflarını tutarak Fragment1.2.1
içinde başlatılan bir regresyonu düzeltiyor. (b/149665169 1.2.2
Parçası'na eklenenrequire___()
Lint kuralları, gölgelendirilmiş Kotlin özellik adlarıyla aynı adı paylaşan yerel değişkenlerde artık yanlış pozitif sonuç vermez (ör.view
). (b/149891163)FragmentContainerView
artık Android Studio'da düzen önizlemesini kullanırkenUnsupportedOperationException
hatası vermiyor. (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 edilmemesine neden olan sorun düzeltildi. (b/145832397)
Sürüm 1.2.5
Sürüm 1.2.5
10 Haziran 2020
androidx.fragment:fragment:1.2.5
, androidx.fragment:fragment-ktx:1.2.5
ve androidx.fragment:fragment-testing:1.2.5
yayınlandı. 1.2.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Parçanın
getViewLifecycleOwner()
işlevi,onSaveInstanceState()
çağrılmadan önce durdurulur. Bu, parçanın yaşam döngüsünün davranışını yansıtır. Bu özellik daha önce1.3.0-alpha04
Parçasında yayınlandı. (b/154645875) - Bir parçada
setMenuVisibility(false)
çağrısı, artık alt parçaları tarafından sağlanan menülerin görünürlüğünü doğru bir şekilde değiştiriyor. Bu özellik daha önce1.3.0-alpha04
Parçasında yayınlandı. (b/153593580)
Sürüm 1.2.4
Sürüm 1.2.4
1 Nisan 2020
androidx.fragment:fragment:1.2.4
, androidx.fragment:fragment-ktx:1.2.4
ve androidx.fragment:fragment-testing:1.2.4
yayınlandı. Sürüm 1.2.4 bu kayıtları içerir.
Hata Düzeltmeleri
- Saklanan parçaların kod karartılmasına izin vermek için Fragment ProGuard kuralları güncellendi. (b/151605338)
DialogFragment
sınıflarında yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğundanFragmentLiveDataObserve
Lint kuralı devre dışı bırakıldı. Bu sayede,observe
çağrısındathis
veyaviewLifecycleOwner
kullanılabilir. (b/151765086)
Sürüm 1.2.3
Sürüm 1.2.3
18 Mart 2020
androidx.fragment:fragment:1.2.3
, androidx.fragment:fragment-ktx:1.2.3
ve androidx.fragment:fragment-testing:1.2.3
yayınlandı. 1.2.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
onCreateDialog()
içindengetLayoutInflater()
çağrılırkenStackOverflowError
hatasına neden olanDialogFragment
hatası düzeltildi. (b/117894767, aosp/1258665)- Kullanılmayan Fragment sınıflarının kaldırılabilmesini sağlamak için Fragment'ın dahil edilen ProGuard kurallarının kapsamı azaltıldı. (b/149665169)
- Kotlin özellik adını gölgeleyen bir yerel değişken adı kullanıldığında
UseRequireInsteadOfGet
Lint kontrolündeki yanlış pozitifler düzeltildi. (b/149891163) FragmentContainerView
, düzen önizlemesinde yanlış oluşturucuyu kullandığı için artık birUnsupportedOperationException
etiketi vermiyor. (b/149707833)
Sürüm 1.2.2
Sürüm 1.2.2
19 Şubat 2020
androidx.fragment:fragment:1.2.2
, androidx.fragment:fragment-ktx:1.2.2
ve androidx.fragment:fragment-testing:1.2.2
yayınlandı. 1.2.2 sürümü bu kayıtları içerir.
Yeni Lint kontrolleri
- Lint;
onCreateView()
,onViewCreated()
veonActivityCreated()
içindeOnBackPressedDispatcher
telefonlarını aramak içinLifecycleOwner
olarakviewLifecycleOwner
kullanılmasını öneriyor. (b/142117657) fragment-testing
yapısını kullanırken doğrudebugImplementation
öğesini kullandığınızı onaylayan yeni bir Lint denetimi eklendi. (b/141500106)- Hem
get
hem derequire
eşdeğeri içeren tüm Fragment API'lerinde, parçalar artık daha açıklayıcı hata mesajları içincheckNotNull(get___())
,requireNonNull(get___())
veyaget___()!!
yerine ilişkilirequire___()
yöntemlerinin kullanılmasını önermektedir. (aosp/1202883)
Hata Düzeltmeleri
- Fragment ProGuard dosyaları, R8 uyarılarını önleyecek şekilde düzeltildi (b/148963981)
observe
kullanılırkenviewLifecycleOwner
kullanılmasını öneren mevcut Lint kontrolü,observe
livedata-ktx
uzantı yöntemi sürümünü de işlemek için iyileştirildi. (b/148996309)- Çoğu Lint denetiminin biçimlendirmesi düzeltildi (aosp/1157012)
Harici katkılar
- Slack adına
require___()
Lint kontrollerine katkıda bulunduğunuz için Zac Sweers'e teşekkür ederiz. (aosp/1202883)
Sürüm 1.2.1
Sürüm 1.2.1
5 Şubat 2020
androidx.fragment:fragment:1.2.1
, androidx.fragment:fragment-ktx:1.2.1
ve androidx.fragment:fragment-testing:1.2.1
yayınlandı. Sürüm 1.2.1 bu kayıtları içerir.
Hata düzeltmeleri
add
vereplace
yöntemleriyle eklenen veClass
örneği (veya Kotlin'in yenidenlaştırılmış sürümlerini) alan parçalar için varsayılan oluşturucuları ProGuard tarafından korunuyor. (b/148181315)FragmentStatePagerAdapter
veFragmentPagerAdapter
,finishUpdate()
çalıştırılırkenFragmentManager
tarafından uygulanan istisnaları artık yakalamıyor. (aosp/1208711)FragmentManager.findFragment()
işlevinin<fragment>
etiketi aracılığıyla eklenen parçalarla çalışmaması sorunu düzeltildi. (b/147784323)<fragment>
etiketi kullanılarak şişirilen parçalar artık düzendeykenonCreate()
öncesinde her zamanonInflate()
çağrısı alıyor. (aosp/1215856)- Etkinlik zaten kaldırılmışsa
FragmentManager
örneğindetoString()
çağrıldığında artıkNullPointerException
gönderilmiyor. (b/148189412)
Bağımlılık değişiklikleri
1.2.1
parçaları artık Yaşam Döngüsü ViewModel KaydedilenDurumu2.2.0
'na bağlı.
Sürüm 1.2.0
Sürüm 1.2.0
22 Ocak 2020
androidx.fragment:fragment:1.2.0
, androidx.fragment:fragment-ktx:1.2.0
ve androidx.fragment:fragment-testing:1.2.0
yayınlandı. Sürüm 1.2.0 bu kayıtları içerir.
1.1.0 sürümünden sonraki önemli değişiklikler
- FragmentContainerView:
FragmentContainerView
, dinamik olarak eklenen Fragment'lar içinFrameLayout
veya diğer düzenlerin yerine kullanılması önemle tavsiye edilen kapsayıcıdır. Ayrıca,<fragment>
etiketiyle aynıclass
,android:name
ve isteğe bağlıandroid:tag
öğelerini destekler, ancak bu başlangıç parçasını eklemek için<fragment>
tarafından kullanılan özel kod yolu yerine normal birFragmentTransaction
kullanır. onDestroyView()
zamanlaması: Parçalar artıkonDestroyView()
çağrısı yapmadan önce çıkış animasyonlarının, çıkış çerçevesi geçişlerinin ve çıkış AndroidX geçişlerinin (Geçiş1.3.0
kullanılırken) tamamlanmasını bekliyor.- Sınıf tabanlı
add()
vereplace()
:FragmentTransaction
öğesineClass<? extends Fragment>
ve isteğe bağlıBundle
bağımsız değişkeni alan yeniadd()
vereplace()
yüklemeleri eklendi. Bu yöntemler, eklenecek Parçanın bir örneğini oluşturmak içinFragmentFactory
öğenizi kullanır. Yenidenlaştırılmış türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)
) kullanan Kotlin uzantıları dafragment-ktx
öğesine de eklendi. - Yaşam Döngüsü ViewModel KaydedilmişState Entegrasyonu:
SavedStateViewModelFactory
artıkby viewModels()
,by activityViewModels()
,ViewModelProvider
oluşturucu veyaViewModelProviders.of()
bir Fragment ile kullanılırken varsayılan fabrika olarak kullanılıyor. - Yeni Lint kontrolleri:
onCreateView()
,onViewCreated()
veyaonActivityCreated()
değerlerindenLiveData
gözlemleri sırasındagetViewLifecycleOwner()
kullandığınızdan emin olmanızı sağlayan yeni bir Lint kontrolü eklendi. getFragmentManager()
'un kullanımdan kaldırılması: Fragment'takigetFragmentManager()
verequireFragmentManager()
yöntemleri kullanımdan kaldırıldı ve bunların yerini tek birgetParentFragmentManager()
yöntemiyle aldı. Bu yöntem, Parçanın eklendiği boş olmayanFragmentManager
değerini döndürür (çağrı yapmanın güvenli olup olmadığını belirlemek içinisAdded()
kullanabilirsiniz).FragmentManager.enableDebugLogging()
desteğinin sonlandırılması: StatikFragmentManager.enableDebugLogging
yöntemi kullanımdan kaldırılmıştır. FragmentManager artıkFragmentManager
etiketi içinLog.isLoggable()
değerlerini dikkate alarak uygulamanızı yeniden derlemedenDEBUG
veyaVERBOSE
günlük kaydını etkinleştirmenize olanak tanıyor.
Bilinen Sorunlar
FragmentContainerView
üzerinde yalnızcaclass
veyaandroid:name
özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir koruma kuralı eklemeniz gerekir. (b/142601969)FragmentContainerView
ile XML'declass
veyaandroid:name
kullanarak birNavHostFragment
eklerken, EtkinliğinizinonCreate()
bölümündefindNavController()
kullanamazsınız. (b/142847973)
Sürüm 1.2.0-rc05
8 Ocak 2020
androidx.fragment:fragment:1.2.0-rc05
, androidx.fragment:fragment-ktx:1.2.0-rc05
ve androidx.fragment:fragment-testing:1.2.0-rc05
yayınlandı. Sürüm 1.2.0-rc05 bu kayıtları içerir.
Hata düzeltmeleri
<fragment>
etiketi kullanılırken1.2.0-rc04
parçasındaki regresyon, etkinliği kaldırma sırasındaonViewCreated()
ürününün yanlış çağrılmasına neden olan bir regresyon düzeltildi. (b/146290333)<fragment>
etiketiyle eklenen parçalar, düzende yalnızca bazen (yani yalnızca yatay düzeninizde) olsa bile yapılandırma olmayan öğeleri artık düzgün bir şekilde temizleniyor. Sonuç olarak bu Fragment'lar, örneklenmek ve hiçbir zaman yaşam döngüsü yönteminden geçmek yerine düzeninizde olmasa bile artık doğru şekildeCREATED
'e taşınıyor. (b/145769287)
Sürüm 1.2.0-rc04
18 Aralık 2019
androidx.fragment:fragment:1.2.0-rc04
, androidx.fragment:fragment-ktx:1.2.0-rc04
ve androidx.fragment:fragment-testing:1.2.0-rc04
yayınlandı. Sürüm 1.2.0-rc04 bu kayıtları içerir.
Hata düzeltmeleri
- Görsel sorunları önlemek amacıyla
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
için animasyonlar düzenlendi. (b/145468417)
Sürüm 1.2.0-rc03
4 Aralık 2019
androidx.fragment:fragment:1.2.0-rc03
, androidx.fragment:fragment-ktx:1.2.0-rc03
ve androidx.fragment:fragment-testing:1.2.0-rc03
yayınlandı. Sürüm 1.2.0-rc03 bu kayıtları içerir.
Hata düzeltmeleri
findFragmentById()
/findFragmentByTag()
tarafından çıkış animasyonları/geçişleri çalışırken kaldırılmış parçaların geri döndürülmesine neden olan istenmeyen davranış değişikliği düzeltildi. (b/143982969, aosp/1167585)- Alt öğeler, kapsayıcı etkinliği
onSaveInstanceState()
çağırdığında üst öğelerinden önce doğru şekilde durduruluyor. (b/144380645) - Gizli bir parça açıldıktan sonra Görünümlerin yanlış bir şekilde
INVISIBLE
olarak işaretlenmesine neden olan sorun düzeltildi. (b/70793925) - Parça paylaşılan öğe geçişleri artık döndürülen, ölçeklendirilen vb. Görünümler'i işliyor (b/142835261)
Belge Güncellemeleri
setUserVisibleHint()
tarihindeki desteğin sonlandırılmasıyla ilgili dokümanlara açıklık getirildi. (b/143897055)FragmentFactory
ayarlamanın alt FragmentManager'ları da etkileyeceğini daha iyi belirtmek içinsetFragmentFactory()
vegetFragmentFactory()
ile ilgili dokümanlar iyileştirildi. (aosp/1170095)
Bağımlılık değişiklikleri
- Parçalar artık Yaşam Döngüsü
2.2.0-rc03
, Yaşam Döngüsü ViewModel KayıtlıDurum1.0.0-rc03
ve Etkinlik1.1.0-rc03
'e bağlı.
Sürüm 1.2.0-rc02
7 Kasım 2019
androidx.fragment:fragment:1.2.0-rc02
, androidx.fragment:fragment-ktx:1.2.0-rc02
ve androidx.fragment:fragment-testing:1.2.0-rc02
yayınlandı. Sürüm 1.2.0-rc02 bu kayıtları içerir.
Hata düzeltmeleri
- Kotlin'de
onCreateView()
,onViewCreated()
veyaonActivityCreated()
öğesindenLiveData
öğesini gözlemlerkengetViewLifecycleOwner()
kullanımı için LintFix (Fragment1.2.0-rc01
ile kullanıma sunulmuştur) artıkgetViewLifecycleOwner()
yerine Kotlin özellik erişimi söz diziminiviewLifecycleOwner
kullanır. (aosp/1143821)
Sürüm 1.2.0-rc01
23 Ekim 2019
androidx.fragment:fragment:1.2.0-rc01
, androidx.fragment:fragment-ktx:1.2.0-rc01
ve androidx.fragment:fragment-testing:1.2.0-rc01
yayınlandı. Sürüm 1.2.0-rc01 bu kayıtları içerir.
Yeni özellikler
<fragment>
etiketinin işlevlerine benzer şekilde,FragmentContainerView
artıkandroid:name
veclass
özelliğini de desteklemektedir. (b/142722242)onCreateView()
,onViewCreated()
veyaonActivityCreated()
üzerindenLiveData
gözlemleri sırasındagetViewLifecycleOwner()
kullandığınızdan emin olmanızı sağlayan yeni bir Lint kontrolü eklendi. (b/137122478)
Hata düzeltmeleri
DialogFragment
üzerindekionDismiss
veonCancel
geri çağırmaları artık kendilerine geçirilenDialogInterface
değerinin null olmadığını ve yürütüldüğündegetDialog()
işlevinin null olmayan bir değer döndürdüğünü garanti eder. (b/141974033)FragmentContainerView
, artıkclass
veyaandroid:name
tarafından tanımlanan Parçayı enflasyonun bir parçası olarak ekleyerekfindFragmentById()
vefindFragmentByTag()
öğelerinin hemen sonra çalışmasını sağlar. (b/142520327)- Durumun kaydedilmesi nedeniyle
FragmentContainerView
öğesindeIllegalStateException
düzeltildi. (b/142580713) FragmentContainerView
sınıfı kod karartma yapıldığındaFragmentContainerView
öğesindekiUnsupportedOperationException
düzeltildi. (b/142657034)
Bilinen sorunlar
FragmentContainerView
üzerinde yalnızcaclass
veyaandroid:name
özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir koruma kuralı eklemeniz gerekir. Bu durumaapt2
aracılığıyla düzeltilene kadarFragmentContainerView
ürününe geçilmesini öneren Lint kuralını devre dışı bıraktık. (b/142601969)
Sürüm 1.2.0-beta02
11 Ekim 2019
androidx.fragment:fragment:1.2.0-beta02
, androidx.fragment:fragment-ktx:1.2.0-beta02
ve androidx.fragment:fragment-testing:1.2.0-beta02
yayınlandı. Sürüm 1.2.0-beta02 bu kayıtları içerir.
Hata düzeltmeleri
- Fragment'ın
onInflate()
öğesinin,FragmentContainerView
öğesinden uygun özellikleri alamamasına veNavHostFragment
gibi destek kayıtlarına zarar vermesine neden olan sorun düzeltildi. (b/142421837)
Sürüm 1.2.0-beta01
9 Ekim 2019
androidx.fragment:fragment:1.2.0-beta01
, androidx.fragment:fragment-ktx:1.2.0-beta01
ve androidx.fragment:fragment-testing:1.2.0-beta01
yayınlandı. Sürüm 1.2.0-beta01 bu kayıtları içerir.
Yeni özellikler
FragmentContainerView
, başlangıç parçası ekleme desteğinin yanı sıraandroid:name
ve isteğe bağlıandroid:tag
XML özellikleri için de destek sunar.<fragment>
etiketinden farklı olarakFragmentContainerView
, başlangıç parçasını eklemek için gelişmiş ayar altında normal birFragmentTransaction
kullanır. Bu sayede,FragmentContainerView
üzerinde daha fazlaFragmentTransaction
işlemi gerçekleştirilebilir ve düzen için Görünüm Bağlantısı kullanılabilir. (b/139830628, b/141177981)- Artık parçalarda,
<fragment>
değeriniFragmentContainerView
ile değiştirmek için hızlı bir düzeltme sunan Lint uyarısı bulunuyor. (b/139830056)
Hata düzeltmeleri
androidx.transition
kullanılırken karşılaşılanClassCastException
düzeltildi. (b/140680619)- Geçiş
1.3.0-beta01
kullanılırken Fragments artıkonDestroyView()
dağıtımını göndermeden önceandroidx.transition
geçişlerinin (sırasıyla Parça1.2.0-alpha03
ve Parça1.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 Fragments artık aynı kapsayıcıda yeni geçişlere / animasyonlara başlamadan önceandroidx.transition
geçişlerini düzgün bir şekilde iptal ediyor. (aosp/1119841) FragmentContainerView
kullanılırken Fragment'inizin kök görünümündeandroidx.transition
geçişlerini kullanırken API 17 ve önceki sürümlerdeki bir sorun düzeltildi. (b/140361893)fragment-testing
yapısı artık en son Espresso 3.2.0 ile uyumsuzluğu düzelten AndroidX Test1.2.0
uygulamasına bağlı. (b/139100149)- FragmentManager'da
Log.w
kullanımı kaldırıldı. (aosp/1126468)
Bilinen sorunlar
- Parçanın
onInflate()
özelliği,FragmentContainerView
ürününden uygun özellikleri alamıyor. Bu durum,NavHostFragment
gibi büyük/küçük harf kullanımına neden oluyor. (b/142421837)
Sürüm 1.2.0-alpha04
18 Eylül 2019
androidx.fragment:fragment:1.2.0-alpha04
, androidx.fragment-ktx:example:1.2.0-alpha04
ve androidx.fragment:fragment-testing:1.2.0-alpha04
yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.
API değişiklikleri
Fragment
üzerindekigetFragmentManager()
verequireFragmentManager()
yöntemleri kullanımdan kaldırıldı ve bunların yerini tek birgetParentFragmentManager()
yöntemi aldı. Bu yöntem, Parçanın eklendiği ve boş olmayanFragmentManager
değerini döndürür (çağrı yapmanın güvenli olup olmadığını belirlemek içinisAdded()
yöntemini kullanabilirsiniz). (b/140574496)- Statik
FragmentManager.enableDebugLogging
yöntemi kullanımdan kaldırıldı. FragmentManager artıkFragmentManager
etiketi içinLog.isLoggable()
değerlerini dikkate alarak uygulamanızı yeniden derlemedenDEBUG
veyaVERBOSE
günlük kaydını etkinleştirmenize olanak tanıyor. (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)
- Fragments'ın önceden
Activity.findViewById()
çağrısı yapmadığı haldeActivity.findViewById()
çağrısı yapmasına neden olan sorun düzeltildi. (aosp/1116431)
Sürüm 1.2.0-alpha03
5 Eylül 2019
androidx.fragment:fragment:1.2.0-alpha03
, androidx.fragment:fragment-ktx:1.2.0-alpha03
ve androidx.fragment:fragment-testing:1.2.0-alpha03
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
API değişiklikleri
FragmentContainerView
artıkfinal
. (b/140133091)
Hata düzeltmeleri
FragmentContainerView
artık parçaları arka yığından çıkarırken çizim sırasını düzgün bir şekilde tersine çeviriyor. (b/139104187)- Aynı anda hem bir parça popülasyon hem de yeni bir parça eklendiğinde yanlış animasyonun çalışması sorunu düzeltildi. (b/111659726)
- Artık parçalar,
onDestroyView()
öğesini göndermeden önce geçişlerin (Parça1.2.0-alpha02
'da düzeltilmiş olan animasyonlara ek olarak) tamamlanmasını bekliyor. (b/138741697)
Sürüm 1.2.0-alpha02
7 Ağustos 2019
androidx.fragment:fragment:1.2.0-alpha02
, androidx.fragment:fragment-ktx:1.2.0-alpha02
ve androidx.fragment:fragment-testing:11.2.0-alpha02
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
SavedStateViewModelFactory
artıkby viewModels()
,by activityViewModels()
,ViewModelProvider
oluşturucu veyaFragment
ileViewModelProviders.of()
kullanılırken varsayılan fabrika ayarıdır. (b/135716331)FragmentTransaction
üzerindesetTransition
ileTRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
,TRANSIT_FRAGMENT_FADE
kullanılırken varsayılan animasyonlar Android 10 cihazlardaki etkinlikler tarafından kullanılan animasyonlarla eşleşecek şekilde güncellendi. (aosp/1012812, aosp/1014730)
API değişiklikleri
- Animasyonun z sırası sorunlarını ve Fragment'lara gönderilen pencere eklerini düzelttiği için
FragmentContainerView
, dinamik olarak eklenen Fragment'lar için şiddetle önerilen kapsayıcı olarak,FrameLayout
kullanımının yerini alarak vb. sunar. (b/37036000, aosp/985243, b/136494650) - Bir parça tarafından şişirilmiş bir görünümden kapsayıcı Parçayı almak için statik
FragmentManager.findFragment(View)
yöntemi eklendi.fragment-ktx
dilinde bir Kotlin uzantısı da mevcut. (aosp/1090757) FragmentTransaction
öğesineClass<? extends Fragment>
ve isteğe bağlıBundle
bağımsız değişken alan yeniadd()
vereplace()
aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek Parçanın bir örneğini oluşturmak içinFragmentFactory
öğenizi kullanır. Yenidenlaştırılmış türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)
) kullanan Kotlin uzantısı dafragment-ktx
öğesine eklendi. (b/126124987)Fragment
yaşam döngüsü geri çağırmasına@MainThread
ek açıklaması eklendi. (b/127272564)FragmentTransaction
veFragmentManager.BackStackEntry
üzerindeki içerik haritası başlığıyla ilgili API'lerin desteği sonlandırılmıştır. (b/138252944)FragmentTransaction
üzerindekisetTransitionStyle
yöntemi kullanımdan kaldırıldı. (aosp/1011537)FragmentManager
alanındaki yöntemlerin çoğu artıkabstract
değil.FragmentManager
öğesinin kendisiabstract
olarak kalır ve doğrudan örneklenmemeli veya genişletilmez. YalnızcagetSupportFragmentManager()
,getChildFragmentManager()
vb. üzerinden mevcut bir örneği almaya devam etmelisiniz.
Hata düzeltmeleri
- Parça
1.1.0-rc04
'dan: Parçalar artık Fragments'teki ertelenmiş geçişleri doğru şekilde iptal etmektedir. (b/138251858) - Parça
1.1.0-rc03
'da: Zaman aşımı süresi birden fazla olanpostponeEnterTransition()
çağrısının önceki zaman aşımlarının iptal edilmemesine neden olan sorun düzeltildi. (b/137797118) - Parça
1.1.0-rc02
'dan: Geçerli öğe kaldırılırkenFragmentPagerAdapter
veFragmentStatePagerAdapter
içinde meydana gelen kilitlenme düzeltildi. (b/137209870) - Artık parçalar
onDestroyView()
öğesini dağıtmadan önce animasyonların tamamlanmasını bekler. (b/136110528) - Alt parçalardan ve bunların alt öğelerinden 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şlerini kullanırken ve bir pop-up ekleme işlemini birleştirirken karşılaşılan
NullPointerException
düzeltildi. (b/120507394) - Robofactric testlerinde
FragmentPagerAdapter
veFragmentStatePagerAdapter
kullanılırkenIllegalStateException
'lere geçici çözüm eklendi. (b/137201343)
Sürüm 1.2.0-alpha01
2 Temmuz 2019
androidx.fragment:fragment:1.2.0-alpha01
, androidx.fragment:fragment-ktx:1.2.0-alpha01
ve androidx.fragment:fragment-testing:1.2.0-alpha01
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
- FragmentManager artık Fragment'ın görünümünü ekledikten sonra ve
onViewCreated()
çağrısından hemen öncerequestApplyInsets()
yöntemini çağırarak görünümünüzde her zaman doğru eklerin olmasını sağlar. (b/135945162)
Hata düzeltmeleri
replace()
tarihinden öncesetPrimaryNavigationFragment()
kullanan birFragmentTransaction
pop-up açılırkenNullPointerException
düzeltildi. (b/134673465)
Sürüm 1.1.0
Sürüm 1.1.0
5 Eylül 2019
androidx.fragment:fragment:1.1.0
, androidx.fragment:fragment-ktx:1.1.0
ve androidx.fragment:fragment-testing:1.1.0
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
1.0.0 sürümünden sonraki önemli değişiklikler
- parça testi:
fragment-testing
yapısı, bir parçayı izole olarak test etmek içinFragmentScenario
sınıfı sağlar. Daha ayrıntılı bilgi için Uygulamanızın parçalar dokümanlarını test etme bölümüne bakın. - FragmentFactory: Artık parça örneklerinin oluşturulmasını yönetmek için
FragmentManager
üzerinde birFragmentFactory
ayarlayabilirsiniz. Böylece, bağımsız değişkensiz oluşturucuya sahip olma katı gereksinimini ortadan kaldırır. - ViewModels için Kotlin Mülk Temsilcileri:
fragment-ktx
yapısı artık iki Kotlin mülkü temsilcisi içeriyor: bağımsız parçayla ilişkilendirilmiş ViewModel'lere erişmek içinby viewModels()
ve etkinlik kapsamındaki ViewModel'lere erişmek içinby activityViewModels()
. - Maksimum Yaşam Döngüsü: Artık
FragmentTransaction
üzerindesetMaxLifecycle()
yöntemini çağırarak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılmışsetUserVisibleHint()
ürününün yerini almıştır.FragmentPagerAdapter
veFragmentStatePagerAdapter
, yeni davranışa geçiş yapmanızı sağlayan yeni bir oluşturucuya sahip. - FragmentActivity LayoutId oluşturucu:
FragmentActivity
alt sınıfları artık isteğe bağlı olarakFragmentActivity
üzerinde,onCreate()
içindesetContentView()
çağrısına alternatif olarak içerik görünümü olarak ayarlanması gereken düzeni belirtenR.layout
kimliği alan bir oluşturucuya çağrıda bulunabilir. Bu durum, alt sınıfınızın bağımsız değişkensiz oluşturucuya sahip olma şartını değiştirmez. - Parça LayoutId oluşturucu:
Fragment
alt sınıfları artık isteğe bağlı olarakFragment
üzerindeR.layout
kimliği alan bir oluşturucuya çağrıda bulunabilir. Bu,onCreateView()
geçersiz kılmaya alternatif olarak bu parça için kullanılması gereken düzeni belirtir. Artırılmış düzen,onViewCreated()
içinde yapılandırılabilir. - Zaman aşımı ile ertele: Zaman aşımına uğrayan yeni bir
postponeEnterTransition()
aşırı yüklemesi eklendi.
Sürüm 1.1.0-rc04
7 Ağustos 2019
androidx.fragment:fragment:1.1.0-rc04
, androidx.fragment:fragment-ktx:1.1.0-rc04
ve androidx.fragment:fragment-testing:1.1.0-rc04
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
- Artık Parçalar'daki ertelenmiş geçişleri doğru şekilde iptal eden Parçalar hale getirilmiştir. (b/138251858)
Sürüm 1.1.0-rc03
19 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc03
, androidx.fragment:fragment-ktx:1.1.0-rc03
ve androidx.fragment:fragment-testing:1.1.0-rc03
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
postponeEnterTransition()
zaman aşımının birden fazla kez çağrılmasının, önceki zaman aşımlarının iptal edilmemesine neden olan sorun düzeltildi. (b/137797118)
Sürüm 1.1.0-rc02
17 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc02
, androidx.fragment:fragment-ktx:1.1.0-rc02
ve androidx.fragment-testing:fragment:1.1.0-rc02
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
- Mevcut öğe kaldırılırken
FragmentPagerAdapter
veFragmentStatePagerAdapter
arasındaki kilitlenme düzeltildi. (b/137209870)
Sürüm 1.1.0-rc01
2 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc01
, androidx.fragment:fragment-ktx:1.1.0-rc01
ve androidx.fragment:fragment-testing:1.1.0-rc01
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
- Parçalar artık geçiş çalışırken
show()
veyahide()
işlemlerini kullanırken görünürlüklerini düzgün şekilde güncelliyor. (b/133385058) replace()
tarihinden öncesetPrimaryNavigationFragment()
kullanan birFragmentTransaction
pop-up açılırkenNullPointerException
düzeltildi. (b/134673465)
Sürüm 1.1.0-beta01
5 Haziran 2019
androidx.fragment:fragment:1.1.0-beta01
, androidx.fragment:fragment-ktx:1.1.0-beta01
ve androidx.fragment:fragment-testing:1.1.0-beta01
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Hata düzeltmeleri
- İç içe yerleştirilmiş Fragment'lara yönelik
androidx.lifecycle.Lifecycle
geri çağırmaları (özellikleSTARTED
,RESUMED
,PAUSED
,STOPPED
veDESTROYED
ile ilgili olanlar) artık düzgün bir şekilde iç içe yerleştirilmiş. (b/133497591) - Bir Fragment'ın
onCreate()
öğesine kaydedilenOnBackPressedCallback
örnekleri, artık düzgün şekilde alt FragmentManager'a göre önceliklidir. (b/133175997) - Üst parçaları değiştirilirken alt parçalara artık animasyon uygulanmaz. (b/121017790)
animateLayoutChanges="true"
kullanılırken parça animasyonları ve geçişler artık yoksayılıyor, böylece Parçaların düzgün şekilde kaldırılmaması sorunu gideriliyor. (b/116257087)
Sürüm 1.1.0-alpha09
16 Mayıs 2019
androidx.fragment:fragment:1.1.0-alpha09
, androidx.fragment:fragment-ktx:1.1.0-alpha09
ve androidx.fragment:fragment-testing:1.1.0-alpha09
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
API değişiklikleri
- Birincil gezinme parçası değiştiğinde parçalar artık yeni bir
onPrimaryNavigationFragmentChanged(boolean)
yöntemini geri çağırıyor. aosp/960857
Hata düzeltmeleri
- Bir alt parça ile şişirilen menü öğeleri artık üst parça kaldırıldığında doğru şekilde kaldırılıyor. b/131581013
Sürüm 1.1.0-alpha08
7 Mayıs 2019
androidx.fragment:fragment:1.1.0-alpha08
, androidx.fragment:fragment-ktx:1.1.0-alpha08
ve androidx.fragment:fragment-testing:1.1.0-alpha08
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Bu sürüm, Tercihler 1.1.0-alpha01 ile 1.1.0-alpha04 arasındakilerle uyumlu değil. Parçaların bu sürümünü kullanırken lütfen Tercihler 1.1.0-alpha05 sürümüne yükseltin.
Yeni özellikler
- Zaman aşımı alan yeni bir
postponeEnterTransition()
aşırı yüklemesi eklendi. Bu sürenin ardından parça otomatik olarakstartPostponedEnterTransition()
b/120803208 değerini çağırır.
API değişiklikleri
- Zarar veren değişiklik: Önceden kullanımdan kaldırılan ve
Bundle
alanFragmentFactory
instantiate
yöntemi kaldırıldı. aosp/953856 - Zarar veren değişiklik:
FragmentPagerAdapter
veFragmentStatePagerAdapter
içinRESUME_ONLY_CURRENT_FRAGMENT
veUSE_SET_USER_VISIBLE_HINT
sabit değerleri, sırasıylaBEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
veBEHAVIOR_SET_USER_VISIBLE_HINT
olarak yeniden adlandırıldı. aosp/954782
Hata düzeltmeleri
- Yaşam döngüsü
setMaxLifecycle()
aracılığıyla sınırlanmış parçalar artık son durumlarına ulaşmadan devam ettirilmez. b/131557151 setMaxLifecycle(Lifecycle.State.CREATED)
kullanılırken Fragment'ların görünümleri düzgün bir şekilde kaldırılır. aosp/954180
Sürüm 1.1.0-alpha07
25 Nisan 2019
androidx.fragment:fragment:1.1.0-alpha07
, androidx.fragment:fragment-ktx:1.1.0-alpha07
ve androidx.fragment:fragment-testing:1.1.0-alpha07
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
- Artık
FragmentTransaction
üzerindesetMaxLifecycle()
yöntemini çağırarak bir Fragment için maksimum yaşam döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılmışsetUserVisibleHint()
ürününün yerini almıştır.FragmentPagerAdapter
veFragmentStatePagerAdapter
, yeni davranışa geçiş yapmanızı sağlayan yeni bir oluşturucuya sahip. (b/129780800)
API Değişiklikleri
FragmentScenario
üzerindekimoveToState(STARTED)
artık yalnızca API 24 ve üstü cihazlarda çağrılabilir. (b/129880016)
Davranış Değişiklikleri
- (b/129907905) nedeniyle, barındırma etkinliği yeniden oluşturulduğunda arka yığındaki parçalar
onCreateView()
için geri çağırma almaz.onCreateView()
, artık yalnızca parça görünür hale geldiğinde (yani, arka yığın başlatıldığında) çağrılır.
Hata düzeltmeleri
- XML'de
<fragment>
etiketi veFragmentActivity
ya daAppCompatActivity
oluşturucununcontentLayoutId
oluşturucusu kullanılırken yaşanan sorun düzeltildi. (b/129907905) - Bir yapılandırma değişikliğinden sonra arka yığındaki parçaların en az
CREATED
konumuna taşınmaması ve dolayısıyla, ViewModels ve alt saklanan parçaların düzgün şekilde atılmamasına neden olan sorun düzeltildi. (b/129593351) - Örnek durumu kaydedildikten sonra saklanan parçaların senkronizasyonunun bozulmasından kaynaklanan
restoreSaveState
kilitlenmesi düzeltildi. (b/130433793) (aosp/947824) FragmentManager
öğesinin bir arka yığını olsaydı parça yaşam döngüsüyle eklenenOnBackPressedCallback
öğesinin çağrılmamasıyla ilgili sorunlar düzeltildi. Daha ayrıntılı bilgi için androidx.activity 1.0.0-alpha07 adresine bakın. (aosp/948209)- Parçalar artık animasyonlar için
LAYER_TYPE_HARDWARE
öğesini zorunlu kılmaz. Özellikle bir donanım katmanı animasyonuna ihtiyacınız varsa lütfen bunu animasyonunuzun parçası olarak ayarlayın. (b/129486478)
Sürüm 1.1.0-alpha06
3 Nisan 2019
androidx.fragment:fragment:1.1.0-alpha06
, androidx.fragment:fragment-ktx:1.1.0-alpha06
ve androidx.fragment:fragment-testing:1.1.0-alpha06
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
- FragmentManager tarafından oluşturulan istisnalar artık iletiye Fragment’ın adını da dahil ediyor. (b/67759402)
API Değişiklikleri
Fragment
veFragmentActivity
artık@LayoutRes int
alanlı ikinci bir oluşturucu içeriyor. Bu, sınıfınıza daha önce gönderilen not ekleme davranışını@ContentView
ile değiştirir. Bu yaklaşım hem uygulama hem de kitaplık modüllerinde çalışır. (b/128352521)- FragmentActivity öğesinin
onActivityResult()
öğesi artık doğru şekilde@CallSuper
olarak işaretlendi. (b/127971684) - FragmentFactory'nin bağımsız değişken Paketi alan
instantiate
yönteminin desteği sonlandırılmıştır. Uygulamalar, Paket kabul etmeyen yeniinstantiate
aşırı yüklemesini kullanmalıdır. (b/128836103) FragmentScenario
yöntemlerine artık doğru şekilde@StyleRes
ek açıklaması eklendi. (aosp/924193)FragmentTabHost
desteği sonlandırıldı. (b/127971835)- FragmentActivity öğesinin
getThemedContext()
etiketi 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 bir regresyon düzeltildi. (b/129405432)
- Bir popBackStack+replace+popBackStack işlem serisinden 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
kurucularını kullanırken yaşanan 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
yayınlandı. Bu sürüme dahil edilen kaydetmelerin tam listesini burada bulabilirsiniz.
Yeni özellikler
@ContentView
ek açıklama araması artık önbelleğe alındı (b/123709449)
Davranış değişiklikleri
- Farklı bir FragmentManager'a eklenmiş bir Fragment ile
remove()
,hide()
,show()
,detach()
vesetPrimaryNavigationFragment()
çağrıldığında sessizce başarısız olmak yerine artık birIllegalStateException
hatası veriliyor (aosp/904301)
Hata düzeltmeleri
FragmentActivity
içinonNewIntent
artık@CallSuper
ile doğru şekilde işaretlendi (b/124120586)getDialog().dismiss()
veyagetDialog().cancel()
(b/126563750) kullanılırkenDialogFragment
onDismiss()
öğesinin iki kez çağrılmasına neden olan sorun düzeltildi.
Sürüm 1.1.0-alpha04
7 Şubat 2019
androidx.fragment:fragment 1.1.0-alpha04
, androidx.fragment:fragment-ktx 1.1.0-alpha04
ve androidx.fragment:fragment-testing 1.1.0-alpha04
yayınlandı.
Yeni özellikler
onCreateView()
politikasını 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. İlgili çalışmalarıonViewCreated()
uygulamasında görüntülemeniz önerilir. (aosp/837619)fragment-testing
artıkandroidx.test:core-ktx
1.1.0 kararlı sürümüne bağlıdır (b/121209673)- Parça barındırılan seçenekler menülerini (b/121126668) test etmek için artık
openActionBarOverflowOrOptionsMenu
öğesiniFragmentScenario
ile kullanabilirsiniz
API değişiklikleri
@NonNull Bundle
döndüren veyaIllegalStateException
veren birrequireArguments()
yöntemi eklendi (b/121196360)getLifecycle()
,getViewLifecycleOwner()
vegetViewLifecycleOwnerLiveData()
öğelerinin geçersiz kılınmayacağına ve gelecekteki bir sürümde nihai hale getirileceğine dair bir not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen bir özellik isteği gönderin. (aosp/880714)getViewModelStore()
öğesinin geçersiz kılınmaması gerektiğine ve gelecekteki bir sürümde kesinleştirileceğine dair bir 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 bir sorun giderildi. (aosp/887877) (aosp/889834)
Hata düzeltmeleri
null
öğesinisetTargetFragment()
içine geçirdiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)onDestroy()
içinde veya sonrasında hedef parçalarının bazen kullanılamaması sorunu düzeltildi. (b/122312935)- DialogFragment’ın onDismiss() artık
onDestroy()
öncesinde çağrıldı. (aosp/874133) (aosp/890734)
Sürüm 1.1.0-alpha03
17 Aralık 2018
Yeni özellikler
- Fragment artık
BundleSavedStateRegistryOwner
öğesini kullanıyor ve yeni yayınlanan KayıtlıState kitaplığına bağlıdır [aosp/824380] - [b/119050253] İçeren Etkinlikle ilişkilendirilmiş ViewModel'leri almak için
by activityViewModels
Kotlin mülk yetkilendirmesi eklendi by viewModels
Kotlin mülk yetkilendirmesi,ViewModelStoreOwner
öğesini almak için isteğe bağlı bir lambda yöntemini alacak şekilde genişletildi. Böylece üst parçayı veya başka bir özelViewModelStoreOwner
öğesinival viewModel: MyViewModel by viewModels(::requireParentFragment)
[b/119050253] gibi bir kodla iletebileceksiniz.
API değişiklikleri
FragmentScenario
artıkTheme.AppCompat
[b/119054431] gibi bir tema belirtmenize olanak tanıyor. Bu, zarar verici bir değişiklik.@NonNull View
döndüren veyaIllegalStateException
[b/120241368] gönderen birrequireView()
yöntemi eklendi@NonNull Fragment
döndüren veyaIllegalStateException
gönderen birrequireParentFragment()
yöntemi eklendi [b/112103783]
Hata düzeltmeleri
- LegalStateException: Başarısız kaydetme durumu b/120814739 düzeltildi
- Kayıtlı örnek durumundan geri yüklenen parçalar artık her zaman boş olmayan bir
Bundle
[b/119794496] alacak - Kaldırılan Fragmentler, 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ğinde geçmeye alternatif olarak Fragment yapısı için lambda kullanmanıza olanak tanıyor. (aosp/812913)
Hata düzeltmeleri
- Arka yığında iç içe yerleştirilmiş Fragment'lar kullanılırken oluşan Kuraldışı İstisna durumu düzeltildi (b/119256498)
FragmentScenario.recreate()
,FragmentFactory
(aosp/820540) ile kullanıldığında yaşanan kilitlenme düzeltildi- Parça kaldırıldıktan sonra hedef parçalarına erişilememesi sorunu düzeltildi (aosp/807634)
Sürüm 1.1.0-alpha01
5 Kasım 2018
Bu, fragment-testing
yapısının ve androidx.test:core API'lerinin üzerine derlenen FragmentScenario
uygulamasının ilk sürümüdür. Daha ayrıntılı bilgi için Parça testi dokümanlarına bakın.
Yeni özellikler
- Fragment'ları ayrı ayrı test etmek için yeni FragmentSenaryo sınıfı.
- Artık yeni Fragment örneklerinin nasıl örneklendiğini kontrol etmek için herhangi bir
FragmentManager
öğesinde birFragmentFactory
ayarlayabilirsiniz. - Bir Fragment'ten ViewModel'leri almak için yeni bir
by viewModels()
Kotlin mülkü temsilcisi eklendi. - Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık Fragment'ın
onStop()
öğesinde iptal ediliyor.
API değişiklikleri
- Fragment API yüzeyinde null değer ek açıklamaları önemli ölçüde genişletildi.
Hata düzeltmeleri
- Parça işlemlerinin LiveData içinden başarısız olmasına neden olan bir sorunu düzeltme (b/77944637)
Bilinen sorunlar
- Bir Fragment, FragmentManager'dan kaldırıldıktan sonra Target Fragment'lara erişilemez.
fragment-testing
, doğruandroidx.test:core:1.0.0
yerineandroidx.test:core:1.0.0-beta01
değerine bağlıdır.