Parça
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
17 Nisan 2024 | 1.6.2 | 1.7.0-rc02 | - | 1.8.0-alpha02 |
Bağımlılıkları bildirme
Fragment'e 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ın veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Modern
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 edinmek için Derleme bağımlılıkları ekleme konusuna bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun 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.8
Sürüm 1.8.0-alpha02
17 Nisan 2024
androidx.fragment:fragment-*:1.8.0-alpha02
yayınlandı. 1.8.0-alpha02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
1.7.0-rc02
Parçasından: Başka geçiş olmadan birsharedElement
ayarlamanın neden başarısız olacağını belirten günlükler eklendi. (Iec48e)- Parça
1.7.0-rc02
'da: Diğer tüm geçişlerin aranabilir olduğu işlemlere, aranamayan bir paylaşılan öğe eklendiğinde kilitlenme olmasına neden olan hata düzeltildi. Artık işlem doğru bir şekilde aranamaz olarak kabul edilecek. (I18ccd)
Sürüm 1.8.0-alpha01
3 Nisan 2024
androidx.fragment:fragment-*:1.8.0-alpha01
yayınlandı. 1.8.0-alpha01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Yeni
AndroidFragment
Composable
, Compose hiyerarşisine parça sınıfı adı aracılığıyla parça eklenmesine olanak tanır. Parçanın durumunu kaydetme ve geri yükleme işlemlerini otomatik olarak gerçekleştirir. Bu, AndroidViewBindingComposable
için doğrudan bir alternatif olarak kullanılabilir.(b/312895363, Icf841)
Belgelerdeki Değişiklikler
OnBackStackChangedListener
API'leriyle ilgili dokümanlar, ne zaman çağrıldıklarını ve nasıl kullanılmaları gerektiğini gösterecek şekilde güncellendi. (I0bfd9)
Bağımlılık güncellemesi
- Parça artık Profil Yükleyici 1.3.1 sürümüne bağlıdır.
Sürüm 1.7
Sürüm 1.7.0-rc02
17 Nisan 2024
androidx.fragment:fragment-*:1.7.0-rc02
yayınlandı. 1.7.0-rc02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Başka geçişler olmadan
sharedElement
ayarlamanın neden başarısız olacağını gösteren günlükler eklendi. (Iec48e) - Diğer tüm geçişlerin aranabilir olduğu işlemlere, aranamayan bir paylaşılan öğe eklendiğinde kilitlenme olmasına neden olan hata düzeltildi. Artık işlem doğru bir şekilde aranamaz olarak kabul edilecek. (I18ccd)
Sürüm 1.7.0-rc01
3 Nisan 2024
androidx.fragment:fragment-*:1.7.0-rc01
yayınlandı. 1.7.0-rc01 sürümü bu kayıtları içerir.
Bağımlılık güncellemesi
- Parça artık Profil Yükleyici 1.3.1 sürümüne bağlıdır.
Sürüm 1.7.0-beta01
20 Mart 2024
androidx.fragment:fragment-*:1.7.0-beta01
yayınlandı. 1.7.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Ana makinenin genel türünün boş değer atanabilirliği,
onGetHost()
döndürülen türünün boş değerleriyle eşleşecek şekildeFragmentHostCallback
artık Kotlin'de yazılmıştır. (I40af5)
Hata Düzeltmeleri
- Kapsayıcıda olmayan bir parçaya Tahmine Dayalı Geri hareketi uygulandığında, söz konusu parçanın hiçbir zaman kaldırılmaması sorunu giderildi. Artık Parça hemen son duruma taşınır. (Ida0d9)
- Tahmine dayalı geri hareketiyle gelen geçişleri kesintiye uğratmanın giriş görünümünü bozmasına ve boş bir ekran bırakmasına neden olan bir sorun düzeltildi. (Id3f22, b/319531491)
Sürüm 1.7.0-alfa10
7 Şubat 2024
androidx.fragment:fragment-*:1.7.0-alpha10
yayınlandı. Sürüm 1.7.0-alpha10 bu kayıtları içerir.
Hata Düzeltmeleri
- Önceki Fragment sürümünde,
Animator
veya AndroidX Geçişi için Fragment'ın Tahmine Dayalı Geri desteği kullanıldığındaaddOnBackStackChangedListener
aracılığıyla hiçFragmentManager.OnBackStackChangedListener
eklenmemişse Fragment'larınhandleOnBackProgressed
öğesindenNullPointerException
atması sorunu giderildi. (I7c835)
Sürüm 1.7.0-alpha09
24 Ocak 2024
androidx.fragment:fragment-*:1.7.0-alpha09
yayınlandı. Sürüm 1.7.0-alpha09 bu kayıtları içerir.
Parça Oluşturma Yapısı
Fragment tabanlı mimariden tamamen Compose tabanlı bir mimariye geçiş süreci devam eden uygulamaların desteklenmesine odaklanan yeni bir fragment-compose
yapısı oluşturuldu.
Bu yeni yapıda kullanıma sunulan ilk özellik, Fragment
üzerinde bir content
uzatma yöntemidir. Bu özellik, bağımsız bir Parçanın kullanıcı arayüzü için Oluşturma özelliğinin kullanımını kolaylaştırmak amacıyla sizin için bir ComposeView
oluşturup doğru ViewCompositionStrategy
değerini ayarlayarak çalışır. (561cb7, b/258046948)
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
// Write your @Composable content here
val viewModel: ExampleViewModel = viewModel()
// or extract it into a separate, testable method
ExampleComposable(viewModel)
}
}
Yeni Özellikler
FragmentManager.OnBackStackChangedListener()
artık tahmine dayalı geri ilerleme durumunu ve iptal edilen etkinlikleri almak için sırasıylaonBackStackChangeProgressed()
veonBackStackChangeCancelled()
sağlıyor. (214b87)
Bilinen Sorun
Animator
veya AndroidX Geçişi için Fragment'ın Tahmine Dayalı Geri Desteği kullanılırkenaddOnBackStackChangedListener
aracılığıyla hiçFragmentManager.OnBackStackChangedListener
eklenmemişse Fragment'larhandleOnBackProgressed
öğesinden birNullPointerException
atar. İşleyiciyi manuel olarak eklemek kilitlenmeyi atlatacaktır. Fragments'in bir sonraki sürümünde bunun için bir düzeltme sunulacaktır.
Sürüm 1.7.0-alpha08
10 Ocak 2024
androidx.fragment:fragment-*:1.7.0-alpha08
yayınlandı. Sürüm 1.7.0-alpha08 bu kayıtları içerir.
Temizleme
- Geçiş
1.5.0-alpha06
bölümünde düzeltilmiş olan Geçiş kitaplığı için geçici çözüm kaldırıldı. (I04356)
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ça
1.6.2
'dan: BirFragmentContainerView
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ı. 1.7.0-alpha06 sürümü bu kayıtları içerir.
Bağımlılık Güncellemesi
- Parçalar,
1.5.0-alpha04
Geçişi sırasında 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
- Parçalar artık Androidx Transitions kullanılırken Forecastive için geri destek sağlıyor. Böylece, tamamlanan hareketle işlemi uygulamaya veya iptal etmeye karar vermeden önce özel Androidx Geçişinizle önceki parçaya gitmek için geri hareketini kullanabilirsiniz. Bu özelliği etkinleştirmek için
1.5.0-alpha03
geçişine güvenmeniz gerekir. (Ib49b4, b/285175724)
Bilinen Sorunlar
- Şu anda, geçiş içeren bir geri hareketini bir kez iptal etmenizin ardından geri hareketini bir sonraki başlatmanızda geçişin çalıştırılamamasına ve sonuç olarak boş ekrana neden olması sorunu yaşanıyor. Bu durum, Transition kitaplığındaki bir sorundan kaynaklanıyor olabilir. (b/300157785). Bu sorunla karşılaşırsanız lütfen sorununuzu yeniden oluşturan bir örnek projeyle Fragment'e karşı sorun bildirin. Tahmine dayalı geri alma özelliğini, Etkinliğinizin
onCreate()
bölümündekiFragmentManager.enabledPredictiveBack(false)
öğesini kullanarak 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 getirememesine neden olan tahmine dayalı geri hareketi iptal edilirken yaşanan sorun düzeltildi. (I7cffe, b/297379023)
- Animasyonların Geçişlerle çalıştırılmasına izin verilen bir regresyon düzeltildi. (I59f36)
- Arka yığında son parçadan ikincisine doğru arka arkaya iki kez geri gitmeye çalışıldığında arka yığında son parçaya kadar arka arkaya iki kez geri gitmenin kilitlenmeye neden olduğu bir tahmin ile geri gitme sorunu giderildi. (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 geri 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 tamamlanmasına 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 Hareketlerle 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ı bekler. (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 Tahminli uygulama içi için 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, deneysel özelliğienablePredictiveBack()
kullanıpfalse
ileterek bu yeni davranışı devre dışı bırakabilirsiniz.
2.6.0
Sürüm 1.6
Sürüm 1.6.2
1 Kasım 2023
androidx.fragment:fragment-*:1.6.2
yayınlandı. 1.6.2 sürümü bu 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ıldığında, ü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.6.1
26 Temmuz 2023
androidx.fragment:fragment-*:1.6.1
yayınlandı. 1.6.1 sürümü 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 çoklu arka yığınlar 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ğine bağlıdır. Bu değişiklik, Kotlin kullanıcılarının Etkinliğe açık bir şekilde bağımlılık olmadan
ComponentDialog
paketinin kapsamını 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'dan sonraki önemli değişiklikler
Fragment
öğelerinin kayıtlı durumu tamamen özel kitaplık durumu (özelParcelable
sınıfları) ile geliştirici tarafından sağlanan durum arasında bölündü. Bu durum artık her zaman bir parçanın durumunun tam olarak nereden 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 gerçekleştirildikten 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ği ancak üst öğeninchildFragmentManager
öğesine eklenmediği durumları algılayan yeni birWrongNestedHierarchyViolation
ekledi.Intent
veyaIntentSender
alanFragment
veFragmentManager
API'lerine, null değer geçirilmesini önlemek için@NonNull
ile düzgün şekilde ek açıklamalar eklendi. Bu sayede boş değer, bu yöntemlerin çağırdığı ilgili Android çerçevesi API'lerini her zaman anında kilitleyebilir.DialogFragment
, artıkrequireComponentDialog()
API üzerinden temelComponentDialog
erişimi sağlar.- Parça artık Yaşam Döngüsüne
2.6.1
bağlıdır. - Parça artık SavedState
1.2.1
öğesine bağlıdır. - Parça artık ProfileInstaller
1.3.0
öğ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 sapma olması nedeniyle sürüm çakışmalarını önler
Sürüm 1.6.0-rc01
10 Mayıs 2023
androidx.fragment:fragment-*:1.6.0-rc01
yayınlandı. 1.6.0-rc01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Art arda birden fazla
startActivityForResult
isteği gönderildiğindeActivityResult
değerlerinin yanlış istek koduyla gönderilmesine neden olan sorun düzeltildi. (If0b9d, b/249519359) onBackStackChangeListener
geri çağırmalarının, arka yığını değiştirmemiş işlemlerle karıştırılması durumunda gerçekte arka yığını değiştirmeyen 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ı. 1.6.0-beta01 sürümü 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 çok işlem aynı parçayı içerse bile artık yalnızca bir parçayı tek seferde dağıtır. (Ic6b69)
Sürüm 1.6.0-alpha09
5 Nisan 2023
androidx.fragment:fragment-*:1.6.0-alpha09
yayınlandı. Sürüm 1.6.0-alpha09 bu kayıtları içerir.
API Değişiklikleri
DialogFragment
, artıkrequireComponentDialog()
API üzerinden temelComponentDialog
erişimi sağlar. (I022e3, b/234274777)commitNow()
,executePendingTransactions()
vepopBackStackImmediate()
API'lerine@MainThread
ek açıklaması eklendi. Böylece, artık çalışma zamanında başarısız olmayı beklemek yerine ana iş parçacığından çağrılmadıklarında tüm derleme hataları bildirecekler. (Ic9665, b/236538905)
Hata Düzeltmeleri
FragmentManager
ürününde, 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 ayrılmış bir parçaya hiçbir zaman iletilmemesini sağlar. (I66a76, b/273568280)
Hata Düzeltmeleri
1.5.6
Parçasında:Lifecycle
zatenSTARTED
ise ve bir sonuç zaten mevcutsasetFragmentResultListener
içindeclearFragmentResultListener
çağrısının çalışmaması sorunu giderildi. (If7458)
Bağımlılık Güncellemeleri
- Parça artık Yaşam Döngüsüne
2.6.1
bağlıdır. (586fe7) - Parça artık SavedState
1.2.1
öğesine bağlıdır. (078e4e) - 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 kayıtları içerir.
Hata Düzeltmeleri
- Parçada
1.5.6
: Menü öğeleri eklenmiş olsun veya olmasın, 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
- Artık
FragmentManager
öğeninonBackStackChangedListener
işlevindeki yenionBackStackChangedStarted
geri çağırması, 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ünde artık iki ek geri çağırma (onBackStackChangeStarted
veonBackStackChangeCommitted
) sunulmaktadır. Bu geri çağırma, ek bilgi sağlamak veFragmentManager
içinde geri yığın değişikliklerinin ne zaman gerçekleşeceğini kontrol etmek içindir. (Ib7ce5, b/238686802)
API Değişiklikleri
Intent
veyaIntentSender
alanFragment
veFragmentManager
API'lerine, boş değerin geçirilmesini önlemek için@NonNull
ile düzgün bir şekilde ek açıklama eklenmiştir. (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ği ancak üst öğeninchildFragmentManager
öğesine eklenmediği durumları algılayan yeni birWrongNestedHierarchyViolation
ekledi. (I72521, b/249299268)
Davranış Değişiklikleri
- Parçalar artık
SavedStateRegistry
durumlarınıonAttach()
tarihinden önce geri yükleyerek yukarı doğru tüm yaşam döngüsü yöntemlerinde kullanılabilir olmalarını sağlamaktadır. (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 sapması nedeniyle çakışmaları önler.(I8e534, b/128612536)
Hata Düzeltmeleri
1.5.5
Bölümünden: Artık parçalar,ViewModel
durumunu görüntüleme kaydı kaydedilen 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ğrısı yapması gerekecek. (I14798, b/238928865)
Hata Düzeltmeleri
- Parçaların her zaman doğru geri çağırmaları almasını sağlamak için yeni sağlayıcı geri çağırma arayüzlerinin (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) entegrasyonunun neden olduğu regresyonlar düzeltildi. (I9b380,I34581, (I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)
Sürüm 1.6.0-alpha02
24 Ağustos 2022
androidx.fragment:fragment:1.6.0-alpha02
, androidx.fragment:fragment-ktx:1.6.0-alpha02
ve androidx.fragment:fragment-testing:1.6.0-alpha02
yayınlandı. Sürüm 1.6.0-alpha02 bu kayıtları içerir.
Hata Düzeltmeleri
- Parçada
1.5.2
: Aynı anda birpopBackStack()
vereplace()
işlemini yürütmenin, çıkış parçalarının yanlışAnimation
/Animator
çalıştırmasına neden olabileceği bir sorun düzeltildi. (Ib1c07, b/214835303)
Sürüm 1.6.0-alpha01
27 Temmuz 2022
androidx.fragment:fragment:1.6.0-alpha01
, androidx.fragment:fragment-ktx:1.6.0-alpha01
ve androidx.fragment:fragment-testing:1.6.0-alpha01
yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.
Davranış Değişiklikleri
Fragment
öğelerinin kayıtlı durumu tamamen özel kitaplık durumu (özelParcelable
sınıfları) ile geliştirici tarafından sağlanan durum arasında bölündü. Bu durum artık her zaman bir parçanın durumunun tam olarak nereden kaynaklandığının belirlenmesine olanak tanıyan birBundle
içinde depolanır. (b/207158202)
Hata Düzeltmeleri
- Fragment
1.5.1
öğesinde: AGP 7.4 ile birlikte sunulan lint sürümünü kullanmanın, lint'in kilitlenmesine neden olduğuDialogFragmentCallbacksDetector
'deki bir regresyon düzeltildi. (b/237567009)
Bağımlılık güncellemesi
- Fragment
1.5.1
ürünü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ı. 1.5.7 sürümü 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
- Herhangi bir Parçanın kaldırılmasının, Menü öğeleri eklenmiş olsa da olmasa da etkinliğin menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
Lifecycle
zatenSTARTED
ise ve bir sonuç zaten mevcutsasetFragmentResultListener
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ı kaydedilen 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ılan 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
- Aynı anda
popBackStack()
vereplace()
işlemini yürütmenin, çıkış parçalarının yanlışAnimation
/Animator
çalıştırmasına neden olabileceği sorun düzeltildi. (Ib1c07, b/214835303)
Sürüm 1.5.1
27 Temmuz 2022
androidx.fragment:fragment:1.5.1
, androidx.fragment:fragment-ktx:1.5.1
ve androidx.fragment:fragment-testing:1.5.1
yayınlandı. Sürüm 1.5.1 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 olacağı bir
DialogFragmentCallbacksDetector
regresyonu düzeltildi. (b/237567009)
Bağımlılık güncellemesi
- Fragment kitaplığı artık Yaşam Döngüsüne
2.5.1
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'dan sonraki önemli değişiklikler
- CreationExtras Integration (Oluşturma Ekstraları Entegrasyonu) -
Fragment
, artık Lifecycle2.5.0
'ınCreationExtras
aracılığıyla durum bilgisizViewModelProvider.Factory
sağlayabilir. - Bileşen İletişim Kutusu Entegrasyonu -
DialogFragment
,onCreateDialog()
tarafından döndürülen varsayılan iletişim kutusu olarak artık1.5.0
Etkinliği üzerindenComponentDialog
kullanıyor. - Kayıtlı Örnek Durumunu Yeniden Düzenleme: Parçalar örnek durumunu kaydetme yöntemlerini değiştirmeye başladı. Bu, parçaya hangi durumun kaydedildiğini ve durumun kaynağını net bir şekilde tanımlamaya yardımcı olma çabasıdır. Mevcut değişiklikler şunlardır:
FragmentManager
, kayıtlı örnek durumunu artık doğrudan özel birParcelable
içine değil,Bundle
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ı atlayabilmesini sağlıyor.- Etkinliğinizin
ActionBar
öğesine menü sağlamak için kullanılan Fragment API'lerinin desteği sonlandırılmıştır.1.4.0
etkinliğinde 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ı. 1.5.0-rc01 sürümü bu kayıtları içerir.
Kaydedilen Örnek Durumunu Yeniden Düzenleme
- 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ı, 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ı. 1.5.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
DialogFragment
,showNow
işleviyle eşdeğerlik içincommitNow
kullanan yeni birdismissNow
yöntemi ekledi. BununDialog
öğesinin hemen kapatılmasına neden olmayacağını, yalnızcaFragmentManager
öğesinin durumunu eşzamanlı olarak güncelleyeceğini unutmayın. (I15c36, b/72644830)
Kaydedilen Örnek Durumunu Yeniden Düzenleme
FragmentManager
, kayıtlı örnek durumunu artık doğrudan özel birParcelable
içine değil,Bundle
klasörüne kaydediyor. Bu, Fragments tarafından gerçekte nelerin kaydedildiği konusunda daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)- Parça Sonuç API'leri aracılığıyla ayarlanan ve henüz yayınlanmamış sonuçlar, artık
FragmentManager
öğesinin dahili durumundan ayrı olarak kaydedilmektedir. 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
adlı aracınsetHasOptionsMenu()
desteği sonlandırıldı. Menüleri ve menü öğelerini yönetmek için Parça1.5.0-alpha04
sürüm notları uyarınca yeni menü API'ları 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ğinde 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
artıkSavedStateRegistryOwner
ile başlatıldığında bileCreationExtras
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
işleviniby viewModels()
veby activityViewModels()
işlevlerine iletebilirsiniz. (Ibefe7, b/217601110)
Davranış Değişiklikleri
DialogFragment
, artıkonCreateDialog()
tarafından döndürülen varsayılan iletişim kutusu olarakComponentDialog
adresini 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ı atlayabilmesini sağlıyor. (I8f678)
Sürüm 1.5.0-alpha01
26 Ocak 2022
androidx.fragment:fragment:1.5.0-alpha01
, androidx.fragment:fragment-ktx:1.5.0-alpha01
ve androidx.fragment:fragment-testing:1.5.0-alpha01
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 sunulan ViewModel CreationExtras ile entegre olur. (I3060b, b/207012585)
Hata Düzeltmeleri
1.4.1
Bölümünden:FragmentContainerView
, xml'den oluşturulan görüntüleme kimliklerinin negatif değerleri olduğunda artık yasa dışı durum istisnası bildirmez. (Ic185b, b/213086140)1.4.1
Parçasından:by viewModels()
geçit işleviyle özel birownerProducer
lambda kullanılırken, her zaman parçanın fabrikasını kullanmak yerine, özelViewModelProvider.Factory
sağlanmamışsa artık bu sahibindefaultViewModelProviderFactory
değeri kullanılır. (I56170, b/214106513)- Bir
Fragment
öğesininregisterForActivityResult()
geri çağırmasındanViewModel
öğ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ı. 1.4.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- XML'den oluşturulan görünüm kimlikleri negatif değerlere sahip olduğunda
FragmentContainerView
artık geçersiz durum istisnası uygulamaz. (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'dan sonraki önemli değişiklikler
FragmentStrictMode
API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sunar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel işleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz.FragmentManager
üzerinde, hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol edenFragmentStrictMode.Policy
yenisetStrictModePolicy()
yöntemi ile ayarlanabilir. Bu politika, söz konusuFragmentManager
öğesi ve kendi benzersiz politikasını ayarlamamış tüm alt parça yöneticileri için geçişli olarak geçerlidir. Parçalar için StrictMode konusuna bakın.FragmentContainerView
artık, kapsayıcıya en son eklenen parçayı döndüren birgetFragment()
yöntemi sunuyor. Bu,FragmentContainerView
kimliğine sahipfindFragmentById()
ile aynı mantığı kullanır ancak zincirleme çağrıya izin verir.val navController = binding.container.getFragment<NavHostFragment>().navController
FragmentScenario
artıkCloseable
özelliğini uygulayarak Kotlin’inuse
yöntemiyle veya kaynaklarla deneyin.FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
, Fragments geçişinde temanızdan alınan standart Etkinlik geçişi animasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtmek için 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()
kullanan parça işlemlerinden oluşan bir arka yığın tutar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Parçalarla durumu kaydetme mekanizmalarını kullanarak bu işlemleri pop ve önceki duruma geri döndürebilirsiniz.
Bu sürüm, üç yeni FragmentManager
API'si sağlayarak bu mekanizmaların kapsamını genişletmektedir: saveBackStack(String name)
, restoreBackStack(String name)
ve clearBackStack(String name)
. Bu API'ler, FragmentTransaction
ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack()
ile aynı name
değerini kullanır. Böylece, bu işlemleri ve parçalarını durumlarıyla birlikte geri yüklemenize olanak tanır. Bu, geçerli arka grubu kaydederek ve kaydedilmiş bir arka yığını geri yükleyerek birden fazla arka grup arasında etkili bir şekilde "geçiş yapmanızı" sağlar.
saveBackStack()
, eşzamansız olması ve tüm parça işlemlerinin ters çevrilecek ("aktarılan") ve sonradan kaldırılıp kaldırılmak üzere seçilen ada geri dönmesini sağladığından popBackStack()
ile benzer şekilde çalışır. Ancak bu kullanım, birkaç önemli açıdan farklılık gösterir:
saveBackStack()
her zaman kapsayıcıdır.- Belirtilen ad arka yığında bulunamazsa veya boş bir ad verilirse tüm işlemleri arka yığında gösterecek
popBackStack()
'ten farklı olarak, 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 View durumu depolanır, her parçanın
onSaveInstanceState()
çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tümViewModel
örnekleri korunur (ve bunlar üzerindeonCleared()
ç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şlemi
setReorderingAllowed(true)
kullanmalıdır. - Kaydedilen işlem grubu, aradaki zamanda arka grupta ne tür değişiklikler yapılmış olursa olsun, herhangi bir zamanda 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 herhangi bir referans döndürmemesini sağlamak için geçişli alt parça kümelerinde tutulmuş bir parça içeremez.
Önceden kaydedilmiş bir yığını geri yükleyen veya daha önce kaydedilmiş bir arka yığını temizleyen saveBackStack()
, restoreBackStack()
ve clearBackStack()
ile benzer şekilde, daha önce aynı adla saveBackStack()
çağırmadıysanız bunların 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ı. 1.4.0-rc01 sürümü 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ı. 1.4.0-beta01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Üst parçalar, artık kendi geri çağırma işlemini başlatmadan önce hiyerarşinin tamamında
onHiddenChanged()
öğesini dağıtır. (Iedc20, b/77504618) - Klavye, açık klavyeli bir parçadan geri dönüşüm görünümlü bir parçaya giderken artık otomatik olarak kapanacak. (I8b842, b/196852211)
DialogFragment
artıkshow()
,showNow()
veyadismiss()
yöntemini çağırdığınızda oluşturduğu tüm işlemler içinsetReorderingAllowed(true)
kullanıyor. (Ie2c14)DetachAndAttachFragmentInSameFragmentTransaction
için ç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 analizi uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde yapıldığında birbirlerini iptal eder. Bu nedenle, herhangi bir şey yapabilmek için ayrı işlemlere bölünmeleri 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
- Artık Etkinlik Sonuçları API'leri (
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
veonRequestPermissionsResult
) tarafından işlenen API'lere yönelik kullanımdan kaldırma mesajının tamamı daha fazla ayrıntı eklenerek genişletildi. (cce80f) - Hem
Fragment
hem deDialogFragment
içinonActivityCreated()
ile ilgili desteği sonlandırma mesajı daha fazla ayrıntı içerecek şekilde genişletildi. (224db4)
Sürüm 1.4.0-alpha09
15 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha09
, androidx.fragment:fragment-ktx:1.4.0-alpha09
ve androidx.fragment:fragment-testing:1.4.0-alpha09
yayınlandı. Sürüm 1.4.0-alpha09 bu kayıtları içerir.
Yeni Özellikler
- Daha önce
saveBackStack(name)
ile kaydedilmiş durumları temizlemek için artıkclearBackStack(name)
numaralı telefonu arayabilirsiniz. (I70cd7)
API Değişiklikleri
FragmentContainerView
sınıfı,getFragment
işlevinin boş değerine düzgün bir şekilde uymasını sağlamak için Kotlin ile yeniden yazılmıştır. (If694a, b/189629145)- FragmentStrictMode artık Kotlin dilinde (I11767, b/199183506) yazılmıştır
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
dikkate 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 kayıtları içerir.
Hata Düzeltmeleri
FragmentTransaction
geri yüklenirken veya görünen bir parçanın ikinci kopyası olarak görünenIllegalStateException
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 giderildi. (I9039f)saveBackStack()
aracılığıyla kaydedilen durumun, bu durum geri yüklendikten sonra bileFragmentManager
tarafından tutulmasına neden olan sorun düzeltildi. (Ied212)show(FragmentTransaction, String)
yöntemiyle DialogFragment'i ö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ığındahide()
kullanıldığında Fragment'ın görünümü artık doğru şekildeGONE
olarak ayarlanır. (aosp/1766655, b/193603427) 1.3.6
Parçasından:FragmentActivity
, yaşam döngüsünde geçersiz kılınan geri çağırmalarda ilk işlemi olarak artık kayıtlı durumun kilidini her zaman açar. (I6db7a)
Bağımlılık güncellemesi
- Parça
1.3.6
'dan: 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ş ayardaSavedStateRegistry
kullanıyor.saveAllState()
verestoreSavedState()
yöntemleri deFragmentController
sürümünde kullanımdan kaldırılmıştır.FragmentActivity
dışındaki parçaları barındırmak içinFragmentController
kullanıyorsanızFragmentHostCallbacks
uygulamanızınSavedStateRegistryOwner
uygulamasını sağlamanız gerekir. (Iba68e, b/188734238)
Hata Düzeltmeleri
- Birden fazla arka yığını desteklemenin bir parçası olarak,
replace()
kullanan birFragmentTransaction
çalıştırmayla aynı anda tamamlandığındasaveBackStack()
çağrısının başarısız olmasına neden olan sorun düzeltildi. (I73137) - Çoklu arka yığın desteği için
restoreBackStack()
API kullanılırken birden fazla işlem içeren kaydedilmiş bir geri yığını manuel olarak geri yükledikten sonra ortaya çıkanNullPointerException
düzeltildi. Bu sayedesetReorderingAllowed(true)
tüm işlemler için kontrol edilmeyebilir. (I8c593) FragmentManager
ürününün,FragmentManager
ürününden kaldırılmış olsalar bile parçaların önceden kaydedilmiş durumunu 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ı hata mesajı içeriyor. (Ic33a7)WrongFragmentContainerViolation
artık, parçanın eklendiği kapsayıcıyı içeren daha ayrıntılı hata mesajına sahip. (Ib55f8)TargetFragmentUsageViolation
kullanım alanı sınıflarında artık ihlale neden olan parçayı ve içerdiği diğer bilgileri eklemek için daha ayrıntılı hata mesajları bulunmaktadır. (Icc6ac)RetainInstanceUsageViolation
uzantısına sahip sınıflarda artık, ihlale neden olan parçayı içeren daha ayrıntılı hata mesajları bulunuyor. (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ının görebildiği 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 yol açmadı. (6b8ddd, b/190622202)
Hata Düzeltmeleri
- Parça
1.3.5
'da: aosp/1679887 tarafından Parça1.3.4
'da sunulan paylaşılan öğe geçişlerinde bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
aracılığıyla veyatransitionName
ya dabackground
ile dolaylı olarak ayarlanır) düzgün şekilde işler ve paylaşılan öğeler artıkIndexOutOfBoundsException
öğesi göndermez. (I16484, b/188679569, b/188969304) - Kaldırma parçasını gizlemeye çalıştığınızda
FragmentManager
artık kilitlenmez. (I573dd, b/183634730) - Üst düzey değişken değerlendirilirken
OnCreateDialogIncorrectCallback
hata analizi denetimi artık kilitlenmeyecek. (0a9efa, b/189967522)
Sürüm 1.4.0-alpha02
2 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha02
, androidx.fragment:fragment-ktx:1.4.0-alpha02
ve androidx.fragment:fragment-testing:1.4.0-alpha02
yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
- Şu anda kullanılan katı mod politikasından bağımsız olarak,
FragmentManager
üzerinden günlük kaydı 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ı moddakiViolation
'lerden muaf tutulmasını destekler ve bu sınıfın cezaları atlamasını sağlar. (Ib4e5d, b/184786736)FragmentStrictMode
Violation
sınıfının kapsamı, her ihlale göre yapı bilgileri eklenecek şekilde genişletildi. Bu sayede, ihlale neden olan parçayla (If5118, b/187871150) birlikte ihlale tam olarak neyin neden olduğunu doğrulayabilirsiniz. HerViolation
şunları içerir:WrongFragmentContainerViolation
artıkFragment
öğesinin eklenmeye çalıştığıViewGroup
öğesini içeriyor. (I83c75, b/187871150)TargetFragmentUsageViolation
SetTargetFragmentUsageViolation
,GetTargetFragmentUsageViolation
veGetTargetFragmentRequestCodeUsageViolation
öğelerine genişletildi.SetTargetFragmentUsageViolation
, hedef parçayı ve istek kodunu içeriyor. (I741b4, b/187871150)SetUserVisibleHintViolation
artıksetUserVisibleHint()
işlevine iletilen boole değerini içeriyor. (I00585, b/187871150)FragmentTagUsageViolation
artık<fragment>
etiketinin bir parçayı doldurmaya ç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 soyut ve ihlal türü için iki durumu temsil edenSetRetainInstanceUsageViolation
veGetRetainInstanceUsageViolation
olmak üzere iki alt sınıfa sahip. (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ğine sahipfindFragmentById()
ile aynı mantığı kullanır ancak zincirleme çağrıya izin verir. (Ife17a, b/162527857)val navController = binding.container.getFragment<NavHostFragment>().navController
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
, Fragments geçişinde temanızdan alınan standart Etkinlik geçişi animasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtmek için eklendi. (I46652)
Birden çok arka grup
FragmentManager
, addToBackStack()
kullanan parça işlemlerinden oluşan bir arka yığın tutar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Parçalarla durumu kaydetme mekanizmalarını kullanarak bu işlemleri pop ve önceki duruma geri döndürebilirsiniz.
Bu sürüm, saveBackStack(String name)
ve restoreBackStack(String name)
olmak üzere iki yeni FragmentManager
API'si sağlayarak bu mekanizmaları genişletmektedir. Bu API'ler, FragmentTransaction
ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack()
ile aynı name
değerini kullanır. Böylece, bu işlemleri ve parçalarını durumlarıyla birlikte geri yüklemenize olanak tanır. Bu, geçerli arka grubu kaydederek ve kaydedilmiş bir arka yığını geri yükleyerek birden fazla arka grup arasında etkili bir şekilde "geçiş yapmanızı" sağlar.
saveBackStack()
, eşzamansız olması ve tüm parça işlemlerinin ters çevrilecek ("aktarılan") ve sonradan kaldırılıp kaldırılmak üzere seçilen ada geri dönmesini sağladığından popBackStack()
ile benzer şekilde çalışır. Ancak bu kullanım, birkaç önemli açıdan farklılık gösterir:
saveBackStack()
her zaman kapsayıcıdır.- Belirtilen ad arka yığında bulunamazsa veya boş bir ad verilirse tüm işlemleri arka yığında gösterecek
popBackStack()
'ten farklı olarak, 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 View durumu depolanır, her parçanın
onSaveInstanceState()
çağrılır, bu durum geri yüklenir ve bu parçalarla ilişkilendirilmiş tümViewModel
örnekleri korunur (ve bunlar üzerindeonCleared()
ç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şlemi
setReorderingAllowed(true)
kullanmalıdır. - Kaydedilen işlem grubu, aradaki zamanda arka grupta ne tür değişiklikler yapılmış olursa olsun, herhangi bir zamanda 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 herhangi bir referans döndürmemesini sağlamak için geçişli alt parça kümelerinde tutulmuş bir parça içeremez.
saveBackStack()
operatörüne benzer şekilde, daha önce aynı adla saveBackStack()
çağırmadıysanız restoreBackStack()
herhangi 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ılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sunar. Bir ihlal tespit edildiğinde günlük mesajı yazdırmayı, kendi özel işleyicinizi tetiklemeyi veya uygulamanızı kilitlemeyi seçebilirsiniz. FragmentManager
üzerinde, hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy
yeni setStrictModePolicy()
yöntemi ile ayarlanabilir. Bu politika, söz konusu FragmentManager
öğesi ve kendi benzersiz politikasını ayarlamamış tüm alt parça yöneticileri için geçişli olarak geçerlidir. (#123, #131, #150, b/143774122)
detectFragmentReuse()
, daha önce kaldırılmış birFragment
örneğininFragmentManager
öğesine yeniden eklenip eklenmediğini algılar. BirFragment
örneği silindikten veFragmentManager
öğesinden kaldırıldıktan sonra hiçbir zamanFragment
örneğiyle 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 bunu algılar. Her zaman, düzeninizdeki parçalar için kapsayıcı olarakFragmentContainerView
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
özelliğini uygulayarak Kotlin’inuse
yöntemiyle veya kaynaklarla deneyin. (#121, b/143774122)
Yeni Lint kontrolleri
UseGetLayoutInflater
Lint denetimi artık birDialogFragment
içindeLayoutInflater.from(Context)
kullanıldığında uyarı verir.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 denetimi artıkDialogFragment
öğesininonCreateDialog()
yöntemindesetOnCancelListener
veyasetOnDismissListener
çağrılırken uyarı verir. Bu işleyicilerDialogFragment
'in 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
- Fragment 1.3.4'te:
ViewModelProvider
ileViewTreeViewModelStoreOwner.get()
API veya bir Parça içindeviewModel()
Jetpack Compose yöntemi kullanıldığında Fragment1.3.3
öğesinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları,getDefaultViewModelProviderFactory()
değerini geçersiz kılması durumunda artık Fragment'iniz tarafından sağlananViewModelProvider.Factory
öğesini doğru bir şekilde kullanmaktadır (@AndroidEntryPoint
ek açıklamalı Fragment'ların Hilt kullanırken yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment görünümünün yanı sıra durumunu kaydeden ve 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 dağıtılmayacak veBottomNavigationBar
veFloatingActionButton
örneklerindeki sorunlar düzeltilecektir. (I1bb78, b/186012452) - Fragment 1.3.4'ten: Artık ayrıştırılabilir öğenizi, işlem sonlandırıldıktan sonra 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
öğesi false (yanlış) değerine ayarlandıysa 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ümdeki
FragmentStrictMode
API'nin tamamını eklediğiniz için simonschiller'a teşekkür ederiz. (#123, #131, #150, b/143774122, #142, b/153738653, b/153738235} 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
1.4.0-alpha03
Bölümünden: 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 doğru şekildeGONE
olarak ayarlanmıştır. (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çar. (I6db7a)
Bağımlılık güncellemesi
- Parça
1.3.6
'dan: 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şlerinde ortaya çıkan bir regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
aracılığıyla veyatransitionName
ya dabackground
ile dolaylı olarak ayarlanır) düzgün şekilde işler ve paylaşılan öğeler artıkIndexOutOfBoundsException
öğesi göndermez. (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
ViewTreeViewModelStoreOwner.get()
APIViewModelProvider
ile kullanıldığında veya Hilt kullanırken bir Fragment içindeviewModel()
Jetpack Compose yöntemi ile kullanıldığında Fragment1.3.3
öğesinde ortaya çıkan bir regresyon düzeltildi. Bu kullanım alanları, artıkgetDefaultViewModelProviderFactory()
öğesini geçersiz kıldığı takdirde Parçanızın sağladığıViewModelProvider.Factory
değerini doğru şekilde kullanmaktadır (@AndroidEntryPoint
ek açıklamalı Parçaların yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Fragment görünümünün yanı sıra durumunu kaydeden ve 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 dağıtılmaz veBottomNavigationBar
veFloatingActionButton
örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452) - Artık işlem sonlandırıldıktan sonra Parcelable öğenizi parça sonuç paketinden alabilirsiniz. (I65932, b/187443158)
- Bir ViewGroup'ta paylaşılan öğe geçişi yaparken, ViewGroup için
transitionGroup
değeri false olarak ayarlanmışsa artık düzgün bir şekilde geçiş yapılmaktadı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 Parçanın Görünümü ileViewTreeSavedStateRegistryOwner.get()
kullanılarak döndürülenSavedStateRegistryOwner
ile kullanıldığında çalışmaktadır. (I21acf, b/181577191)
Hata Düzeltmeleri
1.3.2
Parçasında kullanıma sunulan veNavHostFragment
tarafından kullanılanlar gibisetPrimaryNavFragment
işlemi içeren birFragmentTransaction
öğesi çağrılırkenpopEnter
animasyonlarının çalışmamasına neden olan bir regresyon düzeltildi. (I38c87, b/183877426)FragmentContainerView
artık herFragment
öğesinin yeni birWindowInsets
kümesi dağıtılmasını sağlayarak her parçanın artık ekleri bağımsız olarak tüketebilmesini sağlar. (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ı artık düzgün şekilde ele alıyor veBottomSheetDialog
gibi iletişim kutuları tarafından kullanılan kimlikleri yeniden kullanırken görünüm hiyerarşisi sorunlarını düzeltiyor. (Ie6279, b/180021387)FragmentManager.dump()
, etkin parçalar listesindeki ilk parçaya artık düzgün bir şekilde girinti ekler. (If5c33, b/183705451)
Yeni Durum Yöneticisi Hata Düzeltmeleri
- Yeni parça durumu yöneticisi artık gizleme işlemleriyle çıkış geçişlerini düzgün şekilde 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 girmek yerine artık tüm animasyonlar için yönü ayarlar. (I7072e, b/181142246) - Paylaşılan öğe geçişi yapılırken paylaşılan öğe hiyerarşisinde bulunan görünümlerin geçiş adları artık silinmez. (I4d4a6, b/179934757)
Bağımlılık Güncellemeleri
- Parça artık Etkinlik 1.2.2'ye bağlıdır ve Fragment 1.3.1 veya sonraki bir sürümü kullanılırken Etkinlik
InvalidFragmentVersionForActivityResult
hata analizi denetimiyle ilgili bir sorun düzeltildi. - 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
- Bir
DialogFragment
içindeki iletişim kutuları artık DecorView aracılığıyla ViewTree sahiplerine erişebilir ve böyleceDialogFragment
,ComposeView
ile kullanılabilir. (Ib9290, b/180691023)
Hata Düzeltmeleri
- FragmentContainerView kullanarak zaten
RESUMED
etkinliği olarak genişletilen 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 fazladan 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
dokümanları, parametre belgelerini artık boş değer kabul etmeyeceklerini (I990ba, b/178348386) kabul edecek şekilde güncelledi
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/gizle işlemleri kullanılırken parçalar artık düzgün bir şekilde
onCreateOptionsMenu
çağrısı yapıyor (I8bce8, b/180255554) - Parça yerleştirilmeden önce başlayan geçişlere sahip alt parçalar artık düzgün şekilde
RESUMED
özelliğine erişebilir (Ic11e6, b/180825150) <fragment>
etiketi kullanılarak şişirilen parçalar artık her zamanRESUMED
(I452ac, (I9fa49) olur.
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'dan bu yana 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 sayısız sorunu giderdi. Etkinlik Sonucu API'si Entegrasyonu:
1.2.0
etkinliğinde sunulanActivityResultRegistry
API'si için destek eklendi. BöylecestartActivityForResult()
+onActivityResult()
ve Fragment'ınızdaki yöntemleri geçersiz kılmadanrequestPermissions()
+onRequestPermissionsResult()
akışları işlenecek. Ayrıca, bu akışları test etmek için kancalar sağladılar. Güncellenen Bir Etkinlikten Sonuç Alma konusuna bakın.- Bu sürümde, geçersiz istek kodları ve etkinlik sonucu API'sinin önceki
FragmentActivity
sürümlerinde çalışmasını engelleyen izin isteklerinin gönderilmesi ile ilgili çeşitli sorunlar giderilmiştir.FragmentActivity
veyaAppCompatActivity
içinde 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 etkinlik sonucu API'sinin önceki
Fragment Result API:
FragmentManager
'da yeni API'ler aracılığıyla sonuçların iki Parça arasında geçirilmesi için destek eklendi. Bu yöntem, hiyerarşi parçaları (üst/alt), DialogFragment'lar ve Gezinme'deki parçalar için çalışır ve sonuçların yalnızca Parçanıza en azSTARTED
durumundayken gönderilmesini sağlar. Hedef parça API'leri kullanımdan kaldırılmış ve bunların yerine bu yeni API'ler yer almaktadır. Fragment Result API'yi kullanarak sonuç alma bölümünü inceleyin.FragmentOnAttachListener
:FragmentActivity
veFragment
içinonAttachFragment()
geri çağırma desteği sonlandırıldı. Daha esnek bir alternatif sunmak için yeni birFragmentOnAttachListener
eklendi. Bu sayedeonAttachFragment()
, doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara ayrı, test edilebilir işleyiciler için yetki verebilir ve FragmentManager'lara işleyici ekleme desteği sunar.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ı bir davranış sergileniyor ve Parça'nın durumunu temel Etkinlikten ayırıyor.FragmentScenario
artık herLifecycle.State
öğesine ilk kez geçmeden önce parçanın durumunun doğrulanmasını desteklemek için başlangıçLifecycle.State
ayarlamayı destekliyor.- Artık
onFragment
FragmentScenario
API'sinin, Kotlin tarafından yeniden değiştirilen uzantı yöntemiwithFragment
biçiminde bir alternatifi bulunmaktadır. Bu yöntem, değer döndürmenizi sağlar. Özellikle, belirtilen blokta ortaya çıkan istisnaları tekrar ortadan kaldırır.
ViewTree
Desteği:Fragment
artık Yaşam Döngüsü2.3.0
ve SavedState1.1.0
'e eklenenViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
veViewTreeSavedStateRegistryOwner
API'lerini desteklemektedir. Böylece, bir kullanılırken parçanınViewModelStoreOwner
olarak ve parçanın görünümüneLifecycleOwner
bağlı birSavedStateRegistryOwner
ileLifecycleOwner
döndürülecektir.Fragment
View
TRANSIT_
animasyon değişikliği: 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 gizli.setRetainInstance()
desteğinin sonlandırılması: Fragment'lardasetRetainInstance()
yöntemi kullanımdan kaldırılmıştır. ViewModel'lerin 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 normal, tutulmayan Parçayı kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, yaygın bir sızıntı kaynağını ortadan kaldırırken tek bir saklama durumunun (yani,ViewModel
ürününün kurucusu veonCleared()
geri çağırmasını) oluşturan ve yok edilmesinin yararlı özelliklerini korur.ViewPager 1 bağdaştırıcısının kullanımdan kaldırılması: ViewPager2
1.0.0
sürümüyle birlikte,ViewPager
ile etkileşim içinFragmentPagerAdapter
veFragmentStatePagerAdapter
sınıflarının desteği sonlandırıldı. ViewPager'dan ViewPager2'ye geçiş 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ı. 1.3.0-rc02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Yapılandırma değişikliğinden sonra üst
DialogFragment
öğesinin bir altDialogFragment
üzerinde görünmesi sorunu düzeltildi; alt iletişim kutusu parçaları artık her zaman üst iletişim kutusu parçasının üzerinde görünüyor. (I30806, b/177439520) Animation
ile birhide
işlemi yapmanın animasyonun sonunda gizlenen parçanın yanıp sönmesine neden olmasıyla ilgili sorun düzeltildi. (I57e22, b/175417675)- Görünüm hiyerarşisi eklenmeden önce eklenen geçişleri olan parçalar artık
RESUMED
değerine doğru şekilde erişiyor. (I1fc1d, b/177154873)
Yeni Durum Yöneticisi Hata Düzeltmeleri
- Fragment'ın
Lifecycle
görünümü, artık "no event down from INITIALIZED" (INITIALIZED tarihinden itibaren etkinlik yok) belirten istisnalardan kaçınarak,Lifecycle
öğesininCREATED
hedefine ulaşmadan önce Fragment'ın görünümünün kaldırıldığı durumları uygun şekilde ele almaktadır. (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ı. 1.3.0-rc01 sürümü 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 eklenirken ve ardından ekleme işlemi bir pop işlemiyle kesintiye uğratıldığında ortaya çıkan sızıntı ve görsel yapı düzeltildi. (I952d8)onCreate()
veyaonViewCreated()
yöntemleri sırasında parça değiştirildiğinde parçanın görünümünün görünüm hiyerarşisinde kalması sorunu düzeltildi. (I8a7d5)- Bunlar devam ettirildiğinde odak artık Parça kök görünümlerine doğru şekilde geri yüklenir. (Ifc84b)
- Pop ve değiştirme işlemleri aynı parçada birleştirildiğinde artık uygun animasyonlar gösterilir (Ifd4e4, b/170328691).
Sürüm 1.3.0-beta02
2 Aralık 2020
androidx.fragment:fragment:1.3.0-beta02
, androidx.fragment:fragment-ktx:1.3.0-beta02
ve androidx.fragment:fragment-testing:1.3.0-beta02
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 program uyumluluğu korunarak tamamen Kotlin'e dönüştürüldü. (I19d31)
Davranış Değişiklikleri
class
veyaandroid:name
özelliğini kullanarak bir parçayı şişirmeyen FragmentContainerViews artık birFragmentActivity
dışında kullanılabilir. (Id4397, b/172266337)- Bir parçanın maksimum yaşam döngüsü
DESTROYED
olarak ayarlanmaya çalışıldığındaIllegalArgumentException
hatası (Ie7651, b/170765622) döndürülür - Parça Senaryosunu
DESTROYED
durumuyla başlatmak artık birIllegalArgumentException
(I73590, b/170765622) hatası verir
Yeni Durum Yöneticisi Hata Düzeltmeleri
Animator
veyaTRANSIT_FRAGMENT_
seçeneklerinden birini kullanan bir parça geçişini kesintiye uğratırsanız görünümün son durumuna ulaşmamasına neden olan sorun düzeltildi. (I92426, b/169874632)- Çıkan bir
Animation
öğesine sahip parçaların düzgün şekilde kaldırılmasını engelleyen bir sorun düzeltildi. (I83d65) - Efektleri tersine çevrilen parçalardan çıkış yapılması, artık doğru şekilde iptal edilir ve uygun girme efektiyle yeniden başlatılır. (I62226, b/167092035)
hide()
çıkışınınAnimator
çalışmaması sorunu giderildi. (Id7ffe)- Parçalar artık ertelenip hemen başlatıldığında düzgün bir şekilde görünüyor. (Ie713b, b/170022857)
- Animasyon sırasında odaklanılan görünümlerini kaldıran parçalar,
RESUMED
değerine (I38c65, b/172925703) ulaştığında artık 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
setMaxLifecycle()
, parçaCREATED
konumuna taşınmadığı sürece artıkLifecycle
durumununINITIALIZING
olarak ayarlanmasını destekler. (b/159662173)
API Değişiklikleri
- Androidx'i Kotlin 1.4 sürümünü kullanacak şekilde yeni sürüme geçirin (Id6471, b/165307851, b/165300826)
Davranış Değişiklikleri
- Parça kaynak dosyaların doğru şekilde özel hale getirilmesi. (aosp/1425237)
Hata Düzeltmeleri
<fragment>
etiketi kullanılarak şişirilen parçalar artık STARTED (I02f4c) etiketine geçmeden önce görünümleri bir kapsayıcıya eklenene kadar düzgün bir şekilde bekler.- Görünür olan parçaların ardından
setMaxLifecycle()
-CREATED
arası artık çıkış efektlerini düzgün bir şekilde çalıştırıyor. (b/165822335) - Arka yığına eklenmeyen ayrılmış bir parçanın kaldırılması artık bellek sızıntısına neden olmaz. Nicklas Ansman Giertz'in izniyle! (b/166489383)
- Etkin parçalar artık her zaman boş olmayan bir
FragmentManager
değerine sahip olacak ve boş olmayan birFragmentManager
içeren parçalar her zaman etkin sayılacaktır. (aosp/1422346) - Parçanın varsayılan efektleri olan
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
artıkAnimation
yerineAnimator
özelliğini kullanıyor. (b/166155034)
Yeni Durum Yöneticisi Hata Düzeltmeleri
- Parçalar artık animasyonlarını başlatmadan hemen önce görünüm odağı durumlarını düzgün bir şekilde geri yükliyor. (Icc256)
- Yalnızca paylaşılan öğe geçişi olan parçalar özel etkilerini düzgün bir ş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ılmaktadır. (Id5876)
- Yeni durum yöneticisi, artık mevcut parça görünümünü eklemeden önce mevcut parça görünümünü tutarlı şekilde kaldırıyor. (I41a6e)
- Parça görünümünün görünürlüğünde yapılan açık değişiklikler artık yeni durum yöneticisi tarafından dikkate alınıyor. Bu, animasyon başlamadan önce giriş parçasının görünümünü
INVISIBLE
olarak ayarlarsanız, animasyonun gerçekte görünmez olacağı anlamına gelir. (b/164481490) - Parçalar artık
Animations
yerineAnimators
değerine öncelik veriyor. 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ın girilmesi sırasında parçaların yanıp sönmesine neden olmuyor. (b/163084315)
Bilinen Sorun
Yeni durum yöneticisini kullanırken, önceki parçaya dönmek yerine özel efekt girerken 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üm; FragmentManager
ürününün dahili durum yönetiminde önemli bir yeniden düzenleme içeriyor. Bu değişiklik yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin dağıtımını ve ertelenmiş işlemlerin işlenme şeklini etkiliyor. 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)
içinde 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 durduruluyor. (b/161654580)- Parçalar artık aynı parçalarda birbiriyle rekabet eden birden çok animasyonu engelleyerek,
Animation
değerinin tümTransition
etkilerini geçersiz kılacağı veya bağımsız bir parçada birAnimator
ileTransition
değerinin çalışacağı durumları ortadan kaldırıyor. (b/149569323) - Artık yalnızca son giren parça ve çıkan ilk parça yerine, giren ve çıkan tüm parçalardan
enterTransition
veexitTranstion
çalıştırılır. (b/149344150) - Ertelenen parçalar artık
CREATED
durumunda takılmaz. Bunun yerine, diğer parçalarla birlikteSTARTED
konumuna taşınır. (b/129035555) FragmentManager
ürününün, ertelenmiş bir yeniden sıralanmış işlem ile yeniden sipariş edilmemiş bir işlem karıştırılırken işlemleri sırayla 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
artıkonAttachFragment()
geri çağırma işlevindenfindFragmentById()
veyafindFragmentByTag()
çağrısı yaparken doğru parçaları döndürüyor. (b/153082833)- Parçalar, onları değiştiren parça ertelendiğinde, yok edilmekte olan parçalarda
onCreateView()
çağrısı yapmaz. (b/143915710) Transition
çerçevesi ve AndroidXTransition
örnekleri birleştirilmeye çalışılırken 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ılırsa, artık bir yapılandırma değişikliğinden sonra sessizce veri sağlanmaması yerine buna izin verilmediğini belirten bir istisna bildiriliyor. (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
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()
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 başlangıç 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'in yeniden iyileştirilmiş uzantı yöntemiwithFragment
biçiminde bir alternatif eklendi. Özellikle, belirtilen blokta ortaya çıkan istisnaları tekrar ortadan 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ı bir davranış sergileniyor ve Parça'nın durumunu temel Etkinlikten ayırıyor. (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ıldığında artık yaşam döngüsü gözlemleyicisi düzgün bir şekilde temizlenir. (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ı. Sürüm 1.3.0-alpha06 bu kayıtları içerir.
Yeni Özellikler
FragmentActivity
veFragment
ile ilgilionAttachFragment()
geri çağırma özelliği kullanımdan kaldırıldı. Daha esnek bir alternatif sağlamak amacıyla yeni birFragmentOnAttachListener
eklendi. Bu sayedeonAttachFragment()
, doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara ayrı, test edilebilir dinleyiciler için yetki verilirken, FragmentManager'lar için işleyici de desteklenir. (I06d3 gün)
Hata Düzeltmeleri
- Üst parçaların görünüm durumları artık alt parçalarından önce geri yüklenir. Yapılandırma değişikliğinden sonra,
DialogFragment
alt parça olarak başka birDialogFragment
gösterdiğinde görsel sıralama sorunu düzeltilir. (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 SavedState1.1.0-alpha01
ürünündenViewTreeSavedStateRegistryOwner
için destek eklendi. (aosp/1297993, aosp/1300264)
API Değişiklikleri
setFragmentResult()
vesetFragmentResultListener()
API'leri artık sırasıyla boş olmayanBundle
veFragmentResultListener
kullanıyor. Önceden ayarlanmış bir sonucu veya işleyiciyi açıkça 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
üzerinde 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ımı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ı. Sürüm 1.3.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
FragmentManager
üzerinde yeni API'ler aracılığıyla sonuçların iki Parça arasında geçirilmesi için destek eklendi. Bu yöntem, hiyerarşi parçaları (üst/alt), DialogFragment'lar ve Gezinme'deki parçalar için çalışır ve sonuçların yalnızca Parçanıza en azSTARTED
durumundayken 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 Activity Result API'lerini kullanın. (aosp/1290887) 1.2.0-alpha04
Etkinliği'ndeki önemli 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ıldığında, artık alt parçaları tarafından sağlanan menülerin görünürlüğü doğru bir şekilde değişir. (b/153593580) FragmentContainerView
ileDialogFragment
görünüm hiyerarşisine parça eklerken karşılaşılanillegalStateException
düzeltildi. (b/154366601)- Parçalar bir etkinliğin dışında barındırılırken parçalardaki
getDefaultViewModelProviderFactory()
yöntemi 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 kayıtları içerir.
API Değişiklikleri
Fragment
üzerindekiprepareCall
yöntemleri artıkfinal
oldu. (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 yoksayılmasına neden olan sorun düzeltildi. (b/152023196)- Fragment
1.2.4
ürününden: Fragment ProGuard kuralları, saklanan parçaların kod karartılmasına izin verecek şekilde güncellendi. (b/151605338) - Fragment
1.2.4
öğesinde:DialogFragment
sınıflarının 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ı. Böylece,observe
çağırırkenthis
veyaviewLifecycleOwner
kullanımı güvenli hale gelir. (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ı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.
Yeni Özellikler
1.2.0-alpha02
Etkinliğinde sunulanActivityResultRegistry
API'si için destek eklendi. Bu API, Fragment'ınızdaki yöntemleri geçersiz kılmadanstartActivityForResult()
+onActivityResult()
verequestPermissions()
+onRequestPermissionsResult()
akışlarını işleyecek ve bu akışları test etmek için kancalar sağladı. Güncellenen Bir Etkinlikten Sonuç Alma konusuna bakın. (b/125158199)
API Değişiklikleri
DialogFragment
artıkonCreateView()
öğesinin varsayılan olarak şişirilmesi gereken düzeni belirten@LayoutRes
kodunu alan bir kurucu sağlıyor. (b/150327080)onActivityCreated()
yöntemi kullanımdan kaldırıldı. Parçanın görünümüne dokunan kodonViewCreated()
içinde (onActivityCreated()
öncesinde çağrılır) yapılmalı ve diğer başlatma koduonCreate()
içinde olmalıdır. Özellikle etkinliğinonCreate()
işlemi tamamlandığında geri arama almak için birLifeCycleObserver
etkinliğinonAttach()
içindeLifecycle
kaydına kaydedilmeli veonCreate()
geri çağırması alındıktan sonra kaldırılmalıdır. (b/144309266)
Hata Düzeltmeleri
1.2.3
Parçasında:onCreateDialog()
içindengetLayoutInflater()
çağrısı yapılırkenDialogFragment
öğesindeStackOverflowError
neden olan bir hata düzeltildi. (b/117894767, aosp/1258664)- Parçadan
1.2.3
: Kullanılmayan Fragment sınıflarının sadeleştirilebilmesini sağlamak için Fragment'ın dahil edilen ProGuard kurallarının kapsamı azaltıldı. (b/149665169) - Parça
1.2.3
'dan: Kotlin özelliğinin adını gölgeleyen bir yerel değişken adı kullanıldığındaUseRequireInsteadOfGet
Lint denetimindeki 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
, artık iletişim kutusunu ekrana düzgün şekilde konumlandırmıyor. (b/151652127)
Sürüm 1.3.0-alpha01
4 Mart 2020
androidx.fragment:fragment:1.3.0-alpha01
, androidx.fragment:fragment-ktx:1.3.0-alpha01
ve androidx.fragment:fragment-testing:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
2.3.0-alpha01
Yaşam Döngüsü'neViewTreeLifecycleOwner.get(View)
API'si için destek eklendi. BöyleceonCreateView()
tarafından döndürülen tüm Görünümler için ParçanınviewLifecycleOwner
değeriLifecycleOwner
olarak döndürülür. (aosp/1182955)
API Değişiklikleri
- Fragment'larda
setRetainInstance()
yöntemi kullanımdan kaldırılmıştır. ViewModel'lerin 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 normal, tutulmayan Parçayı kullanmalarına ve saklanmalarını istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, yaygın bir sızıntı kaynağını ortadan kaldırırken tek bir saklama durumunun (yani,ViewModel
ürününün kurucusu veonCleared()
geri çağırmasını) oluşturan ve yok edilmesinin yararlı özelliklerini korur. (b/143911815) - ViewPager2
1.0.0
sürümünün yayınlanmasıyla birlikte,ViewPager
ile etkileşim için kullanılanFragmentPagerAdapter
veFragmentStatePagerAdapter
sınıflarının desteği sonlandırılmıştır. ViewPager'dan ViewPager2'ye geçiş konusuna bakın. (b/145132715)
Hata Düzeltmeleri
- Parça ProGuard kuralları artık tüm
Fragment
örnekleri yerine, yalnızca kullanılan varsayılan kurucularFragment
sınıflarını doğru şekilde tutarak Fragment1.2.1
öğesinde sunulan bir regresyonu düzeltir. (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ış pozitiflik göstermez (ör.view
). (b/149891163)FragmentContainerView
artık Android Studio'da düzen önizlemesini kullanırken birUnsupportedOperationException
atmıyor. (b/149707833)- Durum kaydedildikten sonra eklenen elde tutulan 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 öğe daha önce1.3.0-alpha04
Parçasında yayınlandı. (b/154645875) - Bir parçada
setMenuVisibility(false)
çağrıldığında, artık alt parçaları tarafından sağlanan menülerin görünürlüğü doğru bir şekilde değişir. Bu öğe 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ı. 1.2.4 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Saklanan parçaların kod karartmaya izin vermesi için Fragment ProGuard kuralları güncellendi. (b/151605338)
- Yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğundan
DialogFragment
sınıflarındaFragmentLiveDataObserve
Lint kuralı devre dışı bırakıldı. Bu sayede,observe
çağırırkenthis
veyaviewLifecycleOwner
kullanılabilmesini güvenli hale getirir. (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
DialogFragment
ürününde,onCreateDialog()
içindengetLayoutInflater()
çağrılırkenStackOverflowError
hatasına neden olan bir hata düzeltildi. (b/117894767, aosp/1258665)- Kullanılmayan Fragment sınıflarının sadeleştirilebilmesini sağlamak için Fragment'in 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
artık düzen önizlemesinde yanlış oluşturucuyu kullandığı için birUnsupportedOperationException
bildirmez. (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
çağrıları 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'leri için artık parçalar, daha açıklayıcı hata mesajları içincheckNotNull(get___())
,requireNonNull(get___())
veyaget___()!!
yerine ilişkilirequire___()
yöntemlerinin kullanılmasını öneriyor. (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)- Lint denetimlerinin birçoğunun (aosp/1157012) biçimlendirmesi düzeltildi
Harici katkılar
- Slack adına
require___()
Lint kontrollerine katkıda bulunduğu 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ğini (veya Kotlin'in düzeltilmiş versiyonlarını) alan parçaların varsayılan oluşturucuları artık ProGuard tarafından korunuyor. (b/148181315)FragmentStatePagerAdapter
veFragmentPagerAdapter
,finishUpdate()
çalıştırılırkenFragmentManager
tarafından oluşturulan istisnaları artık yakalamıyor. (aosp/1208711)FragmentManager.findFragment()
öğesinin,<fragment>
etiketi aracılığıyla eklenen parçalarla çalışmaması sorunu giderildi. (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ışken
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 SavedState2.2.0
öğesine bağlıdır.
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'dan sonraki önemli değişiklikler
- FragmentContainerView:
FragmentContainerView
, dinamik olarak eklenen Fragment'lar içinFrameLayout
veya diğer düzenlerin kullanımının yerini alacak, kesinlikle önerilen kapsayıcıdır. Ayrıca,<fragment>
etiketiyle aynıclass
,android:name
ve isteğe bağlıandroid:tag
öğelerini destekler, ancak bu 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 (1.3.0
geçişini kullanı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şken 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 kullanan Kotlin uzantıları da (fragmentTransaction.replace<YourFragment>(R.id.container)
)fragment-ktx
etiketine eklendi. - Yaşam Döngüsü ViewModel SavedState 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 denetimleri:
onCreateView()
,onViewCreated()
veyaonActivityCreated()
öğesindeLiveData
öğesini gözlemlerkengetViewLifecycleOwner()
kullandığınızdan emin olmanızı sağlayan yeni bir Lint denetimi eklendi. getFragmentManager()
desteğinin sonlandırılması: ParçadakigetFragmentManager()
verequireFragmentManager()
yöntemleri kullanımdan kaldırılmıştır ve bunların yerine tek birgetParentFragmentManager()
yöntemiyle değiştirilmiştir. 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()
etiketini dikkate alarak uygulamanızı yeniden derlemedenDEBUG
veyaVERBOSE
günlük kaydını etkinleştirmenize olanak tanır.
Bilinen Sorunlar
FragmentContainerView
üzerinde yalnızcaclass
veyaandroid:name
özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak tutulmaz. Bu nedenle, her parça sınıfı için manuel olarak bir Keep kuralı eklemeniz gerekir. (b/142601969)FragmentContainerView
ile XML olarakclass
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ı. 1.2.0-rc05 sürümü bu kayıtları içerir.
Hata düzeltmeleri
<fragment>
etiketi kullanılırken1.2.0-rc04
parçasındaki regresyon sorunu giderildi. Bu regresyon, etkinliği kaldırma sırasındaonViewCreated()
öğesinin yanlış çağrılmasına neden olur. (b/146290333)<fragment>
etiketiyle eklenen parçalar, yalnızca bazen düzende (yani yalnızca yatay düzeninizde) olsa bile yapılandırma dışı öğeleri düzgün bir şekilde temizleniyor. Sonuç olarak bu Fragment'lar, örneklendirmek yerine hiçbir zaman yaşam döngüsü yönteminden geçmek yerine düzeninizde değilken bile doğru şekildeCREATED
konumuna taşınıyor. (b/145769287)
Sürüm 1.2.0-rc04
18 Aralık 2019
androidx.fragment:fragment:1.2.0-rc04
, androidx.fragment:fragment-ktx:1.2.0-rc04
ve androidx.fragment:fragment-testing:1.2.0-rc04
yayınlandı. 1.2.0-rc04 sürümü bu kayıtları içerir.
Hata düzeltmeleri
- Görsel sorunları önlemek için
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
animasyonları düzenlendi. (b/145468417)
Sürüm 1.2.0-rc03
4 Aralık 2019
androidx.fragment:fragment:1.2.0-rc03
, androidx.fragment:fragment-ktx:1.2.0-rc03
ve androidx.fragment:fragment-testing:1.2.0-rc03
yayınlandı. 1.2.0-rc03 sürümü bu kayıtları içerir.
Hata düzeltmeleri
- Kaldırılan parçaların çıkış animasyonları / geçişleri çalışırken
findFragmentById()
/findFragmentByTag()
tarafından yine de 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 öğelerden önce doğru şekilde durdurulur. (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ülmüş, ölçeklendirilmiş vb. Görünümler'i işliyor (b/142835261)
Belge Güncellemeleri
setUserVisibleHint()
tarihiyle ilgili desteği sonlandırma dokümanlarına 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 SavedState1.0.0-rc03
ve Etkinliğe1.1.0-rc03
bağlıdır.
Sürüm 1.2.0-rc02
7 Kasım 2019
androidx.fragment:fragment:1.2.0-rc02
, androidx.fragment:fragment-ktx:1.2.0-rc02
ve androidx.fragment:fragment-testing:1.2.0-rc02
yayınlandı. 1.2.0-rc02 sürümü bu kayıtları içerir.
Hata düzeltmeleri
- Kotlin'de
onCreateView()
,onViewCreated()
veyaonActivityCreated()
öğelerindenLiveData
öğesini gözlemlerkengetViewLifecycleOwner()
kullanımı için LintFix (Fragment1.2.0-rc01
öğesinde kullanıma sunulmuştur) artıkgetViewLifecycleOwner()
yerine Kotlin özellik erişimi söz diziminiviewLifecycleOwner
kullanmaktadı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ı. 1.2.0-rc01 sürümü bu kayıtları içerir.
Yeni özellikler
FragmentContainerView
,<fragment>
etiketinin işlevselliğini yansıtanandroid:name
özelliğine ek olarak artıkclass
özelliğini de desteklemektedir. (b/142722242)onCreateView()
,onViewCreated()
veyaonActivityCreated()
değerlerindeLiveData
öğesini gözlemlerkengetViewLifecycleOwner()
kullandığınızdan emin olmanızı sağlayan yeni bir Lint denetimi eklendi. (b/137122478)
Hata düzeltmeleri
DialogFragment
üzerindekionDismiss
veonCancel
geri çağırmaları artık kendilerine geçirilenDialogInterface
değerinin boş olmadığını ve yürütüldüğündegetDialog()
işlevinin null değerini döndürmeyeceğini garanti eder. (b/141974033)FragmentContainerView
,class
veyaandroid:name
tarafından tanımlanan Parçayı enflasyonun bir parçası olarak ekleyerekfindFragmentById()
vefindFragmentByTag()
öğelerinin hemen ardından çalışmasını sağlar. (b/142520327)- Durumun kaydedilmesinden dolayı
FragmentContainerView
öğesindeIllegalStateException
düzeltildi. (b/142580713) FragmentContainerView
sınıfı karartıldığındaFragmentContainerView
öğesinde ortaya çıkan birUnsupportedOperationException
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. Bu nedenle, her parça sınıfı için manuel olarak bir Keep kuralı eklemeniz gerekir.aapt2
aracılığıyla düzeltilene kadarFragmentContainerView
hizmetine geçmeyi öneren Lint kuralını devre dışı bıraktık. (b/142601969)
Sürüm 1.2.0-beta02
11 Ekim 2019
androidx.fragment:fragment:1.2.0-beta02
, androidx.fragment:fragment-ktx:1.2.0-beta02
ve androidx.fragment:fragment-testing:1.2.0-beta02
yayınlandı. 1.2.0-beta02 sürümü bu kayıtları içerir.
Hata düzeltmeleri
- Fragment öğesi
onInflate()
öğesinin,FragmentContainerView
öğesinden uygun özellikleri alamamasına veNavHostFragment
gibi destek kayıtlarını bozmasına neden olan sorun düzeltildi. (b/142421837)
Sürüm 1.2.0-beta01
9 Ekim 2019
androidx.fragment:fragment:1.2.0-beta01
, androidx.fragment:fragment-ktx:1.2.0-beta01
ve androidx.fragment:fragment-testing:1.2.0-beta01
yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.
Yeni özellikler
FragmentContainerView
,android:name
ve isteğe bağlıandroid:tag
XML özellikleri için ek destekle başlangıç parçası ekleme desteği sunar.<fragment>
etiketinden farklı olarak,FragmentContainerView
, başlangıç parçasını eklemek için arka planda normal birFragmentTransaction
kullanır. Bu,FragmentContainerView
üzerinde başkaFragmentTransaction
işlemi yapılmasına olanak tanır ve düzen için Görünüm Bağlama özelliğinin kullanılmasını sağlar. (b/139830628, b/141177981)- Parçalar artık
<fragment>
öğesiniFragmentContainerView
ile değiştirmek için hızlı bir düzeltme sunan bir Lint uyarısı içeriyor. (b/139830056)
Hata düzeltmeleri
androidx.transition
kullanılırkenClassCastException
sorunu düzeltildi. (b/140680619)- Geçiş
1.3.0-beta01
kullanılırken Fragment'lar,onDestroyView()
dağıtımını göndermeden önce artıkandroidx.transition
geçişlerinin (sırasıyla Parça1.2.0-alpha03
ve Parça1.2.0-alpha02
'de düzeltilen çerçeve geçişlerine ve animasyonlara ek olarak) tamamlanmasını bekliyor. (aosp/1119841) 1.3.0-beta01
Geçişi kullanılırken Fragment'lar artık aynı kapsayıcıda yeni geçişler / animasyonlar başlatmadan önceandroidx.transition
geçişlerini düzgün şekilde iptal ediyor. (aosp/1119841)FragmentContainerView
kullanılırken Fragment'inizin kök görünümündeandroidx.transition
geçişleri kullanılırken API 17 ve önceki sürümlerdeki bir sorun giderildi. (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'daki
Log.w
kullanımı kaldırıldı. (aosp/1126468)
Bilinen sorunlar
- Parçanın
onInflate()
öğesi,FragmentContainerView
öğesinden uygun özellikleri alamıyor. Bu durum,NavHostFragment
gibi sorunlara 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ılmıştır ve bunların yerine tek birgetParentFragmentManager()
yöntemiyle değiştirilmiştir. Bu yöntem, Parçanın eklendiği boş olmayanFragmentManager
yöntemini 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()
etiketini dikkate alarak uygulamanızı yeniden derlemedenDEBUG
veyaVERBOSE
günlük kaydını etkinleştirmenize olanak tanır. (aosp/1116591)
Hata düzeltmeleri
- Diğer parçalardaki çıkış animasyonları çalışırken parçalar artık düzgün bir şekilde kaldırılıyor. (b/140574199)
- Fragment'ların
Activity.findViewById()
çağrısını, daha önce belirtmediği halde çağırmasına neden olan sorun düzeltildi. (aosp/1116431)
Sürüm 1.2.0-alpha03
5 Eylül 2019
androidx.fragment:fragment:1.2.0-alpha03
, androidx.fragment:fragment-ktx:1.2.0-alpha03
ve androidx.fragment:fragment-testing:1.2.0-alpha03
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 arkadaki yığından çıkarken çizim sırasını düzgün bir şekilde tersine çeviriyor. (b/139104187)- Aynı anda hem bir parça açılırken hem de yeni bir parça eklendiğinde yanlış animasyonun çalışması sorunu giderildi. (b/111659726)
- Parçalar artık
onDestroyView()
öğesini göndermeden önce geçişlerin (Parça1.2.0-alpha02
özelliğinde 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
kurucusu veyaFragment
ileViewModelProviders.of()
kullanılırken varsayılan fabrika ayarıdır. (b/135716331)FragmentTransaction
cihazdasetTransition
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
- Animasyon z sıralaması sorunlarını ve Parçalara gönderilen pencere eklerini düzelttiği için
FragmentContainerView
, dinamik olarak eklenen Parçalar için kesinlikle önerilen kapsayıcı olarak sunulur,FrameLayout
kullanımı yerine geçer. (b/37036000, aosp/985243, b/136494650) - Bir parçayla ş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)- Yaşam döngüsü boyunca
Fragment
geri çağırmaya@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
kapsamındaki yöntemlerin çoğu artıkabstract
değil.FragmentManager
öğesinin kendisiabstract
olarak kalır ve doğrudan örnek oluşturulmamalı veya genişletilmemelidir;getSupportFragmentManager()
,getChildFragmentManager()
vb. kaynaklardan yalnızca mevcut bir örneği almaya devam etmelisiniz.
Hata düzeltmeleri
- Parça
1.1.0-rc04
'dan: Parçalar artık Fragments'taki ertelenmiş geçişleri doğru şekilde iptal etmektedir. (b/138251858) 1.1.0-rc03
Parçasında: 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)1.1.0-rc02
Bölümünde: Geçerli öğe kaldırılırkenFragmentPagerAdapter
veFragmentStatePagerAdapter
kilitlenmeleri düzeltildi. (b/137209870)- Parçalar
onDestroyView()
öğesini dağıtmadan önce animasyonların tamamlanmasını bekler. (b/136110528) - Alt parçalardan ve alt parçalarından oluşturulan parça animasyonlar artık üst Parçayı canlandırırken düzgün bir şekilde işlenmektedir. (b/116675313)
- Paylaşılan öğe geçişleri kullanılırken ve pop-up ekleme işlemi birleştirilirken karşılaşılan
NullPointerException
düzeltildi. (b/120507394) - Robofactric testlerinde
FragmentPagerAdapter
veFragmentStatePagerAdapter
kullanılırkenIllegalStateException
'lere geçici bir çözüm eklendi. (b/137201343)
Sürüm 1.2.0-alpha01
2 Temmuz 2019
androidx.fragment:fragment:1.2.0-alpha01
, androidx.fragment:fragment-ktx:1.2.0-alpha01
ve androidx.fragment:fragment-testing:1.2.0-alpha01
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
- FragmentManager artık Fragment'ın görünümünü ekledikten sonra ve doğrudan
onViewCreated()
çağrısı yapmadan öncerequestApplyInsets()
işlevini çağırarak görünümünüzün her zaman doğru eklerin olmasını sağlar. (b/135945162)
Hata düzeltmeleri
replace()
öncesindesetPrimaryNavigationFragment()
kullanan birFragmentTransaction
açılırken oluşanNullPointerException
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'dan Sonraki Önemli Değişiklikler
- parça testi:
fragment-testing
yapısı, bir parçayı izole halde test etmek için birFragmentScenario
sınıfı sağlar. Daha ayrıntılı bilgi için Uygulamanızın parçalar belgelerini 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. - ViewModel'ler için Kotlin Mülk Yetkileri:
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 etkinliğin kapsamındaki ViewModel'lere erişmek içinby activityViewModels()
. - Maksimum Yaşam Döngüsü: Artık
FragmentTransaction
üzerindesetMaxLifecycle()
çağırarak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılansetUserVisibleHint()
ü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
üzerindeR.layout
kimliği alan bir oluşturucuyu çağırabilir. Bu,onCreate()
içindesetContentView()
çağrısına alternatif olarak içerik görünümü olarak ayarlanması gereken düzeni belirtir. Bu, alt sınıfınızın bağımsız değişkensiz oluşturucuya sahip olma koşulunu değiştirmez. - Fragment LayoutId oluşturucu:
Fragment
alt sınıfları artık isteğe bağlı olarakFragment
üzerindeR.layout
kimliği alan bir kurucuya çağrı yapabilir. Böylece,onCreateView()
geçersiz kılınmasına alternatif olarak bu parça için kullanılması gereken düzen belirtilir. 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çalardaki ertelenmiş geçişler doğru şekilde iptal ediliyor. (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
- Zaman aşımına sahip
postponeEnterTransition()
aramasının birden fazla kez zaman aşımıyla ö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
- Geçerli öğe kaldırılırken
FragmentPagerAdapter
veFragmentStatePagerAdapter
kilitlenmeleri 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 bir şekilde güncelliyor. (b/133385058) replace()
öncesindesetPrimaryNavigationFragment()
kullanan birFragmentTransaction
açılırken oluşanNullPointerException
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'lar için
androidx.lifecycle.Lifecycle
geri çağırma (özellikleSTARTED
,RESUMED
,PAUSED
,STOPPED
veDESTROYED
ile ilgili) artık düzgün bir şekilde iç içe yerleştirilmiş. (b/133497591) - Bir Fragment'in
onCreate()
'sine kaydedilenOnBackPressedCallback
örnek, 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)
- Artık
animateLayoutChanges="true"
kullanılırken parça animasyonları ve geçişleri yoksayılıyor, böylece Parçaların düzgün bir şekilde kaldırılmaması sorunu düzeltildi. (b/116257087)
Sürüm 1.1.0-alpha09
16 Mayıs 2019
androidx.fragment:fragment:1.1.0-alpha09
, androidx.fragment:fragment-ktx:1.1.0-alpha09
ve androidx.fragment:fragment-testing:1.1.0-alpha09
yayınlandı. Bu sürü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öntemi için geri çağırma alı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ğildir. 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ına uğrayan yeni bir
postponeEnterTransition()
aşırı yüklemesi eklendi. Bu işlemin ardından Parça otomatik olarakstartPostponedEnterTransition()
b/120803208 çağrısı yapacak.
API değişiklikleri
- Zarar veren değişiklik: Daha önce kullanımdan kaldırılan ve
Bundle
alanFragmentFactory
instantiate
yöntemi kaldırıldı. aosp/953856 - Çarpıcı 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ış olan parçalar artık son durumlarına ulaşmadan devam ettirilmez. b/131557151 setMaxLifecycle(Lifecycle.State.CREATED)
kullanılırken Parçaları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()
çağrısı yaparak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu özellik, kullanımdan kaldırılansetUserVisibleHint()
ü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 sonraki sürümlere sahip cihazlarda çağrılabilir. (b/129880016)
Davranış Değişiklikleri
- (b/129907905) sonucu olarak, 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ı sorunu düzeltildi. Bu durum, ViewModel'lerin ve saklanan alt saklanan parçaların düzgün bir şekilde atılmamasına neden olur. (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ı varsa parça yaşam döngüsüyle eklenenOnBackPressedCallback
öğesinin çağrılmamasına neden olan sorunlar düzeltildi. Daha ayrıntılı bilgi için androidx.activity 1.0.0-alpha07'ye bakın. (aosp/948209)- Parçalar artık animasyonlar için
LAYER_TYPE_HARDWARE
uygulamasını zorunlu kılmamaktadır. Özellikle bir donanım katmanı animasyonuna ihtiyacınız varsa lütfen bunu animasyonunuzun bir parçası olarak ayarlayın. (b/129486478)
Sürüm 1.1.0-alpha06
3 Nisan 2019
androidx.fragment:fragment:1.1.0-alpha06
, androidx.fragment:fragment-ktx:1.1.0-alpha06
ve androidx.fragment:fragment-testing:1.1.0-alpha06
yayınlandı. Bu sürümdeki kaydetmeleri burada bulabilirsiniz.
Yeni özellikler
- FragmentManager tarafından oluşturulan istisnalar artık iletiye Fragment’in adını içeriyor. (b/67759402)
API Değişiklikleri
Fragment
veFragmentActivity
artık@LayoutRes int
alanlı ikinci bir kurucu içeriyor. Bu oluşturucu, sınıfınıza ek açıklama ekleme işleminin önceki 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 bir bağımsız değişken Bundle'ı alan
instantiate
yöntemi kullanımdan kaldırılmıştır. Uygulamaların bunun Pakete dahil olmayan yeniinstantiate
aşırı yüklemesini kullanması gerekir. (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 bileşeninin
getThemedContext()
öğesi kaldırıldı. (aosp/934078)
Hata düzeltmeleri
- 1.1.0-alpha05 sürümünde, gelen Fragment'ın ekranda yanıp sönmesine neden olan bir regresyon düzeltildi. (b/129405432)
- Bir popBackStack+replace+popBackStack işlem dizisinden sonra birincil gezinme parçasının kaybolmasına neden olan sorun giderildi. (b/124332597)
- Parça durumunu geri yüklerken Etkinliğinizde
@ContentView
oluşturucularını kullanırken oluşan sorun düzeltildi. (b/127313094) - Mevcut bir hedef Parçayı henüz FragmentManager'a eklenmemiş bir Fragment ile değiştirirken
setTargetFragment()
mantığı düzeltildi. (aosp/932156)
Sürüm 1.1.0-alpha05
13 Mart 2019
androidx.fragment:fragment:1.1.0-alpha05
, androidx.fragment:fragment-ktx:1.1.0-alpha05
ve androidx.fragment:fragment-testing:1.1.0-alpha05
yayınlandı. Bu sürümdeki 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 bağlı bir Fragment ile
remove()
,hide()
,show()
,detach()
vesetPrimaryNavigationFragment()
çağrıldığında sessizce hata vermek yerine artıkIllegalStateException
hatası verir (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
öğesionDismiss()
değerinin iki kez çağrılabilmesine 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()
geçersiz kılmaya alternatif olarak hangi düzen XML dosyasının şişirilmesi gerektiğini belirtmenize olanak tanıyan@ContentView
sınıfı ek açıklaması için destek eklendi.onViewCreated()
içinde ilgili çalışmaları görüntülemeniz önerilir. (aosp/837619)fragment-testing
artı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
(b/121196360) veren birrequireArguments()
yöntemi eklendigetLifecycle()
,getViewLifecycleOwner()
vegetViewLifecycleOwnerLiveData()
öğelerinin geçersiz kılınmaması gerektiğine ve gelecekteki bir sürümde nihai hale getirileceğine ilişkin bir not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen bir özellik isteğinde bulunun. (aosp/880714)getViewModelStore()
öğesinin geçersiz kılınmaması gerektiğine 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ğinde bulunun. (aosp/880713)- Fragments'in önceki sürümleriyle ikili program uyumluluğuyla ilgili bir sorun giderildi. (aosp/887877) (aosp/889834)
Hata düzeltmeleri
null
öğesinisetTargetFragment()
öğesine geçirdiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)onDestroy()
içinde veya sonrasında hedef Parçalar'ın bazen kullanılmamasına neden olan sorun düzeltildi. (b/122312935)- DialogFragment’ın onDismiss() artık
onDestroy()
öncesinde çağrılıyor. (aosp/874133) (aosp/890734)
Sürüm 1.1.0-alpha03
17 Aralık 2018
Yeni özellikler
- Fragment artık
BundleSavedStateRegistryOwner
işlemini uyguluyor ve yeni yayınlanan SavedState kitaplığına bağlıdır [aosp/824380] - İçeren Etkinlik [b/119050253] ile ilişkili ViewModel'leri almak için
by activityViewModels
Kotlin mülkü temsilcisi eklendi by viewModels
Kotlin mülkünün yetkisinin kapsamı,ViewModelStoreOwner
öğesini almak için isteğe bağlı lambda yöntemini alacak şekilde genişletildi. Böylece üst Parçayı veya başka bir özelViewModelStoreOwner
öğesinival viewModel: MyViewModel by viewModels(::requireParentFragment)
gibi kodla [b/119050253] iletebileceksiniz.
API değişiklikleri
FragmentScenario
artıkTheme.AppCompat
[b/119054431] gibi bir tema belirlemenize olanak tanıyor. Bu, zarar veren bir değişikliktir.@NonNull View
döndüren veyaIllegalStateException
[b/120241368] gönderen birrequireView()
yöntemi eklendi@NonNull Fragment
döndüren veyaIllegalStateException
[b/112103783] gönderen birrequireParentFragment()
yöntemi eklendi
Hata düzeltmeleri
- Kuraldışı durum düzeltildi: b/120814739 hatası kaydetme durumu
- Kayıtlı örnek durumundan geri yüklenen parçalar artık her zaman boş olmayan bir
Bundle
[b/119794496] alacak - Kaldırılan Fragment, yeniden eklenirse artık
Lifecycle
nesnesini yeniden kullanmaz [b/118880674]
Sürüm 1.1.0-alpha02
3 Aralık 2018
Yeni özellikler
- FragmentSenaryodaki Kotlin uzantıları,
FragmentFactory
örneğinde geçmeye alternatif olarak Fragment oluşturma işlemi için lambda kullanmanıza olanak tanıyor. (aosp/812913)
Hata düzeltmeleri
- Arka yığında iç içe yerleştirilmiş Fragment'lar kullanıldığında bir IllegalStateException sorunu giderildi (b/119256498)
FragmentScenario.recreate()
,FragmentFactory
(aosp/820540) ile birlikte kullanılırken yaşanan kilitlenme düzeltildi- Parça kaldırıldıktan sonra hedef Parçalara erişilememesi sorunu düzeltildi (aosp/807634)
Sürüm 1.1.0-alpha01
5 Kasım 2018
Bu, fragment-testing
yapısının ve androidx.test:core API'lerinin üzerinde derlenen FragmentScenario
özelliğinin ilk sürümüdür. Daha ayrıntılı bilgi için Parça testi belgelerine bakın.
Yeni özellikler
- Parçaları izole olarak test etmek için yeni Parça Senaryo sınıfı.
- Artık yeni Fragment örneklerinin nasıl örneklendiğini kontrol etmek için herhangi bir
FragmentManager
öğesindeFragmentFactory
ayarlayabilirsiniz. - Bir Fragment'tan ViewModel'leri almak için yeni bir
by viewModels()
Kotlin mülkü temsilcisi eklendi. - Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık bir 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.