Parça
Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
---|---|---|---|---|
13 Ağustos 2025 | 1.8.9 | - | - | - |
Bağımlılıkları bildirme
Fragment'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Eski
dependencies { def fragment_version = "1.8.9" // Java language implementation implementation "androidx.fragment:fragment:$fragment_version" // Kotlin implementation "androidx.fragment:fragment-ktx:$fragment_version" // Compose implementation "androidx.fragment:fragment-compose:$fragment_version" // Testing Fragments in Isolation debugImplementation "androidx.fragment:fragment-testing-manifest:$fragment_version" androidTestImplementation "androidx.fragment:fragment-testing:$fragment_version" }
Kotlin
dependencies { val fragment_version = "1.8.9" // Java language implementation implementation("androidx.fragment:fragment:$fragment_version") // Kotlin implementation("androidx.fragment:fragment-ktx:$fragment_version") // Compose implementation("androidx.fragment:fragment-compose:$fragment_version") // Testing Fragments in Isolation debugImplementation("androidx.fragment:fragment-testing:$fragment_version") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen 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 belgelerini inceleyin.
Sürüm 1.8
Sürüm 1.8.9
13 Ağustos 2025
androidx.fragment:fragment-*:1.8.9
iptal edilir. 1.8.9 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Gizleme işlemini tetikleyen bir tahmini geri hareketinin iptal edilmesinin, animatörler kullanılırken sonraki hareketin doğru şekilde animasyon oluşturmamasına neden olması sorunu düzeltildi. (I0a400, b/384765586)
setMaxLifecycle
vepopBackStack
kombinasyonunun, üst parçayı RESUMED durumuna taşımayı başaramadığı hata düzeltildi. (I3448b, b/406127576)
Sürüm 1.8.8
4 Haziran 2025
androidx.fragment:fragment-*:1.8.8
iptal edilir. 1.8.8 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
setMaxLifecycle(Lifecycle.State.INITIALIZED)
ile eklenen Fragment'lerin durumu kaydedilmeye çalışılırkenFragmentManager
'nın kilitlenmesine neden olan sorun düzeltildi. Bu parçalaronCreate()
işleminden hiç geçmediğinden artık kaydedilmiş bir duruma veyaonSaveInstanceState()
çağrısına sahip değildir. (I6e37a)
Sürüm 1.8.7
20 Mayıs 2025
androidx.fragment:fragment-*:1.8.7
iptal edilir. 1.8.7 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Aynı karede pop ve değiştirme işlemlerinden sonra
FragmentManager
öğesinin uygun durumda olmaması sorunu düzeltildi. Bu durum, geri yığınıpopBackStack
veya tahmini geri hareketi aracılığıyla pop edildiğinde kilitlenmeye neden olabiliyordu. (I50ad1) - AndroidX Transitions kullanılırken ve hızlı ardışık parça işlemlerinin başlatılmamış bir geçişi iptal etmeye çalıştığı bir duruma girildiğinde AndroidX Transition kitaplığının geçiş durumunu düzgün şekilde temizlememesi nedeniyle oluşan kilitlenme sorunu düzeltildi. (b/414612221 adresini inceleyin). (Ib5235)
Sürüm 1.8.6
12 Şubat 2025
androidx.fragment:fragment-*:1.8.6
iptal edilir. 1.8.6 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
FragmentContainerView
'nınsetOnApplyWindowInsetsListener
geçersiz kılma işlemi artık çerçeve tarafından izin verilen şekilde boş bir dinleyici alıyor. (I575f0, b/282790626)
Sürüm 1.8.5
30 Ekim 2024
androidx.fragment:fragment-*:1.8.5
iptal edilir. 1.8.5 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yalnızca Tahmin Edilen Geri Gitme hareketi iptal edildikten veya kesintiye uğradıktan sonra
saveBackStack
tarafından tetiklenenIllegalStateException
sorunu düzeltildi. (I3387d, b/342419080)
Sürüm 1.8.4
2 Ekim 2024
androidx.fragment:fragment-*:1.8.4
iptal edilir. 1.8.4 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Androidx Transitions kullanılırken sistemin geri düğmesine hızlıca basıldığında veya geri hareketinin hızlıca yapıldığında Fragment'ların kilitlenmesine neden olan sorun düzeltildi. (Ibc038, b/364804225)
- Parçalarda, tahmini geri hareketinin kesintiye uğratılmasının parça yöneticisini tanımlanmamış bir duruma göndermesine ve hatta yanlış parçayı göstermesine neden olan sorun düzeltildi. (If82e2, b/338624457)
UninitializedPropertyAccessException
örneğinizin kullandığı Sınıf dinamik olarak değiştirilirkenAndroidFragment
içindeAndroidFragment
düzeltildi. (I12dea)
Sürüm 1.8.3
4 Eylül 2024
androidx.fragment:fragment-*:1.8.3
iptal edilir. 1.8.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
FragmentManager
artık Tahmin Edilen Geri Gitme hareketini işlerken bekleyen işlemleri doğru şekilde hesaba katıyor. Bu işlem, sistem yedeklemesi yapmanın artıkIndexOutOfBoundsException
hatasına neden olmamasını sağlar. (I9ba32, b/342316801)- Kapsayan etkinlik/parçanın durumu zaten kaydedilmişken bestelemeye eklendiğinde
AndroidFragment
artık kilitlenmiyor. (I985e9, b/356643968)
Sürüm 1.8.2
24 Temmuz 2024
androidx.fragment:fragment-*:1.8.2
iptal edilir. 1.8.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
AndroidFragment
artık üst parçanın Fragment geri yığınına yerleştirildiği durumları düzgün şekilde işliyor ve bu parçaya geri dönüldüğünde "No view found for id" (Kimlik için görünüm bulunamadı) sorunlarını önlüyor. (I94608)FragmentTransaction.add
yöntemiyle eklenen veViewGroup
alanını kullanan parçalar,onStart()
'e geçmeden önceonContainerAvailable
'yi bekler. Bu durum,AndroidFragment
gibi API kullanıcılarını etkiler.AndroidFragment
artıkAndroidFragment
öğesininonStart()
üzerinden taşınmadan önce kompozisyona yeniden girmesini bekler. (I94608)
Sürüm 1.8.1
26 Haziran 2024
androidx.fragment:fragment-*:1.8.1
iptal edilir. 1.8.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Kapsayıcısı olmayan parçaların, tahmini geri hareket başlatıldığında hemen
DESTROYED
olmasına neden olan sorun düzeltildi. Artık hareket tamamlanana kadarCREATED
durumunda tutuluyorlar. (If6b83, b/345244539)
Sürüm 1.8.0
12 Haziran 2024
androidx.fragment:fragment-*:1.8.0
iptal edilir. 1.8.0 sürümü bu commit'leri içerir.
1.7.0 sürümünden beri yapılan önemli değişiklikler
fragment-compose
yapısı artık, parça sınıfı adı aracılığıyla Compose hiyerarşisine parça eklenmesine olanak tanıyan birAndroidFragment
Composable
içeriyor. Fragment'ın durumunun kaydedilmesi ve geri yüklenmesi otomatik olarak işlenir. Bu yöntem, bir Fragment'i genişletmek içinAndroidViewBinding
kullanılmasıyla ilgili daha önce önerilen yaklaşımın doğrudan yerine kullanılmalıdır.onBackStackChangeCancelled
FragmentManager
'ninOnBackStackChangedListener
arayüzündeki geri çağırma işlevi artıkFragmentManager
'de işlemler yürütülürken tetikleniyor veonBackStackChangeCommitted
geri çağırma işlevinin zamanlamasına daha uygun hale geliyor.
Sürüm 1.8.0-rc01
29 Mayıs 2024
androidx.fragment:fragment-*:1.8.0-rc01
iptal edilir. 1.8.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
FragmentManagers OnBackStackChangedListener
arayüzündekionBackStackChangeCancelled
geri çağırma işlevi artıkFragmentManager
'de işlemler yürütülürken tetikleniyor veonBackStackChangeCommitted
geri çağırma işlevinin zamanlamasına daha yakın hale geliyor. (I5ebfb, b/332916112)
Sürüm 1.8.0-beta01
14 Mayıs 2024
androidx.fragment:fragment-*:1.8.0-beta01
iptal edilir. 1.8.0-beta01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Parça
1.7.1
: Tahmini geri gitme özelliği artık yalnızca tüm parçaların Animator veya Seekable Androidx Transition'a sahip olduğu işlemlerde çalışacak. Bu düzeltme, kısmen aranabilir bir işlemin iptal edilmesinin siyah ekrana neden olduğu sorunu giderir. (I43037, b/339169168)
Sürüm 1.8.0-alpha02
17 Nisan 2024
androidx.fragment:fragment-*:1.8.0-alpha02
iptal edilir. 1.8.0-alpha02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Parça
1.7.0-rc02
: Başka geçiş olmadansharedElement
ayarlanmasının neden çalışmayacağını belirten günlükler eklendi. (Iec48e) - Parça
1.7.0-rc02
: Diğer tüm geçişlerin aranabilir olduğu işlemlere aranabilir olmayan bir paylaşılan öğe eklendiğinde kilitlenmeye neden olan hata düzeltildi. Artık işlem doğru şekilde aranabilir olmayan olarak kabul edilecek. (I18ccd)
Sürüm 1.8.0-alpha01
3 Nisan 2024
androidx.fragment:fragment-*:1.8.0-alpha01
iptal edilir. 1.8.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
- Yeni
AndroidFragment
Composable
, parça sınıfı adı aracılığıyla Compose hiyerarşisine parçalar eklenmesine olanak tanır. Fragment'ın durumunun kaydedilmesi ve geri yüklenmesi otomatik olarak işlenir. Bu, AndroidViewBindingComposable
için doğrudan bir yedek olarak kullanılabilir.(b/312895363, Icf841)
Belgelerdeki Değişiklikler
OnBackStackChangedListener
API'lerinin ne zaman çağrıldığı ve nasıl kullanılması gerektiğiyle ilgili dokümanlar güncellendi. (I0bfd9)
Bağımlılık güncellemesi
- Fragment artık Profile Installer 1.3.1'e bağlıdır.
Sürüm 1.7
Sürüm 1.7.1
14 Mayıs 2024
androidx.fragment:fragment-*:1.7.1
iptal edilir. 1.7.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Tahmini geri özelliği artık yalnızca tüm parçaların Animator veya Seekable Androidx Transition'a sahip olduğu işlemlerde çalışacak. Bu düzeltme, kısmen aranabilir bir işlemin iptal edilmesinin boş ekrana neden olduğu sorunu giderir. (I43037, b/339169168)
Sürüm 1.7.0
1 Mayıs 2024
androidx.fragment:fragment-*:1.7.0
iptal edilir. 1.7.0 sürümü bu commit'leri içerir.
Tahmin edilen geri gitme hareketi desteği
- Parçalar artık
Animator
veya AndroidX Transition 1.5.0 kullanılırken tahmini uygulama içi geri özelliğini destekliyor. Bu sayede kullanıcılar, işlemi tamamlayarak veya iptal ederek işlemi gerçekleştirmeye karar vermeden önce Animator/Transition'ınızı arayarak önceki parçayı görmek için geri hareketini kullanabilir.
Geçiş Sistemi | XML Kaynağı | Tahmin edilen geri gitme özelliğini destekler |
---|---|---|
Animation |
R.anim |
Hayır |
Animator |
R.animator |
Evet |
Framework Transition |
R.transition |
Hayır |
Transition 1.4.1 veya daha eski bir sürümle AndroidX Transition |
R.transition |
Hayır |
AndroidX Transition ve Transition 1.5.0 |
R.transition |
Evet |
Tahmini geri hareketini etkinleştirdikten sonra parçalarda tahmini geri hareket desteğiyle ilgili sorunlar görürseniz lütfen sorununuzu yeniden üreten örnek bir projeyle birlikte Parça'ya karşı bir sorun bildirin. Etkinliğinizin onCreate()
bölümündeki FragmentManager.enabledPredictiveBack(false)
simgesini kullanarak tahmini geri özelliğini devre dışı bırakabilirsiniz.
FragmentManager.OnBackStackChangedListener()
artık sırasıyla tahmini geri ilerleme ve iptal edilen etkinlikleri almak için onBackStackChangeProgressed()
ve onBackStackChangeCancelled()
'yi sağlıyor.
Fragment Compose Artifact
Fragment tabanlı bir mimariden tamamen Compose tabanlı bir mimariye geçiş sürecinde olan uygulamaları desteklemeye odaklanan yeni bir fragment-compose
yapısı oluşturuldu.
Bu yeni yapıda kullanıma sunulan ilk özellik, content
üzerinde bir uzantı yöntemidirFragment
. Bu yöntem, sizin için bir ComposeView
oluşturup doğru ViewCompositionStrategy
'yi ayarlayarak Compose'u tek bir Fragment'ın kullanıcı arayüzünde kullanmayı kolaylaştırmayı amaçlar.
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
// Write your @Composable content here
val viewModel: ExampleViewModel = viewModel()
// or extract it into a separate, testable method
ExampleComposable(viewModel)
}
}
Sürüm 1.7.0-rc02
17 Nisan 2024
androidx.fragment:fragment-*:1.7.0-rc02
iptal edilir. 1.7.0-rc02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Diğer geçişler olmadan
sharedElement
ayarlanmasının neden çalışmayacağını belirten günlükler eklendi. (Iec48e) - Aranabilir olmayan bir paylaşılan öğe, diğer tüm geçişlerin aranabilir olduğu bir işleme eklendiğinde kilitlenmeye neden olan hata düzeltildi. Artık işlem doğru şekilde aranabilir olmayan olarak kabul edilecek. (I18ccd)
Sürüm 1.7.0-rc01
3 Nisan 2024
androidx.fragment:fragment-*:1.7.0-rc01
iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.
Bağımlılık güncellemesi
- Fragment artık Profile Installer 1.3.1'e bağlıdır.
Sürüm 1.7.0-beta01
20 Mart 2024
androidx.fragment:fragment-*:1.7.0-beta01
iptal edilir. 1.7.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
FragmentHostCallback
artık Kotlin ile yazılıyor. Böylece, Host'un genel türünün nullability'si,onGetHost()
'nin dönüş türünün nullability'siyle eşleşiyor. (I40af5)
Hata Düzeltmeleri
- Bir kapsayıcıda bulunmayan bir parçada tahmini geri hareketini onaylarken parçanın hiçbir zaman yok edilmemesine neden olan sorun düzeltildi. Fragment artık hemen son duruma taşınır. (Ida0d9)
- Parçalarda, gelen geçişleri Tahmini Geri hareketiyle kesintiye uğratmanın, girilen görünümü yok edip boş bir ekran bırakmasına neden olan sorun düzeltildi. (Id3f22, b/319531491)
Sürüm 1.7.0-alpha10
7 Şubat 2024
androidx.fragment:fragment-*:1.7.0-alpha10
iptal edilir. 1.7.0-alpha10 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Önceki Fragment sürümünde bilinen bir sorun düzeltildi. Bu sorunda, Fragment'ın
Animator
veya AndroidX Transition için Tahmini Geri desteği kullanılırkenaddOnBackStackChangedListener
üzerinden hiçFragmentManager.OnBackStackChangedListener
eklenmemişse Fragment'larhandleOnBackProgressed
'danNullPointerException
atıyordu. (I7c835)
Sürüm 1.7.0-alpha09
24 Ocak 2024
androidx.fragment:fragment-*:1.7.0-alpha09
iptal edilir. 1.7.0-alpha09 sürümü şu commit'leri içerir.
Fragment Compose Artifact
Fragment tabanlı bir mimariden tamamen Compose tabanlı bir mimariye geçiş sürecinde olan uygulamaları desteklemeye odaklanan yeni bir fragment-compose
yapısı oluşturuldu.
Bu yeni yapıda kullanıma sunulan ilk özellik, content
üzerinde bir uzantı yöntemidirFragment
. Bu yöntem, sizin için bir ComposeView
oluşturup doğru ViewCompositionStrategy
'yi ayarlayarak Compose'u tek bir Fragment'ın kullanıcı arayüzünde kullanmayı kolaylaştırmayı amaçlar. (561cb7, b/258046948)
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
// Write your @Composable content here
val viewModel: ExampleViewModel = viewModel()
// or extract it into a separate, testable method
ExampleComposable(viewModel)
}
}
Yeni Özellikler
FragmentManager.OnBackStackChangedListener()
artık sırasıyla tahmini geri ilerleme ve iptal edilen etkinlikleri almak içinonBackStackChangeProgressed()
veonBackStackChangeCancelled()
'yi sağlıyor. (214b87)
Bilinen Sorun
Animator
veya AndroidX Transition için Fragment'ın Tahmini Geri desteği kullanılırkenaddOnBackStackChangedListener
aracılığıyla hiçFragmentManager.OnBackStackChangedListener
eklenmemişse Fragment'larhandleOnBackProgressed
'danNullPointerException
oluşturur. Dinleyiciyi manuel olarak eklemek, kilitlenmeyi önler. Bu sorun, Fragments'ın sonraki sürümünde düzeltilecektir.
Sürüm 1.7.0-alpha08
10 Ocak 2024
androidx.fragment:fragment-*:1.7.0-alpha08
iptal edilir. 1.7.0-alpha08 sürümü şu commit'leri içerir.
Temizleme
- Transition
1.5.0-alpha06
'da düzeltilen Transition 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
iptal edilir. 1.7.0-alpha07 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Paylaşılan öğe geçişi ayarlanıp giriş/çıkış geçişi ayarlanmadığında oluşan
NullPointerException
sorunu düzeltildi. (I8472b) - Fragment
1.6.2
:FragmentContainerView
Fragment'i şişirildiğindeFragmentManager
, Host ve id gibi durumlarına artıkonInflate
geri çağırmasında erişilebilir. (I1e44c, b/307427423) - Fragment
1.6.2
öğesinden: Bir grup parçayı kaldırmak içinclearBackStack
kullanılırken artık üst parçanınViewModels
öğeleri temizlendiğinde iç içe yerleştirilmiş Fragment'ınViewModel
öğeleri de temizlenecek. (I6d83c, b/296173018)
Sürüm 1.7.0-alpha06
4 Ekim 2023
androidx.fragment:fragment-*:1.7.0-alpha06
iptal edilir. 1.7.0-alpha06 sürümü şu commit'leri içerir.
Bağımlılık Güncellemesi
- Parçalar, Transition
1.5.0-alpha04
'da eklenen yenianimateToStart
API'ye bağlı olacak şekilde güncellendi.
Sürüm 1.7.0-alpha05
20 Eylül 2023
androidx.fragment:fragment-*:1.7.0-alpha05
iptal edilir. 1.7.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
- Parçalar artık Androidx Transitions kullanılırken tahmin edilen geri gitme özelliğini destekliyor. Bu sayede, işlemi tamamlanmış hareketle onaylamaya veya iptal etmeye karar vermeden önce özel Androidx Geçişinizle önceki parçayı aramak için geri hareketini kullanabilirsiniz. Bu özelliği etkinleştirmek için Geçiş
1.5.0-alpha03
sürümünü kullanmanız gerekir. (Ib49b4, b/285175724)
Bilinen Sorunlar
- Şu anda, bir geçişle geri hareketini bir kez iptal ettikten sonra, geri hareketini bir sonraki başlatışınızda geçişin çalışmaması ve boş bir ekranın görünmesiyle ilgili bir sorun var. Bu durum, Geçiş kitaplığındaki bir sorundan kaynaklanabilir. (b/300157785). Bu sorunla karşılaşırsanız lütfen sorununuzu yeniden üreten örnek bir projeyle birlikte Fragment'a karşı bir sorun bildirin. Etkinliğinizin
onCreate()
bölümündekiFragmentManager.enabledPredictiveBack(false)
simgesini kullanarak tahmini geri özelliğini devre dışı bırakabilirsiniz.
Sürüm 1.7.0-alpha04
6 Eylül 2023
androidx.fragment:fragment-*:1.7.0-alpha04
iptal edilir. 1.7.0-alpha04 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Tahmini geri hareket iptal edildiğinde parçaların doğru yaşam döngüsü durumuna geçememesine neden olan sorun düzeltildi. (I7cffe, b/297379023)
- Animasyonların geçişlerle birlikte çalışmasına izin verilen gerileme düzeltildi. (I59f36)
- Geri yığında sondan bir önceki parçada hızlıca iki kez geri gitmeye çalışıldığında kilitlenmeye neden olan, parçalarla Tahmini Geri Gitme özelliğinin kullanılmasıyla ilgili sorun düzeltildi. (Ifa1a4)
Sürüm 1.7.0-alpha03
23 Ağustos 2023
androidx.fragment:fragment-*:1.7.0-alpha03
iptal edilir. 1.7.0-alpha03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Tahmin edilen geri gitme özelliği kullanılırken, parça yöneticisinin geri yığınındaki ilk parçanın atlanmasına ve 3 düğmeli gezinme veya tahmin edilen geri gitme hareketi aracılığıyla sistem geri gitme özelliği kullanılırken Etkinliğin tamamlanmasına neden olan parçalarla ilgili sorun düzeltildi. (I0664b, b/295231788)
Sürüm 1.7.0-alpha02
9 Ağustos 2023
androidx.fragment:fragment-*:1.7.0-alpha02
iptal edilir. 1.7.0-alpha02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- API 34'ten itibaren Tahmini Geri Hareketler ile Fragment'leri kullanırken arama işlemini desteklemeyen bir geçiş sistemi (
Animations
,Transitions
) veya hiç geçiş kullanmıyorsanız Fragment'ler artık geri hareketini gerçekleştirmeden önce hareketin tamamlanmasını bekleyecektir. (I8100c)
Sürüm 1.7.0-alpha01
7 Haziran 2023
androidx.fragment:fragment-*:1.7.0-alpha01
iptal edilir. Bu sürüm, dahili bir dalda geliştirilmiştir.
Yeni Özellikler
- Parçalar artık
Animator
kullanılırken uygulama içi tahmin edilen geri gitme özelliğini destekliyor. Bu sayede, işlemi tamamlanan hareketle onaylamaya veya iptal etmeye karar vermeden önce özel Animator'ınızla önceki parçayı görmek için geri hareketini kullanabilirsiniz. DeneyselenablePredictiveBack()
özelliğini kullanıpfalse
değerini ileterek de bu yeni davranışı devre dışı bırakabilirsiniz.
Sürüm 1.6
Sürüm 1.6.2
1 Kasım 2023
androidx.fragment:fragment-*:1.6.2
iptal edilir. 1.6.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
FragmentContainerView
Fragment'i şişirildiğindeFragmentManager
, Host ve id gibi durumlarına artıkonInflate
geri çağırmasında erişilebilir. (I1e44c, b/307427423)- Bir dizi parçayı kaldırmak için
clearBackStack
kullanılırken, üst parçanınViewModels
temizlendiğinde artık tüm iç içe yerleştirilmiş parçalarınViewModel
temizlenecek. (I6d83c, b/296173018)
Sürüm 1.6.1
26 Temmuz 2023
androidx.fragment:fragment-*:1.6.1
iptal edilir. 1.6.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Etkinlik durdurulduğunda ancak yok edilmediğinde depolanan kaydedilmiş durumun, parça örneği
RESUMED
durumuna geri taşındıktan sonra bile yanlış şekilde önbelleğe alınmasına neden olan sorun düzeltildi. Bu durum, birden fazla geri yığın API'si kullanılarak söz konusu parçayı kaydedip geri yüklerken parçanın örneği geri yığında bulunuyorsa önbelleğe alınan durumun yeniden kullanılmasına neden olur. (I71288, b/246289075)
Bağımlılık Güncellemesi
- Fragment artık Activity 1.7.2'ye bağlıdır. Bu düzeltme, Kotlin kullanıcılarının
ComponentDialog
öğesini Activity'ye açıkça bağımlı olmadan genişletememesine neden olan sorunu giderir. (b/287509323)
Sürüm 1.6.0
7 Haziran 2023
androidx.fragment:fragment-*:1.6.0
iptal edilir. 1.6.0 sürümü şu commit'leri içerir.
1.5.0 sürümünden beri yapılan önemli değişiklikler
Fragment
'ların kaydedilmiş durumu tamamen özel kitaplık durumu (özelParcelable
sınıfları) ve geliştirici tarafından sağlanan durum arasında bölünmüştür. Geliştirici tarafından sağlanan durum artık her zaman bir parçanın durumunun tam olarak nereden kaynaklandığını belirlemeye olanak tanıyan birBundle
içinde depolanır.FragmentManager.OnBackStackChangedListener
arayüzü, sırasıyla parçanın geri yığınına eklenmeden/kaldırılmadan hemen önce ve işlem onaylandıktan hemen sonra herFragment
ile çağrılanonBackStackChangeStarted
veonBackStackChangeCommitted
olmak üzere iki ek geri çağırma ile genişletildi.FragmentStrictMode
, bir alt parçanın üst öğesinin görünüm hiyerarşisine yerleştirildiğini ancak üst öğeninchildFragmentManager
'ına eklenmediğini algılayan yeni birWrongNestedHierarchyViolation
ekledi.Intent
veyaIntentSender
alanını alanFragment
veFragmentManager
API'leri artık@NonNull
ile düzgün şekilde açıklama eklenmiş durumda. Bunun nedeni, boş değerin her zaman ilgili Android çerçeve API'lerinin hemen kilitlenmesine neden olmasıdır.DialogFragment
artıkrequireComponentDialog()
API'si aracılığıyla temelComponentDialog
'ye erişim sağlıyor.- Fragment artık Lifecycle
2.6.1
'a bağlıdır. - Parça artık SavedState
1.2.1
'e bağlıdır. - Fragment artık ProfileInstaller
1.3.0
'a bağlıdır. fragment-testing-manifest
yapısı, manifest girişlerini parça testi bileşenlerinin geri kalanından ayırır. Bu durumda şunları yapabilirsiniz:debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z") androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Bu sayede
fragment-testing
ileandroidx.test
arasındaki sürüm farklılığından kaynaklanan çakışmalar önlenir.
Sürüm 1.6.0-rc01
10 Mayıs 2023
androidx.fragment:fragment-*:1.6.0-rc01
iptal edilir. 1.6.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Birden fazla
startActivityForResult
isteği art arda gönderildiğindeActivityResult
'ların yanlış istek koduyla gönderilmesine neden olan sorun düzeltildi. (If0b9d, b/249519359) onBackStackChangeListener
geri çağırmalarının, arka yığını gerçekten değiştiren işlemlerle karıştırıldığında 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
iptal edilir. 1.6.0-beta01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
postponeEnterTransition
işlevini zaman aşımıyla kullanıp ertelenen parçayı değiştirmek artık ertelenen parçanın sızmasına neden olmuyor. (I2ec7d, b/276375110)- Yeni
onBackStackChangeStarted
veonBackStackChangeCommitted
geri çağırmaları, birden fazla işlem aynı parçayı içerse bile artık yalnızca bir kez parça gönderir. (Ic6b69)
Sürüm 1.6.0-alpha09
5 Nisan 2023
androidx.fragment:fragment-*:1.6.0-alpha09
iptal edilir. 1.6.0-alpha09 sürümü şu commit'leri içerir.
API Değişiklikleri
DialogFragment
artıkrequireComponentDialog()
API'si aracılığıyla temelComponentDialog
'ye erişim sağlıyor. (I022e3, b/234274777)commitNow()
,executePendingTransactions()
vepopBackStackImmediate()
parçası API'leri@MainThread
ile açıklama eklenmiş olup artık çalışma zamanında başarısız olmayı beklemek yerine ana iş parçacığından çağrılmadıklarında derleme hataları verecekler. (Ic9665, b/236538905)
Hata Düzeltmeleri
FragmentManager
'da aynı karede kaydetme ve geri yükleme işlemlerinin kilitlenmeye neden olabildiği 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üyor. (I66055, b/274788957)
Sürüm 1.6.0-alpha08
22 Mart 2023
androidx.fragment:fragment-*:1.6.0-alpha08
iptal edilir. 1.6.0-alpha08 sürümü şu commit'leri 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ğırmaya hiçbir zaman ayrılmış bir parçanın iletilmemesini sağlar. (I66a76, b/273568280)
Hata Düzeltmeleri
- Fragment
1.5.6
:Lifecycle
zatenSTARTED
ise ve sonuç zaten mevcutsasetFragmentResultListener
içindeclearFragmentResultListener
çağrısının çalışmamasına neden olan sorun düzeltildi. (If7458)
Bağımlılık Güncellemeleri
- Fragment artık Lifecycle
2.6.1
'a bağlıdır. (586fe7) - Parça artık SavedState
1.2.1
'e bağlıdır. (078e4e) - Fragment artık ProfileInstaller
1.3.0
'a bağlıdır. (3fc05b)
Sürüm 1.6.0-alpha07
8 Mart 2023
androidx.fragment:fragment-*:1.6.0-alpha07
iptal edilir. 1.6.0-alpha07 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Fragment
1.5.6
: Menü öğeleri eklenmiş olsun veya olmasın herhangi bir Fragment'ın kaldırılmasının etkinliğin menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
Sürüm 1.6.0-alpha06
22 Şubat 2023
androidx.fragment:fragment-*:1.6.0-alpha06
iptal edilir. 1.6.0-alpha06 sürümü şu commit'leri içerir.
Davranış değişikliği
onBackStackChangedStarted
FragmentManager
'ninonBackStackChangedListener
üzerindeki yeni geri çağırma işlevi artık parçalar hedef durumlarına taşınmaya başlamadan önce yürütülecek. (I34726)
Sürüm 1.6.0-alpha05
8 Şubat 2023
androidx.fragment:fragment-*:1.6.0-alpha05
iptal edilir. 1.6.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentManager.OnBackStackChagnedListener
arayüzü artıkFragmentManager
'de geri yığın değişiklikleri gerçekleştiğinde ek bilgi ve kontrol sağlayan iki ek geri çağırma (onBackStackChangeStarted
veonBackStackChangeCommitted
) sunuyor. (Ib7ce5, b/238686802)
API Değişiklikleri
Intent
veyaIntentSender
alanını kullananFragment
veFragmentManager
API'leri artık@NonNull
ile düzgün şekilde açıklama eklenmiş durumda. Bunun nedeni, boş değerin her zaman ilgili Android çerçeve API'lerinin hemen kilitlenmesine neden olmasıdır. (I06fd4)
Sürüm 1.6.0-alpha04
7 Aralık 2022
androidx.fragment:fragment-*:1.6.0-alpha04
iptal edilir. 1.6.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentStrictMode
, bir alt parçanın üst öğesinin görünüm hiyerarşisine yerleştirildiğini ancak üst öğeninchildFragmentManager
'ına eklenmediğini algılayan yeni birWrongNestedHierarchyViolation
ekledi. (I72521, b/249299268)
Davranış Değişiklikleri
- Parçalar artık
SavedStateRegistry
durumunuonAttach()
öncesine geri yükleyerek tüm yukarı yönlü yaşam döngüsü yöntemlerinde kullanılabilir olmasını sağlıyor. (I1e2b1)
API Değişiklikleri
fragment-testing-manifest
yapısı, manifest girişlerini parça testi bileşenlerinin geri kalanından ayırır. Bu durumda şunları yapabilirsiniz:
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Bu sayede, fragment-testing
ve androidx.test
arasındaki sürüm farklılığından kaynaklanan çakışmalar önlenir.(I8e534, b/128612536)
Hata Düzeltmeleri
- Fragment
1.5.5
: Fragment'lar artıkViewModel
durumunu, görünüm kayıtlı durumunun bir parçası olarak yanlışlıkla 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ı. 1.6.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
DialogFragment
sınıfını genişleten sınıfların artıkonDismiss()
geçersiz kılmalarında super'ı çağırması gerekecek. (I14798, b/238928865)
Hata Düzeltmeleri
- Parçaların her zaman uygun geri çağırmaları almasını sağlamak için yeni sağlayıcı geri çağırma arayüzlerinin (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) entegrasyonundan kaynaklanan gerilemeler düzeltildi. (I9b380,I34581, (I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)
Sürüm 1.6.0-alpha02
24 Ağustos 2022
androidx.fragment:fragment:1.6.0-alpha02
, androidx.fragment:fragment-ktx:1.6.0-alpha02
ve androidx.fragment:fragment-testing:1.6.0-alpha02
yayınlandı. 1.6.0-alpha02 sürümünde şu commit'ler yer alıyor.
Hata Düzeltmeleri
- Parça
1.5.2
: Aynı andapopBackStack()
vereplace()
işlemlerinin yürütülmesinin, çıkış parçalarının yanlışAnimation
/Animator
'yi çalıştırmasına neden olabildiği sorun düzeltildi. (Ib1c07, b/214835303)
Sürüm 1.6.0-alpha01
27 Temmuz 2022
androidx.fragment:fragment:1.6.0-alpha01
, androidx.fragment:fragment-ktx:1.6.0-alpha01
ve androidx.fragment:fragment-testing:1.6.0-alpha01
yayınlandı. 1.6.0-alpha01 sürümü şu commit'leri içerir.
Davranış Değişiklikleri
Fragment
'ların kaydedilmiş durumu tamamen özel kitaplık durumu (özelParcelable
sınıfları) ve geliştirici tarafından sağlanan durum arasında bölünmüştür. Geliştirici tarafından sağlanan durum artık her zaman bir parçanın durumunun tam olarak nereden kaynaklandığını belirlemeye olanak tanıyan birBundle
içinde depolanır. (b/207158202)
Hata Düzeltmeleri
- Parça
1.5.1
: AGP 7.4 ile birlikte gelen lint sürümünün kullanılması durumunda lint'in kilitlenmesine neden olanDialogFragmentCallbacksDetector
'deki gerileme düzeltildi. (b/237567009)
Bağımlılık güncellemesi
- Fragment
1.5.1
: Fragment kitaplığı artık Lifecycle2.5.1
kitaplığına bağlıdır. (Id204c) - Fragment
1.5.1
: Fragment kitaplığı artık Activity1.5.1
'ye 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ü şu commit'leri içerir.
Hata Düzeltmeleri
postponeEnterTransition
işlevini zaman aşımıyla kullanıp ertelenen parçayı değiştirmek artık ertelenen parçanın sızmasına neden olmuyor. (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ı. 1.5.6 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Menü öğeleri eklenmiş olsun veya olmasın herhangi bir Fragment'in kaldırılmasının etkinliğin menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
Lifecycle
zatenSTARTED
ise ve sonuç zaten mevcutsasetFragmentResultListener
içindeclearFragmentResultListener
çağrısının çalışmamasına neden olan sorun düzeltildi. (If7458)
Sürüm 1.5.5
7 Aralık 2022
androidx.fragment:fragment:1.5.5
, androidx.fragment:fragment-ktx:1.5.5
ve androidx.fragment:fragment-testing:1.5.5
yayınlandı. 1.5.5 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Parçalar artık
ViewModel
durumunu, görünüm kayıt defterinin kayıtlı durumu olarak yanlış ş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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Bir sağlayıcı geri çağırma arayüzü (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) uygulamayan bir ana makineyle özelFragmentController
kullanıldığında ve bunun kullanımdan kaldırılan dispatch işlevi çağrıldığında alt parçalara göndermenin başarısız olmasına 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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Geri yığındaki parçaların
onMultiWindowModeChanged()
,onPictureInPictureModeChanged()
,onLowMemory()
veonConfigurationChanged()
geri çağırmalarına neden olan hata düzeltildi. (I34581, I8dfe6, b/242570955) - İç içe yerleştirilmiş alt parçalar artık birden fazla
onMultiWindowModeChanged()
,onPictureInPictureModeChanged()
,onLowMemory()
veyaonConfigurationChanged()
geri çağırma işlemi 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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Aynı anda
popBackStack()
vereplace()
işlemi yürütmenin, çıkış yapan parçaların yanlışAnimation
/Animator
çalıştırmasına neden olabildiğ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ı. 1.5.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- AGP 7.4 ile birlikte gelen lint sürümünün kullanılması durumunda lint'in kilitlenmesine neden olan
DialogFragmentCallbacksDetector
ile ilgili gerileme düzeltildi. (b/237567009)
Bağımlılık güncellemesi
- Fragment kitaplığı artık Lifecycle
2.5.1
'a bağlıdır. (Id204c) - Fragment kitaplığı artık Activity
1.5.1
'ye bağlı. (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ü şu commit'leri içerir.
1.4.0 sürümünden beri yapılan önemli değişiklikler
- CreationExtras Entegrasyonu:
Fragment
artık Lifecycle2.5.0
'ınCreationExtras
aracılığıyla durum bilgisi içermeyenViewModelProvider.Factory
sağlayabilir. - Bileşen iletişim kutusu entegrasyonu:
DialogFragment
artıkonCreateDialog()
tarafından döndürülen varsayılan iletişim kutusu olarak Activity1.5.0
aracılığıylaComponentDialog
kullanıyor. - Kaydedilmiş örnek durumu yeniden düzenleme: Parçalar, örnek durumlarını kaydetme şeklini değiştirmeye başladı. Bu, parçada hangi durumun kaydedildiğini ve durumun kaynağını net bir şekilde belirlemeye yardımcı olmak için yapılan bir çalışmadır. Mevcut değişiklikler şunlardır:
FragmentManager
artık kaydedilmiş örnek durumunu doğrudan özel birParcelable
içine değil,Bundle
içine kaydediyor.Fragment Result APIs
aracılığıyla ayarlanan ve henüz teslim edilmemiş sonuçlar artıkFragmentManager
'nin dahili durumundan ayrı olarak kaydediliyor.- Artık her bir parçayla ilişkili durum,
FragmentManager
öğesinin dahili durumundan ayrı olarak kaydedilir. Böylece, tek bir parçayla ilişkili kaydedilmiş durum miktarını,FragmentManager
hata ayıklama günlüğünde bulunan benzersiz kimliklerle ilişkilendirebilirsiniz.Fragment
Diğer değişiklikler
FragmentStrictMode
artık özel üçüncü taraf parçalarının, sınıf adıyla birlikteallowViolation()
kullanarak belirli ihlal cezalarını atlamasına olanak tanıyor.- Etkinliğinizin
ActionBar
menüsünü sağlamak için kullanılan Fragment API'leri kullanımdan kaldırıldı. Activity1.4.0
'de eklenenMenuHost
veMenuProvider
API'leri, parçaların kullanması gereken, test edilebilir ve yaşam döngüsüne duyarlı eşdeğer bir API yüzeyi sağlar.
Sürüm 1.5.0-rc01
11 Mayıs 2022
androidx.fragment:fragment:1.5.0-rc01
, androidx.fragment:fragment-ktx:1.5.0-rc01
ve androidx.fragment:fragment-testing:1.5.0-rc01
yayınlandı. 1.5.0-rc01 sürümü şu commit'leri içerir.
Kayıtlı örnek durumu yeniden düzenleme
- Her bir parçayla ilişkili durum artık
FragmentManager
'nın dahili durumundan ayrı olarak kaydedilir. Böylece, tek bir parçayla ilişkili kaydedilmiş durum miktarını Parça hata ayıklama günlüğünde 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ü şu commit'leri içerir.
API Değişiklikleri
DialogFragment
,showNow
işleviyle eşlik içincommitNow
kullanan yeni birdismissNow
yöntemi ekledi. Bu işlemin,Dialog
öğesinin hemen kapatılmasını sağlamayacağını, yalnızcaFragmentManager
öğesinin durumunu eşzamanlı olarak güncelleyeceğini unutmayın. (I15c36, b/72644830)
Kayıtlı örnek durumu yeniden düzenleme
FragmentManager
artık kaydedilmiş örnek durumunu doğrudan özel birParcelable
içine değil,Bundle
içine kaydediyor. Bu, Fragments tarafından gerçekten kaydedilenler hakkında daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)- Fragment Result API'leri aracılığıyla ayarlanan ve henüz teslim edilmemiş sonuçlar artık
FragmentManager
'nin dahili durumundan ayrı olarak kaydediliyor. Bu, kaydedilmiş ö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ı. 1.5.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
Fragment
'nınsetHasOptionsMenu()
desteği sonlandırıldı. Menüleri ve menü öğelerini yönetmek için Fragment1.5.0-alpha04
sürüm notlarında belirtildiği gibi yeni menü API'leri kullanılmalıdır. (I7b4b4, b/226438239)
Sürüm 1.5.0-alpha04
23 Mart 2022
androidx.fragment:fragment:1.5.0-alpha04
, androidx.fragment:fragment-ktx:1.5.0-alpha04
ve androidx.fragment:fragment-testing:1.5.0-alpha04
yayınlandı. 1.5.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Etkinliğinizin
ActionBar
için menü sağlayan Fragment API'leri, parçanızı etkinliğinize sıkı bir şekilde bağladığı ve bağımsız olarak test edilemediği için kullanımdan kaldırıldı. Activity1.4.0-alpha01
'de eklenenMenuHost
veMenuProvider
API'leri, parçaların kullanması gereken, test edilebilir ve yaşam döngüsüne duyarlı eşdeğer bir API yüzeyi sağlar. (I50a59, I20758)
Hata Düzeltmeleri
SavedStateViewFactory
artıkSavedStateRegistryOwner
ile başlatılmış olsa 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ı. 1.5.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Artık
CreationExtras
değeriniby 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
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ı. 1.5.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentStrictMode
artık özel üçüncü taraf parçalarının, sınıf adıyla birlikteallowViolation()
kullanarak belirli ihlal cezalarını atlamasına olanak tanıyor. (I8f678)
Sürüm 1.5.0-alpha01
26 Ocak 2022
androidx.fragment:fragment:1.5.0-alpha01
, androidx.fragment:fragment-ktx:1.5.0-alpha01
ve androidx.fragment:fragment-testing:1.5.0-alpha01
yayınlandı. 1.5.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
Fragment
artık Lifecycle2.5.0-alpha01
kapsamında kullanıma sunulan ViewModel CreationExtras ile entegre ediliyor. (I3060b, b/207012585)
Hata Düzeltmeleri
- Parça
1.4.1
:FragmentContainerView
, XML'den oluşturulan görünüm kimlikleri negatif değerlere sahip olduğunda artık yasa dışı durum istisnası oluşturmuyor. (Ic185b, b/213086140) - Parçadan
1.4.1
:by viewModels()
tembel işleviyle özel birownerProducer
lambda kullanılırken artık her zaman parçanın fabrikasını kullanmak yerine özel birViewModelProvider.Factory
sağlanmazsa söz konusu sahibindefaultViewModelProviderFactory
öğesi kullanılacak. (I56170, b/214106513) Fragment
öğesininregisterForActivityResult()
geri çağırmasından ilk kezViewModel
öğesine erişirken yaşanan kilitlenme sorunu düzeltildi. (Iea2b3)
Sürüm 1.4
Sürüm 1.4.1
26 Ocak 2022
androidx.fragment:fragment:1.4.1
, androidx.fragment:fragment-ktx:1.4.1
ve androidx.fragment:fragment-testing:1.4.1
yayınlandı. 1.4.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
FragmentContainerView
, XML'den oluşturulan görünüm kimlikleri negatif değerlere sahip olduğunda artık yasa dışı durum istisnası oluşturmuyor. (Ic185b, b/213086140)by viewModels()
lazy işleviyle özel birownerProducer
lambda kullanılırken artık her zaman parçanın fabrika işlevini kullanmak yerine özel birViewModelProvider.Factory
sağlanmazsa söz konusu sahibindefaultViewModelProviderFactory
işlevi kullanılacak. (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ü şu commit'leri içerir.
1.3.0 sürümünden beri yapılan önemli değişiklikler
FragmentStrictMode
API'leri, uygulamanızın veya bağlı olduğunuz kitaplıkların kullanımdan kaldırılan parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. İhlal tespit edildiğinde bir günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızın kilitlenmesini seçebilirsiniz. Hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol edenFragmentStrictMode.Policy
, yenisetStrictModePolicy()
yöntemiyleFragmentManager
üzerinde ayarlanabilir. Bu politika, söz konusuFragmentManager
için ve kendi benzersiz politikasını ayarlamayan tüm alt parça yöneticileri için geçerlidir. Parçalar için StrictMode başlıklı makaleyi inceleyin.FragmentContainerView
artık kapsayıcıya en son eklenen parçayı döndüren birgetFragment()
yöntemi sunuyor. Bu işlev,FragmentContainerView
kimliğiylefindFragmentById()
ile aynı mantığı kullanır ancak çağrının zincirlenmesine izin verir.val navController = binding.container.getFragment<NavHostFragment>().navController
FragmentScenario
artıkCloseable
'yi uyguluyor. Bu sayede, Kotlin'inuse
yöntemi veya try-with-resources ile kullanabilirsiniz.Eklendi
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
Temanızdan alınan standart Etkinlik-geçiş animasyonunun Parçalar geçişinde etkinleştirilip etkinleştirilmeyeceğini belirtmek için kullanılır.FragmentManager.enableNewStateManager(boolean)
deneysel API'si kaldırıldı ve artık yalnızca yeni durum yöneticisi kullanılabiliyor.
Birden fazla geri yığın
FragmentManager
, addToBackStack()
kullanılan parça işlemlerinden oluşan bir geri yığınını korur. Bu sayede, Durumu parçalarla kaydetme mekanizmalarını kullanarak bu işlemleri pop edebilir ve önceki duruma dönebilirsiniz. Böylece parçalarınız durumlarını uygun şekilde geri yükleyebilir.
Bu sürüm, FragmentManager
, saveBackStack(String name)
ve restoreBackStack(String name)
olmak üzere üç yeni clearBackStack(String name)
API'si sunarak bu mekanizmaları genişletir. Bu API'ler, name
ile aynı addToBackStack()
'yi kullanarak FragmentTransaction
'nin durumunu ve bu işlemlerde eklenen her parçanın durumunu kaydeder. Böylece, bu işlemleri ve parçalarını daha sonra durumları bozulmadan geri yükleyebilirsiniz. Bu sayede, geçerli geri yığını kaydedip kaydedilmiş bir geri yığını geri yükleyerek birden fazla geri yığın arasında etkili bir şekilde "geçiş" yapabilirsiniz.
saveBackStack()
, popBackStack()
ile benzer şekilde çalışır. Yani eşzamansızdır ve bu ada geri dönen tüm parça işlemlerinin geri alınmasına ("popped") ve eklenen tüm parçaların yok edilip kaldırılmasına neden olur. Ancak birkaç önemli açıdan farklılık gösterir:
saveBackStack()
her zaman dahil edilir.- Belirtilen ad geri yığında bulunmazsa veya null ad sağlanırsa geri yığındaki tüm işlemleri açan
popBackStack()
'dan farklı olarak, daha önceaddToBackStack()
ile tam olarak aynı ve null olmayan bir ad kullanarak parça işlemi yapmadıysanızsaveBackStack()
hiçbir işlem yapmaz. - Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Bu, her parçanın görünüm durumunun depolandığı, her parçanın
onSaveInstanceState()
işlevinin çağrıldığı ve durumun geri yüklendiği, bu parçalarla ilişkili tümViewModel
örneklerinin tutulduğu (ve bunlar üzerindeonCleared()
işlevinin çağrılmadığı) anlamına gelir.
saveBackStack()
ile kullanılabilen parça işlemlerin belirli ölçütleri karşılaması gerekir:
- İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her parça işleminde
setReorderingAllowed(true)
kullanılmalıdır. - Kaydedilen işlemlerin daha sonraki bir zamanda geri yüklenebilmesi için kendi içinde tutarlı olması gerekir (yani, bu işlem kümesinin dışındaki parçalara açıkça referans vermemesi gerekir). Bu sayede, arada geçen sürede geri yığında yapılan değişikliklerden bağımsız olarak işlemler geri yüklenebilir.
FragmentManager
, geri yığın kaydedildikten sonra kaydedilmiş parçalara herhangi bir referans döndürmemesini sağlamak için kaydedilen hiçbir parça saklanan bir parça olamaz veya geçişli alt parça kümesinde saklanan bir parça bulunamaz.
Önceden kaydedilmiş bir geri yığını geri yükleyen veya önceden kaydedilmiş bir geri yığınını temizleyen saveBackStack()
, restoreBackStack()
ve clearBackStack()
'ye benzer şekilde, aynı adla saveBackStack()
'yı daha önce çağırmadıysanız her ikisi de hiçbir şey yapmaz.
Daha fazla bilgi için Birden fazla geri yığını: Ayrıntılı inceleme başlıklı makaleyi inceleyin.
Sürüm 1.4.0-rc01
3 Kasım 2021
androidx.fragment:fragment:1.4.0-rc01
Fragment 1.4.0-beta01 sürümünde herhangi bir değişiklik yapılmadan yayınlandı. 1.4.0-rc01 sürümü şu commit'leri 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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Üst parçalar artık kendi geri çağırmalarını başlatmadan önce
onHiddenChanged()
tüm hiyerarşileri boyunca gönderir. (Iedc20, b/77504618) - Klavye artık açık klavyeli bir parçadan geri dönüşüm görünümü içeren bir parçaya geçildiğinde otomatik olarak kapanacak. (I8b842, b/196852211)
DialogFragment
artıkshow()
,showNow()
veyadismiss()
'i çağırdığınızda oluşturduğu tüm işlemler içinsetReorderingAllowed(true)
kullanıyor. (Ie2c14)DetachAndAttachFragmentInSameFragmentTransaction
ile ilgili çok uzun hata analizi uyarısıDetachAndAttachSameFragment
olarak kısaltıldı. (e9eca3)
Sürüm 1.4.0-alpha10
29 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha10
, androidx.fragment:fragment-ktx:1.4.0-alpha10
ve androidx.fragment:fragment-testing:1.4.0-alpha10
yayınlandı. 1.4.0-alpha10 sürümü şu commit'leri içerir.
Lint
- Aynı
FragmentTransaction
içinde aynıFragment
üzerinde hemdetach()
hem deattach()
çağrısının algılanması içinDetachAndAttachFragmentInSameFragmentTransaction
lint uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde yapıldığında birbirini iptal ettiğinden, gerçekten bir şey yapmak için ayrı işlemlere bölünmeleri gerekir. (aosp/1832956, b/200867930) MenuHost
addMenuProvider
API'si kullanılırken Fragment yaşam döngüsünün Fragment görünümü yaşam döngüsüyle ilgili kullanımlarını düzeltmek içinFragmentAddMenuProvider
lint hatası eklendi. (aosp/1830457, b/200326272)
Belge Güncellemeleri
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
veonRequestPermissionsResult
olmak üzere artık Activity Result API'leri tarafından işlenen API'lerin desteğinin sonlandırılmasıyla ilgili mesajlar daha ayrıntılı hale getirildi. (cce80f)- Hem
Fragment
hem deDialogFragment
içinonActivityCreated()
desteğinin sonlandırılmasıyla ilgili mesaj, daha fazla ayrıntı içerecek şekilde genişletildi. (224db4)
Sürüm 1.4.0-alpha09
15 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha09
, androidx.fragment:fragment-ktx:1.4.0-alpha09
ve androidx.fragment:fragment-testing:1.4.0-alpha09
yayınlandı. 1.4.0-alpha09 sürümünde şu commit'ler yer alıyor.
Yeni Özellikler
- Artık
clearBackStack(name)
ile daha önce kaydedilmiş durumları temizlemek içinsaveBackStack(name)
numaralı telefonu arayabilirsiniz. (I70cd7)
API Değişiklikleri
FragmentContainerView
sınıfı Kotlin'de yeniden yazıldı. Bu sayedegetFragment
işlevinin nullability'ye uygun şekilde uyması sağlandı. (If694a, b/189629145)- FragmentStrictMode artık Kotlin ile yazılıyor (I11767, b/199183506)
Hata Düzeltmeleri
setReorderingAllowed(true)
ile eklenen ve bekleyen işlemler yürütülmeden hemen önce kaldırılan bir Fragment'ın durumunun düzgün şekilde temizlenmemesi sorunu düzeltildi. (I8ccb8)
Sürüm 1.4.0-alpha08
1 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha08
, androidx.fragment:fragment-ktx:1.4.0-alpha08
ve androidx.fragment:fragment-testing:1.4.0-alpha08
yayınlandı. 1.4.0-alpha08 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
UseRequireInsteadOfGet
Lint kontrolü, gereksiz parantezleri daha iyi işleyecek şekilde iyileştirildi. (I2d865)- Ek uç durumları işlemek için
UseGetLayoutInflater
Lint kontrolü 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
, önemli bir değişiklik yapılmadan yayınlandı. 1.4.0-alpha07 sürümü şu commit'leri içerir.
Sürüm 1.4.0-alpha06
4 Ağustos 2021
androidx.fragment:fragment:1.4.0-alpha06
, androidx.fragment:fragment-ktx:1.4.0-alpha06
ve androidx.fragment:fragment-testing:1.4.0-alpha06
yayınlandı. 1.4.0-alpha06 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Hızlıca arka yığınlar arasında geçiş yaparken birden fazla arka yığınla ilgili bir sorun düzeltildi. Bu sorun,
FragmentTransaction
geri yüklenirkenIllegalStateException
olarak görünüyordu veya bir parçanın ikinci kopyası olarak görünüyordu. (I9039f) FragmentManager
'nın,saveBackStack()
ile daha önce kaydedilmiş bir durumun kopyasını, bu durum geri yüklendikten sonra bile tutmasıyla ilgili sorun düzeltildi. (Ied212)- DialogFragment'ı özellikle
show(FragmentTransaction, String)
yöntemiyle eklerken durum kaydedildikten sonradismissAllowingStateLoss()
yöntemi çağrıldığındaDialogFragment
artık kilitlenmiyor. (I84422)
Sürüm 1.4.0-alpha05
21 Temmuz 2021
androidx.fragment:fragment:1.4.0-alpha05
, androidx.fragment:fragment-ktx:1.4.0-alpha05
ve androidx.fragment:fragment-testing:1.4.0-alpha05
yayınlandı. 1.4.0-alpha05 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Fragment
1.3.6
: Kök görünümdetransitionGroup=”true”
ayarlanmışkenhide()
kullanılırken Fragment'ın görünümü artık doğru şekildeGONE
olarak ayarlanıyor. (aosp/1766655, b/193603427) - Fragment
1.3.6
:FragmentActivity
artık her zaman, geçersiz kıldığı yaşam döngüsü geri çağırmalarında ilk işlem olarak kaydedilmiş durumu açar. (I6db7a)
Bağımlılık güncellemesi
- Fragment
1.3.6
: Fragment artık Activity1.2.4
'ye (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ı. 1.4.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
FragmentManager
artık durumunu kaydetmek için arka plandaSavedStateRegistry
kullanıyor.saveAllState()
verestoreSavedState()
yöntemleri deFragmentController
'de kullanımdan kaldırıldı. ParçalarıFragmentActivity
dışında barındırmak içinFragmentController
kullanıyorsanızFragmentHostCallbacks
,SavedStateRegistryOwner
'yi uygulamalıdır. (Iba68e, b/188734238)
Hata Düzeltmeleri
- Birden fazla geri çağırma yığınını destekleme kapsamında
saveBackStack()
işlevine yapılan çağrının,replace()
işlevini kullanan birFragmentTransaction
işleviyle aynı anda yapıldığında başarısız olmasına neden olan sorun düzeltildi. (I73137) restoreBackStack()
API'si çoklu geri yığın desteği için kullanılırken birden fazla işlem içeren kaydedilmiş bir geri yığının manuel olarak geri yüklenmesinden sonra oluşanNullPointerException
düzeltildi. Bu düzeltme,setReorderingAllowed(true)
tüm işlemler için kontrol edilmemesine neden olan sorunu da giderdi. (I8c593)FragmentManager
'dan kaldırılmış olsalar bileFragmentManager
'nın, daha önce kaydedilmiş parça durumunu yanlış bir şekilde geri yüklemeye devam etmesi ve bu nedenle kaydedilmiş 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ı. 1.4.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Tüm Fragment StrictMode
Violation
sınıfları, ihlalin ayrıntılarını açıklayan daha ayrıntılı hata mesajlarıyla güncellendi. (b/187871638)FragmentTagUsageViolation
artık parçanın ekleneceği üst kapsayıcıyı içeren daha ayrıntılı bir hata mesajı içeriyor. (Ic33a7)WrongFragmentContainerViolation
artık parçanın eklendiği kapsayıcıyı içeren daha ayrıntılı bir hata mesajına sahip. (Ib55f8)TargetFragmentUsageViolation
için kullanım alanı sınıfları artık ihlale neden olan parçayı ve içerdiği diğer bilgileri içeren daha ayrıntılı hata mesajlarına sahip. (Icc6ac)RetainInstanceUsageViolation
sınıfını genişleten sınıflar artık ihlale neden olan parçayı içeren daha ayrıntılı hata mesajlarına sahip. (I6bd55)FragmentReuseViolation
artık önceki parçanın kimliğini içeren daha ayrıntılı bir hata mesajına sahip. (I28ce2)SetUserVisibleHintViolation
artık kullanıcının görebileceği ipucunun neye ayarlandığını içeren daha ayrıntılı bir hata mesajına sahip. (Ib2d5f)
Davranış Değişiklikleri
fitsSystemWindows
üzerindeFragmentContainerView
numaralı telefonu arama kısıtlaması geri alındı. Bu işlem artık uygulamanızın kilitlenmesine neden olmuyor. (6b8ddd, b/190622202)
Hata Düzeltmeleri
- Fragment
1.3.5
: aosp/1679887 tarafından Fragment1.3.4
'te kullanıma sunulan paylaşılan öğe geçişlerindeki gerileme düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
üzerinden veya dolaylı olaraktransitionName
ya dabackground
üzerinden ayarlanmış) doğru şekilde işliyor ve paylaşılan öğeler artıkIndexOutOfBoundsException
oluşturmuyor. (I16484, b/188679569, b/188969304) FragmentManager
, artık bir kaldırma parçasını gizlemeye çalıştığınızda kilitlenmeyecek. (I573dd, b/183634730)OnCreateDialogIncorrectCallback
Lint kontrolü, üst düzey bir değişken değerlendirilirken artık kilitlenmeyecek. (0a9efa, b/189967522)
Sürüm 1.4.0-alpha02
2 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha02
, androidx.fragment:fragment-ktx:1.4.0-alpha02
ve androidx.fragment:fragment-testing:1.4.0-alpha02
yayınlandı. 1.4.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentStrictMode
,FragmentManager
üzerinden günlük kaydı etkinleştirildiğinde, kullanılan mevcut yüksek düzey mod politikasına bakılmaksızın artık her zaman ihlalleri günlüğe kaydeder. (I02df6, b/187872638)FragmentStrictMode
artık belirliFragment
sınıfların katı moddan muaf tutulmasınıViolation
destekliyor. Bu sayede, ilgili sınıf herhangi bir cezadan muaf tutuluyor. (Ib4e5d, b/184786736)FragmentStrictMode
Violation
sınıfı, her ihlale dayalı yapı bilgileri eklemek için genişletildi. Bu sayede, ihlale neden olan unsuru ve ihlalde bulunan parçayı (If5118, b/187871150) tam olarak doğrulayabilirsiniz. HerViolation
aşağıdaki bilgileri içerir:WrongFragmentContainerViolation
artıkFragment
'ın eklenmeye çalıştığıViewGroup
'ı içeriyor. (I83c75, b/187871150)TargetFragmentUsageViolation
,SetTargetFragmentUsageViolation
,GetTargetFragmentUsageViolation
veGetTargetFragmentRequestCodeUsageViolation
olarak genişletildi.SetTargetFragmentUsageViolation
, hedef parçayı ve istek kodunu içerir. (I741b4, b/187871150)SetUserVisibleHintViolation
artıksetUserVisibleHint()
'ye iletilen Boole değerini içeriyor. (I00585, b/187871150)FragmentTagUsageViolation
artık<fragment>
etiketinin bir parçayı şişirmeye çalıştığı ViewGroup'u içeriyor.(I5dbbc, b/187871150)FragmentReuseViolation
artık ihlale neden olanFragment
öğesinin önceki örneğinin benzersiz kimliğini içeriyor. (I0544d, b/187871150)RetainInstanceUsageViolation
artık soyuttur ve ihlal türüyle ilgili iki durumu temsil edenSetRetainInstanceUsageViolation
veGetRetainInstanceUsageViolation
olmak üzere iki alt sınıfı vardır. (Ic81e5, b/187871150)
Davranış Değişiklikleri
FragmentContainerView
özelliği programatik olarak veya XML aracılığıyla değiştirilmeye çalışıldığında artık istisna oluşturuyor.fitsSystemWindow
Yerleştirmeler, her bir parçanın görünümü tarafından işlenmelidir. (Ie6651, b/187304502)
Sürüm 1.4.0-alpha01
18 Mayıs 2021
androidx.fragment:fragment:1.4.0-alpha01
, androidx.fragment:fragment-ktx:1.4.0-alpha01
ve androidx.fragment:fragment-testing:1.4.0-alpha01
yayınlandı. 1.4.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentContainerView
artık kapsayıcıya en son eklenen parçayı döndüren birgetFragment()
yöntemi sunuyor. Bu işlev,FragmentContainerView
kimliğiylefindFragmentById()
ile aynı mantığı kullanır ancak çağrının zincirlenmesine izin verir. (Ife17a, b/162527857)val navController = binding.container.getFragment<NavHostFragment>().navController
Eklendi
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
Temanızdan alınan standart Etkinlik-geçiş animasyonunun Parçalar geçişinde etkinleştirilip etkinleştirilmeyeceğini belirtmek için kullanılır. (I46652)
Birden fazla geri yığın
FragmentManager
, addToBackStack()
kullanılan parça işlemlerinden oluşan bir geri yığınını korur. Bu sayede, Durumu parçalarla kaydetme mekanizmalarını kullanarak bu işlemleri pop edebilir ve önceki duruma dönebilirsiniz. Böylece parçalarınız durumlarını uygun şekilde geri yükleyebilir.
Bu sürüm, iki yeni FragmentManager
API (saveBackStack(String name)
ve restoreBackStack(String name)
) sağlayarak bu mekanizmaları genişletir. Bu API'ler, name
ile aynı addToBackStack()
'yi kullanarak FragmentTransaction
'nin durumunu ve bu işlemlerde eklenen her parçanın durumunu kaydeder. Böylece, bu işlemleri ve parçalarını daha sonra durumları bozulmadan geri yükleyebilirsiniz. Bu sayede, geçerli geri yığını kaydedip kaydedilmiş bir geri yığını geri yükleyerek birden fazla geri yığın arasında etkili bir şekilde "geçiş" yapabilirsiniz.
saveBackStack()
, popBackStack()
ile benzer şekilde çalışır. Yani eşzamansızdır ve bu ada geri dönen tüm parça işlemlerinin geri alınmasına ("popped") ve eklenen tüm parçaların yok edilip kaldırılmasına neden olur. Ancak birkaç önemli açıdan farklılık gösterir:
saveBackStack()
her zaman dahil edilir.- Belirtilen ad geri yığında bulunmazsa veya null ad sağlanırsa geri yığındaki tüm işlemleri açan
popBackStack()
'dan farklı olarak, daha önceaddToBackStack()
ile tam olarak aynı ve null olmayan bir ad kullanarak parça işlemi yapmadıysanızsaveBackStack()
hiçbir işlem yapmaz. - Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Bu, her parçanın görünüm durumunun depolandığı, her parçanın
onSaveInstanceState()
işlevinin çağrıldığı ve durumun geri yüklendiği, bu parçalarla ilişkili tümViewModel
örneklerinin tutulduğu (ve bunlar üzerindeonCleared()
işlevinin çağrılmadığı) anlamına gelir.
saveBackStack()
ile kullanılabilen parça işlemlerin belirli ölçütleri karşılaması gerekir:
- İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her parça işleminde
setReorderingAllowed(true)
kullanılmalıdır. - Kaydedilen işlemlerin daha sonraki bir zamanda geri yüklenebilmesi için kendi içinde tutarlı olması gerekir (yani, bu işlem kümesinin dışındaki parçalara açıkça referans vermemesi gerekir). Bu sayede, arada geçen sürede geri yığında yapılan değişikliklerden bağımsız olarak işlemler geri yüklenebilir.
FragmentManager
, geri yığın kaydedildikten sonra kaydedilmiş parçalara herhangi bir referans döndürmemesini sağlamak için kaydedilen hiçbir parça saklanan bir parça olamaz veya geçişli alt parça kümesinde saklanan bir parça bulunamaz.
saveBackStack()
'ya benzer şekilde, daha önce aynı adla saveBackStack()
'yı çağırmadıysanız restoreBackStack()
hiçbir şey yapmaz. (b/80029773)
Fragment StrictMode
FragmentStrictMode
API'leri, uygulamanızın veya bağlı olduğunuz kitaplıkların kullanımdan kaldırılan parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı kontrolleri sağlar. İhlal tespit edildiğinde bir günlük mesajı yazdırmayı, kendi özel dinleyicinizi tetiklemeyi veya uygulamanızın kilitlenmesini seçebilirsiniz. Hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy
, yeni setStrictModePolicy()
yöntemiyle FragmentManager
üzerinde ayarlanabilir. Bu politika, söz konusu FragmentManager
için ve kendi benzersiz politikasını ayarlamayan tüm alt parça yöneticileri için geçerlidir. (#123, #131, #150, b/143774122)
detectFragmentReuse()
, daha önce kaldırılan birFragment
örneğinin birFragmentManager
'ye yeniden eklenip eklenmediğini algılar. BirFragment
örneği yok edildikten veFragmentManager
'den kaldırıldıktan sonra bu örnekle hiçbir zaman etkileşime girmemeli veya bu örneğe referans vermemelisiniz. (#142, b/153738653)detectFragmentTagUsage()
, düzen XML'nizde<fragment>
etiketini kullandığınızda bunu algılar. Düzeninizin bir parçası olarak parçaları genişletirken her zamanFragmentContainerView
kullanmanız gerekir. (#141, b/153738235)detectWrongFragmentContainer()
,FragmentContainerView
olmayan bir kapsayıcıya parça eklediğinizde bunu algılar. Düzeninizdeki parçalar için her zamanFragmentContainerView
kapsayıcısını kullanmalısınız. (#146, b/181137036)detectRetainInstanceUsage()
, desteği sonlandırılmışsetRetainInstance()
veyagetRetainInstance()
API'lerini kullandığınızda bunu algılar. (#140, b/153737954)detectSetUserVisibleHint()
, kullanımdan kaldırılansetUserVisibleHint()
API'sini kullandığınızda bunu 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'si kaldırıldı ve artık yalnızca yeni durum yöneticisi kullanılabiliyor. (I90036, b/162776418)FragmentScenario
artıkCloseable
'yi uyguluyor. Bu sayede, Kotlin'inuse
yöntemi veya try-with-resources ile kullanabilirsiniz. (#121, b/143774122)
Yeni hata analizi kontrolleri
UseGetLayoutInflater
Lint kontrolü artıkDialogFragment
içindeLayoutInflater.from(Context)
kullanılırken uyarı veriyor.LayoutInflater
için uygun olanı almak üzere her zaman iletişim kutusu parçasınıngetLayoutInflater()
yöntemini kullanmanız gerekir. (#156, b/170781346)DialogFragmentCallbacksDetector
Lint kontrolü artıkDialogFragment
sınıfınınonCreateDialog()
yöntemindesetOnCancelListener
veyasetOnDismissListener
çağrıldığında uyarı veriyor. Bu dinleyicilerDialogFragment
sınıfına aittir ve bu geri aramaları almak içinonCancel()
veonDismiss()
yöntemlerini geçersiz kılmanız gerekir. (#171, b/181780047, b/187524311)
Hata Düzeltmeleri
- Fragment 1.3.4:
ViewTreeViewModelStoreOwner.get()
API'siViewModelProvider
ile veya bir Fragment içindeviewModel()
Jetpack Compose yöntemiyle kullanılırken Fragment1.3.3
sürümünde ortaya çıkan regresyon düzeltildi. Bu kullanım alanları artıkgetDefaultViewModelProviderFactory()
'yi geçersiz kılıyorsa (@AndroidEntryPoint
ek açıklamalı parçalar Hilt kullanırken yaptığı gibi) Parçanız tarafından sağlananViewModelProvider.Factory
'yı doğru şekilde kullanıyor. Bu yöntemi geçersiz kılmıyorsanız varsayılan fabrika olarak, Fragment'ın görünümüyle birlikte durumunu kaydeden ve geri yükleyen birSavedStateViewModelFactory
oluşturulur. (I5cbfa, b/186097368) - Fragment 1.3.4'ten itibaren: API 29'da
FragmentContainerView
kullanılırken artık ekler süresiz olarak gönderilmeyecek. BöyleceBottomNavigationBar
veFloatingActionButton
örnekleriyle ilgili sorunlar düzeltilecek. (I1bb78, b/186012452) - Fragment 1.3.4: Artık işlem sonlandırıldıktan sonra Parcelable'ınızı parça sonucu paketinden alabilirsiniz. (I65932, b/187443158)
- Fragment 1.3.4: ViewGroup'da paylaşılan öğe geçişi yapılırken ViewGroup'un
transitionGroup
değeri false olarak ayarlanmışsa artık düzgün şekilde geçiş yapılır. (I99675)
Harici Katkı (External Contribution)
FragmentScenario
uygulamasındaCloseable
özelliğini etkinleştirdiği için simonschiller'a teşekkür ederiz. (#121, b/143774122)- Bu sürüm için
FragmentStrictMode
API'nin tamamını ekleyen simonschiller'a teşekkür ederiz. (#123, #131, #150, b/143774122, #142, b/153738653, #141, b/153738235, #146, b/181137036, #140, b/153737954, #136, b/153738974, #139, b/153737745) UseGetLayoutInflater
Lint kontrolünü eklediği için tatocaster'a teşekkür ederiz. (#156, b/170781346)DialogFragmentCallbacksDetector
Lint kontrolünü eklediği 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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Parça
1.4.0-alpha03
: Kaldırılan bir parçayı gizlemeye çalıştığınızdaFragmentManager
artık kilitlenmeyecek. (I573dd, b/183634730) - Kök görünümde
transitionGroup=”true”
ayarlandığındahide()
kullanılırken Fragment'ın görünümü artıkGONE
olarak doğru şekilde ayarlanıyor. (aosp/1766655, b/193603427) FragmentActivity
artık her zaman, geçersiz kıldığı yaşam döngüsü geri çağırmalarında ilk işlem olarak kaydedilmiş durumu kilidini açar. (I6db7a)
Bağımlılık güncellemesi
- Fragment
1.3.6
: Fragment artık Activity1.2.4
'ye (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ü şu commit'leri içerir.
Hata Düzeltmeleri
- aosp/1679887 ile Fragment
1.3.4
'te kullanıma sunulan paylaşılan öğe geçişlerindeki gerileme düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
üzerinden veya dolaylı olaraktransitionName
ya dabackground
üzerinden ayarlanmış) doğru şekilde işliyor ve paylaşılan öğeler artıkIndexOutOfBoundsException
oluşturmuyor. (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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Hilt kullanılırken
ViewTreeViewModelStoreOwner.get()
API'siViewModelProvider
ile veya bir Fragment içindeviewModel()
Jetpack Compose yöntemiyle kullanıldığında Fragment1.3.3
içinde ortaya çıkan bir gerileme düzeltildi. Bu kullanım alanları artıkgetDefaultViewModelProviderFactory()
öğesini geçersiz kılıyorsa Fragment'ınız tarafından sağlananViewModelProvider.Factory
öğesini doğru şekilde kullanıyor (@AndroidEntryPoint
ile açıklama eklenmiş Fragment'lar gibi). Bu yöntemi geçersiz kılmıyorsanız varsayılan fabrika olarak, Fragment'ın görünümüyle birlikte durumunu kaydeden ve geri yükleyen birSavedStateViewModelFactory
oluşturulur. (I5cbfa, b/186097368) - API 29'da
FragmentContainerView
kullanılırken artık sonsuza kadar yerleştirme gönderilmeyecek. BöyleceBottomNavigationBar
veFloatingActionButton
örnekleriyle ilgili sorunlar düzeltilecek. (I1bb78, b/186012452) - Artık işlem sonlandırıldıktan sonra Parcelable'ınızı fragment sonucu paketinden alabilirsiniz. (I65932, b/187443158)
- Bir ViewGroup'da paylaşılan öğe geçişi yapılırken ViewGroup'un
transitionGroup
değeri false olarak ayarlanmışsa artık düzgün şekilde geçiş yapılır. (I99675)
Sürüm 1.3.3
21 Nisan 2021
androidx.fragment:fragment:1.3.3
, androidx.fragment:fragment-ktx:1.3.3
ve androidx.fragment:fragment-testing:1.3.3
yayınlandı. 1.3.3 sürümü şu commit'leri içerir.
Yeni Özellikler
SavedStateViewModelFactory
artıkViewTreeSavedStateRegistryOwner.get()
ile Fragment's View kullanılarak döndürülenSavedStateRegistryOwner
ile birlikte kullanıldığında çalışıyor. (I21acf, b/181577191)
Hata Düzeltmeleri
- Fragment
1.3.2
'te kullanıma sunulan veNavHostFragment
tarafından kullanılanlar gibisetPrimaryNavFragment
işlemi içeren birFragmentTransaction
açıldığındapopEnter
animasyonlarının çalışmamasına neden olan gerileme düzeltildi. (I38c87, b/183877426) FragmentContainerView
artık herFragment
için yeni birWindowInsets
grubu gönderilmesini sağlayarak her parçanın artık ekleri bağımsız olarak kullanabilmesini sağlar. (I63f68, b/172153900)DialogFragment
artık özelDialog
sınıfınızdaki bir kapsayıcıyla aynı kimliğe sahip bir kapsayıcıya alt parça eklendiği durumları düzgün şekilde işliyor. Böylece,BottomSheetDialog
gibi iletişim kutuları tarafından dahili olarak kullanılan kimlikler yeniden kullanıldığında görünüm hiyerarşisi sorunları düzeltiliyor. (Ie6279, b/180021387)FragmentManager.dump()
artık etkin parçalar listesindeki ilk parçayı düzgün şekilde girintiliyor. (If5c33, b/183705451)
Yeni State Manager hata düzeltmeleri
- Yeni parça durumu yöneticisi artık çıkış geçişlerini gizleme işlemleriyle 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ü şu commit'leri içerir.
Yeni State Manager hata düzeltmeleri
- Hem
popBackStack()
hem decommit()
işlemleri birlikte çalıştırıldığında son işlem, bazı pop animasyonlarını ve bazı giriş animasyonlarını çalıştırmak yerine artık tüm animasyonların yönünü belirleyecektir. (I7072e, b/181142246) - Paylaşılan öğe hiyerarşisindeki görünümler, paylaşılan öğe geçişi yapılırken artık geçiş adlarını temizlemeyecek. (I4d4a6, b/179934757)
Bağımlılık Güncellemeleri
- Fragment artık Activity 1.2.2'ye bağlıdır. Bu sayede, Fragment 1.3.1 veya daha yeni bir sürümü kullanılırken Activity'nin
InvalidFragmentVersionForActivityResult
lint kontrolüyle ilgili bir sorun düzeltilir. - Fragment artık Lifecycle 2.3.1'e bağlıdır.
Sürüm 1.3.1
10 Mart 2021
androidx.fragment:fragment:1.3.1
, androidx.fragment:fragment-ktx:1.3.1
ve androidx.fragment:fragment-testing:1.3.1
yayınlandı. 1.3.1 sürümü şu commit'leri içerir.
Yeni Özellikler
DialogFragment
içindeki iletişim kutuları artık DecorView'ları aracılığıyla ViewTree sahiplerine erişebilir. Bu sayedeDialogFragment
,ComposeView
ile kullanılabilir. (Ib9290, b/180691023)
Hata Düzeltmeleri
- FragmentContainerView kullanılarak zaten
RESUMED
etkinliğine yerleştirilmiş parçalar, yapılandırma değişikliğinden sonra artık düzgün şekilde gösteriliyor. (Ie14c8, b/180538371) - Parçanın sonunda artık fazladan bir
}
yoktoString()
(I54705, b/177761088) - FragmentActivity'deki geçersiz kılınan yöntemler artık temel yöntem javaDoc'u düzgün şekilde devralıyor (I736ce, b/139548782)
setFragmentResult
vesetFragmentResultListener
ile ilgili dokümanlar, artık null değerleri kabul etmediklerini yansıtacak şekilde parametre dokümanlarını güncelledi (I990ba, b/178348386).
Yeni State Manager hata düzeltmeleri
mFocusedView
(Ib4e9e, b/179925887) nedeniyle parçalarda oluşan bellek sızıntısı düzeltildi.- Parçalar artık göster/gizle işlemlerini kullanırken
onCreateOptionsMenu
işlevini doğru şekilde çağırıyor (I8bce8, b/180255554). - Parça yerleştirilmeden önce başlayan geçişlere sahip alt parçalar artık
RESUMED
'ya doğru şekilde ulaşacak (Ic11e6, b/180825150) <fragment>
etiketi kullanılarak genişletilen parçalar artık her zamanRESUMED
'a ulaşacak (I452ac, (I9fa49)
Bağımlılık Güncellemeleri
- Fragment 1.3.1, Activity
1.2.1
'ye 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ü şu commit'leri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
- Yeni State Manager:
FragmentManager
'in iç kısımlarının önemli ölçüde yeniden yazılmasıyla yaşam döngüsü etkinliklerinin, animasyonların ve geçişlerin gönderilmesiyle ilgili çok sayıda sorun ve ertelenen parçaların işlenme şekli düzeltildi. Activity Result API Entegrasyonu:
startActivityForResult()
+onActivityResult()
verequestPermissions()
+onRequestPermissionsResult()
akışlarını işlemek için Activity1.2.0
'de kullanıma sunulanActivityResultRegistry
API'si için destek eklendi. Ayrıca, bu akışları test etmek için kancalar sağlamanın yanı sıra Fragment'ınızdaki yöntemleri geçersiz kılmadan bu akışları işleyebilirsiniz. Güncellenen Bir Etkinlikten Sonuç Alma başlıklı makaleyi inceleyin.- Bu sürümde, Activity Result API'nin
FragmentActivity
'nın önceki sürümlerinde çalışmasını engelleyen geçersiz istek kodları ve izin isteklerinin gönderilmesiyle ilgili çeşitli sorunlar düzeltilmiştir. Activity Result API'leriniFragmentActivity
veyaAppCompatActivity
içinde kullanmak için Fragment 1.3.0'a yükseltmeniz gerekir.
- Bu sürümde, Activity Result API'nin
Fragment Result API:
FragmentManager
üzerindeki yeni API'ler aracılığıyla sonuçların iki Fragment arasında aktarılması için destek eklendi. Bu, hiyerarşi parçaları (üst/alt), DialogFragment'lar ve Navigation'daki parçalar için geçerlidir. Sonuçların yalnızca Fragment'ınız en azSTARTED
durumundayken gönderilmesini sağlar. Hedef fragment API'leri, bu yeni API'ler lehine kullanımdan kaldırıldı. Parça Sonucu API'sini kullanarak sonuç alma başlıklı makaleyi inceleyin.FragmentOnAttachListener
:FragmentActivity
veFragment
üzerindekionAttachFragment()
geri çağırma işlevinin desteği sonlandırıldı. Daha esnek bir alternatif sunmak için yeni birFragmentOnAttachListener
eklendi. Bu sayedeonAttachFragment()
, ayrı ve test edilebilir dinleyicilere devredilebiliyor ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara dinleyici ekleme destekleniyor.FragmentScenario
İyileştirmeler:fragment-testing
yapıtındakiFragmentScenario
sınıfı Kotlin ile yeniden yazıldı ve çeşitli iyileştirmeler yapıldı:FragmentScenario
artıkmoveToState()
'i uygulamak içinsetMaxLifecycle()
kullanıyor. Bu sayede, tüm API düzeylerinde tutarlı davranış sağlanıyor ve Fragment'ın durumu temel Activity'den ayrılıyor.FragmentScenario
artık herLifecycle.State
'ye ilk kez geçmeden önce parçanın durumunu onaylamayı desteklemek için başlangıçLifecycle.State
ayarlamayı destekliyor.- Artık
FragmentScenario
API'sininonFragment
yerine, değer döndürmenize olanak tanıyan Kotlin reified uzantı yöntemiwithFragment
şeklinde bir alternatif bulunmaktadır. Özellikle, belirtilen blokta oluşturulan istisnaları yeniden oluşturur.
ViewTree
Destek:Fragment
artık Lifecycle2.3.0
ve SavedState1.1.0
'te eklenenViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
veViewTreeSavedStateRegistryOwner
API'lerini destekliyor. Bu sayede,Fragment
içindeView
kullanılırken Fragment'ıViewModelStoreOwner
olarak,SavedStateRegistryOwner
veLifecycleOwner
'yi de fragment'ın view Lifecycle'ına bağlı olarak döndürüyor.TRANSIT_
animasyon değişiklikleri: Parçanın varsayılan efektleri olanTRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
artıkAnimation
yerineAnimator
kullanıyor. Bu animasyonları oluşturmak için kullanılan kaynaklar artık gizli.setRetainInstance()
desteğinin sonlandırılması: ParçalardakisetRetainInstance()
yöntemi için destek sonlandırıldı. ViewModels'in kullanıma sunulmasıyla birlikte geliştiriciler, durumun korunması için Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilen belirli bir API'ye sahip oldu. Bu sayede geliştiriciler, saklanmayan normal bir Fragment kullanabilir ve saklanmasını istedikleri belirli durumu ayrı tutabilir. Böylece, saklanan durumun tek bir oluşturma ve yok etme işleminin faydalı özelliklerini (yaniViewModel
oluşturucusu ve aldığıonCleared()
geri çağırması) korurken yaygın bir bellek sızıntısı kaynağı önlenir.ViewPager 1 bağdaştırıcısının desteğinin sonlandırılması: ViewPager2
1.0.0
'nin yayınlanmasıyla birlikteViewPager
ile etkileşim için kullanılanFragmentPagerAdapter
veFragmentStatePagerAdapter
sınıflarının desteği sonlandırıldı. ViewPager'dan ViewPager2'ye taşıma başlıklı makaleyi inceleyin.
Sürüm 1.3.0-rc02
27 Ocak 2021
androidx.fragment:fragment:1.3.0-rc02
, androidx.fragment:fragment-ktx:1.3.0-rc02
ve androidx.fragment:fragment-testing:1.3.0-rc02
yayınlandı. 1.3.0-rc02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Yapılandırma değişikliğinden sonra bir ebeveyn
DialogFragment
öğesinin bir alt öğeninDialogFragment
üzerinde görünmesine neden olan sorun düzeltildi. Alt öğe iletişim kutusu parçaları artık her zaman ebeveyn iletişim kutusu parçalarının üzerinde görünüyor. (I30806, b/177439520) hide
işlemi yapmanın,Animation
ile birlikte kullanıldığında gizleme parçasının animasyonun sonunda yanıp sönmesine neden olması sorunu düzeltildi. (I57e22, b/175417675)- Görünüm hiyerarşisi eklenmeden önce geçişler eklenen parçalar artık
RESUMED
'ya doğru şekilde ulaşıyor. (I1fc1d, b/177154873)
Yeni State Manager hata düzeltmeleri
- Fragment'ın görünümü
Lifecycle
artık Fragment'ın görünümününLifecycle
durumuna ulaşmadan önce yok edildiği durumları düzgün şekilde işleyerek "INITIALIZED'dan aşağıya doğru etkinlik yok" ifadesini içeren istisnaları önlüyor. (eda2bd, b/176138645)CREATED
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ü şu commit'leri içerir.
Hata Düzeltmeleri
onPrepareOptionsMenu()
artıkonCreateOptionsMenu()
ile aynı mantığı izliyor ve bir üst parçasetMenuVisibility(false)
öğesini çağırdığında artık çağrılmıyor. (Id7de8, b/173203654)
Yeni State Manager hata düzeltmeleri
Animation
içeren bir parçayıFragmentContainerView
öğesine eklerken ve ardından bu ekleme işlemini bir pop işlemiyle kesintiye uğratırken oluşan sızıntı ve görsel yapaylık sorunu düzeltildi. (I952d8)- Parçanın görünümünün,
onCreate()
veyaonViewCreated()
yöntemleri sırasında değiştirilmesi durumunda görünüm hiyerarşisinde kalmasına neden olan sorun düzeltildi. (I8a7d5) - Odak artık devam ettirildiklerinde Fragment kök görünümlerine düzgün şekilde geri yükleniyor. (Ifc84b)
- Aynı parça işleminde pop ve değiştirme işlemlerinin birleştirilmesi artık uygun animasyonları gösterecek (Ifd4e4, b/170328691).
Sürüm 1.3.0-beta02
2 Aralık 2020
androidx.fragment:fragment:1.3.0-beta02
, androidx.fragment:fragment-ktx:1.3.0-beta02
ve androidx.fragment:fragment-testing:1.3.0-beta02
yayınlandı. 1.3.0-beta02 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentScenario
, Kotlin 1.4'ünFragmentAction
için işlevsel arayüzleri kullanılarak kaynak ve ikili uyumluluk korunurken tamamen Kotlin'e dönüştürüldü. (I19d31)
Davranış Değişiklikleri
- Artık
class
veyaandroid:name
özelliğini kullanarak bir parçayı genişletmeyen FragmentContainerView'larFragmentActivity
dışında kullanılabilir. (Id4397, b/172266337) - Bir parçanın maksimum yaşam döngüsünü
DESTROYED
olarak ayarlamaya çalışmak artıkIllegalArgumentException
istisnası oluşturacak (Ie7651, b/170765622). - Artık
DESTROYED
durumuyla bir FragmentScenario başlatıldığındaIllegalArgumentException
istisnası oluşturulacak (I73590, b/170765622).
Yeni State Manager 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)- Çıkış animasyonu olan parçaların düzgün şekilde yok edilmesini engelleyen sorun düzeltildi.
Animation
(I83d65) - Efektleri tersine çevrilmiş çıkış parçaları artık doğru şekilde iptal ediliyor ve uygun giriş efektiyle yeniden başlatılıyor. (I62226, b/167092035)
- Bir
hide()
çıkışınınAnimator
çalışmamasına neden olan sorun düzeltildi. (Id7ffe) - Parçalar, ertelendikten sonra hemen başlatıldığında artık düzgün şekilde görünüyor. (Ie713b, b/170022857)
- Animasyon sırasında odaklanmış görünümünü kaldıran parçalar,
RESUMED
'ya (I38c65, b/172925703) ulaştıktan sonra odağı ayrılmış görünümde geri yüklemeye çalışmayacak.
Harici Katkı (External Contribution)
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ü şu commit'leri içerir.
Yeni Özellikler
setMaxLifecycle()
artık parçaCREATED
'e taşınmadığı süreceLifecycle
durumununINITIALIZING
olarak ayarlanmasını destekliyor. (b/159662173)
API Değişiklikleri
- Kotlin 1.4'ü kullanmak için androidx'i yükseltin (Id6471, b/165307851, b/165300826)
Davranış Değişiklikleri
- Parça kaynak dosyaları doğru şekilde gizli hale getirilmiştir. (aosp/1425237)
Hata Düzeltmeleri
<fragment>
etiketi kullanılarak şişirilen parçalar artık STARTED'a (I02f4c) geçmeden önce görünümleri bir kapsayıcıya eklenene kadar düzgün şekilde bekleyecek.- Görünür olan ve ardından
setMaxLifecycle()
ileCREATED
arasında geçiş yapan parçalar artık çıkış efektlerini düzgün şekilde çalıştırıyor. (b/165822335) - Geri yığına eklenmemiş ayrılmış bir parçanın kaldırılması artık bellek sızıntısına neden olmuyor. Nicklas Ansman Giertz'in izniyle (b/166489383)
- Etkin parçalarda artık her zaman sıfır olmayan bir
FragmentManager
olacak ve sıfır olmayan birFragmentManager
içeren parçalar her zaman etkin kabul edilecek. (aosp/1422346) - Parça varsayılan efektleri
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
artıkAnimation
yerineAnimator
kullanıyor. (b/166155034)
Yeni State Manager hata düzeltmeleri
- Parçalar artık animasyonlarına başlamadan hemen önceki görünüm odak durumunu doğru şekilde geri yüklüyor. (Icc256)
- Artık yalnızca paylaşılan öğe geçişine sahip olan parçalar, özel efektlerini düzgün şekilde tamamlayarak son durumlarına geçiyor (Iaebc7, b/166658128).
- Parça görünümleri artık yok edilmeden önce her zaman kapsayıcıdan kaldırılıyor. (Id5876)
- Yeni durum yöneticisi, artık çıkış yapan parçalanmış görünümü, giriş yapan parçalanmış görünümü eklemeden önce tutarlı bir şekilde kaldırıyor. (I41a6e)
- Bir parça görünümünün görünürlüğünde yapılan açık değişiklikler artık yeni durum yöneticisi tarafından dikkate alınıyor. Bu nedenle, animasyon başlamadan önce giren bir parçanın görünümünü
INVISIBLE
olarak ayarlarsanız bu parça görünmez kalır. (b/164481490) - Parçalar artık
Animators
öğesineAnimations
öğesinden daha fazla öncelik veriyor. Yani her ikisini de içeren bir parça yalnızcaAnimator
öğesini çalıştıracak veAnimation
öğesini yoksayacak. (b/167579557) - Yeni durum yöneticisi, giriş animasyonları kullanılırken artık parçaların yanıp sönmesine neden olmuyor. (b/163084315)
Bilinen Sorun
Yeni durum yöneticisini kullanırken özel efekt girme sırasında önceki parçaya dönmek yerine geri tuşuna basarsanız eski parça hiçbir zaman yeniden eklenmez ve ekran boş kalır. (b/167259187, b/167092035, b/168442830)
Sürüm 1.3.0-alpha08
19 Ağustos 2020
androidx.fragment:fragment:1.3.0-alpha08
, androidx.fragment:fragment-ktx:1.3.0-alpha08
ve androidx.fragment:fragment-testing:1.3.0-alpha08
yayınlandı. 1.3.0-alpha08 sürümü şu commit'leri içerir.
Yeni State Manager
Bu sürümde, FragmentManager
öğesinin dahili durum yönetiminde önemli bir yeniden düzenleme yapıldı. Bu düzenleme, yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin gönderilmesini ve ertelenen işlemlerin nasıl işleneceğini etkiliyor. Bu ayar varsayılan olarak etkindir. Daha fazla bilgi için Fragments: Rebuilding the Internals blog yayınını inceleyin. (b/139536619, b/147749580)
FragmentManager.enableNewStateManager(boolean)
içindeki deneysel bir API, FragmentManager'ın yeni durum yöneticisini kullanıp kullanmayacağını kontrol etmek için 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 artık doğru şekilde durduruluyor. (b/161654580)- Parçalar artık aynı parçalarda birden fazla rekabet eden animasyonu önleyerek bir
Animation
öğesinin tümTransition
efektlerini geçersiz kıldığı veya tek bir parçada hemAnimator
hem deTransition
öğesinin çalıştığı durumları engelliyor. (b/149569323) - Giren ve çıkan tüm parçaların
enterTransition
veexitTranstion
değerleri artık yalnızca son giren parça ve ilk çıkan parça yerine çalıştırılıyor. (b/149344150) - Ertelenen parçalar artık
CREATED
durumunda takılıp kalmıyor, bunun yerine diğer parçalarla birlikteSTARTED
durumuna geçiyor. (b/129035555) FragmentManager
, ertelenmiş yeniden sıralanmış bir işlem ile yeniden sıralanmamış bir işlem karıştırıldığında işlemlerin sırasını karıştırıyordu. Bu sorun düzeltildi. (b/147297731)- Birden fazla parçayı aynı anda kaldırma işlemi, parçaları ertelediğinizde artık ara parçaların geçici olarak görünmesine neden olmayacak. (b/37140383)
FragmentManager
artıkonAttachFragment()
geri çağırma işlevi içindenfindFragmentById()
veyafindFragmentByTag()
çağrıldığında doğru parçaları döndürüyor. (b/153082833)- Parçalar, kendilerini değiştiren parça ertelendiğinde artık yok edilen parçalarda
onCreateView()
işlevini çağırmıyor. (b/143915710) - Çerçeve
Transition
ve AndroidXTransition
örnekleri birleştirilmeye çalışıldığında gösterilen hata mesajında artık geçersiz geçişe sahip parça belirtiliyor. (b/155574969)
Davranış Değişiklikleri
- Artık bir parçanın
onCreate()
yaşam döngüsü yöntemindeActivityResultLauncher
üzerindelaunch()
öğesini çağırabilirsiniz. (b/161464278) registerForActivityResult()
,onCreate()
çağrıldıktan sonra artık yapılandırma değişikliğinden sonra sonuçların sessizce iletilememesi yerine bunun izin verilmediğini belirten bir istisna oluşturuyor. (b/162255449)FragmentActivity
artıkFragmentManager
durumunu geri yüklemek için Activity1.2.0-alpha08
'de kullanıma sunulanOnContextAvailableListener
API'sini kullanıyor.FragmentActivity
alt sınıflarına eklenen tüm işleyiciler bu işleyiciden sonra çalışır. (I513da)
Hata Düzeltmeleri
startIntentSenderForResult()
kullanılırken iletilenActivityOptions
artık dikkate alınıyor. (b/162247961)
Bilinen Sorun
- Yeni durum yöneticisi kullanılırken, parçanın kök görünümünün görünürlüğünü doğrudan
onViewCreated()
sonrasında veonResume()
öncesinde ayarlamak, kök görünümün görünürlüğünü kontrol edenFragmentManager
tarafından ayarladığınız görünürlüğün geçersiz kılınmasına neden olur. Geçici çözüm olarak, parçanızın görünürlüğünü değiştirmek için her 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ı. 1.3.0-alpha07 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentScenario
artık Fragment'ı her zamanRESUMED
durumuna taşımak yerineCREATED
,STARTED
veyaRESUMED
için başlangıç yaşam döngüsü durumu ayarlamayı destekliyor. (b/159662750)- Değer döndürmenize olanak tanıyan Kotlin reified uzantı yöntemi
withFragment
biçiminde,onFragment
FragmentScenario
API'sinin alternatifi eklendi. Özellikle, belirtilen blokta oluşturulan istisnaları yeniden oluşturur. (b/158697631)
Davranış Değişiklikleri
FragmentScenario
artıkmoveToState()
'i uygulamak içinsetMaxLifecycle()
kullanıyor. Bu sayede, tüm API düzeylerinde tutarlı davranış sağlanıyor ve Fragment'ın durumu temel Activity'den ayrılı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ı. Bu sayede, durumunun kaydedilmesi ve parça görünümüyle aynı anda geri yüklenmesi sağlanır. (b/158503763)
Hata Düzeltmeleri
- Parçalar artık
ViewCompat.requestApplyInsets()
işlevini çağırmadan önce parçanın görünümünün eklenmesini bekliyor. Böylece, yerleştirme isteğinin bırakıldığı durumlar önleniyor. (b/158095749) clearFragmentResultListener
numarası arandığında yaşam döngüsü gözlemcisi artık düzgün şekilde temizleniyor. (b/159274993)
Sürüm 1.3.0-alpha06
10 Haziran 2020
androidx.fragment:fragment:1.3.0-alpha06
, androidx.fragment:fragment-ktx:1.3.0-alpha06
ve androidx.fragment:fragment-testing:1.3.0-alpha06
yayınlandı. 1.3.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentActivity
veFragment
üzerindekionAttachFragment()
geri çağırma işlevinin desteği sonlandırıldı. Daha esnek bir alternatif sunmak için yeni birFragmentOnAttachListener
eklendi. Bu sayedeonAttachFragment()
, ayrı ve test edilebilir dinleyicilere devredilebiliyor ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara dinleyici ekleme destekleniyor. (I06d3d)
Hata Düzeltmeleri
- Ebeveyn parçalarının görünüm durumu artık alt parçalarından önce geri yükleniyor. Bu sayede, bir
DialogFragment
başka birDialogFragment
öğesini alt parça olarak gösterdiğinde yapılandırma değişikliğinden sonra oluşan görsel sıralama sorunu düzeltiliyor. (b/157195715) UseRequireInsteadOfGet
Lint denetiminin,?.
ve!!
operatörlerinin zincirleme kullanımlarını doğru şekilde işlememesine neden olan sorun düzeltildi. (b/157677616)
Sürüm 1.3.0-alpha05
20 Mayıs 2020
androidx.fragment:fragment:1.3.0-alpha05
, androidx.fragment:fragment-ktx:1.3.0-alpha05
ve androidx.fragment:fragment-testing:1.3.0-alpha05
yayınlandı. 1.3.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
Fragment
içindeView
kullanılırken Lifecycle2.3.0-alpha03
'danViewTreeViewModelStoreOwner
ve SavedState1.1.0-alpha01
'tenViewTreeSavedStateRegistryOwner
için destek eklendi. (aosp/1297993, aosp/1300264)
API Değişiklikleri
setFragmentResult()
vesetFragmentResultListener()
API'leri artık sırasıyla boş olmayan birBundle
veFragmentResultListener
parametresi alıyor. Daha önce ayarlanmış bir sonucu veya dinleyiciyi açıkça temizlemek için yeniclearFragmentResult()
veclearFragmentResultListener()
yöntemlerini kullanın. (b/155416778)- Lambda alan
setFragmentResultListener()
Kotlin uzantıları artıkinline
olarak işaretleniyor. (b/155323404)
Davranış Değişiklikleri
Fragment
üzerindeki daha önce desteği sonlandırılmışstartActivityForResult()
,startIntentSenderForResult()
verequestPermissions
artık dahili olarakActivityResultRegistry
kullanıyor. Bu nedenle, bu API'leri kullanırken istek kodlarınız için yalnızca düşük bitleri (0xFFFF
'ın altında) kullanma kısıtlaması kaldırıldı. (b/155518741)
Belge Güncellemeleri
Fragment(@LayoutRes int)
veDialogFragment(@LayoutRes int)
oluşturucularla ilgili dokümanları genişleterek varsayılanFragmentFactory
kullanılırken alt sınıflarınızın bağımsız oluşturucusundan çağrılmaları gerektiğini netleştirdik. (b/153042497)
Sürüm 1.3.0-alpha04
29 Nisan 2020
androidx.fragment:fragment:1.3.0-alpha04
, androidx.fragment:fragment-ktx:1.3.0-alpha04
ve androidx.fragment:fragment-testing:1.3.0-alpha04
yayınlandı. 1.3.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
FragmentManager
üzerindeki yeni API'ler aracılığıyla iki Fragment arasında sonuç iletme desteği eklendi. Bu, hiyerarşi parçaları (üst/alt), DialogFragment'lar ve Navigation'daki parçalar için geçerlidir. Sonuçların yalnızca Fragment'ınız en azSTARTED
durumundayken gönderilmesini sağlar. (b/149787344)
API Değişiklikleri
- Hedef fragment 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'taki
startActivityForResult()
/onActivityResult()
verequestPermissions()
/onRequestPermissionsResult()
API'leri kullanımdan kaldırıldı. Lütfen Activity Result API'lerini kullanın. (aosp/1290887) - Etkinlik
1.2.0-alpha04
ile ilgili uyumsuz değişiklik:prepareCall()
yöntemi,registerForActivityResult()
olarak yeniden adlandırıldı. (aosp/1278717)
Hata Düzeltmeleri
- Parçanın
getViewLifecycleOwner()
işlevi artıkonSaveInstanceState()
işlevi çağrılmadan önce durduruluyor. Bu, parçanın yaşam döngüsünün davranışını yansıtıyor. (b/154645875) - Bir parçada
setMenuVisibility(false)
çağrısı yapıldığında, alt parçaları tarafından sağlanan menülerin görünürlüğü artık doğru şekilde değiştiriliyor. (b/153593580) FragmentContainerView
ile bir parçayıDialogFragment
'nin görünüm hiyerarşisine eklerken oluşanillegalStateException
düzeltildi. (b/154366601)- Parçalarınızı bir etkinliğin dışında barındırdığınızda parçalardaki
getDefaultViewModelProviderFactory()
yöntemi artık kilitlenmiyor. (b/153762914)
Sürüm 1.3.0-alpha03
1 Nisan 2020
androidx.fragment:fragment:1.3.0-alpha03
, androidx.fragment:fragment-ktx:1.3.0-alpha03
ve androidx.fragment:fragment-testing:1.3.0-alpha03
yayınlandı. 1.3.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
Fragment
üzerindekiprepareCall
yöntemleri artıkfinal
. (b/152439361)
Hata Düzeltmeleri
BottomSheetDialogFragment
kullanılırken Fragment1.3.0-alpha02
'ta ortaya çıkan 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 sorunu düzeltildi. (b/152137004) setTargetFragment()
kullanılırken paylaşılan öğe ve çıkış geçişlerinin yoksayılmasına neden olan sorun düzeltildi. (b/152023196)- Parça
1.2.4
: Parça ProGuard kuralları, tutulan parçaların karartılmasına izin verecek şekilde güncellendi. (b/151605338) - Fragment
1.2.4
: Yaşam döngüleri ve görünüm yaşam döngüleri her zaman senkronize olduğundanFragmentLiveDataObserve
Lint kuralıDialogFragment
sınıflarında devre dışı bırakıldı. Bu sayedeobserve
çağrılırkenthis
veyaviewLifecycleOwner
kullanmak güvenli hale geldi. (b/151765086)
Bağımlılık Değişiklikleri
- Parçalar, Etkinlik
1.2.0-alpha03
'e bağlıdır. Etkinlik1.2.0-alpha02
'te Etkinlik Sonucu API'sinde önemli iyileştirmeler yapılmıştır.
Sürüm 1.3.0-alpha02
18 Mart 2020
androidx.fragment:fragment:1.3.0-alpha02
, androidx.fragment:fragment-ktx:1.3.0-alpha02
ve androidx.fragment:fragment-testing:1.3.0-alpha02
yayınlandı. 1.3.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
ActivityResultRegistry
API'si için destek eklendi. Bu API, Activity1.2.0-alpha02
'de kullanıma sunulmuştu. Bu API,startActivityForResult()
+onActivityResult()
verequestPermissions()
+onRequestPermissionsResult()
akışlarını işlemek için kullanılır. Ayrıca, bu akışları test etmek için kancalar sağlamanın yanı sıra Fragment'ınızdaki yöntemleri geçersiz kılmadan bu akışları işler. Güncellenen Bir Etkinlikten Sonuç Alma başlıklı makaleyi inceleyin. (b/125158199)
API Değişiklikleri
DialogFragment
artıkonCreateView()
'nin varsayılan olarak genişletmesi gereken düzeni belirten bir@LayoutRes
alanını alan bir oluşturucu sağlar. (b/150327080)onActivityCreated()
yöntemi artık kullanımdan kaldırıldı. Parçanın görünümüne dokunan kodonViewCreated()
içinde (onActivityCreated()
'den hemen önce çağrılır) yapılmalı, diğer başlatma kodu iseonCreate()
içinde olmalıdır. Özellikle etkinliğinonCreate()
tamamlandığında geri arama almak içinonAttach()
içindeki etkinliğinLifecycle
üzerinde birLifeCycleObserver
kaydedilmeli veonCreate()
geri araması alındıktan sonra kaldırılmalıdır. (b/144309266)
Hata Düzeltmeleri
- Parça
1.2.3
:onCreateDialog()
içindengetLayoutInflater()
çağrılırkenStackOverflowError
'ye neden olanDialogFragment
'deki hata düzeltildi. (b/117894767, aosp/1258664) - Fragment
1.2.3
: Kullanılmayan Fragment sınıflarının kaldırılabilmesi için Fragment'ın dahil edilen ProGuard kurallarının kapsamı daraltıldı. (b/149665169) - Parça
1.2.3
: Kotlin özellik adını gölgeleyen yerel bir değişken adı kullanılırkenUseRequireInsteadOfGet
Lint kontrolündeki yanlış pozitifler düzeltildi. (b/149891163) - Fragment
1.2.3
:FragmentContainerView
artık düzen önizlemesinde yanlış oluşturucu kullanıldığındaUnsupportedOperationException
oluşturmuyor. (b/149707833)
Bilinen Sorunlar
BottomSheetDialogFragment
artık iletişim kutusunu ekranda doğru şekilde konumlandırmıyor. (b/151652127)
Sürüm 1.3.0-alpha01
4 Mart 2020
androidx.fragment:fragment:1.3.0-alpha01
, androidx.fragment:fragment-ktx:1.3.0-alpha01
ve androidx.fragment:fragment-testing:1.3.0-alpha01
yayınlandı. 1.3.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
ViewTreeLifecycleOwner.get(View)
API'si için destek eklendi. Bu API, Lifecycle2.3.0-alpha01
'da eklenmişti.onCreateView()
tarafından döndürülen tüm Görünümler için Fragment'ınviewLifecycleOwner
değeriniLifecycleOwner
olarak döndürür. (aosp/1182955)
API Değişiklikleri
- Parçalardaki
setRetainInstance()
yöntemi kullanımdan kaldırıldı. ViewModels'in kullanıma sunulmasıyla birlikte geliştiriciler, durumun korunması için Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilen belirli bir API'ye sahip oldu. Bu sayede geliştiriciler, saklanmayan normal bir Fragment kullanabilir ve saklanmasını istedikleri belirli durumu ayrı tutabilir. Böylece, saklanan durumun tek bir oluşturma ve yok etme işleminin faydalı özelliklerini (yaniViewModel
oluşturucusu ve aldığıonCleared()
geri çağırması) korurken yaygın bir bellek sızıntısı kaynağı önlenir. (b/143911815) - ViewPager2
1.0.0
'nin yayınlanmasıyla birlikteViewPager
ile etkileşim için kullanılanFragmentPagerAdapter
veFragmentStatePagerAdapter
sınıfları kullanımdan kaldırıldı. ViewPager'dan ViewPager2'ye taşıma başlıklı makaleyi inceleyin. (b/145132715)
Hata Düzeltmeleri
- Fragment ProGuard kuralları artık yalnızca kullanılan
Fragment
sınıfları için varsayılan oluşturucuları doğru şekilde tutuyor ve tümFragment
örnekleri için tutmuyor. Bu sayede, Fragment1.2.1
'ta ortaya çıkan gerileme düzeltiliyor. (b/149665169 require___()
Fragment1.2.2
'a eklenen Lint kuralları, aynı ada sahip yerel değişkenlerde artık yanlış pozitif sonuç vermiyor.Bu değişkenler, gölgelenen Kotlin özellik adlarıyla aynı ada sahip (ör.view
). (b/149891163)- Android Studio'da düzen önizlemesi kullanılırken
FragmentContainerView
artıkUnsupportedOperationException
oluşturmuyor. (b/149707833) - Durum kaydedildikten sonra eklenen tutulan parçaların sürekli olarak yeniden oluşturulup 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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Parçanın
getViewLifecycleOwner()
işlevi artıkonSaveInstanceState()
işlevi çağrılmadan önce durduruluyor. Bu, parçanın yaşam döngüsünün davranışını yansıtıyor. Bu özellik daha önce Fragment1.3.0-alpha04
'ta yayınlanmıştı. (b/154645875) - Bir parçada
setMenuVisibility(false)
çağrısı yapıldığında, alt parçaları tarafından sağlanan menülerin görünürlüğü artık doğru şekilde değiştiriliyor. Bu özellik daha önce Fragment1.3.0-alpha04
'ta yayınlanmıştı. (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ü şu commit'leri içerir.
Hata Düzeltmeleri
- Fragment ProGuard kuralları, tutulan parçaların karartılmasına izin verecek şekilde güncellendi. (b/151605338)
- Yaşam döngüleri ve görünüm yaşam döngüleri her zaman senkronize olduğundan
FragmentLiveDataObserve
Lint kuralıDialogFragment
sınıflarında devre dışı bırakıldı. Bu nedenle,observe
çağrılırkenthis
veyaviewLifecycleOwner
kullanmak güvenlidir. (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ü şu commit'leri içerir.
Hata Düzeltmeleri
DialogFragment
'da,onCreateDialog()
içindengetLayoutInflater()
aranırkenStackOverflowError
'a neden olan hata düzeltildi. (b/117894767, aosp/1258665)- Kullanılmayan Fragment sınıflarının kaldırılabilmesi için Fragment'in dahil ettiği ProGuard kurallarının kapsamı daraltıldı. (b/149665169)
- Kotlin özellik adını gölgeleyen 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şturucu kullanıldığındaUnsupportedOperationException
hatası vermiyor. (b/149707833)
Sürüm 1.2.2
Sürüm 1.2.2
19 Şubat 2020
androidx.fragment:fragment:1.2.2
, androidx.fragment:fragment-ktx:1.2.2
ve androidx.fragment:fragment-testing:1.2.2
yayınlandı. 1.2.2 sürümü şu commit'leri içerir.
Yeni hata analizi kontrolleri
- Lint,
onCreateView()
,onViewCreated()
veonActivityCreated()
'daOnBackPressedDispatcher
'ye yapılan aramalar içinLifecycleOwner
olarakviewLifecycleOwner
'nın kullanılmasını önerir. (b/142117657) fragment-testing
yapısını kullanırken doğrudebugImplementation
kullandığınızı doğrulayan yeni bir Lint kontrolü eklendi. (b/141500106)- Parçalar artık hem
get
hem derequire
eşdeğerini içeren tüm Parça API'leri içincheckNotNull(get___())
,requireNonNull(get___())
veyaget___()!!
yerine daha açıklayıcı hata mesajları için ilişkilirequire___()
yöntemlerinin kullanılmasını öneriyor. (aosp/1202883)
Hata Düzeltmeleri
- R8 uyarılarını önlemek için Fragment ProGuard dosyaları düzeltildi (b/148963981).
observe
kullanılırkenviewLifecycleOwner
kullanılmasını öneren mevcut Lint kontrolü,observe
'ninlivedata-ktx
uzantı yöntemi sürümünü de işleyecek şekilde iyileştirildi. (b/148996309)- Hata analizi kontrollerinin çoğunda biçimlendirme düzeltildi (aosp/1157012)
Harici katkılar
require___()
Lint kontrollerini Slack adına gönderdiği 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ı. 1.2.1 sürümü şu commit'leri içerir.
Hata düzeltmeleri
add
vereplace
yöntemleriyle eklenen veClass
örneği (veya Kotlin reified sürümleri) alan parçaların varsayılan oluşturucusu 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>
etiketiyle eklenen parçalarla çalışmaması sorunu düzeltildi. (b/147784323)<fragment>
etiketi kullanılarak şişirilen parçalar, artık düzende olduklarındaonCreate()
'den önce her zamanonInflate()
için bir çağrı alır. (aosp/1215856)- Etkinlik zaten yok edildiğinde artık
FragmentManager
örneğindetoString()
çağrısı yapıldığındaNullPointerException
oluşturulmuyor. (b/148189412)
Bağımlılık değişiklikleri
- Parçalar
1.2.1
artık Lifecycle ViewModel SavedState2.2.0
'e 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ı. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
- FragmentContainerView:
FragmentContainerView
,FrameLayout
veya diğer düzenlerin kullanımının yerine dinamik olarak eklenen Fragment'ler için kesinlikle önerilen kapsayıcıdır. Ayrıca,<fragment>
etiketiyle aynıclass
,android:name
ve isteğe bağlıandroid:tag
değerlerini destekler ancak bu ilk parçayı eklemek için<fragment>
tarafından kullanılan özel kod yolu yerine normal birFragmentTransaction
kullanır. onDestroyView()
zamanlama: Parçalar artıkonDestroyView()
işlevini çağırmadan önce çıkış animasyonlarının, çıkış çerçevesi geçişlerinin ve çıkış AndroidX geçişlerinin (Transition1.3.0
kullanılırken) tamamlanmasını bekliyor.- Sınıfa dayalı
add()
vereplace()
:FragmentTransaction
üzerindeadd()
vereplace()
içinClass<? extends Fragment>
ve isteğe bağlıBundle
bağımsız değişkenlerini alan yeni aşırı yüklemeler eklendi. Bu yöntemler, eklenecek Fragment örneğini oluşturmak içinFragmentFactory
kullanır. Gerçekleştirilmiş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)
) kullanan Kotlin uzantıları dafragment-ktx
'e eklendi. - Lifecycle ViewModel SavedState Integration:
SavedStateViewModelFactory
artıkby viewModels()
,by activityViewModels()
,ViewModelProvider
oluşturucusu veyaViewModelProviders.of()
ile Fragment kullanılırken kullanılan varsayılan fabrika. - Yeni hata analizi kontrolleri:
getViewLifecycleOwner()
,LiveData
,onCreateView()
,onViewCreated()
veyaonActivityCreated()
öğelerini gözlemlerkengetViewLifecycleOwner()
kullandığınızdan emin olmanızı sağlayan yeni bir hata analizi kontrolü eklendi. getFragmentManager()
desteğinin sonlandırılması: Fragment'tekigetFragmentManager()
verequireFragmentManager()
yöntemlerinin desteği sonlandırıldı ve bu yöntemler, Fragment'in eklendiği null olmayanFragmentManager
değerini döndüren tek birgetParentFragmentManager()
yöntemiyle değiştirildi (çağrılmasının güvenli olup olmadığını belirlemek içinisAdded()
kullanabilirsiniz).FragmentManager.enableDebugLogging()
desteğinin sonlandırılması: StatikFragmentManager.enableDebugLogging
yöntemi için destek sonlandırıldı. FragmentManager artıkFragmentManager
etiketi içinLog.isLoggable()
değerini dikkate alıyor. Böylece, uygulamanızı yeniden derlemedenDEBUG
veyaVERBOSE
günlük kaydını etkinleştirebilirsiniz.
Bilinen Sorunlar
- Yalnızca
FragmentContainerView
üzerindeclass
veyaandroid:name
özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak saklanmaz. Bu nedenle, her parça sınıfı için manuel olarak bir saklama kuralı eklemeniz gerekir. (b/142601969) FragmentContainerView
ile XML'declass
veyaandroid:name
kullanarakNavHostFragment
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ü şu commit'leri içerir.
Hata düzeltmeleri
<fragment>
etiketi kullanılırken Fragment1.2.0-rc04
'da gerilemeye neden olan ve etkinlik yok edilirkenonViewCreated()
'ın yanlış şekilde çağrılmasına yol açan hata düzeltildi. (b/146290333)<fragment>
etiketiyle eklenen parçaların, yalnızca bazen düzende (ör. yalnızca yatay düzeninizde) olsalar bile artık yapılandırılmamış kısımları düzgün şekilde temizleniyor. Sonuç olarak, bu parçalar artık düzeninizde olmasalar bile başlatılıp hiçbir yaşam döngüsü yöntemiyle taşınmak yerine 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ü şu commit'leri içerir.
Hata düzeltmeleri
- Görsel sorunları önlemek için
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
animasyonları ayarlandı. (b/145468417)
Sürüm 1.2.0-rc03
4 Aralık 2019
androidx.fragment:fragment:1.2.0-rc03
, androidx.fragment:fragment-ktx:1.2.0-rc03
ve androidx.fragment:fragment-testing:1.2.0-rc03
yayınlandı. 1.2.0-rc03 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Kaldırılan parçaların çıkış animasyonları / geçişleri çalışırken
findFragmentById()
/findFragmentByTag()
tarafından döndürülmeye devam etmesiyle ilgili istenmeyen davranış değişikliği düzeltildi. (b/143982969, aosp/1167585) - Kapsayan etkinlik
onSaveInstanceState()
işlevini çağırdığında alt parçalar artık üst parçalarından önce doğru şekilde durduruluyor. (b/144380645) - Gizli bir Fragment açıldıktan sonra Görünümlerin yanlışlıkla
INVISIBLE
olarak işaretlenmesine neden olan sorun düzeltildi. (b/70793925) - Paylaşılan öğe geçişleri artık döndürülmüş, ölçeklendirilmiş vb. görünümleri işleyebiliyor (b/142835261).
Belge Güncellemeleri
setUserVisibleHint()
ile ilgili desteğin sonlandırılması belgeleri netleştirildi. (b/143897055)setFragmentFactory()
vegetFragmentFactory()
ile ilgili dokümanları,FragmentFactory
ayarlanmasının alt FragmentManager'ları da etkileyeceğini daha iyi belirtecek şekilde iyileştirdik. (aosp/1170095)
Bağımlılık değişiklikleri
- Fragment'lar artık Lifecycle
2.2.0-rc03
, Lifecycle ViewModel SavedState1.0.0-rc03
ve Activity1.1.0-rc03
'ye 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ü şu commit'leri içerir.
Hata düzeltmeleri
- Kotlin'de
onCreateView()
,onViewCreated()
veyaonActivityCreated()
kaynaklıLiveData
gözlemlenirkengetViewLifecycleOwner()
kullanılmasına yönelik LintFix (Fragment1.2.0-rc01
'te kullanıma sunulmuştur) artıkgetViewLifecycleOwner()
yerine Kotlin özellik erişimi söz dizimiviewLifecycleOwner
'ı kullanıyor. (aosp/1143821)
Sürüm 1.2.0-rc01
23 Ekim 2019
androidx.fragment:fragment:1.2.0-rc01
, androidx.fragment:fragment-ktx:1.2.0-rc01
ve androidx.fragment:fragment-testing:1.2.0-rc01
yayınlandı. 1.2.0-rc01 sürümü şu commit'leri içerir.
Yeni özellikler
FragmentContainerView
artıkandroid:name
'ye ek olarakclass
özelliğini de destekliyor ve<fragment>
etiketinin işlevini yansıtıyor. (b/142722242)onCreateView()
,onViewCreated()
veyaonActivityCreated()
kaynaklıLiveData
değerini gözlemlerkengetViewLifecycleOwner()
kullandığınızdan emin olmanızı sağlayan yeni bir hata analizi kontrolü eklendi. (b/137122478)
Hata düzeltmeleri
DialogFragment
üzerindekionDismiss
veonCancel
geri çağırmaları artık kendilerine iletilenDialogInterface
değerinin null olmadığını ve yürütüldüklerindegetDialog()
değerinin null olmayan bir değer döndürdüğünü garanti eder. (b/141974033)FragmentContainerView
artıkclass
veyaandroid:name
tarafından tanımlanan Fragment'ı şişirme işleminin bir parçası olarak ekliyor. BöylecefindFragmentById()
vefindFragmentByTag()
hemen ardından çalışıyor. (b/142520327)- Durum kaydedildiği için
FragmentContainerView
içindeIllegalStateException
düzeltildi. (b/142580713) FragmentContainerView
sınıfı karartıldığındaFragmentContainerView
içindekiUnsupportedOperationException
düzeltildi. (b/142657034)
Bilinen sorunlar
- Yalnızca
FragmentContainerView
üzerindeclass
veyaandroid:name
özelliği aracılığıyla referans verilen parçalar ProGuard tarafından otomatik olarak saklanmaz. Bu nedenle, her parça sınıfı için manuel olarak bir saklama kuralı eklemeniz gerekir.FragmentContainerView
üzerinden düzeltilene kadaraapt2
'a 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ü şu commit'leri içerir.
Hata düzeltmeleri
- Fragment'ın
onInflate()
öğesininFragmentContainerView
öğesinden uygun özellikleri almaması nedeniyleNavHostFragment
gibi durumların bozulmasına neden olan sorun düzeltildi. (b/142421837)
Sürüm 1.2.0-beta01
9 Ekim 2019
androidx.fragment:fragment:1.2.0-beta01
, androidx.fragment:fragment-ktx:1.2.0-beta01
ve androidx.fragment:fragment-testing:1.2.0-beta01
yayınlandı. 1.2.0-beta01 sürümü şu commit'leri içerir.
Yeni özellikler
FragmentContainerView
,android:name
ve isteğe bağlıandroid:tag
XML özellikleri için ek destekle birlikte başlangıç parçası ekleme desteği sunar.<fragment>
etiketinin aksine,FragmentContainerView
ilk parçayı eklemek için arka planda normal birFragmentTransaction
kullanır. Bu sayede,FragmentContainerView
üzerinde daha fazlaFragmentTransaction
işlemi yapılabilir ve düzen için View Binding'in kullanılması sağlanır. (b/139830628, b/141177981)- Fragments artık
<fragment>
yerineFragmentContainerView
'yi kullanmak için hızlı düzeltme sunan bir Lint uyarısı içeriyor. (b/139830056)
Hata düzeltmeleri
androidx.transition
kullanılırkenClassCastException
sorunu düzeltildi. (b/140680619)- Transition
1.3.0-beta01
kullanılırken parçalar artıkonDestroyView()
işlemini göndermeden önceandroidx.transition
geçişlerinin (sırasıyla Fragment1.2.0-alpha03
ve Fragment1.2.0-alpha02
'te düzeltilen çerçeve geçişleri ve animasyonlara ek olarak) tamamlanmasını bekliyor. (aosp/1119841) - Geçiş
1.3.0-beta01
kullanılırken artık Fragment'lar, 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'ınızın kök görünümündeandroidx.transition
geçişleri kullanıldığında API 17 ve önceki sürümlerdeki bir sorun düzeltildi. (b/140361893)fragment-testing
yapısı artık AndroidX Test'e1.2.0
bağlıdır ve en yeni Espresso 3.2.0 ile uyumsuzluk düzeltilmiştir. (b/139100149)- FragmentManager'da
Log.w
kullanımı kaldırıldı. (aosp/1126468)
Bilinen sorunlar
- Parçanın
onInflate()
öğeleri,FragmentContainerView
öğesinden uygun özellikleri almıyor veNavHostFragment
gibi durumlar bozuluyor. (b/142421837)
Sürüm 1.2.0-alpha04
18 Eylül 2019
androidx.fragment:fragment:1.2.0-alpha04
, androidx.fragment-ktx:example:1.2.0-alpha04
ve androidx.fragment:fragment-testing:1.2.0-alpha04
yayınlandı. 1.2.0-alpha04 sürümü şu commit'leri içerir.
API değişiklikleri
Fragment
üzerindekigetFragmentManager()
verequireFragmentManager()
yöntemleri kullanımdan kaldırıldı ve Fragment'ın eklendiği null olmayanFragmentManager
değerini döndüren tek birgetParentFragmentManager()
yöntemiyle değiştirildi (çağrılmasının güvenli olup olmadığını belirlemek içinisAdded()
kullanabilirsiniz). (b/140574496)- Statik
FragmentManager.enableDebugLogging
yöntemi kullanımdan kaldırıldı. FragmentManager artıkFragmentManager
etiketi içinLog.isLoggable()
değerine uyar. Böylece, uygulamanızı yeniden derlemedenDEBUG
veyaVERBOSE
günlük kaydını etkinleştirebilirsiniz. (aosp/1116591)
Hata düzeltmeleri
- Diğer parçalardaki çıkış animasyonları çalışırken parçalar artık düzgün şekilde yok ediliyor. (b/140574199)
- Parçaların daha önce yapmadığı durumlarda
Activity.findViewById()
işlevini çağırmasına neden olan sorun düzeltildi. (aosp/1116431)
Sürüm 1.2.0-alpha03
5 Eylül 2019
androidx.fragment:fragment:1.2.0-alpha03
, androidx.fragment:fragment-ktx:1.2.0-alpha03
ve androidx.fragment:fragment-testing:1.2.0-alpha03
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
API değişiklikleri
FragmentContainerView
artıkfinal
. (b/140133091)
Hata düzeltmeleri
FragmentContainerView
artık parçaları arka yığından çıkarırken çizim sırasını düzgün şekilde tersine çeviriyor. (b/139104187)- Hem bir parçayı kaldırma hem de aynı anda yeni bir parça ekleme işlemi yapıldığında yanlış animasyonun çalışmasına neden olan sorun düzeltildi. (b/111659726)
- Parçalar artık
onDestroyView()
göndermeden önce geçişlerin (Fragment1.2.0-alpha02
'te düzeltilen 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üme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
SavedStateViewModelFactory
artıkby viewModels()
,by activityViewModels()
,ViewModelProvider
oluşturucusu veyaFragment
ileViewModelProviders.of()
kullanılırken kullanılan varsayılan fabrika. (b/135716331)TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
,TRANSIT_FRAGMENT_FADE
ilesetTransition
'üFragmentTransaction
üzerinde kullanı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
FragmentContainerView
, dinamik olarak eklenen Fragment'ler için şiddetle tavsiye edilen kapsayıcı olarak sunulur. Animasyon z-sıralama sorunlarını ve pencere yerleşimlerinin Fragment'lere gönderilmesini düzelttiği içinFrameLayout
vb. kullanımının yerini alır. (b/37036000, aosp/985243, b/136494650)- Bir fragment tarafından şişirilmiş bir görünümden kapsayan Fragment'ı almak için statik bir
FragmentManager.findFragment(View)
yöntemi eklendi.fragment-ktx
'da Kotlin uzantısı da mevcuttur. (aosp/1090757) FragmentTransaction
üzerindeadd()
vereplace()
için,Class<? extends Fragment>
ve isteğe bağlıBundle
bağımsız değişkenlerini alan yeni aşırı yüklemeler eklendi. Bu yöntemler, eklenecek Fragment örneğini oluşturmak içinFragmentFactory
kullanır. Yeniden oluşturulmuş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)
) kullanan Kotlin uzantıları dafragment-ktx
'ye eklendi. (b/126124987)Fragment
yaşam döngüsü geri çağırma işlemlerine@MainThread
ek açıklamaları eklendi. (b/127272564)FragmentTransaction
veFragmentManager.BackStackEntry
üzerindeki ekmek kırıntısı başlığıyla ilgili API'lerin desteği sonlandırıldı. (b/138252944)FragmentTransaction
üzerindekisetTransitionStyle
yöntemi kullanımdan kaldırıldı. (aosp/1011537)FragmentManager
bölümündeki yöntemlerin çoğu artıkabstract
değil.FragmentManager
öğesiabstract
olarak kalır ve doğrudan oluşturulmamalı veya genişletilmemelidir. YalnızcagetSupportFragmentManager()
,getChildFragmentManager()
vb. öğelerden mevcut bir örneği almaya devam etmelisiniz.
Hata düzeltmeleri
- Parça
1.1.0-rc04
: Parçalar artık ertelenen geçişleri, parçalar çıkarıldığında doğru şekilde iptal ediyor. (b/138251858) - Fragment
1.1.0-rc03
: Zaman aşımıylapostponeEnterTransition()
işlevinin birden fazla kez çağrılmasının önceki zaman aşımlarını iptal etmemesine neden olan sorun düzeltildi. (b/137797118) - Parça
1.1.0-rc02
: Geçerli öğe kaldırılırkenFragmentPagerAdapter
veFragmentStatePagerAdapter
'deki kilitlenme sorunu düzeltildi. (b/137209870) - Parçalar artık göndermeden önce animasyonların tamamlanmasını bekliyor
onDestroyView()
. (b/136110528) - Artık üst parçayı animasyonlandırırken alt parçalardan ve bunların alt öğelerinden gelen parça animasyonları düzgün şekilde işleniyor. (b/116675313)
- Paylaşılan öğe geçişleri kullanılırken ve bir pop ile ekleme işlemi birleştirilirken oluşan
NullPointerException
düzeltildi. (b/120507394) - Robolectric testlerinde
FragmentPagerAdapter
veFragmentStatePagerAdapter
kullanılırkenIllegalStateException
için geçici çözüm eklendi. (b/137201343)
Sürüm 1.2.0-alpha01
2 Temmuz 2019
androidx.fragment:fragment:1.2.0-alpha01
, androidx.fragment:fragment-ktx:1.2.0-alpha01
ve androidx.fragment:fragment-testing:1.2.0-alpha01
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- FragmentManager artık Fragment'ın görünümünü ekledikten ve doğrudan
onViewCreated()
'u çağırmadan öncerequestApplyInsets()
'u çağırarak görünümünüzün her zaman doğru yerleşimlere sahip olmasını sağlıyor. (b/135945162)
Hata düzeltmeleri
replace()
öncesindesetPrimaryNavigationFragment()
kullanılan birFragmentTransaction
öğesiNullPointerException
olduğunda oluşan sorun 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üme dahil edilen commit'leri burada bulabilirsiniz.
1.0.0 sürümünden beri yapılan önemli değişiklikler
- fragment-testing:
fragment-testing
yapısı, bir parçayı yalıtılmış olarak test etmek içinFragmentScenario
sınıfını sağlar. Daha fazla bilgi için Uygulamanızın parçalarını test etme dokümanına bakın. - FragmentFactory: Artık fragment örneklerinin oluşturulmasını yönetmek için
FragmentManager
üzerindeFragmentFactory
ayarlayabilirsiniz. Böylece, bağımsız değişken içermeyen bir oluşturucuya sahip olma zorunluluğu ortadan kalkar. - ViewModel'ler için Kotlin mülk temsilcileri:
fragment-ktx
yapısı artık iki Kotlin mülk temsilcisi içeriyor:by viewModels()
, tek bir parçayla ilişkili ViewModel'lere erişmek için,by activityViewModels()
ise etkinliğe kapsamı belirlenmiş ViewModel'lere erişmek için kullanılır. - Maksimum Yaşam Döngüsü: Artık bir
FragmentTransaction
üzerindesetMaxLifecycle()
çağrısı yaparak bir Fragment için maksimum yaşam döngüsü durumu ayarlayabilirsiniz. Bu, artık desteği sonlandırılansetUserVisibleHint()
'nın yerini almıştır.FragmentPagerAdapter
veFragmentStatePagerAdapter
, yeni davranışa geçmenize olanak tanıyan yeni bir oluşturucuya sahiptir. - FragmentActivity LayoutId oluşturucusu:
FragmentActivity
alt sınıfları artıkonCreate()
içindesetContentView()
'i çağırmak yerine alternatif olarak içerik görünümü olarak ayarlanması gereken düzeni belirten birR.layout
kimliği alanFragmentActivity
üzerinde isteğe bağlı olarak bir oluşturucuyu çağırabilir. Bu, alt sınıfınızın bağımsız değişken içermeyen bir oluşturucuya sahip olması şartını değiştirmez. - Fragment LayoutId oluşturucusu:
Fragment
alt sınıfları artıkonCreateView()
'i geçersiz kılmaya alternatif olarak bu parça için kullanılması gereken düzeni belirten birR.layout
kimliği alanFragment
üzerinde isteğe bağlı olarak bir oluşturucuyu çağırabilir. Şişirilmiş düzen,onViewCreated()
içinde yapılandırılabilir. - Zaman aşımıyla erteleme: Zaman aşımı uygulayan yeni bir
postponeEnterTransition()
aşırı yükü eklendi.
Sürüm 1.1.0-rc04
7 Ağustos 2019
androidx.fragment:fragment:1.1.0-rc04
, androidx.fragment:fragment-ktx:1.1.0-rc04
ve androidx.fragment:fragment-testing:1.1.0-rc04
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- Parçalar artık ertelenen geçişleri, parçalar çıkarıldığında doğru şekilde iptal ediyor. (b/138251858)
Sürüm 1.1.0-rc03
19 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc03
, androidx.fragment:fragment-ktx:1.1.0-rc03
ve androidx.fragment:fragment-testing:1.1.0-rc03
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
postponeEnterTransition()
işlevinin zaman aşımıyla birden fazla kez çağrılmasının önceki zaman aşımlarını iptal etmemesine 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üme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- Mevcut öğe kaldırılırken
FragmentPagerAdapter
veFragmentStatePagerAdapter
'de kilitlenme sorunu düzeltildi. (b/137209870)
Sürüm 1.1.0-rc01
2 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc01
, androidx.fragment:fragment-ktx:1.1.0-rc01
ve androidx.fragment:fragment-testing:1.1.0-rc01
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- Parçalar, geçiş devam ederken
show()
veyahide()
işlemleri kullanıldığında artık görünürlüklerini düzgün şekilde güncelliyor. (b/133385058) replace()
öncesindesetPrimaryNavigationFragment()
kullanılan birFragmentTransaction
öğesiNullPointerException
olduğunda oluşan sorun düzeltildi. (b/134673465)
Sürüm 1.1.0-beta01
5 Haziran 2019
androidx.fragment:fragment:1.1.0-beta01
, androidx.fragment:fragment-ktx:1.1.0-beta01
ve androidx.fragment:fragment-testing:1.1.0-beta01
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Hata düzeltmeleri
- İç içe yerleştirilmiş Fragment'ler için
androidx.lifecycle.Lifecycle
geri çağırmaları (özellikleSTARTED
,RESUMED
,PAUSED
,STOPPED
veDESTROYED
ile ilgili) artık düzgün şekilde iç içe yerleştiriliyor. (b/133497591) - Bir Fragment'ın
onCreate()
içinde kaydedilenOnBackPressedCallback
örnekleri artık alt FragmentManager'a göre önceliklidir. (b/133175997) - Üst fragment değiştirilirken alt fragmentler artık animasyonlu olarak gösterilmiyor. (b/121017790)
animateLayoutChanges="true"
kullanılırken artık parça animasyonları ve geçişleri yoksayılıyor. Bu sayede, parçaların düzgün şekilde yok edilmemesine neden olan sorun düzeltildi. (b/116257087)
Sürüm 1.1.0-alpha09
16 Mayıs 2019
androidx.fragment:fragment:1.1.0-alpha09
, androidx.fragment:fragment-ktx:1.1.0-alpha09
ve androidx.fragment:fragment-testing:1.1.0-alpha09
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
API değişiklikleri
- Birincil gezinme parçası değiştiğinde parçalar artık yeni bir
onPrimaryNavigationFragmentChanged(boolean)
yöntemine geri çağırma alır. aosp/960857
Hata düzeltmeleri
- Bir alt fragment tarafından şişirilen menü öğeleri, üst fragment kaldırıldığında artık doğru şekilde kaldırılıyor. b/131581013
Sürüm 1.1.0-alpha08
7 Mayıs 2019
androidx.fragment:fragment:1.1.0-alpha08
, androidx.fragment:fragment-ktx:1.1.0-alpha08
ve androidx.fragment:fragment-testing:1.1.0-alpha08
yayınlandı. Bu sürüme dahil edilen commit'leri burada bulabilirsiniz.
Bu sürüm, Preferences 1.1.0-alpha01 ile 1.1.0-alpha04 sürümleriyle uyumlu değildir. Fragments'ın bu sürümünü kullanırken lütfen Preferences 1.1.0-alpha05 sürümüne yükseltin.
Yeni özellikler
- Zaman aşımı alan yeni bir
postponeEnterTransition()
aşırı yüklemesi eklendi. Zaman aşımından sonra Fragment,startPostponedEnterTransition()
b/120803208'i otomatik olarak çağırır.
API değişiklikleri
- Kapsamlı değişiklik: Daha önce desteği sonlandırılan ve
Bundle
alanFragmentFactory
instantiate
yöntemi kaldırıldı. aosp/953856 - Önemli değişiklik:
FragmentPagerAdapter
veFragmentStatePagerAdapter
içindekiRESUME_ONLY_CURRENT_FRAGMENT
veUSE_SET_USER_VISIBLE_HINT
sabitleri 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()
ile sınırlandırılmış olan parçalar, son durumlarına ulaşmadan önce artık devam ettirilmiyor. b/131557151 setMaxLifecycle(Lifecycle.State.CREATED)
kullanılırken parçaların görünümü düzgün şekilde yok edilir. 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üme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- Artık bir
FragmentTransaction
üzerindesetMaxLifecycle()
çağırarak bir Fragment için maksimum yaşam döngüsü durumu ayarlayabilirsiniz. Bu, artık desteği sonlandırılansetUserVisibleHint()
'nın yerini almıştır.FragmentPagerAdapter
veFragmentStatePagerAdapter
, yeni davranışa geçmenize olanak tanıyan yeni bir oluşturucuya sahiptir. (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) nedeniyle, arka yığında bulunan parçalar, barındıran etkinlik yeniden oluşturulduğunda
onCreateView()
geri çağırmasını almaz.onCreateView()
artık yalnızca parça görünür hale geldiğinde (yani geri yığın çıkarıldığında) çağrılacak.
Hata düzeltmeleri
- XML'de
<fragment>
etiketi veFragmentActivity
veyaAppCompatActivity
öğesinincontentLayoutId
oluşturucusu kullanılırken oluşan sorun düzeltildi. (b/129907905) - Yapılandırma değişikliğinden sonra arka yığındaki parçaların en az
CREATED
'ya taşınmamasına ve bu nedenle ViewModel'lerin ve alt tutulan parçaların düzgün şekilde kaldırılmamasına neden olan sorun düzeltildi. (b/129593351) - Örnek durumu kaydedildikten sonra tutulan parçaların senkronizasyonunun bozulması nedeniyle
restoreSaveState
'da kilitlenmeye neden olan sorun düzeltildi. (b/130433793) (aosp/947824) - Parça yaşam döngüsüyle eklenen bir
OnBackPressedCallback
,FragmentManager
'nin geri yığını varsa çağrılmıyordu. Bu sorun düzeltildi. Daha fazla bilgi için androidx.activity 1.0.0-alpha07'ye bakın. (aosp/948209) - Parçalar artık animasyonlar için
LAYER_TYPE_HARDWARE
zorunluluğu getirmiyor. Ö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üme dahil edilen commit'leri burada bulabilirsiniz.
Yeni özellikler
- FragmentManager tarafından oluşturulan istisnalar artık iletide Fragment'ın adını içeriyor. (b/67759402)
API Değişiklikleri
Fragment
veFragmentActivity
artık@LayoutRes int
alan bir ikinci oluşturucu içeriyor. Bu oluşturucu, sınıfınıza@ContentView
ile açıklama ekleme şeklindeki önceki davranışın yerini alıyor. Bu yaklaşım hem uygulama hem de kitaplık modüllerinde çalışır. (b/128352521)- FragmentActivity'nin
onActivityResult()
alanı artık düzgün şekilde@CallSuper
olarak işaretleniyor. (b/127971684) - FragmentFactory'nin Bundle bağımsız değişkeni alan
instantiate
yöntemi kullanımdan kaldırıldı. Uygulamalar, Bundle bağımsız değişkeni almayan yeniinstantiate
aşırı yüklemesini kullanmalıdır. (b/128836103) FragmentScenario
yöntemleri artık@StyleRes
ile düzgün şekilde açıklama ekleniyor. (aosp/924193)FragmentTabHost
desteği sonlandırıldı. (b/127971835)- FragmentActivity'nin
getThemedContext()
özelliği kaldırıldı. (aosp/934078)
Hata düzeltmeleri
- 1.1.0-alpha05 sürümünde, gelen parçanın ekranda yanıp sönmesine neden olan gerileme düzeltildi. (b/129405432)
- Bir popBackStack+replace+popBackStack işlem dizisinden sonra birincil gezinme parçasının kaybolmasına neden olan sorun düzeltildi. (b/124332597)
- Fragment durumu geri yüklenirken Etkinliğinizde
@ContentView
oluşturucularını kullanmayla ilgili sorun düzeltildi. (b/127313094) - Mevcut bir hedef Fragment'ı henüz FragmentManager'a eklenmemiş bir Fragment ile değiştirirken
setTargetFragment()
mantığı düzeltildi. (aosp/932156)
Sürüm 1.1.0-alpha05
13 Mart 2019
androidx.fragment:fragment:1.1.0-alpha05
, androidx.fragment:fragment-ktx:1.1.0-alpha05
ve androidx.fragment:fragment-testing:1.1.0-alpha05
yayınlandı. Bu sürüme dahil edilen tüm commit'lerin listesini burada bulabilirsiniz.
Yeni özellikler
@ContentView
ek açıklama aramaları artık önbelleğe alınıyor (b/123709449)
Davranış değişiklikleri
- Calling
remove()
,hide()
,show()
,detach()
vesetPrimaryNavigationFragment()
ile farklı bir FragmentManager'a bağlı bir Fragment'ı çağırmak artık sessizce başarısız olmak yerineIllegalStateException
hatası veriyor (aosp/904301)
Hata düzeltmeleri
FragmentActivity
içinonNewIntent
, artık@CallSuper
ile doğru şekilde işaretleniyor (b/124120586)getDialog().dismiss()
veyagetDialog().cancel()
kullanılırkenDialogFragment
'nınonDismiss()
'sinin iki kez çağrılması sorunu düzeltildi (b/126563750).
Sürüm 1.1.0-alpha04
7 Şubat 2019
androidx.fragment:fragment 1.1.0-alpha04
, androidx.fragment:fragment-ktx 1.1.0-alpha04
ve androidx.fragment:fragment-testing 1.1.0-alpha04
yayınlandı.
Yeni özellikler
@ContentView
sınıfı ek açıklaması için destek eklendi. Bu sayede,onCreateView()
öğesini geçersiz kılmak yerine hangi düzen XML dosyasının genişletilmesi gerektiğini belirtebilirsiniz. Görüntüleme ile ilgili çalışmalarıonViewCreated()
'da yapmanız önerilir. (aosp/837619)fragment-testing
artıkandroidx.test:core-ktx
1.1.0 kararlı sürümüne bağlıdır (b/121209673).- Artık Parça tarafından barındırılan seçenek menülerini test etmek için
openActionBarOverflowOrOptionsMenu
ileFragmentScenario
'yi kullanabilirsiniz (b/121126668).
API değişiklikleri
requireArguments()
döndüren veyaIllegalStateException
(b/121196360) atan bir@NonNull Bundle
yöntemi eklendi.getLifecycle()
,getViewLifecycleOwner()
vegetViewLifecycleOwnerLiveData()
öğelerinin geçersiz kılınmaması gerektiği ve gelecekteki bir sürümde nihai hale getirileceğiyle ilgili bir not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen özellik isteği gönderin. (aosp/880714)getViewModelStore()
öğesinin geçersiz kılınmaması gerektiği ve gelecekteki bir sürümde nihai hale getirileceğiyle ilgili bir not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen özellik isteği gönderin. (aosp/880713)- Fragment'ların önceki sürümleriyle ikili uyumluluk sorunu düzeltildi. (aosp/887877) (aosp/889834)
Hata düzeltmeleri
null
öğesinisetTargetFragment()
öğesine ilettiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)- Hedef parçaların bazen
onDestroy()
içinde veya sonrasında kullanılamamasına neden olan sorun düzeltildi. (b/122312935) - DialogFragment'in onDismiss() yöntemi artık
onDestroy()
'dan önce ç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
uyguluyor ve yeni yayınlanan SavedState kitaplığına [aosp/824380] bağlı. - Kapsayan Etkinlikle ilişkili ViewModel'leri almak için
by activityViewModels
Kotlin özelliği temsilcisi eklendi [b/119050253]. by viewModels
Kotlin özelliği temsilcisi,ViewModelStoreOwner
almak için isteğe bağlı bir lambda yöntemi alacak şekilde genişletildi. Bu sayede, üst parçayı veya diğer özelViewModelStoreOwner
'yival viewModel: MyViewModel by viewModels(::requireParentFragment)
gibi kodlarla iletebilirsiniz [b/119050253].
API değişiklikleri
FragmentScenario
artıkTheme.AppCompat
[b/119054431] gibi bir tema belirtmenize olanak tanıyor. Bu, zarar veren bir değişikliktir.requireView()
döndüren veyaIllegalStateException
atan birrequireView()
yöntemi eklendi [b/120241368]@NonNull View
requireParentFragment()
döndüren veyaIllegalStateException
atan bir@NonNull Fragment
yöntemi eklendi [b/112103783]
Hata düzeltmeleri
- Sabit IllegalStateException: Durum kaydedilemedi b/120814739
- Kaydedilmiş örnek durumundan geri yüklenen parçalar artık her zaman null olmayan bir
Bundle
alacak [b/119794496] - Kaldırılan parçalar yeniden eklendiklerinde artık
Lifecycle
nesnelerini yeniden kullanmıyor [b/118880674]
Sürüm 1.1.0-alpha02
3 Aralık 2018
Yeni özellikler
- FragmentScenario'nun Kotlin uzantıları artık
FragmentFactory
örneği iletmek yerine Fragment oluşturma için lambda kullanmanıza olanak tanıyor. (aosp/812913)
Hata düzeltmeleri
- Geri yığında iç içe yerleştirilmiş Fragment'ler kullanılırken oluşan IllegalStateException düzeltildi (b/119256498).
FragmentScenario.recreate()
,FragmentFactory
ile kullanılırken kilitlenme sorunu düzeltildi (aosp/820540)- Hedef parçaların, parça kaldırıldıktan sonra erişilememesine neden olan sorun düzeltildi (aosp/807634).
Sürüm 1.1.0-alpha01
5 Kasım 2018
Bu, androidx.test:core API'leri üzerine oluşturulan fragment-testing
ve FragmentScenario
yapay nesnesinin ilk sürümüdür. Daha fazla bilgi için Parça testi dokümanlarını inceleyin.
Yeni özellikler
- Parçaları yalıtılmış olarak test etmek için yeni FragmentScenario sınıfı.
- Yeni Fragment örneklerinin nasıl oluşturulacağını kontrol etmek için artık herhangi bir
FragmentManager
üzerindeFragmentFactory
ayarlayabilirsiniz. - Bir Fragment'ten ViewModel'leri almak için yeni bir
by viewModels()
Kotlin özelliği temsilcisi eklendi. - Bekleyen giriş etkinlikleri (ör. tıklamalar) artık bir Fragment'ın
onStop()
içinde iptal ediliyor.
API değişiklikleri
- Fragment API yüzeyindeki nullability ek açıklamaları önemli ölçüde genişletildi.
Hata düzeltmeleri
- Fragment işlemlerinin LiveData'dan başarısız olmasına neden olan sorun düzeltildi. (b/77944637)
Bilinen sorunlar
- Bir Fragment, FragmentManager'dan kaldırıldıktan sonra hedef Fragment'a erişilemez.
fragment-testing
, doğruandroidx.test:core:1.0.0
yerineandroidx.test:core:1.0.0-beta01
SDK'sına bağlıdır.