Parça
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
4 Eylül 2024 | 1.8.3 | - | - | - |
Bağımlılıkları bildirme
Parça'ya bağımlılık eklemek için belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.
build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin.
uygulamanız veya modülünüz:
Eski
dependencies { def fragment_version = "1.8.3" // Java language implementation implementation "androidx.fragment:fragment:$fragment_version" // Kotlin implementation "androidx.fragment:fragment-ktx:$fragment_version" // Compose implementation "androidx.fragment:fragment-compose:$fragment_version" // Testing Fragments in Isolation debugImplementation "androidx.fragment:fragment-testing-manifest:$fragment_version" androidTestImplementation "androidx.fragment:fragment-testing:$fragment_version" }
Kotlin
dependencies { val fragment_version = "1.8.3" // Java language implementation implementation("androidx.fragment:fragment:$fragment_version") // Kotlin implementation("androidx.fragment:fragment-ktx:$fragment_version") // Compose implementation("androidx.fragment:fragment-compose:$fragment_version") // Testing Fragments in Isolation debugImplementation("androidx.fragment:fragment-testing:$fragment_version") }
Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme bölümüne bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.
Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.
Sürüm 1.8
Sürüm 1.8.3
4 Eylül 2024
androidx.fragment:fragment-*:1.8.3
yayınlandı. Sürüm 1.8.3 bu taahhütleri içerir.
Hata Düzeltmeleri
FragmentManager
artık Tahmine Dayalı Geri hareketini kullanırken beklemedeki işlemleri doğru şekilde hesaba katıyor. Bu, bir sistemi geri almanın artıkIndexOutOfBoundsException
sorununun ortaya çıkmamasını sağlar. (I9ba32, b/342316801)AndroidFragment
, içeren etkinliğin/parçanın durumu zaten kayıtlıyken bileşime eklenirse artık kilitlenmez. (I985e9, b/356643968)
Sürüm 1.8.2
24 Temmuz 2024
androidx.fragment:fragment-*:1.8.2
yayınlandı. Sürüm 1.8.2 bu taahhütleri içerir.
Hata Düzeltmeleri
AndroidFragment
, artık üst parçanın Parça arka yığınına yerleştirildiği durumları düzgün şekilde işleyerek "Kimlik için görünüm bulunamadı" durumunu önler sıklıkla sorun yaşadığınız parçaya geri dönün. (I94608)FragmentTransaction.add
yöntemi kullanılarak eklenen veViewGroup
süren parçalar için artıkonStart()
adımına geçilmeden önceonContainerAvailable
bekleniyor. Bu durum söz konusu API'nin kullanıcılarını (ör.AndroidFragment
) etkiler.AndroidFragment
, söz konusu API'yionStart()
üzerinden taşımadan önce besteyi yeniden girmesini bekler. (I94608)
Sürüm 1.8.1
26 Haziran 2024
androidx.fragment:fragment-*:1.8.1
yayınlandı. Sürüm 1.8.1 bu taahhütleri içerir.
Hata Düzeltmeleri
- Tahmine dayalı geri hareketi başlatılırken kapsayıcı içermeyen parçaların hemen
DESTROYED
olması sorunu düzeltildi. Artık hareket tamamlanana kadarCREATED
durumunda tutulurlar. (If6b83, b/345244539)
Sürüm 1.8.0
12 Haziran 2024
androidx.fragment:fragment-*:1.8.0
yayınlandı. Sürüm 1.8.0 bu kaydetmeleri içerir.
1.7.0'dan bu yana önemli değişiklikler
fragment-compose
yapısı artık parça sınıfı adı aracılığıyla Compose hiyerarşisine parça eklenmesini sağlayan birAndroidFragment
Composable
içeriyor. Parçanın durumunun kaydedilmesini ve geri yüklenmesini otomatik olarak gerçekleştirir. Bu, daha önce önerilenAndroidViewBinding
yöntemini kullanarak bir parçayı şişirmek için doğrudan alternatif olarak kullanılmalıdır.FragmentManager
OnBackStackChangedListener
arayüzündeonBackStackChangeCancelled
geri çağırması artıkFragmentManager
ürününde yürütülen işlemlerin bir parçası olarak tetiklenerekonBackStackChangeCommitted
geri çağırmasının zamanlamasıyla uyumlu hale getirilecek.
Sürüm 1.8.0-rc01
29 Mayıs 2024
androidx.fragment:fragment-*:1.8.0-rc01
yayınlandı. Sürüm 1.8.0-rc01 bu kayıtları içerir.
Hata Düzeltmeleri
FragmentManagers OnBackStackChangedListener
arayüzündeonBackStackChangeCancelled
geri çağırması artıkFragmentManager
uygulamasındaki işlemlerin bir parçası olarak tetiklenerekonBackStackChangeCommitted
geri çağırmasının zamanlamasıyla uyumlu hale getirilecek. (I5ebfb, b/332916112)
Sürüm 1.8.0-beta01
14 Mayıs 2024
androidx.fragment:fragment-*:1.8.0-beta01
yayınlandı. Sürüm 1.8.0-beta01 bu kayıtları içerir.
Hata Düzeltmeleri
- Parça
1.7.1
'dan: Tahmine dayalı geri artık yalnızca tüm parçaların bir Animator veya Aranabilir Androidx Geçişine sahip olduğu işlemler için çalıştırılacaktır. Bu, kısmen aranabilir bir işlemi iptal etmenin siyah ekrana neden olacağı sorunu düzeltir. (I43037, b/339169168)
Sürüm 1.8.0-alpha02
17 Nisan 2024
androidx.fragment:fragment-*:1.8.0-alpha02
yayınlandı. Sürüm 1.8.0-alpha02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
1.7.0-rc02
Parçasından: Başka geçiş olmadan birsharedElement
ayarlama işleminin neden başarısız olacağını belirtmek için günlükler eklendi. (Iec48e)1.7.0-rc02
Parça: Aranamayan bir paylaşılan öğenin, diğer tüm geçişlerin aranabildiği işlemlere eklenmesi durumunda kilitlenme yaşanmasına neden olan hata düzeltildi. Bu işlemin ardından işlem, doğru şekilde aranamaz olarak kabul edilir. (I18ccd)
Sürüm 1.8.0-alpha01
3 Nisan 2024
androidx.fragment:fragment-*:1.8.0-alpha01
yayınlandı. Sürüm 1.8.0-alpha01 bu kaydetmeleri içerir.
Yeni Özellikler
- Yeni
AndroidFragment
Composable
, parça sınıf adı aracılığıyla parçaların Compose hiyerarşisine eklenmesine olanak tanır. Parçanın durumunun kaydedilmesini ve geri yüklenmesini otomatik olarak gerçekleştirir. Bu, AndroidViewBindingComposable
öğesinin doğrudan yerine kullanılabilir.(b/312895363, Icf841)
Dokümanlardaki Değişiklikler
OnBackStackChangedListener
API'leriyle ilgili dokümanlar, ne zaman çağrıldıklarını ve nasıl kullanılmaları gerektiğini gösterecek şekilde güncellendi. (I0bfd9)
Bağımlılık güncellemesi
- Parça artık Profil Yükleyici 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
yayınlandı. Sürüm 1.7.1 bu taahhütleri içerir.
Hata Düzeltmeleri
- Tahmine dayalı geri artık yalnızca tüm parçaların bir Animatöre veya Aranabilir Androidx Geçişine sahip olduğu işlemler için çalışır. Bu işlem, kısmen aranabilir bir işlemi iptal etmenin boş ekrana neden olacağı sorunu düzeltir. (I43037, b/339169168)
Sürüm 1.7.0
1 Mayıs 2024
androidx.fragment:fragment-*:1.7.0
yayınlandı. Sürüm 1.7.0 bu kaydetmeleri içerir.
Tahmine Dayalı Geri Hareketi Desteği
- Parçalar artık
Animator
veya AndroidX Transition 1.5.0 kullanılırken Tahmine dayalı uygulama içi geri desteği sağlıyor. Bu, kullanıcıların hareketi tamamlayarak veya iptal ederek işlemi yapmaya karar vermeden önce Animatörünüzü/Geçişinizi arayarak önceki parçayı görmek için geri hareketini kullanmasına olanak tanır.
Geçiş Sistemi | XML Kaynağı | Tahmine Dayalı Geriliği Destekler |
---|---|---|
Animation |
R.anim |
Hayır |
Animator |
R.animator |
Evet |
Çerçeve Transition |
R.transition |
Hayır |
Transition 1.4.1 veya önceki sürüme sahip AndroidX Transition |
R.transition |
Hayır |
Transition 1.5.0 sürümüne sahip AndroidX Transition |
R.transition |
Evet |
Tahmine dayalı geri hareketini etkinleştirdikten sonra Parçalar'da Tahmine Dayalı Geriye Dönük desteği ile ilgili herhangi bir sorun görürseniz lütfen sorununuzu yeniden üreten örnek bir proje kullanarak Parça'ya karşı sorun bildirin. Etkinliğinizin onCreate()
bölümünde FragmentManager.enabledPredictiveBack(false)
kullanarak tahmini geri almayı devre dışı bırakabilirsiniz.
FragmentManager.OnBackStackChangedListener()
, artık tahmini geri ilerleme durumu ve iptal edilen etkinlikleri almak için sırasıyla onBackStackChangeProgressed()
ve onBackStackChangeCancelled()
sağlıyor.
Parça Oluşturma Yapısı
Parça tabanlı bir mimariden tamamen Compose tabanlı bir mimariye geçme sürecindeki uygulamaları desteklemeye odaklanan yeni bir fragment-compose
yapısı oluşturuldu.
Bu yeni yapıda kullanılabilen ilk özellik, sizin için bir ComposeView
oluşturup doğru ViewCompositionStrategy
ayarlayarak tek bir Parçanın kullanıcı arayüzünde Oluşturma özelliğinin daha kolay kullanılmasını amaçlayan, Fragment
üzerinde bir content
uzantı yöntemidir.
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
// Write your @Composable content here
val viewModel: ExampleViewModel = viewModel()
// or extract it into a separate, testable method
ExampleComposable(viewModel)
}
}
Sürüm 1.7.0-rc02
17 Nisan 2024
androidx.fragment:fragment-*:1.7.0-rc02
yayınlandı. Sürüm 1.7.0-rc02 bu kayıtları içerir.
Hata Düzeltmeleri
- Başka geçiş olmadan bir
sharedElement
ayarlama işleminin neden başarısız olacağını gösteren günlükler eklendi. (Iec48e) - Diğer tüm geçişlerin aranabileceği işlemlere, aranamayan bir paylaşılan öğe eklenmesi durumunda kilitlenme yaşanmasına neden olan hata düzeltildi. Bu işlemin ardından işlem, doğru şekilde aranamaz olarak kabul edilir. (I18ccd)
Sürüm 1.7.0-rc01
3 Nisan 2024
androidx.fragment:fragment-*:1.7.0-rc01
yayınlandı. Sürüm 1.7.0-rc01 bu kayıtları içerir.
Bağımlılık güncellemesi
- Parça artık Profil Yükleyici 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
yayınlandı. Sürüm 1.7.0-beta01 bu kayıtları içerir.
API Değişiklikleri
FragmentHostCallback
artık Kotlin dilinde yazılıyor. Böylece ana makine türünün genel türündeki boş değer,onGetHost()
döndürme türünün null değeriyle eşleşir. (I40af5)
Hata Düzeltmeleri
- Kapsayıcıda olmayan bir parçaya Tahmine Dayalı Geri hareketi uygulanırken söz konusu parçanın hiçbir zaman yok edilmemesine neden olan sorun düzeltildi. Parça hemen son duruma taşınır. (Ida0d9)
- Parçalar'da, Tahmine dayalı geri hareketiyle gelen geçişlerin kesintiye uğramasının giriş görünümünü yok etmesine ve boş bir ekran bırakmasına neden olan sorun düzeltildi. (Id3f22, b/319531491)
Sürüm 1.7.0-alpha10
7 Şubat 2024
androidx.fragment:fragment-*:1.7.0-alpha10
yayınlandı. 1.7.0-alpha10 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Önceki Parça sürümünde,
Animator
veya AndroidX Geçişi için Parça'nın Tahmine Dayalı Geri desteği kullanıldığındaaddOnBackStackChangedListener
aracılığıyla hiçFragmentManager.OnBackStackChangedListener
eklenmemişse parçalarınhandleOnBackProgressed
'danNullPointerException
değeri atmasıyla ilgili bilinen sorun düzeltildi. (I7c835)
Sürüm 1.7.0-alpha09
24 Ocak 2024
androidx.fragment:fragment-*:1.7.0-alpha09
yayınlandı. 1.7.0-alpha09 sürümü bu kaydetmeleri içerir.
Parça Oluşturma Yapısı
Parça tabanlı bir mimariden tamamen Compose tabanlı bir mimariye geçme sürecindeki uygulamaları desteklemeye odaklanan yeni bir fragment-compose
yapısı oluşturuldu.
Bu yeni yapıda kullanılabilen ilk özellik, sizin için bir ComposeView
oluşturup doğru ViewCompositionStrategy
değerini ayarlayarak bağımsız bir Parçanın kullanıcı arayüzünde Oluşturma özelliğinin kullanımını daha kolay hale getirmek için Fragment
üzerinde çalışan bir content
uzantı yöntemidir. (561cb7, b/258046948)
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
) = content {
// Write your @Composable content here
val viewModel: ExampleViewModel = viewModel()
// or extract it into a separate, testable method
ExampleComposable(viewModel)
}
}
Yeni Özellikler
FragmentManager.OnBackStackChangedListener()
, artık tahmini geri ilerleme durumu ve iptal edilen etkinlikleri almak için sırasıylaonBackStackChangeProgressed()
veonBackStackChangeCancelled()
sağlıyor. (214b87)
Bilinen Sorun
Animator
veya AndroidX Geçişi için Parçanın Tahmine Dayalı Geri desteği kullanılırkenaddOnBackStackChangedListener
aracılığıyla hiçFragmentManager.OnBackStackChangedListener
eklenmemişse Fragment'larhandleOnBackProgressed
üzerindenNullPointerException
gönderir. Manuel olarak bir işleyici eklemek kilitlenmeyi çözer. Fragments'ın bir sonraki sürümünde bu sorun için bir düzeltme yayınlanacaktır.
Sürüm 1.7.0-alpha08
10 Ocak 2024
androidx.fragment:fragment-*:1.7.0-alpha08
yayınlandı. 1.7.0-alpha08 sürümü bu kaydetmeleri içerir.
Temizlik
- Geçiş kitaplığı için
1.5.0-alpha06
Geçişinde düzeltilen geçici çözüm kaldırıldı. (I04356)
Sürüm 1.7.0-alpha07
29 Kasım 2023
androidx.fragment:fragment-*:1.7.0-alpha07
yayınlandı. 1.7.0-alpha07 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Paylaşılan öğe geçişinin ayarlanmasından ve bir enter/exitTransition ayarlanmamasından kaynaklanan
NullPointerException
düzeltildi. (I8472b) 1.6.2
Parçasından: BirFragmentContainerView
parçası şişirildiğindeFragmentManager
, Ana makine ve kimlik gibi durumlarına artıkonInflate
geri çağırmasıyla erişilebilir. (I1e44c, b/307427423)1.6.2
Parça'dan: Bir parça grubunu kaldırmak içinclearBackStack
kullanılırken üst parçanınViewModels
temizlendiğinde, iç içe yerleştirilmiş tüm Parça'nınViewModel
öğesi artık temizlenecek. (I6d83c, b/296173018)
Sürüm 1.7.0-alpha06
4 Ekim 2023
androidx.fragment:fragment-*:1.7.0-alpha06
yayınlandı. 1.7.0-alpha06 sürümü bu kaydetmeleri içerir.
Bağımlılık Güncellemesi
- Parçalar,
1.5.0-alpha04
geçişinde 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
yayınlandı. 1.7.0-alpha05 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Parçalar artık Androidx Geçişleri kullanılırken Tahmine dayalı geri dönüş desteği sağlıyor. Bu, tamamlanan hareketi kullanarak işlemi kaydetmeye veya iptal etmeye karar vermeden önce özel Androidx Transition ile önceki parçaya gitmek için geri hareketini kullanmanıza olanak tanır. Bu özelliği etkinleştirmek için
1.5.0-alpha03
Geçişi sürümünü kullanmanız gerekir. (Ib49b4, b/285175724)
Bilinen Sorunlar
- Şu anda geçişli bir geri hareketini bir kez iptal etmenizin ardından geri hareketini bir sonraki başlatmanızda geçişi çalıştıramamasına ve boş ekran olmasına yol açan bir sorun mevcut. Bu durum, Geçiş kitaplığındaki bir sorundan kaynaklanıyor olabilir. (b/300157785). Bu sorunla karşılaşıyorsanız lütfen sorununuzu yeniden üreten örnek bir proje kullanarak Fragment'a yönelik sorun bildiriminde bulunun. Etkinliğinizin
onCreate()
bölümündeFragmentManager.enabledPredictiveBack(false)
kullanarak tahmini geri almayı devre dışı bırakabilirsiniz.
Sürüm 1.7.0-alpha04
6 Eylül 2023
androidx.fragment:fragment-*:1.7.0-alpha04
yayınlandı. 1.7.0-alpha04 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Parçaların doğru yaşam döngüsü durumuna getirilemediği, tahmine dayalı geri hareketi iptal edilirken karşılaşılan sorun düzeltildi. (I7cffe, b/297379023)
- Animasyonların Geçişlerle çalışmasına izin verilen regresyonlar düzeltildi. (I59f36)
- Arka yığındaki ikinciden son parçaya hızlı bir şekilde arka arkaya iki kez geri gitme girişiminin kilitlenmeye neden olacağı, parçalarla Tahmine Dayalı Geri kullanıldığında yaşanan sorun düzeltildi. (Ifa1a4)
Sürüm 1.7.0-alpha03
23 Ağustos 2023
androidx.fragment:fragment-*:1.7.0-alpha03
yayınlandı. 1.7.0-alpha03 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- 3 düğmeli gezinme veya tahmine dayalı geri hareketiyle sistem geri kullanılırken parça yöneticisinin arka yığınındaki ilk parçanın atlanmasına ve Etkinliğin tamamlanmasına neden olan tahmine dayalı geri özelliği kullanılırken Parçalarla ilgili sorun düzeltildi. (I0664b, b/295231788)
Sürüm 1.7.0-alpha02
9 Ağustos 2023
androidx.fragment:fragment-*:1.7.0-alpha02
yayınlandı. 1.7.0-alpha02 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- API 34'teki Tahmine Dayalı Geri Hareketlerle Parçalar kullanılırken, sarmayı (
Animations
,Transitions
) desteklemeyen veya hiç geçiş içermeyen bir geçiş sistemi kullanıyorsanız Parçalar artık geri işlemi yürütmeden önce hareketin tamamlanmasını bekleyecek. (I8100c)
Sürüm 1.7.0-alpha01
7 Haziran 2023
androidx.fragment:fragment-*:1.7.0-alpha01
yayınlandı. Bu sürüm dahili bir dalda geliştirildi.
Yeni Özellikler
- Parçalar artık
Animator
kullanılırken Tahmini uygulama içi geri desteği sağlıyor. Bu, tamamlanan hareket aracılığıyla işlemi uygulamaya veya iptal etmeye karar vermeden önce, özel Animatörünüzde önceki parçayı görmek için geri hareketini kullanmanıza olanak tanır. Ayrıca deneyselenablePredictiveBack()
özelliğini kullanarak vefalse
ayında ileterek bu yeni davranışı devre dışı bırakabilirsiniz.
Sürüm 1.6
Sürüm 1.6.2
1 Kasım 2023
androidx.fragment:fragment-*:1.6.2
yayınlandı. 1.6.2 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Bir
FragmentContainerView
parçası şişirildiğinde,FragmentManager
, Ana makine ve kimlik gibi durumlarına artıkonInflate
geri çağırmasıyla erişilebilir. (I1e44c, b/307427423) - Bir parça grubunu kaldırmak için
clearBackStack
kullanılırken üst parçanınViewModels
temizlendiğinde, iç içe yerleştirilmiş tüm Parça'nınViewModel
öğesi artık temizlenecektir. (I6d83c, b/296173018)
Sürüm 1.6.1
26 Temmuz 2023
androidx.fragment:fragment-*:1.6.1
yayınlandı. Sürüm 1.6.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Etkinlik durdurulduğunda ancak silinmediğinde kaydedilen durumun, parça örneği
RESUMED
durumuna geri taşındıktan sonra bile yanlış bir şekilde önbelleğe alınmasına neden olan sorun düzeltildi. Bu durum, parçayı kaydetmek ve geri yüklemek için çoklu arka yığın API'si kullanılırken parça örneği arka yığındaysa önbelleğe alınmış durumun yeniden kullanılmasına neden olur. (I71288, b/246289075)
Bağımlılık Güncellemesi
- Parça artık Etkinlik 1.7.2'ye bağlıdır. Bu düzeltme, Kotlin kullanıcılarının Etkinlik'e açık bir bağımlılık olmadan
ComponentDialog
öğesini genişletmesini engelleyen sorunu düzeltir. (b/287509323)
Sürüm 1.6.0
7 Haziran 2023
androidx.fragment:fragment-*:1.6.0
yayınlandı. 1.6.0 sürümü bu kaydetmeleri içerir.
1.5.0'dan bu yana önemli değişiklikler
Fragment
öğelerinin kayıtlı durumu, özel kitaplık durumu (özelParcelable
sınıfları) ile geliştirici tarafından sağlanan durum arasında tamamen bölündü. Bu durum, artık her zaman bir parçanın durumunun tam olarak nereden kaynaklandığını belirlemeye olanak tanıyan birBundle
içinde depolanıyor.FragmentManager.OnBackStackChangedListener
arayüzü, parça arka yığınına eklenmeden/kaldırılmadan hemen önce ve işlem kaydedildikten hemen sonra herFragment
ile birlikte çağrılan iki ekonBackStackChangeStarted
veonBackStackChangeCommitted
geri çağırmasıyla genişletildi.FragmentStrictMode
, bir alt parçanın üst öğenin Görünüm hiyerarşisinde iç içe yerleştirildiğini ancak üst öğeninchildFragmentManager
öğesine eklenmediğini algılayan yeni birWrongNestedHierarchyViolation
ekledi.Intent
veyaIntentSender
alanFragment
veFragmentManager
API'lerine artık uygun şekilde@NonNull
ek açıklamaları yapılıyor. Böylece boş değer olarak boş değerin geçirilmesini önlemek için bu yöntemlerin çağırdığı ilgili Android çerçevesi API'leri her zaman anında çöküyor.DialogFragment
, artıkrequireComponentDialog()
API aracılığıyla temelComponentDialog
öğesine erişim sağlıyor.- Parça artık Yaşam döngüsü
2.6.1
'ne bağlı. - Parça artık SavedState
1.2.1
öğesine bağlı. - Parça artık ProfileLoader
1.3.0
öğesine bağlıdır. fragment-testing-manifest
yapısı, manifest girişlerini parça testi bileşenlerinin geri kalanından ayırır. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z") androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Bu işlem,
fragment-testing
ileandroidx.test
arasında sürüm sapması nedeniyle çakışmaları önler
Sürüm 1.6.0-rc01
10 Mayıs 2023
androidx.fragment:fragment-*:1.6.0-rc01
yayınlandı. Sürüm 1.6.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Art arda birden fazla
startActivityForResult
isteği yapıldığındaActivityResult
öğelerinin yanlış istek koduyla gönderilmesine neden olan sorun düzeltildi. (If0b9d, b/249519359) - Yapılan işlemlerle karıştırılmışsa aslında geri yığınını değiştirmeyen işlemler için
onBackStackChangeListener
geri çağırmalarının gönderilmesine neden olan sorun düzeltildi. (I0eb5c, b/279306628)
Sürüm 1.6.0-beta01
19 Nisan 2023
androidx.fragment:fragment-*:1.6.0-beta01
yayınlandı. Sürüm 1.6.0-beta01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
postponeEnterTransition
öğesinin zaman aşımıyla kullanılması ve ardından ertelenen parçanın değiştirilmesi, ertelenen parçanın sızdırılmasına neden olmamaktadır. (I2ec7d, b/276375110)- Yeni
onBackStackChangeStarted
veonBackStackChangeCommitted
geri çağırmaları artık birden fazla işlem aynı parçayı içerse bile yalnızca tek seferde bir parça dağıtacak. (Ic6b69)
Sürüm 1.6.0-alpha09
5 Nisan 2023
androidx.fragment:fragment-*:1.6.0-alpha09
yayınlandı. 1.6.0-alpha09 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
DialogFragment
, artıkrequireComponentDialog()
API aracılığıyla temelComponentDialog
öğesine erişim sağlıyor. (I022e3, b/234274777)commitNow()
,executePendingTransactions()
vepopBackStackImmediate()
parçasına@MainThread
ek açıklaması eklenmiştir. Bu API'lerin tümü, çalışma zamanında başarısız olmayı beklemek yerine ana iş parçacığından çağrılmadığında artık derleme hataları gönderecek. (Ic9665, b/236538905)
Hata Düzeltmeleri
FragmentManager
ürününde, aynı çerçevede kaydedip geri yüklemenin kilitlenmeye neden olabileceği bir hata düzeltildi. (Ib36af, b/246519668)OnBackStackChangedListener
onBackStackChangeStarted
veonBackStackChangeCommitted
geri çağırmaları artık yalnızcaFragmentManager
geri yığını değiştirildiğinde yürütülmektedir. (I66055, b/274788957)
Sürüm 1.6.0-alpha08
22 Mart 2023
androidx.fragment:fragment-*:1.6.0-alpha08
yayınlandı. 1.6.0-alpha08 sürümü bu kaydetmeleri içerir.
Davranış Değişikliği
OnBackStackChangedListener.onBackStackChangeCommited
geri çağırmasının zamanlaması, parça işlemleri yürütülmeden önce yürütülecek şekilde ayarlandı. Bu, geri çağırmanın hiçbir zaman ayrılan bir parçanın iletilmemesini sağlar. (I66a76, b/273568280)
Hata Düzeltmeleri
1.5.6
Parçasından:Lifecycle
zatenSTARTED
ise ve bir 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
- Parça artık Yaşam döngüsü
2.6.1
'ne bağlı. (586fe7) - Parça artık SavedState
1.2.1
öğesine bağlı. (078e4e) - Parça artık ProfileLoader
1.3.0
öğesine bağlıdır. (3fc05b)
Sürüm 1.6.0-alpha07
8 Mart 2023
androidx.fragment:fragment-*:1.6.0-alpha07
yayınlandı. 1.6.0-alpha07 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
1.5.6
Parça'dan: Bir Parçanın kaldırılmasının, Menü öğeleri eklenmiş olup olmamasına bakılmaksızın etkinliğin menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
Sürüm 1.6.0-alpha06
22 Şubat 2023
androidx.fragment:fragment-*:1.6.0-alpha06
yayınlandı. 1.6.0-alpha06 sürümü bu kaydetmeleri içerir.
Davranış değişikliği
- Artık, parçalar hedef durumlarına taşınmaya başlamadan önce
FragmentManager
ürünününonBackStackChangedListener
üzerindeki yenionBackStackChangedStarted
geri çağırması yürütülecek. (I34726)
Sürüm 1.6.0-alpha05
8 Şubat 2023
androidx.fragment:fragment-*:1.6.0-alpha05
yayınlandı. 1.6.0-alpha05 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FragmentManager.OnBackStackChagnedListener
arayüzünde artık iki ek geri çağırma (onBackStackChangeStarted
veonBackStackChangeCommitted
) bulunmaktadır. Bunlar,FragmentManager
içinde geri yığın değişikliklerinin ne zaman gerçekleşeceğini kontrol etmenize ve ek bilgiler sağlamanıza olanak tanır. (Ib7ce5, b/238686802)
API Değişiklikleri
Intent
veyaIntentSender
alanFragment
veFragmentManager
API'lerine artık uygun şekilde@NonNull
ek açıklamaları veriliyor. Böylece, boş değer olarak boş değerin geçirilmesini önlemek için bu yöntemlerin çağırdığı ilgili Android çerçevesi API'leri her zaman anında çöküyor. (I06fd4)
Sürüm 1.6.0-alpha04
7 Aralık 2022
androidx.fragment:fragment-*:1.6.0-alpha04
yayınlandı. 1.6.0-alpha04 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FragmentStrictMode
, bir alt parçanın üst öğenin Görünüm hiyerarşisinde iç içe yerleştirildiğini ancak üst öğeninchildFragmentManager
öğesine eklenmediğini algılayan yeni birWrongNestedHierarchyViolation
ekledi. (I72521, b/249299268)
Davranış Değişiklikleri
- Parçalar artık
SavedStateRegistry
durumunuonAttach()
tarihinden önce geri yükleyerek yukarı doğru tüm yaşam döngüsü yöntemlerinden kullanılabilir olmasını sağlıyor. (I1e2b1)
API Değişiklikleri
fragment-testing-manifest
yapısı, manifest girişlerini parça testi bileşenlerinin geri kalanından ayırır. Bu, aşağıdakileri yapabileceğiniz anlamına gelir:
debugImplementation("androidx.fragment:fragment-testing-manifest:X.Y.Z")
androidTestImplementation("androidx.fragment:fragment-testing:X.Y.Z")
Bu işlem, fragment-testing
ile androidx.test
arasında sürüm sapması nedeniyle çakışmaları önler.(I8e534, b/128612536)
Hata Düzeltmeleri
1.5.5
Parçası'ndan: Parçalar,ViewModel
durumunu artık görünüm kayıt defteri kaydedilmiş durumunun bir parçası olarak hatalı bir şekilde kaydetmez. (I10d2b, b/253546214)
Sürüm 1.6.0-alpha03
5 Ekim 2022
androidx.fragment:fragment:1.6.0-alpha03
, androidx.fragment:fragment-ktx:1.6.0-alpha03
ve androidx.fragment:fragment-testing:1.6.0-alpha03
serbest bırakıldı. 1.6.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
DialogFragment
süresini uzatan sınıfların,onDismiss()
geçersiz kılma işlemleri için "Super" çağrısı yapması gerekecek. (I14798, b/238928865)
Hata Düzeltmeleri
- Parçaların her zaman doğru geri çağırmaları almasını sağlamak için, yeni sağlayıcı geri çağırma arayüzlerinin (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) entegrasyonunun neden olduğu regresyonlar düzeltildi. (I9b380,I34581,I8dfe6, b/242570955),If9d6b,Id0096,I690b3,I2cba2)
Sürüm 1.6.0-alpha02
24 Ağustos 2022
androidx.fragment:fragment:1.6.0-alpha02
, androidx.fragment:fragment-ktx:1.6.0-alpha02
ve androidx.fragment:fragment-testing:1.6.0-alpha02
serbest bırakıldı. 1.6.0-alpha02 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
1.5.2
Parça:popBackStack()
vereplace()
işlemi aynı anda yürütmenin, çıkış parçalarının yanlışAnimation
/Animator
çalıştırmasına neden olmasına yol açan sorun düzeltildi. (Ib1c07, b/214835303)
Sürüm 1.6.0-alpha01
27 Temmuz 2022
androidx.fragment:fragment:1.6.0-alpha01
, androidx.fragment:fragment-ktx:1.6.0-alpha01
ve androidx.fragment:fragment-testing:1.6.0-alpha01
serbest bırakıldı. 1.6.0-alpha01 sürümü bu kaydetmeleri içerir.
Davranış Değişiklikleri
Fragment
öğelerinin kayıtlı durumu, özel kitaplık durumu (özelParcelable
sınıfları) ile geliştirici tarafından sağlanan durum arasında tamamen bölündü. Bu durum, artık her zaman bir parçanın durumunun tam olarak nereden kaynaklandığını belirlemeye olanak tanıyan birBundle
içinde depolanıyor. (b/207158202)
Hata Düzeltmeleri
1.5.1
Parçasından:DialogFragmentCallbacksDetector
öğesinde, AGP 7.4 ile paket halinde sunulan lint sürümünü kullanmanın lint'in kilitlenmesine neden olacağı regresyonu düzeltin. (b/237567009)
Bağımlılık güncellemesi
1.5.1
Parça'dan: Parça kitaplığı artık Yaşam Döngüsü2.5.1
'ne bağlı. (Id204c)1.5.1
Parçası'ndan: Parça kitaplığı artık1.5.1
etkinliğine bağımlı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
serbest bırakıldı. 1.5.7 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
postponeEnterTransition
öğesinin zaman aşımıyla kullanılması ve ardından ertelenen parçanın değiştirilmesi, ertelenen parçanın sızdırılmasına neden olmamaktadır. (I2ec7d, b/276375110)
Sürüm 1.5.6
22 Mart 2023
androidx.fragment:fragment:1.5.6
, androidx.fragment:fragment-ktx:1.5.6
ve androidx.fragment:fragment-testing:1.5.6
serbest bırakıldı. 1.5.6 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Herhangi bir Parça'nın kaldırılmasının, Menü öğeleri eklenmiş olup olmamasına bakılmaksızın etkinliğin menüsünü geçersiz kılmasına neden olan sorun düzeltildi. (50f098, b/244336571)
Lifecycle
zatenSTARTED
ise ve bir 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
serbest bırakıldı. 1.5.5 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Parçalar,
ViewModel
durumunu artık görünüm kayıt defteri kaydedilmiş durumunun bir parçası olarak hatalı bir şekilde kaydetmeyecek. (I10d2b, b/253546214)
Sürüm 1.5.4
24 Ekim 2022
androidx.fragment:fragment:1.5.4
, androidx.fragment:fragment-ktx:1.5.4
ve androidx.fragment:fragment-testing:1.5.4
serbest bırakıldı. 1.5.4 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Sağlayıcı geri çağırma arayüzü (
OnConfigurationChangedProvider
,OnMultiWindowModeChangedProvider
,OnTrimMemoryProvider
,OnPictureInPictureModeChangedProvider
) uygulamayan bir ana makineyle özelFragmentController
kullanılmasının ve bu özelliğin desteği sonlandırılmış gönderme işlevinin çağrılmasının alt parçalara gönderilememesine neden olan hata düzeltildi. (I9b380)
Sürüm 1.5.3
21 Eylül 2022
androidx.fragment:fragment:1.5.3
, androidx.fragment:fragment-ktx:1.5.3
ve androidx.fragment:fragment-testing:1.5.3
serbest bırakıldı. 1.5.3 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Arka yığındaki parçaların
onMultiWindowModeChanged()
,onPictureInPictureModeChanged()
,onLowMemory()
veonConfigurationChanged()
geri çağırmalarını almasına neden olan hata düzeltildi. (I34581, I8dfe6, b/242570955) - İç içe yerleştirilmiş alt parçalar artık birden fazla
onMultiWindowModeChanged()
,onPictureInPictureModeChanged()
,onLowMemory()
veyaonConfigurationChanged()
geri çağırması almayacak. (I690b3, Id0096, If9d6b, I2cba2)
Sürüm 1.5.2
10 Ağustos 2022
androidx.fragment:fragment:1.5.2
, androidx.fragment:fragment-ktx:1.5.2
ve androidx.fragment:fragment-testing:1.5.2
serbest bırakıldı. Sürüm 1.5.2 bu kaydetmeleri içerir.
Hata Düzeltmeleri
popBackStack()
vereplace()
işlemini aynı anda yürütmenin, çıkış parçalarının yanlışAnimation
/Animator
çalıştırmasına neden olmasına yol açan sorun düzeltildi. (Ib1c07, b/214835303)
Sürüm 1.5.1
27 Temmuz 2022
androidx.fragment:fragment:1.5.1
, androidx.fragment:fragment-ktx:1.5.1
ve androidx.fragment:fragment-testing:1.5.1
serbest bırakıldı. Sürüm 1.5.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- AGP 7.4 ile paket halinde sunulan lint sürümünü kullanmanın lint'in çökmesine neden olacağı
DialogFragmentCallbacksDetector
regresyonunu düzeltin. (b/237567009)
Bağımlılık güncellemesi
- Parça kitaplığı artık Yaşam Döngüsü
2.5.1
'ne bağlı. (Id204c) - Parça kitaplığı artık
1.5.1
etkinliğine 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
serbest bırakıldı. 1.5.0 sürümü bu kaydetmeleri içerir.
1.4.0'dan bu yana önemli değişiklikler
- CreationExtras Entegrasyonu -
Fragment
, artık Yaşam döngüsü2.5.0
'ninCreationExtras
aracılığıyla durum bilgisiz birViewModelProvider.Factory
sağlayabilir. - Bileşen İletişim Kutusu Entegrasyonu -
DialogFragment
, artıkonCreateDialog()
tarafından döndürülen varsayılan iletişim kutusu olarak Etkinlik1.5.0
üzerindenComponentDialog
kullanıyor. - Kayıtlı Örnek Durumunu Yeniden Düzenleme: Parçalar, örnek durumlarını kaydetme yöntemlerini değiştirmeye başladı. Bu, parçaya hangi durumun kaydedildiğini ve durumun kaynağını net bir şekilde tanımlamaya yardımcı olmaya yönelik bir çabadır. Mevcut değişiklikler aşağıdakileri içerir:
FragmentManager
, kaydedilen örnek durumunu artık doğrudan özel birParcelable
yerineBundle
öğesine kaydediyor.Fragment Result APIs
aracılığıyla ayarlanan ancak henüz teslim edilmemiş sonuçlar artıkFragmentManager
dahili durumundan ayrı olarak kaydediliyor.- Her bir parçayla ilişkilendirilen durum artık
FragmentManager
öğesinin dahili durumundan ayrı olarak kaydedilir. Böylece, tek bir parçayla ilişkili kaydedilen durum miktarınıFragment
hata ayıklama günlük kaydında bulunan benzersiz kimliklerle ilişkilendirebilirsiniz.
Diğer Değişiklikler
FragmentStrictMode
, artık sınıf adıyla birlikteallowViolation()
kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasını sağlıyor.- Etkinliğinize ait
ActionBar
öğesine menü sağlamaya yönelik Fragment API'leri kullanımdan kaldırıldı.1.4.0
Etkinliği'ne eklenenMenuHost
veMenuProvider
API'leri, parçaların kullanması gereken test edilebilir, yaşam döngüsüne duyarlı eşdeğer bir API yüzeyi sağlar.
Sürüm 1.5.0-rc01
11 Mayıs 2022
androidx.fragment:fragment:1.5.0-rc01
, androidx.fragment:fragment-ktx:1.5.0-rc01
ve androidx.fragment:fragment-testing:1.5.0-rc01
serbest bırakıldı. Sürüm 1.5.0-rc01 bu kaydetmeleri içerir.
Kayıtlı Örnek Durumunu Yeniden Düzenleme
- Her bir parçayla ilişkilendirilen durum artık
FragmentManager
öğesinin dahili durumundan ayrı olarak kaydedilir. Böylece, tek bir parçayla ilişkili kaydedilen durum miktarını, Parça hata ayıklama günlük kaydında bulunan benzersiz kimliklerle ilişkilendirebilirsiniz. (a153e0, b/207158202)
Sürüm 1.5.0-beta01
20 Nisan 2022
androidx.fragment:fragment:1.5.0-beta01
, androidx.fragment:fragment-ktx:1.5.0-beta01
ve androidx.fragment:fragment-testing:1.5.0-beta01
serbest bırakıldı. Sürüm 1.5.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
DialogFragment
,showNow
işleviyle denklik içincommitNow
kullanan yeni birdismissNow
yöntemi ekledi. Bunun,Dialog
öğesinin hemen kapatılmasına neden olmayacağını, yalnızcaFragmentManager
öğesinin durumunu eşzamanlı olarak güncelleyeceğini unutmayın. (I15c36, b/72644830)
Kayıtlı Örnek Durumunu Yeniden Düzenleme
FragmentManager
, kaydedilen örnek durumunu artık doğrudan özel birParcelable
yerineBundle
öğesine kaydediyor. Bu, Parçalar tarafından gerçekten kaydedilen veriler hakkında daha fazla şeffaflık sağlamanın ilk adımıdır. (I93807, b/207158202)- Parça Sonuç API'leri aracılığıyla ayarlanmış ancak henüz teslim edilmemiş sonuçlar artık
FragmentManager
dahili durumundan ayrı olarak kaydediliyor. Bu sayede, kaydedilen örnek durumunuz kapsamında hangi sonuçların kaydedildiği konusunda daha fazla şeffaflık elde edebilirsiniz. (I6ea12, b/207158202)
Sürüm 1.5.0-alpha05
6 Nisan 2022
androidx.fragment:fragment:1.5.0-alpha05
, androidx.fragment:fragment-ktx:1.5.0-alpha05
ve androidx.fragment:fragment-testing:1.5.0-alpha05
serbest bırakıldı. 1.5.0-alpha05 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
Fragment
ürünününsetHasOptionsMenu()
desteği sonlandırıldı. Menüleri ve menü öğelerini yönetmek için bunun yerine Parça1.5.0-alpha04
sürüm notlarına göre 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
serbest bırakıldı. 1.5.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Etkinliğinizin
ActionBar
öğesine menü sağlamaya yönelik Fragment API'leri, parçanızı etkinliğinize sıkıca bağladıkları ve tek başına test edilemeyeceği için kullanımdan kaldırıldı.1.4.0-alpha01
Etkinliği'ne eklenenMenuHost
veMenuProvider
API'leri, parçaların kullanması gereken test edilebilir, yaşam döngüsüne duyarlı eşdeğer bir API yüzeyi sağlar. (I50a59, I20758)
Hata Düzeltmeleri
SavedStateViewFactory
,SavedStateRegistryOwner
ile başlatıldığında bile artıkCreationExtras
kullanımını destekliyor. Ekstra özellikler sağlanırsa başlatılan bağımsız değişkenler yoksayılır. (I6c43b, b/224844583)
Sürüm 1.5.0-alpha03
23 Şubat 2022
androidx.fragment:fragment:1.5.0-alpha03
, androidx.fragment:fragment-ktx:1.5.0-alpha03
ve androidx.fragment:fragment-testing:1.5.0-alpha03
serbest bırakıldı. 1.5.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Artık
CreationExtras
ayarınıby viewModels()
veby activityViewModels()
işlevleri. (Ibefe7, b/217601110)
Davranış Değişiklikleri
DialogFragment
artık varsayılan olarakComponentDialog
kullanıyor iletişim kutusuonCreateDialog()
tarafından döndürüldü. (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
serbest bırakıldı. 1.5.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FragmentStrictMode
, artık sınıf adıyla birlikteallowViolation()
kullanarak gizli üçüncü taraf parçalarının belirli ihlal cezalarını atlamasını sağlıyor. (I8f678)
Sürüm 1.5.0-alpha01
26 Ocak 2022
androidx.fragment:fragment:1.5.0-alpha01
, androidx.fragment:fragment-ktx:1.5.0-alpha01
ve androidx.fragment:fragment-testing:1.5.0-alpha01
serbest bırakıldı. 1.5.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
Fragment
artık Yaşam Döngüsü2.5.0-alpha01
kapsamında sunulan ViewModel CreationExtras ile entegre oluyor. (I3060b, b/207012585)
Hata Düzeltmeleri
1.4.1
Parçasından:FragmentContainerView
artık yasa dışı bir durum bildirmez XML'den oluşturulan görüntüleme kimlikleri negatif değerler içerdiğinde özel bir istisna oluşturur. (Ic185b, b/213086140)1.4.1
Parça'dan:by viewModels()
geç işleviyle birlikte özel birownerProducer
lambdası kullanılırken, her zaman parçanın fabrikasını kullanmak yerine özel birViewModelProvider.Factory
sağlanmazsa artık bu sahibindefaultViewModelProviderFactory
öğesini kullanacak. (I56170, b/214106513)Fragment
öğesininregisterForActivityResult()
geri çağırmasından ilk kezViewModel
öğesine erişilirken karşılaşılan kilitlenme düzeltildi. (Iea2b3)
Sürüm 1.4
Sürüm 1.4.1
26 Ocak 2022
androidx.fragment:fragment:1.4.1
, androidx.fragment:fragment-ktx:1.4.1
ve androidx.fragment:fragment-testing:1.4.1
serbest bırakıldı. Sürüm 1.4.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
FragmentContainerView
artık yasa dışı bir durum bildirmiyor XML'den oluşturulan görüntüleme kimlikleri negatif değerler içerdiğinde özel bir istisna oluşturur. (Ic185b, b/213086140)by viewModels()
geç işleviyle birlikte özel birownerProducer
lambdası kullanılırken, özel bir değişiklikse artık söz konusu sahibindefaultViewModelProviderFactory
öğesi kullanılacakViewModelProvider.Factory
her zaman parçanın kullanılması yerine sağlanmıyor fabrika ayarlarına sıfırlamanız gerekir. (I56170, b/214106513)
Sürüm 1.4.0
17 Kasım 2021
androidx.fragment:fragment:1.4.0
, androidx.fragment:fragment-ktx:1.4.0
ve androidx.fragment:fragment-testing:1.4.0
serbest bırakıldı. 1.4.0 sürümü bu kaydetmeleri içerir.
1.3.0'dan bu yana önemli değişiklikler
FragmentStrictMode
API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı denetimleri sunar. Bir ihlal tespit edildiğinde, günlük mesajı yazdırmayı, kendi özel işleyicinizi tetiklemeyi veya uygulamanızı kilitlenmeyi seçebilirsiniz. Hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol edenFragmentStrictMode.Policy
, yenisetStrictModePolicy()
yöntemiyleFragmentManager
üzerinde ayarlanabilir. Bu politika, söz konusuFragmentManager
için ve kendi benzersiz politikasını ayarlamamış tüm alt parça yöneticileri için geçişli olarak geçerlidir. Parçalar için StrictMode sayfasına bakın.FragmentContainerView
, artık kapsayıcıya en son eklenen parçayı döndüren birgetFragment()
yöntemi sağlıyor. Bu işlem,FragmentContainerView
kimliğiylefindFragmentById()
ile aynı mantığı kullanır ancak çağrının zincirlenmesine olanak tanır.val navController = binding.container.getFragment<NavHostFragment>().navController
FragmentScenario
artıkCloseable
özelliğini uyguluyor. Böylece, Kotlin'inuse
yöntemi veya kaynaklarla deneyin özelliğini kullanabilirsiniz.Eklenme zamanı
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
. tıklayın.FragmentManager.enableNewStateManager(boolean)
deneysel API'si kaldırıldı ve artık kullanılabilen tek seçenek yeni durum yöneticisi.
Birden çok yığın
FragmentManager
, addToBackStack()
kullanan parça işlemlerinden oluşan bir arka yığın sağlar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Durumu parçalarla kaydetme mekanizmalarını kullanarak bu işlemleri açıp önceki duruma geri dönebilirsiniz.
Bu sürüm, üç yeni FragmentManager
API'si sağlayarak bu mekanizmaların kapsamını genişletmektedir: saveBackStack(String name)
, restoreBackStack(String name)
ve clearBackStack(String name)
. Bu API'ler, FragmentTransaction
durumunu ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack()
ile aynı name
kullanır. Ayrıca, bu işlemleri ve parçalarını daha sonra sağlam durumlarıyla geri yüklemenize olanak tanır. Bu, mevcut arka yığını kaydederek ve kaydedilen bir yığını geri yükleyerek birden fazla arka yığını etkili bir şekilde "değiştirmenize" olanak tanır.
saveBackStack()
, eşzamansız olması ve tüm parça işlemlerinin tersine çevrilmesi ("aktarılması") ve eklenen parçaların kaldırılıp kaldırılmaması açısından popBackStack()
ile benzer şekilde çalışır. Ancak aralarında birkaç önemli fark vardır:
saveBackStack()
her zaman kapsayıcıdır.- Belirtilen ad arka yığında bulunamazsa veya boş bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösteren
popBackStack()
işlevinin aksine,saveBackStack()
daha önceaddToBackStack()
kullanarak bu tam, boş olmayan adla bir parça işlemi gerçekleştirmediysenizsaveBackStack()
hiçbir şey yapmaz. - Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Bu, her parçanın View durumunun depolandığı, her parçanın
onSaveInstanceState()
tanesinin çağrıldığı ve bu durumun geri yüklendiği, bu parçalarla ilişkilendirilmiş tümViewModel
örneklerinin saklanacağı (veonCleared()
bunlar üzerinde çağrılanmaz) anlamına gelir.
saveBackStack()
ile kullanılabilecek parça işlemleri belirli ölçütleri karşılamalıdır:
- İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her parça işleminde
setReorderingAllowed(true)
kullanılması gerekir. - Kaydedilen işlemler grubunun, araya giren sürede arka yığında ne değişiklik yapılmış olursa olsun daha sonra geri yüklenebilmesi için bağımsız olması gerekir (diğer bir deyişle, söz konusu işlem grubunun dışındaki herhangi bir parçaya açıkça başvuruda bulunmamalıdır).
FragmentManager
öğesinin, arka yığın kaydedildikten sonra kaydedilen parçalara herhangi bir referans döndürmemesini sağlamak için, kaydedilen hiçbir parça, saklanan bir parça olamaz veya geçişli alt parçalar kümesinde tutulan bir parçaya sahip olamaz.
saveBackStack()
, restoreBackStack()
ve clearBackStack()
işlemlerine benzer şekilde, daha önce aynı adla saveBackStack()
çağırmadıysanız daha önce kaydedilen bir yığını geri yükleyen veya daha önce kaydedilen bir yığını temizleyen saveBackStack()
işlemlerinin ikisi de hiçbir şey yapmaz.
Daha fazla bilgi için Birden çok geriye dönük yığın: Ayrıntılı inceleme bölümünü inceleyin.
Sürüm 1.4.0-rc01
3 Kasım 2021
androidx.fragment:fragment:1.4.0-rc01
, Fragment 1.4.0-beta01'de herhangi bir değişiklik yapılmadan yayınlandı. Sürüm 1.4.0-rc01 bu kaydetmeleri içerir.
Sürüm 1.4.0-beta01
27 Ekim 2021
androidx.fragment:fragment:1.4.0-beta01
, androidx.fragment:fragment-ktx:1.4.0-beta01
ve androidx.fragment:fragment-testing:1.4.0-beta01
serbest bırakıldı. Sürüm 1.4.0-beta01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Üst parçalar artık
onHiddenChanged()
öğeyi aşağı dağıtacak hiyerarşinin tamamını kontrol eder. (Iedc20, b/77504618) - Şu noktadan giderken klavye otomatik olarak kapanacak: açık klavyeli bir parçayı geri dönüşüm görünümüyle bir parçaya dönüştürüyor. (I8b842, b/196852211)
DialogFragment
artık kullanıyor Tüm işlemler içinsetReorderingAllowed(true)
show()
,showNow()
ve veyadismiss()
. (Ie2c14)DetachAndAttachFragmentInSameFragmentTransaction
ile ilgili çok uzun Lint uyarısıDetachAndAttachSameFragment
olarak kısaltıldı. (e9eca3)
Sürüm 1.4.0-alpha10
29 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha10
, androidx.fragment:fragment-ktx:1.4.0-alpha10
ve androidx.fragment:fragment-testing:1.4.0-alpha10
serbest bırakıldı. 1.4.0-alpha10 sürümü bu kaydetmeleri içerir.
Lint
- Aynı
FragmentTransaction
içinde aynıFragment
üzerinde hemdetach()
hem deattach()
çağrısının algılanması içinDetachAndAttachFragmentInSameFragmentTransaction
lint uyarısı eklendi. Bu tamamlayıcı işlemler aynı işlemde tamamlandığında birbirini iptal eder. Dolayısıyla, herhangi bir işlem yapabilmeleri için ayrı işlemlere bölünmeleri gerekir. (aosp/1832956, b/200867930) MenuHost
öğesininaddMenuProvider
API'si kullanılırken Parça görünümü yaşam döngüsüne Parça Yaşam Döngüsü kullanımlarının düzeltilmesi içinFragmentAddMenuProvider
lint hatası eklendi. (aosp/1830457, b/200326272)
Doküman Güncellemeleri
- API'lerle ilgili kullanımdan kaldırma mesajı artık Etkinlik Sonucu API'leri tarafından (
startActivityForResult
,startIntentSenderForResult
,onActivityResult
,requestPermissions
veonRequestPermissionsResult
) işlenmekte ve daha fazla ayrıntı içerecek şekilde genişletildi. (cce80f) Fragment
veDialogFragment
içinonActivityCreated()
için desteği sonlandırma mesajının tamamı, daha fazla ayrıntı içerecek şekilde genişletildi. (224db4)
Sürüm 1.4.0-alpha09
15 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha09
, androidx.fragment:fragment-ktx:1.4.0-alpha09
ve androidx.fragment:fragment-testing:1.4.0-alpha09
serbest bırakıldı. Sürüm 1.4.0-alpha09 bu kaydetmeleri içerir.
Yeni Özellikler
- Artık
clearBackStack(name)
adlı kişiyi telefonla arayarak şunları yapabilirsiniz: daha öncesaveBackStack(name)
ile kaydedilmiş durumları temizleyin. (I70cd7)
API Değişiklikleri
FragmentContainerView
sınıfı Kotlin'de yeniden yazıldıgetFragment
işlevinin null bulunabilirlik. (If694a, b/189629145)- FragmentStrictMode artık Kotlin'de (I11767, b/199183506) yazılıyor
Hata Düzeltmeleri
- Bir Parçanın durumunun aşağıdaki gibi olması sorunu düzeltildi
(
setReorderingAllowed(true)
ve ardından beklemedeki işlemleri yürütmeden hemen önce kaldırılır etkin bir şekilde temizlenmez. (I8ccb8)
Sürüm 1.4.0-alpha08
1 Eylül 2021
androidx.fragment:fragment:1.4.0-alpha08
, androidx.fragment:fragment-ktx:1.4.0-alpha08
ve androidx.fragment:fragment-testing:1.4.0-alpha08
serbest bırakıldı. 1.4.0-alpha08 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Gereksiz parantezi daha iyi işleyebilmek için
UseRequireInsteadOfGet
Lint denetimi iyileştirildi. (I2d865) - Ek uç durumları ele almak için
UseGetLayoutInflater
Lint denetimi iyileştirildi. (Ie5423)
Sürüm 1.4.0-alpha07
18 Ağustos 2021
androidx.fragment:fragment:1.4.0-alpha07
, androidx.fragment:fragment-ktx:1.4.0-alpha07
ve androidx.fragment:fragment-testing:1.4.0-alpha07
herhangi bir önemli değişiklik yapılmadan yayınlandı. 1.4.0-alpha07 sürümü bu kaydetmeleri içerir.
Sürüm 1.4.0-alpha06
4 Ağustos 2021
androidx.fragment:fragment:1.4.0-alpha06
, androidx.fragment:fragment-ktx:1.4.0-alpha06
ve androidx.fragment:fragment-testing:1.4.0-alpha06
serbest bırakıldı. 1.4.0-alpha06 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Çoklu arka planla ilgili bir sorun düzeltildi
yığınlar arasında hızla geçiş yaparken
IllegalStateException
olarak görünürFragmentTransaction
veya ikinci bir kopyasının görünmesini sağlayabilirsiniz. (I9039f) - Şu sorun düzeltildi:
FragmentManager
daha önce kaydedilmiş durumun bir kopyasını bu eyaletten sonra bilesaveBackStack()
üzerinden geri yüklendi. (Ied212) dismissAllowingStateLoss()
yöntemiDialogFragment
telefon numarasını aradığınızda artık kilitlenmiyor durum kaydedildikten sonra bu kodu özel olarak eklediğinizde DialogFragment'ıshow(FragmentTransaction, String)
yöntemi. (I84422)
Sürüm 1.4.0-alpha05
21 Temmuz 2021
androidx.fragment:fragment:1.4.0-alpha05
, androidx.fragment:fragment-ktx:1.4.0-alpha05
ve androidx.fragment:fragment-testing:1.4.0-alpha05
serbest bırakıldı. 1.4.0-alpha05 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
1.3.6
Parçası'ndan: Kök görünümündetransitionGroup=”true”
ayarlandığında,hide()
kullanılırken Parçanın görünümü artık düzgün şekildeGONE
olarak ayarlanıyor. (aosp/1766655, b/193603427)1.3.6
Parçasından:FragmentActivity
artık kilidi her zaman açıyor yaşam döngüsündeki ilk işlem olarak kayıtlı duruma geri çağırmalarını yapar. (I6db7a)
Bağımlılık güncellemesi
1.3.6
Parçasından: Parçalar artık1.2.4
etkinliğine (I3a66c) bağlıdır
Sürüm 1.4.0-alpha04
30 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha04
, androidx.fragment:fragment-ktx:1.4.0-alpha04
ve androidx.fragment:fragment-testing:1.4.0-alpha04
serbest bırakıldı. 1.4.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
FragmentManager
artık durumunu kaydetmek için arka plandaSavedStateRegistry
kullanıyor.saveAllState()
verestoreSavedState()
yöntemleri deFragmentController
ürününde kullanımdan kaldırıldı. ParçalarıFragmentActivity
dışında barındırmak içinFragmentController
kullanıyorsanızFragmentHostCallbacks
uygulamanızıSavedStateRegistryOwner
. (Iba68e, b/188734238)
Hata Düzeltmeleri
- Şu çağrının yapılmasıyla ilgili sorun düzeltildi:
saveBackStack()
, birden fazla destek kapsamında yığınlar aynı anda başarısız olsa bilereplace()
kullanan birFragmentTransaction
çalıştırılıyor. (I73137) - Şu özellikteki
NullPointerException
düzeltildi: kaydedilen bir dosyayı manuel olarak geri yükledikten sonra birden fazla işlem içeren arka yığınrestoreBackStack()
API'sini çoklu arka yığın desteği sunar. Bu işlem ayrıca düzelttisetReorderingAllowed(true)
tüm işlemler için kontrol edilmiyordu. (I8c593) FragmentManager
uygulamasının yanlış bir şekilde, daha önce kaydedilmiş durumu geri yüklemeye devam edebilir bile olsa söz konusu parçalardanFragmentManager
bağlantı noktasından kopuyor ve bu durum, zamanla sürekli büyümesini sağlamaktır. (I1fb8e)
Sürüm 1.4.0-alpha03
16 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha03
, androidx.fragment:fragment-ktx:1.4.0-alpha03
ve androidx.fragment:fragment-testing:1.4.0-alpha03
serbest bırakıldı. 1.4.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Tüm Fragment StrictMode
Violation
sınıfları, ihlalin ayrıntılarını açıklayan daha ayrıntılı hata mesajlarıyla güncellendi. (b/187871638)FragmentTagUsageViolation
artık daha fazlasını içeriyor üst kapsayıcıyı kapsayıcı içine alan ayrıntılı hata mesajı parçanın eklenip eklenmeyeceğini belirtir. (Ic33a7)WrongFragmentContainerViolation
artık daha fazlasına sahip kapsayıcıyı içeren ayrıntılı hata mesajı parçasının eklenmediğini gösterir. (Ib55f8)TargetFragmentUsageViolation
için kullanım alanı sınıfları parçasını dahil etmek için daha ayrıntılı hata mesajlarına sahip ve bulunan diğer bilgiler ihlal edilir. (Icc6ac)RetainInstanceUsageViolation
uzatılan dersler parçasını içeren daha ayrıntılı hata mesajlarına sahip bu ihlale neden olur. (I6bd55)FragmentReuseViolation
artık daha fazlasına sahip önceki kimliği içerir. (I28ce2)SetUserVisibleHintViolation
artık daha fazlasına sahip kullanıcının görünür ipucu olarak ayarlandı. (Ib2d5f)
Davranış Değişiklikleri
FragmentContainerView
cihazındafitsSystemWindows
numarasını arama kısıtlaması geri alındı. Bu durum artık uygulamanızın kilitlenmesini kaldırmıyor. (6b8ddd, b/190622202)
Hata Düzeltmeleri
1.3.5
Parça: aosp/1679887 ile1.3.4
Parça'da oluşturulan paylaşılan öğe geçişlerindeki regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
ile dolaylı olarak veyatransitionName
ya dabackground
ile dolaylı olarak ayarlanır) doğru şekilde işliyor ve paylaşılan öğeler artıkIndexOutOfBoundsException
öğesini tetiklemez. (I16484, b/188679569, b/188969304)FragmentManager
, şu işlemleri yapmayı denediğinizde artık kilitlenmez: gizlenen parçayı görüntüleyebilirsiniz. (I573dd, b/183634730)OnCreateDialogIncorrectCallback
hata analizi kontrolü daha uzun kilitlenme yaşandığını görebilirsiniz. (0a9efa, b/189967522)
Sürüm 1.4.0-alpha02
2 Haziran 2021
androidx.fragment:fragment:1.4.0-alpha02
, androidx.fragment:fragment-ktx:1.4.0-alpha02
ve androidx.fragment:fragment-testing:1.4.0-alpha02
serbest bırakıldı. 1.4.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FragmentStrictMode
, kullanılan katı kurallı mod politikasından bağımsız olarak,FragmentManager
aracılığıyla günlük kaydı etkinleştirildiğinde artık her zaman ihlalleri günlüğe kaydedecek. (I02df6, b/187872638)FragmentStrictMode
artık belirliFragment
sınıflarının katı modViolation
'lerinden muaf tutulmasını destekliyor ve bu sayede o sınıfın tüm cezaları atlatmasına olanak tanıyor. (Ib4e5d, b/184786736)FragmentStrictMode
Violation
sınıfı, her bir ihlale göre yapı bilgilerini eklemek için genişletildi. Böylece, ihlale neden olan parçayla (If5118, b/187871150) birlikte ihlalin nedenini tam olarak doğrulayabilirsiniz. HerViolation
şunları içerir:WrongFragmentContainerViolation
artık içeriyorFragment
öğesinin eklenmeye çalıştığıViewGroup
. (I83c75, b/187871150)TargetFragmentUsageViolation
,SetTargetFragmentUsageViolation
,GetTargetFragmentUsageViolation
veGetTargetFragmentRequestCodeUsageViolation
;SetTargetFragmentUsageViolation
, hedef parçayı ve istek kodunu içerir. (I741b4, b/187871150)SetUserVisibleHintViolation
, artıksetUserVisibleHint()
işlevine geçirilen boole değerini içeriyor. (I00585, b/187871150)FragmentTagUsageViolation
artık içeriyor<fragment>
etiketinin bir parçayı genişletmeye çalıştığı ViewGroup.(I5dbbc, b/187871150)FragmentReuseViolation
artık şunları içeriyor: ihlale neden olan öncekiFragment
örneğinin benzersiz kimliği. (I0544d, b/187871150)RetainInstanceUsageViolation
şimdi soyut ve iki alt sınıf vardır:SetRetainInstanceUsageViolation
veGetRetainInstanceUsageViolation
(ikisini temsil eder) daha fazla bilgi edineceksiniz. (Ic81e5, b/187871150)
Davranış Değişiklikleri
FragmentContainerView
,fitsSystemWindow
özelliğini programatik olarak veya XML aracılığıyla değiştirmeye çalışırken artık bir istisnayı devreye sokuyor. Ekler, her bağımsız parçanın görünümü tarafından işlenmelidir. (Ie6651, b/187304502)
Sürüm 1.4.0-alpha01
18 Mayıs 2021
androidx.fragment:fragment:1.4.0-alpha01
, androidx.fragment:fragment-ktx:1.4.0-alpha01
ve androidx.fragment:fragment-testing:1.4.0-alpha01
serbest bırakıldı. 1.4.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FragmentContainerView
, artık kapsayıcıya en son eklenen parçayı döndüren birgetFragment()
yöntemi sağlıyor. Bu işlem,FragmentContainerView
kimliğiylefindFragmentById()
ile aynı mantığı kullanır ancak çağrının zincirlenmesine olanak tanır. (Ife17a, b/162527857)val navController = binding.container.getFragment<NavHostFragment>().navController
Eklenme zamanı
FragmentTransaction#TRANSIT_FRAGMENT_MATCH_ACTIVITY_{OPEN, CLOSE}
. tıklayın. (I46652)
Birden çok yığın
FragmentManager
, addToBackStack()
kullanan parça işlemlerinden oluşan bir arka yığın sağlar. Böylece, parçalarınızın durumlarını uygun şekilde geri yüklemesi için Durumu parçalarla kaydetme mekanizmalarını kullanarak bu işlemleri açıp önceki duruma geri dönebilirsiniz.
Bu sürüm, iki yeni FragmentManager
API'si sağlayarak bu mekanizmaların kapsamını genişletmektedir: saveBackStack(String name)
ve restoreBackStack(String name)
. Bu API'ler, FragmentTransaction
durumunu ve bu işlemlere eklenen her parçanın durumunu kaydetmek için addToBackStack()
ile aynı name
kullanır. Ayrıca, bu işlemleri ve parçalarını daha sonra sağlam durumlarıyla geri yüklemenize olanak tanır. Bu, mevcut arka yığını kaydederek ve kaydedilen bir yığını geri yükleyerek birden fazla arka yığını etkili bir şekilde "değiştirmenize" olanak tanır.
saveBackStack()
, eşzamansız olması ve tüm parça işlemlerinin tersine çevrilmesi ("aktarılması") ve eklenen parçaların kaldırılıp kaldırılmaması açısından popBackStack()
ile benzer şekilde çalışır. Ancak aralarında birkaç önemli fark vardır:
saveBackStack()
her zaman kapsayıcıdır.- Belirtilen ad arka yığında bulunamazsa veya boş bir ad sağlanmışsa arka yığında tüm işlemleri pop-up olarak gösteren
popBackStack()
işlevinin aksine,saveBackStack()
daha önceaddToBackStack()
kullanarak bu tam, boş olmayan adla bir parça işlemi gerçekleştirmediysenizsaveBackStack()
hiçbir şey yapmaz. - Bu işlemlerden eklenen tüm parçaların durumu kaydedilir. Bu, her parçanın View durumunun depolandığı, her parçanın
onSaveInstanceState()
tanesinin çağrıldığı ve bu durumun geri yüklendiği, bu parçalarla ilişkilendirilmiş tümViewModel
örneklerinin saklanacağı (veonCleared()
bunlar üzerinde çağrılanmaz) anlamına gelir.
saveBackStack()
ile kullanılabilecek parça işlemleri belirli ölçütleri karşılamalıdır:
- İşlemlerin tek bir atomik işlem olarak geri yüklenebilmesi için her parça işleminde
setReorderingAllowed(true)
kullanılması gerekir. - Kaydedilen işlemler grubunun, araya giren sürede arka yığında ne değişiklik yapılmış olursa olsun daha sonra geri yüklenebilmesi için bağımsız olması gerekir (diğer bir deyişle, söz konusu işlem grubunun dışındaki herhangi bir parçaya açıkça başvuruda bulunmamalıdır).
FragmentManager
öğesinin, arka yığın kaydedildikten sonra kaydedilen parçalara herhangi bir referans döndürmemesini sağlamak için, kaydedilen hiçbir parça, saklanan bir parça olamaz veya geçişli alt parçalar kümesinde tutulan bir parçaya sahip olamaz.
saveBackStack()
işlevine benzer şekilde, saveBackStack()
öğesini daha önce aynı adla çağırmadıysanız restoreBackStack()
hiçbir şey yapmaz. (b/80029773)
Parça StrictMode
FragmentStrictMode
API'leri, uygulamanızın veya kullandığınız kitaplıkların kullanımdan kaldırılmış parça API'lerini çağırmadığını doğrulamanıza olanak tanıyan çalışma zamanı denetimleri sunar. Bir ihlal tespit edildiğinde, günlük mesajı yazdırmayı, kendi özel işleyicinizi tetiklemeyi veya uygulamanızı kilitlenmeyi seçebilirsiniz. Hangi kontrollerin etkinleştirileceğini ve hangi "cezaların" tetikleneceğini kontrol eden FragmentStrictMode.Policy
, yeni setStrictModePolicy()
yöntemiyle FragmentManager
üzerinde ayarlanabilir. Bu politika, söz konusu FragmentManager
için ve kendi benzersiz politikasını ayarlamamış tüm alt parça yöneticileri için geçişli olarak geçerlidir. (#123, #131, #150, b/143774122)
detectFragmentReuse()
, daha önce kaldırılmış birFragment
örneğinin birFragmentManager
öğesine yeniden eklenip eklenmediğini algılar. BirFragmentManager
örneği silinip silindikten sonraFragment
örneğiyle hiçbir zaman etkileşimde bulunmamalı ve örneğe referans tutmamalısınız. (#142, b/153738653)detectFragmentTagUsage()
, düzen XML'inizde<fragment>
etiketini kullandığınızı algılar. Düzeninizin bir parçası olarak parçaları şişirirken her zamanFragmentContainerView
kullanmanız gerekir. (#141, b/153738235)detectWrongFragmentContainer()
,FragmentContainerView
olmayan bir kapsayıcıya parça eklediğinizi algılar. Düzeninizdeki parçalar için kapsayıcı olarak her zamanFragmentContainerView
kullanmanız gerekir. (#146, b/181137036)detectRetainInstanceUsage()
, kullanımdan kaldırılansetRetainInstance()
veyagetRetainInstance()
API'lerini kullandığınızı algılar. (#140, b/153737954)detectSetUserVisibleHint()
, kullanımdan kaldırılansetUserVisibleHint()
API'yi kullandığınızı algılar. (#136, b/153738974)detectTargetFragmentUsage()
; kullanımdan kaldırılmışsetTargetFragment()
,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 kullanılabilen tek seçenek yeni durum yöneticisi. (I90036, b/162776418)FragmentScenario
artıkCloseable
özelliğini uyguluyor. Böylece, Kotlin'inuse
yöntemi veya kaynaklarla deneyin özelliğini kullanabilirsiniz. (#121, b/143774122)
Yeni Lint kontrolleri
UseGetLayoutInflater
Lint kontrolü artıkDialogFragment
içindeLayoutInflater.from(Context)
kullanıldığında uyarı veriyor.LayoutInflater
için uygun olanı almak için her zaman iletişim kutusu parçasınıngetLayoutInflater()
yöntemini kullanmanız gerekir. (#156, b/170781346)DialogFragmentCallbacksDetector
Lint kontrolü artıkDialogFragment
içinonCreateDialog()
yöntemindesetOnCancelListener
veyasetOnDismissListener
çağrısı yapıldığında uyarı veriyor. Bu işleyicilerDialogFragment
öğesine aittir ve geri çağırmaları almak içinonCancel()
veonDismiss()
değerlerini geçersiz kılmanız gerekir. (#171, b/181780047, b/187524311)
Hata Düzeltmeleri
- Parça 1.3.4'ten:
ViewTreeViewModelStoreOwner.get()
API'yiViewModelProvider
ile veya bir Parça içindeviewModel()
Jetpack Compose yöntemi kullanılırken1.3.3
Parça'da ortaya çıkan regresyon düzeltildi. Bu kullanım alanlarında artık,getDefaultViewModelProviderFactory()
geçersiz kılması durumunda Fragment'ınız tarafından sağlananViewModelProvider.Factory
doğru şekilde kullanılmaktadır (@AndroidEntryPoint
ek açıklamalı Parçalar'ın Hilt kullanılırken yaptığı gibi). Bu yöntemi geçersiz kılmazsanız Parça'nın görünümüyle birlikte durumunu kaydeden ve geri yükleyen birSavedStateViewModelFactory
, varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368) - 1.3.4'ten itibaren: API 29'da
FragmentContainerView
kullanılırken ek verileri daha uzun süre boyunca dağıtarakBottomNavigationBar
veFloatingActionButton
örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452) - Parça 1.3.4'ten: Artık Parcel öğesini parça sonucundan alabilirsiniz paketleme aşamasıdır. (I65932, b/187443158)
- Parça 1.3.4'ten: ViewGroup'ta paylaşılan bir öğe geçişi yaparken
ViewGroup'un
transitionGroup
değeri "yanlış" olarak ayarlandı ve artık düzgün şekilde ayarlanacak için geçerlidir. (I99675)
Harici Katkı
FragmentScenario
tarafındanCloseable
uygulanmasına izin verdiğiniz için simonschiller'a teşekkür ederiz. (#121, b/143774122)- Bu sürüme
FragmentStrictMode
API'nin tamamını eklediğiniz için simonschiller'a teşekkür ederiz. UseGetLayoutInflater
Lint kontrolünü eklediğiniz için tatocaster'a teşekkür ederiz. (#156, b/170781346)DialogFragmentCallbacksDetector
Lint kontrolünü eklediğiniz için tatocaster'a teşekkür ederiz. (#171, b/181780047)
Sürüm 1.3
Sürüm 1.3.6
21 Temmuz 2021
androidx.fragment:fragment:1.3.6
, androidx.fragment:fragment-ktx:1.3.6
ve androidx.fragment:fragment-testing:1.3.6
serbest bırakıldı. 1.3.6 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
1.4.0-alpha03
Parçasından: Şu işlemi denediğinizdeFragmentManager
artık kilitlenmez gizlenen parçayı görüntüleyebilirsiniz. (I573dd, b/183634730)- Kök görünümünde
transitionGroup=”true”
ayarlandığında,hide()
kullanılırken Parçanın görünümü artık düzgün bir şekildeGONE
olarak ayarlanıyor. (aosp/1766655, b/193603427) FragmentActivity
artık kilidi her zaman açıyor yaşam döngüsündeki ilk işlem olarak kayıtlı duruma geri çağırmalarını yapar. (I6db7a)
Bağımlılık güncellemesi
1.3.6
Parçasından: Parçalar artık1.2.4
etkinliğine (I3a66c) bağlıdır
Sürüm 1.3.5
16 Haziran 2021
androidx.fragment:fragment:1.3.5
, androidx.fragment:fragment-ktx:1.3.5
ve androidx.fragment:fragment-testing:1.3.5
serbest bırakıldı. 1.3.5 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- aosp/1679887 tarafından
1.3.4
Parça'da açıklanan paylaşılan öğe geçişlerindeki regresyon düzeltildi. Parçalar artık geçiş gruplarını (doğrudantransitionGroup="true"
ile dolaylı olarak veyatransitionName
ya dabackground
ile dolaylı olarak ayarlanır) doğru şekilde işliyor ve paylaşılan öğeler artıkIndexOutOfBoundsException
öğesini tetiklemez. (I16484, b/188679569, b/188969304)
Sürüm 1.3.4
18 Mayıs 2021
androidx.fragment:fragment:1.3.4
, androidx.fragment:fragment-ktx:1.3.4
ve androidx.fragment:fragment-testing:1.3.4
serbest bırakıldı. 1.3.4 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
ViewTreeViewModelStoreOwner.get()
API'yiViewModelProvider
ile kullanırken veya Hilt kullanılırken bir Parça içindeviewModel()
Jetpack Compose yöntemi kullanılırken1.3.3
Parça'da ortaya çıkan regresyon düzeltildi. Bu kullanım alanlarında artık,getDefaultViewModelProviderFactory()
geçersiz kılması durumunda Parçanız tarafından sağlananViewModelProvider.Factory
doğru şekilde kullanılmaktadır (@AndroidEntryPoint
ek açıklamalı Fragment'ların kullandığı şekilde). Bu yöntemi geçersiz kılmazsanız Parça'nın görünümüyle birlikte durumunu kaydeden ve geri yükleyen birSavedStateViewModelFactory
, varsayılan fabrika olarak oluşturulur. (I5cbfa, b/186097368)- API 29 üzerinde
FragmentContainerView
kullanılırken ek verileri daha uzun süre boyunca dağıtarakBottomNavigationBar
veFloatingActionButton
örnekleriyle ilgili sorunlar düzeltilir. (I1bb78, b/186012452) - Artık Parcelable'ınızı parça sonucundan alabilirsiniz paketleme aşamasıdır. (I65932, b/187443158)
- ViewGroup'ta paylaşılan bir öğe geçişi yaparken
ViewGroup
transitionGroup
"yanlış" olarak ayarlandı, artık düzgün bir şekilde olacak için geçerlidir. (I99675)
Sürüm 1.3.3
21 Nisan 2021
androidx.fragment:fragment:1.3.3
, androidx.fragment:fragment-ktx:1.3.3
ve androidx.fragment:fragment-testing:1.3.3
serbest bırakıldı. 1.3.3 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
SavedStateViewModelFactory
ile artık kullanılabilir tarafından döndürülenSavedStateRegistryOwner
ile kullanıldığındaViewTreeSavedStateRegistryOwner.get()
kullanıyorsanız Parçanın Görünümü. (I21acf, b/181577191)
Hata Düzeltmeleri
1.3.2
Parçası'nda bulunan veNavHostFragment
tarafından kullanılanlara benzersetPrimaryNavFragment
işlemi içeren birFragmentTransaction
açılırkenpopEnter
animasyonlarının çalışmamasına neden olan regresyon düzeltildi. (I38c87, b/183877426)FragmentContainerView
artık herFragment
için yeni bir grupWindowInsets
ile her parçanın ekleri bağımsız olarak tüketebilmesi sağlanır. (I63f68, b/172153900)DialogFragment
, özelDialog
sınıfınızdaki bir kapsayıcıyla aynı kimliğe sahip olan bir kapsayıcıya alt parçanın eklendiği durumları artık düzgün bir şekilde işliyor veBottomSheetDialog
gibi iletişim kutuları tarafından dahili olarak kullanılan kimlikleri yeniden kullanırken görünüm hiyerarşisi sorunlarını düzeltiyor. (Ie6279, b/180021387)FragmentManager.dump()
artık etkin parçalar listesindeki ilk parçayı düzgün şekilde girintiler. (If5c33, b/183705451)
Yeni Eyalet Yöneticisi Hata Düzeltmeleri
- Yeni parça durumu yöneticisi artık çıkışı düzgün şekilde işliyor geçişleri yapabilirsiniz. (I9e4de, b/184830265)
Sürüm 1.3.2
24 Mart 2021
androidx.fragment:fragment:1.3.2
, androidx.fragment:fragment-ktx:1.3.2
ve androidx.fragment:fragment-testing:1.3.2
serbest bırakıldı. 1.3.2 sürümü bu kaydetmeleri içerir.
Yeni Eyalet Yöneticisi Hata Düzeltmeleri
- Hem
popBackStack()
hem decommit()
işlemlerini çalıştırırken aynı olursa son işlem de tüm öğelerin pop animasyonlar çalıştırmak yerine animasyon animasyonları da ekler. (I7072e, b/181142246) - Paylaşılan öğe hiyerarşisindeki görünümlerin paylaşılan öğe geçişi yaparken geçiş adı temizlendi. (I4d4a6, b/179934757)
Bağımlılık Güncellemeleri
- Parça artık Etkinlik 1.2.2'ye bağlı olarak, Parça 1.3.1 veya sonraki bir sürümü kullanırken Etkinlik'in
InvalidFragmentVersionForActivityResult
hata analizi kontrolüyle ilgili bir sorunu düzeltiyor. - Parça artık Yaşam Döngüsü 2.3.1'e bağlı.
Sürüm 1.3.1
10 Mart 2021
androidx.fragment:fragment:1.3.1
, androidx.fragment:fragment-ktx:1.3.1
ve androidx.fragment:fragment-testing:1.3.1
serbest bırakıldı. Sürüm 1.3.1 bu kaydetmeleri içerir.
Yeni Özellikler
- Bir
DialogFragment
içindeki iletişim kutuları artık ViewTree'ye erişebilir özelliklerini kullanarakDialogFragment
öğesininComposeView
ile kullanılabilmesini sağlar. (Ib9290, b/180691023)
Hata Düzeltmeleri
- Parçalar şişirilerek daha önce
RESUMED
aktiviteye dönüştürüldü FragmentContainerView artık yapılandırmadan sonra düzgün bir şekilde gösteriliyor unutmayın. (Ie14c8, b/180538371) - Artık parçanın sonunda fazladan bir
}
yoktoString()
(I54705, b/177761088) - FragmentActivity'deki geçersiz kılınan yöntemler artık temel yöntem javaDoc (I736ce, b/139548782)
setFragmentResult
vesetFragmentResultListener
için dokümanlar parametre dokümanlarını artık kabul etmediklerini null değerler (I990ba, b/178348386)
Yeni Eyalet Yöneticisi Hata Düzeltmeleri
mFocusedView
(Ib4e9e, b/179925887) nedeniyle parçalarda oluşan bellek sızıntısı düzeltildi- Parçalar artık kullanıldığında
onCreateOptionsMenu
düzgün şekilde çağrılıyor işlemleri gösterme/gizleme (I8bce8, b/180255554) - Parçanın yerleştirilmesinden önce başlayan geçişlere sahip alt parçalar artık düzgün bir şekilde
RESUMED
(Ic11e6, b/180825150) <fragment>
etiketi kullanılarak şişirilen parçalar artık her zamanRESUMED
(I452ac, (I9fa49)) hedefine ulaşmak
Bağımlılık Güncellemeleri
- 1.3.1 parçası,
1.2.1
etkinliğine bağlıdır. (I557b9)
Sürüm 1.3.0
10 Şubat 2021
androidx.fragment:fragment:1.3.0
, androidx.fragment:fragment-ktx:1.3.0
ve androidx.fragment:fragment-testing:1.3.0
serbest bırakıldı. 1.3.0 sürümü bu kaydetmeleri içerir.
1.2.0'dan bu yana önemli değişiklikler
- Yeni Durum Yöneticisi:
FragmentManager
ürününün dahili öğelerinin önemli ölçüde yeniden yazılması, yaşam döngüsü etkinliklerinin, animasyonların ve geçişlerin dağıtımı ve ertelenen parçaların işlenme şekliyle ilgili çok sayıda sorunu düzeltti. Etkinlik Sonucu API'si Entegrasyonu:
1.2.0
Etkinliği'nde kullanıma sunulanActivityResultRegistry
API desteği, bu akışları test etmek için kancalar sağlamanın yanı sıra parçanızdaki yöntemleri geçersiz kılmadanrequestPermissions()
+onRequestPermissionsResult()
akışlarının yanı sırastartActivityForResult()
+onActivityResult()
akışlarını işlemek üzere eklendi. Güncellenmiş Etkinlikten Sonuç Alma bölümüne göz atın.- Bu sürümde, geçersiz istek kodları ve Activity Result API'nin önceki
FragmentActivity
sürümlerinde çalışmasını engelleyen izin isteklerinin gönderilmesiyle ilgili çeşitli sorunlar giderilmektedir. Etkinlik Sonucu API'leriniFragmentActivity
veyaAppCompatActivity
içinde kullanmak için Parça 1.3.0'a yükseltmeniz gerekir.
- Bu sürümde, geçersiz istek kodları ve Activity Result API'nin önceki
Pragment Result API:
FragmentManager
'de yeni API'ler aracılığıyla iki Parça arasında sonuçların iletilmesi için destek eklendi. Bu, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragments'lar ve parçalar için çalışır ve sonuçların yalnızca en azSTARTED
durumundayken Parçanıza gönderilmesini sağlar. Hedef parça API'ler kullanımdan kaldırılarak yeni API'lerin kullanılmaya başlanmasıdır. Fragment Result API'sini kullanarak Sonuç Alma bölümüne bakın.FragmentOnAttachListener
:FragmentActivity
veFragment
üzerindeonAttachFragment()
geri çağırması kullanımdan kaldırıldı. Daha esnek bir alternatif sağlamak amacıyla yeni birFragmentOnAttachListener
eklendi. Bu sayedeonAttachFragment()
için ayrı, test edilebilir dinleyicilere yetki verebilir ve doğrudan alt FragmentManager'ınız dışındaki FragmentManager'lara işleyici ekleme desteği de alabilirsiniz.FragmentScenario
İyileştirmeler:fragment-testing
yapısındakiFragmentScenario
sınıfı Kotlin'de yeniden yazıldı ve çeşitli iyileştirmeler yapıldı:FragmentScenario
,moveToState()
uygulamak için artıksetMaxLifecycle()
kullanıyor. Böylece tüm API düzeylerinde tutarlı davranışlar sağlanıyor ve parçanın durumunu temel etkinlikten ayrıştırıyor.FragmentScenario
artık her birLifecycle.State
için ilk kez taşımadan önce parçanın durumunun doğrulanmasını desteklemek için bir başlangıçLifecycle.State
ayarlanmasını destekliyor.- Artık
onFragment
içinFragmentScenario
API'nin, değer döndürmenizi sağlayan Kotlin birleştirilmiş uzantı yöntemiwithFragment
biçimindeki bir alternatifi bulunmaktadır. Özellikle, belirtilen blokta ortaya çıkan istisnaları yeniden atar.
ViewTree
Desteği:Fragment
artık Yaşam Döngüsü2.3.0
ve SavedState1.1.0
süreçlerine eklenenViewTreeLifecycleOwner.get(View)
,ViewTreeViewModelStoreOwner.get(View)
veViewTreeSavedStateRegistryOwner
API'lerini desteklemektedir. Böylece, ParçayıViewModelStoreOwner
olarak döndürür veFragment
içinde kullanılırken parçanın görünüm Yaşam Döngüsü olarak parçanınSavedStateRegistryOwner
veLifecycleOwner
öğesine bağlı olduğu birSavedStateRegistryOwner
veLifecycleOwner
API'si döndürülür.View
TRANSIT_
animasyon değişiklikleri: Parça varsayılan efektleri (TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
veTRANSIT_FRAGMENT_FADE
) artıkAnimation
yerineAnimator
kullanıyor. Bu animatörleri oluşturmak için kullanılan kaynaklar artık gizli.setRetainInstance()
desteğinin sonlandırılması: Parçalar içinsetRetainInstance()
yöntemi kullanımdan kaldırıldı. ViewModels'in kullanıma sunulmasıyla, geliştiricilerin durumu korumak için Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek belirli bir API'sı vardır. Bu, geliştiricilerin normal, saklanmayan bir Parça'yı kullanmalarına ve istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, ortak bir sızıntı kaynağından kaçınarak, tutulan durumun (yaniViewModel
öğesinin ve aldığıonCleared()
geri çağırmasının oluşturucusu) oluşturulma ve yok edilmesinin yararlı özelliklerini korurlar.ViewPager 1 bağdaştırıcısının kullanımdan kaldırılması: ViewPager2
1.0.0
sürümüyle birlikte,ViewPager
ile etkileşimde bulunmak içinFragmentPagerAdapter
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
serbest bırakıldı. Sürüm 1.3.0-rc02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Yapılandırma değişikliğinden sonra üst
DialogFragment
öğesinin, altDialogFragment
öğesinin üzerinde görünmesine neden olan sorun düzeltildi; alt iletişim kutusu parçaları artık her zaman üst iletişim kutusu parçasının üzerinde görünüyor. (I30806, b/177439520) Animation
ilehide
işlemi yapılmasıyla ilgili sorun düzeltildi saklama parçasının animasyonun sonunda yanıp sönmesine neden olur. (I57e22, b/175417675)- Görünüm hiyerarşisinden önce eklenen geçişlere sahip parçalar
düzgün şekilde eklenmiş olması durumunda
RESUMED
. (I1fc1d, b/177154873)
Yeni Eyalet Yöneticisi Hata Düzeltmeleri
- Parçanın görünümü
Lifecycle
artık Parçanın görünümünün,Lifecycle
CREATED
tutarına ulaşmadan yok edildiği durumları düzgün bir şekilde işliyor. Bu durumda, "BAŞLANGIÇ TARİHİNDEN itibaren herhangi bir etkinlik gerçekleşmedi" gibi istisnaların önüne geçiliyor. (eda2bd, b/176138645) Animator
kullanan parçalar artıkFragmentContainerView
. (Id9aa3, b/176089197)
Sürüm 1.3.0-rc01
16 Aralık 2020
androidx.fragment:fragment:1.3.0-rc01
, androidx.fragment:fragment-ktx:1.3.0-rc01
ve androidx.fragment:fragment-testing:1.3.0-rc01
serbest bırakıldı. Sürüm 1.3.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
onPrepareOptionsMenu()
artıkonCreateOptionsMenu()
ve artık bir üst parça olduğunda çağrılmazsetMenuVisibility(false)
numaralı telefonu arar. (Id7de8, b/173203654)
Yeni Eyalet Yöneticisi Hata Düzeltmeleri
- Ekleme sırasında oluşan sızıntı ve görsel yapı düzeltildi
bir parçaya
Animation
FragmentContainerView
ve ardından bu işlemi kesintiye uğratıyor pop işlemiyle ekleme. (I952d8) - Parça görünümünün neden olacağı sorun giderildi
sırasında değiştirilirse görünüm hiyerarşisinde kalır.
onun
onCreate()
veyaonViewCreated()
yöntemleri. (I8a7d5) - Aşağıdaki durumlarda odak, Parça kök görünümlerine düzgün şekilde geri yüklenir. devam ettirilir. (Ifc84b)
- Pop ve değiştirme işlemlerini aynı parçada birleştirme işlemi artık uygun animasyonları gösterecek (Ifd4e4, b/170328691)
Sürüm 1.3.0-beta02
2 Aralık 2020
androidx.fragment:fragment:1.3.0-beta02
, androidx.fragment:fragment-ktx:1.3.0-beta02
ve androidx.fragment:fragment-testing:1.3.0-beta02
serbest bırakıldı. Sürüm 1.3.0-beta02 bu kaydetmeleri içerir.
Yeni Özellikler
FragmentScenario
,FragmentAction
için Kotlin 1.4'ün işlevsel arayüzleri kullanılarak kaynak ve ikili program uyumluluğu korunurken tamamen Kotlin'e dönüştürüldü. (I19d31)
Davranış Değişiklikleri
class
veyaandroid:name
özelliğini kullanarak bir parçayı genişletmeyen FragmentContainerView'lar artıkFragmentActivity
dışında kullanılabilir. (Id4397, b/172266337)- Bir parçanın maksimum yaşam döngüsü
DESTROYED
olarak ayarlanmaya çalışıldığındaIllegalArgumentException
(Ie7651, b/170765622) atılır - Parça Senaryosu,
DESTROYED
durumuyla başlatıldığında artıkIllegalArgumentException
(I73590, b/170765622) atar
Yeni Eyalet Yöneticisi Hata Düzeltmeleri
Animator
veyaTRANSIT_FRAGMENT_
seçeneklerinden birini kullanan bir parça geçişini kesintiye uğrattığınızda görünümün son durumuna ulaşmamasına neden olan sorun düzeltildi. (I92426, b/169874632)- Çıkış noktası
Animation
olan parçaların düzgün şekilde kaldırılmasını engelleyen bir sorun düzeltildi. (I83d65) - Etkileri şimdi tersine çevrilen parçalardan çıkma ve doğru giriş efektiyle yeniden başlatın. (I62226, b/167092035)
hide()
öğesindenAnimator
çıkışının çalışmamasına neden olan sorun düzeltildi. (Id7ffe)- Parçalar artık ertelendiklerinde ve hemen başlatıldığında düzgün şekilde görünüyor. (Ie713b, b/170022857)
- Animasyon sırasında odaklanılan görünümü kaldıran parçalar,
RESUMED
hedefine ulaştığında artık odağı ayrılmış görünüme geri getirmeye çalışmayacak (I38c65, b/172925703)
Harici Katkı
FragmentFactory
artık farklıClassLoader
örnekleri için parça sınıflarını ayrı ayrı önbelleğe alıyor. Teşekkürler Simon Schiller. (#87, b/113886460)
Sürüm 1.3.0-beta01
1 Ekim 2020
androidx.fragment:fragment:1.3.0-beta01
, androidx.fragment:fragment-ktx:1.3.0-beta01
ve androidx.fragment:fragment-testing:1.3.0-beta01
serbest bırakıldı. Sürüm 1.3.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
setMaxLifecycle()
, parçaCREATED
konumuna taşınmadığı sürece artıkLifecycle
durumununINITIALIZING
olarak ayarlanmasını destekliyor. (b/159662173)
API Değişiklikleri
- Kotlin 1.4'ü (Id6471, b/165307851, b/165300826) kullanmak için Androidx'i yükseltin
Davranış Değişiklikleri
- Parça kaynak dosyaları doğru şekilde gizli hale getirildi. (aosp/1425237)
Hata Düzeltmeleri
<fragment>
etiketi kullanılarak şişirilen parçalar artık düzgün bir şekilde tamamlanacak BAŞLANGIÇ (I02f4c) bölümüne geçmeden önce görünümlerinin bir kapsayıcıya eklenmesini bekleyin- Görünür olan parçaların çıkış efektleri, daha sonra
setMaxLifecycle()
veCREATED
arasında artık düzgün şekilde çalışıyor. (b/165822335) - Arka yığına eklenmeyen ayrılmış bir parçanın kaldırılması, artık bellek sızıntısına neden olmaz. Nicklas Ansman Giertz'in izniyle! (b/166489383)
- Etkin parçalar artık her zaman boş olmayan bir
FragmentManager
öğesine sahip olacak ve boş olmayanFragmentManager
öğesine sahip 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 Eyalet Yöneticisi Hata Düzeltmeleri
- Parçalar artık görüntüleme odağı durumunu hemen önce gösterilecek şekilde değiştirmeniz gerekir. (Icc256)
- Şu anda yalnızca paylaşılan öğe geçişi olan parçaların geçişi doğru şekilde tamamlamalarını sağlayarak son durumları (Iaebc7, b/166658128)
- Parça görünümleri artık her zaman kapsayıcıdan kaldırılıyor geri yüklenir. (Id5876)
- Yeni durum yöneticisi artık mevcut parça görünümünü açar. (I41a6e)
- Parça görünümünün görünürlüğünde yapılan açık değişiklikler artık yeni durum yöneticisi tarafından dikkate alınıyor. Bu, giren bir parçanın görünümünü animasyon başlamadan önce
INVISIBLE
değerine ayarlarsanız, gerçekte görünmez kalacağı anlamına gelir. (b/164481490) - Parçalar artık
Animations
yerineAnimators
değerine öncelik verir. Yani, her ikisine sahip bir parça yalnızcaAnimator
öğesini çalıştırır veAnimation
öğesini yoksayar. (b/167579557) - Yeni durum yöneticisi, animasyon girerken artık parçaların yanıp sönmesine neden olmuyor. (b/163084315)
Bilinen Sorun
Yeni durum yöneticisini kullanırken, özel efekt girerken önceki parçaya dönmek yerine geri tuşuna basarsanız, eski parça hiçbir zaman yeniden eklenmez ve sonuç olarak boş ekran görüntülenir. (b/167259187, b/167092035, b/168442830)
Sürüm 1.3.0-alpha08
19 Ağustos 2020
androidx.fragment:fragment:1.3.0-alpha08
, androidx.fragment:fragment-ktx:1.3.0-alpha08
ve androidx.fragment:fragment-testing:1.3.0-alpha08
serbest bırakıldı. 1.3.0-alpha08 sürümü bu kaydetmeleri içerir.
Yeni Eyalet Yöneticisi
Bu sürümde, FragmentManager
ürününün dahili durum yönetiminde önemli bir yeniden düzenleme yapıldı. Bu değişiklik, yaşam döngüsü yöntemlerinin, animasyonların ve geçişlerin dağıtılmasını ve ertelenen işlemlerin nasıl yapıldığını etkiler. Bu ayar varsayılan olarak etkindir. Daha fazla bilgi için Parçalar: Rebuilding the Internals blog yayınını inceleyin. (b/139536619, b/147749580)
- FragmentManager'ın yeni durum yöneticisini kullanıp kullanmadığını kontrol etmek için
FragmentManager.enableNewStateManager(boolean)
ürünündeki deneysel bir API kullanılabilir. (I7b6ee)
Aşağıdaki sorunlar yalnızca yeni durum yöneticisi kullanılırken düzeltilir:
replace
işleminin önceki parçası artık yeni parça başlatılmadan önce doğru şekilde durduruldu. (b/161654580)- Parçalar artık aynı parçalarda rekabet eden birden çok animasyonu engelleyerek
Animation
öğesinin tümTransition
efektlerini veya tek bir parçadakiAnimator
veTransition
öğelerinin her ikisini de geçersiz kılacağı durumlardan kaçınıyor. (b/149569323) - Giren ve çıkan tüm parçaların
enterTransition
veexitTranstion
değerleri artık yalnızca son giren parça ve ilk çıkış parçası yerine çalıştırılıyor. (b/149344150) - Ertelenen parçalar artık
CREATED
durumunda takılı kalmaz, bunun yerine diğer parçalarla birlikteSTARTED
konumuna taşınır. (b/129035555) - Ertelenen ve yeniden sipariş edilmiş bir işlemle yeniden sipariş edilmemiş bir işlemi karıştırırken
FragmentManager
ürününün, işlemleri hatalı bir şekilde yürütmesine neden olan sorun düzeltildi. (b/147297731) - Birden fazla parçanın aynı anda yerleştirilmesi, parçalar ertelenirken ara parçaların artık geçici olarak görünmesine neden olmayacak. (b/37140383)
FragmentManager
,onAttachFragment()
geri çağırmasındanfindFragmentById()
veyafindFragmentByTag()
çağrısında artık doğru parçaları döndürüyor. (b/153082833)- Parçalar, yerini alacakları parça ertelendiğinde yok edilen parçalarda artık
onCreateView()
çağırmaz. (b/143915710) Transition
çerçevesi ve AndroidXTransition
örnekleri birleştirilmeye çalışılırken gösterilen hata mesajında artık geçersiz geçişe sahip parçadan bahsediliyor. (b/155574969)
Davranış Değişiklikleri
- Artık bir parçanın
onCreate()
yaşam döngüsü yöntemindeki birActivityResultLauncher
üzerindelaunch()
çağırabilirsiniz. (b/161464278) - Bir yapılandırma değişikliğinden sonra sonuçları sessizce teslim etmek yerine,
onCreate()
sonrasındaregisterForActivityResult()
çağrıldığında artık buna izin verilmediğini belirten bir istisna devreye giriyor. (b/162255449) FragmentActivity
, artıkFragmentManager
durumunu geri yüklemek için1.2.0-alpha08
Etkinliği'nde 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
parametresi artık dikkate alınıyor. (b/162247961)
Bilinen Sorun
- Yeni durum yöneticisi kullanılırken parçanın kök görünümünün görünürlüğünü
onViewCreated()
tarihinden sonra veonResume()
öncesinde doğrudan ayarlamak, ayarladığınız görünürlüğünFragmentManager
tarafından geçersiz kılınmasına neden olur. Bu ayar, kök görünümünün görünürlüğünü kontrol eder. Geçici çözüm olarak, parçanızın görünürlüğünü değiştirmek için her zamanhide()
veshow()
işlemlerini kullanmalısınız. (b/164481490)
Sürüm 1.3.0-alpha07
22 Temmuz 2020
androidx.fragment:fragment:1.3.0-alpha07
, androidx.fragment:fragment-ktx:1.3.0-alpha07
ve androidx.fragment:fragment-testing:1.3.0-alpha07
serbest bırakıldı. 1.3.0-alpha07 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FragmentScenario
artık bir baş harfinin ayarlanmasını destekliyorCREATED
,STARTED
veyaRESUMED
yaşam döngüsü durumu Parçayı her zamanRESUMED
hedefine taşımak yerine durumu. (b/159662750)onFragment
içinFragmentScenario
API'ye, değer döndürmenizi sağlayan Kotlin birleştirilmiş uzantı yöntemiwithFragment
biçimindeki bir alternatif eklendi. Özellikle, belirtilen blokta ortaya çıkan istisnaları yeniden atar. (b/158697631)
Davranış Değişiklikleri
FragmentScenario
,moveToState()
uygulamak için artıksetMaxLifecycle()
kullanıyor. Böylece tüm API düzeylerinde tutarlı davranışlar sağlanıyor ve parçanın durumunu temel etkinlikten ayrıştırıyor. (b/156527405)ViewTreeSavedStateRegistryOwner
tarafından döndürülenSavedStateRegistryOwner
artık parça görünümünün Yaşam Döngüsü'ne bağlıdır. Bu, durumunun kaydedilmesini ve parçanın görünümüyle aynı anda geri yüklenmesini sağlar. (b/158503763)
Hata Düzeltmeleri
- Parçalar artık
ViewCompat.requestApplyInsets()
çağrısından önce parça görünümünün eklenmesini bekler. Böylece, ek isteğinin bırakıldığı durumlardan kaçınmış olursunuz. (b/158095749) clearFragmentResultListener
arandığında artık düzgün şekilde temizlenecek yaşam döngüsü gözlemcisidir. (b/159274993)
Sürüm 1.3.0-alpha06
10 Haziran 2020
androidx.fragment:fragment:1.3.0-alpha06
, androidx.fragment:fragment-ktx:1.3.0-alpha06
ve androidx.fragment:fragment-testing:1.3.0-alpha06
serbest bırakıldı. 1.3.0-alpha06 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
onAttachFragment()
geri çağırmasıFragmentActivity
veFragment
desteği sonlandırıldı. Şu konuma yeni birFragmentOnAttachListener
eklendi: daha esnek bir alternatif sunar. Böylece, Ayrı, test edilebilir dinleyiciler içinonAttachFragment()
ve FragmentManagers'a bir işleyici ekleme desteği yardımcı olan başka bir e-posta alırsınız. (I06d3d)
Hata Düzeltmeleri
- Üst parçaların görünüm durumu artık alt parçalardan önce geri yükleniyor. Bir yapılandırma değişikliğinden sonra,
DialogFragment
öğesi alt parça olarak başka birDialogFragment
gösterdiğinde ortaya çıkan görsel sıralama sorunu düzeltiliyor. (b/157195715) UseRequireInsteadOfGet
Lint kontrolünün,?.
ve!!
operatörlerinin zincir kullanımlarını doğru şekilde işlememesine neden olan sorun düzeltildi. (b/157677616)
Sürüm 1.3.0-alpha05
20 Mayıs 2020
androidx.fragment:fragment:1.3.0-alpha05
, androidx.fragment:fragment-ktx:1.3.0-alpha05
ve androidx.fragment:fragment-testing:1.3.0-alpha05
serbest bırakıldı. 1.3.0-alpha05 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
Fragment
içindeView
kullanırken Yaşam Döngüsü2.3.0-alpha03
ve SavedState1.1.0-alpha01
etiketindenViewTreeViewModelStoreOwner
için destek eklendi.ViewTreeSavedStateRegistryOwner
(aosp/1297993, aosp/1300264)
API Değişiklikleri
setFragmentResult()
vesetFragmentResultListener()
API'leri artık boş olmayanBundle
veFragmentResultListener
değerini alıyor. Önceden ayarlanmış bir sonucu veya işleyiciyi açıkça temizlemek için yeniclearFragmentResult()
veclearFragmentResultListener()
yöntemlerini kullanın. (b/155416778)- Lambda alan
setFragmentResultListener()
Kotlin uzantıları artıkinline
olarak işaretlendi. (b/155323404)
Davranış Değişiklikleri
Fragment
ürününde kullanımdan kaldırılanstartActivityForResult()
,startIntentSenderForResult()
verequestPermissions
, artık dahili olarakActivityResultRegistry
kullanıyor. Böylece, bu API'leri kullanırken istek kodlarınız için yalnızca düşük bitlerin (0xFFFF
altında) kullanılmasına yönelik kısıtlama kaldırılacaktır. (b/155518741)
Doküman Güncellemeleri
- Varsayılan
FragmentFactory
kullanılırken alt sınıflarınızın "no bağımsız değişkeni"nden çağrılması gerektiğini netleştirmek içinFragment(@LayoutRes int)
veDialogFragment(@LayoutRes int)
oluşturucularıyla ilgili dokümanlar genişletildi. (b/153042497)
Sürüm 1.3.0-alpha04
29 Nisan 2020
androidx.fragment:fragment:1.3.0-alpha04
, androidx.fragment:fragment-ktx:1.3.0-alpha04
ve androidx.fragment:fragment-testing:1.3.0-alpha04
serbest bırakıldı. 1.3.0-alpha04 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FragmentManager
tarihinde yeni API'ler aracılığıyla iki Parça arasında sonuçların aktarılması için destek eklendi. Bu, Gezinme'deki hiyerarşi parçaları (üst/alt), DialogFragments'lar ve parçalar için çalışır ve sonuçların yalnızca en azSTARTED
durumundayken Parçanıza gönderilmesini sağlar. (b/149787344)
API Değişiklikleri
- Hedef parça API'lerin desteği sonlandırılmıştır. Parçalar arasında veri iletmek için bunun yerine yeni Parça Sonuç API'leri kullanılmalıdır. (b/149787344)
- Fragment'taki
startActivityForResult()
/onActivityResult()
verequestPermissions()
/onRequestPermissionsResult()
API'leri kullanımdan kaldırıldı. Lütfen Activity Result API'lerini kullanın. (aosp/1290887) 1.2.0-alpha04
Etkinliği'nde önemli değişiklik:prepareCall()
yöntemiregisterForActivityResult()
olarak yeniden adlandırıldı. (aosp/1278717)
Hata Düzeltmeleri
- Parçanın
getViewLifecycleOwner()
işlevi artıkonSaveInstanceState()
çağrılmadan önce durdurularak parçanın yaşam döngüsü davranışını yansıtır. (b/154645875) - Bir parça üzerinde
setMenuVisibility(false)
çağrısı yapıldığında, alt parçaları tarafından sağlanan menülerin görünürlüğü artık doğru şekilde değişiyor. (b/153593580) DialogFragment
öğesininFragmentContainerView
ile görünüm hiyerarşisine parça eklerkenillegalStateException
düzeltildi. (b/154366601)- Parçalarınız bir etkinliğin dışında barındırılırken artık parçalardaki
getDefaultViewModelProviderFactory()
yöntemi kilitlenmez. (b/153762914)
Sürüm 1.3.0-alpha03
1 Nisan 2020
androidx.fragment:fragment:1.3.0-alpha03
, androidx.fragment:fragment-ktx:1.3.0-alpha03
ve androidx.fragment:fragment-testing:1.3.0-alpha03
serbest bırakıldı. 1.3.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
Fragment
içinprepareCall
yöntemleri artıkfinal
. (b/152439361)
Hata Düzeltmeleri
BottomSheetDialogFragment
kullanılırken1.3.0-alpha02
Parça'da oluşturulan regresyon düzeltildi. (b/151652127, aosp/1263328, aosp/1265163)- Yapılandırma değişikliğinden sonra bir parçadan
prepareCall
kullanıldığında oluşan kilitlenme düzeltildi. (b/152137004) setTargetFragment()
kullanılırken paylaşılan öğe ve çıkış geçişlerinin yoksayılmasına neden olan sorun düzeltildi. (b/152023196)- Parça
1.2.4
'dan: Parça ProGuard kuralları, saklanan parçaların kod karartmasına izin verecek şekilde güncellendi. (b/151605338) 1.2.4
Parça'dan: Yaşam döngüsü ve görünüm yaşam döngüsü her zaman senkronize olduğundanDialogFragment
sınıflarındaFragmentLiveDataObserve
Lint kuralı devre dışı bırakıldı. Bu sayede,observe
çağrılırkenthis
veyaviewLifecycleOwner
kullanımı güvenli hale geldi. (b/151765086)
Bağımlılık Değişiklikleri
- Bölümler,
1.2.0-alpha02
. Etkinlik'te kullanıma sunulan Activity Result API'de önemli iyileştirmeler barındıran1.2.0-alpha03
etkinliğine bağlıdır.
Sürüm 1.3.0-alpha02
18 Mart 2020
androidx.fragment:fragment:1.3.0-alpha02
, androidx.fragment:fragment-ktx:1.3.0-alpha02
ve androidx.fragment:fragment-testing:1.3.0-alpha02
serbest bırakıldı. 1.3.0-alpha02 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
1.2.0-alpha02
Etkinliği'nde kullanıma sunulanActivityResultRegistry
API desteği, bu akışları test etmek için kancalar sağlamanın yanı sıra Parçanızda yöntemleri geçersiz kılmadanrequestPermissions()
+onRequestPermissionsResult()
akışlarının yanı sırastartActivityForResult()
+onActivityResult()
akışlarını işlemek üzere eklendi. Güncellenmiş Etkinlikten Sonuç Alma bölümüne göz atın. (b/125158199)
API Değişiklikleri
DialogFragment
, artıkonCreateView()
ürününün varsayılan olarak şişirmesi gereken düzeni belirten bir@LayoutRes
alan oluşturucu sağlıyor. (b/150327080)onActivityCreated()
yöntemi kullanımdan kaldırıldı. Parçanın görünümüne dokunan kodlaronViewCreated()
içinde (onActivityCreated()
öncesinde çağrılır) yapılmalı, diğer başlatma kodları iseonCreate()
içinde olmalıdır. Özellikle etkinlikle ilgilionCreate()
tamamlandığında geri arama almak içinonAttach()
bölgesindeki aktiviteninLifecycle
öğesineLifeCycleObserver
kaydedilmeli veonCreate()
geri çağırması alındığında kaldırılmalıdır. (b/144309266)
Hata Düzeltmeleri
- Parça
1.2.3
:DialogFragment
içindekionCreateDialog()
içindengetLayoutInflater()
çağrılırkenStackOverflowError
hatasına neden olan bir hata düzeltildi. (b/117894767, aosp/1258664) - Parça
1.2.3
'tan: Kullanılmayan Parça sınıflarının çıkarılabilmesi için Fragment'ın içerdiği ProGuard kurallarının kapsamı daraltıldı. (b/149665169) 1.2.3
Parça: Kotlin özelliğinin adını gölgeleyen bir yerel değişken adı kullanılırkenUseRequireInsteadOfGet
Lint kontrolündeki yanlış pozitifler düzeltildi. (b/149891163)1.2.3
Parçası'ndan:FragmentContainerView
, düzen önizlemesinde yanlış oluşturucuyu kullandığı için artıkUnsupportedOperationException
bildirmez. (b/149707833)
Bilinen Sorunlar
BottomSheetDialogFragment
artık iletişim kutusunu ekranda düzgün bir şekilde konumlandırmıyor. (b/151652127)
Sürüm 1.3.0-alpha01
4 Mart 2020
androidx.fragment:fragment:1.3.0-alpha01
, androidx.fragment:fragment-ktx:1.3.0-alpha01
ve androidx.fragment:fragment-testing:1.3.0-alpha01
serbest bırakıldı. 1.3.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Yaşam Döngüsü
2.3.0-alpha01
bölümüne eklenenViewTreeLifecycleOwner.get(View)
API'si,onCreateView()
tarafından döndürülen tüm Görünümler için ParçanınviewLifecycleOwner
değeriniLifecycleOwner
olarak döndürecek şekilde destek eklendi. (aosp/1182955)
API Değişiklikleri
- Parçalar üzerinde
setRetainInstance()
yöntemi kullanımdan kaldırıldı. ViewModels'in kullanıma sunulmasıyla, geliştiricilerin durumu korumak için Etkinlikler, Parçalar ve Gezinme grafikleriyle ilişkilendirilebilecek belirli bir API'sı vardır. Bu, geliştiricilerin normal, saklanmayan bir Parça'yı kullanmalarına ve istedikleri belirli durumu ayrı tutmalarına olanak tanır. Böylece, ortak bir sızıntı kaynağından kaçınarak, tutulan durumun (yaniViewModel
öğesinin ve aldığıonCleared()
geri çağırmasının oluşturucusu) oluşturulma ve yok edilmesinin yararlı özelliklerini korurlar. (b/143911815) - ViewPager2
1.0.0
sürümünün kullanıma sunulmasıyla birlikte,ViewPager
ile etkileşimde bulunmak içinFragmentPagerAdapter
veFragmentStatePagerAdapter
sınıflarının desteği sonlandırıldı. ViewPager'dan ViewPager2'ye taşıma başlıklı makaleyi inceleyin. (b/145132715)
Hata Düzeltmeleri
- Parça ProGuard kuralları artık tüm
Fragment
örnekleri yerine varsayılan oluşturucularıFragment
sınıflarını doğru şekilde tutarak1.2.1
Parçası'nda sunulan bir regresyonu düzeltiyor. (b/149665169 1.2.2
Parçası'na eklenenrequire___()
Lint kuralları, gölgelendirilen Kotlin özelliği adlarıyla (ör.view
) bilgileri gösterilir. (b/149891163)FragmentContainerView
, Android Studio'daki düzen önizlemesini kullanırken artıkUnsupportedOperationException
işlevi bildirmiyor. (b/149707833)- Durum kaydedildikten sonra eklenen saklanan parçaların sürekli olarak yeniden oluşturulmaması ve her yapılandırma değişikliğinden sonra yok edilmesi sorunu düzeltildi. (b/145832397)
Sürüm 1.2.5
Sürüm 1.2.5
10 Haziran 2020
androidx.fragment:fragment:1.2.5
, androidx.fragment:fragment-ktx:1.2.5
ve androidx.fragment:fragment-testing:1.2.5
serbest bırakıldı. 1.2.5 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Parçanın
getViewLifecycleOwner()
işlevi artıkonSaveInstanceState()
çağrılmadan önce durdurularak parçanın yaşam döngüsü davranışını yansıtır. Bu öğe daha önce1.3.0-alpha04
Parça sürümünde kullanıma sunulmuştu. (b/154645875) - Bir parça üzerinde
setMenuVisibility(false)
çağrısı yapıldığında, alt parçaları tarafından sağlanan menülerin görünürlüğü artık doğru şekilde değişiyor. Bu öğe daha önce1.3.0-alpha04
Parça sürümünde kullanıma sunulmuştu. (b/153593580)
Sürüm 1.2.4
Sürüm 1.2.4
1 Nisan 2020
androidx.fragment:fragment:1.2.4
, androidx.fragment:fragment-ktx:1.2.4
ve androidx.fragment:fragment-testing:1.2.4
serbest bırakıldı. 1.2.4 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Parça ProGuard kuralları, saklanan parçaların kod karartılmasına olanak tanıyacak şekilde güncellendi. (b/151605338)
- Yaşam döngüsü ve görüntüleme yaşam döngüsü her zaman senkronize olduğundan,
DialogFragment
sınıflarındaFragmentLiveDataObserve
Lint kuralı devre dışı bırakıldı. Bu sayede,observe
çağrılırkenthis
veyaviewLifecycleOwner
kullanımı güvenli hale geldi. (b/151765086)
Sürüm 1.2.3
Sürüm 1.2.3
18 Mart 2020
androidx.fragment:fragment:1.2.3
, androidx.fragment:fragment-ktx:1.2.3
ve androidx.fragment:fragment-testing:1.2.3
serbest bırakıldı. 1.2.3 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
onCreateDialog()
içindengetLayoutInflater()
çağrılırkenStackOverflowError
hatasına neden olanDialogFragment
hatası düzeltildi. (b/117894767, aosp/1258665)- Kullanılmayan Fragment sınıflarının çıkarılabilmesi için Fragment'ın içerdiği ProGuard kurallarının kapsamı daraltıldı. (b/149665169)
- Kotlin özelliğinin adını gölgeleyen bir yerel değişken adı kullanılırken
UseRequireInsteadOfGet
Lint kontrolündeki yanlış pozitifler düzeltildi. (b/149891163) FragmentContainerView
, düzen önizlemesinde yanlış oluşturucuyu kullandığı için artıkUnsupportedOperationException
atmıyor. (b/149707833)
Sürüm 1.2.2
Sürüm 1.2.2
19 Şubat 2020
androidx.fragment:fragment:1.2.2
, androidx.fragment:fragment-ktx:1.2.2
ve androidx.fragment:fragment-testing:1.2.2
serbest bırakıldı. 1.2.2 sürümü bu kaydetmeleri içerir.
Yeni Lint kontrolleri
- Lint;
onCreateView()
,onViewCreated()
veonActivityCreated()
bölgelerindekiOnBackPressedDispatcher
çağrılarını yapmak içinLifecycleOwner
olarakviewLifecycleOwner
kullanılmasını öneriyor. (b/142117657) fragment-testing
yapısını kullanırken doğrudebugImplementation
öğesini kullandığınızı onaylayan yeni bir Lint kontrolü eklendi. (b/141500106)- Parçalar artık hem
get
hem derequire
eşdeğerlerini içeren tüm Fragment API'lerindecheckNotNull(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 ProGuard dosyaları düzeltildi (b/148963981)
observe
ürünününlivedata-ktx
uzantı yöntemi sürümünü de işlemek içinobserve
kullanılırkenviewLifecycleOwner
kullanılmasını öneren mevcut Lint kontrolü iyileştirildi. (b/148996309)- Çoğu Lint denetiminin biçimlendirmesi düzeltildi (aosp/1157012)
Harici katkılar
- Slack adına
require___()
Lint kontrollerine katkıda bulunduğu için Zac Sweers'a teşekkür ederiz. (aosp/1202883)
Sürüm 1.2.1
Sürüm 1.2.1
5 Şubat 2020
androidx.fragment:fragment:1.2.1
, androidx.fragment:fragment-ktx:1.2.1
ve androidx.fragment:fragment-testing:1.2.1
serbest bırakıldı. Sürüm 1.2.1 bu kaydetmeleri içerir.
Hata düzeltmeleri
Class
örneği (veya Kotlin'in düzeltilmiş versiyonları) alanadd
vereplace
yöntemleriyle eklenen parçaların varsayılan oluşturucuları artık ProGuard tarafından tutulur. (b/148181315)FragmentStatePagerAdapter
veFragmentPagerAdapter
,finishUpdate()
çalışırkenFragmentManager
tarafından atılan istisnaları artık yakalamıyor. (aosp/1208711)FragmentManager.findFragment()
öğesinin,<fragment>
etiketi aracılığıyla eklenen parçalarla çalışmamasına neden olan sorun düzeltildi. (b/147784323)<fragment>
etiketi kullanılarak şişirilen parçalar artık düzendeykenonCreate()
öncesinde her zamanonInflate()
çağrısı alıyor. (aosp/1215856)FragmentManager
örneğindetoString()
çağrıldığında, Etkinlik zaten kaldırıldığında artıkNullPointerException
tetiklenmez. (b/148189412)
Bağımlılık değişiklikleri
1.2.1
parçaları artık Yaşam Döngüsü ViewModel SavedState2.2.0
metriğine bağlı.
Sürüm 1.2.0
Sürüm 1.2.0
22 Ocak 2020
androidx.fragment:fragment:1.2.0
, androidx.fragment:fragment-ktx:1.2.0
ve androidx.fragment:fragment-testing:1.2.0
serbest bırakıldı. 1.2.0 sürümü bu kaydetmeleri içerir.
1.1.0'dan bu yana önemli değişiklikler
- FragmentContainerView:
FragmentContainerView
,FrameLayout
veya diğer düzenlerin kullanımının yerini alan, dinamik olarak eklenen Parçalar için kesinlikle önerilen kapsayıcıdır. Ayrıca,<fragment>
etiketiyle aynıclass
,android:name
ve isteğe bağlıandroid:tag
öğelerini destekler, ancak bu ilk parçayı eklemek için<fragment>
tarafından kullanılan özel kod yolu yerine normal birFragmentTransaction
kullanır. onDestroyView()
zamanlaması: Parçalar artıkonDestroyView()
çağrılmadan önce çıkış animasyonlarının, çıkış çerçevesi geçişlerinin ve AndroidX geçişlerinin (Geçiş1.3.0
kullanılırken) tamamlanmasını bekliyor.- Sınıfa dayalı
add()
vereplace()
:FragmentTransaction
üzerindeClass<? extends Fragment>
ve isteğe bağlıBundle
bağımsız değişken alan yeniadd()
vereplace()
aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek parçanın bir örneğini oluşturmak içinFragmentFactory
öğenizi kullanır. Yeniden ifade edilmiş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)
) kullanan Kotlin uzantıları dafragment-ktx
klasörüne eklendi. - Yaşam Döngüsü ViewModel SavedState Entegrasyonu:
SavedStateViewModelFactory
, artıkby viewModels()
,by activityViewModels()
,ViewModelProvider
oluşturucusu veya bir Parça ileViewModelProviders.of()
kullanılırken kullanılan varsayılan fabrika oldu. - Yeni Lint kontrolleri:
onCreateView()
,onViewCreated()
veyaonActivityCreated()
üzerindeLiveData
gözlemini yaparkengetViewLifecycleOwner()
kullandığınızdan emin olan yeni bir Lint kontrolü eklendi. getFragmentManager()
desteğinin sonlandırılması: Parça'dakigetFragmentManager()
verequireFragmentManager()
yöntemleri kullanımdan kaldırıldı ve yerine, Parçanın eklendiği boş olmayanFragmentManager
değerini döndüren tek birgetParentFragmentManager()
yöntemiyle değiştirildi (çağrının güvenli olup olmadığını belirlemek içinisAdded()
kullanabilirsiniz).FragmentManager.enableDebugLogging()
desteğinin sonlandırılması: StatikFragmentManager.enableDebugLogging
yöntemi kullanımdan kaldırıldı. FragmentManager, artıkFragmentManager
etiketi içinLog.isLoggable()
'ı dikkate alıyor. Böylece, uygulamanızı yeniden derlemedenDEBUG
veyaVERBOSE
günlük kaydını etkinleştirebilirsiniz.
Bilinen Sorunlar
FragmentContainerView
üzerinde yalnızcaclass
veyaandroid:name
özelliği aracılığıyla başvurulan parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir keep kuralı eklemeniz gerekir. (b/142601969)FragmentContainerView
ile XML'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
serbest bırakıldı. Sürüm 1.2.0-rc05 bu kaydetmeleri içerir.
Hata düzeltmeleri
<fragment>
etiketi kullanılırken1.2.0-rc04
Parçasında, etkinlik kaldırma sırasındaonViewCreated()
öğesinin yanlış çağrılmasına neden olan regresyon düzeltildi. (b/146290333)<fragment>
etiketiyle eklenen parçaların yapılandırma dışı özellikleri artık, yalnızca bazen düzende (ör. yalnızca yatay düzeninizde) bulunduklarında bile düzgün şekilde temizleniyor. Sonuç olarak bu Parçalar artık örneklenmek ancak hiçbir yaşam döngüsü yönteminden geçmemek yerine düzeninizde değilken bileCREATED
bölümüne doğru şekilde taşınıyor. (b/145769287)
Sürüm 1.2.0-rc04
18 Aralık 2019
androidx.fragment:fragment:1.2.0-rc04
, androidx.fragment:fragment-ktx:1.2.0-rc04
ve androidx.fragment:fragment-testing:1.2.0-rc04
serbest bırakıldı. Sürüm 1.2.0-rc04 bu kaydetmeleri içerir.
Hata düzeltmeleri
- Görsel sorunları önlemek için
TRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
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
serbest bırakıldı. Sürüm 1.2.0-rc03 bu kaydetmeleri içerir.
Hata düzeltmeleri
- Kaldırılan parçaların çıkış animasyonları / geçişleri çalışırken
findFragmentById()
/findFragmentByTag()
tarafından hâlâ döndürülmesine neden olan istenmeyen davranış değişikliği düzeltildi. (b/143982969, aosp/1167585) - Kapsayıcı etkinliği
onSaveInstanceState()
öğesini çağırdığında, alt parçalar artık üst öğelerden önce doğru şekilde durduruluyor. (b/144380645) - Gizli bir parça patlatıldıktan sonra görüntüleme sayısının hatalı şekilde
INVISIBLE
olarak işaretlenmesine neden olan sorun düzeltildi. (b/70793925) - Parçalı paylaşılan öğe geçişleri artık döndürülen, ölçeklendirilen ve benzeri görünümleri işler (b/142835261)
Doküman Güncellemeleri
setUserVisibleHint()
ile ilgili desteğin sonlandırılmasıyla ilgili dokümanlara açıklık getirildi. (b/143897055)setFragmentFactory()
vegetFragmentFactory()
ile ilgili dokümanlar,FragmentFactory
ayarlamanın alt FragmentManager'ları da etkileyeceğini daha iyi belirtecek şekilde iyileştirildi. (aosp/1170095)
Bağımlılık değişiklikleri
- Parçalar artık Yaşam Döngüsü
2.2.0-rc03
, Yaşam Döngüsü ViewModel SavedState1.0.0-rc03
ve1.1.0-rc03
Etkinliği'ne bağlıdır.
Sürüm 1.2.0-rc02
7 Kasım 2019
androidx.fragment:fragment:1.2.0-rc02
, androidx.fragment:fragment-ktx:1.2.0-rc02
ve androidx.fragment:fragment-testing:1.2.0-rc02
serbest bırakıldı. Sürüm 1.2.0-rc02 bu kaydetmeleri içerir.
Hata düzeltmeleri
- Kotlin kullanılırken,
onCreateView()
,onViewCreated()
veyaonActivityCreated()
üzerinden (Fragment1.2.0-rc01
içinde kullanıma sunulan)LiveData
gözlemlenirkengetViewLifecycleOwner()
kullanımı için LintFix, artıkgetViewLifecycleOwner()
yerine Kotlin özelliği erişimi söz diziminiviewLifecycleOwner
kullanıyor. (aosp/1143821)
Sürüm 1.2.0-rc01
23 Ekim 2019
androidx.fragment:fragment:1.2.0-rc01
, androidx.fragment:fragment-ktx:1.2.0-rc01
ve androidx.fragment:fragment-testing:1.2.0-rc01
serbest bırakıldı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.
Yeni özellikler
FragmentContainerView
,<fragment>
etiketinin işlevlerini yansıtarak artıkandroid:name
özelliğine ek olarakclass
özelliğini de desteklemektedir. (b/142722242)onCreateView()
,onViewCreated()
veyaonActivityCreated()
üzerindenLiveData
gözlemlerini yaparkengetViewLifecycleOwner()
kullandığınızdan emin olmanızı sağlayan yeni bir Lint kontrolü eklendi. (b/137122478)
Hata düzeltmeleri
DialogFragment
üzerindekionDismiss
veonCancel
geri çağırmaları artık kendilerine iletilenDialogInterface
parametresinin null olmadığını ve yürütüldüğündegetDialog()
değerinin null olmayan bir değer döndüreceğini garanti ediyor. (b/141974033)FragmentContainerView
,class
veyaandroid:name
tarafından tanımlanan Parçayı enflasyonun bir parçası olarak ekliyor. BöylecefindFragmentById()
vefindFragmentByTag()
, bundan hemen sonra çalışıyor. (b/142520327)- Durumun kaydedilmesi nedeniyle
FragmentContainerView
içindekiIllegalStateException
sorunu düzeltildi. (b/142580713) FragmentContainerView
sınıfının kodu karartıldığındaFragmentContainerView
öğesindeUnsupportedOperationException
hatası düzeltildi. (b/142657034)
Bilinen sorunlar
FragmentContainerView
üzerinde yalnızcaclass
veyaandroid:name
özelliği aracılığıyla başvurulan parçalar ProGuard tarafından otomatik olarak tutulmaz. Bunun için her parça sınıfı için manuel olarak bir keep kuralı eklemeniz gerekir. Bu durumaapt2
aracılığıyla düzeltilene kadarFragmentContainerView
hizmetine taşınmayı öneren Lint kuralını devre dışı bıraktık. (b/142601969)
Sürüm 1.2.0-beta02
11 Ekim 2019
androidx.fragment:fragment:1.2.0-beta02
, androidx.fragment:fragment-ktx:1.2.0-beta02
ve androidx.fragment:fragment-testing:1.2.0-beta02
serbest bırakıldı. Sürüm 1.2.0-beta02 bu kaydetmeleri içerir.
Hata düzeltmeleri
- Fragment'ın
onInflate()
öğesininFragmentContainerView
kaynağından uygun özellikleri almamasına neden olan sorun düzeltildi (NavHostFragment
gibi durumlar bozuldu). (b/142421837)
Sürüm 1.2.0-beta01
9 Ekim 2019
androidx.fragment:fragment:1.2.0-beta01
, androidx.fragment:fragment-ktx:1.2.0-beta01
ve androidx.fragment:fragment-testing:1.2.0-beta01
serbest bırakıldı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.
Yeni özellikler
FragmentContainerView
,android:name
ve isteğe bağlıandroid:tag
XML özellikleri için ek destekle birlikte bir başlangıç parçası ekleme desteği ekler.<fragment>
etiketinden farklı olarakFragmentContainerView
, ilk parçayı eklemek için arka planda normal birFragmentTransaction
kullanır, böyleceFragmentContainerView
üzerinde daha fazlaFragmentTransaction
işlemi yapılmasına olanak tanır ve düzen için Görünüm Bağlamanın kullanılmasını sağlar. (b/139830628, b/141177981)- Parçalar artık
<fragment>
yerineFragmentContainerView
için hızlı düzeltme sunan bir Lint uyarısı içeriyor. (b/139830056)
Hata düzeltmeleri
androidx.transition
kullanılırkenClassCastException
düzeltildi. (b/140680619)- Geçiş
1.3.0-beta01
kullanılırken Parçalar artıkonDestroyView()
öğesini göndermeden önceandroidx.transition
geçişlerinin (sırasıyla Parça1.2.0-alpha03
ve Parça1.2.0-alpha02
'da düzeltilen çerçeve geçişlerine ve animasyonlara ek olarak) tamamlanmasını bekliyor. (aosp/1119841) - Geçiş
1.3.0-beta01
kullanılırken Parçalar artık aynı kapsayıcıda yeni geçişler / animasyonlar başlatmadan önceandroidx.transition
geçişlerini düzgün şekilde iptal ediyor. (aosp/1119841) FragmentContainerView
kullanılırken Parçanızın kök görünümündeandroidx.transition
geçişleri kullanılırken API 17 ve önceki sürümlerdeki sorun düzeltildi. (b/140361893)fragment-testing
yapısı artık AndroidX Test1.2.0
uygulamasına bağlı olup en son Espresso 3.2.0 ile uyumsuzluk sorununu düzeltmektedir. (b/139100149)- FragmentManager'da
Log.w
kullanımı kaldırıldı. (aosp/1126468)
Bilinen sorunlar
- Parçanın
onInflate()
öğesi,FragmentContainerView
özelliğindenNavHostFragment
gibi sorunlu durumlar için uygun özellikleri almıyor. (b/142421837)
Sürüm 1.2.0-alpha04
18 Eylül 2019
androidx.fragment:fragment:1.2.0-alpha04
, androidx.fragment-ktx:example:1.2.0-alpha04
ve androidx.fragment:fragment-testing:1.2.0-alpha04
serbest bırakıldı. 1.2.0-alpha04 sürümü bu kaydetmeleri içerir.
API değişiklikleri
Fragment
üzerindekigetFragmentManager()
verequireFragmentManager()
yöntemleri kullanımdan kaldırıldı ve parçanın eklendiği boş olmayanFragmentManager
değerini döndüren tek birgetParentFragmentManager()
yöntemiyle değiştirildi (çağrı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()
'ı dikkate alıyor. 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 bir şekilde yok ediliyor. (b/140574199)
- Fragment'ların
Activity.findViewById()
işlevini çağırmasına neden olan sorun düzeltildi. (aosp/1116431)
Sürüm 1.2.0-alpha03
5 Eylül 2019
androidx.fragment:fragment:1.2.0-alpha03
, androidx.fragment:fragment-ktx:1.2.0-alpha03
ve androidx.fragment:fragment-testing:1.2.0-alpha03
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
API değişiklikleri
FragmentContainerView
artıkfinal
. (b/140133091)
Hata düzeltmeleri
FragmentContainerView
artık parçalar arka yığından patlatılırken çizim sırasını düzgün şekilde tersine çeviriyor. (b/139104187)- Bir parça açılırken ve aynı anda yeni bir parça eklenirken yanlış animasyonun çalıştırılmasına neden olan sorun düzeltildi. (b/111659726)
- Parçalar artık
onDestroyView()
gönderilmeden önce geçişlerin (Parça1.2.0-alpha02
öğesinde sabitlenen animasyonlara ek olarak) tamamlanmasını bekliyor. (b/138741697)
Sürüm 1.2.0-alpha02
7 Ağustos 2019
androidx.fragment:fragment:1.2.0-alpha02
, androidx.fragment:fragment-ktx:1.2.0-alpha02
ve androidx.fragment:fragment-testing:11.2.0-alpha02
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Yeni özellikler
SavedStateViewModelFactory
artıkby viewModels()
,by activityViewModels()
,ViewModelProvider
oluşturucusu veyaFragment
ileViewModelProviders.of()
kullanılırken kullanılan varsayılan fabrika oldu. (b/135716331)FragmentTransaction
üzerindeTRANSIT_FRAGMENT_OPEN
,TRANSIT_FRAGMENT_CLOSE
,TRANSIT_FRAGMENT_FADE
vesetTransition
kullanılırken oluşturulan varsayılan animasyonlar, Android 10 cihazlardaki etkinlikler tarafından kullanılan animasyonlarla eşleşecek şekilde güncellendi. (aosp/1012812, aosp/1014730)
API değişiklikleri
- Animasyon z sıralama sorunlarını ve Parçalara gönderilen pencere içe aktarmalarını düzelttiğinden dinamik olarak eklenen Parçalar,
FrameLayout
kullanımı vb. için kesinlikle önerilen kapsayıcı olarakFragmentContainerView
sunar. (b/37036000, aosp/985243, b/136494650) - Parçayla şişirilmiş bir görünümden kapsayıcı Parçayı almak için statik bir
FragmentManager.findFragment(View)
yöntemi eklendi.fragment-ktx
için bir Kotlin uzantısı da mevcut. (aosp/1090757) FragmentTransaction
üzerindeClass<? extends Fragment>
ve isteğe bağlıBundle
bağımsız değişken alan yeniadd()
vereplace()
aşırı yüklemeleri eklendi. Bu yöntemler, eklenecek parçanın bir örneğini oluşturmak içinFragmentFactory
öğenizi kullanır. Yeniden ifade edilmiş türleri (ör.fragmentTransaction.replace<YourFragment>(R.id.container)
) kullanan Kotlin uzantısı dafragment-ktx
klasörüne eklendi. (b/126124987)Fragment
yaşam döngüsü geri çağırmasına@MainThread
ek açıklama eklendi. (b/127272564)FragmentTransaction
veFragmentManager.BackStackEntry
sürümlerindeki içerik haritası başlığıyla ilgili API'ler kullanımdan kaldırıldı. (b/138252944)FragmentTransaction
üzerindekisetTransitionStyle
yöntemi kullanımdan kaldırıldı. (aosp/1011537)FragmentManager
kapsamındaki yöntemlerin çoğu artıkabstract
değil.FragmentManager
,abstract
olarak kalır ve doğrudan örneklenmemeli veya genişletilmemelidir;getSupportFragmentManager()
,getChildFragmentManager()
vb. üzerinden yalnızca mevcut bir örneği almaya devam edersiniz.
Hata düzeltmeleri
1.1.0-rc04
Parça'dan: Parçalar artık pencerede bulunan, ertelenen geçişleri doğru şekilde iptal ediyor. (b/138251858)1.1.0-rc03
Parçası:postponeEnterTransition()
zaman aşımıyla birden fazla kez çağrının, önceki zaman aşımlarının iptal edilmesine neden olmamasına neden olan sorun düzeltildi. (b/137797118)1.1.0-rc02
Parçasından: Geçerli öğe kaldırılırkenFragmentPagerAdapter
veFragmentStatePagerAdapter
öğelerindeki kilitlenme düzeltildi. (b/137209870)- Parçalar artık
onDestroyView()
dağıtılmadan önce animasyonların bitmesini bekliyor. (b/136110528) - Alt parçalardan ve alt parçalarından parça animasyonları artık üst Parçayı canlandırırken düzgün bir şekilde işlenmektedir. (b/116675313)
- Paylaşılan öğe geçişleri kullanılırken ve pop ile ekleme işlemini birleştirirken
NullPointerException
sorunu düzeltildi. (b/120507394) - Robolectric testlerinde
FragmentPagerAdapter
veFragmentStatePagerAdapter
kullanılırkenIllegalStateException
öğelerine geçici bir çözüm eklendi. (b/137201343)
Sürüm 1.2.0-alpha01
2 Temmuz 2019
androidx.fragment:fragment:1.2.0-alpha01
, androidx.fragment:fragment-ktx:1.2.0-alpha01
ve androidx.fragment:fragment-testing:1.2.0-alpha01
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Yeni özellikler
- FragmentManager, artık Fragment görünümünü ekledikten sonra ve
onViewCreated()
çağrısından hemen öncerequestApplyInsets()
yöntemini çağırarak görünümünüzün her zaman doğru eklere sahip olmasını sağlar. (b/135945162)
Hata düzeltmeleri
replace()
öncesindesetPrimaryNavigationFragment()
kullanan birFragmentTransaction
açılırkenNullPointerException
düzeltildi. (b/134673465)
Sürüm 1.1.0
Sürüm 1.1.0
5 Eylül 2019
androidx.fragment:fragment:1.1.0
, androidx.fragment:fragment-ktx:1.1.0
ve androidx.fragment:fragment-testing:1.1.0
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
1.0.0'dan Beri Önemli Değişiklikler
- parça testi:
fragment-testing
yapısı, bir parçanın izole halde test edilmesi için birFragmentScenario
sınıfı sağlar. Daha fazla ayrıntı için Uygulamanızın parçalarıyla ilgili dokümanları test etme başlıklı makaleye bakın. - FragmentFactory: Parça örneklerinin oluşturulmasını yönetmek için artık
FragmentManager
üzerinde birFragmentFactory
ayarlayabilirsiniz. Böylece, bağımsız değişkensiz bir kurucuya sahip olmaya yönelik katı koşul kaldırılır. - ViewModel'ler için Kotlin Mülkü Temsilcileri:
fragment-ktx
yapısı artık iki Kotlin mülkü yetki sahibi içeriyor: bağımsız parçayla ilişkili ViewModel'lere erişmek içinby viewModels()
ve etkinliği kapsayan ViewModel'lere erişim içinby activityViewModels()
. - Maksimum Yaşam Döngüsü: Artık
FragmentTransaction
üzerindesetMaxLifecycle()
yöntemini çağırarak bir Parça için maksimum Yaşam Döngüsü durumunu ayarlayabilirsiniz. Bu, artık desteği sonlandırılansetUserVisibleHint()
öğesinin yerini alır.FragmentPagerAdapter
veFragmentStatePagerAdapter
, yeni davranışa geçiş yapmanıza olanak tanıyan yeni bir oluşturucuya sahip. - FragmentActivity LayoutId oluşturucusu:
FragmentActivity
alt sınıfları artık isteğe bağlı olarakFragmentActivity
üzerinde,onCreate()
içindesetContentView()
çağrısına alternatif olarak içerik görünümü olarak ayarlanması gereken düzeni belirtenR.layout
kimliği alan bir kurucu çağırabilir. Bu, alt sınıfınızın bağımsız değişkensiz kurucusu olması şartını değiştirmez. - Pragment LayoutId oluşturucusu:
Fragment
alt sınıfları artık isteğe bağlı olarakFragment
üzerinde,onCreateView()
geçersiz kılmaya alternatif olarak bu parça için kullanılması gereken düzeni belirtenR.layout
kimliği alan bir kurucu çağırabilir. Şişmiş düzen,onViewCreated()
içinde yapılandırılabilir. - Zaman aşımı ile erteleme: Zaman aşımını gerektiren yeni
postponeEnterTransition()
aşırı yüklemesi eklendi.
Sürüm 1.1.0-rc04
7 Ağustos 2019
androidx.fragment:fragment:1.1.0-rc04
, androidx.fragment:fragment-ktx:1.1.0-rc04
ve androidx.fragment:fragment-testing:1.1.0-rc04
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- Parçalar artık patlatılan Parçalar'daki ertelenen geçişleri doğru şekilde iptal ediyor. (b/138251858)
Sürüm 1.1.0-rc03
19 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc03
, androidx.fragment:fragment-ktx:1.1.0-rc03
ve androidx.fragment:fragment-testing:1.1.0-rc03
yayınlandı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- Zaman aşımına sahip
postponeEnterTransition()
uygulamasının birden fazla kez çağrılmasının, önceki zaman aşımlarının iptal edilmesine neden olmamasına neden olan sorun düzeltildi. (b/137797118)
Sürüm 1.1.0-rc02
17 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc02
, androidx.fragment:fragment-ktx:1.1.0-rc02
ve androidx.fragment-testing:fragment:1.1.0-rc02
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- Geçerli öğe kaldırılırken
FragmentPagerAdapter
veFragmentStatePagerAdapter
kilitlenmesi düzeltildi. (b/137209870)
Sürüm 1.1.0-rc01
2 Temmuz 2019
androidx.fragment:fragment:1.1.0-rc01
, androidx.fragment:fragment-ktx:1.1.0-rc01
ve androidx.fragment:fragment-testing:1.1.0-rc01
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- Parçalar artık geçiş çalışırken
show()
veyahide()
işlemleri kullanılırken görünürlüklerini düzgün şekilde güncelliyor. (b/133385058) replace()
öncesindesetPrimaryNavigationFragment()
kullanan birFragmentTransaction
açılırkenNullPointerException
düzeltildi. (b/134673465)
Sürüm 1.1.0-beta01
5 Haziran 2019
androidx.fragment:fragment:1.1.0-beta01
, androidx.fragment:fragment-ktx:1.1.0-beta01
ve androidx.fragment:fragment-testing:1.1.0-beta01
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Hata düzeltmeleri
- İç içe yerleştirilmiş parçalar için
androidx.lifecycle.Lifecycle
geri çağırmaları (özellikleSTARTED
,RESUMED
,PAUSED
,STOPPED
veDESTROYED
ile ilgili) düzgün bir şekilde iç içe yerleştirilmiş. (b/133497591) - Bir Fragment'ın
onCreate()
öğesine kayıtlıOnBackPressedCallback
örnekleri artık alt FragmentManager'a göre uygun şekilde önceliklidir. (b/133175997) - Üst parçaları değiştirilirken alt parçalar artık canlandırılmıyor. (b/121017790)
animateLayoutChanges="true"
kullanılırken parça animasyonları ve geçişleri artık yoksayılıyor. Böylece, parçaların düzgün şekilde kaldırılmamasına yol açan bir sorun düzeltiliyor. (b/116257087)
Sürüm 1.1.0-alpha09
16 Mayıs 2019
androidx.fragment:fragment:1.1.0-alpha09
, androidx.fragment:fragment-ktx:1.1.0-alpha09
ve androidx.fragment:fragment-testing:1.1.0-alpha09
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
API değişiklikleri
- Birincil gezinme parçası değiştiğinde parçalar artık yeni bir
onPrimaryNavigationFragmentChanged(boolean)
yöntemi için geri çağırma alıyor. aosp/960857
Hata düzeltmeleri
- Üst parça kaldırıldığında, alt öğe tarafından şişirilen menü öğeleri artık doğru şekilde kaldırılıyor. b/131581013
Sürüm 1.1.0-alpha08
7 Mayıs 2019
androidx.fragment:fragment:1.1.0-alpha08
, androidx.fragment:fragment-ktx:1.1.0-alpha08
ve androidx.fragment:fragment-testing:1.1.0-alpha08
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Bu sürüm, Tercihler 1.1.0-alpha01 ile 1.1.0-alpha04 arası sürümlerle uyumlu değildir. Fragments'ın bu sürümünü kullanırken lütfen Tercihler 1.1.0-alpha05 sürümüne geçin.
Yeni özellikler
- Zaman aşımını gerektirecek yeni bir
postponeEnterTransition()
aşırı yüklemesi eklendi. Bu sürenin sonunda Parça otomatik olarakstartPostponedEnterTransition()
b/120803208 yöntemini çağırır
API değişiklikleri
- Zarar veren değişiklik: Daha önce kullanımdan kaldırılan ve
Bundle
alanFragmentFactory
instantiate
yöntemi kaldırıldı. aosp/953856 - Büyük değişiklik:
FragmentPagerAdapter
veFragmentStatePagerAdapter
içinRESUME_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
setMaxLifecycle()
üzerinden yaşam döngüsü sınırlanan parçalar artık son durumuna ulaşmadan devam ettirilmiyor. b/131557151setMaxLifecycle(Lifecycle.State.CREATED)
kullanılırken Parçalar'ın görünümleri düzgün şekilde kaldırılır. aosp/954180
Sürüm 1.1.0-alpha07
25 Nisan 2019
androidx.fragment:fragment:1.1.0-alpha07
, androidx.fragment:fragment-ktx:1.1.0-alpha07
ve androidx.fragment:fragment-testing:1.1.0-alpha07
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Yeni özellikler
- Artık
FragmentTransaction
üzerindesetMaxLifecycle()
yöntemini çağırarak bir Parça için maksimum Yaşam Döngüsü durumu ayarlayabilirsiniz. Bu, artık desteği sonlandırılansetUserVisibleHint()
öğesinin yerini alır.FragmentPagerAdapter
veFragmentStatePagerAdapter
, yeni davranışa geçiş yapmanıza olanak tanıyan yeni bir oluşturucuya sahip. (b/129780800)
API Değişiklikleri
FragmentScenario
üzerindekimoveToState(STARTED)
artık yalnızca API 24 ve sonraki sürümleri çalıştıran cihazlarda çağrılabilir. (b/129880016)
Davranış Değişiklikleri
- (b/129907905) sonucunda, arka yığındaki parçalar barındırma etkinliği yeniden oluşturulduğunda
onCreateView()
için geri çağırma almaz.onCreateView()
artık yalnızca parça görünür hale geldiğinde (ör. arka yığın açıldığında) çağrılacaktır.
Hata düzeltmeleri
- XML'de
<fragment>
etiketi veFragmentActivity
ya daAppCompatActivity
öğesinincontentLayoutId
oluşturucusu kullanılırken karşılaşılan sorun düzeltildi. (b/129907905) - Arka yığındaki parçaların, yapılandırma değişikliğinden sonra en az
CREATED
hedefine taşınmaması ve ViewModelleri'nin ve alt saklanan parçaların uygun şekilde atılmamasına neden olan sorun düzeltildi. (b/129593351) - Örnek durumu kaydedildikten sonra saklanan parçaların senkronizasyonunun neden olduğu
restoreSaveState
kilitlenmesi düzeltildi. (b/130433793) (aosp/947824) - Parça yaşam döngüsüne sahip bir
OnBackPressedCallback
öğesinin,FragmentManager
geri yığını olduğunda çağrılmadığı sorunlar düzeltildi. Daha ayrıntılı bilgi için androidx.activity 1.0.0-alpha07 başlıklı makaleyi inceleyin. (aosp/948209) - Parçalar artık animasyonlar için
LAYER_TYPE_HARDWARE
öğesini zorunlu kılmıyor. Özel olarak bir donanım katmanı animasyonuna ihtiyacınız varsa lütfen bunu animasyonunuzun bir parçası olarak ayarlayın. (b/129486478)
Sürüm 1.1.0-alpha06
3 Nisan 2019
androidx.fragment:fragment:1.1.0-alpha06
, androidx.fragment:fragment-ktx:1.1.0-alpha06
ve androidx.fragment:fragment-testing:1.1.0-alpha06
serbest bırakıldı. Bu sürümdeki kaydetmelere buradan ulaşabilirsiniz.
Yeni özellikler
- FragmentManager tarafından atanan istisnalar, artık iletiye Parçanın adını da içeriyor. (b/67759402)
API Değişiklikleri
Fragment
veFragmentActivity
artık@LayoutRes int
alan ikinci bir oluşturucu içeriyor. Bu oluşturucu, sınıfınıza not ekleme işleminin önceki davranışını@ContentView
ile değiştirir. Bu yaklaşım hem uygulama hem de kitaplık modüllerinde işe yarar. (b/128352521)- FragmentActivity öğesinin
onActivityResult()
özelliği artık@CallSuper
olarak düzgün şekilde işaretlendi. (b/127971684) - FragmentFactory'nin bağımsız değişken Bundle'ı alan
instantiate
yöntemi kullanımdan kaldırıldı. Ayrıca uygulamalar, Bundle almayan yeniinstantiate
aşırı yüklemesini kullanmalıdır. (b/128836103) FragmentScenario
yöntemlerine artık düzgün bir şekilde@StyleRes
ile ek açıklamalar ekleniyor. (aosp/924193)FragmentTabHost
desteği sonlandırıldı. (b/127971835)- FragmentActivity öğesinin
getThemedContext()
özelliği kaldırıldı. (aosp/934078)
Hata düzeltmeleri
- 1.1.0-alpha05 sürümünde gelen parçanın ekranda yanıp sönmesine neden olan regresyon düzeltildi. (b/129405432)
- popBackStack+replace+popBackStack işlem dizilerinden sonra birincil gezinme parçasının kaybolmasına neden olan sorun düzeltildi. (b/124332597)
- Parça durumunu geri yüklerken Etkinliğinizde
@ContentView
oluşturucuları kullanırken ortaya çıkan bir sorun düzeltildi. (b/127313094) - Mevcut bir hedef Fragment, henüz FragmentManager'a eklenmemiş bir Fragment ile değiştirilirken
setTargetFragment()
mantığı düzeltildi. (aosp/932156)
Sürüm 1.1.0-alpha05
13 Mart 2019
androidx.fragment:fragment:1.1.0-alpha05
, androidx.fragment:fragment-ktx:1.1.0-alpha05
ve androidx.fragment:fragment-testing:1.1.0-alpha05
serbest bırakıldı. Bu sürüme dahil edilen taahhütlerin tam listesini burada bulabilirsiniz.
Yeni özellikler
@ContentView
ek açıklama aramaları artık önbelleğe alınıyor (b/123709449)
Davranış değişiklikleri
- Farklı bir FragmentManager'a eklenmiş bir Parça ile
remove()
,hide()
,show()
,detach()
vesetPrimaryNavigationFragment()
çağrıldığında artık sessizce başarısız olmak yerine birIllegalStateException
gönderiliyor (aosp/904301)
Hata düzeltmeleri
FragmentActivity
içinonNewIntent
, artık doğru şekilde@CallSuper
(b/124120586) ile işaretlendigetDialog().dismiss()
veyagetDialog().cancel()
kullanılırkenDialogFragment
onDismiss()
öğesinin iki kez çağrılmasına neden olan sorun düzeltildi (b/126563750)
Sürüm 1.1.0-alpha04
7 Şubat 2019
androidx.fragment:fragment 1.1.0-alpha04
, androidx.fragment:fragment-ktx 1.1.0-alpha04
ve androidx.fragment:fragment-testing 1.1.0-alpha04
serbest bırakıldı.
Yeni özellikler
onCreateView()
öğesini geçersiz kılmaya alternatif olarak hangi düzen XML dosyasının şişirilmesi gerektiğini belirtmenize olanak tanıyan@ContentView
sınıfı ek açıklaması için destek eklendi.onViewCreated()
içinde ilgili çalışmaları görüntülemeniz önerilir. (aosp/837619)fragment-testing
artıkandroidx.test:core-ktx
1.1.0 kararlı sürümüne bağımlı (b/121209673)- Artık Parça tarafından barındırılan seçenekler menülerini (b/121126668) test etmek için
openActionBarOverflowOrOptionsMenu
öğesiniFragmentScenario
ile kullanabilirsiniz.
API değişiklikleri
@NonNull Bundle
döndüren veyaIllegalStateException
(b/121196360) veren birrequireArguments()
yöntemi eklendigetLifecycle()
,getViewLifecycleOwner()
vegetViewLifecycleOwnerLiveData()
ile ilgili geçersiz kılmaların geçersiz kılınmayacağı ve gelecekteki bir sürümde nihai hale getirileceği not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen bir özellik isteği gönderin. (aosp/880714)getViewModelStore()
öğesinin geçersiz kılınmaması gerektiği ve gelecekteki bir sürümde kesinleşeceği not eklendi. Şu anda bu yöntemi geçersiz kılıyorsanız lütfen bir özellik isteği gönderin. (aosp/880713)- Fragments'ın önceki sürümleriyle ikili program uyumluluğuyla ilgili sorun düzeltildi. (aosp/887877) (aosp/889834)
Hata düzeltmeleri
setTargetFragment()
içinnull
ilettiğinizde hedef parçalar doğru şekilde temizlenir. (aosp/849969)- Hedef parçaların
onDestroy()
içinde veya sonrasında bazen kullanılamamasına neden olan sorun düzeltildi. (b/122312935) - DialogFragment’ın onKapat() işlevi artık
onDestroy()
öncesinde çağrılıyor. (aosp/874133) (aosp/890734)
Sürüm 1.1.0-alpha03
17 Aralık 2018
Yeni özellikler
- Parça artık
BundleSavedStateRegistryOwner
özelliğini uyguluyor ve yeni kullanıma sunulan SavedState kitaplığına bağlıdır [aosp/824380] - [b/119050253] Etkinliği ile ilişkili ViewModelleri almak için bir
by activityViewModels
Kotlin mülkü temsilcisi eklendi by viewModels
Kotlin mülkü temsilcisi,ViewModelStoreOwner
öğesini almak için isteğe bağlı bir lambda yöntemini kullanacak şekilde genişletildi. Böylece, üst parçayı veya başka bir özelViewModelStoreOwner
öğesinival viewModel: MyViewModel by viewModels(::requireParentFragment)
[b/119050253] gibi bir kodla aktarmanıza olanak tanır.
API değişiklikleri
FragmentScenario
artıkTheme.AppCompat
[b/119054431] gibi bir tema belirtmenize olanak tanıyor. Bu zarar veren bir değişikliktir.@NonNull View
veyaIllegalStateException
[b/120241368] döndüren birrequireView()
yöntemi eklendi@NonNull Fragment
döndüren veyaIllegalStateException
[b/112103783] döndüren birrequireParentFragment()
yöntemi eklendi
Hata düzeltmeleri
- Yasadışı Durum İstisnası düzeltildi: b/120814739 durumu kaydedilemedi
- Kayıtlı örnek durumundan geri yüklenen parçalar artık her zaman boş olmayan bir
Bundle
[b/119794496] alacak - Kaldırılan Parçalar yeniden eklenirse artık
Lifecycle
nesnelerini yeniden kullanmaz [b/118880674]
Sürüm 1.1.0-alpha02
3 Aralık 2018
Yeni özellikler
- FragmentSenaryo'nun Kotlin uzantıları,
FragmentFactory
örneğini iletmeye alternatif olarak Parça oluşturmak için lambda kullanmanıza olanak tanır. (aosp/812913)
Hata düzeltmeleri
- Arka yığında iç içe yerleştirilmiş Fragments kullanılırken LegalStateException düzeltildi (b/119256498)
FragmentScenario.recreate()
,FragmentFactory
ile kullanılırken karşılaşılan kilitlenme düzeltildi (aosp/820540)- Parça kaldırıldıktan sonra hedef parçalara erişilememesi sorunu düzeltildi (aosp/807634)
Sürüm 1.1.0-alpha01
5 Kasım 2018
Bu,
Temel alınan fragment-testing
yapı ve FragmentScenario
androidx.test:core API'ler. Daha fazla bilgi için Parça testi dokümanlarına bakın.
Yeni özellikler
- Fragment'ları ayrı ayrı test etmek için yeni FragmentScenario sınıfı.
- Artık herhangi bir
FragmentManager
üzerindeFragmentFactory
ayarlayarak yeni Parça örnekleri örneklenir. - Alma işlemi için yeni bir
by viewModels()
Kotlin mülkü temsilcisi eklendi ViewModels from a Fragment. - Beklemedeki giriş etkinlikleri (ör. tıklamalar) artık bir Parça'nın
onStop()
API değişiklikleri
- Fragment API'de null değer ek açıklamaları önemli ölçüde genişletildi teşekkür ederiz.
Hata düzeltmeleri
- Parça işlemlerinin LiveData içinden başarısız olmasına neden olan sorunu düzeltme (b/77944637)
Bilinen sorunlar
- inceleyeceğiz.
fragment-testing
,androidx.test:core:1.0.0-beta01
doğruandroidx.test:core:1.0.0
.