Compose kullanıcı arayüzü
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(Tüm Compose paketleri için API referans belgelerine bakın)
Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
---|---|---|---|---|
2 Temmuz 2025 | 1.8.3 | - | 1.9.0-beta02 | - |
Yapı
Compose, androidx
içindeki 7 Maven Group kimliğinin birleşimidir. Her grup, kendi sürüm notları kümesine sahip, hedeflenmiş bir işlevsellik alt kümesi içerir.
Bu tabloda gruplar açıklanmakta ve her bir sürüm notu grubuna bağlantı verilmektedir.
Grup | Açıklama |
---|---|
compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun. |
compose.compiler | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. |
compose.foundation | Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin. |
compose.material | Kullanıma hazır Materyal Tasarım bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklanan bileşenleri sağlamak üzere tasarlanmış, Compose'un daha üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarım'ın bir sonraki evrimi olan Materyal Tasarım 3 Bileşenleri ile Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3, güncellenmiş temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içerir. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
compose.runtime | Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Plugin'in hedefleyeceği temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken Compose kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.compose.ui:ui:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.8.3") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.9
Sürüm 1.9.0-beta02
2 Temmuz 2025
androidx.compose.ui:ui-*:1.9.0-beta02
iptal edilir. 1.9.0-beta02 sürümü bu commit'leri içerir.
API Değişiklikleri
- Sınıfla eşleşmesi için eşlik eden nesneyi deneysel olarak değiştirir. (I8452a)
isTrackFocusEnabled
deneysel işareti (I003fd) kaldırıldı
Hata Düzeltmeleri
WindowInsets
,ComposeView
içeriğine müdahale etmediğindeWindowInsetsRulers
değerleri sağlanmaz. (I71221)
Sürüm 1.9.0-beta01
18 Haziran 2025
androidx.compose.ui:ui-*:1.9.0-beta01
iptal edilir. 1.9.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
ShadowContext
, kapalı arayüz olarak değiştirildi (I3ce40).- Dolaylı dokunma etkinliği (test için) oluşturmak üzere modüller arası bir yöntem ekler (I22e4c).
- Deneysel
IndirectTouchEvent.nativeEvent
hale getirir. (I6fda5) - API konseyi geri bildirimlerine göre API yüzeyini revize eder. (Ibf378)
FrameRateCategory.NoPreference
sabitini kaldırın.Modifier.requestedFrameRate
öğesiniModifier.preferredFrameRate
olarak yeniden adlandırın. (I2f976)WindowInsetsRulers
:rulersIgnoringVisibility
, maksimum olarak değiştirildi.getDisplayCutoutBounds()
,PlacementScope
'nin uzantı işlevi olarak değiştirildi.WindowInsetsAnimationProperties
,WindowInsetsAnimation
olarak,getAnimationProperties()
isegetAnimation()
olarak değiştirildi. (I3816f)ShadowParams
sınıfıShadow
olarak değiştirildi (I11cca)- Kare hızı API'sinin paketini
androidx.compose.ui.ui
değerindenandroidx.compose.ui
değerine değiştirin (I8994e). InsetsRulers
,WindowInsetsRulers
adıyla ortak kodda olacak şekilde değiştirildi. API'yi basitleştirerek tüm iç kısımlarınWindowInsetsRulers
olmasını sağladık. Cetvel dışı animasyon özellikleriAnimationProperties
sınıfına çıkarıldı.WindowInsetsRulers.innermostOf()
, birden fazlaWindowInsetsRulers
öğesini birleştirmek için kullanılabilir. (I2f0c6, b/415012444)- Compose derleyicisi tarafından eklenen kaynak bilgilerini ayrıştırmak için bir araç API'si eklendi. (Iceaf9, b/408492167)
Hata Düzeltmeleri
- Özellik tamamen doğrulandığından
isGetFocusedRectReturnEmptyEnabled
ile ilgili işaret kaldırıldı. (Ife722) performScrollToNode
içinde, bazı durumlarda hedef düğüme ulaşmayan bir hata düzeltildi. Bu düzeltmeyle, bu durumlarda her zaman hedef düğüme ulaşılması gerekir. Bu değişikliğin bir yan etkisi, işlemin sonunda kaydırma konumunun farklı olabilmesidir. Bu durum, ekran görüntüsü testlerini ve kaydırma konumuyla ilgili varsayımlarda bulunan testleri etkiler. (I2c8a1)
Sürüm 1.9.0-alpha04
4 Haziran 2025
androidx.compose.ui:ui-*:1.9.0-alpha04
iptal edilir. 1.9.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Özelleştirilebilir gölgeler için değiştirici API'leri eklendi. (I2058d, b/160665122)
- Düğümün sınırları hesaplarken dikkate alınıp alınmayacağını belirleyen bir
SemanticsModifierNode.isImportantForBounds
özelliği ekleyin. Bu özellik varsayılan olarak doğrudur ve düğümün sınırlarda dikkate alınmaması gerektiğini belirtmek için yanlış olarak ayarlanabilir. (I7ebec) SemanticsPropertyKey
aracılığıyla kullanıma sunulan erişilebilirlik ekstraları olarak sunulan Android'e özgü semantik özelliklerini bildirmek içinSemanticsPropertyKey
fabrika işlevi ekleyin.AccessibilityNodeInfo.getExtras
(I2ed51)ComposeUiFlags.isRemoveFocusedViewFixEnabled
kullanımları kaldırıldı ve işaret kullanımdan kaldırıldı. (I50328)- Yeni özelleştirilebilir gölge çerçevesi kullanıma sunuldu.
DropShadowPainter
veInnerShadowPainter
'nin yanı sıraDropShadow/InnerShadow
bağımlılıkları da bu kapsamdadır. Gölge altyapısı, oluşturulan gölgelerin n kez yeniden oluşturulmasına gerek kalmadan birden fazla çağrı merkezinde paylaşılabilmesi için paylaşılır. (I24f7a, b/160665122) - İki gölgelendirici arasında birleşik sonuç oluşturan
CompositeShader
veCompositeShaderBrush
'yi kullanıma sunuyoruz. Ayrıca, gölgelendirici için bir dönüşüm matrisi ayarlamak üzereShaderBrush#transform
ekleyin. (I2621a, b/160665122)
Hata Düzeltmeleri
NestedScrollInteropConnection
'da, kaydırma yöntemlerinin görünümlere göre yanlış sırada olmasına neden olan hata düzeltildi. (I56ad4)- Daha önce, tam ekran çizilen iletişim kutuları ekran kesme bölgesi içinde çizilmiyordu. Bu hata,
decorFitsSystemWindows = false
veusePlatformDefaultWidth = false
içeren iletişim kutularının ekran kesimi bölgesini kullanabilmesi için düzeltildi. (I9e975) - Compose uygulaması arka plandayken etkinleştirildikten sonra
TalkBack
'nın yeşil odak göstergesinin çizilmemesine neden olan hata düzeltildi. (Ifd12a)
Sürüm 1.9.0-alpha03
20 Mayıs 2025
androidx.compose.ui:ui-*:1.9.0-alpha03
iptal edilir. 1.9.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled
işareti,ComposeView
içinde odaklanılabilir bir şey olmadığında dikdörtgeni boş değere ayarlar. Bu, odak aramasının odaklanılacak görünümü seçmesini engeller. Bu durum, özellikle bir IME'ninComposeView
seçeneği olduğunda verequestFocus()
başarısız olduğunda önemlidir. (Ibd0e2, b/369256395)- İşaretleme özelliğini
isNestedScrollDispatcherNodeFixEnabled
kullanıma sunuyoruz. (I0d24a) DialogProperties
'dialogContentTitle
dosyasınıwindowTitle
olarak yeniden adlandırın (Ibd27b)Modifier.onFirstVisible
veModifier.onVisibilityChanged
değiştiricileri kullanıma sunuldu. Bunlar,Modifier.onLayoutRectChanged
üzerine oluşturulmuş üst düzey değiştiricilerdir. Bu değiştiriciler, özellikle gösterimleri kaydetme, videoları otomatik oynatma gibi birçok yaygın uygulama gereksinimini karşılamak için oluşturulmuştur. Kaydırma performansından ödün verme riski olmadan kritik liste tabanlı senaryolarda kullanılabilmeleri için performans göz önünde bulundurularak geliştirilmiştir. Bu değiştirici API'lerine ek olarak, bu kullanım alanlarını desteklemek ve geliştiricilerin kullanım alanlarına tam olarak uyan benzer özel değiştiricileri kolayca oluşturmasını sağlamak içinRelativeLayoutBounds
ek API'ler de eklenmiştir. (I759b8)- Bu özelliğin gelecekteki gelişimini hesaba katmak için
setDiagnosticStackTraceEnabled
değerini deneysel olarak değiştirin. (I11db3) - Durum oluşturma için
Modifier.scrollable2D
,Scrollable2DState
ve tamamlayıcı API'leri kullanıma sunuyoruz. Ayrıca, yaygın kaydırma uzantısı işlevleri de kullanıma sunuldu. (Ic61c8, b/214410040) - Bazı renk alanlarında renk alanı kimlikleri sıralı olmadığından Compose 64 bit renk değerleri doğrudan Android
ColorLongs
ile karşılaştırılamaz. Android renk alanlarına dönüştürme ve bu alanlardan dönüştürme için iki yeni API eklendi:toColorLong()
vefromColorLong()
. (I36899) - Alt sınırda atma hızı kontrolüne izin vermek için
ViewConfiguration.minimumFlingVelocity
özelliği eklendi. (I11aab)
Sürüm 1.9.0-alpha02
7 Mayıs 2025
androidx.compose.ui:ui-*:1.9.0-alpha02
iptal edilir. 1.9.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
- İçerik penceresinin başlığını ayarlayan
dialogContentTitle
öğesiniDialogProperties
öğesine ekleyin. bf9d670
Hata Düzeltmeleri
- Dahili testler düzeltilirken pencere yerleştirme cetvelleri geçici olarak devre dışı bırakıldı. 8d1402
- İşaretçi girişi değişikliklerinin
DragGestureNode
içindekiVelocityTracker
öğesine eklenme şekli düzeltildi. Bu işlem, yeniisAdjustPointerInputChangeOffsetForVelocityTrackerEnabled
işaretiyle kontrol edilebilir.254ddb
Sürüm 1.9.0-alpha01
23 Nisan 2025
androidx.compose.ui:ui-*:1.9.0-alpha01
iptal edilir. 1.9.0-alpha01 sürümü bu commit'leri içerir.
Davranış Değişiklikleri
- Compose ile birlikte gelen Lint kontrolleri artık minimum AGP sürümü olarak 8.8.2'yi gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine
android.experimental.lint.version=8.8.2
(veya daha yeni bir sürüm) kullanarakgradle.properties
dosyanızda Lint'i tek başına yükseltebilirsiniz. Compose lint kontrollerini IDE'de çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.
API Değişiklikleri
- İzleme ifadelerini etkinleştirmek için isabet yolu izleyicisi (hata ayıklama) için işareti kaldırır. (I1b2a1)
InnerRectRulers
veOuterRectRules
, yöntem olarak değiştirildi.RectRulers
genel API'sinden ad parametresi kaldırıldı.DerivedRulers
artık dikey ve yatay cetveller için bir oluşturucu seçeneği.MergedHorizontalRulers
veMergedVerticalRulers
, örnek oluşturmak içinminOf
vemaxOf
yöntemleriyle değiştirildi. (Iee89f, b/408192133)androidx.compose.ui.LocalSavedStateRegistryOwner
yerineandroidx.savedstate.compose.LocalSavedStateRegistryOwner
'ı kullanımdan kaldırın. (I5439f, b/377946781)- Ekranda içerik gösterilirken uyku moduna geçmemesi için
Modifier.keepScreenOn
ekleyin (Ib5af4, b/408284174) - Yeni bir semantik özellik
Shape
ekleyin.Bu özellik, kullanıcı arayüzü öğesinin şekli sınırlayıcı dikdörtgeninden farklı olduğunda (ör. yuvarlak köşeli dikdörtgen) ayarlanabilir. (I1376f) AndroidViews
içinde işaretçi etkinliği göndermeyle ilgili sorun düzeltildi ve değişiklikleri korumak içinisPointerInteropFilterDispatchingFixEnabled
işareti eklendi. (I0e272, b/372055500, b/408002332)FocusRestorer
artık daha önce odaklanılan öğeyi sabitlemiyor. Kullanıcılar, odağın başarılı bir şekilde geri yüklenmesi için daha önce odaklanılan öğenin aynı kompozisyon karmasına sahip olmasını sağlamak üzere bir anahtar kullanmalıdır. (I4203b, b/330696779)- Oluşturma özelliğinin
ViewTreeObserver.OnScrollChanged
tetiklemesine izin verin. Bu davranış,isOnScrollChangedCallbackEnabled
işaretiyle kullanıma sunulmuştur. AyrıcaDelegatableNode dispatchOnScrollChanged
'nın bir uzantı işlevini de kullanıma sunduk. (I34b9d, b/238109286) currentCompositeKeyHash
artık kullanımdan kaldırıldı. Bunun yerinecurrentCompositeKeyHashCode
politikasını kullanın. Yeni API, aynı karmayı daha fazla bit ile kodlar. Bu da, kompozisyon hiyerarşisindeki iki rastgele ve alakasız grubun aynı karma anahtarına sahip olma olasılığını katlanarak azaltır. (I4cb6a, b/177562901)- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5).
FocusRequester
öğesinin kompozisyon içinde hatırlanmasını sağlamak için lint kontrolü desteği eklendi (I6bf91).- Composable'ın oluşturulacağı tercih edilen kare hızını veya kare hızı kategorisini ayarlama özelliği eklendi (Ie5201).
- Android'de yerel
MotionEvent
kullanıma sunulur. (I17286) getChecked() + setChecked(int)
ekleyin,isChecked + setChecked(boolean)
desteğini sonlandırın (Iaac9d)graphicsLayer
değiştiricisi artıkblendMode
vecolorFilter
değerlerini kabul ediyor (Iab0e6)- Sorgu kaynaklarına
LocalResources
composition local eklendi.LocalResources.current
çağrısı, yapılandırma değiştiğinde yeniden oluşturulur. Bu nedenle,stringResource()
gibi API'lere yapılan çağrılar güncellenmiş değerler döndürür. (I50c13, b/274786917) - Dolaylı dokunma etkinliklerini işlemek için Composables'a yönelik deneysel API'yi kullanıma sunma (Icff57)
- Bu sürüm, composable içeriğinizin düzen ve çizim aşamalarında oluşturulan işlenmemiş istisnaların raporlanmasını iyileştirir. Daha önce, burada yakalanmamış bir istisna, test çalıştırıcısının kilitlenmesine ve test paketinin erken sonlandırılmasına neden oluyordu. Bu istisnalar artık test paketini sonlandırmadan daha sorunsuz bir şekilde bildirilebilir. (I9928b, b/314128080)
- Deneysel
GlobalAssertions
API'si kullanımdan kaldırıldı. Bu özellik, erişilebilirlik kontrolleri yapmak için tasarlanmıştı. Bunun yerineenableAccessibilityChecks()
özelliğini kullanabilirsiniz. (I50aa5) SemanticsNodeInteraction.performTextInputSelection
artık deneysel değildir ve seçimin orijinal dönüştürülmemiş metne veya dönüştürülmüş metne uygulanmasına olanak tanıyan ek birrelativeToOriginal
parametresini desteklemektedir. (I3a905, b/261561038, b/277018945)AnnotatedString
üzerinden özel madde işaretli listeler oluşturmak için API'yi kullanıma sunma (I1d066, b/383269496, b/139326648)runWithTimingDisabled
yerinerunWithMeasurementDisabled
kullanın. Bu durum, davranışı daha net bir şekilde tanımlar: Tüm metrikler duraklatılır. Ayrıca,runWithMeasurementDisabled
işlevi satır içi olduğundan erişimi açmak için yeniden tanımlamak mümkün olmadığındanMicrobenchmarkScope
üst sınıfını kullanıma sunun. (I9e23b, b/389149423, b/149979716)- Daha yeni cihazları içerecek şekilde ui-tooling Devices API güncellendi. (Ia2ac1)
- Geliştiricinin daha büyük pencereleri dikkate almasına yardımcı olmak için önizleme ekranı boyutları koleksiyonuna Tablet Dikey boyutunu ekleyin (Ia1976).
- Belirli bir zamandaki değerlerle izlemeyi işaretlemek/günlüğe kaydetmek için izleme değeri API'sini kullanıma sunuyoruz. İzleme değerleri, Prefetto'da bir izlemenin zaman çizelgesi üzerinden görülebilen yeni bir şerit olarak gösterilir. Android'de
Trace.setCounter
kullanılarak uygulanır. (Idcf48)
Hata Düzeltmeleri
- Pausable composition'da remember gözlemcilerinin gönderilmesini düzelterek aynı uygulama içinde hatırlanan/unutulanların gönderilmesini önleme (I570b2, b/404645679, b/407931790)
android:dialogTheme
artıkdecorFitsSystemWindows
yanlış olduğunda iletişim kutusu özelliklerini kontrol etmek için ayarlanabilir (I7922f, b/246909281)- İletişim kutusunun dışında yakalanan herhangi bir hareket olayının iletişim kutusunu kapatmasına neden olan hata düzeltildi. (Ia78fd)
- Compose lint kontrolleri artık komut satırından minimum AGP sürümü 8.8.2 ve IDE desteği için en az Android Studio Ladybug gerektiriyor. AGP'nin eski bir sürümünü kullanıyorsanız Lint sürümünü AGP'yi etkilemeden yükseltmek için gradle.properties dosyasında
android.experimental.lint.version=8.8.2
değerini ayarlayabilirsiniz. (I6f2a8) - Çıkış dönüşümü uygulanmadan önce
textfield
değerini yakalayan yeni bir semantik özellikInputText
eklendi. (Iae46a, b/395911609, b/176949051) enableAccessibilityChecks()
API'si,TestRule
çağrılırkenTestRule
vecompose:ui:ui-test-junit4-accessibility
kullanılmıyorsacompose:ui:ui-test-accessibility
olan ayrı paketlere taşındı (I3c318, b/391560768).LaunchedEffect
verememberCoroutineScope
'de yığın izlemeleri oluşturma desteği eklendi (I705c0, b/354163858).
Harici Katkı (External Contribution)
- Deneysel
runComposeUiTest
işlevini, askıya alma engellemesini kabul edecek şekilde değiştirme. Ayrıca, ikili uyumluluk için kullanımdan kaldırılan bir işlevrunComposeUiTest
eklendi (I3b88c, b/361577328).
Sürüm 1.8
Sürüm 1.8.3
18 Haziran 2025
androidx.compose.ui:ui-*:1.8.3
iptal edilir. 1.8.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Özellik tamamen doğrulandığından
isGetFocusedRectReturnEmptyEnabled
ile ilgili işaret kaldırıldı. (Ife722) ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled
işareti,ComposeView
içinde odaklanılabilir bir şey olmadığında dikdörtgeni boş değere ayarlar. Bu, odak aramasının odaklanılacak görünümü seçmesini engeller. Bu durum, özellikle bir IME'ninComposeView
verequestFocus()
odaklanmaya çalışıp başarısız olduğu bir SONRAKİ seçeneği olduğunda önemlidir. (Ibd0e2, b/369256395)
Sürüm 1.8.2
20 Mayıs 2025
androidx.compose.ui:ui-*:1.8.2
iptal edilir. 1.8.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- İletişim kutusunda etkin etkinlik akışı sırasında iletişim kutusu kaldırıldığında oluşan NPE hatası düzeltildi (6a7e7f).
- Yalnızca çizim güncellemeleri gerçekleştiğinde
onLayoutRectChange
'nın, sınırlı zaman çizelgesine göre güncellenmemesi sorunu düzeltildi. (03b82d)
Sürüm 1.8.1
7 Mayıs 2025
androidx.compose.ui:ui-*:1.8.1
iptal edilir. 1.8.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
onLayoutRectChanged
veLazyLayout
ile ilgili bazı sorunları düzeltme d791b11- Önceden oluşturulmuş öğeler için yeniden ölçüm isteklerini atlayın. Bu hata, önceden getirme işlemi bazı durumlarda verimli çalışmadığı ve ölçüm çerçeve içinde yapıldığı için tembel düzenlerin kaydırma performansını etkiliyordu. 742087a
Sürüm 1.8.0
23 Nisan 2025
androidx.compose.ui:ui-*:1.8.0
iptal edilir. 1.8.0 sürümü bu commit'leri içerir.
1.7.0 sürümünden beri yapılan önemli değişiklikler
- Compose 1.8, anlamsal otomatik doldurma için yeni eklenen desteği içerir. Metin bileşenleri için otomatik doldurma özelliğinin kullanılabilmesi için her iki modülün de en yeni sürümleri gerekir. Bu nedenle, kullandığınız UI ve Foundation sürümlerinin 1.8 veya daha yeni bir sürüm olduğundan emin olun. API kullanımı ve örnekleri hakkında daha fazla bilgi için lütfen otomatik doldurma belgelerini inceleyin: burada.
- Compose 1.8, ek dokunsal geri bildirim türlerini destekler:
Confirm
,ContextClick
,GestureEnd
,GestureThresholdActivate
,Reject
,SegmentFrequentTick
,SegmentTick
,ToggleOn
,ToggleOff
,VirtualKey
. Bu özelliğeLocalHapticFeedback
üzerinden erişilebilir. Android'de ise Vibrator API, dokunsal geri bildirimin desteklendiğini belirttiğinde bu özellik varsayılan olarak kullanılabilir. Modifier.focusRestorer()
,onEnter
veonExit
FocusProperties
(I6e667) dahil olmak üzere birden fazla Focus API artık kararlı. ArtıkrequestFocus
'ı aradığınızdaFocusDirection
belirtebilirsiniz. Belirli bir yöne odaklanmaya olanak tanımak için hemfocusRequester
hem deFocusTargetModifierNode
API'sinerequestFocus(FocusDirection)
API'si ekledik. (I5d9ec][https://android-review.googlesource.com/#/q/I5d9eca3a2cd283c1b84ad6b77d929ef9a49ce4cc], b/245755256)
Sürüm 1.8.0-rc03
9 Nisan 2025
androidx.compose.ui:ui-*:1.8.0-rc03
iptal edilir. 1.8.0-rc03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Regresyona neden olan bazı odaklanma birlikte çalışabilirlik düzeltmelerini devre dışı bırakır. (b9d998, b/369256395, b/378570682, b/376142752, b388590015/, b/389994198, b/391378895)
Sürüm 1.8.0-rc02
26 Mart 2025
androidx.compose.ui:ui-*:1.8.0-rc02
iptal edilir. 1.8.0-rc02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Compose hiyerarşisine yerleştirilmiş odaklanmış görünümlerin, odaklanmış görünüm bir LazyList'ten kaldırıldığında yeniden girişli kompozisyona neden olması sorunu düzeltildi. (765562)
Sürüm 1.8.0-rc01
12 Mart 2025
androidx.compose.ui:ui-*:1.8.0-rc01
iptal edilir. 1.8.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Odaklanmış bir
AndroidView
, sanal klavye etkinken kaldırıldığında yaşanan kilitlenme sorunu düzeltildi. (Ic725a) - Yeni odak durumu işleme uygulamasındaki birkaç sorun düzeltildi. (b/395895685)
LaunchedEffect
kullanılarak bir metin alanına odaklanma isteğinde bulunulduğunda otomatik doldurmanın engellenmesine neden olan sorun düzeltildi. (b/392539099)
Sürüm 1.8.0-beta03
26 Şubat 2025
androidx.compose.ui:ui-*:1.8.0-beta03
iptal edilir. 1.8.0-beta03 sürümü bu commit'leri içerir.
API Değişiklikleri
enableAccessibilityChecks()
API'si, Android'de erişilebilirlik kontrollerini etkinleştirmek içincompose:ui:ui-test-accessibility
(TestRule'u kullanmıyorsanız) vecompose:ui:ui-test-junit4-accessibility
(TestRule
çağrılırken) olmak üzere ayrı paketlere taşındı (I547ef, b/391560768).- Çıkış dönüşümü uygulanmadan önce bir metin alanının değerini yakalayan yeni bir semantik özellik
InputText
eklendi. (Iae46a)
Hata Düzeltmeleri
- Otomatik doldurma hizmetlerinin giriş metni yerine dönüştürülmüş çıkış metnini kaydetmesine neden olan sorun düzeltildi. (Iae46a, b/395911609, b/176949051)
Sürüm 1.8.0-beta02
12 Şubat 2025
androidx.compose.ui:ui-*:1.8.0-beta02
iptal edilir. 1.8.0-beta02 sürümü bu commit'leri içerir.
Yeni Özellikler
Configuration#screenWidth
/heightDp
çağrılarına karşı uyarı veren bir lint kontrolü eklendi. Mevcut pencere boyutunu almak için bunun yerineLocalWindowInfo.current.containerSize
kullanılabilir.
Sürüm 1.8.0-beta01
29 Ocak 2025
androidx.compose.ui:ui-*:1.8.0-beta01
iptal edilir. 1.8.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
ContextualFlowRow
veContextualFlowColumn
, artık kullanılmıyor olarak işaretlendi. Bu deneysel bileşen 1.7 sürümünde kullanıma sunulmuştu ancak henüz kararlı hale getirilmemişti ve uygulamanın istenmeyen bir durum olduğu düşünülüyordu. Gelecekte, bu bileşenin çözmesi amaçlanan kullanım alanlarını çözen bir bileşen sağlanabilir.FlowRow
veFlowColumn
, 1.7 sürümünde kullanıma sunulan veoverflow
parametresini içeren deneysel aşırı yüklemelere sahiptir. Bu parametrenin kullanımı kullanımdan kaldırıldı. Bunun yerine bu parametre olmadan aşırı yüklemeler kullanılabilir. Bu aşırı yüklemeler için varsayılan "taşma" davranışı, kullanıma sunulduğundan beri olduğu gibi "Kırp" olacaktır.ContextualFlowRow
için birçok kullanım alanı FlowRow kullanılarak gerçekleştirilebilir ancak bunun her durumda geçerli olmadığını kabul ediyoruz.ContextualFlowRow
, kullanıcı alanında tamamen uygulanabilir ve istenirse uygulaması kopyalanıp uyarlanabilir. Gelecekte bu kullanım alanlarını farklı bir şekilde çözmeyi umuyoruz. (Ibafec)
SemanticsNodeInteraction.semanticsId()
kaldırıldı. Bunun yerineSemanticsNodeInteraction.fetchSemanticsNode().id
politikasını kullanın. (Ie397a)- Eski otomatik doldurma API'lerinin desteği sonlandırıldı. Bunun yerine yeni semantiğe dayalı API'yi kullanın. (I943ff)
- Otomatik doldurma yöneticisinin dışında var olacak şekilde
requestAutofill
API'yi yeniden yazın. (Id1929)
Hata Düzeltmeleri
- Anlamsız bir
previouslyFocusedRect
parametresi (odak yönüyle ilgili) içerenrequestFocus()
öğesininComposeView
öğesini atlamasına neden olan odak sorunu düzeltildi. (Ifdc2f, b/388590015) GraphicsLayer.record { this@ContentDrawScope.drawContent() }
kullanılırken zaman zaman oluşan NPE (NullPointerException) hatası düzeltildi.drawContent()
kaydı yapıyorsanızDrawScope
içindeGraphicsLayer#record
uzantı işlevini kullandığınızdan emin olun.GraphicsLayer
üzerinde üye işlevini kullanmayın. (I75fc0, b/389046242)- Üç nokta içeren metin düzeninin, animasyonlar sırasında bazen yanlış çevrilmesi sorunu düzeltildi. Daha fazla bilgi için b/389707025 adresini inceleyin (Ie55b1, b/389707025).
Sürüm 1.8.0-alpha08
15 Ocak 2025
androidx.compose.ui:ui-*:1.8.0-alpha08
iptal edilir. 1.8.0-alpha08 sürümü bu commit'leri içerir.
API Değişiklikleri
AutofillManager
öğesini soyut sınıf yapma. (I0a3b0)- IME'nin odaklanılabilir öğeler olmadan
ComposeView
öğesine odaklanmaya çalıştığında kilitlenme, altAndroidViews
öğesinde odak değişikliği ve odaklanma isteğininAndroidView
bırakması gibi odaklanmayla ilgili çeşitli sorunlar düzeltildi. (Ia03c3, b/369256395, b/378570682, b/376142752) FocusEnterExitScope.cancelFocus()
öğesinicancelFocusChange()
olarak değiştirme (I89959)- Artık
RectInfo.calculateOcclusions()
ile birleştirilebilir örtüşmeleri hesaplayabilirsiniz. DelegatableNode
'ya, genel düzen değişiklikleri için bir dinleyici kaydetmek üzere uzantı işlevi eklendi. (I68b59)
Hata Düzeltmeleri
ComposeContentTestRule.setContent
kullanılırken test edilen composable için ana makine olarak kullanılan etkinlik, artıkTheme.Material.Light.NoActionBar
temasını kullanıyor. Böylece SDK 35 hedeflenirkenActionBar
öğesinin test içeriğiyle çakışması önleniyor. Bu davranışın kapsamı dışında kalmak içinui-test-manifest
bağımlılığını kaldırabilir ve test uygulamanızın AndroidManifest.xml dosyasına, istediğiniz temayla birlikteComponentActivity
için bir etkinlik girişi ekleyebilirsiniz. (I7ae1b, b/383368165)- Aynı varyasyon ayarlarına sahip kaynak yazı tipleri artık yanlış varyasyon ayarlarının uygulanmasına neden olan aşırı önbelleğe almayı önleyecek. (If3dff, b/372044241)
AnnotatedString.fromHtml
artık<ul>/<li>
etiketlerini destekliyor. (I7c2fe, b/299662276, b/139326648)
Harici Katkı (External Contribution)
- Yeni bir pano arayüzü ve bunun için bir kompozisyon yereli eklendi. (I80809)
Sürüm 1.8.0-alpha07
11 Aralık 2024
androidx.compose.ui:ui-*:1.8.0-alpha07
iptal edilir. 1.8.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
- Araçlar için
LayoutNode
kuruluş birimindeki sahibi gösterir. (I26f7f) LocalAutofillHighlightColor
kompozisyonunun yerel kullanımında Renk türü olmalıdır. (I0e05b)- Kullanımdan kaldırılan
UrlAnnotation
ve yöntemlerini deneysel olarak işaretlenmiş şekilde tutun. (Ic0021)
Hata Düzeltmeleri
BasicText
veya Text composable içindeLinkAnnotation
kullanılırkenIndexOutOfBoundsException
kilitlenmesi düzeltildi (be7605, b/374115892)- Özel şekilli doldurulmuş metin alanlarının gösterge çizgisini kırpmaması sorunu düzeltildi. (I4f87f, b/380704151)
- Uzun ekran görüntülerinde eksik arka planlar düzeltildi. (I4d57a)
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenini kullanmalıdır:
-Xjspecify-annotations=strict
(bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Idfef8, b/326456246) - Android Q+ üzerinde çalışırken geniş renk gamı ve HDR renkleri için Compose desteği güncellendi. (Icd8be, b/379135036)
- Yüklenemeyen kaynak yazı tipleri, artık ölçümde istisna oluşturmak yerine varsayılan yazı tipine sessizce geri dönecek. (Ib6a49)
AndroidView
ayrılıp tekrar takıldığında odak kaybı sorununu düzeltir. (I53446)- Sınırlı düzen işleminin dışından
requestFocus()
kabul etme. (Ia8461)
Harici Katkı (External Contribution)
- Görünüme Getir işlevini uygulamak için yeni bir yol sunan ve platform düzeyinde uygulamaya olanak tanıyan
BringIntoViewResponderModifierNode
öğesini kullanıcı arayüzüne ekleyin. (Ia6dd8)
Sürüm 1.8.0-alpha06
13 Kasım 2024
androidx.compose.ui:ui-*:1.8.0-alpha06
iptal edilir. 1.8.0-alpha06 sürümü bu commit'leri içerir.
API Değişiklikleri
stylusHoverIcon
değiştiricisini ekler. (Iff20a, b/331289114)- Otomatik doldurma yöneticisini arayüz olarak değiştirir. (I84914, b/376080755)
- Belirli bir yönde odaklanmaya olanak tanımak için hem
focusRequester
hem deFocusTargetModifierNode
öğesinerequestFocus(FocusDirection)
ekler. (I5d9ec, b/245755256) FocusProperties.enter
veFocusProperties.exit
,FocusDirection
parametresi yerine alıcı kapsamı kullananonEnter
veonExit
ile değiştirildi. (I6e667)- Metin araç çubuğuna otomatik doldurma desteği eklendi. (Ie6a4c)
Modifier.focusRestorer()
(I99c03) ile ilgili API değişiklikleri:- Parametre adı "fallback" olarak değiştirildi
- parametresi artık lambda değil,
FocusRequester
- parametresi artık varsayılan değer olarak Default ile NULL olmayan bir değerdir.
- Otomatik doldurma yöneticisi arayüzünden
@Experimental
açıklamasını kaldırma. Bu özellik, bu sürümde kullanıma sunulmak üzere geliştirilmeye devam ediyor ancak @Expemiental API'yi (Id8398) kullanıma sunmak istemiyoruz. LocalHapticFeedback
, artık Vibrator API dokunsal geri bildirimin desteklendiğini belirttiğinde varsayılan birHapticFeedback
uygulaması sunuyor. AşağıdakilerHapticFeedbackType
-Confirm
,ContextClick
,GestureEnd
,GestureThresholdActivate
,Reject
,SegmentFrequentTick
,SegmentTick
,ToggleOn
,ToggleOff
,VirtualKey
. Wear Compose'daButton
,IconButton
,TextButton
veCard
gibi uzun tıklanabilir bileşenler, uzun tıklama işleyici sağlandığında artıkLONG_PRESS
dokunsal geri bildirimini veriyor. (I5083d)- Varsayılan aşırı kaydırma uygulamasının bir örneğini oluşturmak veya parametrelerini özelleştirmek için
OverscrollConfiguration
veLocalOverscrollConfiguration
kaldırılır,rememberPlatformOverscrollFactory
eklenir. Aşırı kaydırmayı devre dışı bırakmak içinLocalOverscrollConfiguration provides null
yerineLocalOverscrollFactory provides null
kullanın. Işıma rengini / dolgusunu değiştirmek içinLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)
yerineLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)
kullanın. (Ie71f9, b/255554340, b/234451516) - Deneysel
GlobalAssertions
API'si kaldırıldı. Bu özellik, erişilebilirlik kontrolleri yapmak için tasarlanmıştır. Bu amaçla kullanmak içinenableAccessibilityChecks()
bölümüne bakın. (I59322)
Sürüm 1.8.0-alpha05
30 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha05
iptal edilir. 1.8.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
Otomatik doldurma, bu sürümde bir özellik işaretinin arkasında kullanıma sunulmuştur. Performansı artırmak için çalışıyoruz ve API'ler hakkında erken geri bildirim almak istiyoruz. API'lerin, kararlı sürümden önce geri bildirimlere göre gelişmesi beklenmektedir.
- Otomatik doldurma özelliğini etkinleştirmek için
onCreate
içindeComposeUiFlags.isSemanticAutofillEnabled
değerini true olarak ayarlayın ve en son Compose Snapshot'ı kullanın. - Otomatik doldurma özelliğinin bu sürümü, kimlik bilgilerinin manuel olarak, güçlü şifre önerisi aracılığıyla ve gezinme yoluyla kaydedilmesini destekler. Ayrıca, otomatik doldurulabilir bir alan odaklandığında veya Otomatik Doldurma, metin bileşenlerindeki metin araç çubuğu üzerinden tetiklendiğinde de doldurmayı destekler. Otomatik doldurma işlemi tamamlandığında bileşen vurgulanır.
API Değişiklikleri
- Otomatik doldurma arayüzünü
expect
/actual
yapısına uygun şekilde değiştirin. (I22dce) - Otomatik doldurma özelliğinin başarılı doldurma vurgusunun tonunu değiştirmek için kullanılabilecek
CompositionLocal
özelliğini kullanıma sunuyoruz. (I32092) Modifier.onRectChanged
API'si eklendi. Bu API,LayoutNode
öğesinin kök/pencere/ekrana göre konumuna ve boyutuna abone olmanızı sağlar. API, mevcutonGloballyPositioned
değiştiricinin çözdüğü birçok kullanım alanını çözer ancak bunu çok daha az ek yükle yapar ve API, kullanım alanının gerektirdiği şekilde geri çağırmayı sekmeyi kaldırma ve kısıtlama olanaklarıyla birlikte gelir. (Id28c7, b/372765423, b/372757007, b/372994338)- Otomatik Doldurma Yöneticisi'ni, kullanıcılara yeni girilen kimlik bilgilerini kaydetmede yardımcı olan
commit()
vecancel()
API'lerini içerecek şekilde genişletir. (I2da00) - Kullanıcıların otomatik doldurma yolculuğuna ince ayar yapmak için kullanılabilecek yeni bir
AutofillManager
arayüzü ve otomatik doldurmanın bu yeni sürümünü etkinleştirmek için birisSemanticAutofillEnabled
işareti sunar. (I9d484) Modifier.onRectChanged
API'si eklendi. Bu API,LayoutNode
öğesinin kök/pencere/ekrana göre konumuna ve boyutuna abone olmanızı sağlar. API, mevcutonGloballyPositioned
değiştiricinin çözdüğü birçok kullanım alanını çözer ancak bunu çok daha az ek yükle yapar ve API, kullanım alanının gerektirdiği şekilde geri çağırmayı sekmeyi kaldırma ve kısıtlama olanaklarıyla birlikte gelir. (I3c8fa)- Genişletilmiş otomatik doldurma desteği için anlamsal özellikler ve veri türleri ekleyin. (I52c7d)
AnnotatedString
oluşturucudaki tüm yöntemler artık deneysel değildir (Ia89c8, b/261561823).
Hata Düzeltmeleri
- Oluşturma işlemine yerleştirilen görünümler, odaklanmışlarsa artık döner etkinlikler alabilir (I4d53a, b/320510084).
- Çeşitli kaynak türlerinin yapılandırma değişikliklerinde güncellenmemesine neden olan sorun düzeltildi (Ia9b99, b/352336694).
- Belirli eski Sony cihazlarda POBox Japonca Klavye kullanılırken
TextField
işlevinin düzgün çalışmasını engelleyen sorun giderildi. (Ia9b99, b/373743376) - İletişim kutularının ortalanmak yerine ekranın alt kısmında gösterilmesiyle ilgili sorun düzeltildi (Ia2ec, b/373093006).
- 35 ve sonraki API sürümlerini hedefleme artık iletişim kutularının
decorFitsSystemWindows
değerini false olarak ayarlamayı zorunlu kılmaz. (Ibc94, b/364492593) - Katmanlar pencereler arasında (ör.iletişim kutusu ve ana içerik) taşındığında kilitlenmeye neden olan sorun düzeltildi (I675ba, b/330955281).
Sürüm 1.8.0-alpha04
16 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha04
iptal edilir. 1.8.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
DelegatableNode#onDensityChange
veDelegatableNode#onLayoutDirectionChange
geri çağırmalarını ekleyerek bunlar değiştiğinde düğüm durumunun güncellenmesine olanak tanır (I04f3e, b/340662451).- Geçerli pencerenin içerik kapsayıcısının boyutunu sağlamak için
WindowInfo#containerSize
ekler. Bu bilgilerLocalWindowInfo
kullanılarak alınabilir. (Idc38c, b/369334429, b/360343819) - Devam eden bir kaydırma sırasında düğüm ağacından kaldırılan iç içe kaydırılabilir öğeler için düzeltme sunuldu. Artık bu düğümler, aktarımı iptal edecek ve kalan hızla
onPostFling
etkinliğini doğru şekilde gönderecek. Ayrıca, gerileme durumunda davranışı kontrol etmek içinNewNestedScrollFlingDispatchingEnabled
işaretini de kullanıma sunuyoruz. Beta sürümünden önce bu işaret kaldırılacak. (I05c37, b/371168883) - Tek bir işaretçi giriş değiştiricisinin dokunma sınırlarını büyütmek için kullanılabilecek
PointerInputModifierNode#touchBoundsExpansion
tanıtıldı. (Iccf02, b/335339283) - Geçerli pencerenin içerik kapsayıcısının boyutunu sağlamak için
WindowInfo#containerSize
ekler. Bu bilgilerLocalWindowInfo
kullanılarak alınabilir. (I27767, b/369334429, b/360343819) - Kararlı temel sürümüne sabitlemek için
readOnly
'yıTextFields
'den kaldırın. (I3aaba) Paragraph
veParagraphIntrinsics
artıkAnnotatedString
öğesine uygulanan tüm ek açıklamaların listesini alıyor. Daha önce yalnızcaSpanStyles
listesi vardı (I12f80).
Hata Düzeltmeleri
AnnotatedString
içinde paragrafların işlenme şekli güncellendi. Daha önce yalnızca çakışmayan paragraflar oluşturabiliyordunuz. ArtıkAnnotatedString
, tamamen çakışan ve birleştirilecek paragraflara, ayrıca iç içe geçmiş paragraflara izin veriyor. Bu durumda dıştaki paragraf, içteki paragrafın sınırlarında bölünür ve içteki paragrafın stili, dıştaki paragrafın stiliyle birleştirilir (Ic9554).AnnotatedString
içindeki kilitlenmeyi sıfır uzunlukluLinkAnnotation
ile düzeltin. (89aac6)
Sürüm 1.8.0-alpha03
2 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha03
iptal edilir. 1.8.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
- Kotlin sürümü 1.9'a (I1a14c) güncellendi.
- Erişilebilirlik hizmetleri için sayfalayıcılardaki liste davranışını taklit etmek amacıyla Bant adlı yeni bir Semantik Rol kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
invisibleToUser()
öğesinihideFromAccessibility
olarak yeniden adlandırın. İşlevi aynı kalır. Daha fazla ayrıntı için belgelere bakın. (Ib43a3)
Hata Düzeltmeleri
SensitiveContent
değiştiricisiyle ilgili dokümanları güncelleme (Ib0442)- Bazı Android sürümlerinde belirli genel ana hat kliplerinin yükseklik gölgeleriyle birlikte yoksayılması sorunu düzeltildi.
- Belirli Android sürümlerinde genel bir ana hat klipsi belirtildiğinde boş klipslerin uygulanması sorunu düzeltildi.
- IME, harici bir görünümde etkinken ve
ComposeView
üzerinde odaklanmak için Sonraki işlemi kullanıldığında oluşan istisna düzeltildi.clearFocus()
davranışı, API < 28'deki View davranışı ile uyumludur. Bu API'declearFocus()
, varsayılan View'un odaklanmasına neden olabilir. - Farklı düzenleme geçişleri için alt bileşen yönetimini ayırarak
LazyList
içinde yerleşimin ayrılmış düğümlerde gerçekleşmesine neden olan sorun düzeltildi. - Odaklanma
TextField
'danEditText
'ya veya başka bir Görünüm tabanlı düzenleyiciye geçtiğinde yazılım klavyesinin titremesine neden olan sorun düzeltildi. - İç içe yerleştirilmiş kaydırma düğümleri artık ayrıldıktan sonra
onPostFling
etkinliklerini doğru şekilde gönderiyor. - Genel performans iyileştirmeleri
Sürüm 1.8.0-alpha02
18 Eylül 2024
androidx.compose.ui:ui-*:1.8.0-alpha02
iptal edilir. 1.8.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
- Tek satırlık metin satırının başına veya ortasına üç nokta yerleştirmenize olanak tanıyan
TextOverflow.StartEllipsis
veTextOverflow.MiddleEllipsis
artık kullanılabilir. (I38913, b/185418980)
Hata Düzeltmeleri
- Dalog'u düzeltin
dismissOnClickoutside
(39a3d, b/364508685) - İletişim kutusu içeriğinin gölgelerini kırpmayın (e8e2f, b/363027803)
- Odak arama, Oluştur ve Görünüm arasında hareket ederken hatalı davranış düzeltildi (58377, b/350534714)
Harici Katkı (External Contribution)
AlignmentLines
Map
artıkVerticalAlignmentLine
veyaHorizontalAlignmentLine
beton türlerini kabul ediyor. (I02912)- Yeni ortak
ByteArray.decodeToImageBitmap(): ImageBitmap
yöntemi. (I83c21)
Sürüm 1.8.0-alpha01
4 Eylül 2024
androidx.compose.ui:ui-*:1.8.0-alpha01
iptal edilir. 1.8.0-alpha01 sürümü bu commit'leri içerir.
Sürüm 1.7
Sürüm 1.7.8
12 Şubat 2025
androidx.compose.ui:ui-*:1.7.8
iptal edilir. 1.7.8 sürümü bu commit'leri içerir.
Sürüm 1.7.7
29 Ocak 2025
androidx.compose.ui:ui-*:1.7.7
iptal edilir. 1.7.7 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
LinkAnnotation
ileAnnotatedString
öğesi Text composable'a geçirilirkenIndexOutOfBoundsException
sorunu düzeltildi. (Ic96d2)AnnotatedString
içindeLinkAnnotation
kullanıldığında bazı nadir durumlarda testlerde zaman aşımı sorununa neden olan hata düzeltildi. (I04a03)
Sürüm 1.7.6
11 Aralık 2024
androidx.compose.ui:ui-*:1.7.6
iptal edilir. 1.7.6 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Daha önce, odak sisteminde bekleyen geçersiz kılma işlemleri olduğunda bir önemli etkinlikle karşılaştığımızda hata veriyorduk. Şimdi bunun yerine bir hata kaydediyoruz (I7ea0, b/346370327).
SemanticsPropertyReceiver.invisibleToUser()
öğesinden deneysel ek açıklama kaldırıldı. Bu işlev, 1.8 sürümünde kullanımdan kaldırılacak ve yerineSemanticsPropertyReceiver.hideFromAccessibility()
işlevi eklenecek. (I448f0, b/376479686)- Belirli eski Sony cihazlarda POBox Japonca klavyesi kullanılırken
TextField
işlevinin düzgün çalışmasını engelleyen sorun düzeltildi. (I94e0e, b/373743376) BasicText
'nın inlineContent'ininTalkBack
tarafından duyurulmamasına neden olan erişilebilirlik sorunu düzeltildi. (I67bcb, b/376479686)
Sürüm 1.7.5
30 Ekim 2024
androidx.compose.ui:ui-*:1.7.5
iptal edilir. 1.7.5 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yükseklik ve kırpma işlemlerinin özel ana hatlarla düzgün şekilde oluşturulmamasına neden olan sorunlar düzeltildi.
- Sıfır genişlikli
LinkAnnotation
ile oluşan metin kilitlenmesi düzeltildi. (Ic1e2e) - Tıklanabilir bir Text composable olarak oluşturulduğunda düğmenin
Talkback
içindeki duyuruyu düzeltir. (I1f588)
Sürüm 1.7.4
16 Ekim 2024
androidx.compose.ui:ui-*:1.7.4
iptal edilir. 1.7.4 sürümü bu commit'leri içerir.
Sürüm 1.7.3
2 Ekim 2024
androidx.compose.ui:ui-*:1.7.3
iptal edilir. 1.7.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Genel bir ana hat klibi belirtmenin, belirli Android sürümlerinde boş bir klip sınırına yol açmasıyla ilgili sorun düzeltildi.
- IME, harici bir görünümde etkinken ve
ComposeView
üzerinde odaklanmak için Sonraki işlemi kullanıldığında oluşan istisna düzeltildi.clearFocus()
davranışı, API < 28'deki View davranışı ile uyumludur. Bu API'declearFocus()
, varsayılan View'un odaklanmasına neden olabilir. - İleriye bakma geçersiz kılma için yanlış
placeOrder
kullanılmasına neden olan sorun düzeltildi. Bu sayede, ileriye bakma yerleştirmenin atlandığı uç durum düzeltildi.
Sürüm 1.7.2
18 Eylül 2024
androidx.compose.ui:ui-*:1.7.2
iptal edilir. 1.7.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Ayrıntılı izleme kaldırıldığından erişilebilirlik düğümü bilgisi ve semantik etkinliklerin performansı iyileştirildi. (I89156, b/362530618)
ComposeView
, olağanüstü büyük bir ölçüm boyutu (da5db, b/347036173) iletildiğinde artık kilitlenmeyecek.- Düğmelerdeki
LiveRegion
duyurularının yapılmamasına neden olan erişilebilirlik ekran okuyucu sorunu düzeltildi. (f66fa7, b/348590026)
Sürüm 1.7.1
10 Eylül 2024
- Android yapıları değiştirilmez.
-desktop
yapı kaldırıldı,-jvmStubs
ve-linuxx64Stubs
yapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar.
Sürüm 1.7.0
4 Eylül 2024
androidx.compose.ui:ui-*:1.7.0
iptal edilir.
1.6.0 sürümünden beri yapılan önemli değişiklikler
1.7.0 sürümündeki önemli değişiklikler bu blog yayınında ele alınmıştır.
Sürüm 1.7.0-rc01
21 Ağustos 2024
androidx.compose.ui:ui-*:1.7.0-rc01
iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.
Önemli değişiklikler
- ui:ui modülü artık foundation:foundation modülünün minimum sürümünün en az 1.7.0-rc01 veya daha yeni olmasını zorunlu kılıyor. Bu kural, 1.7.0-alpha01 sürümünün başlarında yapılan
NestedScrollSource
değişiklikleriyle ilgili olarak kullanıcı arayüzü ve temel arasındaki davranış uyumsuzluğunu düzeltmek için uygulanır.
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.ui:ui-*:1.7.0-beta07
iptal edilir. 1.7.0-beta07 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Metin girişiyle ilgili
SemanticsNodeInteraction
,performTextReplacement
,performTextInput
veperformTextClearance
işlevleri artık salt okunurTextFields
üzerinde çağrıldığında onaylama hataları verecek. (I4ae8f)
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.ui:ui-*:1.7.0-beta06
iptal edilir. 1.7.0-beta06 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.ui:ui-*:1.7.0-beta05
iptal edilir. 1.7.0-beta05 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yazılım klavyesinin değiştirilmesinin, odak kaybedilip yeniden kazanılana kadar
TextField
uygulamasının yeni klavyeden giriş kabul etmemesine neden olan hata düzeltildi. - Katman içeriklerini kalıcı hale getirme girişimlerinin,
SurfaceView
içeriklerle oluşturma sırasında istenmeyen yan etkilere neden olması sorunu düzeltildi.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.ui:ui-*:1.7.0-beta04
iptal edilir. 1.7.0-beta04 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Çok büyük metin satırları (ör. 10.000 karakter) ölçülürken kilitlenmelerin önüne geçildi (8157ab).
GraphicsLayer
API'si için yazılım oluşturma desteğini devre dışı bırakın. (35ddd8)- Katman kalıcılığı mantığındaki kilitlenme düzeltildi. (70b13e)
- Katman nesnelerini yeniden kullanma optimizasyonu, oluşturma sorunlarına neden olduğu için geri alındı. (70b13e)
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.ui:ui-*:1.7.0-beta03
iptal edilir. 1.7.0-beta03 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-beta02
iptal edilir. 1.7.0-beta02 sürümü bu commit'leri içerir.
API Değişiklikleri
SemanticsProperties.Editable
,IsEditable
olarak yeniden adlandırıldı veSemanticsPropertyReceiver.editable
,isEditable
değerine değiştirildi. Özellik artık bir boole değeridir ve her zaman metin alanlarıyla belirtilir. (I8acd8)- Erişilebilirlik karşılaştırması parametresini yeniden adlandırın. (I3d440)
- Bağlantıları stilize etmek için güncellenen API:
TextLinkStyles
artıkLinkAnnotation
oluşturucusunun veAnnotatedString.fromHtml
yönteminin (I90b2b) bir parçasıdır.TextDefaults
da materyalden (I5477b) kaldırıldı.
Hata Düzeltmeleri
LayoutCoordinates.introducesFrameOfReference
, amacını daha iyi yansıtması içinLayoutCoordinates.introducesMotionFrameOfReference
olarak yeniden adlandırıldı. İlgili işlev, koordinatları bu işarete göre hesaplayacak şekilde yeniden adlandırıldı. (I3a330)
Sürüm 1.7.0-beta01
14 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-beta01
iptal edilir. 1.7.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
performCustomAccessibilityActionLabelled
,performCustomAccessibilityActionWithLabel
olarak,performCustomAccessibilityActionWhere
iseperformCustomAccessibilityActionWithLabelMatching
olarak yeniden adlandırıldı. (I5387f)AnnotatedString.hasEqualsAnnotations
artıkhasEqualAnnotations
(I685c0)- Metinde Material temalı bağlantıları alma API'si güncellendi. Özellikle, temalı
LinkAnnotations
oluşturmak ve temalı bağlantılarla HTML ayrıştırmak içinTextDefaults
yöntemlerini kaldırdı. Bunun yerine, Text composable'ına parametre olarak bağlantıları stilize etmeye olanak tanıyan birTextLinkStyles
sınıfı eklendi. (I31b93)
Hata Düzeltmeleri
- Etkinlikler sırasında işaretçi girişi değiştiricileri dinamik olarak eklerken ek kullanım alanlarını düzeltir 63e1504
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-alpha08
iptal edilir. 1.7.0-alpha08 sürümü bu commit'leri içerir.
API Değişiklikleri
- Değiştirilebilir şekil uygulamaları için destek ekler.
Shape#createOutline
artık grafik katmanlarında gözlemleniyor. Bu nedenle, durum değiştiğinde içindeki durum değerlerinin okunması geçersiz kılmaya neden oluyor ve daha iyi performans gösteren şekil animasyonlarına olanak tanıyor. (Id1629, b/326070216) isPositionedByParentWithDirectManipulation
,introducesFrameOfReference
olarak yeniden adlandırıldı. Bu ayarın artık ters etki gösterdiğini, yani varsayılan olarak çoğuLayoutCoordinates
bir referans çerçevesi sunduğunu ve yalnızca doğrudan manipülasyon altında yerleştirildiğinde özelliğin yanlış olacağını unutmayın. Konumu yalnızca referans çerçevesi sunanlarla sorgulamak içinpositionInLocalFrameOfReference(...)
kullanın. VeyaLookaheadScope
cihazındanpositionInLocalLookaheadFrameOfReference
. (Ifc5f7)LookaheadScope
API'ler kararlı hale getirildi (I21507)- API konseyinin geri bildirimine göre
getScrollViewportLength
için işlem lambda'sını değiştirin. (Ibc74a) GraphicsLayer
Ana hat API'leri, int yerine kayan nokta parametrelerini kullanacak şekilde güncellendi. Kayan nokta tabanlı Offset ve Size satır içi sınıflarında (I2fb03, b/333863462) zaten mevcut olan Unspecified sabitleri lehineUnsetOffset/UnsetSize IntSize
sentinel değerleri kaldırıldı.- Testler sırasında fare girişi yerleştirilirken
MouseInjectionScope.click()
,MouseInjectionScope.doubleClick()
,MouseInjectionScope.tripleClick()
,MouseInjectionScope.longClick()
artık daha evrensel olarak uygulanabilir hale getirmek içinbutton: MouseButton
parametresini kabul ediyor. Tüm yöntemler için varsayılan değerMouseButton.Primary
'dır. (I31a23, b/190493367, b/261439695) LinkInteractionListener
içindeonClicked
,onClick
olarak yeniden adlandırıldı. (Iaa35c)TextInclusionStrategy.isInside
öğesiniisIncluded
olarak yeniden adlandırın.Paragraph/MultiParagraph#getRangeForRect()
dönüş türünü null yapılamaz hale getirin. (I51f26)
Hata Düzeltmeleri
reverseScrolling=true
içeren kaydırma kapsayıcıları için uzun ekran görüntüsü alma sorunu düzeltildi. (I7c59c)
Harici Katkı (External Contribution)
- İç içe yerleştirilmiş
LazyLists
öğelerinin (ör. iç içe yerleştirilmişLazyRows
öğelerini oluşturma işlevi gören birLazyColumn
) önceden getirilmesi için destek eklendi. Bu değişikliğin, buLazyLists
öğelerinde kaydırma sırasında kare düşmelerini azaltması bekleniyor. Varsayılan olarak, ilk 2 iç içe yerleştirilmiş öğe önceden getirilir. Ancak bu davranış, yeniLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
veLazyListPrefetchStrategy#onNestedPrefetch
API'leri ile kontrol edilebilir. (I51952)
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.ui:ui-*:1.7.0-alpha07
iptal edilir. 1.7.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
ClickableText
, desteği sonlandırılmış olarak işaretlendi. Metne bağlantı eklemek için bağlantınıza karşılık gelen birAnnotatedString
oluşturun ve buAnnotatedString
öğesini Text composable'a iletin.LinkAnnotation
(I34d4b, b/323346994)- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMargin
özelliğini tanıtın.BasicTextField
içinJoinOrSplit
hareketini destekleme (Ie6e13, b/325660505) FocusProperties.enter
veFocusProperties.exit
artık deneysel değil.FocusDirection.Enter
veFocusDirection.Exit
artık deneysel değil.FocusRequester.Cancel
artık deneysel değil (I461a1, b/261564106)- Düzen koordinatlarını sorgularken artık
excludeDirectManipulationOffset
bağımsız değişkenini kullanarak, çocuklarınıPlaceable.PlacementScope.withDirectManipulationPlacement
ile yerleştiren üst düzenler tarafından belirlenen ofseti hariç tutabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir düzen artık bunlarıwithDirectManipulationPlacement
kullanarak yerleştirebilir (ör. varsayılan olarak uygulanan Kaydırma). Bu sayedeapproachLayout
tabanlı animasyonlar daha sezgisel hale gelir. Artık yaklaşımını canlandırmaya karar verirken hangi ofsetin canlandırılacağını ve hangisinin doğrudan uygulanacağını ayırt etme fırsatı sunar. (I60ec7) - Uzun ekran görüntüleri için özellik işareti kaldırıldı. (I28648, b/329128246)
LazyColumn
artık uzun ekran görüntülerinde sabit başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)NestedScroll
kaynakları, animasyonları (Side Effect) ve fare tekerleği ile klavyeyi (UserInput
) de içerecek şekilde genişletilen bu kaynakların tanımına uyum sağlamak içinUserInput
veSideEffect
ile değiştiriliyor. (I40579)ApproachLayoutModifierNode
veModifier.approachLayout
artık kararlı sürümlerdir. EskiisMeasurementApproachComplete()
veisPlacementApproachComplete()
yerine sırasıyla yeniisMeasurementApproachInProgress()
veisPlacementApproachInProgress()
kullanılacaktır.- Kullanımdan kaldırılan
intermediateLayout
değiştiricisi kaldırıldı. (I3e91c) GraphicsLayer#buildLayer
ve Picture gibi Displaylist destekli API'lerin begin/endRecording yöntemlerini yansıtmak içinGraphicsLayer#buildLayer
öğesini record olarak yeniden adlandırın.RenderNode
rememberGraphicsLayer
,rememberObserver
'den yararlanacak şekilde güncellendi. (I312c1, b/288494724, b/330758155)UrlAnnotation
kullanımdan kaldırıldı, bunun yerineLinkAnnotation.Url
kullanın. Material teması kullanıyorsanız Material teması uygulanmış bir ek açıklama oluşturmak içinTextDefaults
nesnesini kullanın (I8d180, b/323346545).- Metin bağlantılarına normal stilin yanı sıra basılı durum stili seçeneği, fareyle üzerine gelme ve odaklanma stilleri eklendi (I5f864, b/139312671)
String.parseAsHtml
,AnnotatedString.Companion.fromHtml
olarak yeniden adlandırıldı. (I43dcd)parseAsHtml
yöntemine stil oluşturma bağımsız değişkenleri (linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) ve bir bağlantı etkileşimi dinleyicisi eklendi. HTML etiketli dizeyi<a>
etiketleriyle ayrıştırırken yöntem, bu tür her etiket için birLinkAnnotation.Url
oluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her bir ek açıklamaya iletir. (I7c977)LinkAnnotation
artık duruma dayalı stil oluşturma bağımsız değişkenlerini veLinkInteractionListener
'yi kabul ediyor. Köprü almak için bu ek açıklamayıAnnotatedString
öğesine ekleyin.focusedState
ve/veyahoveredState
parametrelerini ileterek bağlantılar odaklandığında ve/veya üzerine gelindiğinde bağlantıların görselconfiguration
özelliğini tanımlayabilirsiniz. (I81ce4, b/139312671)ImeOptions.hintLocales
artık boş değer içerebilir değil. Boş bir yerel ayar listesi iletmek istiyorsanız lütfenLocaleList.Empty
kullanın. (Ic5bc4)
Hata Düzeltmeleri
- Kötü/bozuk geçmiş giriş etkinliği verilerini sorunsuz bir şekilde işler (kötü ofset verilerini yoksayar).
- Etkin bir işaretçi girişi etkinlik akışı sırasında (ör. fareyle üzerine gelme ve fareyle üzerinden ayrılma arasında) başka bir işaretçi girişi değiştiriciden önce dinamik olarak bir işaretçi girişi değiştirici eklendiğinde beklenmeyen işaretçi etkinliklerini düzeltir.
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.ui:ui-*:1.7.0-alpha06
iptal edilir. 1.7.0-alpha06 sürümü bu commit'leri içerir.
Yeni Özellikler
- Stilli dizeler için
parseAsHtml
yöntemi eklendi: Bu yöntem, HTML etiketleriyle işaretlenmiş bir dizeyiAnnotatedString
biçimine dönüştürmeye olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde işaretli listeleri görüntüleyemezsiniz. (I84d3d, I30626, b/139326648) - Resmi Android API'si (
ScrollCaptureCallback
) kullanılarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumları doğru şekilde ele almayabilir. Bu nedenle, özellik şu anda varsayılan olarak devre dışıdır. Etkinleştirmek içinComposeFeatureFlag_LongScreenshotsEnabled
işaretini doğru olarak ayarlayın. (I2b055, b/329296471)
API Değişiklikleri
fun ClipEntry.getMetadata()
,val ClipEntry.clipMetadata
olarak değiştirildi. (I50155)ClipboardManager.getClipMetadata
veClipboardManager.hasClip
işlevleri kaldırıldı. Lütfen mevcut klip girişinin meta verilerini okumak içinclipEntry.getMetadata()
simgesini kullanın. Panoda geçerli bir klip olup olmadığını anlamak içinClipboardManager.getClip
sonucunun boş olup olmadığını da kontrol edin. (I50498)- Artık
GraphicsLayer
nesneleriniplaceable.placeWithLayer()
işlevlerine iletebilirsiniz (I1b22f) ClipboardManager.setClip
artık panoyu temizlemek için boş değerini kabul ediyor. (I7d2e9)- Derleme araçlarında uygulama ayrıntıları olarak kullanılan Görünümlerin gizlenmesine yardımcı olmak için kaynak kimlikleri eklendi (I99531).
GraphicsLayer#toImageBitmap
askıya alma yöntemi, bit eşlem içeriklerininGraphicsLayer
olarak oluşturulmasını desteklemek için eklendi. Bu, API düzeyi 22 ve sonraki sürümlerde (dahil) donanım hızlandırmalı bir oluşturma işlemidir ve tüm Android cihazların% 99'undan fazlasını destekler. Android API düzeyi 21'de bu, yazılım oluşturmaya geri döner. (I9e114)- Android
RectF
öğesiniComposeRect
öğesine dönüştürmek için yardımcı yöntem (I39925, b/325660505) - Tüm
KeyboardOptions
parametreleri artık varsayılan olarak belirtilmemiş bir değere sahip.KeyboardOptions.merge
yöntemi eklendi. KeyboardOptions.autoCorrect
özelliğinin adıautoCorrectEnabled
olarak değiştirildi ve özellik boş değer atanabilir hale getirildi. Boş değer, değer belirtilmediğini gösterir. (Ia8ba0, b/295951492)BasicTextField(state)
varyantı veBasicSecureTextField
, yazılım klavyesiyle yapılan işlemleri işlemek için artıkKeyboardActions
yerineKeyboardActionHandler
kullanıyor. (I58dda)
Sürüm 1.7.0-alpha05
20 Mart 2024
androidx.compose.ui:ui-*:1.7.0-alpha05
iptal edilir. 1.7.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
- Çizim komutlarını bir görüntüleme listesine kaydetmek için yeni bir
GraphicsLayer
API'nin yanı sıra görüntüleme listesinin oluşturulmasını etkileyen ek özellikleri kullanıma sunar. Bu, karmaşık bir sahneyi daha küçük parçalara bölmek için bir izolasyon sınırı sağlar. Bu parçalar, sahnenin tamamı yeniden oluşturulmadan birbirinden bağımsız olarak güncellenebilir. BirGraphicsLayer
üzerinde yapılan dönüşümler, görüntüleme listesi yeniden kaydedilmeden gerçekleştirilebilir.Modifier.graphicsLayer
'dan farklı olarakGraphicsLayer
, Composable içeriğin başka yerlerde oluşturulmasına olanak tanır ve içeriğin farklı sahnelerde oluşturulmasının beklendiği animasyonlu kullanım alanlarında yararlıdır.
API Değişiklikleri
GraphicsLayer.draw(Canvas)
artık herkese açık bir API değil. Katmanı çizmek için lütfen bunun yerineDrawScope.drawLayer(GraphicsLayer)
uzantı işlevini kullanın. (I7a7c0)restrictedConstraints()
,fitPrioritizingWidth()
vefitPrioritizingHeight()
olmak üzere iki yönteme ayrıldı (I6d7fd)- Android L kullanımına yönelik
HardwareCanvas
saplaması eklendi (I1c3b5, b/288494724) - Owner'ı güncellemenin yanı sıra
GraphicsContext
kompozisyon yerelini kullanıma sunmak için Compose çerçevesini güncelleyin. Ayrıca, kapsamlı erişim içinGraphicsContext
erişimini kullanıma sunmak üzereDelegateableNode
vedrawWithCache
Modifier uygulamalarını güncelleyin. Bu kapsamlı erişim, Modifier'lar kaldırıldığındaGraphicsLayer
örneklerini otomatik olarak temizler. (I64a2f, b/288494724) - Düşük seviyeli IME ile ilgili testler ve diğer düşük seviyeli IME kullanım alanları yazmaya yardımcı olması için
InterceptPlatformTextInput
tanıtıldı.PlatformTextInputTestOverride
desteği sonlandırıldı. (I862ed, b/322680547) GraphicsLayer.setOutline(Outline)
uzantı işlevi eklendi. (Ib81f4)GraphicsLayer
örnekleri oluşturmak için fabrika oluşturmak üzereGraphicsContext
işlev oluşturucusunu kullanıma sunma (Ib98d6, b/288494724)- Çizim komutlarını yakalamada geliştirici tanımlı esneklik sağlamak için
GraphicsLayer
API'si kullanıma sunuldu. Bu komutlar başka yerlerde çizim yapmak ve sonuca farklı görsel efektler uygulamak için kullanılabilir. (I80245, b/288494724) - Belirli bir dikdörtgen alanla kaplı metin aralığını döndüren
Paragraph#getRangeForRect
işlevini kullanıma sunuyoruz. (Iee516, b/325660505) BasicText
bağımsız değişkeniyleonLinkClicked
deneysel geçersiz kılma işlemi kaldırıldı. Gelecekte köprü desteği için bir yedek API sunulacaktır. (I107d5)
Hata Düzeltmeleri
- Çizim komutlarının isteğe bağlı birleştirme görsel efektleri ve dönüşümleriyle yakalanmasını ve yeniden oynatılmasını desteklemek için
GraphicsLayer
expect/actual API tanımı eklendi.GraphicsLayer
örneklerinin oluşturulması ve yönetilmesi dahil olmak üzere grafik bağımlılıklarını içerenGraphicsContext
arayüzünü kullanıma sunuyoruz. (I4a8d6, b/288494724) - Odaklanmanın diğer görünümlerin arasına yerleştirilmiş bir
ComposeView
içinde takılı kalmasına neden olan 1D odaklanma aramasıyla ilgili birlikte çalışabilirlik sorunu düzeltildi. (I08fd4)
Harici Katkı (External Contribution)
LocalLifecycleOwner
, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzü dışında kullanılabilmesi için Compose kullanıcı arayüzündenlifecycle-runtime-compose
'ye taşındı. Katkısı için Jake Wharton'a teşekkür ederiz. (I6c41b, b/328263448)- Tüm önyargıya dayalı hizalama alt türlerinde önyargı kaydırma özelliklerini tutarlı bir şekilde kullanıma sunun. (I69f0f, b/328088992)
Sürüm 1.7.0-alpha04
6 Mart 2024
androidx.compose.ui:ui-*:1.7.0-alpha04
iptal edilir. 1.7.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Android U sürümünden sonraki cihazlarda BasicTextField2 için ekran kalemiyle el yazısı özelliğini destekleyin. (I002e4)
- Bu CL'de, Compose'da kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için
GetScrollViewportLength
semantik işlemini ekliyoruz. Bu değişiklik listesi, söz konusu özelliğin Foundation Scrollable Lists'te kullanımını da uygular. (Ic5fa2) FocusRequester.createRefs
artık kararlı (I4d92c, b/261436820)- Değiştirici düğümlerin, kompozisyon yerelini okumadan mevcut Android
View
sürümünü almasına olanak tanıyanDelegatableNode.requireView()
tanıtıldı. (I40768) - Bir yolun yönünü tersine çevirmek için yeni API
Path.reverse()
(I36348) hintLocales
,KeyboardOptions
'ye eklenerekTextFields
'ye belirli yerel ayarlara sahip IME'lere ipucu verme ve tercih edilen bir dili önceden ayarlama özelliği kazandırıldı.- Temel platform nesnesini (ör.
java.util.Locale
) döndürenplatformLocale
özelliğiniLocale
'den kullanıma sunun. (I921c6)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.ui:ui-*:1.7.0-alpha03
iptal edilir. 1.7.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Maksimum satır sayısı ve taşma özellikleriyle
ContextualFlowRow
ve gelişmişFlowRow
/Column
ile tanışın. DeneyselFlowRow
veFlowColumn
özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artık maxLines ve overflow desteğinin yanı sıraContextualFlowRow
veContextualFlowColumn
özelliklerini de içeriyor. Bu güncelleme, performansı en iyi hale getiren bileşenler sağlamak için tasarlanmıştır.ContextualFlow*
, küçük birmaxLines
yapılandırması ve dinamik +N daha fazla göster düğmeleri kullanan çok sayıda öğe için idealdir.FlowRow
veFlowColumn
ise 100'den az öğe içeren az sayıda öğe için idealdir. Önemli: Tüm öğelerin çapraz eksen maksimum değerine uyup uymadığından bağımsız olarak oluşturulduğuFlowRow
veyaFlowColumn
'daki mevcut davranışı korumak için başlatma sırasındaoverflow
değeriniFlowRowOverflow.Visible
veyaFlowColumnOverflow.Visible
olarak ayarlayın. Bu yeni özelliklerin nasıl kullanıldığına dair örnekler içinContextualFlowRowSample
veFlowRowSample
sayfalarını inceleyin. (Ib9135, b/293577082) - İzin verilen maksimum karakter sayısını filtreleyen metin alanlarında ayarlanması gereken
maxTextLength
semantik özelliğini ekleyin. (I24d9f, b/170648072) Modifier.inspectable
sarmalayıcısının desteği sonlandırıldı. Bu API, değiştiricinizde gerekenden daha fazla geçersiz kılma işlemi oluşturacağından artık kullanılması önerilmemektedir. Değiştirici özelliklerini araçlara göstermek isteyen geliştiricilerininspectableProperties()
yönteminiModifierNodeElement
üzerinde uygulaması önerilir. (Ib3236)PopupProperties
için yeni oluşturucu. Bu oluşturucu,WindowManager.LayoutParams
işaretleri üzerinde tam kontrol sağlar. (Ibb33e, b/312485503)DelegatableNode.requireLayoutCoordinates()
işlevini,Modifier.Node
konumunun mevcutLayoutCoordinates
değerini almak içinonPlaced
değerini geçersiz kılmaya ve koordinatları bir mülkte saklamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak kullanıma sunduk. (Ia8657)DelegatableNode.currentLayoutCoordinates
işlevini,Modifier.Node
konumunun mevcutLayoutCoordinates
değerini almak içinonPlaced
değerini geçersiz kılmaya ve koordinatları bir mülkte saklamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak kullanıma sunduk. (Iaebaa)BasicTextField2
veandroidx.compose.foundation.text2
paketi altındaki ilgili API'lerandroidx.compose.foundation.text
paketine taşınıyor. (I9f635)- Açık bir değiştirici düğümünde özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir
ApproachLayoutModifierNode
API'si eklendi. Ayrıca, hedefi oluşturma sırasında bilinmeyen animasyonlar için yeni bir deneyselDeferredTargetAnimation
API eklendi. (I60745) - Bir yolun yönünü sorgulamak ve bir
Path
'dan konturları çıkarmak için yeniPath
API'leri. (I63d04) Path
öğesinin belirli bir noktayı içerip içermediğini kontrol etmek içinPathHitTest
vePath.contains(Offset)
işlevleri eklendi. (I3b218)TextLayoutResult
artıkgetLineBaseline(lineIndex)
yöntemini kullanıma sunuyor. Bu sayede, mevcut kolaylık özelliklerine (firstBaseline
velastBaseline
) ek olarak metnin rastgele bir satırının temel çizgisi okunabilir. (Ide4e8, b/237428541)- Yalnızca iki
AnnotatedStrings
ek açıklamasını karşılaştırma yöntemi eklendi. (I32659)
Hata Düzeltmeleri
SemanticsPropertyReceiver.performImeAction
veSemanticsActions.PerformImeAction
ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Id0528, b/322269946)
Sürüm 1.7.0-alpha02
7 Şubat 2024
androidx.compose.ui:ui-*:1.7.0-alpha02
iptal edilir. 1.7.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
SemanticsPropertyReceiver.performImeAction
ile ilgili ikili uyumluluk sorunu düzeltildi. (I65865, b/322269946)PopupProperties
oluşturucusu artık deneysel değildir.usePlatformDefaultWidth
(I8f8d2)- Zaman aşımı mesajına dahil edilecek koşulun dize açıklamasını alan
ComposeTestRule.waitUntil
aşırı yüklemesi eklendi. (I9413e) - Aynı değiştirici zincirine eklenen semantik özelliklerin kaldırılması için yeni semantik API
unset()
. Yeni anlam bilimi özelliğiisOpaque
. (I8c583, b/317966058, b/246056649) originalEventPosition
,PointerInputChange
genel API'sindeki kopyalama yönteminden kaldırıldı. (I7bead)
Hata Düzeltmeleri
- Sekme olmayan ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanabilmesine neden olan erişilebilirlik hatası düzeltildi. (I2181c)
VelocityTracker
artık varsayılan olarak puan ekleme düzeltmesine sahip olacak. Sorun olması durumundaVelocityTrackerAddPointsFix
değeri false olarak ayarlanarak düzeltme devre dışı bırakılabilir. (Ib3877, b/269487059)TextStyle
veParagraphStyle
'de geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)
Harici Katkı (External Contribution)
- Platforma özgü parametreler içermeyen yeni bir
DialogProperties
oluşturucu eklendi. (I45829) - Platforma özgü parametreler içermeyen yeni bir
PopupProperties
oluşturucu eklendi. (I9a038)
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.ui:ui-*:1.7.0-alpha01
iptal edilir. 1.7.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Resim gibi rastgele içerikleri desteklemek için
ClipEntry
veClipMetadata
eklenerekClipboardManager
genişletildi. - Test edilen içeriğin davranışının yerel olarak geçersiz kılınmasına izin vermek için
DeviceConfigurationOverride
API'yiui-test
'ye ekler. Örneğin, mevcut bir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema belirtmek için kullanılır.
Sürüm 1.6
Sürüm 1.6.8
12 Haziran 2024
androidx.compose.ui:ui-*:1.6.8
iptal edilir. 1.6.8 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yazı tipi ölçeği, tanımlanan en düşük tablodan küçük olduğunda yazı tipi ölçeklendirmesindeki tutarsızlıklar düzeltildi. Bu durumda, yazı tipi boyutunun ölçekler arttıkça monoton bir şekilde artması için artık 1x doğrusal ölçek ile tanımlanan en düşük tablo arasında enterpolasyon yapıyoruz. (Icbae3)
Sürüm 1.6.7
1 Mayıs 2024
androidx.compose.ui:ui-*:1.6.7
iptal edilir. 1.6.7 sürümü bu commit'leri içerir.
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.ui:ui-*:1.6.6
iptal edilir. 1.6.6 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Nadir görülen
BasicTextField
kilitlenme sorunu düzeltildi.
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.ui:ui-*:1.6.5
iptal edilir. 1.6.5 sürümü bu commit'leri içerir.
Sürüm 1.6.4
20 Mart 2024
androidx.compose.ui:ui-*:1.6.4
iptal edilir. 1.6.4 sürümü bu commit'leri içerir.
Sürüm 1.6.3
6 Mart 2024
androidx.compose.ui:ui-*:1.6.3
iptal edilir. 1.6.3 sürümü bu commit'leri içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.ui:ui-*:1.6.2
iptal edilir. 1.6.2 sürümü şu commit'leri içerir.
Sürüm 1.6.1
7 Şubat 2024'te
androidx.compose.ui:ui-*:1.6.1
yayınlandı. 1.6.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
SemanticsPropertyReceiver.performImeAction
veSemanticsActions.PerformImeAction
ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Ie0bb2, b/322269946)- Düzenler artık bir düzen anormal derecede büyük bir boyut döndürdüğünde ölçüm sırasında hata veriyor. Bu tür bir hata genellikle ölçüm,
Constraints.Infinity
kontrolü yapmadan doğrudan maksimum kısıtlamaları kullandığında oluşur. Bu kontrol, geliştiricilerin yanlış boyuta sahip düzenlerdeki sorunları, bu boyutu içeren düzenlerdeki sorunlardan daha kolay bulmasına yardımcı olur. (I339a9)
Sürüm 1.6.0
24 Ocak 2024
androidx.compose.ui:ui-*:1.6.0
iptal edilir. 1.6.0 sürümü şu commit'leri içerir.
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.ui:ui-*:1.6.0-rc01
iptal edilir. 1.6.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Ek yeniden oluşturmaları en aza indirerek performansı artırmak için optimize edilmiş vektör grafikleri uygulaması.
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.ui:ui-*:1.6.0-beta03
iptal edilir. 1.6.0-beta03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Artık bir
LayoutCoordinates
, düğüm ayrılmadan ayrılabilir. Compose Layout Inspector'da (If693) buna karşı koruma
Hata Düzeltmeleri
PlatformImeOptions
artık arayüz yerine somut bir sınıf. (If40a4)LocalSoftwareKeyboardController
veLocalTextInputService
her kök yeniden oluşturulduğunda yeni değerler sağladığı için oluşan ek aşağı akış yeniden oluşturma işlemleri düzeltildi. (I42190, b/310510985)
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta02
iptal edilir. 1.6.0-beta02 sürümü şu commit'leri içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta01
iptal edilir. 1.6.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
DragAndDropTarget
değiştiricisi artık açıkçaDragAndDropTarget
alıyor ve sürükle bırak oturumunu etkinleştirmek için bir lambda'ya sahip. ArtıkDragAndDropModifierNode
için iki fabrika işlevi var. Biri transfer almak, diğeri ise veri aktarmak için (I69481)maximumFlingVelocity
, Float olarak gösterilecek şekilde güncellendi.maximumFlingVelocity
birliği hakkında daha net bilgi verecek şekilde güncellenen belgeler. (I8adc7)DragAndDropModifierNode
fabrikasındakionDragAndDropStart
,acceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumundan kabul etmek içindragAndDropTarget
değiştiricisine eklendi. Bu lambda, sürükle ve bırakma oturumuyla ilgileniyorsanız geçerli birDragAndDropTarget
döndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'ların yerini bu işlev aldı. Sürükle ve bırak oturumlarından veri almak için birDragAndDropTarget
fabrika işlevi eklendi (Iebf3a).DragAndDropInfo
türü kaldırıldı.DragAndDropModifierNode.drag
artıktransferData
, dekorasyon boyutu ve sürükleme dekorasyonuDrawScope
lambda'sı için parametreler alıyorDragAndDropTarget
tek bir soyut yöntem olmak yerine belirli sürükle ve bırak etkinlikleri için yöntemlere sahiptir.DragAndDropModifierNode
için fabrika işlevindekionDragAndDropEvent
,DragAndDropTarget
öğesinin yalnızca belirli bir sürükle ve bırakma oturumu için geçerli olduğunu daha iyi belirtmek amacıylaonDragAndDropStart
olarak yeniden adlandırıldı.DragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
,establishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)Dolaşılabilir düğüm API adlarını daha anlaşılır hale getirir. (Ia4474)
OriginalText
yerineTextSubstitution
koyun. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
,runTextInputSession
olarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere saklanan
SubcomposeLayout
öğesinin alt öğeleri (ve buna dayalıLazyColumn
gibi düzenler) devre dışı olarak kabul edilir. Bu tür düğümleri test etmek için yeni birassertIsDeactivated()
test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)FocusDirection.In
veFocusDirection.Out
kaldırıldı. Bunun yerineFocusDirection.Enter
veFocusDirection.Exit
kullanın (I2f660)Materyal
SwipeToReveal
API'leri (kartlar ve çip için) artık bu yuvaları oluşturmak üzere veri sınıfı tabanlı örnekler yerine yuva tabanlı bir API'ye (Compose tarafından önerildiği gibi) dayanıyor. Bu, önemli bir değişikliktir. Lütfen yeni API'nin nasıl kullanılacağına ilişkin örnekler için demoya ve örnek koda bakın. (Ia8943)FontStyle(int)
oluşturucusunun desteği sonlandırıldı. Bunun yerineFontStyle.Normal
veyaFontStyle.Italic
kullanın. (I66610)FontScalable
arayüzü,FontScaling
olarak yeniden adlandırıldı (Ie804a)
Hata Düzeltmeleri
SoftwareKeyboardController.show()
, metin düzenleyici odaklanmamışsa artık yazılım klavyesini göstermeyecek. (I2165a, b/301477279)- Aynı Compose View'da Down etkinliği almamış tuşlar için donanım tuşu Up etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
ArcLine
'da Sweep Gradient için oluşturucu desteği eklendi. (I4d5bb)PageSize.Fixed
için equals ve hashcode yöntemlerini uygulayın. (Ie3ede, b/300134276)- Pencere iç kenarı değişikliğiyle ilgili ikili uyumluluk sorununu düzeltme (Iee695)
- Mikro karşılaştırmalar, Material3 Chip/Button için materyal çekirdek katmanının kaldırıldığında daha iyi performans gösterdiğini ortaya koyuyor. (I55555)
TestDispatcher
s, Compose testlerineeffectContext
olarak iletildiğinde artık testi ve çerçeve saatlerini oluşturmak için kullanılacak. (Ia7178)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha08
iptal edilir. 1.6.0-alpha08 sürümü şu commit'leri içerir.
API Değişiklikleri
Modifier.dragAndDrawSource
işlevindekionDrawDragShadow
lambda'sının adıdrawDragDecoration
olarak,DragAndDropInfo
işlevindeki boyut parametresinin adı isedragDecorationSize
olarak değiştirildi. (Id0e30, b/303904810)- Eşleşen bir düğümün görünür olup olmadığını kontrol etmek için
SemanticsNodeInteraction.isDisplayed()
veSemanticsNodeInteraction.isNotDisplayed()
işlevlerini kullanın. (I2c196, b/302100809) null
yerineParagraphTextStyle
'ınTextAlign
,TextDirection
,Hyphens
veLineBreak
alanları için özel birUnspecified
değeri kullanıma sunuldu. Bu sınıflar satır içi sınıflar olduğundan, null değer atanabilir olanı Unspecified ile değiştirerek temel tür kutulamayı önleriz.TextStyle
ve Paragraph stilindeki oluşturucular, alıcılar ve diğer yöntemler, belirtilen parametreleri null olmayan türler olarak kabul edecek şekilde güncellendi. (I4197e, b/299490814)- XML'den
GoogleFont
okumak içinGoogleFont
aşırı yüklemesi ekleyin. (If8f59) LoremIpsum
PreviewParameterProvider
sınıfını açık sınıf yaptı. (I41bf5, b/266918816, b/300116360)
Hata Düzeltmeleri
FontFamilyResolver
artık önbellek yönetimi eş yordamları içinDispatchers.Main
kullanıyor. (Ie8dd9)AndroidViewBinding
artıkcommitNow
kullanarak (öncekicommit
yerine) düzeninizeFragmentContainerView
ekleyerek şişirilmişFragment
örneklerinionRelease
'nin bir parçası olarak eşzamanlı şekilde kaldırıyor. Böylece, Canlı Düzenleme'nin değişiklikler üzerine kompozisyonu değiştirme yöntemiyle ilgili sorunlar düzeltiliyor. (I58fbf)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha07
iptal edilir. 1.6.0-alpha07 sürümü şu commit'leri içerir.
API Değişiklikleri
- Özel metin düzenleyiciler için test yazmaya yönelik
PlatformTextInputMethodTestOverride
işlevi kullanıma sunuldu. (Id159b) - Sürükle ve bırakma oturumlarını başlatmak için
dragAndDropSource
değiştiricisini, sürükle ve bırakma oturumlarından almak içindragAndDropTarget
değiştiricisini ekler. (Ib7828, b/286038936) - Tahsisleri önleyen
ColorList
veColorSet
koleksiyonları eklendi. (I744bd) - Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için
DisableNonLinearFontScalingInCompose
geçici işareti eklendi. Temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = true
ayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacak. (Ic9486)
Hata Düzeltmeleri
- Optimize edilmiş XML vektör çekilebilir öğeleri ayrıştırması. (Ibb015)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha06
iptal edilir. 1.6.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Material Icons'da ek optimizasyonlar yapıldı. (I3e08d)
- Benzer düğümleri bulmak için değiştirici ağacında yukarı/aşağı hareket etme özelliği eklenir. (I2d234)
onRestoreFailed()
geri çağırması,focusRestorer()
değiştiricisine eklendi (Ie1d43)ColorInt
,FloatRange
,IntRange
,Size
ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (Id65c8, b/290950582)showSystemUi=true
öğesiniPreviewScreenSizes
tanımına ekleyin (Ib61d3)
Davranış Değişiklikleri
- Compose artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirme kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'ün üzerindeyken küçük metinlerin boyutu normal şekilde büyür ancak zaten büyük olan metinlerin boyutu yalnızca biraz büyür. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yüksekliğe orantılı kalacak şekilde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar'a bakın. (I11518)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha05
iptal edilir. 1.6.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
AndroidComposeViewAccessibilityDelegateCompat
'da içerik yakalamayı etkinleştirin. (Ib2969)ScrollView
veRecyclerView
gibi View bileşenlerindeki fırlatma hızlarıViewConfiguration.ScaledMaximumFlingVelocity
ile sınırlanır. Compose artıkmaximumFlingVelocity
'ın kendi sürümünü içeriyor. Bu sürüm artıkDraggable
için geçerli. (Ibf974)- Platform sürükle ve bırakma API'lerini desteklemek için ilk iskeleleri ekler. (If84ce)
deviceId
öğesiniRotaryScrollEvent
içine ekleyin (Iba3bf)- Daha yeni cihazları (Ib25b4) içerecek şekilde güncellenen
ui-tooling
Devices API
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha04
iptal edilir. 1.6.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
ReusableComposition
'ı devre dışı bırakma yöntemi eklendi. Bu yöntem, gözlemleri kaldırır ancak düğümleri yerinde tutar. Devre dışı bırakılan kompozisyon,setContent
aranarak tekrar etkinleştirilebilir. (Ib7f31)- Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için
ReusableComposition
arayüzü eklendi. (I812d1, b/252846775) Modifier.focusGroup
, kararlı API'lere yükseltildi. (I7ffa3)ColorInt
,FloatRange
,IntRange
,Size
ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (I70487, b/290950582)- Parametrelerin daha iyi incelenebilmesi için
ColorFilter
API'si somut alt sınıf türlerine sahip olacak şekilde güncellendi. (I5fe29) - Kullanıcı arayüzü önizlemeleri için kullanılabilecek geçerli Wear cihazlarını listelemek üzere wear-tooling-preview kitaplığını kullanıma sunma (Ib036e)
- Yoğunluk arayüzünün yazı tipi ölçeklendirme bölümünü işlemek için
FontScalable
arayüzünü oluşturdu. (I2cf3f)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha03
iptal edilir. 1.6.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Giriş ve çıkış animasyonu sırasında içeriği, animasyonlu kapsayıcının boyutuna göre ölçeklendiren yeni bir giriş/çıkış geçişi türü.
LookaheadScope
Composable işlevi ve arayüzü artık kararlı. (Ifb2ce) privateImeOptions
yapılandırması için destek eklendi (Idb772)
Hata Düzeltmeleri
PopupPositionProvider.calculatePosition
, hesaplamada okunan durum değiştiğinde artık pop-up'ın konumunu otomatik olarak güncelleyecek. (I676a1, b/292257547)readOnly
doğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanılmış durumdaykenreadOnly
değeri doğru'dan yanlış'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)- Kullanıcı arayüzü testinde genel onayların kapsamı genişletildi. (I1f90d)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.ui:ui-*:1.6.0-alpha02
iptal edilir. 1.6.0-alpha02 sürümünde şu commit'ler yer alıyor.
API Değişiklikleri
- Composition'ı uygulayanlar tarafından uygulanabilen bir hizmet bulucu arayüzü eklendi. Bu arayüz, Composition'ın, başka bir Composition temsilcisine temsilci atayan bir Composition uygulamasını, hizmet aramalarını orijinal Composition'a temsilci atayacak şekilde kullanmasına olanak tanır. Bu işlev doğrudan çağrılmamalıdır ve derleyicinin sarmalanmış sürümlerinde (ör. UI modülü) bulunabilen, çalışma zamanında deneysel API'ler oluşturmayı etkinleştirmek için kullanılır. (I296b9)
PlatformTextInput*
API tamamen yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)SoftwareKeyboardController
veLocalSoftwareKeyboardController
artık deneysel değil.LocalSoftwareKeyboardController
artık uygun birCompositionLocal
. (I4c364)LookaheadLayout
veLookaheadLayoutScope
birkaç sürüm boyunca kullanımdan kaldırılmıştı ve artık tamamen kaldırıldı. Yerine kullanılan API'ler, herhangi bir düzenle çalışabilenLookaheadScope
API'leridir. (I12ac3)- Testlerde odaklanma isteğinde bulunmak için daha kolay ve bulunabilir bir yöntem olarak
SemanticsNodeInteraction.requestFocus
eklendi. (Ie8722) - Gelecekte test çerçeveleri tarafından kullanılmak üzere genel onayları kaydetmek için deneysel API'ler eklendi. (I12d77)
Hata Düzeltmeleri
AndroidView
'nınupdate
geri çağırmasının ilk çağrılması artıkAndroidView
'yı tanıtan kompozisyon uygulandığında çalışmak yerine görünüm eklenene kadar ertelenecek. Bu düzeltme, okuduğu bir durum bir efekt tarafından hemen değiştirilirseupdate
geri çağırmasının geçersiz kılınmamasıyla ilgili hatayı düzeltir. (Ie9438, b/291094055)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.ui:ui-*:1.6.0-alpha01
iptal edilir. 1.6.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
LazyList
sürümünde ileri bakma özelliği desteklenir. Bu, ileriye bakma geçişindekiLazyList
öğesinin tüm animasyonları (ör.öğe yerleştirme animasyonu,AnimatedVisibility
vb.) atlamasına ve tüm alt öğeler için ileriye bakma boyutunu ve konumunu hesaplamasına olanak tanır. Önceden bakma pasından sonra,LazyList
çocukları, önceden bakma pasında görüldüğü gibi gerçekliğe göre bağımsız olarak animasyon yapabilir.
Davranış değişikliği: includeFontPadding, Compose'da artık varsayılan olarak false değerini alıyor
Oluşturma'da includeFontPadding
artık varsayılan olarak false değerini alıyor (21d806).
includeFontPadding
, metin taban çizgilerinin üstüne veya altına uzayabilecek karakterleri barındırmak için metnin ilk satırının ve son satırının üstüne ek dolgu eklenip eklenmeyeceğini kontrol eden eski bir özelliktir.
Bu Compose sürümünü güncellemek, gösterdiğiniz her metnin ilk ve son satırının üzerindeki ekstra dolguyu kaldırarak kullanıcı arayüzünüzdeki tüm metinlerin oluşturulma şeklini değiştirir.
Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak değişiklikler minimum düzeyde olmalıdır. Ancak aşağıdaki gibi engelleyici durumlarla karşılaşabilirsiniz: - Bozuk ekran görüntüsü testleri. Gerekirse kullanıcı arayüzünü düzeltin ve referans resimleri yeniden oluşturun. - Metin biraz yanlış hizalanmış. Özel negatif dolguları kaldırın veya gerekirse dolgu ekleyin.
Her metin için PlatformTextStyle
kullanarak includeFontPadding
özelliğini etkinleştirebilirsiniz:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
Materyal stillerinizi yapılandırarak tüm metinlerinizde includeFontPadding
özelliğini etkinleştirebilirsiniz. Parametre adlarının M2 ile M3 arasında farklılık göstereceğini unutmayın.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
Compose includeFontPadding
hakkında daha fazla bilgiyi geliştirici belgelerinde ve bu blog yayınında bulabilirsiniz.
Bu değişiklikle ilgili sorunlar/hatalarla karşılaşırsanız sorun izleyiciyi kullanarak hata bildirin.
API Değişiklikleri
InputConnection#requestCursorUpdates
desteği (I0c69b)FocusRequester.saveFocusedChild
veFocusRequester.restoreFocusedChild
eklendi (Ic557e, b/272302679, b/275157318)- Yüklenemeyen öğe yolunun açıklamasıyla birlikte, bit eşlem öğeleri yüklemeye çalışırken oluşturulan hata nesnelerini sarmak için
ResourceResolutionException
türü ekleyin. (I19f44, b/230166331, b/278424788) - Performans ve bellek ayırmaları için optimize edilmiş erişilebilirlik. (Iede48)
- Metin çevirisini desteklemek için semantik özellikler ve işlemler eklendi. (I4a6bc)
- Mevcut ölçüm geçişinin ileriye dönük bir geçiş olup olmadığını belirtmek için
IntrinsincMeasureScope
ve uygulamalarındaki (ör.MeasureScope
) yeni özellik. (I7a812) - Alternatif yoğunluk/düzen yönü ve boyutuyla farklı bir tuvalde yeniden hedefleme oluşturma özelliğini sunmak için
DrawScope
API'si güncellendi. DrawContext
, yoğunluk ve düzen yönünün yapılandırılmasını destekleyecek şekilde güncellendi. Ayrıca tuvalin yapılandırılması da sağlandı. (Ie1f9b, b/225408150)- Karakter sınırlayıcı kutularını hesaplamak için
Paragraph#fillBoundingBoxes
eklendi. (If30ee) - Bir dizi ortak
MultiPreviews
eklendi (Ia5a27)
Hata Düzeltmeleri
FocusTargetModifierNode
oluşturmak için kullanılabilecek bir arayüz eklendi.FocusTarget
(I9790e)fallback*
parametreleri,TextMeasurer
oluşturucusundadefault*
olarak yeniden adlandırıldı. (I940a5)SemanticsPropertyReceiver.performImeAction
,onImeAction
olarak,SemanticsActions.PerformImeAction
iseOnImeAction
olarak yeniden adlandırıldı. (I8e841)- İç içe kaydırmada (özellikle
NestedScrollConnection
) fareyle kaydırma ve sürükleme işlemlerini ayırt etmek için tekerlek ekler. (Ie57e4) - Döndürülen nesne orijinal
android.graphics.Paint
'yi (I22b4c) sardığı içintoComposePaint
yerineasComposePaint
API'si eklendi. SemanticsProperties.imeAction
işlevini kullanımdan kaldırın veSemanticsActions.performImeAction
için yeni bir parametreyle değiştirin. (I4a587)- Fareyle seçim desteği eklendi. Dokunmaya dayalı seçim, kelime bazında genişler ve karakter bazında daralır. (Ic0c6c, b/180639271)
- Sınırların dışındaki ofsetler için
AssertionError
istisnası oluşturanParagraph
yöntemleri artıkMultiParagraph
gibiIllegalArgumentException
istisnası oluşturuyor. (I549d3, b/243338896)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.ui:ui-*:1.5.4
iptal edilir. 1.5.4 sürümü şu commit'leri içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.ui:ui-*:1.5.3
iptal edilir. 1.5.3 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- (b/301209788)
TextField
, odaklanma ve Korece giriş yapma sırasında bazen önceki komutları yanlış uygulayarak karakter kaybına neden oluyordu.
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.ui:ui-*:1.5.2
iptal edilir. 1.5.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Erişilebilirlik kaydırma API'sine arka plan iş parçacığından erişildiğinde yaşanan kilitlenmeler için geçici çözüm eklendi.
- Bağlı olmayan düğümlerin semantik ağacına eklenmesi düzeltildi.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.ui:ui-*:1.5.1
iptal edilir. 1.5.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
readOnly
doğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanılmış durumdaykenreadOnly
değeri doğru'dan yanlış'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.ui:ui-*:1.5.0
iptal edilir. 1.5.0 sürümü şu commit'leri içerir.
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.ui:ui-*:1.5.0-rc01
iptal edilir. 1.5.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
SubcomposeLayout
,movableContentOf()
içinde kullanıldığında meydana gelen kilitlenme sorunu düzeltildi.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta03
iptal edilir. 1.5.0-beta03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Özel bir FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (Ifb1d6)
usePlatformDefaultWidth=true
tuşuna basıldığında alt pencerenin beklendiği gibi yeniden boyutlandırılmamasına neden olabilen Dialog ve Popup composable'larıyla ilgili sorun düzeltildi. (I112ee)
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta02
iptal edilir. 1.5.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Compose'da kullanılacak bir
android.graphics.Paint
örneğinin tüketilmesini sağlamak içinasComposePaint
API'si eklendi.
Hata Düzeltmeleri
- Döndürülen nesne orijinal
android.graphics.Paint
'yi (I22b4c) sardığı içintoComposePaint
yerineasComposePaint
API'si eklendi.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-beta01
iptal edilir. 1.5.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Yeniden oluşturma, renk animasyonları ve
AndroidComposeView
(Ib2bfa) işlemlerinde ayrılan alanlar kaldırıldı. - Yetki vermeye izin vermek için yardımcı işlevi
CacheDrawModifierNode()
ekler (Icf8f9) isLookingAhead
özelliğini kullanıma sunuyoruz. Bu özelliğeMeasureScope
üzerinden erişerek ileriye dönük sonuçları gözlemleyebilir ve isterseniz ana geçişi etkileyebilirsiniz. (Ibf4c3)- Yeni semantik özellik
traversalIndex
,TalkBack
geçişinde düğümleri yeniden sıralamak için kullanılan bir kayan sayıdır (daha düşük değerler önce gelir). (I9a81b, b/186443263) - Semantik mülk
isContainer
,isTraversalGroup
olarak yeniden adlandırılıyor (I121f6) ColorProducer
artıkproduce
yerineoperator fun invoke
(I4a9a2)- Yol nesnelerine çeviri/ölçeklendirme/döndürme dönüşümleri uygulamak için
Path
transform API'yi ekleyin. (I23434, b/233772232) ColorProducer
yöntemineproduce
adı verilir. (I78bde)toFrameworkColorSpace
dosyasınıtoAndroidColorSpace
olarak yeniden adlandırın (I4f547)ColorLambda
öğesiniColorProducer
olarak yeniden adlandırın. (I73b1a)- Android ve Compose renk alanı türleri arasında dönüştürme yapmak için API'ler kullanıma sunulur. (Ie7db4, b/279979665)
- Metin renginin verimli bir şekilde animasyonlandırılmasına veya ayarlanmasına olanak tanımak için
BasicText
öğesine bir renk parametresi eklendi. (Iffd88, b/246961787) TextRange.constrain
,TextRange.coerceIn
olarak yeniden adlandırıldı. (I31be2)- Tam parametre listesiyle optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
gibi birçok metin API'si kararlı hale getirildi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği yeniden etkinleştirildi. Başlangıçta bu alanı kaldırmayı planlamıştık ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, alanın kullanımdan kaldırılması kaldırılıyor (I98e96, b/277703184).- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) AnnotatedString
içindekiUrlAnnotation
lar artıkTalkBack
gibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) LineHeightStyle.Alignment(topRatio)
oluşturucusu, kararlı API'ye yükseltildi. (I79c32, b/261565383)TextMeasurer
ve ilgili API'ler artık deneysel değildir. (I74647, b/261581753)- Metin düzenleyici düğümlerinde IME işlemini çağırmak için
PerformImeAction
semantik işlemi eklendi. (Ic606f, b/269633506) PlatformTextInput
API'ler artık Android'de deneysel değildir. (I668eb)Enum.valueOf
için değer parametre adı değiştirildi (Ia9b89)- valueOf enum değerinden (I818fe) daha fazla istisna oluşturuldu
- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni bir düşük düzeyli
PlatformTextInputAdapter
API'si kullanıma sunuldu. (I58df4) - Canvas'ta metin çizerken farklı karıştırma algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508) Font.MaximumAsyncTimeout
öğesiniFont.MaximumAsyncTimeoutMillis
olarak yeniden adlandırın. Yalnızca yeniden adlandırma. (I07af5)@Preview
referans cihazlarının güncellenen DPI değerleri (Id6151, b/254528382)- Metin fırçasının verimli bir şekilde animasyonlandırılmasına veya ayarlanmasına olanak tanımak için
BasicText
'yebrush
,alpha
parametrelerini ekleyin. - :ui:ui-unit içinde Float, Double, Long, Int, Short için kutusuz lambda türlerini tanımlayın (I6f18d, b/246961787).
Hata Düzeltmeleri
- İşaretçi hızı izlemede birden fazla ayırma kaldırıldı (I26bae)
- Düzen ve işaretçi girişi yönetiminde azaltılmış ayırmalar (I5333a)
- Vektör bellek kullanımını ve ilk karelerin oluşturulmasını optimize etme (I2f3c6)
- Canvas ile çizgi ve nokta çizerken tahsisler kaldırıldı (I9f535)
AndroidFont.fontVariationSettings
(I7d9e2) için doküman ekleme
Harici Katkı (External Contribution)
- İyileştirilmiş performans ve Vector API'lerinde daha az yer ayırma (I906cb)
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-alpha04
iptal edilir. 1.5.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
Modifier.Node
Temsilci atama ile ilgili iyileştirmeler BirDelegatingNode
örneğinden diğerModifier.Node
örneklerine temsilci atama özelliği geliştirildi. Bu işlem,delegate
veundelegate
API'leri ile yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin yetki verilen düğüme açıkça yetki verilmesi gerekiyordu. Bu değişiklikten sonra,DelegatingNode
açıkça geçersiz kılmadığı sürece düğüm arayüzleri örtülü olarak devredilecektir. (67352bc)
API Değişiklikleri
- Yetki verilebilecek bir
NestedScroll Modifier.Node
olanNestedScrollModifierNode
'ı kullanıma sunun. (I69513) AndroidViewBinding
composable'ınaonReset
veonRelease
parametreleri eklendi. Bu parametreler,AndroidView
composable'ını yansıtıyor veViewBinding
ile View'un yeniden kullanılmasını destekliyor. (I00b1e, b/276802519)- Sık sık yol manipülasyonu yapılan kullanım alanlarında daha hızlı yeniden kullanım için geri sarma işlemlerini desteklemek üzere Compose Path API güncellendi. (I7b797)
- Tam parametre listesiyle optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
gibi birçok metin API'si kararlı hale getirildi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği yeniden etkinleştirildi. Başlangıçta bu alanı kaldırmayı planlamıştık ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, alanın kullanımdan kaldırılması kaldırılıyor (I98e96, b/277703184).
Hata Düzeltmeleri
Dialog
composable'ı tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesiyle ilgili gerileme düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha03
iptal edilir. 1.5.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
LookaheadScope
'dekiSubcomposeLayout
için yeni varsayılan davranış: Koşullu yuvaları olmayanSubcomposeLayouts
(ör.TabRow
,Scaffold
,BoxWithConstraints
vb.) artık ileriye bakma animasyonlarıyla sorunsuz çalışıyor.
API Değişiklikleri
- Yeni varsayılan
intermediateMeasurePolicy
, ileriye dönük geçişteki ölçüm politikasını yeniden kullanarakScaffold
,TabRow
veBoxWithConstraints
gibi koşullu yuvalar içermeyenSubcomposeLayout
alt türlerinin varsayılan olarak ileriye dönük geçişle çalışmasına olanak tanır. (Id84c8) - Android penceresi için oluşturulan yeniden oluşturucu, artık
ON_STOP
bildirimi aldığında tüm kompozisyon yerine yalnızcawithFrameNanos
'a yapılan çağrıları engeller. Bu durumda, durdurulan etkinliklerle ilişkili pencereler veri değişiklikleri için yeniden oluşturulmaya devam eder ancak animasyonlar veyawithFrameNanos
'nın diğer tüm arayanları engellenir. (Id9e7f, b/240975572) motionEventSpy
sürümünü kararlı sürüme değiştirme (Ic5ec4, b/261560988)- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) - Geliştiricileri
includeFontPadding
ayarını false olarak değiştirmek ve test etmek için bu uyumluluk API'sini kullanmaya teşvik etmek amacıylaPlatformTextStyle.includeFontPadding
artık kullanımdan kaldırılmıyor. (I98e96, b/277703184)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha02
iptal edilir. 1.5.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Yeni
SubcomposeLayout
API: Öngörüye dayalı animasyonlar sırasında ölçü/düzen mantığını işlemek için ek bir ara ölçü politikası kullanır. (I017d3) - PointerInput artık geç yükleniyor ve daha iyi performans için Modifier.Node kullanıyor (küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
- Deneysel API'leri önemli etkinliklerle birlikte kararlı hale getirir. (I9c7d8, b/261566839, b/261567368)
PointerInputChange
sürümünde deneysel API'leri kararlı API'lere dönüştürür. (I1b543, b/261560988, b/261565762, b/261565749)- Daha karmaşık
Modifier.Node
uygulamaları içinSuspendingPointerInputModifierNode
oluşturma yöntemi ekler. (Ic4933) AnnotatedString
içindekiUrlAnnotation
lar artıkTalkBack
gibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)- Donanım tuşları sanal klavyeye gönderilmeden önce bunları yakalamak için bir API eklendi (I4f4c6, b/186800395).
- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) - Metinle ilgili test işlemleri (ör.
performTextInput
) artık alana tıklamak yerine semantik işlem kullanılarak doğrudan odaklanma isteğinde bulunacak. (I6ed05)
Hata Düzeltmeleri
- Metin testi işlemleri için artık metin alanlarının etkinleştirilmesi gerekiyor. (Iab328)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.ui:ui-*:1.5.0-alpha01
iptal edilir. 1.5.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Modifier.intermediateLayout artık açık bir LookaheadScope gerektirmiyor. intermediateLayout'taki ölçü bloğunun alıcısı olarak IntermediateMeasureScope vardır. Bu kapsam, uygun CoroutineScope, LookaheadScope ve MeasureScope sağlar.(Ibe2e5)
- LookaheadLayout, artık Layout olmayan LookaheadScope ile değiştirildi. Bu sayede, LookaheadScope'taki alt içeriklerin doğrudan üst öğenin MeasurePolicy'si tarafından kontrol edilmesine olanak tanınır. (Ibe2e5)
- Modifier.Nodes'un eşzamanlı yordamları başlatmasına izin vermek için
Modifier.Node#coroutineScope
ekler. (I76ef9) - CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes'un CompositionLocals'ı okumasına izin verin. (Ib44df)
- @Deprecated sınıfının özelliğe yayılması. (I882d1)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.ui:ui-*:1.4.3
iptal edilir. 1.4.3 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
AndroidView
simgesinin belirli değiştiricilerle kullanıldığında doğru şekilde yerleştirilmemesine neden olan sorun düzeltildi. (I4dc77, b/274797771)- 2D Odak Arama'da
DropDown
menülerini (b/276811828) etkileyen bir hata düzeltildi. - Lambda ilk kez çağrıldığında yalnızca giriş/çıkış bloğunu çalıştıran özel odak giriş/çıkış özelliklerindeki hata düzeltildi (b/277234245).
- Odak sisteminde, okuma sırasında kilitlenmeye neden olan bir gerileme düzeltildi
focusProperties
. (b/271324781, b/274897776)
Sürüm 1.4.2
19 Nisan 2023
androidx.compose.ui:ui-*:1.4.2
iptal edilir. 1.4.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
AndroidView
öğesinin değiştiricilerini doğru şekilde yeniden kullanmamasına ve bunun sonucunda beklenmeyen davranışlar ve kilitlenmeler yaşanmasına neden olan sorun düzeltildi. (Ib67ee, b/275919849)Dialog
composable'ı tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan gerileme düzeltildi (I82551, b/262140644).
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.ui:ui-*:1.4.1
iptal edilir. 1.4.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
ParentDataModifier
'nınAndroidView
'ı etkilememesiyle ilgili sorun düzeltildi (b/274797771).
Sürüm 1.4.0
22 Mart 2023
androidx.compose.ui:ui-*:1.4.0
iptal edilir. 1.4.0 sürümü şu commit'leri içerir.
1.3.0 sürümünden beri yapılan önemli değişiklikler
- Lazy list öğelerinin sabitlenmesine olanak tanıyan yeni bir
PinnableContainer
API eklendi. Böylece, öğeler sınırların dışına kaydırıldığında kaldırılmaz. Örneğin,Modifier.focusable()
, şu anda odaklanılan öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010) - Odak sistemi, yeni deneysel
Modifier.Node
API'leri kullanılarak yeniden yazıldı. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - Yüzeylerde
IsContainer
semantik özelliği eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre geçiş sırasını belirleyen sonraki bir değişiklikte kullanılacaktır. (I63379) - Yeni bir erişilebilirlik rolü
DropdownList
eklendi. Bu,TalkBack
'nınandroid.widget.Spinner
odaklanırkenki davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001) - Artık
PlatformTextStyle(emojiSupportMatch)
kullanarak tek bir paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri artık boşta kalma durumuna geçmek için kareleri yürütürken (ör.
waitForIdle
aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu durum, düzen animasyonlarının tek tek karelerini onaylayan testleri etkileyebilir. (I8ea08, b/222093277) - Metnin
Static(default)
veya animasyonlu olacağını tanımlamak içinTextMotion
deneysel özelliğiTextStyle
öğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
kullanın. (I24dd7)
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.ui:ui-*:1.4.0-rc01
iptal edilir. 1.4.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
AndroidView
composable işlevinin aşırı yüklenmesi eklendi. Bu işlev,onReset
parametresini kabul eder. Bu sayede, kompozisyondaki düğümleri atıldığında ve uyumlu bir şekilde yeniden kullanıldığında Görünüm örneklerinin yeniden kullanılmasına olanak tanır. Bu özellik, özellikleLazyRows
veLazyColumns
görüntüleme sayısı için yararlıdır. (I3f10d, b/230099236)- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni bir düşük düzeyli
PlatformTextInputAdapter
API'si kullanıma sunuldu. (I58df4)
Hata Düzeltmeleri
BasicTextField
'nınSetText
semantik işlemi artık metin arabelleğini IME güncellemeleri ve test işlevleriyle (ör.performTextReplacement
) aynı kod yolunu kullanarak güncelleyecek.- Metin test işlevleri
performTextClearance
,performTextReplacement
veperformTextSelection
artıkSemanticsActions
kullanıyor. (I0807d, b/269633168, b/269624358)
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.ui:ui-*:1.4.0-beta02
iptal edilir. 1.4.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
modifierElementOf()
API'si kaldırıldı. Lütfen bunun yerine doğrudanModifierNodeElement
üzerinden uzatın. (I2256b)Layout
öğesinin yeniden kullanılacağı (ör.LazyColumn
öğesi olarak) durumu düzgün şekilde işlemek için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni birModifier.Node.onReset()
geri çağırma işlevi eklendi. Odaklanılmış durumu düzgün şekilde sıfırlamak içinFocusTargetModifierNode
düzeltildi. (I65495, b/265201972)- Canvas'ta metin çizerken farklı karıştırma algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508)
Hata Düzeltmeleri
- Erişilebilirlik odak sırası algoritması iyileştirildi. Örneğin, üst/alt çubuklar sırasıyla daha sık olarak önce/sonra okunuyor (74e9c5)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.ui:ui-*:1.4.0-beta01
iptal edilir. 1.4.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
PinnableContainer.PinnedHandle.unpin()
,release()
olarak yeniden adlandırıldı (I4667a)waitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
vewaitUntilDoesNotExist
,ComposeTestRule
'e deneysel API olarak eklendi. BöylecewaitUntil
API, herhangi bir eşleştiriciyi ve herhangi bir sayıda düğümü kabul edecek şekilde genişletildi. Daha fazla doküman içinComposeTestRule
adresini ziyaret edin. (Ifa1b9, b/226934294)Font.MaximumAsyncTimeout
öğesiniFont.MaximumAsyncTimeoutMillis
olarak yeniden adlandırın. (I07af5)GoogleFont.Provider.AllFontsListUri
kaldırıldı ve bunun yerine ktdoc'ta bağlantı oluşturuldu. (I16f29)
Hata Düzeltmeleri
AndroidFont.fontVariationSettings
(I7d9e2) için doküman ekleme
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha05
iptal edilir. 1.4.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tümLaunchedEffect
verememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)- 1 boyutlu hızı izlemek için yeni bir API ekleyin (If5a82)
FocusRequester
artık@Stable
olarak işaretleniyor. (I580ee)usePlatformDefaultWidth
parametresi alanDialogProperties
oluşturucusundan deneysel bir ek açıklamayı kaldırın. (Ic4048)- Yolda belirli bir mesafedeki hesaplama konumuna ve teğete işlev eklendi.
PathMeasure.getPosition()
vePathMeasure.getTangent()
ile (I3b47c) PlatformParagraphStyle
tarihinde yanlışlıkla herkese açık olarak ayarlanmış setter kaldırıldı. (I07f47)- Satır içi/kullanımdan kaldırılmış-gizli işlevlerin türü/nullability'siyle ilgili daha fazla bilgi (I24f91)
- Sıfır tahsisli ek açıklamaları sorgulamak için
AnnotatedString.hasStringAnnotations
ekleyin. (I94dfe, b/246960758) TextMeasurer.measure
işlevi için, metin olarakString
alan yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)- TextStyle'daki
LineBreak
veHyphens
API'leri kararlı sürüme yükseltildi. (Ic1e1d)
Harici Katkı (External Contribution)
TextInputSession
veTextInputService
'dekinotifyFocusedRect
yöntemleri tekrar kullanımdan kaldırılmıyor. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha04
iptal edilir. 1.4.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
- Lazy list öğelerinin sabitlenmesine olanak tanıyan yeni bir
PinnableContainer
API eklendi. Böylece, öğeler sınırların dışına kaydırıldığında kaldırılmaz. Örneğin,Modifier.focusable()
, şu anda odaklanılan öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010) - Odak sistemi, yeni deneysel
Modifier.Node
API'leri kullanılarak yeniden yazıldı. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - Yüzeylerde
IsContainer
semantik özelliği eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre geçiş sırasını belirleyen sonraki bir değişiklikte kullanılacaktır. (I63379) - Yeni erişilebilirlik rolü
DropdownList
eklendi. Bu,TalkBack's
odaklanırkenandroid.widget.Spinner
davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001) - Artık
PlatformTextStyle(emojiSupportMatch)
kullanarak tek bir paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri artık boşta kalma durumuna geçmek için kareleri yürütürken (ör.
waitForIdle
aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu durum, düzen animasyonlarının tek tek karelerini onaylayan testleri etkileyebilir. (I8ea08, b/222093277) - Metnin
Static(default)
veya animasyonlu olacağını tanımlamak içinTextMotion
deneysel özelliğiTextStyle
öğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
kullanın. (I24dd7)
API Değişiklikleri
- Diğer
DrawScope
işlevleriyle uyumlu olması içindrawText
işlevindekimaxSize: IntSize
bağımsız değişkenisize: Size
ile değiştirildi.size
, varsayılan olarakSize.Unspecified
olarak ayarlanır. Bu, önceki varsayılan davranışı değiştirmemelidir. (Icd27d) - Desteği sonlandırılan deneysel yazı tipi oluşturucu kaldırıldı. (I8a724, b/261435386)
- ui tooling veri sınıfı
Group
artık grubun satır içi composable işlev çağrısı için olup olmadığını belirten birisInline
alanına sahip.isInline
true
ise çağrı, satır içi bir composable işlevedir. Ancak, satır içi işlev bilgilerini oluşturmayan bir Compose derleyici eklentisi sürümüyle derlenen modüllerden gelen satır içi composable işlev çağrıları için değer yanlış olabilir. (Idb846) - Daha önce deneysel olan bazı API'leri kararlı sürüme geçirdik.
- Döner kaydırma etkinliği API'si artık kararlı (I42ad3, b/261561229)
FontVariation
API artık kararlı (I8779f, b/241016309)- Tüm
Font()
oluşturucular artık kararlı API'dir (I5948b, b/261435386) DeviceFontFamilyName
artık kararlı sürümde (I8b640, b/261435386)AndroidFont
ilevariationSettings
oluşturucu artık kararlı bir API'dir ve yeni yazı tipi tanımlayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)createFontFamilyResolver
API artık kararlı. Bu, eşzamansız yazı tipi yükleme sırasında yakalanmayan istisnaları yakalamak için kullanılabilir. (Ibb481, b/261435386)Font.loadingStrategy
API artık kararlı. (I5937c, b/261435386)GoogleFont
API artık kararlı. (Ic90b0, b/261435386)TextUnit(float, TextUnitType)
artık kararlı bir API. (I90c84, b/261561612)pluralStringResource
artık kararlı bir API. (I09849, b/261439703)
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.ui:ui-*:1.4.0-alpha03
iptal edilir. 1.4.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
ExperimentalComposeUiApi
dosyasıPointerIcon
klasöründen kaldırılıyor (I23af8)- Sayfa erişilebilirlik işlemleri:
PageUp
,PageDown
,PageLeft
,PageRight
. Bunların yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab) rememberNestedScrollConnection
parametre görünümü, kök görünümden ana makine görünümüne güncellendi. (Ia5200)- Üst öğelerin kaydırma bilgilerini sorgulamak için bir Modifier API eklendi. (I2ba9d, b/203141462)
- Hareketler kaydırma etkinliğine dönüşebildiğinde, basma etkileşimlerini doğru şekilde geciktirmek için
Clickable
içinde kullanılır. Clickables
öğesinin,Scrollable ViewGroup
içinde kullanıldığında dalgalanmaları doğru şekilde geciktirmemesi sorunu düzeltildi.- Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda basma işlemlerini doğru şekilde geciktirmek için çekmeceler ve sayfalar güncellendi.
CompositingStrategy.Always
,Offscreen
olarak yeniden adlandırıldı. Bu,graphicsLayer
öğesinin her zaman ara arabelleğe (I47dc1) dönüştürüleceğini belirtir.- Birden fazla içerik alanına sahip düzenlerde aşırı yüklenme sorunu artık kararlı (I10566, b/248294649)
- Testin bir parçası olarak Perfetto izlerini (Sistem İzleri olarak da bilinir) yakalamak, test davranışını ve performansını incelemek için deneysel yeni API'ler
PerfettoTrace.record {}
vePerfettoTraceRule
eklendi. (I3ba16) - Bir Compose kuralı kullanan kullanıcı arayüzü testlerinde,
withFrameNanos
geri çağırmaları sırasında devam ettirilen devamlılıklar, tüm çerçeve geri çağırmaları çalışmayı bitirene kadar gönderilmez. Bu, normal şekilde çalıştırıldığında oluşturma davranışıyla eşleşir. Ancak eski davranışa dayalı testler başarısız olabilir. Bu durum yalnızca doğrudanwithFrameNanos
veyawithFrameMillis
işlevlerini çağıran ve bu işlevlere iletilen geri çağırmaların dışında, geri çağırmaların içine taşınması gerekebilecek mantığa sahip kodları etkilemelidir. Örnekler için bu CL'deki animasyon testi değişikliklerine bakın. onPerformTraversals: (Long) -> Unit
parametresi,TestMonotonicFrameClock
oluşturucuya ve fabrika işlevine isteğe bağlı olarak eklendi. Bu parametre,withFrameNanos
geri çağırmalarından sonra ancak arayanların eş yordamları devam ettirilmeden önce kod çalıştırmak için kullanılır. (Idb413, b/254115946, b/222093277, b/255802670)- Compose'a EmojiCompat eklendi (Ibf6f9, b/139326806)
- Dinamik renk desteği için
@Preview
öğesine yeni duvar kağıdı parametresi eklendi (I9f512)
Hata Düzeltmeleri
- Anlık görüntü uygulama bildirimleri artık
Recomposer
değişiklikleri uyguladıktan sonra gönderiliyor. (Iad6c0, b/222093277) captureToImage
, çoklu pencere ekran görüntülerinin alınmasına olanak tanımak için değişiklikler yapıldı. Bu, Compose PopUp'ları kullanan ekran görüntüsü testleri için yararlıdır. (I169c5)
Bağımlılık Güncellemeleri
- Compose UI ve Compose Material artık Lifecycle 2.5.1'e bağlı. (I05ab0, b/258038814)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.ui:ui-*:1.4.0-alpha02
iptal edilir. 1.4.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
GraphicsLayerScope
,graphicsLayer
öğesinin mevcut boyutunu gösterecek şekilde güncellendi. Bu,graphicsLayer
dönüşümlerini Composable boyutunun bir işlevi olarak hesaplamak için kullanışlıdır. (If8c43,b/181387080)CompositingStrategy
içeriğinin oluşturulması için ekran dışı bir birleştirme katmanının ne zaman kullanılacağını belirlemek üzeregraphicsLayer
tanıtıldı. Otomatik, alfa uygulanırsa veyaRenderEffect/Overscroll
varsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Always, her zaman ekran dışı bir arabellek kullanır.ModulateAlpha
ise ekran dışı arabellek kullanmaktan kaçınır ve bunun yerine,graphicsLayer
içindeki kaydedilmiş her çizim talimatını düzenler.ModulateAlpha
kullanımı,RenderEffect/Overscroll
kullanımları için ekran dışı bir arabellekten yararlanmaya devam eder (I25e82, b/256382834).invalidateSubtree()
, düzen ve çizim için tüm hiyerarşilerin geçersiz kılınmasına izin vermek üzereModifier.Node
'ye eklendi. (I4bd90)rememberNestedScrollInteropConnection
sürümünü kararlı sürüme yükseltin.rememberNestedScrollInteropConnection
'ya kök görünüm geçirme özelliği kullanıma sunuldu. Bu, özel görünümün özellikle standart olmayan görünümlerde (ör.ModalBottomSheetDialog
) kaydırma kısıtlamalarına daha iyi tepki vermesine yardımcı olabilir. (I9e107)- Daha önce okudukları bir değer değiştiğinde bildirim alması gereken
Modifier.Node
uygulamaları tarafından kullanılabilecekObserverNode
arayüzü eklendi (I5728b, b/247716483). Paint
öğesine, yerelandroid.graphics.Paint
öğesini kabul eden yeni bir oluşturucu eklendi. Ayrıca, mevcut bir doğal Paint nesnesini Compose Paint'e dönüştüren bir uzantı işlevitoComposePaint()
de eklendi. (Ica91b)- Android'de kullanılmak üzere yeni
FontFamily.Resolver.resolveAsTypeface
ekleyin. (I8950b) - Araçların Composable'ın (Ie6614) dahili durumlarını değiştirmesine izin vermek için
ToolingState
ekleyin. - Yeni eklenen animasyonlar için daha iyi destek sağlamak üzere araçları yeniden düzenleme (I8677b)
- Materyal ve Material3 Text,
minLines
veTextField
'eOutlinedTextField
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğinin satır sayısı cinsinden ayarlanmasına olanak tanır (I4af1d).
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.ui:ui-*:1.4.0-alpha01
iptal edilir. 1.4.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Hareket algılayıcılar için yeni bir yöntem (
awaitEachGesture()
) eklendi.forEachGesture()
ile benzer şekilde çalışır ancak hareketler üzerindeki döngü tamamenAwaitPointerEventScope
içinde gerçekleştiğinden yinelemeler arasında etkinlik kaybı yaşanmaz. forEachGesture()
, hareketler arasında etkinliklerin kaybolmasına izin verdiği içinawaitEachGesture()
lehine kullanımdan kaldırıldı. (Iffc3f, b/251260206)- androidx'te erişilebilirlik nesnelerinin geri dönüştürülmesi desteği sonlandırılıyor. Performans değişikliklerinin, desteklenen en eski sürümlerde bile ihmal edilebilir düzeyde olduğunu tespit ettik. (I0a961)
- Anahatlı metin çizimini etkinleştirmek için
DrawStyle
,TextStyle
veSpanStyle
'ye deneysel özellik olarak eklendi. (If24b8, b/155421273) AnnotatedString.Builder
artıkkotlin.text.Appendable
'ı uyguluyor. (I1a061, b/231030444)AnnotatedString.Builder
artıkAnnotatedString
öğesinin alt dizesini ve kesişen stilleri eklemek içinappend(AnnotatedString, start: Int, end: Int)
yöntemine sahip.Paragraph
veMultiParagraph
boyama işlevlerine, ana hatlı metin çizilmesini sağlayanDrawStyle
parametresi eklendi. (Ic8102, b/155421273)
Harici Katkı (External Contribution)
- Thanks for
vighnesh
for adding TV Devices to Previews (Ie15cd)
Sürüm 1.3
Sürüm 1.3.3
11 Ocak 2023
androidx.compose.ui:ui-*:1.3.3
iptal edilir. 1.3.3 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Android 9'da, Etkinlik, Compose görünümünün durumunu kaydederken bazen meydana gelen kilitlenme sorunu düzeltildi. (I0b755, b/260322832)
Sürüm 1.3.2
7 Aralık 2022
androidx.compose.ui:ui-*:1.3.2
iptal edilir. 1.3.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
protobuf-javalite:3.19.4
(CVE-2022-3171) güvenlik uyarısını önlemek için Profobuf 3.21.8'i kullanacak şekilde güncellendi (b/255545055).
Sürüm 1.3.1
9 Kasım 2022
androidx.compose.ui:ui-*:1.3.1
iptal edilir. 1.3.1 sürümü şu commit'leri içerir.
Sürüm 1.3.0
24 Ekim 2022
androidx.compose.ui:ui-*:1.3.0
iptal edilir. 1.3.0 sürümü şu commit'leri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
- Yeni deneysel API paketi
LookaheadLayout
(daha önce mümkün olmayan animasyon davranışlarını etkinleştirir) - Yeni deneysel API paketi
Modifier.Node
(Modifier.composed
için daha yüksek performanslı alternatif) - Pencere iç kenarları için gelişmiş destek.
- LazyLists'te D-Pad'ler ve donanım klavyesi için odak desteği.
- İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü (bazı özelleştirilmiş tasarım sistemleri için davranış değişikliği – beta01 sürüm notlarındaki gerekçe)
- Birçok küçük, API'de bozulmaya yol açmayan iyileştirme
- Pek çok hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.ui:ui-*:1.3.0-rc01
iptal edilir. 1.3.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Metinde otomatik tireleme özelliğini desteklemek için yeni deneysel API Hyphens eklendi (Iaa869).
Hata Düzeltmeleri
DeviceFontFamilyName
yazı tipleri,wght
veital
varyasyon ayarlarını varsayılan olarak yapılandırmaz. Bunun yerine, yüklenenTypeface
için platform ayarını kullanır. (Ia7a6d, b/246989332)LazyColumn
Bellek sızıntısı düzeltildi: Değiştiriciler yeniden kullanıldığındaonModifierLocalsUpdated
varsayılan değerle çağrılmıyordu (b/230168389).
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.ui:ui-*:1.3.0-beta03
iptal edilir. 1.3.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Metinde satır sonunu özelleştirmek için seçenekler ekleyin. (I86907)
- Minimum genişlik kısıtlamalarını desteklemek için
TextMeasurer.measure
yöntemindekisize:IntSize
bağımsız değişkeniconstraints: Constraints
ile değiştirildi. (I37530, b/242707525)
Hata Düzeltmeleri
- AndroidX Activity'nin
BackHandler
API'si artıkDialog
composable içinde çalışıyor. (I35342)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.ui:ui-*:1.3.0-beta02
iptal edilir. 1.3.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Layout için, birden fazla composable içerik lambdasının listesini kabul eden deneysel bir aşırı yükleme eklendi. Bu, farklı içerik lambdalarına yerleştirilen ölçülebilir öğelerin farklı şekilde ele alınmasına olanak tanır (Ic1b4e).
Deneysel Focus API'lerinde yapılan değişiklikler:
FocusDirection.In
veFocusDirection.Out
artık kullanılmamaktadır ve yeriniFocusDirection.Enter
ileFocusDirection.Exit
almıştır. (Ia4262, b/183746982)FocusManager.moveFocus(Enter)
veFocusManager.moveFocus(Exit)
için özel bir davranış belirtmek üzere iki yeni odak özelliği (enter ve exit) eklendi. (I5f3f9, b/183746982)- Artık odak hareketini iptal etmek için
FocusRequester.Cancel
tuşunu kullanabilirsiniz.FocusRequester.Cancel
; up, down, left, right, next, previous, start, end, enter ve exit odak özelliklerinin herhangi birinde kullanılabilir. (Ib300f)
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-beta01
iptal edilir. 1.3.0-beta01 sürümü şu commit'leri içerir.
Değiştirici Düğüm Yeniden Düzenleme
Modifier/Modifier.Element
örneklerini işleyen ve LayoutNodes
üzerinde davranışlarını koordine eden katman büyük ölçüde yeniden düzenlendi. Bu, Compose'daki birçok değiştiricinin herkese açık API'sini etkilemeyen bir yeniden düzenleme olduğundan yalnızca uygulamayla ilgili bir değişiklik olarak değerlendirilebilir. Bununla birlikte, bu değişiklik çeşitli nedenlerle önemlidir. (Ie4313)
Değişiklik Özeti
Eklenen deneysel Modifier.Node
API'leri, düzen düğümünün yaşam döngüsüyle birlikte korunacak bir örnekte durumun korunmasına olanak tanıyan ve bunu üreten ilgili Modifier.Element
'nin düzen düğümü başına ve kullanım başına ayrılacak bir soyutlama sağlar.
Genel olarak bu soyutlama, Modifier.composed
API'nin mekanizmalarına dayanmadan durum bilgisi olan değiştiriciler oluşturmak için alternatif bir mekanizma sağlar.
Risk
Bu değişiklik, önceki sürümlerle kesinlikle ikili uyumludur ve gözlemlenebilir davranış açısından pratik ve makul olduğu ölçüde geriye dönük uyumlu olması amaçlanmıştır. Bununla birlikte, bu yeniden düzenlemenin dokunmadığı birkaç alt sistem var ve davranışın, testlerimizde ele alınmayan ve henüz bulunup düzeltilmeyen şekillerde değişmiş olması muhtemeldir.
Lütfen bu sürüme dikkatli bir şekilde yükseltin. Bu durumun sizin için bir soruna yol açtığını düşünüyorsanız lütfen bize bildirin.
Deneysel API'ler
"Değiştirici Düğüm" adlı yeni kavramla ilgili çeşitli deneysel API'ler eklendi. Modifier.Node'lar,
fun modifierElementOf(…): Modifier
abstract class ModifierNodeElement
abstract class Modifier.Node
abstract class DelegatingNode
interface LayoutModifierNode
interface DrawModifierNode
interface SemanticsNode
interface PointerInputNode
interface ModifierLocalNode
interface ParentDataModifierNode
interface LayoutAwareModifierNode
interface GlobalPositionAwareModifierNode
interface IntermediateLayoutModifierNode
Davranış değişikliği
İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
Compose iletişim kutuları ve pop-up'lar için desteklenen maksimum yükseklik 30 dp'den 8 dp'ye düşürüldü. Bu değişiklik hem materyal hem de kullanıcı arayüzü özel iletişim kutularını ve pop-up'ları etkiler. Bu değişiklik, S sürümünden önceki Android sürümlerinde erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up içindeki içerikle etkileşime geçebilmesini sağlamak için yapılmıştır.
Bu değişiklikten yalnızca, yüksekliği 8 dp'den daha yüksek seviyelere ayarlanmış özel bir iletişim kutusu veya pop-up uygulaması oluşturuyorsanız etkilenirsiniz. İletişim kutunuzun veya pop-up'ınızın yüksekliğini azaltmayı deneyin. Bu yeni davranışı devre dışı bırakmanız gerekiyorsa istediğiniz yükseltme ayarlanmış kendi iletişim kutunuzu veya pop-up'ınızı oluşturmayı düşünebilirsiniz. Erişilebilirlik olumsuz etkilenebileceğinden ve iletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından okunabilir ve etkileşim kurulabilir olmasını sağlamak geliştiricinin sorumluluğunda olduğundan bu işlem önerilmez.
API Değişiklikleri
- Yapılandırma değişikliklerinde
painterResource
öğesinin güncellenmemesine neden olan sorun düzeltildi (I58e73, b/228862715). rememberTextMeasurer
artıkFontFamily.Resolver
,Density
veyaLayoutDirection
parametrelerini kabul etmiyor. Lütfen bu parametreler için özel değerler sağlamak üzereTextMeasurer
oluşturucusunu kullanın. (Ia1da3)DialogProperties.decorFitsSystemWindows
özelliği eklendi. Bu özellik, iletişim kutularınınWindowInsets
'ı desteklemesini sağlar. (I57742, b/229378542)- İkili uyumluluğu korumak için taşınan yazı tipi oluşturucular orijinal Kotlin dosyasına geri taşındı. Son kararlı sürümde değişiklik yok. (Ieb2f3)
- Çeşitli eşittir tanımlarından gereksiz operatör kaldırıldı. Bunun herhangi bir etkisi yoktur. (I6c309)
FontVariation.Setting
, gelecekteki sınırlama API'lerine izin vermek için kapalı bir arayüzdür. (I11021, b/143703328)CompositionGroup.findParameters
öğesiniSlotTree.kt
listesine ekleyin. Bu sayede araçlar, tüm yuva tablosunu ayrıştırmak zorunda kalmadanCompositionGroup
için parametreleri alabilir. (I124fe)
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-alpha03
iptal edilir. 1.3.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
LayoutCoordinates.findRootCoordinates()
artık herkese açık (I7fa37, b/204723384)LayoutCoordinates
içindekiPlacementScope
değerini almak için deneysel API eklendi. Bu, geliştiricilerin mevcut düzenin nerede olduğunu ve alt öğeleri konumuna göre nereye yerleştireceklerini bilmelerini sağlar. (I5482b, b/238632578)- Bir
LayoutCoordinates
'den diğerine matris dönüşümü elde etmek içinLayoutCoordinates.transformFrom
eklendi. (Ic5ab1, b/238632578) SemanticsModifier.id
kullanımdan kaldırıldı ve bunun yerine semantik kimlikLayoutInfo.semanticsId
'ye taşındı. (Iac808, b/203559524)- Kaynak yazı tipleri artık yazı tipi varyasyon ayarlarının (API 26+) belirlenmesini destekliyor. (I900dd, b/143703328)
DeviceFontFamilyNameFont
'da değişken yazı tipi desteği (Ic1279, b/143703328)- Yazı tipi oluşturucular artık O+ cihazlarda değişken yazı tiplerini yapılandırmak için
FontVariation.Setting
listesini kabul ediyor. (I11a9d, b/143703328) - Değişken yazı tiplerini tanımlamak ve kullanmak için
FontVariation
API'si eklendi. (I3c40c, b/143703328) LineHeightStyle.Alignment
oluşturucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)- Paragraf artık Android ve masaüstü için expect|actual olarak tanımlanıyor. (Id387e, b/239962983)
- Interface Paragraph artık sealed interface Paragarph. Alt sınıflandırma paragrafı için kullanım alanı yoktur. Bu değişiklik sizi etkilerse bizimle iletişime geçmenizi öneririz. (If5247, b/239962983)
PlatformTextStyle
veLineHeightStyle
öğelerinden deneysel ek açıklamayı kaldırdı. (I64bef)TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Lütfen uygulama kodundaSoftwareKeyboardController
, IME yönetimi kodunda iseTextInputSession
kullanın. (I14e4c, b/183448615)- Mevcut animasyon türleri için yeni API ekleme (I26179)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde
POST_NOTIFICATIONS
izninin verilmesini gerektiren API'lere@RequiresPermission
eklendi. (Ie542e, b/238790278)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.ui:ui-*:1.3.0-alpha02
iptal edilir. 1.3.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Basıncı almak için yeni bir özellik
PointerInputChange#pressure
eklendi. (I45a5e, b/205164819) - Bestede
TextMeasurer
örneklerini kolayca oluşturup hatırlamak içinrememberTextMeasurer
eklendi. (I8d66e) Rect
,RoundRect
veMutableRect
artıkcontains
işlevini çağırmak için Kotlinin
söz dizimini destekliyor. (Ie42b0, b/238642990)- API'nin daha basit bölümleriyle kolayca uygulanabildikleri için
KeyInjectionScope
'dan gereksiz işlevleri kaldırın. Kaldırılan işlevler arasındapressKeys
,keysDown
vekeysUp
yer alıyor. (I81d77) KeyInjectionScope
içindeki sabit ve parametre adları, birimleri milisaniye olan sabit ve parametrelerde "Millis" sonekini içerecek şekilde yeniden düzenlendi. (Iabef5)- Metin düzenleme sorunlarını gidermeye yardımcı olması için
toStringForLog()
yöntemiEditCommand
'ye eklendi. (I53354, b/228862731) drawText
,Canvas
vedrawBehind
gibiDrawScope
üzerinde çalışan composable'lar ve değiştiricilerde çok stilli metin çizmenin bir yolunu sağlamak içinDrawScope
üzerindedrawText
uzantı işlevi eklendi. (I16a62, b/190787898)TextMeasurer
adlı yeni bir deneysel API'yi kullanıma sunuyoruz. Bu API, Compose çalışma zamanından bağımsız olarakBasicText
ile aynı sonuçları veren rastgele metin düzeni hesaplaması yapılmasına olanak tanır. (I17101)mapTree
öğesiniSlotTree.kt
listesine ekleyin. Bu sayede araçlar,SlotTree
öğesini asTree gibi önce bellekte bir kopya oluşturmadan inceleyebilir. Düzen inceleyici için bu, yaklaşık 10 kat performans artışı sağlar. (I5e113)- Geliştiricilerin kitaplıklardan
MultiPreview
ek açıklamaları yazıp yeniden kullanabilmesi için Oluşturma Önizlemesi'nin ikili çıkış dosyalarında saklanması sağlandı. (I85699, b/233511976)
Hata Düzeltmeleri
InputEventChange
etkinlikleriniVelocity
izleyiciye eklerken artık konumlar yerine delta değerlerini dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanması sağlanacak (Icea9d, b/216582726, b/223440806, b/227709803).- Ek açıklamalar olduğunda
AnnotatedString.toUpperCase
nedeniyle oluşan NPE düzeltildi. (I0aca2, b/210899140)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.ui:ui-*:1.3.0-alpha01
iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Gerçek ölçü/düzen öncesinde öngörülü geçişi destekleyen yeni
LookaheadLayout
. Bu sayede, düzen değiştiğinde önceden hesaplama yapılabilir. Ayrıca, hedefteki boyuta ve konumlara doğru animasyon oluşturmak için önceden hesaplanmış boyut/konum kullanılarak sonradan bakma ölçüsü/düzeni kullanılabilir.SubcomposeLayouts
henüz desteklenmemektedir ancak ileride yayınlanacak bir sürümde desteklenecektir. (I477f5) - Tüm
Text
öğesinin opaklığını değiştirmek içinTextStyle
veSpanStyle
öğesinin fırça türüne isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635) UrlAnnotation
açıklama türü veAnnotatedString
'lerdeTalkBack
bağlantı desteğini sağlayan ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)- Yardımcı işlevlerin çalışma zamanına taşınması (I4f729)
Hata Düzeltmeleri
TextLayoutResult.getLineForOffset
hata vermiyor. (Idc5d6, b/235876324)
Harici Katkı (External Contribution)
- Durumunu composable işlevlerde veya snapshotFlow aracılığıyla gözlemlemek için yeni bir API
WindowInfo.keyboardModifiers
eklendi (Icdb8a).
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.ui:ui-*:1.2.1
iptal edilir. 1.2.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Denetleyicideki nullpointer hatası düzeltildi (b/237987764)
- İnceleme aracında hatırlatma sırasında oluşan sınıf yayınlama istisnası düzeltildi (b/235526153).
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.ui:ui-*:1.2.0
iptal edilir. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
Odak geçişinde iyileştirmeler:
- Lazy listelerin odaklanmaya dayalı kaydırma özelliği artık yeni
BeyondBoundsLayout
Core API kullanılarak çalışıyor. FocusOrder
veFocusProperties
'de yeni davranış özelleştirme API'leri- Fiziksel klavye veya TV uzaktan kumandasıyla daha iyi davranış
- Lazy listelerin odaklanmaya dayalı kaydırma özelliği artık yeni
Aşağıdakiler için yeni API'ler:
- Pencere ekleri
- Hareket odaklı, sonsuz ve düzen animasyonları için temel öğeler
GraphicsLayer
özellikleri (RenderEffect
dahil)
Pek çok hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc03
iptal edilir. 1.2.0-rc03 sürümü şu commit'leri içerir.
- 1.2.0-rc02 sürümünden bu yana değişiklik yapılmadı.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc02
iptal edilir. 1.2.0-rc02 sürümü şu commit'leri içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc01
iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Compose kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri kullanılarak oluşturuluyor (I5bcf1).
- Diğer tuşlar basılı tutulurken veya açılıp kapatılırken tuş basma işlemlerini eklemek için
KeyInjectionScope
'ya yüksek sıralı işlevler eklendi. Bu işlevler arasındawithKeysDown
,withKeysToggled
vb. yer alır. Ayrıca, belirli bir meta anahtarının basılı olup olmadığını kontrol etmek için özellikler de eklenmiştir. Örneğin,isCtrlDown
ile kontrol tuşlarından birinin basılı olup olmadığı kontrol edilebilir. Her işlevle ilgili dokümanlar içinKeyInjectionScope
adresine bakın. (I9f6cd, b/229831515) Modifier.scrollable
aşırı kaydırma efektlerini kabul eden aşırı yüklemelerin yanı sıra özel aşırı kaydırma efektlerine izin vermek için deneysel birOverscrollEffect
tanıtıldı.- Deneysel
LocalOverScrollConfiguration
,foundation.gesture
paketinden temel pakete taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) runComposeUiTestWithoutActivity {}
'ıcreateEmptyComposeRule()
ile uyumlu olacak şekilderunEmptyComposeUiTest {}
olarak yeniden adlandırın (I6fed7)
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-beta03
iptal edilir. 1.2.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
KeyInjectionScope
grubunapressKeyTimes
ileisCapsLockOn
ve arkadaşları eklendi. Ayrıca API artık meta tuşu basılıyken fare düğmesine tıklama gibi fare ve klavye kombinasyonuyla ekleme kalıplarını destekliyor. (I4c8da, b/229831515)- Önemli etkinlikleri yerleştirme için deneysel destek eklendi. Önemli etkinlikleri göndermek için
performKeyInput
öğesini kullanın veyaperformMultiModalInput
ile çok formatlı giriş hareketi sırasındaMultiModalInjectionScope
öğesininkey
özelliği üzerinden gönderin. API dokümanları içinKeyInjectionScope
adresine bakın. (Ic5000, b/229831515) - Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni
GoogleFont.Provider.AllFontsListUri
ekleyin. - GoogleFonts, Compose'da yüklenemediğinde yeniden oluşturulan hata mesajları iyileştirildi. (I0416c)
Hata Düzeltmeleri
- Velocity Tracker'a
InputEventChange
etkinlikleri eklerken artık konumlar yerine delta değerlerini dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanması sağlanacak (I51ec3, b/216582726, b/223440806, b/227709803). - Artık
Show Layout Bounds
ayarı, hızlı ayarlar kutucuğundan etkinleştirildikten hemen sonra, etkinlikten çıkıp yeniden girmenize gerek kalmadan composable'lara uygulanacak. (I843d5, b/225937688) - Erişilebilirlik dizesi araması, yazı tipi yüklemeyi tetiklemez. Daha önce
StyleSpans
için yazı tiplerini yüklemeye çalışıyordu. Bu durum,FontFamily.Resolver
üzerine yazılmışsa kilitlenmelere neden oluyordu. (I4609d) - İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme sorunu yaşanmayacak.
DeleteSurroundingTextCommand
veDeleteSurroundingTextInCodePointsCommand
artık oluşturucu bağımsız değişkenlerinin negatif olmamasını gerektiriyor. (Ica8e6, b/199919707)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.ui:ui-*:1.2.0-beta02
iptal edilir. 1.2.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Diğer önizleme türlerinde işlevleri yeniden kullanma (I19f39)
Hata Düzeltmeleri
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
, elden çıkarma işlemleri gerçekleştiğinde (yalnızca gerçekleşmediğinde değil) daha iyi yansıtacak şekildeDisposeOnDetachedFromWindowOrReleasedFromPool
olarak yeniden adlandırıldı. (If15ca)
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.ui:ui-*:1.2.0-beta01
iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Bu, 1.2 sürümünün ilk beta sürümüdür.
API Değişiklikleri
- Öğeleri görünür sınırların ötesinde yerleştirdiklerinde
LazyList
'nin özel uygulamaları tarafından kullanılabilecek deneyselBeyondBoundsInterval
eklendi (Ifabfb, b/184670295). Modifier.composed
'nın anahtarlı sürümleri artık kararlı API (Ie65e4, b/229988420)- Mevcut görünüm bilgilerini edinmek için
rememberNestedScrollConnection
API'si, kompozisyon yerellerini kullanacak şekilde basitleştirildi (I67ca7). @ComposableTarget
ek açıklaması ve@ComposableTargetMarker
ile işaretlenmiş ek açıklamalar artık@file
öneki kullanılarak dosya kapsamında kullanılabilir. Dosya kapsamındaki bir hedef ek açıklamasının kullanılması, derleyicinin dosyadaki tüm composable işlevlerin ilişkili uygulayıcıyı hedeflemesi gerektiğini varsaymasına neden olur. Örneğin,@file:UiComposable
kullanıldığında tüm@Composable
işlevlerinin Compose UI uygulayıcısını hedeflediği belirtilir. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef işaretleyici açıklamasını açıkça sağlamalıdır. (I40804)Yeni deneysel, platformdan bağımsız test API'si kullanıma sunuldu:
interface ComposeUiTest
vefun runComposeUiTest(block: ComposeUiTest.() -> Unit)
. Bu API'ler,TestRule
olmadan Compose kullanıcı arayüzü testlerini çalıştırmak için kullanılabilir.ComposeTestRule
olmadan test çalıştırmak için testirunComposeUiTest
öğesine lambda olarak iletin ve alıcı kapsamındaki yöntemleri ve üyeleri (ComposeUiTest
) kullanın. BunlarComposeContentTestRule
ile aynıdır.Android'e özel
interface AndroidComposeUiTest
vefun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
,AndroidComposeTestRule
'ye benzer şekilde temel etkinliğe erişim sağlamak için eklenir. Daha fazla kontrol içinclass AndroidComposeUiTestEnvironment
öğesini kendiniz oluşturabilirsiniz.Masaüstü uygulaması
class DesktopComposeUiTest
ancak şu anda masaüstüne özel çalıştırma işlevleri sunulmamaktadır.Bir testi
ComposeTestRule
konumundanComposeUiTest
konumuna taşıma işlemi şu şekilde yapılabilir (Android örneği). Gönderen:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }
Alıcı:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }
Şimdilik
ComposeContentTestRule
veComposeTestRule
,ComposeUiTest
'den genişletilmiyor. Bu nedenle,ComposeUiTest
'deki uzantı işlevleri henüzTestRule
arayüzünde çağrılamıyor.ComposeUiTest
kararlı API'ye geçtiğindeComposeContentTestRule
veComposeTestRule
,ComposeUiTest
'dan genişleyecek şekilde değiştirilecek. (Ib4e90)LineHeightBehavior
,LineHeightStyle
olarak yeniden adlandırıldıLineVerticalAlignment
,LineHeightStyle.Alignment
olarak yeniden adlandırıldıLineHeightTrim
yeniden adlandırıldı veLineHeightStyle.Trim
olarak değiştirildiLineHeightStyle
içindeki varsayılan oluşturucu değerleri kaldırıldı (I582bf, b/181155707)Gradyan renkli metin çizme imkanı sunmak için
TextStyle
veSpanStyle
'yeBrush
eklendi. (I53869, b/187839528)trimFirstLineTop
,trimLastLineBottom
özellikleriLineHeightBehavior
tek bir enum'a dönüştürüldü:LineHeightTrim
.LineHeightTrim
, iki boole değeriyle tanımlanan 4 durum değerine sahiptir:FirstLineTop
,LastLineBottom
, Both ve None (Ifc6a5, b/181155707)LineHeightBehavior
,TextStyle
veParagraphStyle
listelerine eklendi.LineHeightBehavior
, satır yüksekliğinin ilk satırın üst kısmına ve son satırın alt kısmına uygulanıp uygulanmayacağını kontrol eder. Ayrıca,TextStyle(lineHeight)
tarafından sağlanan alanda satırın hizalamasını da tanımlar.Örneğin, CSS'nin
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
aracılığıyla tanımladığına benzer bir davranış elde edilebilir.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları yalnızcaincludeFontPadding
değeri yanlış olduğunda doğru şekilde çalışır. (I97332, b/181155707)PlatformParagraphStyle.lerp
vePlatformSpanStyle.lerp
işlevleri, üst düzey işlevler (I9a268) olarak değiştirildi.
Hata Düzeltmeleri
PointerInputChange::copy
dokümanında artık bunun yüzeysel bir kopya olduğu doğru şekilde belirtiliyor. (I182f5)- Yükseklik sınırlı olduğunda ve tüm metin satırlarına sığmadığında üç nokta desteklenir (Ie528c, b/168720622).
- Varsayılan olarak açık
includeFontPadding
.includeFontPadding
özelliği,TextStyle.platformTextStyle
özelliği kullanılarak devre dışı bırakılabilir. Yakın gelecekte varsayılan davranışı değiştireceğiz ancak o zamana kadar bu değişiklik, satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre etmemize veTextField
kırpma sorunlarını çözmemize olanak tanır. (I01423, b/171394808)
Harici Katkı (External Contribution)
- Dikey olarak kaydırdığımızda
MouseInjectionScope.scroll(delta = someDelta)
artık Android'de ters çevriliyor (someDelta pozitifse aşağı doğru kaydırılır) (Ifb697, b/224992993)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha08
iptal edilir. 1.2.0-alpha08 sürümü şu commit'leri içerir.
API Değişiklikleri
pluralStringResource
işlevleri, gelecekte daha iyi uluslararasılaştırma desteği sunmak için geliştirilebilmesi amacıyla deneysel olarak işaretlendi. (If24e4)- Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor. Şu anda
Constraints.maxHeight
iletmek herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre üç nokta ekleme gibi bazı hesaplamalar yapılmasına olanak tanır. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
artık yeni öğelerin eklenmesine izin vermeyen, MutableSet benzeri özel bir sınıfı kabul ediyor. (Icd314)- PointerIcon artık bir
@Stable
arayüzü (I9dafe) - Kısmi tüketim (aşağı veya konum)
PointerInputChange
sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()
öğesini kullanabilirsiniz. Başka bir kullanıcının değişikliği daha önce kullanıp kullanmadığını belirlemek içinisConsumed
simgesini kullanabilirsiniz. PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturur. Bu,PointerInputChange
kopyalarından biri kullanıldığında diğer kopyaların da kullanılacağı anlamına gelir. Sınırsız birPointerInputChange
oluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)- Compose > View yönünde Compose ve View arasında iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, bir üst öğe oluşturmanın, iç içe geçmiş bir kaydırma görünümünden iç içe geçmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
- Yeni
SemanticsProperty testTagsAsResourceId
, Compose'un View sistemi için tasarlanmış UIAutomator testlerine uygun hale getirilmesinde kullanılabilir. (I39c20) FontFamily.SansSerif
kullanılırken Android'deki sistem yazı tiplerinin tüm ağırlıklarını gösterir. Bu işlem, API 21-28'de sans-serif-medium gibi yedek yazı tipi adlarını dahili olarak kullanır. Bu bir davranış değişikliğidir. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları destekleniyordu. (I380fe, b/156048036, b/226441992)- Paragraph ve Multiparagraph eğitmenleri, konum bağımsız değişkenlerini isteğe bağlı bağımsız değişkenlerden önce gelecek şekilde yeniden sıraladı. (Idafaa)
AndroidFont
artık typefaceLoader'ı oluşturucu parametresi olarak alıyor. (I2c971)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
iptal edilir. 1.2.0-alpha07 sürümü şu commit'leri içerir.
API Değişiklikleri
- Yeni işlev
Snapshot.withoutReadObservation { ... }
eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan iletilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak istediğiniz ancak gereksiz yeniden oluşturma veya yeniden ölçme işlemlerine neden olmadan değeri okumak istediğiniz kullanım alanlarında bu işlevden yararlanabilirsiniz. (I9f365, b/214054486) ComposeView
öğesininconsumeWindowInsets
uzantı özelliği, geliştiricilerin AndroidWindowInsets
tüketimini devre dışı bırakmasına olanak tanır. Bu, hiyerarşideki ayrıComposeViews
öğelerinin birbirine müdahale etmeden her birineWindowInsets
uygulanmasına olanak tanır. (I0ef08, b/220943142)- IME'de ondalık ayırıcıyı özel olarak eklemek için
Keyboard.Number
'ye alternatif olarakKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) PointerEventType.Scroll
vePointerEvent.scrollDelta
artık kararlı API'lerdir (I574c5, b/225669674).- İşbirliği yapan View sınıfları için View ve Compose arasında iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, Compose'un artık kaydırma deltalarını (işbirliği yapan) bir View üst öğesine gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
- Sisteme genel kalın metin erişilebilirlik ayarını (I6c1e7) entegre etmek için
FontFamily.Resolver
güncellendi. Font(AssetManager, String, ...)
desteği sonlandırıldı veFont(String, AssetManager, ...)
ile değiştirildi. Bu, deneysel bir API'dir. (I1c7a4)- Yazı tipi geri dönüşüm zincirleri sırasında sisteme yüklenen yazı tiplerini isteğe bağlı olarak aramak için yeni yazı tipi tanımlayıcısı
Font(DeviceFontFamilyName)
ekleyin. (I30468, b/219754572) - TextStyle/ParagraphStyle'da
includeFontPadding
için geçici uyumluluk yapılandırması eklendi.includeFontPadding
,TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
üzerinden değiştirilebilir. Bu, taşıma işlemini etkinleştirmek için geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808) - Hata ayıklama yardımı için
GoogleFont.Provider.isAvailableOnDevice
uzantısını ekleyin. (I64e31) @ArrayRes
ile kullanılmak üzereGoogleFont.Provider
oluşturucu ekleyin (Ic5ee1, b/225984280)Compose GoogleFont
artıkFont(GoogleFont)
olarak adlandırılıyor. API, diğer açılardan sabit kalmaya devam ediyor. (I125f2)
Hata Düzeltmeleri
- İç dolgunun kullanıldığından emin olmak için material/Scaffold'a lint kontrolü eklendi (Ifb111)
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha06
iptal edilir. 1.2.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Odaklanılabilir hedefe odaklanma isteğinde bulunmak için
RequestFocus
semantik işlemi eklendi. (I17b71) - Mevcut düzen yönü sağdan sola ise
VectorPainter
içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırılması güncellendi. (I79cd9, b/185760237) API uyumluluğu için gölge/ortam renkleri,
Modifier.graphicsLayer
'nın sondaki parametreleri olarak güncellendi (I3f864, b/160665122)API'de değişiklik yapılmaması için
GraphicsLayerScope
üzerindeki gölge/ortam rengine varsayılan uygulamalar eklendi.RSB etkinliklerine etkinlik saati eklendi (Ief8ae)
FocusOrder
artıkFocusProperties
ile birleştirildi vefocusProperties()
,focusOrder()
'ün tüm özelliklerine sahip.FocusOrder
vefocusOrder()
desteği sonlandırıldı.focusRequester
kabul edenfocusOrder()
,focusProperties()
ile birliktefocusRequester()
değiştiricisiyle değiştirilmelidir. Bu sayede değiştiriciler, endişeleri daha net bir şekilde ayırabilir. (I601b7)Hem
RecyclerView
hem deCompose
yükseltildiğinde, artık alt öğe olarak Compose görünümlerine sahip RecyclerView'larda çok daha iyi kaydırma performansı elde edilecek.Yerleşik varsayılan stratejiyi almak için
ViewCompositionStrategy.Default
öğesini ekleyin.Yeni varsayılan strateji olan ve RecyclerView gibi havuzlama kapsayıcılarını düzgün şekilde işleyen
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
'yı ekleyin. (If7282)Multipreview özelliğini eklemenin ilk adımı olarak, notlandırma sınıflarını @Preview ile notlandırma desteği eklendi. Bu tür ek açıklamalar, Composable yöntemlerine veya diğer ek açıklama sınıflarına ek açıklama eklemek için kullanılabilir. Bu yöntemler ve sınıflar daha sonra verilen @Preview ile dolaylı olarak ek açıklama eklenmiş olarak kabul edilebilir. (I12eff)
@Preview için Cihazlar listesine eklenen referans cihazlar (I071c9)
Hata Düzeltmeleri
- @UiComposable yerine uygun composable ek açıklaması @VectorComposable'ı kullanmak için güncellenen vektör grafikleri API'leri (I942bc)
AnnotatedString.Builder.withStyle
öğesinden crossinline'ı kaldırın (If84d5)
Harici Katkı (External Contribution)
- compose-ui:
ambientShadowColor
vespotShadowColor
özellikleriniGraphicsLayerScope
öğesine ekleyin (I1ba1a, b/160665122) - Çoğul kaynaklar artık
pluralStringResource
işlevleri aracılığıyla destekleniyor. (Ib2f23, b/191375123�)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha05
iptal edilir. 1.2.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
TextToolbar
artıkActionCallback
yerine lambda bağımsız değişkenleri alıyor. (Ib2eb9, b/197950089)- Çekirdek ve appcompat'teki nullability, Tiramisu DP2 ile eşleşecek şekilde güncellendi (I0cbb7).
- Ölçülen arayüz artık parentData özelliğini kullanıma sunuyor (I3313f)
Modifier.onPlaced
veOnPlacedModifier
arayüzü artık kararlı. (Ib5482)- Yaşasın! Oluşturma animasyonu artık Geliştirici Seçenekleri'ndeki "Animator duration scale" ayarını destekliyor. (I5a4fc, b/161675988)
BeyondBoundsLayout
değiştirici yereli eklendi (If8b51, b/184670295)- Metin: includeFontPadding artık varsayılan olarak devre dışıdır.
includeFontPadding=false
nedeniyle oluşan kırpma sorunları giderildi. Uzun komut dosyalarında kırpma olmamalıdır. (I31c84, b/171394808)
Hata Düzeltmeleri
ComposeContentTestRule.setContent
, içerik zaten varken içerik ayarlamaya çalıştığınızda artıkIllegalStateException
hatası verecek. (I888a5, b/199631334)- Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
- RSB kaydırma örneklerini iyileştirin. (I6a596)
Harici Katkı (External Contribution)
- Kotlinx coroutines 1.6.0'ı (I3366d) kullanacak şekilde güncellendi.
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha04
iptal edilir. 1.2.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
işlevleri eklendi. Bu işlevler, bir composable işlevin, kullanılması için tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.Çoğu durumda, ek açıklamalar derleme derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Çıkarılamayan durumlar arasında özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (ör. arayüz yöntemleri), birleştirilebilir lambda'lar olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler çıkarılır) ya da
ComposeNode
veya ilgili birleştirilebilir işlevlerin kullanılması yer alır.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
çağıran composable işlevlerin, işlev ve composable lambda parametre türleri içinComposableTarget
ek açıklaması eklemesi gerekir. Ancak,ComposableTargetMarker
ile açıklama eklenmiş bir açıklama oluşturmanız ve ardından doğrudanComposableTarget
yerine işaretlenmiş açıklamanın kullanılması önerilir.ComposableTargetMarker
ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özelliğin sınıfının tam nitelikli adını içeren birComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımına ilişkin bir örnek içinanroidx.compose.ui.UiComposable
bölümüne bakın. (I38f11)Font(resId, ...)
artık kararlı API'de loadingStrategy'yi kullanıyor. (Ief3d2)FontLoadingStrategy
artık kararlı bir API. (I1ee35, b/174162090)Metin'de eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
Özel
Font.ResourceLoader
değeriniFontFamily.Resolver
değerine dönüştürmek için köprü API'si ekleyin. (Ia0060)
Hata Düzeltmeleri
- Sağlanan
FontFamily.Resolver
, Popup gibi alt bileşenlere aktarılır. - Sağlanan
Font.ResourceLoader
, Popup gibi alt bileşenlere aktarılır. (I48fa5)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
TextInputSession
veTextInputService
içindekinotifyFocusedRect
yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerineBringIntoViewRequester
kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)RenderNode
sap sınıfındadestroyDisplayListData
yöntemi kullanıma sunuldu (I1e659, b/216660268)SubcomposeLayout
önceden oluşturduğunuz çocukların önceden ölçülmesine olanak tanıyan yeni bir API eklendi. (I857ea)Bir composable lambda'yı, durumunu ve ilgili düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren
movableContentOf
eklendi. Önceki görüşme kompozisyondan ayrıldığında durum geçici olarak korunur. Lambda'ya yeni bir görüşme kompozisyona girdiğinde ise durum ve ilişkili düğümler yeni görüşmenin konumuna taşınır. Yeni bir görüşme eklenmezse durum kalıcı olarak kaldırılır ve hatırlatma gözlemcilerine bildirim gönderilir.Aynı kompozisyonda bir
movableContentOf
lambda birden fazla kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Çağrılar kompozisyondan ayrılıp yeni çağrılar girerken durum, çağrılma sırasına göre ilk ayrılan çağrılardan giren çağrılara taşınır. Yeni aramalar tarafından talep edilmeyen tüm durum kalıcı olarak kaldırılır. (Ib4850)FontFamilyResolver
artıkLocalFontFamilyResolver.current
üzerinden kullanılabilirCompose kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi.Paragraph ve MultiParagraph artık
FontFamily.Resolver
alıyorTextLayoutResult.layoutInput.fontFamilyResolver
artık bu düzende kullanılan çözümleyiciyi içeriyor.TextLayoutResult.layoutInput.resourceLoader
artık kullanılmadığı için desteği sonlandırıldı. (Id5a45, b/174162090)Geri dönüş davranışıyla birlikte eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text ve TextField tarafından kullanılır ve FontFamilyResolver aracılığıyla kullanıma sunulur.
FontFamilyResolver.preload
aracılığıyla yazı tiplerini önceden yükleme desteğiFontFamilyResolver.setAsyncLoadContext
, eşzamansız yazı tiplerini yüklemek için kullanılan genel coroutine bağlamının ayarlanmasına olanak tanır. (I87fe8, b/174162090)Android'de yeni türde yazı tipi kaynak tanımlayıcıları sağlamak için yeni bir düşük düzeyli API olan
AndroidFont
eklendi. Örneğin, yazı tiplerini uygulamaya özel bir arka uçtan yükleme, isteğe bağlı olarak cihazda önceden yüklenmiş yazı tiplerini bulma veya yazı tipini mevcut Font fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için
Font.ResourceLoaded
API'si genişletildi. Uygulama geliştiricilerin bu API'yi doğrudan kullanması önerilmez. Yeni yazı tipi türleri eklemek içinAndroidFont
bölümüne bakın.Font.AndroidResourceLoader
uzantı işlevi, beste dışındaFont.ResourceLoader
oluşturulmasına olanak tanır.Kaynak yazı tipi, indirilebilir yazı tipleri XML'sine referans verdiğinde asenkron yüklemeye izin vermek için kaynak tabanlı yazı tiplerine
loadingStrategy
parametresi eklendi. (Ie5aea, b/174162090)Typeface(FontFamily)
oluşturucusunun desteği sonlandırıldı. Bu özellik, daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye kadar sürebilir. İndirilebilir yazı tipleriyle bu çağrı 10 saniye boyunca engellenebilir. Bunun yerineFontFamilyResolver.preload
kullanın.fontResource(FontFamily): Typeface
desteği sonlandırıldı. Bu özellik, daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye kadar sürebilir. Bunun yerineFontFamilyResolver.preload
kullanın (If8e7c, b/174162090)maxSlotsToRetainForReuse
kabul edenSubcomposeLayoutState
oluşturucu artık kullanımdan kaldırıldı. Bunun yerine,SubcomposeSlotReusePolicy
kabul eden yeni bir oluşturucu vardır. Bu, gelecekte yeniden kullanılmak üzere hangi yuvaların korunması gerektiği konusunda daha ayrıntılı kontrol sağlayan yeni bir arayüzdür. (I52c4d)Color
içindeki HSV ve HSL işlevini deneysel olmayan API olarak kullanıma sunar. Oklab renk alanı artık herkese açık API'dir. (I08fb6, b/180731008)Herkese açık API'de olması amaçlanmayan ve zaten sizin için herhangi bir işlevi olmayan
AndroidComposeTestRule.AndroidComposeStatement
kullanımdan kaldırıldı. (Ibc46b)Dahili olarak oluşturulan kt sınıfı yeniden adlandırma (Ia0b9e, b/174162090)
FontLoadingStrategy.values
kaldırıldı (I42a9d, b/174162090)Global yazı tipi yükleyicinin adı
FontFamilyResolver
olarak değişti. (I4f773, b/174162090)Masaüstü için yeni yazı tipi yükleme sistemini kullanın. (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
iadelerState<Any>
(I4406c, b/174162090)
Hata Düzeltmeleri
- TextField'lar artık odaklandıklarında ve klavye gösterildiğinde klavyenin üzerinde tutulacak. Bu durum, sanal giriş modu
ADJUST_PAN
olduğunda geçerli olacak. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolver
için yerel birleştirme kullanır. - Masaüstü
FontLoader
desteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090) - Yazılım klavyesi giriş türü, metin alanları arasında odak değiştirilirken artık titreme yapmıyor. (I1bf50, b/187746439)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Döner yan düğmeli giyilebilir cihazlar için
Modifier.onRotaryScrollEvent()
veModifier.onPreRotaryScrollEvent()
eklendi (I18bf5, b/210748686) - Deneysel
View.createLifecycleAwareRecomposer
uzantısı ekleyin (I0cde6)
Harici Katkı (External Contribution)
PointerEvent.scrollDelta.y
artık Android'de ters çevriliyor (fare tekerleğini sağa eğdiğimizde artık -1 yerine 1 döndürüyor) (Ia9811)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
FontFamily.canLoadSynchronously
kullanımdan kaldırıldı. Bu özelliğin semantik anlamı yoktur. (Ica5ef)- Düzen denetleyicisinde değişmez kimlikler oluşturmak için
CompositionData
öğesine kimlik alanı eklendi. (Ic116e) - Önizleme cihazları listesine Wear OS cihaz kimlikleri eklendi (I93232)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
'e bağlıdır.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.ui:ui-*:1.1.1
iptal edilir. 1.1.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
konumundaNullPointerException
düzeltildi (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
LazyVerticalGrid
'da sağdan sola dil desteği düzeltildi (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.ui:ui-*:1.1.0
iptal edilir. 1.1.0 sürümü şu commit'leri içerir.
1.0.0 sürümünden beri yapılan önemli değişiklikler
- Android 12'deki Aşırı kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmasında yapılan iyileştirmeler
- Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerine uymak üzere düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişletilir. Bu, Compose Material'ı Material Design Components'ın davranışıyla aynı hale getirir. Böylece, Views ve Compose'u birlikte kullandığınızda tutarlı davranışlar elde edersiniz. Bu değişiklik, Compose Material bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
- Gezinme sütunu için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir.
- Kotlin'in yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.ui:ui-*:1.1.0-rc03
iptal edilir. 1.1.0-rc03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03'ü destekleyecek şekilde güncellendi.
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-rc01
iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan hata düzeltildi (I7cbfb).
SemanticsNodeInteraction.captureToImage()
artıkHardwareRenderer.isDrawingEnabled()
false
olduğunda da çalışacak. Bunun için arama süresince etkinleştirilmesi gerekir (Idf3d0).
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-beta04
iptal edilir. Version 1.1.0-beta04 contains these commits.
Yeni Özellikler
- Kotlin ile uyumlu olacak şekilde güncellendi
1.6.0
API Değişiklikleri
androidx.core.view
'da boş değerlere izin verme özelliği temizlendi (I7078a, b/204917439)- Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya kullanılıp kullanılmadığını kontrol etmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
- Kullanıcı arayüzü katmanında fare tekerleği etkinlikleri için destek ekler. (Ia14eb, b/198214718)
- Eşitlik için karşılaştırılacak anahtarları kabul eden ve atlama optimizasyonlarına uygun olan deneysel
Modifier.composed
aşırı yüklemeleri ekleyin. (Ice799, b/205851704) ComposeNotIdleException
artık doğrudanThrowable
yerineException
'den başlıyor. Bu durum,Exception
yakalayan catch ifadelerinin artıkComposeNotIdleException
yakalayabileceği anlamına gelir. (I9c217)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde metin tutamaçlarının hareket etmemesi sorunu düzeltildi. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta03
iptal edilir. Version 1.1.0-beta03 contains these commits.
API Değişiklikleri
- Yerleştirme değişikliğinin gözlemlenmesine olanak tanımak için yeni değiştirici Modifier.onPlaced eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine göre alt değiştiricinin ofsetinde ek değişiklikler yapılabilir. (I558fd)
InjectionScope.flush()
veInjectionScope.dispose()
kaldırıldı. Tüm etkinliklerin temizlenmesi ve kapsamın kaldırılması, daha önce olduğu gibi artık çağrılan perform*Input() yönteminin sonunda gerçekleşiyor. (I2bed8)MultiModalInjectionScope.Touch
veMultiModalInjectionScope.Mouse
kaldırıldı. Çok formatlı hareketler için dokunma ve fare etkinlikleri eklemek üzere artıkMultiModalInjectionScope.touch()
veMultiModalInjectionScope.mouse()
kullanabilirsiniz. Bu iki işlev de ilgili formatın alıcı kapsamına sahip bir lambda'yı kabul eder. (Idde18)
Hata Düzeltmeleri
durationMillis
inTouchInjectionScope.swipeWithVelocity
için varsayılan değer artık kaydırmanın mümkün olacağı şekilde hesaplanıyor. (I19deb)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta02
iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Öğeleri görüntülemek için kaydırma yapmaları amacıyla ebeveynlere istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459).
- Destek araçları için yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler'de incelemesine olanak tanır. (I4116e)
Harici Katkı (External Contribution)
- Modifier.pointerHoverIcon (I95f01) eklendi.
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-beta01
iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Ebeveynlere, bir öğeyi görünür hale getirmek için kaydırma yapmalarını isteyen istek göndermenize olanak tanıyan deneysel
BringIntoView
API'si eklendi (Ib918d, b/195353459). - Destek araçları için yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler'de incelemesine olanak tanır. (I4116e)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
iptal edilir. 1.1.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
ExperimentalComposeUiApi
öğesiniViewRootForInspector
veLayoutInfo.ownerViewId
öğesinden kaldırma (I5c2e3)- Daha iyi verimlilikle (Ib0d9a) Layout için çocuksuz bir aşırı yükleme eklendi.
- Modüller arası çağrılması gereken Composer yöntemlerinden
InternalCompilerApi
kaldırıldı (I1aa0b) SemanticsNodeInteraction.performSemanticsAction
artık işlevin çağrıldığıSemanticsNodeInteraction
değerini döndürüyor. (I9e5db)- Dokunma Modu/Dokunma Olmayan Modu'nu algılamak için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
- Tüketicilerin uzun basma zaman aşımı gibi işlemler için doğru değeri almasına olanak tanımak amacıyla
viewConfiguration: ViewConfiguration
,LayoutInfo
öğesine eklendi. (I76ca6)- Testlerin, uzun basma zaman aşımı veya dokunma eğimi gibi faktörlere göre giriş yerleştirmeyi ayarlamasına olanak tanımak için
viewConfiguration: ViewConfiguration
,InjectionScope
'ye eklendi. - Hem dokunma hem de fare girişi için uzun basma ve çift dokunmanın varsayılan süresi,
InjectionScope.viewConfiguration
içindeki değerlere göre değiştirildi.
- Testlerin, uzun basma zaman aşımı veya dokunma eğimi gibi faktörlere göre giriş yerleştirmeyi ayarlamasına olanak tanımak için
- TextField ve DropdownMenu'nun bulunduğu ExposedDropdownMenuBox'a dayalı ExposedDropdownMenu'nun uygulanması (If60b2)
- dismissOnOutsideClick, PopupProperties'e eklenerek artık kullanılmayan dismissOnClickOutside'ın yerini aldı. Yeni mülk, tıklama konumunu ve sabitleme sınırlarını alır. Bu sayede, onDismissRequest'in çağrılıp çağrılmaması konusunda daha ayrıntılı kontrol sağlanır. Örneğin, bu, dokunulduğunda bağlantının kapatılmasını önlemek için yararlı olabilir.
- updateAndroidWindowManagerFlags, PopupProperties'e eklenerek pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde düşük düzeyde kontrol olanağı sunuldu. Lambda'nın parametresi, PopupProperties değerlerinden hesaplanan ve WindowManager işaretleriyle sonuçlanan işaretler olacaktır (ör. odaklanılabilir). Lambda'nın sonucu, Android WindowManager'a iletilecek nihai işaretler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmeden bırakır. Bu API dikkatli bir şekilde ve yalnızca pop-up'ın çok özel davranış koşullarının olduğu durumlarda kullanılmalıdır. (I6e9f9)
Recomposer.state
, türünü StateFlow olarak değiştirmek için kullanımdan kaldırıldı veRecomposer.currentState
ile değiştirildi (Ic2ab3, b/197773820)InjectionScope
listesineflush()
vedispose()
eklendi. Sıraya alınmış tüm etkinlikleri hemen temizlemek ve kapsamı kaldırmak istediğinizde sırasıyla bu yöntemleri kullanın. (Ifb73a)- Kaydırılabilir bir kapsayıcıyı, verilen eşleştirici tarafından eşleştirilen içeriğe kaydıran
performScrollToNode(matcher: SemanticsMatcher)
işlevi eklendi. (Ic1cb8) InjectionScope
artıkDensity
'yi uyguluyor. Bu sayedeperformTouchInput
ve benzerlerinde piksel ile dp arasında kolayca dönüşüm yapabilirsiniz. (I8fe1f)
Hata Düzeltmeleri
- AndroidView artık ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner aracılığıyla LocalLifecycleOwner ve LocalSavedStateRegistryOwner'ı görünümüne yayıyor. (I38f96, b/179708470)
- WearOS'te SwipeToDismissBox'ın bazen kaydırmaları işlememesine neden olan sorun düzeltildi. (I9387e)
- Yerleştirilen giriş etkinlikleri arasındaki varsayılan süre 10 ms'den 16 ms'ye değiştirildi. Bu durum, belirli bir kaydırma gibi giriş hareketleri gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha05
iptal edilir. Version 1.1.0-alpha05 contains these commits.
API Değişiklikleri
- Değiştiriciler arası iletişim için destek eklendi (Id5467, b/198826874)
- PointerEventChange'e deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
LayoutInfo
listesinedensity: Density
velayoutDirection: LayoutDirection
eklendi. Bu sayedeLayoutInfo
tüketicileri,LayoutInfo
içinde gösterilen boyutları ve konumu doğru şekilde yorumlayabilir. (I002f1)- Fare etkinlikleri ekleme için deneysel destek eklendi. Fare etkinliklerini göndermeye başlamak için
performMouseInput
işlevini kullanın veyaperformMultiModalInput
ile çok formatlı bir giriş hareketi sırasındaMultiModalInjectionScope
öğesininMouse
özelliği üzerinden fare etkinlikleri gönderin. Kullanılabilir API'nin dokümanları içinMouseInjectionScope
adresini ziyaret edin. (Iaa4a8, b/190493367)
Hata Düzeltmeleri
- Kaydırma açısından kaydırılabilir öğeler (hem geç hem de geç olmayan) için erişilebilirlik desteği düzeltildi (I6cdb0).
- İyileştirilmiş
TouchInjectionScope.swipeWithVelocity
. Artık daha geniş bir giriş değişkeni aralığını kabul ediyor ve kaydırma oluşturulamıyorsa girişte değişiklikler öneriyor (I40fbe, b/182477143).
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
PointerEvent
artık fareyle üzerine gelme etkinliklerini desteklemek içinPointerEventType
içeriyor. (I091fa)- Çocukların, ebeveynin işaretçi girişinin sınırları dışında işaretçi girişini kabul etmesine izin verin. Ebeveynler, PointerInputScope.alwaysInterceptChildEvents özelliğiyle bu çağrıları engelleyebilir (I9eae3, b/192479655).
performGesture
veGestureScope
kullanımdan kaldırıldı. YerineperformTouchInput
veTouchInjectionScope
getirildi. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için
touchBoundsInRoot
ileSemanticsNode
arasına minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214) - İncelenebilir öğenin uygulanması yeniden yapıldı (I927bc, b/191017532)
- İncelenebilir öğenin değiştirilen parametre adı, oluşturulan öğeyle eşleşecek şekilde değiştirildi (I3a482, b/191017532).
performTouchInput
veTouchInjectionScope
yerineperformTouchInput
veTouchInjectionScope
'ı kullanıma sunarak diğer yöntemlerin (ör. fare) önünü açtık.TouchInjectionScope
,GestureScope
ile aynı yöntemlere sahiptir.movePointerTo
vemovePointerBy
yöntemleri iseupdatePointerTo
veupdatePointerBy
olarak yeniden adlandırılmıştır. Diğer tüm yöntemler aynıdır.TouchInjectionScope
davranışınınGestureScope
davranışından iki küçük ayrıntı dışında farkı yoktur:- İşaretçiler, taşıma etkinliği gönderilmeden taşındığında (diğer bir deyişle
updatePointerTo()
kullanılmış ancakmove()
kullanılmamış ve ardındandown()
çağrılmış) bir aşağı etkinliği gönderilirken önceki uygulama, etkinlik süresini ilerletir ve aşağı etkinliğini göndermeden önce bir taşıma etkinliği gönderirdi. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu özel senaryoda etkinlik zamanını ilerletmez. - İşaretçiler, hareket etkinliği gönderilmeden hareket ettirilirken (yukarıdakine benzer şekilde) bir yukarı etkinlik gönderildiğinde önceki uygulama, etkinlik süresini ilerletir ve yukarı etkinlik gönderilmeden önce bir hareket etkinliği gönderirdi. Yeni uygulama bu iki işlemi de yapmaz: İşaretçilerin yeni konumları yalnızca yukarı etkinlik aracılığıyla yansıtılır.
Son olarak,
TouchInjectionScope
, belirli bir işaretçinin mevcut konumunu almak için yeni bir yöntem sunuyor.currentPosition(pointerId: Int)
(If1191, b/190493367)- İşaretçiler, taşıma etkinliği gönderilmeden taşındığında (diğer bir deyişle
Hata Düzeltmeleri
- Minimum dokunma hedefi amacıyla, dokunma hedefi sınırlarının klip bölgesinin ötesine genişletilmesine izin verin. (I43e10, b/171509422)
- Android 12 cihazlarda esnek kaydırma desteği eklendi. (Iccf3c, b/171682480)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha03
iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Compose
1.1.0-alpha03
, Kotlin1.5.30
'e bağlı olacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Diğer değiştiricileri sarmak için
Modifier.inspectable
eklendi. (I1909b, b/191017532) - Klip işaretleri ve TileMode'ların daha yaygın kullanılan kombinasyonlarında bulanıklık kullanım alanlarını basitleştirmek için
BlurredEdgeTreatment
API'si eklendi. Çoğu kullanım alanında, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına ve bu sınırların dışındaki bölgelerin şeffaf siyahla bulanıklaştırılmasına ya da bulanıklaştırma çekirdekleri için içeriğin en yakın kenarını örnekleyerek içeriğin içerik sınırlarına kırpılmasına izin verilir. (I6b4b7, b/166927547) - Compose Desktop'ta RenderEffect desteği eklendi. Bulanıklaştırma görsel efektlerini kompozisyon hiyerarşisinin bir bölümüne eklemenin basit bir yolu olarak OffsetEffect ve bulanıklaştırma değiştiricisi kullanıma sunuldu. (I0f6aa, b/166927547)
- RenderEffect API'yi kullanıma sunduk.
Bu API, katmanın içeriğini değiştirmek için
Modifier.graphicsLayer
üzerinde isteğe bağlı olarak yapılandırılabilir. Bu, bir composable'ın ve bir kompozisyon hiyerarşisindeki alt composable'ların içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547) - AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() işlevlerine sahip (I507f0, b/179239764, b/182397793)
- Erişilebilirliği sağlamak için semantik ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
- Bulanıklık tabanlı RenderEffect'ler için kenar davranışını tanımlamada yararlı olan TileMode.Decal desteği eklendi. (I7e8ed, b/166927547)
performScrollToIndex
,performScrollToKey
,hasScrollToIndexAction
vehasScrollToKeyAction
artık kararlı API'dir (I142ae, b/178483889).- Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)
Hata Düzeltmeleri
- Şekil parametresinin null olup olmadığını açıkça kontrol etmek için BlurredEdgeTreatment'taki isBounded yöntemi kaldırıldı. (I85d68)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha02
iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
- Yerleştirilen hareketler artık zaman için bilgi kaynağı olarak MainTestClock'un zamanını kullanıyor.
performGesture
içine yerleştirilen etkinliklerin geçerli zamanı, MainTestClock'un geçerli zamanı olarak başlatılır. (Ifb364, b/192064452) DpRect(DpOffset, DpSize)
oluşturucu eklendi (I2cf16, b/194219828)- DpSize sınıfı eklendi (I7abb1, b/194219828)
Hata Düzeltmeleri
- VectorDrawable'larda ColorStateList'leri kök renk tonu özellikleri olarak desteklemek için vektör grafikleri XML ayrıştırması güncellendi. (I86915, b/195668138)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha01
iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
RelocationRequester.bringIntoView
artık parametre olarak dikdörtgen kabul ediyor. Bu sayede, bir composable'ın bir bölümünü görünüme getirebiliyoruz (Ice2c5, b/194330245)AnimatedImageVector
ve ilgili API'ler artık yeniandroidx.compose.animation:animation-graphics
modülünde yer alıyor. (I60873)- Taşınma isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
ColorPainter'a benzer şekilde, Painter içinde rastgele bir Brush çizimini desteklemek için BrushPainter API'si kullanıma sunuldu.
Brush API, BrushPainter içinde sorgulanan doğal bir boyut parametresine sahip olacak şekilde güncellendi (Ia2752, b/189466433).
Kaynak ve hedef dikdörtgenleri kullanan DrawScope#drawImage yöntemi, isteğe bağlı bir FilterQuality parametresini kullanacak şekilde güncellendi. Bu, piksel tabanlı sanat için büyütüldüğünde pikselli olması amaçlanan piksel sanat için kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)
Bir hareketteki etkinliklerin zamanlaması üzerinde daha fazla kontrol sağlamak için
GestureScope.advanceEventTime
yöntemi eklendi (Ibf3e2).
Hata Düzeltmeleri
- Çizim değiştiricilerin zincirlenmesini daha iyi desteklemek için Modifier.paint uygulamasının drawsContent'i çağırdığından emin olun.
Daha önce Modifier.paint'in Değiştiriciler zincirinde bir yaprak düğüm olması bekleniyordu. Ancak bu şekilde, bir composable kapsayıcıda (ör. kutu) yapılandırılması veya üzerine
Modifier.paint().border()
gibi ek süslemeler eklenmesi engelleniyordu. Modifier.paint'in, verilen painter'ın içeriklerini çizdikten sonra drawContent'i çağırmasını sağlayarak değiştirici kalıbıyla davranış tutarlılığını daha iyi hale getiriyoruz. (Ibb2a7, b/178201337, b/186213275) - İletişim kutuları artık platformun boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini yanlış olarak ayarlayın. (Iffaed, b/192682388) InfiniteAnimationPolicy
, :compose:ui'ye taşındı (I5eb09, b/160602714)- Tembel listeler ve normal kaydırma bileşenleri için semantik işlemler aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.ui:ui-*:1.0.5
iptal edilir. 1.0.5 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Türetilmiş durum örneklerinin izlenmesi sırasında yaşanan kilitlenme sorunu düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.ui:ui-*:1.0.4
iptal edilir. 1.0.4 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
'ya bağlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.ui:ui-*:1.0.3
iptal edilir. 1.0.3 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
'ya bağlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.ui:ui-*:1.0.2
iptal edilir. 1.0.2 sürümü şu commit'leri içerir.
Compose 1.0.2
sürümünü destekleyecek şekilde güncellendi. Compose 1.0.2
, Kotlin 1.5.21
ile uyumluluğunu sürdürüyor.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.ui:ui-*:1.0.1
iptal edilir. 1.0.1 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
'ya bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0
iptal edilir. 1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümünün temel özellikleri
Bu, Compose'un kararlı ilk sürümüdür. Daha fazla bilgi için lütfen resmi Compose Release bloguna göz atın.
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız aşağıdaki kilitlenme hatasıyla karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Düzeltmek için
build.gradle
dosyanızda minSdkVersion'i geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin7.1
sonraki sürümünde düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0-rc02
iptal edilir. 1.0.0-rc02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- İletişim kutuları artık platformun boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini yanlış olarak ayarlayın. (Iffaed, b/192682388)
Sürüm 1.0.0-rc01
1 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0-rc01
iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Split ui-tooling module into
ui-tooling
andui-tooling-preview
(Iefa28, b/190649014)
API Değişiklikleri
- Kullanımdan kaldırılan deneysel
FocusManager#moveFocusIn
veFocusManager#moveFocusOut
kaldırıldı (I227d7, b/170154986, b/186567354, b/168510304) - Canvas artık erişilebilirlik için contentDescription parametresini destekliyor. (Ib547c)
PopupProperties
içindekiuseDefaultMaxWidth
,usePlatformDefaultWidth
olarak yeniden adlandırıldı. (I05710)- İletişim kutuları artık ekran genişliğinin tamamını kullanabilir. (I83929, b/190810877)
- HSV ve HSL renk gösterimleri için deneysel destek eklendi. (Id7cf8, b/180731008)
Davranış Değişiklikleri
- Compose
@Preview
artıkLocalActivityResultRegistryOwner
işlevi sunuyor. Bu işlev,rememberLauncherForActivityResult()
gibi API'leri kullanan ve bu API'lerin çalışması için söz konusu sahibin varlığına bağlı olan Composables'ı önizlemenize olanak tanır. (Ib13d1, b/185693006) - Compose
@Preview
artıkBackHandler
gibi API'leri kullanan Composables'ı önizlemenize olanak tanıyan birLocalOnBackPressedDispatcherOwner
sunuyor. (Ia1c05, b/185693006)
Hata Düzeltmeleri
InfiniteAnimationPolicy
,androidx.compose.ui:ui
kuruluş birimine taşındı (I5eb09, b/160602714)- AnimatedImageVector, modül yapısını değiştirmek için geçici olarak kaldırıldı. (I41906, b/160602714)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta09
iptal edilir. 1.0.0-beta09 sürümü şu commit'leri içerir.
API Değişiklikleri
- Enum Role ve LiveRegionMode'u özel oluşturucuya (Id1890) sahip satır içi sınıflara dönüştürün.
- KeyboardCapitalization, satır içi sınıfa dönüştürülür. (Id5a1c)
- HapticFeedbackType'ı satır içi sınıfa değiştirin. (I255ec)
- Modifier.pointerInteropFilter is @ExperimentalComposeUiApi. (Iede6c)
- TextAlign, FontSynthesis ve TextDirection artık satır içi sınıflar. (I212fe)
- TextOverflow, satır içi sınıfa dönüştürüldü. (I433af)
- FontStyle artık satır içi bir sınıftır. (I9e48b)
Hata Düzeltmeleri
- Şu an için temel sabitler @ExperimentalComposeUiApi'dir. Kod tüketenler, kararlılık öncesinde özel sabitler bildirebilir. (Ia5d48)
- Oluşturma testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tespit edildi:
- Yerel bit eşlem olmadığından
ImageBitmap()
, NullPointerException'a neden olur. - Çizim yapılmadığı için
captureToImage()
, bir sonraki çizim geçişini süresiz olarak bekler (yani kilitlenir). - Yüklenen yazı tipi olmadığından tüm metinler yanlış ölçülür. Tüm karakterlerin yüksekliği yaklaşık 20 piksel, genişliği ise 1 pikseldir.
ComposeTestRule.waitUntil {}
beklerken ana iş parçacığını çalıştırmaz. Bu nedenle,ComposeTestRule.mainClock.advanceTimeUntil {}
ile aynı işlevi görür. Gelecekte daha fazla sınırlama belirlenmesi beklenmektedir. (I284fa)
- Yerel bit eşlem olmadığından
Eklenen profil kuralları
Bu sürüm, aşağıdaki Compose modüllerine profil kuralları ekler (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığın profil kuralları,
src/main
veya eşdeğer dizinde bulunan bir metin dosyasındabaseline-prof.txt
belirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşme için kullanılan bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.Yöntem kuralı aşağıdaki kalıba sahip olur:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Sınıf kuralı ise aşağıdaki kalıba sahip olur:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için kullanılanH
,S
veP
karakterlerinden bir veya daha fazlasıdır.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin,androidx.compose.runtime.SlotTable
sınıfının tanımlayıcısıLandroidx/compose/runtime/SlotTable;
olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yönteminin imzasıisPlaced()Z
'dir.Bu kalıplar, tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için joker karakterler (
**
,*
ve?
) içerebilir.
Kurallar ne işe yarar?
H
işaretine sahip bir yöntem, bu yöntemin "sık kullanılan" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.S
işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir. Başlangıçta yöntemin derlenmesi ve yorumlanması maliyetini önlemek için önceden derlenmelidir.P
işaretine sahip bir yöntem, başlatma işleminden sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığında önceden ayrılması gerektiğini gösterir.
Nasıl çalışır?
- Kitaplıklar, AAR yapıtlarında paketlenecek bu kuralları tanımlayabilir. Bu yapıtları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özel kompakt bir ikili ART profili oluşturmak için kullanılır. ART, uygulama cihazlara yüklendiğinde bu profilden yararlanarak uygulamanın belirli bir alt kümesini önceden derleyebilir. Bu sayede uygulamanın performansını, özellikle de ilk çalıştırma performansını artırabilir. Bunun, hata ayıklanabilir uygulamalar üzerinde hiçbir etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta08
iptal edilir. 1.0.0-beta08 sürümü şu commit'leri içerir.
API Değişiklikleri
NestedScrollSource
enum'unun yerini satır içi sınıf alıyor. (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true)
,FocusManager.clearFocus(force = true)
olarak yeniden adlandırıldı (Ia0c41)- Yeni enum değerleri eklendiğinde kapsamlı when ifadeleriyle ilgili sorunları önlemek için enum kullanımları satır içi sınıflara yeniden düzenlendi. (I2b5eb)
@ExperimentalComposeUiApi
,PopupProperties
hesabından kaldırılsın mı? (I01fa6)PointerType
, enum'dan satır içi sınıfa (If5058) değiştirildi.- ContentDescription ve Text semantik özellikleri artık tek değer değil, liste olarak kullanılıyor. Bu sayede, birleştirme yerine olduğu gibi birleştirme yapılabilir. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850).
Modifier.focusModifier()
desteği sonlandırıldı veModifier.focusTarget()
(I6c860) ile değiştirildi.Modifier.onSizeChanged()
veModifier.onGloballyPositioned()
artık satır içi işlevler değil (I727f6, b/186109675)KeyboardType
enum'unun yerini satır içi sınıf alıyor. (I73045, b/187055290)FocusState
numaralandırması,FocusState
arayüzüyle (Iccc1a, b/187055290) değiştirildi.- ImeAction enum'ının yerini satır içi sınıf aldı. (I18be5, b/187055290)
PlaceholderVerticalAlign
, satır içi sınıfa dönüştürülür. (If6290)- TextUnitType artık satır içi bir sınıftır. (I4cba9)
AnnotatedString.withAnnotation
işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak kullanılıyor. (I0cd0a)- TextUnitType ile TextUnit oluşturucusu artık ExperimentalComposeApi yerine ExperimentalTextApi olarak kullanılıyor.
Hata Düzeltmeleri
- beta07'de kullanıma sunulan ve LazyColumn/Row öğelerinin kaydırmadan sonra kısmen gösterilmesine neden olan hata düzeltildi (I8c9ac, b/188566058).
- Artık
detectDragGesures
,detectVerticalGestures
vedetectHorizontalGestures
, konum değişikliğini otomatik olarak kullanacak. onDrag geri çağırma işlemlerinde change.consumePositionChange'i çağırmanıza gerek kalmayacak (I42fc4, b/185096350, b/187320697). - Hizalama çizgileri sağlayan LayoutModifier'lar düzeltildi. Çocukların hizalama çizgileri değiştiğinde üst öğenin yeniden ölçülmemesine neden olan hata düzeltildi. (I4401f, b/174315652)
Modifier.onGloballyPositioned()
, tüm değiştiriciler uygulandıktan sonraki düzen koordinatlarını değil, bu değiştiricinin değiştirici zincirindeki koordinatlarını raporlayacak şekilde değiştirildi. Bu nedenle, artık değiştiricilerin sıralaması hangi koordinatların raporlanacağını etkiliyor. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta07
iptal edilir. 1.0.0-beta07 sürümü şu commit'leri içerir.
API Değişiklikleri
- İnceleyicide kullanılmak üzere
ViewRootForInspector
arayüzü eklendi (Ib70df) SubcomposeLayoutState
artık yeniden kullanılabilir yuva sayısını ayarlamayı destekliyor. Düzen, bir sonraki sefer yeni bir aralığa ihtiyaç duyduğumuzda yeniden kullanmak için aralıkları silmek yerine bu sayıya kadar etkin tutar (Ieb981).- KeyEventType sıralaması, satır içi bir sınıfla değiştirildi. (Id670a, b/187055290)
FocusDirection
enum'unun yerini satır içi sınıf alıyor. (Ib6d03, b/187055290, b/184086802)- SubcomposeLayout durumunu yükseltme özelliği eklenerek içeriğin, önceden slotId gerektiren bir yuvaya yerleştirilmesi sağlandı. Bu sayede, bir sonraki ölçüm geçişi daha hızlı olacak. Çünkü bir sonraki seferde, verilen slotId ile alt bileşen oluşturmaya çalıştığımızda bileşen oluşturmaya gerek kalmayacak. (I42580, b/184940225)
- Klip Seçim Kolu eklendi (Iff80d, b/183408447)
- LayoutInspector desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)
Hata Düzeltmeleri
- LazyColumn/Row, kaydırılarak görünürlükten çıkmış olsalar bile daha önce görünür olan 2 öğeyi etkin (kaldırılmamış) tutar. Bu sayede, yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt bileşenleri yeniden kullanmasına olanak tanınır. Bu da kaydırma performansını artırır. (Ie5555)
AnnotatedString
üzerindekiTextGeomerticTransform
veTextDecoration
, belirtildiği şekilde uygulanır. (I61900, b/184760917)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta06
iptal edilir. 1.0.0-beta06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Gezinme hareketiyle çakışmayı çözme (I1145e)
@ComposeCompilerApi
artık@RequiresOptIn
(Iab690)- Koleksiyonun ve öğelerinin erişilebilirlik hizmetleri için işaretlenmesine olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017).
- Dizinlenmiş öğeler içeren bir listede belirli bir dizine sahip öğeye gitmek için
SemanticsActions.ScrollToIndex
, anahtarlı öğeler içeren bir listedeki öğenin dizinini almak içinSemanticsProperties.IndexForKey
eklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirli bir dizine kaydıran
SemanticsNodeInteraction.performScrollToIndex
ve bir listeyi belirli bir anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKey
işlevi eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirli bir dizine kaydıran
- GraphicLayerInfo'ya ownerViewId eklendi (I19f62)
- Yazı tiplerini öğelerden, File ve FileDescriptor'dan yüklemek için Font() aşırı yüklemeleri eklendi (I5d382).
- Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan erişilebilirlik API'si
error
eklendi (I12997, b/180584804, b/182142737). - Yazı tiplerini öğelerden, Dosya ve Dosya Tanımlayıcı'dan yüklemek için
Font()
aşırı yükleme eklendi (I43007). - AnnotatedString,
TextFieldValue.Saver
konumuna kaydetme desteği.addTtsAnnotation
ve withAnnotation yardımcı işlevleriAnnotatedString.Builder
'e eklendi (I8cbdc, b/178446304) - TextUnit oluşturucu işlevi eklendi
TextUnit(value: Float, type: TextUnitType)
(I7ecce, b/178446304)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta05
iptal edilir. 1.0.0-beta05 sürümü şu commit'leri içerir.
API Değişiklikleri
- Deneysel
FocusManager.moveFocus(In)
veFocusManager.moveFocus(Out)
özellikleri eklendi (Ic5534, b/183746743) - Deneysel
performTextInputSelection
API'si eklendi (I2dcbb, b/178510628) InputEventCallback
arayüzü kullanımdan kaldırıldı. Arayüzün herhangi bir genel API'de kullanılması mümkün değildi ve kodda da kullanılmıyordu. (I34a02, b/184003208)- Kullanımdan kaldırılan
TextLayoutResult/createTextLayoutResult
işlevi. Bu, test için eklenmiş, kullanılmayan bir herkese açık işlevdir. İşlev, Compose metin API'leri için kullanılabilir bir işlem yapmıyor. Bu işlevin desteği sonlandırıldı ve daha sonra kaldırılacak. (I80413)
Hata Düzeltmeleri
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
erişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir alanın sonuna kaydırmak yerine, artık belirtilen yönde bir ekran kaydırılacak. (Ieccb0)- ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumlu (I6f9de, b/184718994)
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta04
iptal edilir. 1.0.0-beta04 sürümü şu commit'leri içerir.
API Değişiklikleri
SoftwareKeyboardController
üzerindekihideSoftwareKeyboard
veshowSoftwareKeyboard
öğelerini sırasıylahide()
veshow()
olarak yeniden adlandırın.- LocalSoftwareKeyboardController için tam CompositionLocal arayüzünü sağlayarak ayarlanmasına olanak tanır (özellikle testlerde kullanışlıdır) (I579a6)
- LiveRegion erişilebilirlik API'si eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri, değişiklikler hakkında kullanıcıyı otomatik olarak bilgilendirir (Idcf6f, b/172590946).
- TextOverflow.Visible özelliği kullanıma sunuldu. (Ic8f89)
Hata Düzeltmeleri
- Kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin hızlı fırlatmadan sonra yanlış konumlandırılması sorunu düzeltildi (Ie4d13, b/183877420). AndroidViewBinding
artıkAndroidViewBinding
, oluşturma hiyerarşisinden kaldırıldığındaFragmentContainerView
aracılığıyla şişirilmiş parçaları düzgün şekilde kaldırıyor. (Ib0248, b/179915946)AndroidViewBinding
artıkFragmentContainerView
aracılığıyla şişirilen parçalarıComposeView
birFragment
içinde olduğunda doğru şekilde yerleştiriyor. Bu sayede, söz konusu parçaların durumunu kaydetme ve geri yükleme ile ilgili sorunlar düzeltiliyor. (I70eb0, b/179915946)- Compose ViewBinding artık Fragment
1.3.2
'a bağlı ve yapılandırma değişikliklerinden sonraFragmentContainerView
aracılığıyla şişirilmiş parçaları tutarlı bir şekilde gösteriyor. (I0743d, b/179915946)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta03
iptal edilir. 1.0.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
- ComposeView'un ViewTree bağımlılıkları için ertelenmiş kontrol (I8dbbf, b/182466548)
GestureScope
içindekiswipeUp
/swipeDown
/swipeLeft
/swipeRight
işlevlerine isteğe bağlıstartX
/endX
vestartY
/endY
parametreleri eklendi. (I49e2d, b/182063305)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta02
iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardController
composition local API'si eklendi. (I5951e, b/168778053) - TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardController
composition local API'si eklendi. (I84472, b/168778053) - Aşağıdaki
SemanticsMatcher
kaldırıldı:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(If16bd)
- Aşağıdaki
SemanticsMatchers
, @ExperimentalTestApi olarak işaretlendi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(Ia600c)
- Aşağıdaki
SemanticsMatcher
'lar eklendi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(I2f502)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımına kısıtlamalar getirme (I6aa29, b/174531520)
androidx.compose.ui:ui
artık AppCompat veya Fragment'e bağlı değil. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3+ / Fragment 1.3+ sürümlerini kullandığınızdan emin olun. Bu sürümler, ComposeView için gereken yaşam döngüsü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak için gereklidir. (I1d6fa, b/161814404)- Navigation-compose hedefinde kullanıldığında bozuk
rememberSaveable { mutableStateOf(0) }
simgesiyle ilgili düzeltme. (I1312b, b/180042685, b/180701630) - TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardController
composition local API'si eklendi. (I658b6, b/168778053) ComposeRootRegistry
'nıntearDownRegistry()
bölümünde nadiren görülen NoSuchElementException hatası düzeltildi (Iddce1).
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-beta01
iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- onStart geri çağırması
detectDragGestures
'ya eklendi (I67269, b/179995594) - Boyutlandırma için doğal boyut değiştiriciler artık deneysel değildir. (I15744)
- MeasureBlocks, MeasurePolicy olarak yeniden adlandırıldı ve eğlenceli bir arayüze dönüştürüldü. Düzen API'leri, MeasurePolicy'yi kullanacak şekilde güncellendi / basitleştirildi. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
Button
veModifier.clickable()
gibi bileşenlereinteractionState = remember { InteractionState() }
iletmek yerineinteractionSource = remember { MutableInteractionSource() }
kullanın.- Şunun yerine:
Interaction.Pressed in interactionState
Bunun yerine InteractionSource.collectIsPressedAsState() gibi InteractionSource'taki uzantı işlevlerini kullanmanız gerekir. - Karmaşık kullanım alanlarında, Etkileşimler akışını gözlemlemek için InteractionSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerine ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'a AccessibilityMananger arayüzü ve LocalAccessibilityMananger ekleyin (I53520)
- Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için özellik yerine işlev kullanın (I580ed, b/169874631, b/175142755).
- Typealias'ler temel türlerle değiştirildi:
ColorStop
adlı bankanın yeni adıPair<Float, Color>
SpanStyleRange
artık `AnnotatedString.RangeParagraphStyleRange
adlı bankanın yeni adıAnnotatedString.Range<ParagraphStyle>
StringAnnotation
adlı bankanın yeni adıAnnotatedString.Range<String>
- (I8dd1a)
- CoreTextField gibi düşük düzeyli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Placeable artık, alt düzenin ölçtüğü boyutu temsil eden measuredSize'ı kullanıma sunuyor. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla Sekmeler veya Radyo Düğmeleri koleksiyonunun işaretlenmesine olanak tanıyan selectionGroup değiştiricisini ekleyin (Ie5c29).
compositionLocalOf
vestaticCompositionLocalOf
içindefaultFactory
artık isteğe bağlı değil, zorunlu.Bu değişiklik, varsayılan fabrika sağlanmayan, boş değer atanamayan türlerdeki olası bir tür hatasını ortadan kaldırır. Daha önce bu, null yapılamayan bir tür için null referans sağlıyordu.
Boş değer atanabilir türler için varsayılan fabrika olarak
{ null }
değerini sağlamayı düşünebilirsiniz.Anlamlı bir varsayılan değer sağlanmadığı sürece, null değer atanamayan türlerle yerel ayarların kullanılmasını önermiyoruz. Mantıklı bir varsayılan değer yoksa
defaultFactory
lambda bir istisna oluşturmalıdır. Ancak bir istisna oluşturmak, yerel ayarın tüketicilerinin, tür sistemi tarafından zorunlu kılınmayan bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Kullanımdan kaldırılan ui modüllerindeki yöntemler kaldırıldı (I646f6).
Boyut değiştiricilerin adı değiştirildi. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
Modifier.tapGestureFilter
kaldırıldı. Bunun yerineModifier.pointerInput { detectTapGestures(...) }
politikasını kullanın. (I266ed, b/175294473)Kısmi tüketim, işaretçi giriş sisteminden kaldırıldı. Kısmi tüketimi koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)
Orientation, temel pakete taşındı. VelocityTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)
imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector yardımcı sınıflarında uzantı işlevleridir.
load{Image,Vector,Font}Resource
işlev silindi. (I89130)AnimationClockObservable ve alt sınıfları kaldırıldı. AnimatedFloat kaldırıldı. (Icde52, b/177457083)
Providers, CompositionLocalProvider olarak yeniden adlandırıldı.
- Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
- ComposableLambdaN, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
- snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
- @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değil.
- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
- isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
- Çeşitli üst düzey API'ler farklı dosyalara taşındı ve yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu durum, kaynak uyumluluğunu değil ikili uyumluluğu bozacaktır. Bu nedenle, çoğu kullanıcı için sorun teşkil etmez.
- (I99b7d, b/177245490)
ComponentActivity.setContent()
, compose:ui'den kaldırıldı.androidx.activity:activity-compose:1.3.0-alpha01
adresinden alınan kodu kullanın.viewModel()
veLocalViewModelStoreOwner
, compose:ui'den kaldırıldı.androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
cihazındaki (I6f36b) öğeleri kullanın.Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine kaydırılabilir arayüz kullanılıyor (I4f5a5, b/174485541, b/175294473).
PointerInputModifier'daki CustomEvens desteği kaldırıldı (I02707, b/175294473)
SnapshotStateObserver artık deneysel değil (Id2e6a)
Daha önce desteği sonlandırılan bazı API'ler (Ice5da, b/178633932) silindi.
longPressGestureFilter ve doubleClickGestureFilter kaldırıldı. detectTapGestures gibi yardımcı işlevlerle Modifier.pointerInput'u kullanın (I2fedf, b/175294473).
String.format API'si kaldırıldı. Çeşitli toString yöntemlerindeki kullanımlar, String.format'ı dahili olarak kullanmayacak şekilde yeniden düzenlendi. (Id1290)
Kaldırılan dp onayları (I798d2)
androidx.compose.runtime:runtime-dispatch kaldırıldı (I55feb)
Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
Kaldırıldı
runBlockingWithManualClock
(I15cdc, b/179664814)Modifier.verticalScroll()/horizontalScroll() içindeki kaydırma konumu artık Int'lerle temsil ediliyor (I81298).
FlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)
Tüm ImeAction geri çağırmaları için aynı işlemi ayarlamaya yardımcı olan bir yardımcı işlev eklendi (I63447, b/179226323).
Yakında yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma işlevi, tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
FontSpan ve FontWeightStyleSpan artık kullanılmıyor ve kaldırıldı. (Ie5b56, b/177423444)
Material API'de aşağıdaki değişiklikler yapıldı:
- Varsayılan dolguyu özelleştirmeye olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
- Gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesiyle ilgili API yönergelerine uymak için BackdropScaffold'daki parametreler yeniden sıralandı.
- BottomNavigationItem'daki
icon
parametresi,selected
veonClick
sonrasına taşındı. - BottomNavigationItem'daki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametrelericontent
olarak yeniden adlandırıldı. ButtonDefaults.buttonColors()
içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediğinden kodunuzda hataya neden olmayacağını lütfen unutmayın. Adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde kodunuz eskisi gibi çalışmaz.darkColors()
listesinesecondaryVariant
parametresi eklendi. Bu renk genellikle koyu temadakisecondary
ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.- Yaygın olarak kullanılmadıkları / faydalı olmadıkları için ElevationDefaults ve animateElevation() işlevleri herkese açık API yüzeyinden kaldırıldı.
Slider
içindekionValueChangeEnd
,onValueChangeFinished
olarak yeniden adlandırıldı ve boş değer atanabilir hale getirildi.- Tutarlılık için
Snackbar
içindekitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolguyu özelleştirmeye olanak tanımak için
contentPadding
parametresiDropdownMenuItem
'ye eklendi vecontent
,RowScope
'ün uzantısı olarak ayarlandı. ModalDrawerLayout
,ModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
,BottomDrawer
olarak yeniden adlandırıldı.- (I1cc66)
Hata Düzeltmeleri
- Compose'da AnimatedVectorDrawable kaynaklarını kullanmak için API eklendi. Bir
<animated-vector>
XML'yi AnimatedImageVector olarak yüklemek ve painterFor (I8ea91) ile animasyonunu yapmak için animatedVectorResource'u kullanın. - TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-alpha12
iptal edilir. 1.0.0-alpha12 sürümü şu commit'leri içerir.
API Değişiklikleri
- ViewGroups desteği UiApplier'dan kaldırıldı. Kullanımdan kaldırılan emitView composable'ları kaldırıldı. (Ifb214)
- Modifier.pointerInput artık işaretçi girişi algılama coroutine'inin yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek üzere remember anahtarları gerektiriyor. (I849cd)
- CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
- Bounds, DpRect (I4b32a) olarak yeniden adlandırıldı.
- Test güncellemesi: hasText(), metin alanındaki hem giriş hem de etiket/ipucu/yer tutucu metinleri kontrol edecek (Iab803)
- viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose'a taşındı. Artık bu işlevi kullanmak için ayrı bir bağımlılık olan androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01'i eklemeniz gerekecek. (I7a374)
- AccessibilityAction'da null değer atanabilir işleme izin ver, AccessibilityAction ve CustomAccessibilityAction'daki işlem etiketini CharSequence'dan String'e değiştir (I0dc82)
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter, BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Alt dizeyi artık bağımsız değişken olarak kullanan daha iyi alt dize testi API'leri (Icbe78)
- Özel odak sırası belirtmeden FocusRequester'ı kabul eden bir
Modifier.focusOrder()
eklendi. Bu, bir composable için yalnızca bir referans belirtmemiz gerektiğinde ancak özel bir odaklanma sırası belirtmemiz gerekmediğinde kullanışlıdır (I4f52a, b/179180978). - ComponentActivity.setContent, androidx.activity:activity-compose modülünde androidx.activity.compose.setContent'e taşındı. (Icf416)
- Destructuring ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
- Pop-up'ın platforma özel olması sağlandı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve
isFocusable
,PopupProperties
(Ieeea5) içindefocusable
parametresine taşındı. - İletişim kutusu platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
- LayoutNode dahili yapıldı (I8a7b1, b/175103944)
- Constraints.enforce, Constraints.constrain ile değiştirildi. (I8b8ea)
- loadFontResource kullanımdan kaldırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
- Performans nedeniyle, ScrollAxisRange semantiği artık doğrudan Float değerleri yerine Float döndüren lambda'ları kabul ediyor. (If4a35, b/178657186)
- Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantiği ve semantiği kontrol etmek için ilgili test yöntemleri eklendi (I8e07a).
- Made OwnerLayer/OwnerScope/OwnerSnapshotObserver internal (I4ffaf, b/175103944)
- toIntPx() işlevinin adı roundToPx() olarak değiştirildi. (I9b7e4, b/173502290)
- IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
- Snapshot API, API yönergesiyle daha tutarlı olacak şekilde güncellendi ve dahili uygulama sınıfları herkese açık API'den gizlendi. (Id9e32)
- Genişletme ve daraltma semantik işlemleri eklendi. ModalBottomSheetState'e expand ve halfExpand eklendi (Ib5064)
- Modifier.dragGestureFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, tek eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473) - Ambients, Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Ambients, AmbientFoo olarak adlandırılırdı. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
- Desteği sonlandırılan BaseTextField kaldırıldı. Bunun yerine BasicTextField'ı kullanın. (I71368)
- Seçim, temel katmana taşındı. (I7892b)
- Daha önce
state { 0 }
composable'ı kaldırdığımız ve şimdiremember { mutableStateOf(0) }
gibi kullanımları desteklediğimiz gibi,savedInstanceState { 0 }
composable'ı da kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmanız gerekir. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa bu tür otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir kaydedici nesne iletiyorsanız artıkstateSaver
parametresine sahip yeni bir rememberSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şu şekilde görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Erişilebilirlik için şifre semantiği eklendi (I231ce)
- Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05)
emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programlarının artık olumlu bir performans etkisi veya değeri olmadığından desteği sonlandırıldı (I0484d).snapshotFlow
vewithMutableSnapshot
artık deneysel değil (I6a45f)- Yeniden oluşturucular artık kapatılabilir. Kapalı yeniden oluşturucular, alt coroutine'ler tamamlanana kadar yeniden oluşturmaya devam eder. Recomposer.shutDown, kapatma ile karşıtlık oluşturması için iptal olarak yeniden adlandırıldı. (Ib6d76)
- UiSavedStateRegistry, SaveableStateRegistry olarak, AmbientUiSavedStateRegistry ise AmbientSaveableStateRegistry olarak yeniden adlandırıldı ve her ikisi de androidx.compose.runtime.saveable paketine taşındı. (I30224)
- Artefact androidx:compose:runtime:runtime-saved-instance-state, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac).
- ui paketindeki uzun süredir kullanımdan kaldırılmış birçok API silindi. (I2f2dc)
- compose:runtime-dispatch yapısı artık kullanımdan kaldırıldı. MonotonicFrameClock artık compose:runtime içinde, AndroidUiDispatcher ise compose:ui içinde bulunabilir. (Ib5c36)
- Outline.* sınıfları artık veri sınıfları değil (I4879e, b/178001427)
view.captureToImage()
, yerine başka bir karakter eklenmeden kaldırıldı. (I7fcd2)- Kaynak içeriğin RGB değerlerini değiştirmek için kullanılan ColorMatrix API'si kullanıma sunuldu. ColorFilter API, arayüz olacak ve PathEffect'in uygulanmasıyla eşleşecek şekilde yeniden düzenlendi. (Ica1e8)
- Shape'in createOutline işlevine layoutDirection parametresini ekleyin. Bu sayede, düzen yönüne duyarlı şekiller oluşturabilirsiniz. (I57c20, b/152756983)
- onImeActionPerformed kullanımdan kaldırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
- Sonsuz animasyonlarda uygulanacak bir
InfiniteAnimationPolicy
coroutine bağlamı öğesi kullanıma sunuldu.ComposeTestRule
ile testler çalıştırılmadığı sürece varsayılan olarak politika yüklenmez. (I50ec4, b/151940543) - canDrag, Modifier.scrollable'dan kaldırıldı. (Id66e7, b/175294473)
- Yeni bir parentCoordinates özelliği için LayoutCoordinates.parentCoordinates, LayoutCoordinates.parentLayoutCoordinates olarak yeniden adlandırıldı. parentCoordinates özelliği artık üst değiştiricinin LayoutCoordinates'ini sunuyor. Bu değişiklik, onSizeChanged() ve onGloballyPositioned() için daha eksiksiz kullanım alanları sağlayacak (Idfbfd, b/177926591).
- tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.clickable veya Modifier.pointerInput ile detectTapGestures işlevini kullanın. (I6baf9, b/175294473)
- SaveableStateRegistry'nin unregisterProvider'ı kaldırıldı. Bunun yerine, artık registerProvider() işlevi, kaydı silmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739).
- rememberSavedInstanceState() işlevinin adı rememberSaveable() olarak değiştirildi ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
- CoreText ve CoreTextField, herkese açık API'den kaldırıldı.
- Kullanımdan kaldırılan SelectionContainer aşırı yüklemesi kaldırıldı.
- (I99c19)
- Compose'un doğrudan WindowManager'a eklenen/kaldırılan hiyerarşilerde kullanıldığı testler artık daha kararlı. (Ie81ed, b/175765614)
- Recomposer.current() kaldırıldı. [Abstract]ComposeView artık pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, pencere kapsamlı ve geç oluşturulan Recomposer'ları varsayılan olarak kullanıyor. Ana makinenin yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon işaretleri duraklatılır. (I38e11)
- Recomposer.runningRecomposers artık süreçteki devam eden kompozisyon durumunu gözlemlemek için salt okunur RecomposerInfo'nun genel bir StateFlow'unu sunuyor. Şu anda kullanımdan kaldırılmış olan Recomposer.current() yerine bu API'yi tercih edin. (If8ebe)
- Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate'ten androidx.compose.runtime.saveable'a taşındı (I77fe6).
- EditCommands, AnnotatedString'i kabul eder. Ancak bu değişiklik yalnızca API'de geçerlidir ve çok stilli metin düzenleme henüz uygulanmamıştır. (I4c3ea)
- Çalışma süresi ve süre kaldırıldı. (Ib9bf4, b/177420019)
- CompositionData.asTree() ve ilgili API'ler ayrı bir ui-tooling-data modülüne taşındı ve deneysel olarak işaretlendi (Ic95b8).
- RounderCornerShape, CutCornerShape ve CornerBasedShape üzerindeki parametreler, şeklin sağdan sola yönünde otomatik olarak yansıtılmasını desteklemek için soldan/sağdan başlayarak/biterek yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlarda AbsoluteRounderCornerShape ve AbsoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüzde artık tür parametresi de kullanılmıyor.
Bu, kaynak kodu uyumluluğunu etkilememesi gereken ancak ikili uyumluluğu bozan bir dahili değişikliktir. (I3b922, b/169406779)
Yanlışlıkla herkese açık hale gelen StringBuilder.deleteAt işlevini kaldırma (Id6ed9)
Hata Düzeltmeleri
- Başka bir kompozisyonun alt öğesi olan görünüm hiyerarşilerine yerleştirilen ComposeView'lar artık üst öğelerinin alt kompozisyonlarını barındırıyor (I92883).
- ImageBitmap nesneleri yüklenirken kaynak çizilebilir önbelleğini yeniden kullanmak için compose'un imageFromResource API'si güncellendi. (If3627, b/178751994)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha11
iptal edilir. 1.0.0-alpha11 sürümü şu commit'leri içerir.
API Değişiklikleri
- WithConstraints, BoxWithConstraints olarak yeniden düzenlendi ve foundation.layout'a taşındı. (I9420b, b/173387208)
- Key.DPadUp kullanımdan kaldırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
- Sahip arayüzü bundan sonra dahili olacak. (If8e35)
- Odağı programlı bir şekilde taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
- PopupPositionProvider, global koordinatlar yerine pencereye göre koordinatlar kullanacak şekilde değiştirildi. parentGlobalBounds'u anchorBounds olarak yeniden adlandırır ve windowGlobalBounds'u windowSize: IntSize olarak değiştirir (I2994a).
- Süre ve Çalışma Süresi, uzun milisaniye ile değiştirilir. Bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldırır. (Ia33b2, b/175142755, b/177420019)
- AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365)
- Vektör grafiklerinin köküne uygulanan renklendirme ayrıştırmasını desteklemek için güncellenmiş vektör grafikleri API'si. (Id9d53, b/177210509)
- Cihazları ayırt etmek için PointerInputChange'e toolType eklendi (Iac787, b/175142755)
- AmbientWindowManager, AmbientWindowInfo olarak yeniden adlandırıldı (I2686a, b/177084714, b/177084983)
- Kullanımdan kaldırılan genel koordinat yöntemleri ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)
- İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsLayer eklendi. (I315df)
- FocusRequester.createRefs, değişebileceği için deneysel olarak işaretlendi. (I2d898, b/177000821)
- SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, horizontalScrollAxisRange olarak yeniden adlandırıldı. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
- PointerInputData kaldırıldı ve PointerInputChange, PointerInputData'nın tüm alanlarını içerecek şekilde değiştirildi. PointerInputEvent ve PointerInputEventData, herhangi bir genel API'de kullanılmadığından dahili hale getirildi. (Ifff97, b/175142755)
- dp'nin ham piksellere dönüştürülmesini desteklemek için GraphicsLayerScope uygulamasında yoğunluk güncellendi. (Ied528, b/176819695)
- Satır ağırlıklı sıralamayı takip etmek ve farklı matris temsilleri arasında dönüşümleri kolaylaştırmak için dizin sabitleri sağlamak üzere matris API'si güncellendi. Bu sayede, SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığı dahili olarak eşleştirilir. (I432e6)
- Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
- Move String.fintPrecedingBreak ve String.fingFollowingBreak'i InternalTextApi'ye taşıyın. (I657c4)
- androidx.compose.ui.util.isSurrogatePair, herkese açık API'den kaldırıldı. (Ia9494)
- TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı.
- TransformedText artık bir veri sınıfı değil (Ie672a)
data class
adlı öğretmen, aşağıdaki sınıflardan kaldırıldı:- InlineTextContent
- LocaleList (I605c7)
- Aşağıdaki sınıflar artık veri sınıfları değildir:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
- VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4).
- İşlev referansı parametre türü (I5e1bd) eklendi.
- Dönüştürülmüş sınırları InspectorNode'a (Ice42f) ekleyin.
Hata Düzeltmeleri
- onCommit, onDispose ve onActive, SideEffect ve DisposableEffect API'leri lehine kullanımdan kaldırıldı (If760e).
Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- İlk harfleri küçük olan önceki fabrika işlevleri kullanımdan kaldırıldı
- Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürüyor
- Alt sınıfların oluşturucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulabilmelerini sağlayın.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7).
ComposeContentTestRule
tanıtıldı. Bu parametre,ComposeTestRule
öğesini genişletir veComposeTestRule
öğesinden kaldırılansetContent
öğesini tanımlar.createEmptyComposeRule()
döndüren ve sizin için bir Etkinlik başlatmayan bir fabrika yöntemicreateEmptyComposeRule()
eklendi.ComposeTestRule
Testiniz sırasında etkinliğinizi başlatmak istediğinizde bunu kullanın. Örneğin,ActivityScenario.launch
(I9d782, b/174472899) kullanmaanimateAsState artık animateFooAsState olarak adlandırılıyor. Burada Foo, animasyon uygulanan değişkenin türünü (ör. Float, Dp, Offset vb.) ifade ediyor (Ie7e25).
Resim ve simgeye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c).
displaySize, kullanılmaması gerektiğinden kaldırılmalıdır. Genellikle en azından onRoot() veya pencere boyutunu kullanmak daha iyidir. (I62db4)
OnSizeChanged, düzenin içeriklerinin boyutunu bildiriyordu. Artık değiştirici zincirindeki konumunda boyutu bildirir. (I36b78, b/177562900)
emit() API'si ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler aynıdır. Yalnızca Compose'un adlandırma kurallarına uymak için farklı bir ada sahiptir (I4137b).
TextFieldValue, AnnotatedString'i kabul eder. Ancak bu değişiklik yalnızca API'de geçerlidir ve çok stilli metin düzenleme henüz uygulanmamıştır.
- EditingBuffer oluşturucu parametrelerinden
initial
kaldırıldı. (I326d5)
- EditingBuffer oluşturucu parametrelerinden
invalidate ve compositionReference() işlevlerinin desteği, sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri lehine sonlandırıldı. (I583a8)
AnnotatedString, kotlin.CharSequence'ten genişletilecek şekilde değiştirildi. Bu nedenle, length ve subSequence artık örnek işlevler, uzantı işlevleri ise kaldırıldı. (Iaf429)
RememberObserver, CompositionLifecycleObserver'ın yerini alıyor ve CompositionLifecycleObserver artık kullanımdan kaldırıldı.
RememberObserver
, değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemlerleCompositionLifecycleObserver
yerine kullanılabilir. Yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bu, önerilen uygulamadır ve olmaya devam edecektir. Ancak bir kompozisyonda bir referans birden fazla kez hatırlanırsaonRemembered
,onEnter
yalnızca bir kez çağrılırken her referans için çağrılır.onEnter
Nesne,WithConstraints
veScaffold
gibi alt bileşimlerde kullanılıyorsa birden çok kez çağrılıyordu. Bu durum, tekonEnter
çağrısı garantisini güvenilmez hale getiriyordu veRememberObserver
için kaldırıldı.RememberObserver
,remember
'ye iletilen geri çağırma işlevindenRememberObserver
örneği döndürülürse ancak beste durumunda hatırlanmazsa çağrılanonAbandoned
işlevini ekler. Bu nedenle,onRemembered
işlevi hiçbir zaman çağrılmaz. Bu durum, bir istisna kompozisyonu tamamlamadan önce sonlandırırsa veya kompozisyon, oluşturulduğu durum artık geçerli olmadığı ya da başka bir nedenle artık gerekli olmadığı için atılırsa ortaya çıkabilir. Yukarıdaki tek referans önerisini izleyenRememberObserver
örneği harici bir kaynağı izliyorsa hemonForgotten
hem deonAbandoned
, kaynağın artık gerekli olmadığını gösterir. Nesne,onRemembered
içinde başlatılan işi veya ayrılan kaynakları izliyorsaonRemembered
çağrıldığındaonAbandoned
çağrılmayacağındanonAbandoned
yoksayılabilir. (I02c36)2 veya daha fazla TextUnit arasında kullanımdan kaldırılan aritmetik işlemler. Int.sp ve Int.em gibi uzantı işlevleri yerine TextUnit.Sp ve TextUnit.Em işlevlerinin kullanımı sonlandırıldı. (I48369)
Herkese açık kaynakları açıkça belirtilmemiş (ör. public.xml aracılığıyla) kütüphanelerdeki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)
ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz/çizebildiğimiz için, kaydırılabilir çok fazla içeriğiniz olduğunda ScrollableColumn kullanmak LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanılmasını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)
fabrika yöntemi.items(items: List)
veitemsIndexed(items: List)
artık uzantı işlevleri olduğundan kullanıldıklarında manuel olarak içe aktarılmaları gerekir. Diziler için yeni uzantı aşırı yüklemeleri:items(items: Array)
veitemsIndexed(Array)
(I803fc, b/175562574)Lütfen ImeAction.NoAction yerine ImeAction.None kullanın.
- Lütfen ImeAction.Unspecified (Ie1bcc) yerine ImeAction.Default'u kullanın.
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
TextInputService.onStateUpdated, updateState olarak yeniden adlandırıldı (Id4853)
TransitionDefinition tabanlı geçiş kullanımdan kaldırıldı (I0ac57)
TextUnitType.Inherit kaldırıldı. Lütfen bunun yerine TextUnitType.Unspecified kullanın. (I9ff64)
Sürüm 1.0.0-alpha10
13 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha10
iptal edilir. Version 1.0.0-alpha10 contains these commits.
Zarar Veren Değişiklik (Breaking Change)
Dahili derleyici API'sinin yeniden yapılandırılması, tüm
@Composable
işlevleri tamamlandıktan sonra, bileşim sonucunda oluşturulan düğümlerdeki değişikliklerin bileşimin "değişiklikleri uygula" aşamasında toplu olarak uygulanmasına olanak tanır.Bu, davranışta bir hataya neden olan bir değişikliktir. Değişiklikler uygulanana kadar dahili ve deneysel API'lerden düğümler kullanılamayacağından uygulama kodunu etkileyebilir. Bu sorun genellikle, düğümler oluşturulup başlatılana kadar kodun yürütülmesini ertelemek için bu tür bağımlılıkları olan kodu
SideEffect
composable'ın içine alarak çözülebilir. (I018da)
API Değişiklikleri
- Özel odak geçiş sırası belirtmek için kullanılabilecek Modifier.focusOrder() işlevi eklendi (I90cf5, b/175899543, b/170155556, b/170155429).
- Kullanımdan kaldırılan focusObserver yerine onFocusChanged veya onFocusEvent kullanıldı (I3ecb9, b/175156387)
- EditOperations API'sindeki Değişiklikler
- EditOperation, EditCommand olarak yeniden adlandırıldı.
- EditOperation somut uygulamaları için Command soneki eklendi
- EditCommand'ler artık veri sınıfları değil
- EditOperation.process işlevinin adı applyTo olarak değiştirildi.
- InputEventListener, InputEventCallback olarak yeniden adlandırıldı.
- (I0a366)
- Kullanılmayan PxSquared, PxCubed ve PxInverse kaldırıldı. Size.center() işlevi özellik olarak değiştirildi. (I973f7)
- ui-test modülü artık test edilen kullanıcı arayüzleri için yeniden oluşturucuların oluşturulmasını yapılandırabilecek (Ibebd8)
- Hız, bileşen parçaları ve matematiksel işlemler içerecek şekilde değiştirildi. (Ib0447)
- Benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olması için
@ExperimentalTesting
,@ExperimentalTestApi
olarak yeniden adlandırıldı. - Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5).
- Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Layoutnode sınırları değiştiğinde Sahibi bilgilendirmek için geri çağırma ekleyin. (I72fd1)
- Unspecified sabiti olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse özellikleri eklendi. (I93f7b, b/174310811)
[Abstract]ComposeView API'lerini, Compose tabanlı görünümlerin yeniden kullanılmasına olanak tanıyacak şekilde genişletin. Bu sayede, daha sonra yeniden oluşturmak için kompozisyonları kaldırabilirsiniz. Pencere kapsamlı yeniden oluşturucuları yüklemek ve keşfetmek için API'ler ekleyin ve alt kompozisyonlar oluşturmak için CompositionReference'lar.
[Abstract]ComposeViews'in bileşimden çıkarma stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış, pencere ayrıldığında bileşimi çıkarmaktır. (I860ab)
Any.identityHashCode() genel API'si kaldırıldı (I025d7)
Doğrudan String.format kullanılması için toStringAsFixed API'si kaldırıldı. (Iaba6b)
Toggle'ı foundation Strings.kt dosyasına ekleyin (I4a5b7, b/172366489)
nativeClass, ui modülüne taşındı ve dahili hale getirildi. equals uygulamalarındaki nativeClass kullanımları, bunun yerine "is MyClass" kullanacak şekilde güncellendi. (I4f734)
Modifier.focus() ve Modifier.focusRequester() kullanımdan kaldırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
SelectionRegistrar.notifySelectableChange işlevi kullanıma sunuldu. Bu işlev, SelectionManager'a Selectable güncellemelerini bildirir. (I6ff30, b/173215242)
Çeşitli ana hat uygulamaları için sınırlayıcı dikdörtgeni elde etmek üzere Outline.bounds özelliğini kullanıma sunduk. (I16e74, b/175093504)
TestUiDispatcher'ın desteği sonlandırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
ImeOptions ve KeyboardOptions artık veri sınıfı değil (I3c898, b/168684531)
VisualTransformation API'deki Değişiklikler
- OffsetMap, OffsetMapping olarak yeniden adlandırıldı.
- OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı.
- PasswordTransformation artık veri sınıfı değil
- OffsetMapping kendi dosyasına taşındı
- (I0bdf3)
Konum, DpOffset olarak yeniden adlandırıldı ve getDistance() kaldırıldı (Ib2dfd)
fun Dp.isFinite() işlevi val Dp.isFinite olarak değiştirildi (I50e00).
Hata Düzeltmeleri
- Recomposer artık mevcut durumunun bir akışını göstererek etkinliğinin ve ilişkili efektlerin etkinliğinin izlenmesine olanak tanıyor. (Ifb2b9)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden erişilebilir (I87c57, b/173086397).
animate()
artıkT
yerineState<T>
döndürenanimateAsState()
ile değiştirildi. Bu, geçersiz kılma kapsamı State değerinin okunduğu yerle sınırlandırılabildiğinden daha iyi performans sağlar. (Ib179e)- Semantics role API'yi ekleyin ve Role'ü tıklanabilir, seçilebilir ve açılıp kapatılabilir SemanticsModifier'a parametre olarak ekleyin. Kaydırma çubuğunun da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
- Animasyonları arasında karşılıklı dışlama sağlayan yeni coroutine tabanlı API
Animatable
.- Çok boyutlu azalma animasyonunu desteklemek için yeni DecayAnimationSpec
- (I820f2, b/168014930)
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha09
iptal edilir. Version 1.0.0-alpha09 contains these commits.
API Değişiklikleri
- Desteği sonlandırılan KeyEvent.Alt artık kaldırıldı. Bunun yerine KeyEvent.isAltPressed'i kullanın. (Idd695)
- Modifier.keyInputFilter ve Modifier.previewKeyInputFilter desteği sonlandırıldı. Bunun yerine Modifier.onKeyEvent ve Modifier.onPreviewKeyEvent kullanın (Idbf1b, b/175156384)
- Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
- İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope, AwaitPointerEventScope olarak, handlePointerInput() ise awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)
- Otomatik Doldurma API'si artık deneysel bir API ve etkinleştirme gerektiriyor (I0a1ec)
- FocuSRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
- accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
- Özel etkinlikler, askıya alma işaretçi girişi API'sinden (Ia54d5, b/175142755) kaldırıldı.
- SelectionRegistrar'da çeşitli yeni işlevler kullanıma sunuldu ve onPositionChange, notifyPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
- Daha fazla LayoutNode üyesini dahili olarak işaretledik (I443c6).
- LayoutInfo, araçlar ve testler tarafından kullanılmak üzere kullanıma sunuldu (I9b190).
- AndroidOwner made internal (Ibcad0, b/170296980)
- ExperimentalPointerInput açıklaması kaldırıldı (Ia7a24)
- İç içe kaydırma sistemi eklendi. Daha fazla bilgi için Modifier.nestedScroll'a bakın (I36e15, b/162408885).
- subcomposeInto(LayoutNode) dahili hale getirildi (Id724a)
Applier
arayüzü, ağaç oluşturmayı yukarıdan aşağıya değil aşağıdan yukarıya doğru basitleştirecek şekilde değiştirildi.insert()
yöntemi,insertTopDown()
olarak yeniden adlandırıldı.insertBottomUp()
adlı yeni bir yöntem eklendi.Uygulayıcı, daha iyi performans gösterene bağlı olarak
insertTopDown()
veyainsertBottomUp()
kullanarak düzenlediği ağaca düğümler ekler.LayoutNode
veView
gibi bazı ağaçlar, yukarıdan aşağıya yerine aşağıdan yukarıya doğru oluşturulduğunda çok daha verimli olur. Bu değişiklikten önce, alttan üste yapıyı uygulamak için bir ekleme yığını gerekiyordu. Bu yığının, performans için alttan üste yapıya ihtiyaç duyan her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte, ağacı aşağıdan yukarıya doğru oluşturmak içinApplier
, yukarıdan aşağıya doğru oluşturmak için iseinsertTopDown()
kullanılır.insertBottomUp()
(Icbdc2)AndroidDialogProperties'e dismissOnBackPress ve dismissOnClickOutside özellikleri eklendi. Bunlar, iletişim kutusunun onDismissRequest lambda'sının ne zaman çağrılacağını yapılandırmaya olanak tanır. (If5e17)
PainterResource API'si eklendi. Bu API, Painter nesnelerini rasterleştirilmiş öğe biçimlerinden (ör. PNG'ler) veya VectorDrawable'lardan opak şekilde yüklemeyi yönetir. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Tüketiciler, bu yöntemi çağırarak Image composable'larında veya painter değiştiricilerinde kullanılacak bir Painter nesnesi alabilir. (I2c703, b/173818471)
Alt öğelerin semantiğini temizlemek ve yeni semantikler ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
Moved ContentDrawScope to ui-graphics module to be with DrawScope. (Iee043, b/173832789)
Çizilen şekillere farklı desenler sağlamak için PathEffect grafik API'si kullanıma sunuldu. PathEffect'in expect/actual uygulaması lehine NativePathEffect'in desteği sonlandırıldı. (I5e976, b/171072166)
Espresso'nun boşta kalma kaynaklarının Compose'da desteklenen bir varyantı olarak Compose'a IdlingResource arayüzleri eklendi. ComposeTestRule (I433f3) aracılığıyla kaydedilebilir ve kaydı iptal edilebilir.
ComposeIdlingResource'un küresel olarak kaydı kaldırıldı ve saatlerin ComposeIdlingResource'a küresel olarak kaydı kaldırıldı (I32660).
Hata Düzeltmeleri
- Ofset değiştiricilerdeki lambda'lar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader ve SlotWriter, herkese açık API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık bu işlevler, e-posta oluşturma modülünün içinde yer alıyor.
Bileşen bilgilerini ayıklamak için kullanılan ui-tooling API'nin yerine CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak kullanıcı arayüzü araçları API'sinin yorumladığı ham bilgileri sağladıkları için (I31a9c) kullanıcı arayüzü araçları API'si dışında kullanılmak üzere tasarlanmamıştır.
Çizim ortamının boyutlandırma bilgileri kullanılabilir olduğunda gölgelendirici örneğini geç oluşturmak için ShaderBrush yeniden düzenlendi. Bu, özel DrawModifier uygulamaları oluşturmak zorunda kalmadan, kompozisyon sırasında bir composable'ın tüm çizim sınırlarını kaplayan gradyanlar tanımlamak için kullanışlıdır.
Gradyan nesnesindeki fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed kullanımdan kaldırıldı. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c).
BuildCompat.isAtLeastR kullanımdan kaldırıldı (Idb37e)
AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Deprecated annotatedString builder işlevi. (Idfe0b)
Değerleri radyana dönüştürmek için Float ve Double üzerinde kaldırılan uzantı yöntemleri. Yalnızca kullanıldığı yer olan PathParser uygulamasında özel bir işlev olarak taşındı (I25f52).
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
iptal edilir. Version 1.0.0-alpha08 contains these commits.
API Değişiklikleri
- Anlam bilimi işlemi olarak Kapat'ı ekleme (I2b706)
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılmış API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemleri içeren DrawModifierDeprecated.kt dosyasını oluşturdu. (Id6044, b/173834241)
- Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca, API geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
- placeable.placeWithLayer() ve placeable.placeRelativeWithLayer() adlı yeni yöntemler eklendi. Bu yöntemler, özel düzenlerin ve düzen değiştiricilerin, çizim için grafik katmanı oluşturarak alt öğe yerleştirmesine olanak tanır. Bu sayede, önce yeniden çizimleri optimize edebiliriz. Böylece bir alt öğeyi taşımamız gerektiğinde içeriğini yeniden çizmemiz gerekmez. İkinci olarak, bir alt öğe için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831).
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık tür belirtmeden kullanabilirsiniz. (Ib60c8)- drawLayer için kolaylık sağlamak amacıyla Modifier.scale/rotate API'leri eklendi.
Modifier.drawOpacity
,Modifier.alpha
olarak yeniden adlandırıldıModifier.drawShadow
,Modifier.shadow
olarak yeniden adlandırıldı (I264ca, b/173208140)
- PointerInputData'nın çalışma süresi ve konum alanları null değer içermeyecek şekilde değiştirildi. (Id468a)
- MaterialTheme artık seçim tutamaçları ve seçim arka planı için doğru renkleri ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Ana makine penceresinin odaklanıp odaklanmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
pivotFractionX
vepivotFractionY
değerlerinicomponent1
vecomponent2
olarak döndürmek için TransformOrigin API'si, yapı bozma söz dizimini kullanacak şekilde güncellendi (If43c4, b/173586560).- Compose yönergeleriyle tutarlılığı kontrol etmek için composable lambda parametre adlandırma ve konumuyla ilgili lint kontrolü eklendi.
Ayrıca, lint kontrolü ve yönergeler doğrultusunda, sondaki lambda'ları için ad olarak
children
kullanan bazı API'lericontent
olarak taşıdı. (Iec48e) - Bir tuş olayı gönderildiğinde Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol etmek için API eklendi. (I50ed9)
- Yeni bir
Modifier.drawLayer()
aşırı yükü eklendi. Durum değişikliği olduğunda yeniden oluşturma ve yeniden düzenleme işlemlerinin atlanmasına olanak tanıyan bir şekilde katman parametrelerini tanımladığınız yeni bir GraphicsLayerScope üzerinde lambda bloğu alır. DrawLayerModifier, mantığını LayoutModifier'ın placeable.placeWithLayer() yöntemine taşımaya hazırlanmak için artık dahili olarak kullanılıyor (I15e9f, b/173030831). Ambient
sonekiyle adlandırılan, kullanımdan kaldırılan Ambients'ı diğer Ambients ve Compose API yönergelerine uygun olarak Ambient önekiyle adlandırılan yeni özelliklerle değiştirdi. (I33440)androidx.compose.ui.text.Typeface
,androidx.compose.ui.text.font.Typeface
(Ic2b81) kuruluş birimine taşındı- Semantik bağımsız değişkeni mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Yeni sürükleme hareketi algılayıcı, yön kilitleme de dahil olmak üzere işaretçi giriş API'sini askıya alıyor. (Icef25)
- VectorAsset, ImageVector olarak yeniden adlandırıldı. VectorAsset, API yönergelerine uygun şekilde ImageVector'ın iç sınıfı olacak şekilde Builder olarak taşındı ve yeniden adlandırıldı. Uyumluluk için VectorAssetBuilder'ın ImageVector.Builder'a bağlantı oluşturacak tür takma adı eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- PlacementScope'un place() işlevi için zIndex parametresini ekleyin. Böylece Modifier.zIndex() artık LayoutModifier olarak çalışır ve tüm özel düzenler, yerleştirme bloğunda alt öğelerinin zIndex'lerini ayarlayabilir (I711f7, b/171493718).
- Temel anlamsal özellikler ui'ye taşındı (I6f05c).
- place(Offset) ve placeRelative(Offset) işlevleri kullanımdan kaldırıldı. Bunun yerine, int ofsetleriyle aşırı yüklemeleri kullanın (I4c5e7).
- Daha önce desteği sonlandırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı. Modifier.onGloballyPositioned kullanın. Modifier.onDraw kaldırıldı, Modifier.onDrawBehind kullanılmalıdır. Modifier.plus kaldırıldı, Modifier.then kullanın. Color.Unset kaldırıldı, Color.Unspecified kullanılmalıdır. PxBounds sınıfı kaldırıldı. Bunun yerine Rect sınıfını kullanın. (Ie9d02, b/172562222)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
- Yeni askıya alma işaretçisi girişi kullanılarak dokunma, çift dokunma, uzun basma ve basma göstergesi için hareket algılayıcı eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmasını kolaylaştırmak için birkaç yardımcı program da eklendi. (I00807)
id
,LayoutIdParentData
içinlayoutId
olarak yeniden adlandırıldı.Measurable.id
,Measurable.layoutId
olarak yeniden adlandırıldı. (Iadbcb, b/172449643)- Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan özellikler de dahil olmak üzere yeni çoklu dokunma hareketi algılayıcı. (Ic459d)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521).
Coroutine tabanlı kaydırma API'leri ekleyin:
LazyListState.snapToItem ve LazyListState.smoothScrollBy'ı ve kaydırma kontrolü için daha düşük düzeyli API'leri ekler. Bu API'ler, kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, kaydırma işlemi tamamlanana kadar bekler ve ardından geri döner. (Ie5642)
Modifier.focusable, foundation'a eklendi. Bu özelliği, doğru semantik ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için kullanın. (I41eb9, b/152525426, b/162865824)
AnimationClockTestRule'daki yöntemlerin ve özelliklerin,
clock
'ya (I7ea3d, b/173399709) devredilebilecek varsayılan uygulamalarını sağlayın.AndroidComposeTestRule artık özel etkinlik başlatıcılarını kabul edebilir (Ib8288, b/153623653, b/154135019)
TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. TextLayoutResult.getLineEnd artık yeni bir parametre olan visibleEnd'e sahip. (I73282)
TextFieldValue API güncellendi
- TextFieldValue.composition salt okunur hale getirildi
- Geçersiz seçim aralığı için kaldırılan istisna oluşturuldu (I4a675, b/172239032)
Metin okuma motoru için TtsAnnotation'ı destekleyin. (I54cc6)
Coroutine'lerde animasyon çalıştırmak için yeni API'ler (Ied662)
Hata Düzeltmeleri
- Box'ın hizalama parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricilerinin adı offset olarak değiştirildi. Artık State yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
- TextInputService#onStateUpdated'e resetInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
- Composable işlevlerindeki Modifier parametreleri için lint kontrolü eklendi. Bu lint kontrolü, parametrenin adlandırmasını, dönüş türünü, varsayılan değerini ve sırasını Compose yönergeleriyle tutarlılık açısından kontrol eder. (If493b)
- TestAnimationClock'un MonotonicFrameClock tarafından çalıştırılmasına olanak tanıyan bir seçenek geçici olarak eklendi (I1403b, �b/173402197)
- Android Typeface sarmalayıcısı eklendi.
typeface
işleviyle Android Typeface yükleyebilirsiniz. Örneğin:typeface(Typeface.DEFAULT)
. AyrıcatypefaceFromFontFamily()
,typeface()
olarak yeniden adlandırıldı (I52ab7) - Değiştirici fabrika işlevlerinin, Değiştirici üzerinde uzantı olarak tanımlanıp tanımlanmadığını kontrol etmek için lint kontrolü eklendi. Böylece, bu işlevler akıcı bir şekilde birbirine bağlanabilir. (I07981)
- Eski ui-test modülünü ve saplarını kaldırın (I3a7cb)
- Recomposer artık EmbeddingContext'i kabul etmiyor. Gerekli planlama bağımlılıkları, effectCoroutineContext'ten alınıyor. FrameManager'ın desteği sonlandırıldı. Platform entegrasyonları kendi genel anlık görüntü işlemelerini başlatmalıdır. (I02369)
- Stil bilgilerini erişilebilirlik düğümüne aktarın. (If5e8d)
- TextUnit.Inherit, diğer birimlerle tutarlılık sağlamak için TextUnit.Unspecified olarak yeniden adlandırıldı. (Ifce19)
Compose UI 1.0.0-alpha07 sürümü
11 Kasım 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
iptal edilir. 1.0.0-alpha07 sürümü şu commit'leri içerir.
API Değişiklikleri
- Tekdüze olmayan ölçeklendirme kullanım alanlarını desteklemek için yatay ve dikey eksenlerin ölçeklendirme faktörlerini birbirinden bağımsız olarak temsil eden ScaleFactor
inline sınıfı kullanıma sunuldu.
- ContentScale'e computeScaleFactor yöntemi eklendi.
- Kaynak sınırlarını hedefi tamamen kaplayacak şekilde genişletmek için tek tip olmayan ölçeklendirme gerçekleştirmek üzere ContentScale.FillBounds eklendi.
- ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- Hizalamalar oluşturmak için BiasAlignment ve BiasAbsoluteAlignment fabrikaları eklendi. (Iac836, b/169406772)
- Geliştiricinin odağı zorla temizlemesine izin verin. (I90372)
- Compose'daki Görünümler için yükseltmenin çizilmemesine neden olan hata düzeltildi. (If7782)
- Adlandırma kuralının Modifier.drawBehind ile eşleşmesi için ContentDrawScope içinde onDrawBehind API'si oluşturuldu. (I4fc3a, b/171955269)
- Katman API'lerinde 3D dönüşümlerini (rotationX/rotationY) tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
- Geri çağırma olmadan SelectionContainer eklendi (Ibfadb)
- ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad).
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7).
- Kafası karıştırıcı olduğu için drawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
- MeasureResult, MeasureScope'un dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli semboller androidx.compose.ui'dan androidx.compose.layout.ui'ya taşındı. (I0fa98, b/170475424)
- Kullanımdan kaldırılan FocusState2 kaldırıldı (I686cb, b/168686446)
- ZIndexModifier artık dahili (I1808b, b/171493718)
- Gereksiz kutulama işlemlerini önlemek için lerp yönteminin Size parametrelerindeki dönüş türü, null olmayan bir Size döndürecek şekilde güncellendi. (Ib0044)
- Added TestMonotonicFrameClock for testing code that relies on Compose's MonotonicFrameClock for awaiting composition frame events using kotlinx-coroutines-test's runBlockingTest (I4402f)
- Removed GestureScope.localToGlobal (I15299, b/171462785)
onAllNodesWithSubstring
bulucu eklendi (I81dd7, b/171462889)- androidx.ui.test modülünün desteği sonlandırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4'e geçiş yapın (I452e8).
Hata Düzeltmeleri
- captureToBitmap, captureToImage'a taşındı. (I86385)
- foundation.Text artık kullanılmıyor ve yerine material.Text kullanılıyor. Temadan değer kullanmayan temel ve tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
- TextField'ları KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
- KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
- KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
- provideDefault, ambiyans sağlama için alternatif olarak eklendi ve yalnızca önceden sağlanmış bir ambiyans değeri olmadığında ayarlanacak ambiyans değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
- BaseTextField kullanımdan kaldırıldı. Bunun yerine BasicTextField'ı kullanın. (I896eb)
- ui-test-junit4 modülünü kullanıma sunma (Ib91f8)
relativePaddingFrom
,paddingFrom
olarak yeniden adlandırıldı. Düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtme kolaylığı içinpaddingFromBaseline
değiştiricisi eklendi. (I0440a, b/170633813)- LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için LaunchedEffect'in konu parametreleri olmadan kullanılmasına izin verilmez. (Ifd3d4)
- Yapılandırma güncellendiğinde yeniden oluşturulan composable kaynakları kullanıma sunuldu. (I6387c, b/167352819)
- Recomposer artık oluşturma sırasında CoroutineContext gerektiriyor (Ic4610)
- Birden fazla
Modifier.zIndex()
uygulandığındazIndex
değerlerini toplar. Daha önce ilk teklif kazanıyordu. (Ic514c, b/170623936) - Herkese açık API'yi etkilememesi gereken dahili SlotTable uygulamasında yapılan değişiklikler. (If9828)
- Klavyede otomatik düzeltme IME seçeneği eklendi (I57b8d)
- androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb).
- KeyboardOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)
Harici Katkı (External Contribution)
- androidx.compose.ui:ui-text-android (Ib93fa) adlı dahili yapının yayınlanması devre dışı bırakıldı
Sürüm 1.0.0-alpha06
28 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha06
iptal edilir. 1.0.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Recomposer artık bir CompositionReference ve geçerli bir kompozisyon üst öğesidir. Açıkça yeniden oluşturma artık daha az yerde zorunlu. (I4036f)
- Composable API'nin, kompozisyonlar arasında verileri kalıcı hale getirmek için dahili olarak "remember" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı rememberVectorPainter lehine kullanımdan kaldırın. (Ifda43)
- Çizim komutlarını yeniden sıralama olanağı sağlamak için Modifier.drawWithCache API'si, DrawScope yerine ContentDrawScope'u alıcı kapsamı olarak gösterecek şekilde güncellendi. Bu, içerik piksellerinin karşılık gelen karıştırma modu algoritmasının düzgün şekilde uygulanması için önce oluşturulması gereken karıştırma/renk tonu kullanım alanlarında faydalıdır. (Ie7ec8)
- SimpleContainer'ı PopupTestUtils.kt'ye taşıma (I78c57)
- ConsumedData artık bir veri sınıfı değil. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 adresini ziyaret edin (I1737f).
- Sağdan sola dil tutma yeri konumunu düzeltin. (I6e1e0)
- DrawScope ve
ContentDrawScope, soyut sınıflar yerine arayüzler olarak yeniden düzenlendi.
- DrawScope'un CanvasDrawScope uygulamasını oluşturdu
- DrawScope'un CanvasScope'u kullanacak şekilde yeniden düzenlenmiş uygulamaları
- DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu.
- DrawScope (I56f5e) üzerinde kullanımdan kaldırılan yöntemler kaldırıldı.
- Kapsamlı değişiklik:
PointerInputFilter.onPointerEvent(...)
işlevinden dönüş değeri kaldırıldı. Bunun nedeni, işaretçi etkinliklerinde değiştirilebilecek tek değerin tüketim verileri olmasıdır.PointerInputFilter.onPointerEvent(...)
'dan veri döndürmek yerine artık yalnızca iletilen PointerEvents'in tüketim verilerini değiştirebilirsiniz. (I6acd0) - MeasureScope ve IntrinsicMeasureScope arayüzleri oluşturuldu. (I1a087, b/170461665)
- AlignmentLine için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
- Birleştirilmiş değiştiricide inceleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569)
- Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
- DrawTransform.rotate işlevi, dokümanlarla eşleşmesi için varsayılan merkez pivot parametresini alacak şekilde güncellendi.
- Diğer dönüştürme yöntemleriyle eşleşmesi için DrawScope.rotateRad, dönme noktası için bir Offset kullanacak şekilde güncellendi.
- Pivotun x ve y koordinatı için kayan sayılar kullanan, DrawScope.rotateRad aşırı yüklemesi kullanımdan kaldırıldı.
- (Iffcbb, b/170434992)
Hata Düzeltmeleri
- androidx için MissingGetterMatchingBuilder ile ilgili API lint kontrolü etkinleştirildi (I4bbea, b/138602561)
- Test ekleyin. (I6b8ae)
- ComposeTestRule'da geçişleri etkinleştirin. Yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)
- Klavye büyük harf IME seçeneği eklendi (I8ac38)
- CoreTextField'e tek satırlık klavye seçeneği eklendi (I72e6d)
- Move SimpleContainer into PopupTestUtils.kt (I65c3e)
- Compose'da nasıl kullanıldığını daha iyi ifade etmek için Radius API'nin adı CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirten doküman güncellendi. (I130c7, b/168762961)
ACTION_DOWN
dışındaki tüm işlemler için onTouchEvent'te yanlış değer döndüren alt Android görünümlerine MotionEvent göndermeye devam ederek Android birlikte çalışabilirliği iyileştirildi (I94c5a, b/170320973).- Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)
Harici Katkı (External Contribution)
AnnotatedString.capitalize
veAnnotatedString.decapitalize
için farklı yerel ayarları destekleme (I4aa7f)
Sürüm 1.0.0-alpha05
14 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha05
iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
- Müfettiş bilgilerini belirtmek için bir DSL ekleyin (Ic9a22)
- LongPress'i Text'e taşıyın. (Iff2bc)
- Deneysel Modifier.pointerInput giriş değiştiriciyi askıya alıyor (Ia77d2)
- Kopyalama/yapıştırma/kesme erişilebilirlik işlemleri eklendi (I6db4f)
- AndroidOwner için herkese açık oluşturucu kaldırıldı (Iacaef)
- Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE'u devralıyor. Bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149).
Tüketim verileri artık değiştirilebilir. Ayrıca, tüketim yapan uzantı işlevlerine yapılan çağrılar artık yeni bir PointerInputChange döndürmüyor, bunun yerine sağlanan PointerInputChange'i değiştiriyor.
Bu, PointerEvent verilerini değiştirilebilir hale getirmek için 2 adımlı sürecin ilk adımıdır. Böylece diğer işaretçi verileri kullanıcı koduyla düzenlenemez. İkinci adımda,
List<PointerInputChange>
dönüş türüPointerInputFilter.onPointerEvent(...)
öğesinden kaldırılacak. (Id067e)Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)
Made onGloballyPositioned an inline function (I15830)
OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() ise onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)
hasPendingMeasureOrLayout özelliği, Sahip'e eklenerek Sahip'in bekleyen düzen çalışması olup olmadığı belirtildi. (I3d9f8, b/169038599)
Odaklanmayı programatik olarak temizlemek için API eklendi (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)
kaldırıldı.PointerInputFilter.onPointerEvent(...)
kullanılmalıdır. (I6f04a)Boyut Değişiklikleri
- Removed Size.getFlipped
- Size.rem kaldırıldı
- Removed Size.truncDiv (Ief44d, b/169790720)
Satır içi sınıflar için sentinel değerlerinin standartlaştırılması kapsamında, diğer satır içi sınıflarla tutarlılık sağlamak amacıyla Color.Unset'in adını Color.Unspecified olarak değiştirin (I97611, b/169797763).
TextOverflow.None kullanıma sunuldu. Taşma None olduğunda, Text artık taşmayı işlemeyecek ve gerçek boyutunu LayoutNode'a bildirecek. (I175c9, b/158830170)
AnnotatedString.Builder.addStringAnnotation içindeki kapsam parametresi, API tutarlılığı için etiket olarak yeniden adlandırıldı. (I7c8cb)
Hata Düzeltmeleri
- LazyColumn/Row'un kaydırma performansı, her kaydırmada alt bileşen oluşturma işleminde daha az iş yapılarak iyileştirilir. Composition sınıfı için yeni hasInvalidations() yöntemi eklendi. Recomposer sınıfındaki hasPendingChanges() yöntemi hasInvalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371).
- Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, sonlu olmayan boyutların yanı sıra Size.Unspecified'a karşı da kontrol edecek şekilde güncellendi. (I95a7e)
- Özel düzenlerdeki place() çağrılarının sırası artık alt öğelerin çizim sırasını tanımlıyor (Ibc9f6)
- Erişilebilirlik için AnnotatedString'i SpannableString'e dönüştürme desteği eklendi. (Ief907)
- Mümkün olduğunda yansıtma kullanımını önlemek için daha eski platformlarda bulunan Android sınıfları için saplar eklendi. (Ia1790)
- Düzeltilen hata: Yazılım klavyesinin gösterilmesi uygulamanın çeviri yapmasına neden oluyorsa işaretçi giriş koordinatları yanlış hale geliyordu. (Ic4cec, b/163077821)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Geçerliliğini yitiren düzen ve çizim gözlem kapsamlarının toplanmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
- İçerik düzeni yeniden ölçüldüğünde ve boyut değiştiğinde geri çağırma almak için sırasıyla OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
- Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
- FocusManager, özel olarak ayarlandı. (I7872f)
DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturmak için uygulama güncellendi.
Çeşitli yöntemlerle ilgili dokümanlar güncellendi (Ibd166)
Nesne oluşturmayı önlemek için TextRange'i satır içi yapın. (Id034b)
PlacementScope#parentWidth ve PlacementScope#parentLayoutDirection artık özel bir düzenin yerleşim bloğundan okunamıyor. (Icc1ae, b/168295623)
Semantik özelliklere AccessibilityScrollState ekleyin. (Ifeda9)
Boyut/durum bilgilerine bağlı bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache işlevi kullanıma sunuldu (I376dc).
ParagraphConstraints kaldırıldı. Genişlik artık doğrudan paragrafa aktarılıyor. (Ica712)
Hata Düzeltmeleri
- Birçok grafik API'si güncellendi
- DrawScope ve DrawTransform'da x/y koordinatları için ayrı kayan parametreler yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresini kullanmak için ölçek ve döndürme dönüştürme API'leri güncellendi.
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı.
- Yarıçap dokümanı, elipsin yanı sıra oval de içerecek şekilde güncellendi.
- Satır içi Radius sınıfının herkese açık oluşturucusunun doğrudan çağrılmaması, bunun yerine Radius nesnelerinin işlev oluşturucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi.
- RoundRect API'leri, topRight, bottomRight, bottomCenter vb. sorgulamak için kaldırıldı.
- Rect.shift yerine Rect.translate kullanımdan kaldırıldı
- RoundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı.
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı.
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı.
- RoundRect.center işlevi, özellik olarak değiştirildi.
- RoundRect oluşturucusu, x/y yarıçap değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi.
- Kaynak noktası 0,0 olan bir dikdörtgen olduğu varsayılan boyut API'leri kaldırıldı.
- Radius'a bir yıkım API'si eklendi.
- Çeşitli RoundRect uzantısı işlevleri, özellikler olarak taşındı.
- (I8f5c7, b/168762961)
- foundation.Box desteği sonlandırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
- Stack'in adı Box olarak değiştirildi. Daha önce mevcut olan Box, compose.foundation.layout içindeki yeni Box lehine kullanımdan kaldırılacak. Yeni kutunun davranışı, birden fazla alt öğe içerdiğinde alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki kutudan farklıdır. (I94893, b/167680279)
- Kutu dekorasyonu parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) kullanın (Ibae92, b/167680279).
- Birçok grafik API'si güncellendi
- Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için kapsamlı dönüştürme yöntemleriyle güncellenen DrawScope API'leri
- clipPath dokümanı, yuvarlatılmış dikdörtgen yerine Path'e referans verecek şekilde güncellendi.
- clipPath'teki sağ parametre için dokümanlardaki boşluk düzeltildi.
- DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
- İç kısım yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı.
- 4 sınıra da aynı içe yerleştirme değerini sağlayan içe yerleştirme aşırı yüklemesi eklendi.
- İçerik yerleştirme yönteminin 4 tarafa da uygulanacağını belirten doküman kaldırıldı.
- Rect sınıfı için güncellenen belgeler
- Rect parametreleriyle ilgili yorumlar, kdoc stiline uygun şekilde güncellendi.
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yükleme oluşturuldu ve Rect.shift kullanımdan kaldırıldı
- (If086a, b/167737376)
- Annotated rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @VisibleForTesting, bunları dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
- Varsayılan seçimi devre dışı bırakmak ve beklenmeyen davranışları önlemek için SelectionContainer'ı en üstten kaldırın. Bunun yerine, özellikle seçilebilir olması gereken içeriği sarmak için SelectionContainer kullanılabilir. (I8dfe0, b/158459594)
Sürüm 1.0.0-alpha03
16 Eylül 2020
androidx.compose.ui:ui-*:1.0.0-alpha03
iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- İleri/geri kaydırma semantiği işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
onInvalidate()
,Owner
listesinden kaldırıldı.OwnedLayer
geçersiz kılma işlemlerini yönetir. (Ica72b, b/162061312)Offset parametrelerini kullanan Size API'deki operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu net değildir ve sonuç türü, bu işlemler için beklenmediktir. Örn. boyut - fark sonucu fark mı yoksa boyut sonucu mu döndürmeli?
Ayrıca, Size sınıfındaki kullanımdan kaldırılan yöntemler de kaldırıldı. (Iec902, b/166514214)
Hata Düzeltmeleri
- LazyColumn öğelerinin bazen yanlış çizilmesine neden olan ve bazı durumlarda kilitlenmelere yol açan sorun düzeltildi. (Ibcf17, b/163066980, b/165921895)
- DpConstraints ve bunu kullanan API'ler kullanımdan kaldırıldı. (I90cdb, b/167389835)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
kuruluş birimindenandroidx.ui.test
kuruluş birimine taşındı (Idef08, b/164060572)- Yer çekimi kullanımları, düzen API'lerinde hizalama veya hizalama ile eşleşecek şekilde tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut olanlar kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer genel yöntemler eklendi. (Ieae36)
Sürüm 1.0.0-alpha02
2 Eylül 2020
androidx.compose.ui:ui-*:1.0.0-alpha02
iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- remove callback to notify Owner when layoutnode bounds change. (If654e, b/166106882)
- Şekillerin evenOdd veya NonZero yol dolgu kurallarına göre kesilmesini desteklemek için vektör grafik yollarında filltype parametreleri için destek eklendi. (I43dd2)
- Çalışma süresi ve hız artık satır içi sınıflar (I48f4a)
- Süre artık satır içi bir sınıftır (I565eb).
- Layoutnode sınırları değiştiğinde Sahibi bilgilendirmek için geri çağırma ekleyin. (Ic40b3)
Offset ve yarıçap içeren Rect işlevi oluşturucusunun, Rect'i sol, üst, sağ, alt sırasıyla değil sol, sağ, üst, alt sırasıyla oluşturduğu sorun düzeltildi.
İşlev oluşturucular lehine, Rect'teki desteği sonlandırılan tamamlayıcı yöntemler kaldırıldı.
Rect.kt'deki yöntemleri doğrulamak için testler eklendi (I08460, b/165822356)
Hata Düzeltmeleri
- Değiştirilebilen bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
- Matrix4, Matrix ile değiştirildi. Vectormath paketinin diğer tüm bölümleri kaldırıldı. (Ibd665, b/160140398)
Birleştirilebilir işlevlerin çağrı kuralı değişti. Bu, ikili bir zarar veren değişikliktir. Tüm kitaplıkların, Compose derleyici eklentisinin bu sürümüyle çalışmak için yeniden derlenmesi gerekir.
Bu değişiklik, yalnızca açıkça etkinleştirilen derleyici API'leri değiştiğinden kaynak düzeyinde bir hataya neden olmaz. (I7afd2, b/158123185)
Bir PointerInputFilter'a gönderme yapıldığında PointerInputFilter'ın eşzamanlı olarak kaldırılmasına neden olabilecek kilitlenme düzeltildi. (I58f25)
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev17
iptal edilir. Version 0.1.0-dev17 contains these commits.
API Değişiklikleri
emitView
desteği sonlandırıldı. Compose'da görünümleri yayınlamak için mümkünseAndroidView
kullanın. Görünümlerin ve ViewGroup'ların doğrudan oluşturulmasının, gelecekte desteklenmeyeceğini unutmayın. Bu durum, AndroidView kullanılarak elde edilebilen, oluşturma ağacındaki yapraklar olmadığı sürece geçerlidir. (I29b1e, b/163871221)FocusState2
kullanımdan kaldırıldı veFocusState
ile değiştirildi (Ia8b79, b/160822876, b/160923332)- Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
- Özel yayınlar artık ayarlayıcılarından bir veya daha fazlasının atlanabileceğini ve yayından bağımsız olarak yeniden oluşturulabileceğini belirtebilir. (Ibbd13)
Aynı nesne örneği kompozisyon için kullanıldığından, Vector sınıfları artık veri sınıfları olmayacak şekilde değiştirildi.
VectorPainter için mutableStateOf işareti eklendi. Vektörün içeriği değişirse koşullu olarak yeniden çizim yapılır.
Bestelerde yeniden kullanıldığından VectorComponent örneği, VectorPainter'ın parçası olacak şekilde yeniden düzenlendi.
GroupComponent ve PathComponent, ad alanlarının değiştirilebilir olması için güncellendi (Ieae45, b/151378808).
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine çocuk düzenindeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)Offset, satır içi sınıf (Iaec70) haline geldi.
SelectionContainer'a değiştirici parametre eklendi (I4aada, b/161487952)
Kullanımdan kaldırılan FocusModifier kaldırıldı (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)
SemanticsPropertyKey
hizmetinemergePolicy
lambda'sı eklendi. Bu, mergeAllDescendants semantiği birleştirme için özel bir politika tanımlamak üzere kullanılabilir. Varsayılan politika, zaten mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)Constraints artık satır içi bir sınıftır (I88736).
Ortak odak mantığını AndroidComposeView'dan kaldıran FocusManager eklendi (I528ef, b/161487952, b/162206799).
Alfa sürümü için PointerEventPass adları güncellendi. (Ifda6f)
IntOffset artık satır içi bir sınıf (Iac0bf)
IntSize artık satır içi bir sınıf (I2bf42)
PlacementScope.placeAbsolute()
,PlacementScope.place()
olarak yeniden adlandırıldı ve öncekiPlacementScope.place()
,PlacementScope.placeRelative()
olarak yeniden adlandırıldı. Sonuç olarak,PlacementScope.place()
yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmayacak. Bu isteniyorsa bunun yerinePlacementScope.placeRelative()
kullanılmalıdır. (I873ac, b/162916675)AlertDialog artık düğmeler için FlowRow kullanıyor (I00ec1, b/161809319, b/143682374)
Bazı test yardımcı programları, ait oldukları yerde olmadıkları için herkese açık olmaktan çıkarıldı. Gelecekte herkese açık hale getirilecektir. (I32ab1)
İşaretçi girişi kodunun yeniden düzenlenmesi. (Ie3f45)
Rect lehine PxBounds kullanımdan kaldırıldı. PxBounds'un tüm kullanımları rect ile güncellendi ve geçişe yardımcı olmak için uygun kullanımdan kaldırma/değiştirme notları eklendi. (I37038, b/162627058)
Kullanımdan kaldırılan KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)
KeyEvent, belirtilen tuş ve meta tuş durumu kombinasyonu (If3afc) tarafından oluşturulan Unicode karakterini almak için kullanılabilecek bir Unicode özelliğine sahiptir.
DelayUp özel etkinliğini ve ilgili sınıfları, değiştirilme olasılığı çok yüksek olduğundan etkinleştirme API'si haline getirdik. (I56d6f)
Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I3dd9d)
Paragraph.paint işlevine renk, gölge ve TextDecoration parametrelerini ekleyin. Bu işlev, gereksiz Paragraph yeniden oluşturma işlemlerini önlemek için kullanışlıdır. (I81689)
Hata Düzeltmeleri
- TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Border veri sınıfının yerini BorderStroke aldı (I4257d, b/158160576)
Desteği sonlandırılan FrameManager çağrıları kaldırıldı.
Dahili Compose API'leri,
mutableStateof()
gibi durum nesnelerini izlemek için gereken ek yükü azaltacak şekilde değiştirildi (I80ba6).VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Modifier.drawBackground kaldırıldı. Modifier.background'ı kullanma (I73b0d, b/163019183)
Durumu kaydeden bir şey for döngüsünde kullanıldığında kilitlenme sorunu düzeltildi. Artık savedInstanceState() içinde aynı anahtara sahip olmaya izin veriliyor. UiSavedStateRegistry'nin API'si bu yeni koşula göre ayarlandı (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561).
state { ... }
composable'ı artık netlik içinremember { mutableStateOf(...) }
'e yapılan açık çağrılar yerine kullanımdan kaldırıldı. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf özelliği temsilcisi içinby mutableStateOf()
modeliyle eşleşir. (Ia5727)RRect'i, Compose adlandırma kalıplarına daha iyi uyacak şekilde RoundRect olarak yeniden adlandırdı. RRect'e benzer işlev oluşturucular oluşturdu ve RRect işlev oluşturucularının desteğini sonlandırdı (I5d325).
Sürüm 0.1.0-dev16
5 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev16
iptal edilir. Version 0.1.0-dev16 contains these commits.
API Değişiklikleri
- OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned kullanın. (I87f95, b/162109766)
- setViewContent desteği sonlandırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
- ViewBinding'e dayalı olarak düzen kaynaklarını genişletmek ve oluşturmak için AndroidViewBinding API'si eklendi. (I081c6)
- KeyEvent2, KeyEvent ile değiştirildi (I2d770, b/162097585)
- Alt donanım anahtarı (I9036b) için destek eklendi.
- FocusManager desteği sonlandırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() kullanın. (I74ae4, b/162211322)
- loadVectorResource, trimPath özelliklerini destekler (I808fe)
- Move dialog to ui (I47fa6)
- Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I33ca7)
- PointerInteropModifier'ı uyguladık. Bu değiştirici, MotionEvent'leri alma ve Compose ile Android View'un bir uygulamasıymış gibi etkileşim kurma olanağı sağlar. (Ieb08c)
- Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId kullanın. (Idaa05, b/162023919)
- Sağdan sola dil desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient özelliği eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
- Vektörel grafiklerde yol kırpma desteği eklendi (Ie16c9, b/158188351).
- Özel düzen değiştiriciyi kolayca oluşturmaya olanak tanıyan Modifier.layout() işlevi eklendi (I73b69, b/161355194).
- Yeni bir AndroidView API eklendi ve mevcut olanlar kullanımdan kaldırıldı. (I5bcfd)
- Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then kullanın. "Sonra" sıralama sinyali daha güçlüdür ve
Modifier.padding().background() + anotherModifier
yazılmasını da engeller. Bu, zinciri kırar ve okunmasını zorlaştırır (Iedd58, b/161529964). - Add [Abstract]ComposeView View subclasses for hosting Compose content in a View hierarchy. (I46357)
Row
veColumn
artık satır içi işlevler olduğundan bu işlevlerin kullanımıyla ilgili ek yük önemli ölçüde azalıyor. (I75c10)- SubcomposeLayout eklendi. Bu, alt ağaç kompozisyonu için ölçüm sırasında yalnızca daha sonra kullanılabilen bazı değerleri kullanmak istersek ölçüm sırasında alt öğeleri oluşturmamıza olanak tanıyan düşük seviyeli bir temeldir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
- Compose hiyerarşisinin köküne göre bir SemanticsNode'un konumunu almak için
SemanticsNode.positionInRoot
eklendi (Icdf26, b/161336532) - MotionEvents, Android'den Compose'a ve tekrar Android'e kadar tüm süreçlerden geçer. (I14be8, b/158034713)
- dropdownPopup kaldırıldı. (I00430)
- Kesik ekranlarda sabit pop-up konumu. (Idd7dd)
- TextLayoutResult'u almak için erişilebilirlik işlemi ekleyin (I9d6e6)
- RemeasurementModifier eklendi. Bu, düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Yeniden ölçme/yeniden düzenleme işlemi otomatik olarak yapıldığından genellikle bu işleme ihtiyacınız olmaz ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
- getLineEllipsisOffset/getLineEllipsisCount kaldırıldı. Bunun yerine getLineVisibleEnd/getLineEnd/isLineEllipsized'i kullanın. (I85aa2)
- En iyi uygulama olarak bazı işaretler/açıklamalar ekleyin. (I66b20)
- TextLayoutResult'ta daha fazla satır API'si kullanıma sunulur. (I79bd2)
- Yerleşik birimleri dönüştürmek için yerleşik vektör dönüştürücülere artık Foo.VectorConverter aracılığıyla erişilebilir. Örneğin, Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273)
Hata Düzeltmeleri
- Geniş kapsamlı API düzeltmelerini ele alma (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve IntOffset sınıflarını tutarlı bir API yüzeyine sahip olacak şekilde hizalama
- IntOffset.Origin'i, Offset API ile tutarlı olması için IntOffset.Zero olarak yeniden adlandırın.
- Tüketicilerin kendi Canvas örneklerini oluşturabilmesi için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı.
- DrawScope'u lateinit yerine boş olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş olmamasını sağlamak için EmptyCanvas sınıfı oluşturuldu.
- ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı.
- FilterQuality numaralandırmaları Pascal Case olarak yeniden adlandırıldı
- StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı.
- Renamed PointMode enums to be Pascal Case
- Renamed PaintingStyle enums to be Pascal Case
- PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı.
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı.
- DrawCache uygulaması, lateinit parametrelerini kullanmayacak şekilde güncellendi.
- DrawScope, fillPaint ve strokePaint dahili parametreleri için artık geç yetki kullanmayacak şekilde güncellendi.
- Daha az ek yük için Box kullanımını önlemek üzere Image composable'ı güncelledi.
- Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi.
- Her yol talimatı için @Immutable ek açıklamaları içerecek şekilde PathNode güncellendi.
- Compose bu işlemleri zaten yaptığından, eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere Vector alt bileşimi güncellendi.
- İşlev oluşturucular lehine, Rect yardımcı oluşturucu yöntemleri kullanımdan kaldırıldı
- @Immutable ve @Stable API'lerle güncellenen Brush sınıfları ve işlev oluşturucuları
- VertexMode enum'ı PascalCase olacak şekilde güncellendi
- DrawScope selectPaint yöntemi, değişmişse boyadaki kontur parametrelerinin koşullu olarak üzerine yazılacak şekilde güncellendi.
- Yapı bozma API'si eklemek, UnspecifiedSize'ı Unspecified olarak yeniden adlandırmak ve kullanılmayan yöntemleri kaldırmak için Boyut güncellendi.
- Android çerçevesi BlendMode'ları ile PorterDuff modları arasında API düzeyine bağlı olarak doğru şekilde eşleme yapmak için Compose BlendMode API tüketimi güncellendi. BlendMode#isSupported API'yi kullanıma sunarak BlendMode'un kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için özellik sorgusu olarak kullanılmasını sağladık. (I0ef42)
- LazyItemScope, tembel listelerin itemContent parametresi için eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() işe yaramadığında bu kullanım alanını çözen, üst maksimum boyutu dolduracak değiştiriciler sağlar. (Ibd3b2, b/162248854)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
kullanın. (Id9b62)LazyColumnItems
,LazyColumnFor
olarak yeniden adlandırıldı.LazyRowItems
,LazyRowFor
olarak yeniden adlandırıldı (I84f84)foundation.shape.corner
paketifoundation.share
olarak düzleştirildi (I46491, b/161887429)AndroidComposeTestRule
,createAndroidComposeRule
olarak yeniden adlandırıldı. (I70aaf)TextLayoutResult
listesine daha fazla API eklendi. (Id7e04)- İstenen en basit API'nin kolayca bulunup kullanılabilmesi için Material
FilledTextField
,TextField
olarak, foundationalTextField
iseBaseTextField
olarak yeniden adlandırıldı (Ia6242, b/155482676). - Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
Sürüm 0.1.0-dev15
22 Temmuz 2020
androidx.compose.ui:ui-*:0.1.0-dev15
iptal edilir. 0.1.0-dev15 sürümü şu commit'leri içerir.
Bağımlılıkları Güncelleme
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıklarınızı yukarıda Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
- FocusModifier, Modifier.focus, Modifier.focusRequester, Modifier.focusObserver lehine kullanımdan kaldırıldı. FocusState ve FocusDetailedState, FocusState2 lehine kullanımdan kaldırıldı (I46919, b/160822875, b/160922136)
- Odak durumu değişikliğini gözlemlemek için değiştirici eklendi. (I05866, b/160924455, b/160923326)
- Odak değişiklikleri isteğine değiştirici eklendi (I8dd73, b/161182057, b/160924778)
- Araç çubuğu menüsünü, kopyalama, kesme ve yapıştırma işlemlerini düzgün şekilde gösterecek şekilde ayarlayın. (Id3955)
- Tek değerli semantik özellikler artık bir çağırma stili kullanıyor.
Örneğin, "semantics { hidden = true }" artık şu şekilde yazılıyor:
semantics { hidden() }
. (Ic1afd, b/145951226, b/145955412) - FocusModifier'ın yerini alan Modifier.focus eklendi. (Ib852a, b/160924778)
- TextField seçimi için FloatingToolbar'ı ekleyin. (Ie8b07)
- Anahtar girişiyle ilgili API için deneysel bir API açıklaması eklendi (I53c0a).
- Tüm odaklanmayla ilgili API'ler için deneysel bir API ek açıklaması eklendi (I53b24, b/160903352).
- FocusDetailedState'in yerini alacak FocusState2 eklendi (I0a3ba, b/160822595)
- Focus API için bir @OptIn ek açıklaması olan ExperimentalFocus eklendi. (I1544b, b/160820961)
- Düzenden gelen tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'si, kullanılacak şekilde güncellendi. (I0d8d0, b/159596546)
- Applier artık kompozisyonları silmek için clear() yöntemini gerektiriyor (Ibe697)
- KeyEvent desteği sonlandırıldı ve KeyEvent2 ile değiştirildi (I68730)
- Test bulucularına isteğe bağlı yeni bir işaret olan useUnmergedTree eklendi. (I2ce48)
- LayoutNode deneysel API'si yapıldı (I4f2e9)
Aşağıdakiler dahil olmak üzere çeşitli satır içi sınıf türlerine kopyalama yöntemleri eklendi:
- Zaman farkı
- Boyut
- Yarıçap
- Hareket
TransformOrigin
Örnek kopyalama yöntemi (Ife290, b/159905651) yerine kullanımdan kaldırılan Size.copy yardımcı nesne yöntemi
Pop-up'lar, iletişim kutuları ve menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485).
TextDirection, ResolvedTextDirection olarak yeniden adlandırıldı (I3ff38).
Layout() işlevinin ölçü bloğundan düzen yönü parametresi kaldırıldı. Ancak düzen yönü, ölçüm kapsamı nesnesi (Ic7d9d) aracılığıyla geri çağırma içinde kullanılabilir.
Yeniden kullanmak için SelectionHandles'ı yeniden düzenleyin. (I420e0)
Tıklanabilir özelliği kaldırıldı. Modifier.clickable (I84bdf) öğesini kullanın.
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics kullanın (I15ff0, b/158841414)
Bu değişiklikten önce, bir @Composable işlevinin içinde oluşturuculara yapılan çağrılar, (I5205a, b/158123804) varsa önemsiz olmayan bir şekilde Compose derleyici eklentisi tarafından engelleniyordu.
Modifier.tag, Modifier.testTag ile karışıklığı önlemek için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi Int konumları artık boş değer içermez. Sorgulanan hizalama çizgisi eksikse AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)
AndroidView composable'a bir değiştirici parametre eklendi. (I48a88, b/158746303)
Semantics() desteği sonlandırıldı. Bunun yerine Modifier.semantics() kullanın. (I72407, b/158841414)
viewModel() composable işlevini ekleyin. Bu işlev, Activity veya Fragment'te olduğu gibi ViewModel oluşturmanıza ya da önceden oluşturulmuş ViewModel'i almanıza olanak tanır (I5fdd1).
IntPx kullanımı Int ile değiştirildi. IntPxPosition, IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Boyutlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Size sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kayan nokta olarak temsil etmek için 2 kayan nokta değerini paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (Ic0191)
Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan değerler olarak temsil edilen x ve y kaymalarını temsil etmek için 2 kayan değer paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfının tamamı silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I086f4).
Yalnızca piksel parametreleri için Dp ve temel türlere güvenmek üzere büyük bir yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Id3434).
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a).
TestTag desteği sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
ParentDataModifier#modifyParentData'nın varsayılan, işlem yapmayan uygulaması kaldırıldı. Bu uygulama, arayüzü hiç uygulamamaya eşdeğerdi. (I0deaa)
Daha önce kullanımdan kaldırılan ScaleFitAs işlevi kaldırıldı. Bunun yerine ContentScale'i kullanın. (Ifbc5b)
Yalnızca piksel parametreleri için Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I19d02).
Materyal Tasarım menü uygulaması olan ui-material'a DropdownMenu bileşeni eklendi. (I9bb3d)
Desteği sonlandırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() kullanın. Desteği sonlandırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() kullanın. (If8044)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I57bff).
Yüksek düzeyli bileşenlerin kullanılmasına izin vermek için Modifier.semantics'in desteği sonlandırılmadı. (I4cfdc)
CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. Density arayüzünü uygulamak ve LayoutDirection'ı sağlamak için DrawScope güncellendi. ContentDrawScope'taki silinen DrawScope alt sınıfı Painter ve PainterModifier, DrawScope bunu zaten sağladığı için artık RTL özelliği tutmayacak şekilde güncellendi (I1798e).
DoubleTapGestureFilter artık ağaç genelinde SingleTapGestureFilter'ı netleştiriyor. (If92b1)
Alignment API güncellendi ve mutlak hizalama (Rtl bağlamında otomatik olarak yansıtılmaz) desteği eklendi (I38cd3).
DrawLayer değiştiricileri API'sinde değişiklik yapıldı: outlineShape, shape olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip olup artık null yapılamaz; clipToOutline, clip olarak yeniden adlandırıldı; clipToBounds, RectangleShape ile clip == true aynı olduğundan kaldırıldı (I7ef11, b/155075735)
Canvas yerine CanvasScope'u kullanıma sunan, daha üst düzeydeki Compose API'leri güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini korumasına gerek kalmaz. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, temel Canvas ile çizim komutları vermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702).
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Desteği sonlandırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Layout ve LayoutModifier2'deki doğal ölçüm işlevleri artık doğal ölçüm sorgu API'sini örtülü olarak yayılmış düzen yönüyle sağlayan bir IntrinsicMeasureScope alıcısına sahip. (Id9945)
Layout ve LayoutModifier alt öğeleri farklı bir düzen yönüyle ölçülebilir. (Ibd731)
Aynı üst düzendeki alt öğelerin çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklendi. DrawLayerModifier üzerindeki elevation özelliği shadowElevation olarak yeniden adlandırıldı ve artık çizim sırasını kontrol etmiyor. DrawShadow'un parametre sırası değiştirildi: Yükseklik artık ilk parametre, şekil ise RectangleShape varsayılanıyla ikinci parametre. (I20150, b/152417501)
Owner'da onSizeChange ve onPositionChange kaldırıldı. (I5c718)
Constraints2 adlı yeni bir işlev eklendi. Bu işlev, Constraints işlevinin bir kopyasıdır ve yalnızca IntPx yerine Int kısıtlama değerlerini destekler. IntPx kaldırılacak ve tüm tam sayı kısıtlamalarının Android'deki gibi piksel olduğu varsayılacak.
- IntPxSize'ın yerini alacak olan IntSize da eklendi. (I4b43a)
Hizalama, rastgele değerlerle örneklenebilir hale getirildi. 1D hizalamalar eklendi. (Ia0c05)
alignToSiblings artık Placeable yerine Measured'ı kabul ediyor. (I5788d)
-
- ScaleFit'in adı ContentScale olarak değiştirildi.
- ContentScale, Alignment API ile aynı modülde bulunması için ui-graphics'ten ui-core modülüne taşındı.
- FillMaxDimension, Crop olarak yeniden adlandırıldı
- FillMinDimension, Fit olarak yeniden adlandırıldı.
- Daha iyi eşleşmesi için Fit to Inside (İçine Sığdır) olarak yeniden adlandırıldı.
- ImageView.ScaleType eşdeğerleri
- Kırpma ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu verdiği, Alignment.Center ile kullanılan Fit'in ImageView.ScaleType.FIT_CENTER ile aynı sonucu verdiği ve Alignment.Center ile kullanılan Inside'ın ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu verdiği belirtilen dokümanlar eklendi.
Çizim değiştiriciler için sağdan sola dil desteği. (I0aaf9)
Android Görünümlerini XML'den genişletmek için API yayınlandı. Daha fazla bilgi için ViewInCompose demosuna bakın. (I42916)
DrawModifier API'yi iyileştirme:
- draw() ContentDrawScope için alıcı kapsamı oluşturuldu.
- draw() işlevindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
- ContentDrawScope'ta drawContent() yöntemi var (Ibaced, b/152919067)
LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
DrawLayerModifier ve drawLayer() artık varsayılan olarak clipToBounds ve clipToOutline değerlerini false olarak ayarlar. (I0eb8b, b/152810850)
LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi. LayoutModifier (If32ac) desteği sonlandırıldı.
Değiştirici artı operatör, fabrika uzantısı işlevleriyle değiştirildi (I225e4).
Belirli bir katman için çizim komutlarının görüntüleme listesini kaydırmaya yönelik destek sağlamak amacıyla translationX/Y özellikleri eklendi. Bu, animasyonlara veya dokunma etkinliklerine yanıt olarak içeriği taşımak için kullanışlıdır. (I8641c)
Bir katmanda belirli bir nokta etrafında döndürme ve ölçeklendirmeyi desteklemek için Katman API'lerine pivotX, pivotY parametreleri eklendi (Icf7c3).
OnPositioned ve OnChildPositioned composable işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)
Düzen için RenderNode eklemeye olanak tanıyan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçekleme ve gölge ayarlamaya olanak tanır. Bu, RepaintBoundary'nin yerini alacak. (I7100d, b/150774014)
Düzen yönünün üst düzen düğümünden alt öğelere yayılması sağlandı. Düzen yönü değiştiricisi eklendi. (I3d955)
Stack bileşeni, sağdan sola yönü destekler (Ic9e00).
Compose düzeninde sağdan sola dil desteği (Ia5519)
Yoğunluk ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current kullanabilirsiniz. withDensity(density) yerine sadece with(density) kullanılmalıdır (I11cb1).
LayoutCoordinates, sağlananAlignmentLines'ı Map yerine Set olacak şekilde değiştirildi ve değer almak için LayoutCoordinates'in get() operatörünü uygulaması sağlandı. Bu sayede, değiştiriciler, her değiştirici için yeni bir koleksiyon oluşturmadan kümenin bir veya daha fazla değerini daha kolay değiştirebilir. (I0245a)
LayoutCoordinates artık bir konum özelliğine sahip değil. LayoutModifiers, döndürme veya ölçekleme göz önünde bulundurulduğunda konum özelliği anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'ten diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() işlevlerini kullanmalıdır.
LayoutCoordinates, boyut özelliği için PxSize yerine IntPxSize kullanıyor. Düzenlerde tam sayı piksel boyutları kullanılır. Bu nedenle, tüm düzen boyutlarında kayan nokta değerleri değil, tam sayılar kullanılmalıdır. (I9367b)
Kısıtlamaların API yüzeyinde iyileştirmeler (I0fd15)
Durum bilgisi içermeyen, bildirim temelli bir çizim API'si yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API'si oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır ve boyutlandırma bilgileri de ilgili yerleştirme sınırlarına göre kapsamlandırılır. Çizim işlemlerini yapılandırmak için tüketicinin kendi Paint durumu nesnesini korumasını gerektirmez.
- CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli grafikler demosunu (Ifd86d) içerecek şekilde güncellendi.
Sınırlı kullanımı olduğu ve çoğu kullanım alanında donanım hızlandırma için optimize edilmediği için kullanılmayan MaskFilter API kaldırıldı (I54f76).
RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics.* konumuna taşındı. (Ia74d5, b/154507984)
API'deki tüm null değer atanabilir Color kullanımları, null değer atanabilir olmayanlarla değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7).
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizilmesini desteklemek için ImagePainter'a ek isteğe bağlı rect parametresi eklendi.
Renkleri kutuya almadan ayarlanmamış bir değeri temsil etmek için "Ayarlanmamış Renk" eklendi. (If901a)
Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak üzere Canvas.rotate ve Canvas.scale uzantı yöntemleri eklendi. Bu değerler, mevcut tuval çevirisinin sol üst köşesine göre belirlenir.
Ayrıca, tutarlılık için Canvas.rotateRad'ı uzantı yöntemi olarak taşıdı (Ibaca6).
ImageAsset'ten piksel bilgileri sorgulamayı desteklemek için PixelMap API'si oluşturuldu. (I69ad6)
Compose ile Android çerçeve API'leri arasındaki nesne dönüşümlerinde adlandırma kuralına uymak için toFrameworkRect/toFrameworkRectF, toAndroidRect/toAndroidRectF olarak yeniden adlandırıldı. Ayrıca bu API'lerle ilgili dokümanlar da güncellendi (I86337).
Vektör grafikler için mevcut alt bileşim API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine VectorPainter nesnesidir. VectorPainter lehine önceki DrawVector composables'ın desteği sonlandırıldı.
Image(Painter) API'sinin adı PaintBox(Painter) olarak değiştirildi. ImageAsset yerine VectorAsset ile çalışan, Image composable'a benzer şekilde davranan Vector composable oluşturuldu (I9af9a, b/149030271).
Resim verileri ile düzenlemeye katılmak ve içerik çizmek için kullanılan, yakında kullanıma sunulacak Image composable arasındaki farkı daha iyi ayırt etmek için Image, ImageAsset olarak yeniden adlandırıldı. _Body:android.graphics.Bitmap üzerinde, geleneksel Android uygulama geliştirmeyi Compose çerçevesiyle birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere Bitmap.asImageAsset() adlı bir uzantı yöntemi oluşturuldu (Id5bbd).
Added TextDirection.Content (I48f36)
TextDecoration.plus operatörü eklendi (I0ad1a)
Force
, TextDirectionAlgorithm enum değerlerinden (Icc944) kaldırıldı.TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)
TextField Seçimi için LongPressAndDrag'i uygular. (I17919)
Aralıktaki tüm ek açıklamaları döndüren AnnotatedString.getStringAnnotations eklendi. (I1fa00)
Locale ve LocaleList için paket adı androidx.ui.text'ten androidx.ui.intl olarak değiştirildi (I8132c).
TextField'ın imleci yanıp sönme animasyonuna sahip (Id10a7)
API değişikliği: AnnotatedString(builder: Builder) işlevi, annotatedString(builder: Builder) olarak yeniden adlandırıldı. (Ia6377)
API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)
AnnotatedString.Builder.addAnnotationString'i addStringAnnotation olarak yeniden adlandırın. (I5059e)
Artık onTextInputStarted geri çağırma işleviyle (I8dc44, b/151860051) sağlanan SoftwareKeyboardController kullanılarak yazılım klavyesi gizlenebilir/gösterilebilir.
(Text/Paragraph/Span)Style için merge() işlevine devreden artı operatörü eklendi. (Ia1add)
FontWeight.lerp artık sabitlenmiyor. Bu, hâlâ bir veri sınıfıdır. (I521c2)
FontWeight oluşturucusu artık herkese açık ve veri sınıfı değil. (Id6b1f)
getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount işlevlerini TextLayoutResult'a ekleyin (Ibc801).
ui-text modülünün adı ui-text-core olarak değiştirildi (I57dec).
Kullanılmayan Size sınıfı, kullanılan ui-geometry modülünde yinelenen bir Size sınıfı olduğu için kaldırıldı. (I1b602)
Yalnızca görünür öğeleri oluşturan ve yerleştiren bir kaydırma listesi bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan değişikliklerin tümünü tam olarak ele almaması yer almaktadır. (Ib351b)
Kutuya dolgu, kenarlık, şekil ve arka plan parametreleri ekleyin (I05027, b/148147281)
Hata Düzeltmeleri
- Metin alanlarındaki onFocusChange geri çağırma işlevi onFocusChanged olarak yeniden adlandırıldı (Ida4a1).
- VerticalScroller ve HoriziontalScroller kullanımdan kaldırıldı. Column/Row davranışı ve parametreleri ya da Modifier.verticalScroll ve Modifier.horizontalScroll ile yerleşik deneyim için kendi öğenizde ScrollableColumn ve ScrollableRow'u kullanın. Benzer şekilde, ScrollerPosition, ScrollState'in (I400ce, b/157225838, b/149460415, b/154105299) lehine kullanımdan kaldırıldı.
runOnIdleCompose
,runOnIdle
olarak yeniden adlandırıldı (I83607)- Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
- Compose kullanıcı arayüzü artık yeni bir kompozisyon gerektirmeden ViewGroup'lar içinde oluşturulabilir. Örnek için ViewInteropDemo'ya bakın. (I9ab0b, b/160455080)
- MutableVector'a sortWith ve removeRange eklendi (Icccf7)
- TextField için seçimi değiştirmek üzere sürükleyerek seçim tutma yerlerini uygulayın. (I27032)
- NativeShader sınıfını sarmalayan Shader satır içi sınıfı kaldırıldı. NativeShader, Shader olarak yeniden adlandırıldı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklemedi ve satır içi sınıf olduğundan NativeShader sınıfını doğrudan kullanın. (I25e4d)
PainterModifier, verilen kısıtlamalara ve ContentScale parametresine göre ölçeklendirme sağlamayacak şekilde yeniden düzenlendi. Painter uygulamaları, çizim içeriklerini, çizim yaptıkları DrawScope'un verilen boyutuna göre kendileri ölçeklendirmelidir.
VectorPainter'ın önbellek bit eşleminin, içine çizim yapılacak boyuta göre değil, varsayılan boyutuna göre boyutlandırılması sorunu düzeltildi.
İçeriğini ölçeklemek için PainterModifier'a güvenmek yerine ImagePainter güncellendi. (I6ba90)
Animasyon zamanlaması için üst düzey withFrameNanos işlevi eklendi (Ie34c5).
@Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'larının desteği de sonlandırıldı. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005).
Gönderim sırasında PointerInputFilters, alt bileşen oluşturma yoluyla kaldırılırsa işaretçi girişi gönderiminin kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)
PointerInputFilters, gönderme sırasında alt bileşen oluşturma yoluyla kaldırılırsa işaretçi girişi göndermenin kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)
Yarıçap sınıfı, satır içi sınıf olacak şekilde yeniden düzenlendi. Y ekseni boyunca yarıçapın zorunlu x ekseni yarıçap parametresine uyması için varsayılan parametreye sahip işlev oluşturucu lehine eşlikçi oluşturma yöntemleri kaldırıldı.
DrawScope.drawRoundRect, x ve y ekseni boyunca yarıçap için 2 ayrı kayan nokta değeri yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi (I46d1b).
Recompose composable artık yararlı bir soyutlama değildir. Çoğu yeniden oluşturma işlemi, MutableState atamaları sonucunda gerçekleşmelidir. Bunun ötesinde bir işlem için, mevcut kapsamın yeniden oluşturulmasını tetiklemek üzere
invalidate
işlevini kullanmanız önerilir. (Ifc992)Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b).
Compose derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, derleme derleyicisi, composable işlevlere yapılan çağrıları dönüştürüyordu. Bu değişiklikle birlikte artık bir composable işlevin gövdesini dönüştürüyor ve çağrı sitesini (çoğunlukla) değiştirmeden bırakıyoruz.
Bu, Compose çalışma zamanıyla iletişim kuran mantığın çoğunun, işlev gövdesinin başında gerçekleştiği anlamına gelir.
Bu, Compose'un tüm kullanımları için kaynakla uyumlu bir değişiklik olmalıdır. Compose'u kullanan çoğu kullanıcının bu değişiklik nedeniyle herhangi bir kodu güncellemesi gerekmez.
Bu çalışmayı desteklemek için tüm composable işlevlerin JVM imzası değiştirildi. Tek bir parametreyi kabul eden bir Composable işlevi, 3 parametreyi kabul eden bir işlev haline dönüştürülür. Ek parametreler Composer, bir "anahtar" tam sayısı ve meta verileri çağrılar aracılığıyla yaymak için kullanılan bir bit maskesi tam sayısıdır.
Compose artık varsayılan bağımsız değişkenleri de composable işlevine dönüştürüyor. Bu işlem, işlevin kendisinde ek bir yapay varsayılan aşırı yükleme oluşturmadan yapılır. Bu nedenle, bu değişiklik daha az işlevin tanımlanmasına neden olur.
Bu değişiklikten kaynaklanan bilinen kasıtlı davranış değişiklikleri:
- Bazı aramalar, daha önce atlanmayacakları yerlerde atlanacak.
- Varsayılan bağımsız değişken ifadelerindeki birleştirilebilir ifadeler artık doğru şekilde abone olunuyor ve işleniyor
Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer composable işlevlere yayılır. Bu, çalışma zamanında daha az karşılaştırma yapılmasına, yuva tablosu boyutunun küçülmesine ve daha önce atlanmayan composable işlevlerin daha fazla atlanmasına neden olur. 2. Derleme zamanında "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Bu, karşılaştırma sayısını ve yuva tablosu boyutunu azaltır. 3. Oluşturulan grup sayısını en aza indirmek için işlevlerin gövdesinin kontrol akışı yapısı kullanılır. Bu, yuva tablosu boyutunu küçültür ve çalışma zamanında daha az iş yükü oluşturur. İşlevlere gönderilen ve işlev gövdesinde kullanılmayan kullanılmamış parametreler, işlevin atlanabilirliğini belirlemede dikkate alınmaz.
Çoğu uyumsuz değişiklik, derleyicinin doğrudan hedeflediği API'lerle ilgiliydi ve Compose'un normal kullanımı etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call kullanımdan kaldırıldı 4.
key
işlevinin değişken sayıda bağımsız değişken içermeyen aşırı yüklemeleri kaldırıldı. Bundan sonravararg
sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı.key
yerine kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine Function3 bekleyecek şekilde değiştirildi. 7. restartableFunction ve restartableFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi (I60756, b/143464846)Kullanımdan kaldırılan LayoutAlign değiştiricileri kaldırıldı. (I10877)
DrawLayerModifier lehine RepaintBoundary kaldırıldı (I00aa4)
Button, FloatingActionButton ve Clickable artık ayrı bir
enabled
parametresine sahip. Button'daki bazı parametreler yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)ButtonStyle, ayrı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenen örneklere bakın. (If63ab, b/146478620, b/146482131)
Ambients API'de önemli değişiklikler yapıldı. Ayrıntılar için günlük ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)Varsayılan TextDirection davranışının LayoutDirection tarafından belirlenmesi için değiştirildi. Örneğin, LayoutDirection RTL ise varsayılan TextDirection RTL olur. Önceden TextDirection.ContentOrLtr/Rtl (I4e803) idi.
Hata düzeltmesi: Yazı tipi ağırlığı ve yazı tipi stili, AnnotatedString üzerinde iç içe yerleştirildiğinde metin doğru şekilde oluşturulmuyor. (I77a9d)
Sık kullanılan parametreleri Text() işlevine ekler. Şu anda bu parametrelerden az sayıda olanı (ör. Text(style = TextStyle(textAlign = TextAlign.Center))) iletmek için yerel bir metin stili oluşturuyorsanız artık parametreleri doğrudan sağlayabilirsiniz: Text(textAlign = TextAlign.Center) (I82768)
ui-android-text modülünün adı ui-text-android olarak değiştirildi (I68cbe).