Kullanıcı arayüzü oluşturun
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(Tüm oluşturma paketleri için API referans belgelerine bakın.
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
29 Kasım 2023 | 1.5.4 | - | 1.6.0-beta02 | - |
Yapı
Oluştur, androidx
içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her birinin kendi sürüm notlarına sahip olan, hedeflenmiş bir işlev alt kümesi içerir.
Bu tabloda gruplar ve her sürüm notu grubunun bağlantıları açıklanmaktadır.
Gruplandır | Açıklama |
---|---|
compose.animation | Jetpack Compose uygulamalarında kullanıcı deneyimini zenginleştirmek için animasyonlar oluşturur. |
compose.derleyici | @Composable işlevlerini dönüştürün ve bir 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çıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış Compose'un daha üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşen ile Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenen tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlandı. |
compose.runtime | Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı. |
compose.ui | Cihazla etkileşim kurmak için gereken temel yazma kullanıcı arayüzü bileşenleri (ör. düzen, çizim ve giriş). |
Bağımlılıkları bildirme
Compose'da bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Modern
dependencies { implementation "androidx.compose.ui:ui:1.5.4" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.5" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.5.4") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.5" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme bölümüne bakın.
Geri bildirim
Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.6
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta02
yayınlandı. Sürüm 1.6.0-beta02 bu kayıtları içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta01
yayınlandı. Sürüm 1.6.0-beta01 bu kayıtları içerir.
API Değişiklikleri
DragAndDropTarget
değiştiricisi artık alıcıDragAndDropTarget
alanını açıkça ele alıyor ve sürükle ve bırak oturumuna dahil olmayı seçen bir lambda'ya sahip.DragAndDropModifierNode
için artık iki fabrika işlevi mevcut. Biri aktarım, diğeri veri aktarımı için kullanılır (I69481)maximumFlingVelocity
, Kayan öğe olarak gösterilecek şekilde güncellendi. Dokümanlar,maximumFlingVelocity
birimi hakkında daha net olacak şekilde güncellendi. (I8adc7)DragAndDropModifierNode
fabrikasındakionDragAndDropStart
,acceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumundan kabul etmesi içindragAndDropTarget
Değiştirici'ye eklendi. Bu lambda, sürükle ve bırak oturumuyla ilgileniyorsanız geçerli birDragAndDropTarget
döndürür. Sürükleme etkinliklerini işlemek için diğer lambda'lar bunun yerini almıştır. Sürükleyip bırakma oturumlarından almak üzere birDragAndDropTarget
fabrika işlevi eklenmiştir (Iebf3a)DragAndDropModifierNode.drag
türü olarakDragAndDropInfo
kaldırıldı. ArtıktransferData
, süsleme boyutu ve sürükleme dekorasyonuDrawScope
lambda için parametreleri alıyorDragAndDropTarget
, tek bir soyut yöntem olmak yerine belirli sürükle ve bırak etkinlikleri için yöntemler içerirDragAndDropModifierNode
için fabrika işlevindekionDragAndDropEvent
, sağlananDragAndDropTarget
öğesinin yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi belirtmek amacıylaonDragAndDropStart
olarak yeniden adlandırıldıDragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
adlı dosyaestablishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)Geçirilebilir düğüm API'si adlarını daha anlaşılır hale getirmek için iyileştirir. (Ia4474)
OriginalText
yerineTextSubstitution
koyun. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
adlı dosyarunTextInputSession
olarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere saklanan
SubcomposeLayout
alt öğeleri (ve buna göreLazyColumn
gibi düzenler) devre dışı bırakılmış olarak kabul edilir. Bu tür düğümleri test etmek için yeniassertIsDeactivated()
test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, varsayılan olarak devre dışı bırakılmış düğümleri filtreler. (I2ef84, b/187188981)Kaldırılan
FocusDirection.In
veFocusDirection.Out
, bunun yerineFocusDirection.Enter
veFocusDirection.Exit
kullanır (I2f660)Materyal
SwipeToReveal
API'leri (Kartlar ve Çipler için) artık bu slotları oluşturmak için veri sınıfı tabanlı örnekler yerine slot tabanlı API'leri (Compose tarafından önerildiği gibi) kullanmaktadır. Bu, zarar verici bir değişikliktir. Yeni API'nin nasıl kullanılacağıyla ilgili örnekler için lütfen demoyu ve örnek kodu inceleyin. (Ia8943)FontStyle(int)
oluşturucu kullanımdan kaldırıldı. Bunun yerineFontStyle.Normal
veyaFontStyle.Italic
kullanın. (I66610)FontScalable
arayüzüFontScaling
(Ie804a) olarak yeniden adlandırıldı
Hata Düzeltmeleri
- Herhangi bir metin düzenleyiciye odaklanılmamışsa
SoftwareKeyboardController.show()
, artık yazılım klavyesini göstermeyecek. (I2165a, b/301477279) - Aynı Oluşturma Görünümü'nde Down etkinliği almayan anahtarlar için donanım tuşu açma etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
ArcLine
bölgesinde Gradyan Süpürme için oluşturucu desteği eklendi. (I4d5bb)PageSize.Fixed
için eşittir ve karma kodu uygulayın. (Ie3ede, b/300134276)- Pencere Inset değişikliğiyle ikili program uyumluluğu sorununu düzeltme (Iee695)
- Mikro karşılaştırmalar, bu katman olmadan daha iyi performans gösterdiğinden Material3 Çip/Düğmesi için malzeme çekirdek katmanını kaldırın. (I55555)
- Compose testlerine
effectContext
olarak iletilenTestDispatcher
'ler artık test ve kare saatleri oluşturmak için kullanılır. (Ia7178)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha08
yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.
API Değişiklikleri
Modifier.dragAndDrawSource
adlıonDrawDragShadow
lambda,drawDragDecoration
olarak,DragAndDropInfo
ise boyut parametresidragDecorationSize
olarak yeniden adlandırıldı. (Id0e30, b/303904810)- Eşleşen bir düğümün görünür olup olmadığını kontrol etmek için ayrıca doğrulama yapmadan
SemanticsNodeInteraction.isDisplayed()
veSemanticsNodeInteraction.isNotDisplayed()
özelliklerini kullanın. (I2c196, b/302100809) null
yerine kullanılacakParagraphTextStyle
öğesininTextAlign
,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 nullable parametresini Belirtilmemiş değeriyle değiştirerek temel tür kutulamadan kaçınırız.TextStyle
ve Paragraf 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ükünü ekleyin. (If8f59) LoremIpsum
PreviewParameterProvider
, açık bir sınıf yapıldı. (I41bf5, b/266918816, b/300116360)
Hata Düzeltmeleri
FontFamilyResolver
, önbellek yönetimi eş yordamları için artıkDispatchers.Main
kullanıyor. (Ie8dd9)AndroidViewBinding
, (daha önce kullandığıcommit
yerine)commitNow
kullanarak düzeninizeFragmentContainerView
ekleyerek şişirilenFragment
örneğini artık eşzamanlı olarak kaldırıyor. Böylece, değişiklikler sonrasında besteyi değiştirerek Canlı Düzenleme yöntemiyle ilgili sorunlar gideriliyor.onRelease
(I58fbf)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha07
yayınlandı. Sürüm 1.6.0-alpha07 bu kaydetmeleri içerir.
API Değişiklikleri
- Özel metin düzenleyicilere yönelik yazma testleri için
PlatformTextInputMethodTestOverride
kullanıma sunuldu. (Id159b) - Sürükle ve bırak oturumlarını başlatmak için
dragAndDropSource
Değiştirici ve sürükle ve bırak oturumlarından alım almak içindragAndDropTarget
Değiştirici ekler. (Ib7828, b/286038936) - Ayırma yapmayan
ColorList
veColorSet
koleksiyonları eklendi. (I744bd) - Doğrusal olmayan yazı tipi ölçeklendirmesini devre dışı bırakmak için
DisableNonLinearFontScalingInCompose
geçici işareti eklendi. Bunları 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ılacaktır. (Ic9486)
Hata Düzeltmeleri
- Optimize edilmiş XML vektör çekilebilir öğelerinin ayrıştırılması. (Ibb015)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha06
yayınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.
API Değişiklikleri
- Materyal simgelerinde ek optimizasyonlar. (I3e08d)
- Benzer düğümleri bulmak için değiştirici ağacı yukarı/aşağı çekme özelliği ekler. (I2d234)
focusRestorer()
değiştiriciyeonRestoreFailed()
geri çağırması eklendi (Ie1d43)ColorInt
,FloatRange
,IntRange
,Size
ve diğer değerleri belirtmek için çeşitli grafik API'lerine Androidx ek açıklamaları eklendi. (Id65c8, b/290950582)PreviewScreenSizes
tanımına (Ib61d3)showSystemUi=true
ekleyin
Davranış Değişiklikleri
- Compose, daha iyi okunabilirlik ve erişilebilirlik için artık doğrusal olmayan yazı tipi ölçeklendirmesini kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda, küçük metinlerin boyutu normal olarak artar ancak zaten büyük olan metinlerin boyutu biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğinde amaçlanan yükseklikle orantılı kalmak için otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirme En İyi Uygulamaları başlıklı makaleyi inceleyin. (I11518)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha05
yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
AndroidComposeViewAccessibilityDelegateCompat
uygulamasında içerik yakalamayı etkinleştir. (Ib2969)ScrollView
veRecyclerView
gibi View bileşenlerindeki fırlatma hızlarıViewConfiguration.ScaledMaximumFlingVelocity
ile sınırlanmıştır. Oluştur artıkDraggable
için geçerli olan kendimaximumFlingVelocity
sürümünü içeriyor. (Ibf974)- Platform sürükle ve bırak API'lerini desteklemek için ilk yapıyı ekler. (If84ce)
RotaryScrollEvent
içinedeviceId
ekleyin (Iba3bf)ui-tooling
Cihazları API'si daha yeni cihazları içerecek şekilde güncellendi (Ib25b4)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha04
yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
ReusableComposition
devre dışı bırakılması için bir yöntem eklendi. Böylece gözlemler kaldırıldı ancak düğümleri yerlerinde duruyor. Devre dışı bırakılan beste,setContent
çağrısı yapılarak tekrar etkinleştirilebilir. (Ib7f31)- Yaşam döngüsünü yönetmek ve alt bestelerin yeniden kullanımı için
ReusableComposition
arayüzü ekleyin. (I812d1, b/252846775) Modifier.focusGroup
, kararlı API'lere yükseltildi. (I7ffa3)ColorInt
,FloatRange
,IntRange
,Size
ve diğer değerleri belirtmek için çeşitli grafik API'lerine Androidx ek açıklamaları eklendi. (I70487, b/290950582)ColorFilter
API, parametrelerin daha iyi denetlenmesi için 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 sunun (Ib036e)
- Yoğunluk arayüzünün yazı tipi ölçeklendirme kısmını işlemek için
FontScalable
arayüzü oluşturuldu. (I2cf3f)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha03
yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- Giriş ve çıkış animasyonu sırasında içeriği, animasyon kapsayıcısının boyutuna göre ölçeklendiren yeni giriş/çıkış geçişi türü.
LookaheadScope
Yeni tasarım eğlenceli özellikler ve arayüz artık kararlı. (Ifb2ce) privateImeOptions
(Idb772) yapılandırması için destek eklendi
Hata Düzeltmeleri
PopupPositionProvider.calculatePosition
artık hesaplamadaki okunma durumu değiştiğinde pop-up'ın konumunu otomatik olarak günceller. (I676a1, b/292257547)- Metin alanları düzeltildi. Bu alanlar klavyeyi gösterir ve
readOnly
doğru olduğunda düzenlenebilir. OdaklanıldığındareadOnly
doğru yerine yanlış olarak değiştirildiğinde klavyenin gösterilmemesi düzeltildi. (I34a19, b/246909589) - Kullanıcı arayüzü testinde global onaylar için genişletilmiş uygulama. (I1f90d)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.ui:ui-*:1.6.0-alpha02
yayınlandı. Sürüm 1.6.0-alpha02 bu kaydetmeleri içerir.
API Değişiklikleri
- Besteyi uygulayan kişiler tarafından uygulanabilecek bir hizmet konum belirleyici arayüzü eklendi. Bu arayüz, başka bir besteye, hizmet aramaları için orijinal Besteye yetki veren bir Beste uygulamasına olanak tanır. Bu, doğrudan olarak adlandırılmamalıdır ve kullanıcı arayüzü modülünde olduğu gibi, oluşturucunun sarmalanmış sürümlerinden bulunabilen çalışma zamanında deneysel API'lerin oluşturulmasını sağlamak için kullanılır. (I296b9)
PlatformTextInput*
API, tamamen yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)SoftwareKeyboardController
veLocalSoftwareKeyboardController
artık deneme aşamasında değil.LocalSoftwareKeyboardController
artık uygun birCompositionLocal
. (I4c364)LookaheadLayout
veLookaheadLayoutScope
birkaç sürüm için kullanımdan kaldırıldı ve artık kaldırıldı. Yeni API'ler tüm Layout'larla çalışabilenLookaheadScope
API'leridir. (I12ac3)SemanticsNodeInteraction.requestFocus
, testlere odaklanma isteğinde bulunmanın daha kolay ve bulunabilir bir yolu olarak eklendi. (Ie8722)- Gelecekte test çerçeveleri tarafından kullanılmak üzere global iddiaları kaydetmek için deneysel API'ler ekleyin. (I12d77)
Hata Düzeltmeleri
AndroidView
tarafından yapılanupdate
geri çağırma işleminin ilk çağrısı,AndroidView
öğesini uygulayan beste uygulandığında çalıştırılmak yerine görünüm eklenene kadar ertelenir. Bu,update
geri çağırmasının, okunduğu bir durum bir efektle hemen değiştirilirse geçersiz kılınmayacağı bir hatayı düzeltir. (Ie9438, b/291094055)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.ui:ui-*:1.6.0-alpha01
yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
LazyList
bölgesinde ileriye dönük destek alın. Bu, ileriye dönük geçiştekiLazyList
öğesinin herhangi bir animasyonu (ör.öğe yerleştirme animasyonu,AnimatedVisibility
vb.) atlamasına ve tüm alt öğeler için ileri doğru boyutunu ve konumunu hesaplamasına olanak tanır. Ön izleme geçişinden sonra,LazyList
çocukları, ileriye dönük geçişte görüldüğü gibi gerçeğe göre bağımsız olarak canlandırabilir.
Davranış Değişikliği: includeFontPadding artık Compose'da varsayılan olarak yanlış
includeFontPadding
, Oluştur'da varsayılan olarak "yanlış" (21d806) şeklindedir.
includeFontPadding
, metnin ilk satırının ve son satırının üstüne fazladan dolgu eklenip eklenmeyeceğini kontrol eden eski bir özelliktir. Bu özellik, metin referans değerlerinin üzerine veya altına uzanabilecek karakterleri yerleştirmek için kullanılır.
Bu Oluşturma sürümünü güncellediğinizde, görüntülediğiniz her metnin ilk satırının ve son satırının üstündeki ekstra dolguyu kaldırarak tüm metinlerin kullanıcı arayüzünüzde oluşturulma biçimini değiştirir.
Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak az miktarda değişiklik yapılmalıdır. Ancak aşağıdakiler gibi engelleyicilerle karşılaşabilirsiniz: - Bozuk ekran görüntüsü testleri. Gerekirse kullanıcı arayüzünü düzeltin ve altın renkli resimleri yeniden oluşturun. - Metin biraz hizasız. Ö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 kısa mesajlarınız için includeFontPadding
özelliğini etkinleştirebilirsiniz. Parametre adlarının M2 ve M3 arasında değişebileceğ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 dokümanlarında ve bu blog yayınında bulabilirsiniz.
Bu değişiklikle bağlantılı sorunlar/hatalar yaşıyorsanız sorun izleyiciyi kullanarak hata bildiriminde bulunun.
API Değişiklikleri
InputConnection#requestCursorUpdates
(I0c69b) desteğiFocusRequester.saveFocusedChild
veFocusRequester.restoreFocusedChild
eklendi (Ic557e, b/272302679, b/275157318)- Bit eşlem öğeleri yüklenmeye çalışıldığında, yüklenemeyecek öğe yolunun açıklamasıyla birlikte atılabilir öğeleri sarmalamak 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 anlamsal özellikler ve işlemler eklendi. (I4a6bc)
- Mevcut ölçüm kontrolünün ileriye dönük geçiş olup olmadığını belirten,
IntrinsincMeasureScope
ve onun uygulamalarındaki (ör.MeasureScope
) yeni mülk. (I7a812) - Oluşturmayı alternatif yoğunluk/düzen yönü ve boyuta sahip farklı bir tuvalde yeniden hedefleme özelliğini kullanıma sunmak için
DrawScope
API güncellendi. - Yoğunluk ve düzen yönü yapılandırmasını desteklemek ve kanvası yapılandırılabilir hale getirmek için
DrawContext
güncellendi. (Ie1f9b, b/225408150) - Karakter sınırlayıcı kutuları hesaplamak için
Paragraph#fillBoundingBoxes
eklendi. (If30ee) - Ortak
MultiPreviews
kümesi eklendi (Ia5a27)
Hata Düzeltmeleri
- Özel bir
FocusTarget
oluşturmak için kullanılabilecekFocusTargetModifierNode
arayüzü eklendi. (I9790e) TextMeasurer
oluşturucudakifallback*
parametreleri,default*
olarak yeniden adlandırıldı. (I940a5)SemanticsPropertyReceiver.performImeAction
adlı dosyaonImeAction
,SemanticsActions.PerformImeAction
adı iseOnImeAction
olarak yeniden adlandırıldı. (I8e841)- İç içe kaydırmada fare kaydırma ile sürüklemeyi ayırt etmek için Tekerlek ekler (özellikle
NestedScrollConnection
için). (Ie57e4) - Döndürülen nesne orijinal
android.graphics.Paint
öğesini (I22b4c) sarmaladığındantoComposePaint
yerineasComposePaint
API'si eklendi SemanticsProperties.imeAction
öğesini kullanımdan kaldırın veSemanticsActions.performImeAction
için yeni bir parametreyle değiştirin. (I4a587)- Fareyle seçim yapma desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişler ve karakter bazında küçülür. (Ic0c6c, b/180639271)
- Daha önce
AssertionError
ofsetlerini sınırların dışına atmak için kullanılanParagraph
yöntemleri artıkMultiParagraph
ile aynı şekildeIllegalArgumentException
hatası veriyor. (I549d3, b/243338896)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.ui:ui-*:1.5.4
yayınlandı. 1.5.4 sürümü bu kayıtları içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.ui:ui-*:1.5.3
yayınlandı. 1.5.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- (b/301209788)
TextField
bazen Korece girişe odaklanıp giriş yaparken önceki komutları yanlış bir şekilde uygulayarak karakterlerin kaybolmasına yol açar.
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.ui:ui-*:1.5.2
yayınlandı. 1.5.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Arka plan iş parçacığından Accessibility Scroll API'ye erişildiğinde yaşanan kilitlenmeler için geçici çözüm eklendi.
- Anlambilim ağacına eklenen eklenmemiş düğümleri düzeltin.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.ui:ui-*:1.5.1
yayınlandı. 1.5.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Metin alanları düzeltildi. Bu alanlar klavyeyi gösterir ve
readOnly
doğru olduğunda düzenlenebilir. OdaklanıldığındareadOnly
doğru yerine yanlış olarak değiştirildiğinde klavyenin gösterilmemesi düzeltildi. (I34a19, b/246909589)
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.ui:ui-*:1.5.0
yayınlandı. 1.5.0 sürümü bu kayıtları içerir.
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.ui:ui-*:1.5.0-rc01
yayınlandı. Sürüm 1.5.0-rc01 bu kayıtları içerir.
Hata Düzeltmeleri
movableContentOf()
içindeSubcomposeLayout
kullanıldığında oluşan kilitlenme düzeltildi.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta03
yayınlandı. Sürüm 1.5.0-beta03 bu kayıtları içerir.
Hata Düzeltmeleri
- Özel bir FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (Ifb1d6)
usePlatformDefaultWidth=true
olduğunda alt pencerenin beklendiği gibi yeniden boyutlandırılmamasına neden olabilen İletişim ve Pop-up kompozitleriyle ilgili bir sorun düzeltildi. (I112ee)
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta02
yayınlandı. Sürüm 1.5.0-beta02 bu kayıtları içerir.
API Değişiklikleri
- Compose'da kullanılacak
android.graphics.Paint
örneğinin kullanımını etkinleştirmek içinasComposePaint
API'si eklendi
Hata Düzeltmeleri
- Döndürülen nesne orijinal
android.graphics.Paint
öğesini (I22b4c) sarmaladığındantoComposePaint
yerineasComposePaint
API'si eklendi
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-beta01
yayınlandı. Sürüm 1.5.0-beta01 bu kayıtları içerir.
API Değişiklikleri
- Yeniden oluşturma, renk animasyonları ve
AndroidComposeView
(Ib2bfa) içindeki ayırmalar kaldırıldı - Yetkiye izin vermek için yardımcı eğlence amaçlı
CacheDrawModifierNode()
özelliği ekler (Icf8f9) - Önceden arama sonuçlarını gözlemlemek ve isterseniz ana geçişi etkilemek için
MeasureScope
üzerinden erişilebilenisLookingAhead
mülküyle tanışın. (Ibf4c3) TalkBack
geçişindeki düğümleri yeniden sıralamak için kullanılan bir ondalık değer olan yeni semantik özelliğitraversalIndex
(düşük değerler önce gelir). (I9a81b, b/186443263)isContainer
semantik özelliğiniisTraversalGroup
olarak yeniden adlandırma (I121f6)ColorProducer
artıkproduce
yerineoperator fun invoke
kullanıyor (I4a9a2)- Çeviri/ölçek/döndürme dönüşümlerini yol nesnelerine uygulamak için
Path
dönüşüm API'si ekleyin. (I23434, b/233772232) ColorProducer
yönteminin yöntemiproduce
olarak adlandırılır. (I78bde)toFrameworkColorSpace
grubunun adınıtoAndroidColorSpace
olarak değiştirin (I4f547)ColorLambda
koleksiyonunun adınıColorProducer
olarak değiştirin. (I73b1a)- Android ve Compose renk alanı türleri arasında dönüşüm yapmak için API'leri kullanıma sunun. (Ie7db4, b/279979665)
- Metin renginin verimli bir şekilde canlandırılmasına veya ayarlanmasına olanak tanımak için
BasicText
öğesine bir renk parametresi eklendi. (Iffd88, b/246961787) TextRange.constrain
adlı dosyaTextRange.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)
dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği sonlandırıldı. Asıl amacımız bu alanı kaldırmaktı ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, kullanımdan kaldırmanın alandan kaldırılması (I98e96, b/277703184)- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) AnnotatedString
içindekiUrlAnnotation
öğeleri artıkTalkBack
gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) LineHeightStyle.Alignment(topRatio)
oluşturucu, kararlı API sürümüne yükseltildi. (I79c32, b/261565383)TextMeasurer
ve ilgili API'ler artık deneysel değil. (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'leri artık Android için deneysel değildir. (I668eb)Enum.valueOf
için değer parametresinin adı değiştirildi (Ia9b89)- enum valueOf (I818fe) değerinden daha fazla bildirilen istisna
- Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey
PlatformTextInputAdapter
API'si kullanıma sunuldu. (I58df4) - Tuval'de metin çizerken farklı harmanlama algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508) Font.MaximumAsyncTimeout
koleksiyonunun adınıFont.MaximumAsyncTimeoutMillis
olarak değiştirin. Yalnızca yeniden adlandırabilirsiniz. (I07af5)@Preview
referans cihazların güncellenmiş DPI değerleri (Id6151, b/254528382)- Metin fırçasını verimli bir şekilde canlandırmak veya ayarlamak için
BasicText
öğesinebrush
,alpha
parametrelerini ekleyin. - Kayan, Çift, Uzun, İnt, Short in :ui:ui-unit 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ş yönetiminde azaltılmış ayırmalar (I5333a)
- Vektör bellek kullanımını ve ilk kare oluşturmayı optimize etme (I2f3c6)
- Tuval ile çizgi ve nokta çizerken ayırmalar kaldırıldı (I9f535)
AndroidFont.fontVariationSettings
için doküman ekleyin (I7d9e2)
Harici Katkı
- Vektör API'lerinde (I906cb) performans artırıldı ve tahsisler azaltıldı
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-alpha04
yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
Modifier.Node
Yetki İyileştirmeleri BirDelegatingNode
öğesinden diğerModifier.Node
örneklerine yetki verme özelliği geliştirildi. Bu işlem,delegate
veundelegate
API'leriyle yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin açıkça yetki verilmiş düğüme atanması gerekiyordu. Bu değişiklikten sonra,DelegatingNode
açıkça geçersiz kılınmadığı sürece düğüm arayüzleri, dolaylı olarak yetkilendirilecektir. (67352bc)
API Değişiklikleri
- Yetki verilebilecek bir
NestedScroll Modifier.Node
olanNestedScrollModifierNode
ile tanışın. (I69513) AndroidViewBinding
composable parametresineonReset
veonRelease
parametreleri eklendi. BöyleceAndroidView
composable yansıtılabilir, görünümViewBinding
ile yeniden kullanım desteği sağlandı. (I00b1e, b/276802519)- Compose Path API, daha hızlı yeniden kullanımla sık kullanılan Yol değiştirme kullanım alanlarını desteklemek için geri sarma işlemlerini destekleyecek şekilde 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)
dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği sonlandırıldı. Asıl amacımız bu alanı kaldırmaktı ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, kullanımdan kaldırmanın alandan kaldırılması (I98e96, b/277703184)
Hata Düzeltmeleri
Dialog
bestesi tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmediği regresyon düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha03
yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
LookaheadScope
içindeSubcomposeLayout
için yeni varsayılan davranış: Koşullu alanları olmayan (ör.TabRow
,Scaffold
,BoxWithConstraints
vb.)SubcomposeLayouts
artık ileri doğru animasyonlarla sorunsuz çalışıyor.
API Değişiklikleri
- Ön izlemeden ölçüm politikasını yeniden kullanan yeni varsayılan
intermediateMeasurePolicy
, varsayılan olarakScaffold
,TabRow
veBoxWithConstraints
gibi koşullu alanlar içermeyenSubcomposeLayout
alt türün ön izleme özelliğiyle çalışmasına olanak tanır. (Id84c8) - Bir Android penceresi için oluşturulan yeniden düzenleyici,
ON_STOP
bildirimi aldığında tüm bileşim yerine yalnızcawithFrameNanos
çağrılarını engelleyecektir. Bu, durdurulan etkinliklerle ilişkili pencerelerin, veri değişiklikleri için yeniden oluşturulmaya devam edeceği, ancak animasyonların veyawithFrameNanos
öğesini çağıran diğer kişilerin engelleneceği anlamına gelir. (Id9e7f, b/240975572) motionEventSpy
adlı öğeyi kararlı olarak değiştirir. (Ic5ec4, b/261560988)- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) - Geliştiricileri
includeFontPadding
false (yanlış) ayarını değiştirmek ve test etmek için bu uyumluluk API'sini kullanmaya teşvik etmek üzerePlatformTextStyle.includeFontPadding
desteği sonlandırıldı. (I98e96, b/277703184)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha02
yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- İleriye dayalı animasyonlar sırasında ölçüm/düzen mantığını işlemek için ek bir ara önlem politikası uygulayan yeni
SubcomposeLayout
API'si. (I017d3) - PointerInput artık geç değildir ve daha iyi performans için Değiştirici.Node'u kullanır (küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
- Deneysel API'leri, Önemli etkinliklerle kararlı olarak değiştirir. (I9c7d8, b/261566839, b/261567368)
- Deneysel API'leri
PointerInputChange
sürümünde kararlı olarak değiştirir. (I1b543, b/261560988, b/261565762, b/261565749) - Daha karmaşık
Modifier.Node
uygulamaları içinSuspendingPointerInputModifierNode
örnekleme yöntemi ekler. (Ic4933) AnnotatedString
içindekiUrlAnnotation
öğeleri artıkTalkBack
gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)- Donanım tuşlarına, yazılım klavyesine gönderilmeden önce müdahale edecek 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 alanı tıklamak yerine anlamsal işlemi kullanarak 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
yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Modifier.intermediateLayout için artık açık bir LookaheadScope gerekmiyor. IntermediateLayout'taki ölçüm bloğunun alıcı olarak IntermediatemeasureScope özelliği var. Bu yapıda uygun CoroutineScope, LookaheadScope ve measureScope özelliği var.(Ibe2e5)
- LookaheadLayout, artık bir Layout olmayan LookaheadScope ile değiştirildi. Bu, LookaheadScope içindeki Chid içeriğinin doğrudan üst hesabın measurePolicy tarafından kontrol edilmesine olanak tanır. (Ibe2e5)
- Değiştirici.Nodes'un eş yordamları başlatmasına izin vermek için
Modifier.Node#coroutineScope
ekler. (I76ef9) - CompositionLocalTüketiciModifierNode arayüzünü uygulayarak Modifier.Nodes'un CompositionLocals öğesini okumasına izin ver. (Ib44df)
- @Kullanımdan kaldırılan sınıfının mülke çoğaltılması. (I882d1)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.ui:ui-*:1.4.3
yayınlandı. 1.4.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Belirli Değiştiricilerle kullanıldığında
AndroidView
öğesinin doğru şekilde yerleştirilememesine neden olan sorun düzeltildi. (I4dc77, b/274797771) - 2D Odaklı Arama özelliğinde
DropDown
menüyü etkileyen bir hata düzeltildi (b/276811828) - Özel odak giriş/çıkış özelliklerinde yalnızca lambda ilk kez çağrıldığında giriş/çıkış bloğunu çalıştıran bir hata düzeltildi (b/277234245)
focusProperties
okunurken kilitlenmeye neden olan odak sistemindeki bir regresyon düzeltildi. (b/271324781, b/274897776)
Sürüm 1.4.2
19 Nisan 2023
androidx.compose.ui:ui-*:1.4.2
yayınlandı. 1.4.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
AndroidView
ürününün değiştiricilerini doğru bir şekilde yeniden kullanmaması, dolayısıyla beklenmedik davranışlara ve kilitlenmelere neden olması sorunu düzeltildi. (Ib67ee, b/275919849)- Oluşturulan
Dialog
tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan regresyon düzeltildi (I82551, b/262140644)
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.ui:ui-*:1.4.1
yayınlandı. Sürüm 1.4.1 bu kayıtları içerir.
Hata Düzeltmeleri
AndroidView
ürününü etkilemeyenParentDataModifier
ile ilgili sorunu düzeltir (b/274797771)
Sürüm 1.4.0
22 Mart 2023
androidx.compose.ui:ui-*:1.4.0
yayınlandı. 1.4.0 sürümü bu kayıtları içerir.
1.3.0 sürümünden sonraki önemli değişiklikler
- Geç liste öğelerinin sınırların dışına kaydırıldığında atılmaması için sabitlenmesini sağlayan yeni bir
PinnableContainer
API'si eklendi. ÖrneğinModifier.focusable()
, geçerli olarak odaklanılmış öğ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ılır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, 3/29b}b/29b} - Yüzeyler'deki
IsContainer
semantik özelliğine eklendi. Bu özellik, geçiş sırasını yüzeyler gibi öğelerin anlamsal anlamına göre belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379) - Yeni bir erişilebilirlik rolü (
DropdownList
) eklendi. Bu,android.widget.Spinner
öğesine odaklanırkenTalkBack
adlı kullanıcının davranışını tekrarlamak için kullanılabilir. (I177e5, b/236159001) - Artık tek bir Paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakmak üzere
PlatformTextStyle(emojiSupportMatch)
kullanabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri artık boşta kalan kareler yürütülürken (ör.
waitForIdle
aracılığıyla) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde doğrulama yapan testleri etkileyebilir. (I8ea08, b/222093277) - Metni
Static(default)
veya Animasyonlu olarak tanımlamak içinTextStyle
öğesine deneme amaçlıTextMotion
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
yayınlandı. Sürüm 1.4.0-rc01 bu kayıtları içerir.
API Değişiklikleri
onReset
parametresini kabul edenAndroidView
birleştirilebilir işlevinin aşırı yüklemesi eklendi. Bestedeki düğümleri silinip uyumlu bir şekilde yeniden kullanıldığında View örneklerinin yeniden kullanılmasına olanak tanır. Bu, özellikle GörünümlerinLazyRows
veLazyColumns
tanesi için kullanışlıdır. (I3f10d, b/230099236)- Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey
PlatformTextInputAdapter
API'si kullanıma sunuldu. (I58df4)
Hata Düzeltmeleri
BasicTextField
uygulamasınınSetText
semantik işlemi, artık metin arabelleğini IME güncellemeleri ve test işlevleri (ör.performTextReplacement
) ile aynı kod yolunu kullanarak günceller.performTextClearance
,performTextReplacement
veperformTextSelection
metin test işlevleri 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
yayınlandı. Sürüm 1.4.0-beta02 bu kayıtları içerir.
API Değişiklikleri
modifierElementOf()
API kaldırıldı. Bunun yerine lütfen doğrudanModifierNodeElement
üzerinden uzatın. (I2256b)Layout
yeniden kullanıldığında (örneğin,LazyColumn
öğesi olarak) destek kaydını düzgün bir şekilde işlemek için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni birModifier.Node.onReset()
geri çağırması eklendi. Odaklanılan durumu düzgün bir şekilde sıfırlamak içinFocusTargetModifierNode
düzeltildi. (I65495, b/265201972)- Tuval'de metin çizerken farklı harmanlama 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 daha sık (sırasıyla önce/sonuncu olarak okunur) okunur (74e9c5)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.ui:ui-*:1.4.0-beta01
yayınlandı. Sürüm 1.4.0-beta01 bu kayıtları içerir.
API Değişiklikleri
PinnableContainer.PinnedHandle.unpin()
,release()
(I4667a) olarak yeniden adlandırıldıwaitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
vewaitUntilDoesNotExist
,ComposeTestRule
API'sine deneysel API olarak eklendi.waitUntil
API, tüm eşleştiricileri ve düğüm sayısını kabul edecek şekilde genişletildi. Daha fazla doküman içinComposeTestRule
adresini ziyaret edin. (Ifa1b9, b/226934294)Font.MaximumAsyncTimeout
koleksiyonunun adınıFont.MaximumAsyncTimeoutMillis
olarak değiştirin. (I07af5)GoogleFont.Provider.AllFontsListUri
dosyası kaldırıldı ve bunun yerine ktdoc'ta bağlandı. (16f29)
Hata Düzeltmeleri
AndroidFont.fontVariationSettings
için doküman ekleyin (I7d9e2)
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha05
yayınlandı. Sürüm 1.4.0-alpha05 bu kayıtları 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 bestesi ve bestedeki 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şaretlendi. (I580ee)usePlatformDefaultWidth
parametresini alan deneysel ek açıklamayıDialogProperties
oluşturucudan kaldırın. (Ic4048)PathMeasure.getPosition()
vePathMeasure.getTangent()
ile (I3b47c) bir yol üzerinde belirli bir mesafedeki hesaplama konumuna ve tanjanta hesaplama işlevi eklendi- Yanlışlıkla herkese açık ayarlayıcı
PlatformParagraphStyle
tarihinde kaldırıldı. (I07f47) - Satır içi/kullanımdan kaldırılan gizli işlevlerin daha fazla tür/boş kullanılabilirliği (I24f91)
- Sıfır ayırma içeren ek açıklamaları sorgulamaya
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 geçirildi. (Ic1e1d)
Harici Katkı
TextInputSession
veTextInputService
kapsamındakinotifyFocusedRect
yöntemlerinin desteği tekrar sonlandırılmadı. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha04
yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
- Geç liste öğelerinin sınırların dışına kaydırıldığında atılmaması için sabitlenmesini sağlayan yeni bir
PinnableContainer
API'si eklendi. ÖrneğinModifier.focusable()
, geçerli olarak odaklanılmış öğ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ılır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, 3/29b}b/29b} - Yüzeyler'deki
IsContainer
semantik özelliğine eklendi. Bu özellik, geçiş sırasını yüzeyler gibi öğelerin anlamsal anlamına göre belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379) - Yeni
DropdownList
erişilebilirlik rolü eklendi. Bu,android.widget.Spinner
öğesine odaklanırkenTalkBack's
davranışını tekrarlamak için kullanılabilir. (I177e5, b/236159001) - Artık tek bir Paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakmak üzere
PlatformTextStyle(emojiSupportMatch)
kullanabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri artık boşta kalan kareler yürütülürken (ör.
waitForIdle
aracılığıyla) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde doğrulama yapan testleri etkileyebilir. (I8ea08, b/222093277) - Metni
Static(default)
veya Animasyonlu olarak tanımlamak içinTextStyle
öğesine deneme amaçlıTextMotion
eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
kullanın. (I24dd7)
API Değişiklikleri
drawText
içindekimaxSize: IntSize
bağımsız değişkeni, diğerDrawScope
işlevleriyle satır içi olması içinsize: Size
ile değiştirildi.size
varsayılan olarakSize.Unspecified
değerine ayarlandı. Bu ayar, önceki varsayılan davranışı değiştirmeyecek. (Icd27d)- Kullanımdan kaldırılan deneysel yazı tipi oluşturucu kaldırıldı. (I8a724, b/261435386)
Group
kullanıcı arayüzü araç veri sınıfında artık, grubun satır içi oluşturulabilir bir işleve çağrı için olup olmadığını belirten bir alan (isInline
) bulunuyor.isInline
değeritrue
ise çağrı, satır içi oluşturulabilir bir işleve yapılır. Bununla birlikte, satır içi işlev bilgilerini oluşturmayan bir oluşturma derleyici eklentisinin sürümüyle derlenmiş modüllerden satır içi oluşturulabilir işlevlere yapılan çağrılar için yanlış olabilir. (Idb846)- Önceden deneysel API'lerden bazıları kararlı sürüme geçirildi
- Rotary Scroll Event API artık kararlı (I42ad3, b/261561229)
FontVariation
API artık kararlı (I8779f, b/241016309)- Tüm
Font()
kurucuları artık kararlı API'dir (I5948b, b/261435386) DeviceFontFamilyName
artık kararlı (I8b640, b/261435386)variationSettings
ileAndroidFont
oluşturucu artık kararlı bir API 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 yakalanmamış 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
yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
ExperimentalComposeUiApi
,PointerIcon
ürününden kaldırılıyor (I23af8)- Sayfa erişilebilirlik işlemlerini tanıtın:
PageUp
,PageDown
,PageLeft
,PageRight
. Bunların yalnızca API 29'dan kullanılabildiğini unutmayın. (Ida4ab) rememberNestedScrollConnection
parametre görünümü, kök görünümünden ana makine görünümüne güncellendi. (Ia5200)- Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API'si eklendi. (I2ba9d, b/203141462)
- Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda, basın etkileşimlerini doğru şekilde geciktirmek için
Clickable
içinde kullanılır. - Bir
Scrollable ViewGroup
içinde kullanıldığındaClickables
dalgalarını doğru şekilde geciktirmemesi düzeltildi. - Hareketlerin kaydırma etkinliğine dönüşmesi ihtimaline karşı Çekmeceler ve E-Tablolar, basmaları doğru şekilde geciktirecek şekilde güncellendi.
graphicsLayer
öğesinin her zaman ara arabelleğe (I47dc1) dönüştürüleceğini belirtmek içinCompositingStrategy.Always
öğesiOffscreen
olarak yeniden adlandırıldı- Birden fazla içerik yuvası içeren düzendeki aşırı yükleme artık kararlı (I10566, b/248294649)
- Test davranışını ve performansı incelemek amacıyla, test kapsamında Perfetto izlerini (Sistem İzlemeleri olarak da bilinir) yakalamak için, deneysel yeni API'ler
PerfettoTrace.record {}
vePerfettoTraceRule
eklendi. (I3ba16) - Oluşturma kuralı kullanılan kullanıcı arayüzü testlerinde,
withFrameNanos
geri çağırmaları sırasında devam ettirilen devamlar, tüm çerçeve geri çağırmalarının çalışması bitene kadar gönderilmez. Bu, normal çalışırken oluşturma davranışıyla eşleşir. Ancak, eski davranışa dayanan testler başarısız olabilir. Bu, yalnızca doğrudanwithFrameNanos
veyawithFrameMillis
çağrısı yapan kodu etkilemelidir ve geri çağırmaların içine taşınması gerekebilecek işlevlere iletilen geri çağırma dışında bir mantığı vardır. Örnekler için bu EKL'deki animasyon test değişikliklerini inceleyin. withFrameNanos
geri çağırmalarından sonra, ancak arayanların eş yordamlarını devam ettirmeden önce kodun çalıştırılması içinTestMonotonicFrameClock
oluşturucuya ve fabrika işlevine isteğe bağlıonPerformTraversals: (Long) -> Unit
parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)- EmojiCompat, Oluşturma'ya 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,
Recomposer
değişiklikleri uygulamayı bitirdikten sonra gönderilir. (Iad6c0, b/222093277) - Çok pencereli ekran görüntülerinin yakalanmasını sağlamak için
captureToImage
ürününde değişiklikler yapıldı. Bu, oluşturma Pop-Up'larının kullanıldığı ekran görüntüsü testleri için yararlıdır. (I169c5)
Bağımlılık Güncellemeleri
- Oluşturma Kullanıcı Arayüzü ve Oluşturma Materyali artık Yaşam Döngüsü 2.5.1'e bağlıdır. (I05ab0, b/258038814)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.ui:ui-*:1.4.0-alpha02
yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
graphicsLayer
öğesinin mevcut boyutunu göstermek içinGraphicsLayerScope
güncellendi. Bu değer,graphicsLayer
dönüşümlerini Oluşturulabilir boyutunun bir işlevi olarak hesaplamak için yararlıdır. (If8c43,b/181387080)graphicsLayer
içeriğini oluşturmak için ekran dışı birleştirme katmanından ne zaman yararlanılacağını belirlemek üzereCompositingStrategy
kullanıma sunuldu. Otomatik, alfa uygulanırsa veyaRenderEffect/Overscroll
uygulanırsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Her zamanModulateAlpha
ürününün ekran dışı arabellek kullanmaktan kaçınacağı ve bunun yerinegraphicsLayer
içinde kaydedilen çizim talimatlarının her birini değiştireceği bir ekran dışı arabellek kullanılır.ModulateAlpha
kullanımı,RenderEffect/Overscroll
kullanımları için ekran dışı arabelleğe alınmaya devam eder (I25e82, b/256382834)- Düzen ve çizimde tüm hiyerarşilerin geçersiz kılınmasına olanak tanımak için
invalidateSubtree()
,Modifier.Node
öğesine eklendi. (I4bd90) rememberNestedScrollInteropConnection
sürümünü kararlı sürüme yükseltin.rememberNestedScrollInteropConnection
için 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 okuduğu bir değer değiştiğinde bildirim alması gereken
Modifier.Node
uygulamaları tarafından kullanılabilenObserverNode
arayüzü eklendi (I5728b, b/247716483) Paint
öğesine, yerelandroid.graphics.Paint
kabul eden yeni bir oluşturucu eklendi. Ayrıca, mevcut bir yerel Paint nesnesini Compose Paint'e dönüştüren birtoComposePaint()
uzantı işlevi de eklendi. (Ica91b)- Android'de kullanmak için 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)
- Malzeme ve malzeme3 Metin,
TextField
veOutlinedTextField
öğelerineminLines
parametresi eklendi. Bu parametre, satır sayısı (I4af1d) açısından bileşenin minimum yüksekliğinin ayarlanmasını sağlar.
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.ui:ui-*:1.4.0-alpha01
yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları 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 çalıştığından etkinlikler yinelemeler arasında kaybolamaz. - Hareketler arasında etkinliklerin kaybolmasına izin verdiği için
forEachGesture()
kullanımdan kaldırıldı. Bu nedenleawaitEachGesture()
kullanıma sunuldu. (Iffc3f, b/251260206) - Android'de erişilebilir nesnelerin geri dönüşümü kullanımdan kaldırılıyor. Performans değişikliklerinin, desteklenen en eski sürümlerde bile ihmal edilebilir düzeyde olduğunu tespit ettik. (I0a961)
- Dış çizgili metnin çizimini etkinleştirmek için
DrawStyle
,TextStyle
veSpanStyle
öğelerine deneysel bir özellik olarak eklendi. (If24b8, b/155421273) AnnotatedString.Builder
artıkkotlin.text.Appendable
özelliğini uyguluyor. (I1a061, b/231030444)AnnotatedString.Builder
artık birAnnotatedString
alt dizesini ve kesişen stilleri eklemek içinappend(AnnotatedString, start: Int, end: Int)
yöntemine sahiptir.Paragraph
veMultiParagraph
boyama işlevine, dış çizgili metnin çizimini sağlayanDrawStyle
parametresi eklendi. (Ic8102, b/155421273)
Harici Katkı
- Önizlemelere TV Cihazları eklediğiniz için
vighnesh
teşekkür ederiz (Ie15cd)
Sürüm 1.3
Sürüm 1.3.3
11 Ocak 2023
androidx.compose.ui:ui-*:1.3.3
yayınlandı. 1.3.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Android 9'da Etkinlik, Oluşturma Görünümü'nün durumunu kaydederken bazen yaşanan kilitlenme için düzeltme uygulandı. (I0b755, b/260322832)
Sürüm 1.3.2
7 Aralık 2022
androidx.compose.ui:ui-*:1.3.2
yayınlandı. 1.3.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
protobuf-javalite:3.19.4
(CVE-2022-3171) (b/255545055) içinde güvenlik uyarısı alınmasını önleyen Profobuf 3.21.8 sürümü kullanılacak şekilde güncellendi
Sürüm 1.3.1
9 Kasım 2022
androidx.compose.ui:ui-*:1.3.1
yayınlandı. 1.3.1 sürümü bu kayıtları içerir.
Sürüm 1.3.0
24 Ekim 2022
androidx.compose.ui:ui-*:1.3.0
yayınlandı. 1.3.0 sürümü bu kayıtları içerir.
1.2.0 sürümünden sonraki önemli değişiklikler
- Yeni deneysel API paketi
LookaheadLayout
(önceden imkansız olan animasyon davranışlarını etkinleştirir) - Yeni deneysel API paketi
Modifier.Node
(Modifier.composed
yerine daha yüksek performanslı alternatif) - Geliştirilmiş pencere iç öğeleri desteği.
- LazyLists'teki D-Pad'ler ve donanım klavyesi için odaklanma desteği.
- İletişim kutuları ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü (bazı özel tasarım sistemleri için davranış bozucu değişiklik - beta01 sürüm notlarında gerekçe)
- Çok sayıda küçük, kesintisiz API iyileştirmesi
- Çok sayıda 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
yayınlandı. Sürüm 1.3.0-rc01 bu kayıtları içerir.
API Değişiklikleri
- Metinde otomatik kısa çizgiyi desteklemek için yeni deneysel API Kısa Çizgileri 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ı kullanılı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
yayınlandı. 1.3.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- Metin'de satır sonunu özelleştirmek için seçenekler ekleyin. (I86907)
- Minimum genişlik kısıtlamalarını desteklemek için
TextMeasurer.measure
yöntemindeconstraints: Constraints
içerensize:IntSize
bağımsız değişkeni değiştirildi. (I37530, b/242707525)
Hata Düzeltmeleri
- AndroidX Activity'in
BackHandler
API'si artıkDialog
oluşturulabilir. (I35342)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.ui:ui-*:1.3.0-beta02
yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Düzen için, oluşturulabilecek birden fazla lambda içeren bir listeyi kabul eden deneysel bir aşırı yükleme eklendi. Bu, farklı içerik lambda'larına farklı şekilde yerleştirilen ölçülebilir öğelerin tehdit edilmesine olanak tanır (Ic1b4e)
Deneysel Focus API'lerinde yapılan değişiklikler:
FocusDirection.In
veFocusDirection.Out
desteği sonlandırılıpFocusDirection.Enter
veFocusDirection.Exit
ile değiştirildi. (Ia4262, b/183746982)FocusManager.moveFocus(Enter)
veFocusManager.moveFocus(Exit)
için özel davranış belirtmek üzere iki yeni odak özelliği giriş ve çıkış eklendi. (I5f3f9, b/183746982)- Artık bir odaklanma hareketini iptal etmek için
FocusRequester.Cancel
işlevini kullanabilirsiniz.FocusRequester.Cancel
, şu odak özelliklerinden herhangi birinde kullanılabilir: yukarı, aşağı, sol, sağ, sonraki, önceki, başlangıç, bitiş, giriş ve çıkış. (Ib300f)
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-beta01
yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.
Değiştirici Düğüm Yeniden Düzeltme
Modifier/Modifier.Element
örneği işleyen ve LayoutNodes
üzerinde davranışlarını koordine eden katman büyük ölçüde yeniden düzenlendi. Bu değişiklik, Compose'daki birçok değiştiricinin herkese açık API'sini etkilemeyen bir yeniden düzenleme işlemiydi ve yalnızca uygulama amaçlı bir değişiklik olarak görülebilir. Bununla birlikte, bu değişiklik çeşitli nedenlerle önemli bir değişikliktir. (Ie4313)
Özeti Değiştir
Eklenen deneysel Modifier.Node
API'leri, düzen düğümünün yaşam döngüsüyle korunacak bir örnekte durumun korunmasını sağlayan bir soyutlama sağlar. Bu soyutlama, etkinliği oluşturan ilgili Modifier.Element
için düzen düğümü ve kullanımı başına ayrılır.
Genel olarak bu soyutlama, Modifier.composed
API'nin mekaniğine gerek kalmadan durum bilgili değiştiriciler üretmek için alternatif bir mekanizma sağlar.
Risk
Bu değişiklik, önceki sürümlerle kesinlikle ikili programlarla uyumludur ve pratik ve makul olduğu kadar gözlemlenebilir davranış açısından geriye dönük olarak uyumlu olması amaçlanmıştır. Bununla birlikte, bu yeniden düzenlemenin etkilenmediği birkaç alt sistem mevcuttur ve davranış büyük olasılıkla, testlerimizin kapsamına girmeyen ve henüz bulunmamış ve düzeltilmemiş şekillerde değişmiştir.
Lütfen bu sürüme yükseltme yaparken dikkatli olun. Bu durumun sizin için soruna yol açtığını düşünüyorsanız lütfen bize bildirin.
Deneysel API'ler
Yeni "Değiştirici Düğüm" kavramıyla ilgili olan çeşitli deneysel API'lar eklendi. Değiştirici.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
Zarar veren davranış değişikliği
İletişimlerde ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
Oluştur 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ını etkiler. Bu değişiklik, S altındaki Android sürümlerinde erişilebilirlik hatası riskini azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up'ın içindeki içerikle etkileşim kurabilmesini sağlamak için yapılmıştır.
Bu değişiklikten yalnızca, yüksekliği 8 dp'den yüksek seviyelere ayarlanmış özel bir iletişim kutusu veya pop-up uygulaması oluşturuyorsanız etkilenirsiniz. İletişim kutusu veya pop-up'ınızın yüksekliğini azaltmayı düşünün. Bu yeni davranışı devre dışı bırakmanız gerekirse kendi iletişim kutunuzu veya pop-up'ınızı istediğiniz yükseklik ayarıyla bölebilirsiniz. Erişilebilirlik olumsuz yönde etkilenebileceğinden ve iletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından erişilebilir ve okunabilir olduğundan emin olmak geliştiriciye ait olduğundan bunun yapılması önerilmez.
API Değişiklikleri
painterResource
ürününün, yapılandırma değişikliklerinde güncellenmemesi sorunu düzeltildi (I58e73, b/228862715)rememberTextMeasurer
artıkFontFamily.Resolver
,Density
veyaLayoutDirection
parametrelerini kabul etmiyor. Bu parametrelere özel değerler sağlamak için lütfenTextMeasurer
oluşturucuyu kullanın. (Ia1da3)- İletişim kutularının
WindowInsets
özelliğini desteklemesine izin vermek içinDialogProperties.decorFitsSystemWindows
özelliği eklendi. (I57742, b/229378542) - İkili dosya uyumluluğunu korumak için yazı tipi oluşturucular orijinal kotlin dosyasına geri taşındı. Son kararlı sürüme göre değişiklik yok. (Ieb2f3)
- Birkaç eşittir tanımından gereksiz operatör kaldırıldı. Bunun bir etkisi olmadı. (I6c309)
FontVariation.Setting
, gelecekteki sıkıştırma API'lerine izin veren kapalı bir arayüzdür. (I11021, b/143703328)CompositionGroup.findParameters
adlı kişiyiSlotTree.kt
alanına ekleyin. Bu sayede araçlar, slot tablosunun tamamını ayrıştırmak zorunda kalmadanCompositionGroup
ile ilgili parametreleri alabilir. (I124fe)
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-alpha03
yayınlandı. Sürüm 1.3.0-alpha03 bu kaydetmeleri içerir.
API Değişiklikleri
LayoutCoordinates.findRootCoordinates()
artık herkese açık (I7fa37, b/204723384)PlacementScope
içindeLayoutCoordinates
almak için deneysel API eklendi. Geliştiriciler bu sayede, mevcut düzenin alt öğelerini konumuna göre yerleştirecekleri yeri öğrenebilirler. (I5482b, b/238632578)- Bir
LayoutCoordinates
'dan diğerine Matris dönüşümü elde etmek içinLayoutCoordinates.transformFrom
eklendi. (Ic5ab1, b/238632578) SemanticsModifier.id
kullanımdan kaldırıldı ve semantik kimliğiLayoutInfo.semanticsId
konumuna taşındı. (Iac808, b/203559524)- Kaynak Yazı Tipleri artık yazı tipi varyasyonu ayarlarını (API 26+) belirlemeyi destekliyor. (I900dd, b/143703328)
DeviceFontFamilyNameFont
ürününde 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 ekleyin. (I3c40c, b/143703328) LineHeightStyle.Alignment
kurucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)- Paragraf artık Android ve Masaüstü için beklenmektedir|gerçek ve tanımlanmıştır. (Id387e, b/239962983)
- Arayüz Paragrafı artık Paragarph arayüzü için kapalıdır. Paragrafı alt sınıflandırma için kullanım alanı yoktur. Bu değişiklik sizi etkiliyorsa bize ulaşmanızı öneririz. (If5247, b/239962983)
PlatformTextStyle
veLineHeightStyle
adlı biçimlerden deneysel ek açıklama kaldırıldı. (I64bef)TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Lütfen bunun yerine uygulama kodundaSoftwareKeyboardController
, IME yönetim kodunda daTextInputSession
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
izni 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
yayınlandı. 1.3.0-alpha02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Baskıyı almak için yeni
PointerInputChange#pressure
özelliği eklendi. (I45a5e, b/205164819) - Oluşturulan
TextMeasurer
örneğini kolayca oluşturmak ve 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 uygulanabildiğinden, gereksiz işlevleri
KeyInjectionScope
ürününden kaldırın. Kaldırılan işlevler arasındapressKeys
,keysDown
vekeysUp
yer alıyor. (I81d77) KeyInjectionScope
içinde, söz konusu sabit değerlerin ve parametrelerin birimlerinin milisaniye olduğu "Millis" son ekini içerecek şekilde yeniden düzenlenen sabit değer ve parametre adları (Iabef5)- Metin düzenleme sorunlarının giderilmesine yardımcı olmak için
EditCommand
öğesinetoStringForLog()
yöntemi eklendi. (I53354, b/228862731) Canvas
vedrawBehind
gibi birDrawScope
üzerinde çalışan birleştirilebilir öğeler ve değiştiriciler üzerinde çok stilli metin çizmek için bir yol sağlamak üzereDrawScope
öğesinedrawText
uzantı işlevi eklendi. (I16a62, b/190787898)- Compose çalışma zamanından bağımsız olarak
BasicText
ile aynı sonuçları oluşturan rastgele metin düzeni hesaplamasına olanak tanıyanTextMeasurer
adlı yeni deneysel API'yi kullanıma sunun. (I17101) mapTree
adlı kişiyiSlotTree.kt
alanına ekleyin. Bu sayede araçlar, AsTree'de olduğu gibi bellekte kopya oluşturmadanSlotTree
öğelerini inceleyebilir. Layout Inspector için bu durum, yaklaşık 10 faktörlü bir performans artışı sağlar. (I5e113)- Geliştiricilerin kitaplıklardaki
MultiPreview
ek açıklamalarını yazmalarına ve yeniden kullanmalarına olanak tanımak için Oluşturma Önizlemesi, ikili çıkış dosyalarında depolanacak şekilde değiştirildi. (I85699, b/233511976)
Hata Düzeltmeleri
Velocity
İzleyici'yeInputEventChange
etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Böylece hedef öğe hareket etse bile hızın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (Icea9d, b/216582726, b/223440806, b/227709803)- Ek açıklamalar mevcutken
AnnotatedString.toUpperCase
nedeniyle oluşan NPE'yi düzeltin. (I0aca2, b/210899140)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.ui:ui-*:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Gerçek ölçüm/düzenden önce önizleme geçişini destekleyen yeni
LookaheadLayout
. Bu yöntem, değiştiğinde düzenin önceden hesaplanmasına olanak tanırken aynı zamanda, ileri tarihli ölçüm/düzenin hedefe yönelik boyutu ve konumları canlandırmak için önceden hesaplanmış boyutu/konumu kullanmasına izin verir.SubcomposeLayouts
henüz desteklenmiyor ancak ileriki bir sürümde desteklenecektir. (I477f5) Text
öğesinin tamamının opaklığını değiştirmek içinTextStyle
veSpanStyle
öğelerinin fırça çeşidine isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635)AnnotatedString
ürünlerindeTalkBack
bağlantı desteğini desteklemek içinUrlAnnotation
ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)- Yardımcı program işlevini çalışma zamanına taşıma (I4f729)
Hata Düzeltmeleri
TextLayoutResult.getLineForOffset
fırlatmıyor. (Idc5d6, b/235876324)
Harici Katkı
- Yeni API
WindowInfo.keyboardModifiers
API'si eklendi. API'nin, composable işlevlerde veya engagementFlow (Icdb8a) aracılığıyla durumunu gözlemlemesi gerekir
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.ui:ui-*:1.2.1
yayınlandı. Sürüm 1.2.1 bu kayıtları içerir.
Hata Düzeltmeleri
- İnceleyicideki boş işaretleyici düzeltildi (b/237987764)
- Denetleyicide anımsama sırasında 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
yayınlandı. 1.2.0 sürümü bu kayıtları içerir.
1.1.0 sürümünden sonraki önemli değişiklikler
Odak geçişinde iyileştirmeler:
- Geç listelerin odaklanma odaklı kaydırma özelliği artık yeni
BeyondBoundsLayout
temel API'yi kullanarak çalışıyor FocusOrder
veFocusProperties
sürümlerindeki yeni davranış özelleştirme API'leri- Fiziksel klavye veya TV uzaktan kumandasıyla iyileştirilmiş davranış
- Geç listelerin odaklanma odaklı kaydırma özelliği artık yeni
Şu kuruluşlar için yeni API'ler:
- Pencere içleri
- Hareket odaklı, sonsuz ve düzen animasyonları için temel öğeler
RenderEffect
dahilGraphicsLayer
özellik
Çok sayıda 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
yayınlandı. Sürüm 1.2.0-rc03 bu kayıtları içerir.
- 1.2.0-rc02 sürümünden beri değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc02
yayınlandı. Sürüm 1.2.0-rc02 bu kayıtları içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc01
yayınlandı. Sürüm 1.2.0-rc01 bu kayıtları içerir.
API Değişiklikleri
- Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturulmuştur
- Diğer tuşlar basılı tutulurken veya açıkken tuşlara basmak için
KeyInjectionScope
öğesine üst düzey işlevler eklendi. Bu işlevlerewithKeysDown
,withKeysToggled
vb. dahildir. Ayrıca belirli bir meta tuşun devre dışı olup olmadığını kontrol etmek için kullanılan özellikler de eklendi. Örneğin, kontrol tuşlarından birinin basılı olup olmadığını kontrol etmek içinisCtrlDown
. Her işlevle ilgili dokümanlar içinKeyInjectionScope
bölümüne bakın. (I9f6cd, b/229831515) - Özel fazla kaydırma efektlerine ve bunu kabul eden
Modifier.scrollable
aşırı yüklemelere olanak tanımak için deneysel birOverscrollEffect
kullanıma sunulmuştur. - Deneysel
LocalOverScrollConfiguration
,foundation.gesture
paketinden temel paketine taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) runComposeUiTestWithoutActivity {}
adınırunEmptyComposeUiTest {}
olarak değiştirerekcreateEmptyComposeRule()
ile uyumlu hale getirin (I6fed7)
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-beta03
yayınlandı. Sürüm 1.2.0-beta03 bu kayıtları içerir.
API Değişiklikleri
pressKeyTimes
,isCapsLockOn
ve arkadaşlarıKeyInjectionScope
koleksiyonuna eklendi. Ayrıca, API artık bir meta tuşu basılı tutarak fare düğmesinin tıklanması gibi fare ve klavyeyle birleşik ekleme kalıplarını da destekliyor. (I4c8da, b/229831515)- Önemli etkinliklerin eklenmesi için deneysel destek eklendi. Önemli etkinlikleri göndermek için
performKeyInput
kullanın veyaperformMultiModalInput
ile çoklu modal giriş hareketi sırasında bunlarıMultiModalInjectionScope
öğesininkey
özelliği aracılığıyla gönderin. API belgeleri içinKeyInjectionScope
sayfasına 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, oluşturma sırasında yüklenemediğinde gösterilen hata mesajlarını iyileştirin. (I0416c)
Hata Düzeltmeleri
- Hız İzleyici'ye
InputEventChange
etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede hedef öğe hareket etse bile hızın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (I51ec3, b/216582726, b/223440806, b/227709803) Show Layout Bounds
ayarı, hızlı ayarlar karosundan geçiş yapıldıktan hemen sonra, etkinlikten ayrılıp tekrar girmenize gerek kalmadan bestelere uygulanır. (I843d5, b/225937688)- Erişilebilirlik dizesi araması, yazı tipi yüklemesini tetiklemez. Önceden,
StyleSpans
için yazı tipleri yüklenmeye çalışılıyordu. Bu daFontFamily.Resolver
değerinin üzerine yazılması halinde kilitlenmelere neden oluyordu. (I4609d) - İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
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
yayınlandı. Sürüm 1.2.0-beta02 bu kayıtları içerir.
API Değişiklikleri
- Diğer önizleme türlerinde işlevleri yeniden kullanma (I19f39)
Hata Düzeltmeleri
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
, yalnızca bertaraf işleminin yapılmamasını değil, imha edilmesinin ne zaman gerçekleştiğini daha iyi yansıtmak içinDisposeOnDetachedFromWindowOrReleasedFromPool
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
yayınlandı. Sürüm 1.2.0-beta01 bu kayıtları içerir.
Yeni Özellikler
- Bu, 1.2'nin ilk beta sürümüdür!
API Değişiklikleri
- Öğeleri görünür sınırların dışına yerleştirdiklerinde
LazyList
özel uygulamaları tarafından kullanılabilecek deneyselBeyondBoundsInterval
eklendi (Ifabfb, b/184670295) Modifier.composed
anahtarlı sürümleri artık kararlı API'dir (Ie65e4, b/229988420)- Mevcut görünüm bilgilerini edinmek için beste yerellerini kullanmak üzere
rememberNestedScrollConnection
API basitleştirildi (I67ca7) @ComposableTargetMarker
tarafından işaretlenen@ComposableTarget
ek açıklaması ve ek açıklamaları artık@file
önekiyle dosya kapsamında kullanılabilir. Dosya kapsamında hedef ek açıklama kullanmak, derleyicinin dosyadaki tüm oluşturulabilir işlevlerin, ilişkili uygulamayı hedeflemeyi amaçladığını varsaymasına neden olur. Örneğin,@file:UiComposable
kullanıldığında tüm@Composable
işlevlerinin Oluştur kullanıcı arayüzü uygulayıcısını hedeflediği bildirilir. Başka bir uygulayıcıyı hedeflemesi gereken bir fonksiyon, istenen uygulama için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)Platformdan bağımsız, deneysel yeni test API'si kullanıma sunuldu:
TestRule
öğesine ihtiyaç duymadan Compose kullanıcı arayüzü testlerini çalıştırmak için kullanılabilecek birinterface ComposeUiTest
vefun runComposeUiTest(block: ComposeUiTest.() -> Unit)
.ComposeTestRule
olmadan test çalıştırmak için testi lambda olarakrunComposeUiTest
öğesine geçirin veComposeUiTest
alıcı kapsamında,ComposeContentTestRule
ile aynı yöntemler ve üyeleri kullanın.Android'e özgü
interface AndroidComposeUiTest
vefun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
,AndroidComposeTestRule
ile benzer şekilde temel Etkinliğe erişim sağlamak için eklenir. Daha fazla kontrol için kendiniz birclass AndroidComposeUiTestEnvironment
örnek oluşturabilirsiniz.Masaüstü uygulaması
class DesktopComposeUiTest
olsa da şu anda Masaüstü'ne özel çalıştırma işlevleri sunulmamaktadır.Bir testi
ComposeTestRule
ürünündenComposeUiTest
birimine taşıma işlemi aşağıdaki gibi 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
ile sınırlı değil. Bu nedenle,ComposeUiTest
üzerindeki uzantı işlevleri henüzTestRule
arayüzünde çağrılamaz.ComposeUiTest
, kararlı API'ye geçiş yaptığındaComposeContentTestRule
veComposeTestRule
,ComposeUiTest
yerine geçecek şekilde değiştirilir. (Ib4e90)LineHeightBehavior
,LineHeightStyle
olarak yeniden adlandırıldıLineVerticalAlignment
,LineHeightStyle.Alignment
olarak yeniden adlandırıldıYeniden adlandırma (
LineHeightTrim
)LineHeightStyle.Trim
olarak yeniden adlandırıldıLineHeightStyle
öğesindeki varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)Gradyan renklerle metin çizmek için bir yöntem sağlamak üzere
TextStyle
veSpanStyle
öğelerineBrush
eklendi. (I53869, b/187839528)trimFirstLineTop
,LineHeightBehavior
işlevinintrimLastLineBottom
özelliği tek bir sıralamaya dönüştürüldü:LineHeightTrim
.LineHeightTrim
, iki boole ile tanımlanan 4 durum değerine sahip:FirstLineTop
,LastLineBottom
, Her ikisi ve Hiçbiri (Ifc6a5, b/181155707)LineHeightBehavior
,TextStyle
veParagraphStyle
bölümlerine eklendi.LineHeightBehavior
, satır yüksekliğinin ilk satırın üstüne ve son satırın altına uygulanıp uygulanmayacağını kontrol eder. Ayrıca,TextStyle(lineHeight)
tarafından sağlanan alandaki çizginin hizalamasını da tanımlar.Örneğin, CSS'nin
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
aracılığıyla tanımladığı duruma benzer bir davranış elde etmek mümkündür.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları yalnızcaincludeFontPadding
yanlış olduğunda düzgün çalışır. (I97332, b/181155707)PlatformParagraphStyle.lerp
vePlatformSpanStyle.lerp
işlevleri, üst düzey işlevler olarak değiştirildi (I9a268)
Hata Düzeltmeleri
PointerInputChange::copy
dokümanlarında bunun yüzeysel bir kopya olduğu artık doğru bir şekilde belirtiliyor. (I182f5)- Yükseklik sınırlı olduğunda ve tüm metin satırlarına uymadığında üç nokta desteği (Ie528c, b/168720622)
- Varsayılan
includeFontPadding
etkinleştirildi.TextStyle.platformTextStyle
özelliğini kullanarakincludeFontPadding
devre dışı bırakılabilir. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak o zamana kadar satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre edebilir veTextField
kırpma sorunlarını çözebiliriz. (I01423, b/171394808)
Harici Katkı
MouseInjectionScope.scroll(delta = someDelta)
, Android'de artık dikey olarak kaydırdığımızda ters çevrilmiş halde duruyor (someDelta pozitifse aşağı kaydırır) (Ifb697, b/224992993)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha08
yayınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.
API Değişiklikleri
pluralStringResource
işlevleri, gelecekte daha iyi uluslararasılaştırmayı desteklemek üzere gelişimin mümkün olması için deneysel olarak işaretlenmiştir. (If24e4)- Paragraf ve Çoklu Paragraf artık Kısıtlamalar parametresini kabul ediyor.
Constraints.maxHeight
değerini atlamak şu an için bir işlem yapamaz, ancak ileride yüksekliğe göre elips yapmak gibi bazı hesaplamalar yapılabilir. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
artık yeni öğe eklemeye izin vermeyen MutableSet benzeri özel bir sınıfı kabul ediyor. (Icd314)- PointerIcon artık bir
@Stable
arayüzü (I9dafe) PointerInputChange
konumunda kısmi tüketim (düşük VEYA konum) kullanımdan kaldırıldı. Değişiklikten tamamen yararlanmak içinconsume()
öğesini kullanabilirsiniz. Daha önce başka birinin değişikliği uygulayıp uygulamadığını belirlemek içinisConsumed
kullanabilirsiniz.PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu daPointerInputChange
kopyalarının biri kullanıldıktan sonra tüketileceği anlamına gelir. Bağlantısı kaldırılmış birPointerInputChange
oluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)- Oluştur ve Görünüm arasında, Oluştur > Görünüm yönünde iç içe yerleştirilmiş kaydırma birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturma üst öğelerinin iç içe yerleştirilmiş bir kaydırma görünümünden iç içe yerleştirilmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
- Compose'u View sistemi için tasarlanan UIAutomator testleriyle uyumlu hale getirmek için kullanılabilen yeni
SemanticsProperty testTagsAsResourceId
. (I39c20) FontFamily.SansSerif
kullanılırken Android'de sistem yazı tipleri için mevcut tüm ağırlıkları göster. Bu ayar, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adlarını kullanır. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları desteklendiğinden bu bir davranış değişikliğidir. (I380fe, b/156048036, b/226441992)- Paragraf ve Çok paragraflı eğitmenler, konumsal bağımsız değişkenleri isteğe bağlı bağımsız değişkenlerin önüne gelecek şekilde yeniden sıraladı. (Idafaa)
AndroidFont
artık yapıcı parametre olarak typefaceLoader'ı kullanıyor. (I2c971)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
yayınlandı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.
API Değişiklikleri
- Yeni
Snapshot.withoutReadObservation { ... }
işlevi eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan geçirilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma özelliklerinden yararlanmak, ancak gereksiz yeniden oluşturma veya yeniden ölçüme neden olmadan değeri okuyabilmek istediğiniz kullanım durumlarında faydalı olabilir. (I9f365, b/214054486) ComposeView
öğesininconsumeWindowInsets
uzantı özelliği, geliştiricilerin AndroidWindowInsets
kullanımını devre dışı bırakmasına olanak tanır. Böylece, hiyerarşideComposeViews
her birinin birbirine müdahale etmedenWindowInsets
uygulanmasına izin verilir. (I0ef08, b/220943142)- Özellikle IME'de ondalık ayırıcının eklenmesi için
Keyboard.Number
alternatifi olarakKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) PointerEventType.Scroll
vePointerEvent.scrollDelta
artık kararlı API'ler (I574c5, b/225669674)- Görünüm sınıflarında birlikte çalışmak için Görünüm ve Oluşturma arasında İç İçe Kaydırma birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturma özelliğinin artık kaydırma deltalarını (işbirliği yapan) bir Üst Görünüme gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
FontFamily.Resolver
, sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için güncellendi (I6c1e7)Font(AssetManager, String, ...)
desteği sonlandırıldı ve yerineFont(String, AssetManager, ...)
getirildi. Bu deneysel bir API'dir. (I1c7a4)- İsteğe bağlı olarak, yazı tipi yedek zincirleri sırasında sistem tarafından yüklenmiş yazı tiplerini aramak için yeni yazı tipi tanımlayıcı
Font(DeviceFontFamilyName)
ekleyin. (I30468, b/219754572) - TextStyle/ParagrafStyle'da
includeFontPadding
için geçici uyumluluk yapılandırması eklendi.includeFontPadding
,TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
aracılığıyla değiştirilebilir. Bu, taşımayı etkinleştirmek için kullanılan 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 kullanmak içinGoogleFont.Provider
kurucusu ekleyin (Ic5ee1, b/225984280)Compose GoogleFont
artıkFont(GoogleFont)
olarak adlandırılıyor. API, aksi takdirde kararlı kalmaya devam edecek. (I125f2)
Hata Düzeltmeleri
- İç dolgunun kullanıldığından emin olmak için malzemeye/İskeleye lint kontrolü eklendi (Ifb111)
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha06
yayınlandı. Sürüm 1.2.0-alpha06 bu kaydetmeleri içerir.
API Değişiklikleri
- Odaklanabilir hedefe odaklanma isteğinde bulunmak için
RequestFocus
semantik işlemi eklendi. (I17b71) - Geçerli düzen yönü RTL ise
VectorPainter
öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çekilebilirlerinin ayrıştırılması güncellendi. (I79cd9, b/185760237) API uyumluluğu amacıyla gölge/ortam renkleri,
Modifier.graphicsLayer
öğesinin son parametreleri olacak şekilde güncellendi (I3f864, b/160665122)Bozulmayan API değişikliklerinden emin olmak için
GraphicsLayerScope
işletim sisteminde gölge/ortam rengine varsayılan uygulamalar eklendiRSB etkinliklerine etkinlik saati eklendi (Ief8ae)
FocusOrder
,FocusProperties
adlı altında birleştirildi vefocusProperties()
artıkfocusOrder()
ürününün tüm özelliklerine sahip.FocusOrder
vefocusOrder()
desteği sonlandırıldı.focusRequester
kabul edenfocusOrder()
,focusProperties()
ile birliktefocusRequester()
değiştiriciyle değiştirilmelidir. Bu, değiştiricilerin endişeleri daha iyi ayırmasına olanak tanır. (I601b7)Artık hem
RecyclerView
hem deCompose
yeni sürüme geçirildiğinde, Oluşturma görünümleri alt öğe olarak RecyclerView'ların kaydırma performansı çok daha iyi olacaktır.Yerleşik varsayılan stratejiyi alma yöntemi olarak
ViewCompositionStrategy.Default
özelliğini eklemeYeni varsayılan strateji olan ve RecyclerView gibi havuz kapsayıcılarını düzgün bir şekilde işleyen
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
ekleyin. (If7282)Çoklu önizleme özelliğini eklemenin ilk adımı olarak @Preview ile ek açıklama sınıflarına ek açıklama ekleme desteği eklendi. Bu tür ek açıklamalar, Oluşturulabilir yöntemlere veya diğer ek açıklama sınıflarına not eklemek için kullanılabilir. Böylece bu ek açıklama sınıfları, belirtilen @Preview ile dolaylı olarak eklenmiş olarak kabul edilebilir. (I12eff)
@Preview için Cihazlar listesine eklenen referans cihazlar (I071c9)
Hata Düzeltmeleri
- Vektör grafik API'ları, @UiComposable (I942bc) yerine @VectorComposable doğru yazılabilir ek açıklamasını kullanacak şekilde güncellendi
AnnotatedString.Builder.withStyle
öğesinden çapraz satır içini kaldır (If84d5)
Harici Katkı
- generate-ui:
GraphicsLayerScope
alanınaambientShadowColor
vespotShadowColor
özellikleri ekleyin (I1ba1a, b/160665122) - Çoğul kaynaklar artık
pluralStringResource
işlevleri aracılığıyla desteklenmektedir. (Ib2f23, b/191375123)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha05
yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
TextToolbar
artıkActionCallback
yerine lambda bağımsız değişkenlerini alıyor. (Ib2eb9, b/197950089)- Temel ve uygulama uyumluluğundaki null değer, Tiramisu DP2 (I0cbb7) ile eşleşecek şekilde güncellendi.
- Ölçülen arayüz artık parentData özelliğini gösteriyor (I3313f)
Modifier.onPlaced
veOnPlacedModifier
arayüzü artık kararlı. (Ib5482)- Harika! Animasyon oluşturma artık Geliştirici Seçenekleri'ndeki "Animatör süre ölçeği" ayarını destekliyor. (I5a4fc, b/161675988)
- Yerel bir
BeyondBoundsLayout
değiştirici eklendi (If8b51, b/184670295) - Metin: includeFontPadding artık varsayılan olarak devre dışı.
includeFontPadding=false
sonucunda ortaya çıkan kırpma sorunları ele alınır ve uzun komut dosyalarında kırpma işlemi gerçekleşmez. (I31c84, b/171394808)
Hata Düzeltmeleri
- Halihazırda içerik varken içerik ayarlamaya çalışırsanız
ComposeContentTestRule.setContent
artık birIllegalStateException
gönderir. (I888a5, b/199631334) - Android'de panodan okuma sırasında pano içeriğinin neden olduğu kilitlenmeyi düzeltin. (I06020, b/197769306)
- RSB kaydırma örneklerini iyileştirin. (I6a596)
Harici Katkı
- Kotlinx eş yordamları 1.6.0 (I3366d) kullanılacak şekilde güncellendi
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha04
yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
Oluşturulabilir bir işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleme olarak adlandırıldığı durumların derleme zamanı raporlamasını sağlayan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
eklendi.Çoğu durumda, ek açıklamalar yazma derleyici eklentisi tarafından anlaşılabilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadirdir . Tahmin edilemeyen durumlar arasında özel bir uygulama aracı, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), oluşturulabilir lambda olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler tahmin edilir) oluşturup kullanma veya
ComposeNode
ya da ilgili bir oluşturma işlevi kullanılır.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
çağıran oluşturulabilir işlevlerin, işlev ve oluşturulabilir lambda parametre türleri içinComposableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ek açıklaması içeren bir ek açıklama oluşturmanız ve daha sonra, işaretli ek açıklamanın doğrudanComposableTarget
yerine kullanılması önerilir.ComposableTargetMarker
ile işaretlenmiş bir ek açıklama, uygulama parametresi olarak özellik sınıfının tam nitelikli adına sahipComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımına ilişkin örnek içinanroidx.compose.ui.UiComposable
sayfasını inceleyin. (I38f11)Font(resId, ...)
artık kararlı API'de yükleme stratejisini kullanıyor. (Ief3d2)FontLoadingStrategy
artık kararlı bir API. (I1ee35, b/174162090)Metinde (I77057, b/214587005) eşzamansız yazı tipi yüklemeyi destekleme
Özel
Font.ResourceLoader
öğesiniFontFamily.Resolver
biçimine dönüştürmek için Bridge API'sini ekleyin. (Ia0060)
Hata Düzeltmeleri
- Sağlanan
FontFamily.Resolver
, Pop-up gibi alt bestelere aktarılır. - Sağlanan
Font.ResourceLoader
, Pop-up gibi alt bestelere aktarılır. (I48fa5)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları 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
politikasını kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)RenderNode
saplama sınıfında (I1e659, b/216660268)destroyDisplayListData
yöntemi kullanıma sunuldu- Önceden oluşturduğunuz
SubcomposeLayout
alt öğelerini önceden ölçmenizi sağlayan yeni bir API eklendi. (I857ea) Oluşturulabilir bir lambda'yı, durumunu hareket ettiren bir lambdaya ve karşılık gelen düğümleri, adı verilen yeni bir konuma dönüştüren
movableContentOf
eklendi. Önceki çağrı besteden çıktığında, durum geçici olarak korunur ve lambdaya yeni bir çağrı besteye girerse durum ve ilişkili düğümler yeni çağrının konumuna taşınır. Yeni çağrı eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.Bir
movableContentOf
lambdası aynı bileşimde birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Ayrıca, çağrılar besteden çıkıp yeni çağrılar girdikçe durum, ilk ayrılan çağrılardan gelen çağrılara çağrıldıkları sırayla taşınır. Yeni çağrılar tarafından talep edilmeyen tüm eyaletler kalıcı olarak kaldırılır. (Ib4850)FontFamilyResolver
artıkLocalFontFamilyResolver.current
üzerinden kullanılabilirYazma kullanımının dışında yeni FontFamily çözümleyicileri oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi.Paragraf ve Çoklu Paragraf artık
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
artık bu düzen için kullanılan çözümleyiciyi içeriyor.TextLayoutResult.layoutInput.resourceLoader
artık kullanılmadığı için kullanımdan kaldırıldı. (Id5a45, b/174162090)Yedek davranışlı eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text and TextField (Metin ve TextField) tarafından kullanılır ve FontFamilyStepr aracılığıyla gösterilir
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 eş yordam bağlamının ayarlanmasına olanak tanır. (I87fe8, b/174162090)Android'de yeni yazı tipi kaynağı tanımlayıcı türleri sağlamak için kullanılan alt düzey yeni bir API olan
AndroidFont
eklendi. Örneğin, uygulamaya özel bir arka uçtan yazı tipi yükleme, isteğe bağlı olarak cihazda önceden yüklenmiş yazı tiplerini bulma veya mevcut Yazı Tipi fabrikalarının sağlamadığı bir kaynaktan bir yazı tipi yükleme.İsteğe bağlı ve eş zamansız yazı tipi yüklemeyi desteklemek için genişletilmiş
Font.ResourceLoaded
API. Uygulama geliştiricilerin bu API'yi doğrudan kullanmaları önerilmez. Yeni yazı tipi türleri eklemek içinAndroidFont
bölümüne bakın.Font.AndroidResourceLoader
uzantı işlevi, bestenin dışındayken birFont.ResourceLoader
oluşturulmasına izin verir.Kaynak yazı tipi indirilebilir yazı tipleri XML'ine referans verdiğinde eş zamansız yüklemeye izin vermek için kaynak tabanlı yazı tiplerine
loadingStrategy
parametresi eklendi. (Ie5aea, b/174162090)Typeface(FontFamily)
oluşturucunun desteği sonlandırıldı. Bu özellik, önceden yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. İndirilebilir yazı tipleri sayesinde bu çağrı 10 saniye boyunca engellenebilir. Bunun yerineFontFamilyResolver.preload
politikasını kullanın.fontResource(FontFamily): Typeface
desteği sonlandırıldı. Bu özellik, önceden yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. Bunun yerineFontFamilyResolver.preload
kullanın (If8e7c, b/174162090)maxSlotsToRetainForReuse
oluşturucuyu kabul edenSubcomposeLayoutState
kurucusu artık kullanımdan kaldırıldı. Bunun yerine,SubcomposeSlotReusePolicy
'yi kabul eden yeni bir oluşturucu var. Bu yeni arayüz, hangi alanların gelecekte yeniden kullanılmak üzere saklanacağını ayrıntılı şekilde kontrol etmenizi sağlar. (I52c4d)Color
'deki HSV ve HSL işlevini, deneysel olmayan API olarak gösterir. Oklab renk alanı artık herkese açık bir API'dir. (I08fb6, b/180731008)Herkese açık API'ye yönelik olmaması amaçlanan ve sizin için herhangi bir işlem yapmayan
AndroidComposeTestRule.AndroidComposeStatement
kullanımdan kaldırıldı. (Ibc46b)Dahili olarak oluşturulan kt sınıfını yeniden adlandırma (Ia0b9e, b/174162090)
FontLoadingStrategy.values
kaldırıldı (I42a9d, b/174162090)Global yazı tipi yükleyicinin adı
FontFamilyResolver
olarak değiştirildi. (I4f773, b/174162090)Masaüstü için yeni yazı tipi yükleme sistemini kullanın. (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
,State<Any>
(I4406c, b/174162090) değerini döndürür
Hata Düzeltmeleri
- Metin Alanları artık odaklanıldığında ve klavye gösterildiğinde, yumuşak giriş modu
ADJUST_PAN
olduğunda klavyenin üzerinde tutulacaktır. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolver
için yerel besteyi kullanıyor - Masaüstü
FontLoader
desteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090) - Odak metin alanları arasında değiştirildiğinde dokunmatik klavye giriş türü artık titremiyor. (I1bf50, b/187746439)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
yayınlandı. Sürüm 1.2.0-alpha02 bu kaydetmeleri içerir.
API Değişiklikleri
- Dönen yan düğmesi olan Wear cihazları için
Modifier.onRotaryScrollEvent()
veModifier.onPreRotaryScrollEvent()
eklendi (I18bf5, b/210748686) - Deneysel
View.createLifecycleAwareRecomposer
uzantısını (I0cde6) ekleyin
Harici Katkı
PointerEvent.scrollDelta.y
artık Android'de ters çevrilmiş (artık fare tekerleğini sağa doğru yatırırsak -1 yerine 1 değerini döndürüyor) (Ia9811)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
FontFamily.canLoadSynchronously
desteği sonlandırıldı. Bu özelliğin semantik anlamı yoktur. (Ica5ef)- Düzen İnceleyici'de değişmez kimlikler oluşturmak için
CompositionData
öğesine kimlik alanı eklendi. (Ic116e) - Wear OS cihaz kimlikleri, Cihaz önizleme listesine eklendi (I93232)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
uygulamasına bağlı.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.ui:ui-*:1.1.1
yayınlandı. Sürüm 1.1.1 bu kayıtları içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
adresindekiNullPointerException
sorununu düzeltin (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında pano içeriğinin neden olduğu kilitlenmeyi düzeltin. (I06020, b/197769306)
LazyVerticalGrid
cinsinden sabit RTL (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.ui:ui-*:1.1.0
yayınlandı. Sürüm 1.1.0 bu kayıtları içerir.
1.0.0 sürümünden sonraki önemli değişiklikler
- Android 12 Fazla kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
- Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik kurallarına uyacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olarak ayarlasanız bile Düğme dokunma hedefi minimum 48x48 dp boyutuna genişler. Bu, Materyal Oluşturma Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirerek Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
- Navigasyon Rail için Kararlı Desteği
- Önceden deneysel API'lerden bazılarını 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
yayınlandı. Sürüm 1.1.0-rc03 bu kayıtları içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03 sürümünü destekleyecek şekilde güncellendi
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-rc01
yayınlandı. Sürüm 1.1.0-rc01 bu kayıtları içerir.
Hata Düzeltmeleri
- Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
SemanticsNodeInteraction.captureToImage()
, görüşme süresince (Idf3d0) etkinleştirildiğindeHardwareRenderer.isDrawingEnabled()
false
olduğunda da çalışır
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-beta04
yayınlandı. 1.1.0-beta04 sürümü bu kayıtları içerir.
Yeni Özellikler
- Kotlin
1.6.0
ile uyumlu olacak şekilde güncellendi
API Değişiklikleri
androidx.core.view
içindeki null değer temizlendi (I7078a, b/204917439)- Kullanıcıların PointerInputchange'i bir bütün olarak kullanmalarına veya tüketilip tüketilmediğini kontrol etmelerine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
- Kullanıcı arayüzü katmanında fare kaydırma tekerleği etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
- Eşitlik açısından karşılaştırılacak ve optimizasyonları atlamaya uygun olacak anahtarları kabul eden deneysel
Modifier.composed
aşırı yüklemeleri ekleyin. (Ice799, b/205851704) ComposeNotIdleException
, artık doğrudanThrowable
yerineException
ile sunuluyor. Bu,Exception
yakalayan yakalama ifadelerinin artıkComposeNotIdleException
öğelerini yakalayabileceği ancak önceden bunu yapmadıkları anlamına gelir. (I9c217)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerlerini düzeltin. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta03
yayınlandı. 1.1.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- Yerleşim değişikliğinin gözlemlenmesine izin vermek için yeni Modifier.onPlaced değiştiricisi eklendi. Dolayısıyla, 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ı. Artık tüm etkinliklerin temizlenmesi ve kapsamın ortadan kaldırılması, daha önce olduğu gibi performans*Input() yönteminin sonunda gerçekleştiriliyor. (I2bed8)MultiModalInjectionScope.Touch
veMultiModalInjectionScope.Mouse
kaldırıldı. Çok modlu hareketlere dokunma ve fare etkinliklerini eklemek için artıkMultiModalInjectionScope.touch()
veMultiModalInjectionScope.mouse()
kullanabilirsiniz. Bunların ikisi de, ilgili yöntemin alıcı kapsamına sahip olan lambdaları kabul eder. (Idde18)
Hata Düzeltmeleri
TouchInjectionScope.swipeWithVelocity
içindekidurationMillis
için varsayılan değer artık kaydırma işleminin uygun olacak şekilde hesaplanmıştır. (I19deb)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta02
yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Ebeveynlere, ekranı kaydırarak bir öğeyi görünür hale getirmeleri için istek göndermenizi sağlayan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
- Araçları destekleyen yeni animasyon API'leri. Özellikle, bu araçlar animasyonları ve yapılandırmalarını Geçişlerde inceleme olanağı tanır. (I4116e)
Harici Katkı
- Modifier.pointerHoverIcon eklendi (I95f01)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-beta01
yayınlandı. Sürüm 1.1.0-beta01 bu kayıtları içerir.
API Değişiklikleri
- Ebeveynlere, bir öğeyi görünür hale getirmek için kaydırma isteği göndermenizi sağlayan deneysel
BringIntoView
API'si eklendi (Ib918d, b/195353459) - Araçları destekleyen yeni animasyon API'leri. Özellikle, bu araçlar animasyonları ve yapılandırmalarını Geçişlerde inceleme olanağı tanır. (I4116e)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
yayınlandı. Sürüm 1.1.0-alpha06 bu kayıtları içerir.
API Değişiklikleri
ExperimentalComposeUiApi
sitesiniViewRootForInspector
veLayoutInfo.ownerViewId
alanlarından kaldırın (I5c2e3)- Layout için iyileştirilmiş verimlilikle çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
- Modüller arası olarak adlandırılması gereken Composer yöntemlerinden
InternalCompilerApi
kaldırıldı (I1aa0b) SemanticsNodeInteraction.performSemanticsAction
şimdi işlevin çağrıldığıSemanticsNodeInteraction
değerini döndürüyor. (I9e5db)- TouchMode/NonTouchMode değerlerinin algılanması için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
- Tüketicilerin, uzun süre basma zaman aşımı gibi konularda doğru değeri elde etmesini sağlamak için
LayoutInfo
öğesineviewConfiguration: ViewConfiguration
eklendi. (I76ca6)- Testlerin, uzun basma zaman aşımı veya dokunma eğimi gibi unsurlara göre giriş yerleştirmeyi ayarlamasına izin vermek için
viewConfiguration: ViewConfiguration
özelliğiInjectionScope
bölümüne eklendi. - Hem dokunma hem de fare girişinin varsayılan uzun basma ve iki kez dokunma süresi,
InjectionScope.viewConfiguration
içindeki değerlere dayalı olacak şekilde değiştirildi.
- Testlerin, uzun basma zaman aşımı veya dokunma eğimi gibi unsurlara göre giriş yerleştirmeyi ayarlamasına izin vermek için
- içinde TextField ve DropdownMenü bulunan ExposedDropdownMenüBox'a (If60b2) dayalı ExposedDropdownMenü'nün uygulanması
- PopupProperties'e launchOnOutsideClick, kullanımdan kaldırılan closeOnClickOutside'ın yerine eklendi. Yeni mülk, tıklama konumunu ve çapa sınırlarını alarak onDismissRequest'in çağrılıp çağrılmayacağı üzerinde daha ayrıntılı kontrol sağlar. Örneğin bu şekilde, sabite yapılan dokunmalarda sabitleyicinin kapatılmasını önleyebilirsiniz.
- UpdateAndroidWindowManagerFlags, PopupProperties'e eklendi. Böylece, pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde alt düzey denetim sağlanmış oldu. Lambda'nın parametresi, WindowManager flag'leriyle sonuçlanan PopupProperties değerlerinden hesaplanan işaretler olacaktır: ör. odaklanılabilir. Lambda'nın sonucu, Android WindowManager'a aktarılacak son flag'ler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmeden bırakır. Bu API, yalnızca pop-up'ın çok özel davranış gereksinimleri olduğu durumlarda dikkatli kullanılmalıdır. (I6e9f9)
Recomposer.state
kullanımdan kaldırıldı ve türünü StateFlow (Ic2ab3, b/197773820) olarak değiştirmek içinRecomposer.currentState
ile değiştirildiflush()
vedispose()
,InjectionScope
koleksiyonuna eklendi. Bunları, sıraya alınan tüm etkinlikleri hemen temizlemek ve kapsamı kaldırmak istediğinizde kullanın. (Ifb73a)- Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştirici ile eşleşen içeriğe kaydıran
performScrollToNode(matcher: SemanticsMatcher)
eklendi. (Ic1cb8) InjectionScope
artıkDensity
özelliğini uygulayarakperformTouchInput
ve arkadaşlarında px ile dp arasında kolayca dönüştürme yapmanızı sağlar. (I8fe1f)
Hata Düzeltmeleri
- AndroidView artık ViewTreeLifecycleOwner ve ViewTreesaveStateRegistryOwner aracılığıyla LocalLifecycleOwner ve LocalSaveStateRegistryOwner görünümlerini kendi görünümüne yayar. (I38f96, b/179708470)
- WearOSScrollToDismissBox bazen kaydırma işlemlerini işlemez 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ş hareketlerini 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
yayınlandı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
- Arasında değiştirici iletişim için ek destek (Id5467, b/198826874)
- PointerEventChange öğesine deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
density: Density
velayoutDirection: LayoutDirection
,LayoutInfo
koleksiyonuna eklendi. Bu,LayoutInfo
tüketicilerininLayoutInfo
konumunda gösterilen boyutları ve konumu doğru şekilde yorumlamasını sağlar. (I002f1)- Fare etkinlikleri eklemek için deneysel destek eklendi. Fare etkinliklerini göndermeye başlamak için
performMouseInput
kullanın veyaperformMultiModalInput
ile çok kalıcı giriş hareketi sırasında fare etkinlikleriniMultiModalInjectionScope
öğesininMouse
özelliği aracılığıyla gönderin. Kullanılabilir API belgeleri içinMouseInjectionScope
adresine bakın. (Iaa4a8, b/190493367)
Hata Düzeltmeleri
- Kaydırılabilir öğeler (hem geç hem de tembel olmayan) için kaydırma açısından sabit erişilebilirlik desteği (I6cdb0)
TouchInjectionScope.swipeWithVelocity
iyileştirildi. Bu özellik artık daha geniş bir giriş değişkenlerini kabul ediyor ve kaydırma işlemi yapılamıyorsa girişte değişiklik yapılmasını öneriyor (I40fbe, b/182477143)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
PointerEvent
, artık fareyle üzerine gelme etkinliklerini desteklemek için birPointerEventType
özelliğine sahip. (I091fa)- Çocukların, ebeveynin işaretçi giriş sınırlarının dışındaki işaretçi girişlerini kabul etmesine izin verin. Üst öğeler, bu çağrılara PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655) adlı bir özellik ile müdahale edebilir.
- Kullanımdan kaldırılan
performGesture
veGestureScope
,performTouchInput
veTouchInjectionScope
ile değiştirildi. (Ia5f3f, b/190493367) - Geliştiricilerin dokunma hedeflerinin minimum erişilebilirlik değerlerini karşılamasını sağlayabilmeleri için minimum dokunma hedefi boyutunu içeren
touchBoundsInRoot
,SemanticsNode
öğesine eklendi. (I2e14b, b/197751214) - İncelenebilirlik uygulamasını yeniden yap (I927bc, b/191017532)
- Inspectable parametre adı, oluşturulan ile eşleşecek şekilde değiştirildi (I3a482, b/191017532)
performTouchInput
veTouchInjectionScope
yerine başka yöntemlere (fare gibi) yol açanperformTouchInput
veTouchInjectionScope
kullanıma sunuldu.TouchInjectionScope
,updatePointerTo
veupdatePointerBy
olarak yeniden adlandırılanmovePointerTo
vemovePointerBy
hariç olmak üzereGestureScope
ile aynı yöntemlere sahiptir. Diğer tüm yöntemler aynıdır.TouchInjectionScope
davranışı, iki küçük ayrıntıyla birlikteGestureScope
ile neredeyse aynıdır:- İşaretçiler taşınırken bir taşıma etkinliği gönderilmemişken bir aşağı etkinlik gönderildiğinde (yani,
updatePointerTo()
kullanılmış,move()
değil ve ardındandown()
çağrılırsa) önceki uygulama, etkinlik zamanını ilerletir ve aşağı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu özel senaryoda etkinlik süresini ilerletmez. - İşaretçiler taşınırken bir taşıma etkinliği (yukarıdaki gibi) göndermeden bir yukarı etkinliği gönderirken, önceki uygulama etkinlik zamanını ilerletir ve yukarı etkinliğini göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama bunların ikisini de yapmaz: İşaretçilerin yeni konumları yalnızca up etkinliği aracılığıyla yansıtılır.
Son olarak
TouchInjectionScope
, verilen işaretçinin mevcut konumunu almak için yeni bircurrentPosition(pointerId: Int)
yöntemini kullanıma sunar. (If1191, b/190493367)- İşaretçiler taşınırken bir taşıma etkinliği gönderilmemişken bir aşağı etkinlik gönderildiğinde (yani,
Hata Düzeltmeleri
- Klibin, minimum dokunma hedefi amaçları için dokunma hedefi sınırlarını klip bölgesinin dışına genişletmesine izin verin. (I43e10, b/171509422)
- Android 12 cihazlarda esneme fazla 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
yayınlandı. Sürüm 1.1.0-alpha03 bu kaydetmeleri içerir.
Yeni Özellikler
- Oluşturma
1.1.0-alpha03
öğesi, Kotlin1.5.30
sürümünü temel alacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Diğer değiştiricileri sarmalama için
Modifier.inspectable
eklendi. (I1909b, b/191017532) - Bulanıklaştırma kullanım alanlarını basitleştirmek için klip işaretleri ve TileMode'ların daha yaygın olarak kullanılan kombinasyonlarına
BlurredEdgeTreatment
API eklendi. Çoğu kullanım durumu, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına izin verilmesi ve bu sınırların dışındaki alanların şeffaf siyahla bulanıklaştırılması veya içeriğin en yakın kenardan örneklenen içerik sınırlarına kırpılması, içerik sınırlarının ötesine geçen bulanıklaştırma çekirdekleri için içeriğin en yakın kenardan kesilmesidir. (I6b4b7, b/166927547) - Oluşturma masaüstünde RenderEffect desteği eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklaştırma görsel efektleri sağlamanın basit bir yolu olarak ofset efektinin yanı sıra bulanıklaştırma düzenleyici kullanıma sunuldu. (I0f6aa, b/166927547)
- Katmanın içeriğini değiştirmek için isteğe bağlı olarak
Modifier.graphicsLayer
üzerinde yapılandırılabilen RenderEffect API'yi kullanıma sunduk. Bu özellik, bir beste hiyerarşisindeki bir beste ve alt bestenin içeriğini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547) - AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() özelliklerine (I507f0, b/179239764, b/182397793) sahip
- Erişilebilirliği sağlamak amacıyla, anlambilimde ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
- Bulanıklaştırma tabanlı RenderEffects için uç davranışını tanımlamada yararlı olan TileMode.Decal desteğini ekleyin. (I7e8ed, b/166927547)
performScrollToIndex
,performScrollToKey
,hasScrollToIndexAction
vehasScrollToKeyAction
artık kararlı API'ler (I142ae, b/178483889)- Kırpılan sınırları almak için test yöntemi eklendi. (I6b28e)
Hata Düzeltmeleri
- Şekil parametresinin null olup olmadığının açık bir şekilde kontrol edilmesi yerine FluredEdgeTreatment'tan 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
yayınlandı. Sürüm 1.1.0-alpha02 bu kaydetmeleri 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ı kullanmaktadır.
performGesture
içindeki yerleştirilen etkinliklerin geçerli zamanı, MainTestClock'un geçerli zamanına başlatılır. (Ifb364, b/192064452) DpRect(DpOffset, DpSize)
kurucusu eklendi (I2cf16, b/194219828)- DpSize sınıfı eklendi (I7abb1, b/194219828)
Hata Düzeltmeleri
- VectorDrawables'ta kök renk tonu özellikleri olarak ColorStateLists özelliğini desteklemek için Vector grafik 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
yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
RelocationRequester.bringIntoView
artık composable öğesinin bir bölümünü görüntülememize olanak tanıyan dikdörtgeni parametre olarak kabul ediyor (Ice2c5, b/194330245)AnimatedImageVector
ve ilgili API'ler artık yeniandroidx.compose.animation:animation-graphics
modülünde. (I60873)- Taşıma isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
ColorPainter'a benzer şekilde, Painter içinde rastgele bir Brush çizmeyi destekleyen BrushPainter API'yi kullanıma sundu
Brush API, BrushPainter içinde sorgulanan yerleşik bir boyut parametresine sahip olacak şekilde güncellendi (Ia2752, b/189466433)
İsteğe bağlı bir FilterQuality parametresini kullanmak için kaynak ve hedef rects'leri kullanan DrawScope#drawImage yöntemi güncellendi. Bu özellik, piksel tabanlı çizim için ölçek büyütüldüğünde pikselleştirilmesi amaçlanan piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresi (Ie4fb0, b/180311607) kullanacak şekilde güncellendi
Bir hareketteki etkinliklerin zamanlaması üzerinde daha fazla kontrol sağlamak için
GestureScope.advanceEventTime
yöntemi eklendi (Ibf3e2)
Hata Düzeltmeleri
- Çizim değiştiricilerinin zincirlenmesini daha iyi desteklemek için Modifier.paint uygulama çağrılarınındrawsContent'in olduğundan emin olun.
Daha önce Modifier.paint'in Değiştiriciler zincirinde bir yaprak düğüme eklenmesi bekleniyordu ancak bunu yaptığınızda, Modifier.paint bunun bir oluşturulmuş kapsayıcıda (ör. kutu) yapılandırılmasını veya üzerine
Modifier.paint().border()
gibi ek süslemelerin eklenmesini engeller. Belirtilen resmin içeriğini çizdikten sonra Modifier.paintdrawContent'i çağırarak değiştirici kalıbıyla daha iyi davranış tutarlılığı elde ederiz. (Ibb2a7, b/178201337, b/186213275) - İletişim kutuları artık platform boyutlandırma davranışını izler. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini false olarak ayarlayın. (Iffaed, b/192682388) InfiniteAnimationPolicy
dosyası :compose:ui konumuna taşındı (I5eb09, b/160602714)- Geç listeler ve normal kaydırma bileşenleri için anlamsal 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
yayınlandı. 1.0.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- türetStateOf örneklerinin kilitlenmesini izlemeyle ilgili sorun düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.ui:ui-*:1.0.4
yayınlandı. 1.0.4 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
modeline bağlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.ui:ui-*:1.0.3
yayınlandı. 1.0.3 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
modeline bağlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.ui:ui-*:1.0.2
yayınlandı. 1.0.2 sürümü bu kayıtları içerir.
Compose 1.0.2
sürümünü destekleyecek şekilde güncellendi. 1.0.2
oluşturma işlemi, Kotlin 1.5.21
ile hâlâ uyumlu.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.ui:ui-*:1.0.1
yayınlandı. 1.0.1 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
sürümüne bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0
yayınlandı. 1.0.0 sürümü bu kayıtları içerir.
1.0.0'ın temel özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Sürüm Oluşturma 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 şu kilitlenmeyle karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Sorunu düzeltmek için
build.gradle
dosyanızda minSdkVersion değerini geçici olarak 24'e yükseltin. Bu sorun, Android Studio Bumblebee ve7.1
AGP'nin yeni 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
yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- İletişim kutuları artık platform boyutlandırma davranışını izler. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini false olarak ayarlayın. (Iffaed, b/192682388)
Sürüm 1.0.0-rc01
1 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0-rc01
yayınlandı. Sürüm 1.0.0-rc01 bu kayıtları içerir.
Yeni Özellikler
- Kullanıcı arayüzü araçlarını
ui-tooling
veui-tooling-preview
olarak ayırın (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) - Tuval artık erişilebilirlik için contentDescription parametresini desteklemektedir. (Ib547c)
PopupProperties
öğesindekiuseDefaultMaxWidth
,usePlatformDefaultWidth
olarak yeniden adlandırıldı. (I05710)- İletişim kutuları artık tüm ekran genişliğini kullanabilmektedir. (I83929, b/190810877)
- HSV ve HSL renk temsilleri için deneysel destek eklendi. (Id7cf8, b/180731008)
Davranış Değişiklikleri
- Compose
@Preview
artık mevcut sahibin mevcut olmasına bağlı olanrememberLauncherForActivityResult()
gibi API'leri kullanan besteleri önizlemenizi sağlayan birLocalActivityResultRegistryOwner
sunuyor. (Ib13d1, b/185693006) - Compose
@Preview
artıkBackHandler
gibi API'leri kullanan besteleri önizlemenizi sağlayan birLocalOnBackPressedDispatcherOwner
sağlıyor. Bu beste, mevcut sahibin mevcut olmasına bağlı. (Ia1c05, b/185693006)
Hata Düzeltmeleri
InfiniteAnimationPolicy
,androidx.compose.ui:ui
konumuna taşındı (I5eb09, b/160602714)- AnimasyonluImageVector, 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
yayınlandı. 1.0.0-beta09 sürümü bu kayıtları içerir.
API Değişiklikleri
- Enum Rolü ve LiveRegionMode, özel kurucuyla (Id1890) satır içi sınıflara dönüştürülür
- Klavye büyük harf kullanımı, satır içi sınıfa dönüştürülür. (Id5a1c)
- HapticfeedbackType'ı satır içi sınıf olarak değiştirin. (I255ec)
- Modifier.pointerInteropFilter: @DeneyselalComposeUiApi. (Iede6c)
- TextPercent, FontSynthesis ve TextDirection artık satır içi sınıflardır. (I212fe)
- TextOverflow, satır içi sınıf olarak değiştirildi. (I433af)
- FontStyle artık bir satır içi sınıf oldu. (I9e48b)
Hata Düzeltmeleri
- Anahtar sabit değerleri şimdilik @DeneyselalComposeUiApi'dir. Kodun kullanılması, sabitleme işleminden önce özel sabitleri bildirebilir. (Ia5d48)
- Oluşturma testleri artık Roboecric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tanımlanmıştır:
- Yerel bit eşlem olmadığından
ImageBitmap()
, NullPointerException'a yol açar. - Çizim olmadığından
captureToImage()
, süresiz olarak bir sonraki çekiliş kartını bekler (yani kilitlenme). - Yazı tipi yüklenmediğinden metinler yanlış ölçülecek. Tüm karakterler yaklaşık 20 piksel sabit yüksekliğe ve 1 piksel genişliğe sahiptir.
ComposeTestRule.waitUntil {}
, beklerken ana iş parçacığını çalıştırmaz. Bu, iş parçacığını etkin bir şekildeComposeTestRule.mainClock.advanceTimeUntil {}
ile aynı hale getirir. Gelecekte daha fazla sınırlandırmanın tanımlanması bekleniyor. (I284fa)
- Yerel bit eşlem olmadığından
Profil Kuralları Eklendi
Bu sürüm, aşağıdaki oluşturma 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.çalışma zamanı
- 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 bulunanbaseline-prof.txt
metin dosyasında belirtilir. Dosya, her satır için bir kural belirtir. Buradaki kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme için bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan, kullanıcılar tarafından okunabilen ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini kullanır.Bir yöntem kuralının kalıbı aşağıdaki gibi olur:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Sınıf kuralının kalıbı aşağıdaki gibidir:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmemesi gerektiğini belirtmek içinH
,S
veP
karakterlerinden bir veya daha fazlasını gösterilmektedir.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfı tanımlar. Ö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öndürme türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yöntemiisPlaced()Z
imzasına sahiptir.Tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için bu kalıplarda joker karakterler (
**
,*
ve?
) bulunabilir.
Kurallar ne işe yarar?
H
işaretine sahip bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini belirtir.S
işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemin başlangıç zamanında yorumlanmasını önlemek için önceden derlenmesi gerektiğini belirtir.P
işaretine sahip bir yöntem, bunun başlangıçtan 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 maliyetinden kaçınmak için yığında önceden ayrılması gerektiğini belirtir.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özel kompakt bir ikili ART profili oluşturmak için kullanılır. Böylece ART, uygulamanın performansını iyileştirmek amacıyla belirli bir alt kümeyi önceden derlemek için uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bu işlem, özellikle ilk çalıştırmada uygulamanın performansını iyileştirir. Bu işlemin, hata ayıklaması yapılabilecek uygulamalar üzerinde etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta08
yayınlandı. 1.0.0-beta08 sürümü bu kayıtları içerir.
API Değişiklikleri
NestedScrollSource
sıralaması, satır içi bir sınıfla değiştirilir. (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true)
,FocusManager.clearFocus(force = true)
(Ia0c41) olarak yeniden adlandırıldı- Yeni enum değerleri eklendiğinde kapsamlı ifadelerle ilgili sorunları önlemek için satır içi sınıflarda enum kullanımları yeniden düzenlendi. (I2b5eb)
@ExperimentalComposeUiApi
,PopupProperties
hesabından kaldırılsın mı? (I01fa6)PointerType
, numaralandırmadan satır içi sınıfa dönüştürüldü (If5058)- ContentDescription ve Text semantics özellikleri artık tek değerler değil, listelerdir. Böylece, öğeler birleştirme yerine oldukları gibi birleştirilebilir. 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ılmış ve yeriniModifier.focusTarget()
(I6c860) almıştırModifier.onSizeChanged()
veModifier.onGloballyPositioned()
artık satır içi işlevler değil (I727f6, b/186109675)KeyboardType
sıralaması, satır içi bir sınıfla değiştirilir. (I73045, b/187055290)FocusState
sıralaması,FocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- ImeAction sıralaması bir satır içi sınıfla değiştirilmiştir. (I18be5, b/187055290)
PlaceholderVerticalAlign
, satır içi sınıfa dönüştürülür. (If6290)- TextUnitType artık bir satır içi sınıftır. (I4cba9)
AnnotatedString.withAnnotation
işlevleri artık ExperimentalComposeApi'nin yerine ExperimentalTextApi'dir. (I0cd0a)- TextUnitType içeren TextUnit kurucusu artık ExperimentalComposeApi yerine DeneyselalTextApi olmuştur.
Hata Düzeltmeleri
- Beta07'de kullanıma sunulan, LazyColumn/Satır öğelerinin kaydırmadan sonra kısmen gösterildiği hata düzeltildi (I8c9ac, b/188566058)
- Artık
detectDragGesures
,detectVerticalGestures
vedetectHorizontalGestures
konum değişimini otomatik olarak kullanacak ve onDrag geri çağırmalarında change.consumePositionChange çağrısı yapılması gerekmez (I42fc4, b/185096350, b/187320697) - Hizalama çizgileri sağlayan LayoutModifiers düzeltildi. Alt öğelerin hizalama çizgileri değiştirilirken üst öğenin yeniden ölçülememesine neden olan bir hata düzeltildi. (I4401f, b/174315652)
Modifier.onGloballyPositioned()
, tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını raporlayacak şekilde değiştirildi. Bu, artık değiştiricilerin sıralamasının, hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta07
yayınlandı. 1.0.0-beta07 sürümü bu kayıtları içerir.
API Değişiklikleri
- İnceleyicide kullanılmak üzere
ViewRootForInspector
arayüzü eklendi (Ib70df) SubcomposeLayoutState
artık yeniden kullanılabilir slotların sayısını ayarlamayı destekliyor. Düzen, bir dahaki sefere yeni bir alana (Ieb981) ihtiyaç duyduğumuzda alanı yeniden kullanmak için bu sayıda alanı silmek yerine etkin kalır.- KeyEventType sıralaması, satır içi bir sınıfla değiştirilir. (Id670a, b/187055290)
FocusDirection
sıralaması, satır içi bir sınıfla değiştirilir. (Ib6d03, b/187055290, b/184086802)- SubcomposeLayout durumunu kaldırma özelliği sunar. Bu sayede içeriği bir slotId şeklinde önceden derleyebilirsiniz. Bu sayede, bir dahaki sefere kompozisyon gerekmeyeceğinden, belirtilen slotId ile alt derlemeye çalıştığımızda bir sonraki önlemin daha hızlı geçirilmesini sağlar. (I42580, b/184940225)
- Klip Seçimi Tutma Yeri Eklendi (Iff80d, b/183408447)
- Layoutİnceleyici desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)
Hata Düzeltmeleri
- LazyColumn/Satırı artık daha önce aşağı kaydırılmış olsalar bile önceden görünür olan en fazla 2 öğeyi etkin (atanmamış) tutacak. Bu, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt kompozisyonları yeniden kullanmasına olanak tanır. (Ie5555)
AnnotatedString
üzerindekiTextGeomerticTransform
veTextDecoration
, belirtildiği şekilde uygulanacak. (I61900, b/184760917)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta06
yayınlandı. 1.0.0-beta06 sürümü bu kayıtları içerir.
API Değişiklikleri
- Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
@ComposeCompilerApi
artık@RequiresOptIn
değil (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)
- Dizine eklenmiş öğeler içeren bir listeyi belirli bir dizine sahip öğeye kaydırmak için
SemanticsActions.ScrollToIndex
, anahtarlı öğeler içeren bir listedeki bir öğenin dizinini almak içinSemanticsProperties.IndexForKey
eklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirtilen dizine kaydıran
SemanticsNodeInteraction.performScrollToIndex
ve listeyi belirtilen anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKey
eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirtilen dizine kaydıran
- GraphicKatmanInfo'ya ownerViewId eklendi (I19f62)
- Öğeler, File ve FileDescriptor'daki (I5d382) yazı tiplerini yüklemek için Font() aşırı yüklemeleri eklendi
- Geçersiz giriş içeren bir düğümün işaretlenmesine olanak tanıyan
error
Erişilebilirlik API'si eklendi (I12997, b/180584804, b/182142737) - Öğeler, File ve FileDescriptor'daki (I43007) yazı tiplerini yüklemek için
Font()
aşırı yüklemesi eklendi - AnnotatedString, desteğini
TextFieldValue.Saver
öğesine kaydet.AnnotatedString.Builder
paketineaddTtsAnnotation
ve withNotlar yardımcı program işlevleri eklendi (I8cbdc, b/178446304) - Metin Birimi 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
yayınlandı. 1.0.0-beta05 sürümü bu kayıtları içerir.
API Değişiklikleri
- Deneysel
FocusManager.moveFocus(In)
veFocusManager.moveFocus(Out)
eklendi (Ic5534, b/183746743) - Deneysel
performTextInputSelection
API'si eklendi (I2dcbb, b/178510628) InputEventCallback
arayüzü kullanımdan kaldırıldı. Arayüz, herkese açık hiçbir API'de kullanılamamış ve kodda da kullanılmamıştır. (I34a02, b/184003208)- Kullanımdan kaldırılan
TextLayoutResult/createTextLayoutResult
işlevi. Bu, test amacıyla eklenen kullanılmayan bir herkese açık işlevdir. İşlev, Composer metin API'leri için kullanılabilir hiçbir şey yapmaz. Bu işlev artık kullanımdan kaldırılmıştır ve daha sonra kaldırılacaktır. (I80413)
Hata Düzeltmeleri
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
erişilebilirlik kaydırma işlemi düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırır. (Ieccb0)- ui-test-manifest veui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumludur (I6f9de, b/184718994)
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta04
yayınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.
API Değişiklikleri
SoftwareKeyboardController
üzerindekihideSoftwareKeyboard
veshowSoftwareKeyboard
adlı kullanıcıların adlarını sırasıylahide()
veshow()
olarak değiştirin.- LocalYazılımKlavyeController için tam CompositionLocal arayüzünü sağlayın. Bu arayüz, ayarlanmasına olanak tanıyın (özellikle testlerde kullanılır) (I579a6)
- LiveRegion Accessibility API eklendi. Düğüm canlı bölge olarak işaretlenirse erişilebilirlik hizmetleri kullanıcıyı değişiklikleri hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946).
- TextOverflow.visible kullanıma sunuldu. (Ic8f89)
Hata Düzeltmeleri
- Kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin, hızlı hızlı kaydırmadan sonra yanlış konumlandırılmasıyla ilgili sorun düzeltildi (Ie4d13, b/183877420) AndroidViewBinding
artıkAndroidViewBinding
oluşturma hiyerarşisinden kaldırıldığındaFragmentContainerView
ile şişirilen parçaları düzgün bir şekilde kaldırıyor. (Ib0248, b/179915946)AndroidViewBinding
,ComposeView
öğeniz birFragment
içinde olduğundaFragmentContainerView
aracılığıyla şişirilen parçaları artık doğru şekilde iç içe yerleştirerek bu parçaların durumunu kaydetme ve geri yükleme sorunlarını düzeltir. (I70eb0, b/179915946)- ViewBinding oluşturma artık Fragment
1.3.2
öğesine bağlıdır ve yapılandırma değişikliklerinden sonra artıkFragmentContainerView
aracılığıyla şişirilen 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
yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- ComposeView'un ViewTree bağımlılıkları için ertelenmiş kontrol (I8dbbf, b/182466548)
GestureScope
bölgesindekiswipeUp
/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
yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- TextField'te önceki SoftwareKlavyeController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel API'si eklendi. (I5951e, b/168778053) - TextField'te önceki SoftwareKlavyeController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel 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
, @DeneyselalTestApi 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
öğeleri 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ında kısıtlamalar uygula (I6aa29, b/174531520)
androidx.compose.ui:ui
artık AppCompat veya Fragment'a bağlı değil. Uygulamanızda ComposeView'un yanı sıra Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 veya sonraki sürümleri / Fragment 1.3 ve sonraki sürümleri kullanın. Bu sürümler, ComposeView için gereken yaşam döngüsünü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak için gereklidir. (I1d6fa, b/161814404)- Gezinme-oluşturma hedefinde kullanıldığında bozuk
rememberSaveable { mutableStateOf(0) }
sorunu için düzeltme uygulandı. (I1312b, b/180042685, b/180701630) - TextField'te önceki SoftwareKlavyeController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel API'si eklendi. (I658b6, b/168778053) ComposeRootRegistry
hesabınıntearDownRegistry()
öğesindeki (Iddce1) nadir görülen NoSuchElementException sorunu düzeltildi
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-beta01
yayınlandı. 1.0.0-beta01 sürümü bu kayıtları 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
adlı cihaza eklendi (I67269, b/179995594) - Yerleşik öğelere boyutlandırmak için kullanılan değiştiriciler artık deneysel değildir. (I15744)
- measureBlocks, eğlenceli bir arayüz haline gelen measurePolicy olarak yeniden adlandırıldı. Layout API'leri, measurePolicy'yi kullanacak şekilde güncellendi veya basitleştirildi. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, Etkileşim etkinliklerinin yayınlanmasından / toplanmasından sorumludur.
interactionState = remember { InteractionState() }
öğesiniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
kullanın.Interaction.Pressed in interactionState
yerine, EngagementSource'ta EngagementSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmalısınız.- Karmaşık kullanım örneklerinde, Etkileşim akışını gözlemlemek için EngagementSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için Etkileşim Kaynağı dokümanlarına ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'a AccessibilityMananger arayüzü ve LocalAccessibilityMananger'ı ekle (I53520)
- Kullanımdan kaldırılan LayoutKoordinat yöntemleri kaldırıldı, locationInParent ve boundsInParent için özellik yerine işlev kullanın (I580ed, b/169874631, b/175142755)
- Temel türlerle değiştirilen typealias'lar:
ColorStop
artıkPair<Float, Color>
SpanStyleRange
artık `AnnotatedString.RangeParagraphStyleRange
artıkAnnotatedString.Range<ParagraphStyle>
StringAnnotation
artıkAnnotatedString.Range<String>
- (I8dd1a)
- CoreTextField gibi alt düzey metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Placeable, artık alt düzenin ölçüldüğü boyutu temsil eden measurementSize değerini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla Sekme veya Radyo Düğmelerinin koleksiyonunu işaretlemeye olanak tanıyan seçim Grubu değiştiricisi ekleyin (Ie5c29)
compositionLocalOf
vestaticCompositionLocalOf
içindefaultFactory
artık isteğe bağlı yerine zorunludur.Bu değişiklik, varsayılan fabrikanın sağlanmadığı, boş bırakılamayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, null yapılamayan bir tür için boş referans sağlıyordu.
Boş değer içeren türler için varsayılan fabrika ayarı olarak
{ null }
değerini sağlayabilirsiniz.Makul bir varsayılan sağlanmadığı sürece, null yapılamayan türlere sahip yerellerin kullanılması önerilmez. Mantıklı bir varsayılan yoksa
defaultFactory
lambda bir istisna atmalıdır. Bununla birlikte, istisna yapılması, yerel tüketicilerin tür sistemi tarafından zorunlu kılınmayan, sunulan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Kullanıcı arayüzü modüllerinde desteği sonlandırılan yöntemler kaldırıldı (I646f6)
Boyut değiştiriciler yeniden adlandırıldı. Modifier.width/height/size, requiredwidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.PreferredGenişlik/tercih edilenYükseklik/tercih edilenBoyut, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)
Modifier.tapGestureFilter
kaldırıldı. Bunun yerineModifier.pointerInput { detectTapGestures(...) }
politikasını kullanın. (I266ed, b/175294473)işaretçi giriş sisteminden kısmi tüketim kaldırıldı. Kısmi kullanımı koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)
Yön, temel paketine taşındı. VelocirtTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)
imageKaynak ve VektörResource, artık sırasıyla ImageBitmap ve ImageVector tamamlayıcılarında uzantı işlevleridir.
load{Image,Vector,Font}Resource
işlev silindi. (I89130)AnimationClockObservable ve alt sınıflar kaldırıldı. Animasyonlu Kayanlık kaldırıldı. (Icde52, b/177457083)
Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı
- Beste oluşturucu artık anahtar parametresi kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, derlenebilir bir üst düzey işlev yerine birleştirilebilir üst düzey mülke dönüştürüldü.
- CompositionData ve CompositionGroup androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- ComposableLambdaN, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- Snapshot işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil.
- @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.
- keySourceInfoOf ve sıfırlaSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
- Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değildir.
- isjoinedKey, katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar artık gerekli değildir.
- Çeşitli üst düzey API'ler taşındı ve farklı dosyalar halinde yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu, ikili program uyumluluğunu bozar ancak kaynak uyumluluğunu bozar. Bu nedenle çoğu kullanıcı için bir sorun olmamalıdır.
- (I99b7d, b/177245490)
ComponentActivity.setContent()
,Compose:ui'den kaldırıldı.androidx.activity:activity-compose:1.3.0-alpha01
sağlayıcısından olanı kullan.viewModel()
veLocalViewModelStoreOwner
, generate:ui'den kaldırıldı.androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
kapsamındakileri (I6f36b) kullanınModifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanıyor (I4f5a5, b/174485541, b/175294473)
PointerInputModifier'ın sunduğu Customevens desteği kaldırıldı (I02707, b/175294473)
SnapshotStateObserver artık Deneysel değil (Id2e6a)
Daha önce desteği sonlandırılmış API'lerden bazıları silindi (Ice5da, b/178633932)
long PressestFilter ve doubleClickActionsFilter kaldırıldı. Modifier.pointerInput'u tespit TapHarekets (I2fedf, b/175294473) gibi yardımcı işlevlerle kullanın.
String.format API'nin çeşitli toString yöntemlerindeki kullanımları, String.format'tan dahili olarak yararlanmayacak şekilde yeniden düzenlendi. (Id1290)
dp onayları kaldırıldı (I798d2)
androidx.compose.runtime:runtime-dispatch (I55feb) kaldırıldı
Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
runBlockingWithManualClock
kaldırıldı (I15cdc, b/179664814)Modifier.verticalScroll()/LandscapeScroll() içindeki kaydırma konumu artık Ints ile temsil edilir (I81298)
FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decays yerine askıya alma animasyonunun özelleştirilmesine izin veriliyor. (I02b86, b/175294473)
Tüm ImeAction geri çağırmaları için aynı işlemi ayarlamaya yardımcı olacak bir yardımcı işlev eklendi (I63447, b/179226323)
Kısa süre içinde yeni bir API ile değiştirilecek olan SoftwareKlavyeController geri çağırması tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
FontSpan ve FontWeigthStyleSpan artık kullanılmamaktadır ve kaldırılmıştır. (Ie5b56, b/177423444)
Aşağıdaki Material API değişiklikleri yapıldı:
- Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
- BackdropScaffold'daki parametreler, isteğe bağlı parametrelerden önce gelen gerekli parametreler için API yönergelerine uygun olacak şekilde yeniden sıralandı.
- BottomNavigasyonItem öğesindeki
icon
parametresi,selected
veonClick
satırlarından sonra olacak şekilde taşındı. - BottomNavigasyonItem öğesindeki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametreleri yalnızcacontent
olarak yeniden adlandırıldı. - Parametreler
ButtonDefaults.buttonColors()
içinde yeniden sıralandı. Parametrelerin türü değişmediği için bunun kodunuzda bir hataya neden olmayacağını lütfen unutmayın. Lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde, kodunuz öncekiyle aynı şekilde çalışmaz. secondaryVariant
parametresidarkColors()
parametresine eklendi. Bu renk, koyu temada genelliklesecondary
ile aynıdır, ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.- Yaygın olarak kullanılmadıkları / yararlı olmadıkları için ElevationDefaults veactivateElevation() herkese açık API yüzeyinden kaldırıldı.
Slider
içindekionValueChangeEnd
öğesi,onValueChangeFinished
olarak yeniden adlandırıldı ve boş değer atanabilir.- Tutarlılık için
Snackbar
içindekitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolgunun özelleştirilmesine olanak tanımak için
DropdownMenuItem
parametresinecontentPadding
parametresi eklendi vecontent
,RowScope
üzerinde uzantı haline getirildi. ModalDrawerLayout
adlı dosyaModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
adlı dosyaBottomDrawer
olarak yeniden adlandırıldı.- (I1cc66)
Hata Düzeltmeleri
- Compose'da animasyonluVectorDrawable kaynaklarını kullanmak için API eklendi. Animasyonu
animatedVectorResource kullanarak
<animated-vector>
XML'i bir SheetsImageVector olarak yükleyip boyaterFor (I8ea91) ile - TextField'te önceki SoftwareKlavyeController arayüzünün yerini almak üzere yeni Local SoftwareKlavyeController bileşimi API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-alpha12
yayınlandı. 1.0.0-alpha12 sürümü bu kayıtları içerir.
API Değişiklikleri
- ViewGroups için destek, UiApplier'dan kaldırıldı. Desteği sonlandırılan emitView composable öğeleri kaldırıldı. (Ifb214)
- Modifier.pointerInput artık yeni bağımlılıklar için işaretçi girişi algılama eş yordasının ne zaman yeniden başlatılması gerektiğini belirtmek için tuşların hatırlanmasını gerektiriyor. (I849cd)
- CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
- Sınırlar, DpRect (I4b32a) olarak yeniden adlandırıldı
- Test güncellemesi: hasText(), metin alanında (Iab803) hem giriş hem de etiket/hint/yer tutucu metinleri kontrol eder.
- viewModel() composable ve LocalViewModelStoreOwner androidx.lifecycle.viewmodel.compose konumuna taşındı. Şimdi, kullanmak için ayrı bir bağımlılık (androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01) bağımlılığı eklemeniz gerekir. (I7a374)
- AccessibilityAction'de null işleme izin verin, AccessibilityAction ve CustomAccessibilityAction'teki işlem etiketini CharSequence'ten String (I0dc82) olarak değiştirin
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter'ın adı BitmapPainter, paralel VectorPainter olarak değiştirildi. (Iba381, b/174565889)
- Artık bağımsız değişken olarak alt dize içeren daha iyi alt dize testi API'leri (Icbe78)
- Özel bir odak sırası lambda belirtmeden FocusRequester'ı kabul eden bir
Modifier.focusOrder()
eklendi. Bu, oluşturma öğesi için özel odak sırası değil, yalnızca referans belirtmemiz gerektiğinde yararlı olur (I4f52a, b/179180978). - ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
- Destructstruct ve copy() yöntemleri nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
- Pop-up, platforma özgü olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve
isFocusable
,PopupProperties
konumunda (Ieeea5) birfocusable
parametresine taşındı. - İletişim kutusu, platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
- LayoutNode dahili hale getirildi (I8a7b1, b/175103944)
- Constraints.enforce öğesinin yerine Constraints.restriction geldi. (I8b8ea)
- loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, VektörResource ve loadVectorResource desteği sonlandırılmıştır. Bunun yerine PaintterResource kullanın. (I6b809)
- ScrollAxisRange semantiği, performans nedeniyle artık doğrudan Kayan noktalı değerler yerine Kayan noktalı değerleri döndüren lambda'ları almaktadır. (If4a35, b/178657186)
- Erişilebilirlik amacıyla metin alanının düzenlenebilir giriş metnini işaretlemek için EditableText semantiği eklendi. Anlamı kontrol etmek için ilgili test yöntemleri de eklendi (I8e07a)
- SahipKatman/OwnerScope/OwnerSnapshotObserver dahili hale getirildi (I4ffaf, b/175103944)
- toIntPx(), roundToPx() olarak yeniden adlandırıldı. (I9b7e4, b/173502290)
- IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
- Snapshot API, dahili uygulama sınıflarını herkese açık API'den gizlemenin yanı sıra API yönergelerine daha uygun olacak şekilde güncellendi. (Id9e32)
- Anlamsal genişletme ve daraltma işlemleri eklendi. ModalBottomSheetState'e (Ib5064) genişletme ve yarısı genişletme eklendi.
- Modifier.dragToolsFilter kullanımdan kaldırılmıştır. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, bir eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473) - Ambiyans -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde Ambiyanslar yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılırken artık CompositionLocals adı LocalFoo olarak adlandırılıyor. (I2d55d)
- Kullanımdan kaldırılan BaseTextField artık kaldırılmış durumda. Bunun yerine BasicTextField politikasını kullanın. (I71368)
- Seçim, temele taşındı. (I7892b)
- Benzer şekilde, daha önce
state { 0 }
composposto öğesini, şimdi deremember { mutableStateOf(0) }
gibi kullanımı teşvik etmek için tasarladığımızsavedInstanceState { 0 }
kompozit içeriğini kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmanız gerekir. MutableState içinde kullanılan tür Paket'te depolanabiliyorsa bu öğe otomatik olarak kaydedilir ve geri yüklenir. Daha önce bir özel tasarruf nesnesi iletiyorsanız şimdistateSaver
parametresine sahip yeni bir forceSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şöyle görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Erişilebilirlik için şifre anlamı 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ı, artık performans üzerinde herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)snapshotFlow
vewithMutableSnapshot
artık deneysel (I6a45f) değil- Yeniden düzenleyenler artık kapatılabilir. Kapalı yeniden düzenleyenler, beste alt eş yordamları tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatmayla zıtlık oluşturmak için iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
- UisaveStateRegistry, SaveableStateRegistry olarak, AmbientUiKaydedilmişStateRegistry, AmbientSaveableStateRegistry olarak ve her ikisi de androidx.compose.runtime.saveable paketine taşınmıştır. (I30224)
- Artefact androidx:compose:runtime:runtime-saved-sample-state öğesi, androidx:compose:runtime:runtime-saveable (I6dcac) olarak yeniden adlandırıldı
- Kullanıcı arayüzü paketinde, uzun süredir desteği sonlandırılmış birçok API silinmiştir. (I2f2dc)
- create:runtime-dispatch yapısı kullanımdan kaldırıldı. MonotonicFrameClock artık sadeceCompose:runtime'da, AndroidUiDispatcher ise write:ui'de bulunabilir. (Ib5c36)
- Outline.* sınıfları artık veri sınıfı değildir (I4879e, b/178001427)
view.captureToImage()
, herhangi bir değişiklik yapılmadan kaldırıldı. (I7fcd2)- Kaynak içeriğin rgb değerlerini değiştirmek için kullanılan ColorMatrix API'si kullanıma sunuldu. Refactored ColorFilter API, bir arayüze dönüşür ve PathEffect uygulamasıyla eşleşir. (Ica1e8)
- Shape'in createOutline öğesine layoutDirection parametresini ekleyin. Bu, düzen yönüne duyarlı şekiller oluşturulmasına olanak tanır. (I57c20, b/152756983)
- onImeActionPerformed desteği sonlandırıldı. Bunun yerine KlavyeActions'ı kullanın (If0bbd, b/179071523)
- Sonsuz animasyonlara uygulanacak bir
InfiniteAnimationPolicy
eş yordam bağlam öğesi kullanıma sunuldu. Varsayılan olarak, testlerinComposeTestRule
ile çalıştırıldığı durumlar dışında herhangi bir politika yüklenmez. (I50ec4, b/151940543) - canDrag, Modifier.scrollable dosyasından kaldırıldı. (Id66e7, b/175294473)
- LayoutKoordinatörler.parentKoordinatörleri, yeni bir ana öğeKoordinatörü özelliğine izin vermek için, Düzen Koordinatları. Üst Koordinatlar mülkü artık üst değiştiricinin DüzenKoordinatlarını sunmaktadır. Bu sayede onSizeChanged() ve onGloballyPositioned() (Idfbfd, b/177926591) için daha kapsamlı kullanım alanları sunulur.
- dokunun. Bunun yerine, Dedefier.clickable veya Modifier.pointerInput'u tespit TapHarekets işleviyle kullanın. (I6baf9, b/175294473)
- SaveableStateRegistry'nin unregisterProvider öğesi kaldırıldı. Bunun yerine registerProvider() artık kaydınızı iptal etmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesi döndürüyor (Ic4274, b/178583739)
- JuneSaveInstanceState(), voiceSaveable() olarak yeniden adlandırılıp androidx.compose.runtime.saveable paketine taşınmıştır. (I1366e, b/177338004)
- CoreText ve CoreTextField, herkese açık API'den kaldırıldı
- Kullanımdan kaldırılan SelectionContainer aşırı yükü kaldırıldı
- (I99c19)
- Compose'un hiyerarşilerde doğrudan WindowManager'a eklenen/kaldırılan testler artık daha kararlı. (Ie81ed, b/175765614)
- Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönlendirilen geç oluşturulmuş, pencere kapsamlı Recomposer'lar olarak ayarlanmıştır. Ana makine Yaşam Döngüsü durdurulurken yeniden oluşturma veFrameNanos tabanlı animasyon kareleri duraklatılır. (I38e11)
- Recomposer.runningRecomposers artık süreçte devam eden bileşim durumunu gözlemlemek için küresel bir salt okunur RecomposerInfo StateFlow'u sunuyor. Bu API'yi, kullanımdan kaldırılan Recomposer.current() için tercih edin. (If8ebe)
- Saver, listSaver(), MapSaver(), autoSaver
- EditCommands, AnnotatedString'i kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve birden fazla stilde 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ı kullanıcı arayüzü veri modülüne taşındı ve deneysel (Ic95b8) olarak işaretlendi.
- RounderCornerShape, CutCornerShape ve CornerBasedShape parametreleri, şeklin rtl yönünde otomatik yansıtmasını desteklemek için başlangıç/bitiş olarak soldan/sağdan farklı olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için 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 bir tür parametre de kullanılmamaktadır.
Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir ancak ikili programlarda sorun yaratan bir değişikliktir. (I3b922, b/169406779)
Yanlışlıkla herkese açık olan StringBuilder.deleteAt işlevini (Id6ed9) kaldırın
Hata Düzeltmeleri
- Görünüm hiyerarşilerine yerleştirilen ve başka bir bestenin alt öğesi olan ComposeView'lar artık üst öğelerinin alt bestelerini barındırıyor (I92883)
- ImageBitmap nesnelerini yüklerken kaynak çekilebilir önbelleği yeniden kullanmak için oluşturma'nın 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
yayınlandı. Sürüm 1.0.0-alpha11 bu kayıtları içerir.
API Değişiklikleri
- WithConstraints, BoxWithConstraints olarak yeniden tasarlanıp foundation.layout'a taşındı. (I9420b, b/173387208)
- Key.DPadUp desteği sonlandırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
- Artık dahili kullanıcı arayüzü. (If8e35)
- Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
- PopupPositionProvider'ı genel koordinatları değil, pencereye göre koordinatları kullanacak şekilde değiştirir. parentGlobalBounds'u anchorBounds olarak yeniden adlandırıp windowGlobalBounds'u windowSize: IntSize (I2994a) olarak değiştirir.
- Süre ve Çalışma Süresi, Uzun milisaniyelerle değiştirilir ve bu adım, bu sınıflardaki işaretçi girişinin bağımlılığını ortadan kaldırır. (Ia33b2, b/175142755, b/177420019)
- AmbientSaveStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365)
- Vektör grafikleri API'si, vektör grafiklerinin köküne uygulanan tonlama işleminin ayrıştırılmasını destekleyecek şekilde güncellendi. (Id9d53, b/177210509)
- Cihazları ayırt etmek için ToolType'ı PointerInputChange'e eklendi (Iac787, b/175142755)
- AmbientWindowManager, AmbientWindowInfo (I2686a, b/177084714, b/177084983) olarak yeniden adlandırıldı
- Global koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (Iee284)
- Denetleme açıkken grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsKatman eklendi. (I315df)
- FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlendi. (I2d898, b/177000821)
- SemanticspropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @DeneyselalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, progressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırılmıştır. issueAccessibilityScrollState, YatayScrollAxisRange olarak yeniden adlandırılır. verticalAccessibilityScrollState, dikeyScrollAxisRange olarak yeniden adlandırılır. (Id3148)
- PointerInputData kaldırıldı ve tüm PointerInputData alanlarını vermek için değiştirildi. Herkese açık herhangi bir API'de kullanılmadıkları için PointerInputEvent ve PointerInputEventData'yı dahili hale getirdiler. (Ifff97, b/175142755)
- Güncellenen GraphicstierScope, dp'nin ham piksellere dönüşümlerini desteklemek için yoğunluğu uygular. (Ied528, b/176819695)
- Matris API'si, ana sıra sırasını izleyecek ve SkMatrix ile Matris4 arasındaki çerçeve dönüşüm mantığını dahili olarak eşleştirmek amacıyla farklı matris temsilleri arasındaki dönüşümlere yardımcı olmak için dizin sabitleri sağlayacak şekilde güncellendi. (I432e6)
- Deneysel monotonicFrameAnimationClockOf yöntemleri (Ib753f, b/170708374) kaldırıldı
- String.fintPrecedingBreak ve String.fingFollowingBreak öğelerini InternalTextApi'ye taşıyın. (I657c4)
- androidx.compose.ui.util.isSurrogatepair, herkese açık API'den kaldırıldı. (Ia9494)
- TransformedText.convertedText, TransformedText.text olarak yeniden adlandırıldı
- TransformedText artık bir veri sınıfı değil (Ie672a)
data class
şu sınıflardan kaldırıldı:- Satır İçiMetinİçeriği
- Yerel Ayar Listesi (I605c7)
- Aşağıdaki sınıflar artık veri sınıfı değil:
- Ek Açıklamalı Dize
- Paragraf Stili
- Aralık Stili
- Metin Stili
- Yazı Tipi Ağırlığı
- Metin Süslemesi
- TextGeometricTransform
- Metin Dizini
- MetinDüzenSonucu
- TextLayoutInput (Iaff99)
- VisualTransformation, işlevsel bir arayüz olarak değiştirildi (I3bba4)
- İşlev referans parametresi türü eklendi (I5e1bd)
- Dönüştürülmüş sınırları InspectorNode'a (Ice42f) ekleme
Hata Düzeltmeleri
- onCommit, onDispose ve onActive; kullanımdan kaldırılarak, SideEffect ve DisposableEffect API'lerinin (If760e) yerini aldı.
Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Önceki fabrika işlevleri, küçük harfli ilk harfler ile kullanımdan kaldırıldı
- Yeni fabrika işlevleri, alt sınıf yerine FontFamily döndürürken
- Yalnızca fabrika işlevleri aracılığıyla oluşturulabilmeleri için alt sınıfların kurucuları gizlendi.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
ComposeTestRule
kapsamını genişleten vesetContent
özelliğini tanımlayan veComposeTestRule
ürününden kaldırılanComposeContentTestRule
kullanıma sunuldu.ComposeTestRule
döndüren ve sizin için Etkinlik başlatmayan bir fabrika yöntemicreateEmptyComposeRule()
eklendi. Test sırasında Etkinliğinizi başlatmak istediğinizde bunu kullanın (ör.ActivityScenario.launch
kullanarak (I9d782, b/174472899)animasyonluAsState artık animasyonluFooAsState şeklindedir. Burada Foo, animasyonlu değişkenin türüdür.Örneğin, Kayma, Dp, Offset vb. (Ie7e25)
İçerik açıklaması parametresi, Resim ve Simge'ye eklendi. Erişilebilirlik hizmetleriyle ilgili açıklama sunmak için kullanılır (I2ac4c)
Kaçınılması gerektiği için displaySize özelliğini kaldırın. Tipik olarak, en azından onRoot() boyutunu veya pencere boyutunu kullanmak daha iyidir. (I62db4)
OnSizeChanged, düzenin içeriğinin boyutunu bildiriyordu. Şimdi boyutu, değiştirici zincirindeki konumunda raporluyor. (I36b78, b/177562900)
emit() API ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler birbirinin aynısı, yalnızca Compose'un adlandırma kurallarına uymak için farklı bir ad kullanıyorlar (I4137b)
TextFieldValue, AnnotatedString'i kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve birden fazla stilde metin düzenleme henüz uygulanmamıştır.
- EditBuffer oluşturucu parametrelerinden
initial
kaldırıldı. (I326d5)
- EditBuffer oluşturucu parametrelerinden
inexpiration ve beste (I583a8)
AnnotatedString, kotlin.CharSequence değerinden genişletilecek şekilde değiştirildi. Bu nedenle, uzunluk ve alt adım artık örnek işlevleri ve uzantı işlevleri kaldırıldı. (Iaf429)
Hatırlatıcı, CompositionLifecycleObserver'ın yerini almıştır ve CompositionLifecycleObserver kullanımdan kaldırılmıştır.
RememberObserver
,CompositionLifecycleObserver
ifadesinin yerine değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler kullanır. Önerilen uygulama olan ve olmaya devam eden ve yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bununla birlikte, bir bestede bir referans birden çok kez hatırlanırsaonEnter
yalnızca bir kez çağrılan her referans içinonRemembered
çağrılır. Nesne, alt kompozisyonlarda kullanılmışsaonEnter
birden çok kez çağrıldı (örneğin,WithConstraints
veScaffold
) tekonEnter
çağrısı garantisini güvenilmez hale getirdi veRememberObserver
için kaldırıldı.RememberObserver
,RememberObserver
örneğininremember
'a iletilen geri çağırmadan döndürülmesi durumunda çağrılanonAbandoned
özelliğini ekler. Ancak bu işlem bileşim durumunda hatırlanmaz ve bu nedenle hiçbir zamanonRemembered
çağrılmaz. Bu durum, beste tamamlanmadan önce bir istisnanın sonlandırılması veya bestenin artık güncel olmaması ya da başka bir şekilde gerekli olmaması nedeniyle bestenin silinmesi durumunda gerçekleşebilir. Yukarıdaki tek referans önerisini uygulayanRememberObserver
örneği, hemonForgotten
hem deonAbandoned
harici bir kaynağı izliyorsa her biri artık kaynağa ihtiyaç olmadığını gösterir. Nesne,onRemembered
içinde ayrılan işleri veya kaynakları izliyorsaonRemembered
çağrıldığında çağrılmayacağındanonAbandoned
yoksayılabilir. (I02c36)2 veya daha fazla Metin Birimi arasındaki aritmetik işlemler kullanımdan kaldırıldı. Int.sp ve Int.em gibi uzantı işlevleri yerine kullanımdan kaldırılan TextUnit.Sp ve TextUnit.Em işlevleri. (I48369)
Açıkça beyan edilmiş genel kaynakları olmayan (ör. public.xml aracılığıyla) kitaplıklardaki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)
ScrollableColumn/Row desteği sonlandırıldı. LazyColumn sayesinde yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz/çizebildiğimizden, ScrollableColumn kullanımı, büyük bir kayan içeriğe sahip olduğunuz 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ımlarını desteklemeye karar verdik. Kullanıcılar, 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 bunları manuel olarak içe aktarmanız gerekir. Şu 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 kullanın
Testlerde TestCoroutineDispatcher'dan yararlanın (I532b6)
TextInputService.onStateUpdated, updateState (Id4853) olarak değiştirildi
TransitionDefinition tabanlı Geçişin desteği sonlandırıldı (I0ac57)
TextUnitType.Inherit kaldırıldı. Lütfen bunun yerine TextUnitType.Unspecified değerini kullanın. (I9ff64)
Sürüm 1.0.0-alpha10
13 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha10
yayınlandı. Sürüm 1.0.0-alpha10 bu kaydetmeleri içerir.
Çarpıcı Değişim
Dahili derleyici API'sinin yeniden yapılandırılması, tüm
@Composable
işlevleri tamamlandıktan sonra, bileşimin bir sonucu olarak oluşturulan düğümlerde değişikliklerin, bileşimin "değişiklikleri uygula" aşamasında toplu olarak yapılmasını sağlar.Bu, değişiklikler uygulanana kadar dahili ve deneysel API'lerde artık düğüm bulunmadığı için uygulama kodunu etkileyebilecek, davranışsal zarar veren bir değişikliktir. Bu sorun, genellikle düğümler oluşturulup başlatılana kadar kodun yürütülmesini ertelemek için bir
SideEffect
içinde bu tür bağımlılıklarla kod yuvarlanarak çözülebilir. (I018da)
API Değişiklikleri
- Özel bir odak geçiş sırası belirtmek için kullanılabilecek Modifier.focusOrder() eklendi (I90cf5, b/175899543, b/170155556, b/170155429)
- Bunun yerine, artık onFocusChanged veya onFocusEvent yerine kullanılan odakObserver kullanımı kaldırıldı (I3ecb9, b/175156387)
- EditTransactions API Değişiklikleri
- EditAction, EditCommand olarak yeniden adlandırıldı
- EditTransaction somut uygulamaları için komut son eki eklendi
- EditCommand artık veri sınıfı değil
- EditProcess.process işlevi, applyTo olarak yeniden adlandırıldı
- InputEventListener, InputEventCallback olarak yeniden adlandırıldı
- (I0a366)
- Kullanılmayan PxSquared, PxCubed, PxInverse kaldırıldı. Size.center(), özellik olarak değiştirildi. (I973f7)
- ui-test modülü artık test edilen kullanıcı arayüzleri için Yeniden Oluşturucu oluşturma işlemini yapılandırabilecek (Ibebd8)
- Bileşen parçaları ve matematik işlemleri olacak şekilde değiştirilmiş Hız. (Ib0447)
@ExperimentalTesting
adı, benzer deneysel API ek açıklamalarıyla tutarlı olacak şekilde@ExperimentalTestApi
olarak değiştirildi (Ia4502, b/171464963)- Color.useOrElse(), Color.takeOrElse() (Ifdcf5) olarak yeniden adlandırıldı
- Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Düzen düğümü sınırları değiştiğinde Sahibi bildirmek için bir geri çağırma ekleyin. (I72fd1)
- Belirtilmemiş sabit olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse özellikleri eklendi. (I93f7b, b/174310811)
[Abstract]ComposeView API'lerini genişleterek [Abstract]Compose tabanlı görünümlerin geri dönüşümünü sağlayarak bu görünümlerin daha sonra tekrar oluşturmak üzere imha edilmesini sağlayın. Alt besteler oluşturmak için pencere kapsamlı Recomposer ve CompositionReferences öğelerini yüklemek ve keşfetmek amacıyla API'ler ekleyin.
[Abstract]ComposeViews'un beste yok etme stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış pencere ayırmaya göre ortadan kaldırılmaktır. (I860ab)
Any.identityHashCode() genel API (I025d7) kaldırıldı
toStringAsFixed API kaldırılmış ve yerine doğrudan String.format kullanılmış. (Iaba6b)
Temel Strings.kt dosyasına Geçiş Ekle (I4a5b7, b/172366489)
NativeClass'ı UI modülüne taşıyıp dahili hale getirdiler. NativeClass'ın kullanımları, bunun yerine "is MyClass" kullanılacak şekilde eşittir. (I4f734)
Modifier.focus() ve Modifier.focusRequester() desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() öğelerini kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
Seçim Yöneticisi güncellemelerinin Seçim Yöneticisi'ne bildirilmesi için SelectionRegistrar.notifySelectableChange kullanıma sunuldu. (I6ff30, b/173215242)
Çeşitli dış çizgi uygulamaları için sınırlayıcı düzeni elde etmek üzere Outline.bounds özelliği kullanıma sunuldu. (I16e74, b/175093504)
Kullanımdan kaldırılan TestUiDispatcher. Bunun yerine Dispatchers.Main kullanın (Ic171f, b/175385255)
ImeOptions ve KlavyeOptions artık bir veri sınıfı değil (I3c898, b/168684531)
VisualTransformation API Değişiklikleri
- OffsetMap, OffsetEşleme olarak yeniden adlandırıldı
- OffsetEşleme.identityoffsetMap, OffsetEşleme.Identity olarak yeniden adlandırıldı
- PasswordTransformation artık veri sınıfı değil
- OffsetEşleme kendi dosyasına taşındı
- (I0bdf3)
Konum Dpoffset olarak yeniden adlandırıldı ve getMesafe() (Ib2dfd) kaldırıldı
Eğlence amaçlı Dp.isFinite(), val Dp.isFinite (I50e00) olarak değiştirildi
Hata Düzeltmeleri
- Yeniden birleştirici artık mevcut durumunun bir Akışını sunarak 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ştiriliyor. Geçersiz kılma kapsamı, State değerinin okunduğu yere daraltılabileceği için daha iyi performans sağlar. (Ib179e)- Semantics rol API'sini ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak rol ekleyin. Modifier.progressSemantics artık Kaydırma Çubuğu'nu da kullanabilmesi için değiştirildi. (I216cd)
- Animasyonları arasında karşılıklı dışlama sağlayan yeni eş yordam tabanlı API
Animatable
.- Çok boyutlu azalma animasyonunu destekleyecek yeni DecayAnimationSpec
- (I820f2, b/168014930)
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha09
yayınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.
API Değişiklikleri
- Kullanımdan kaldırılan KeyEvent.Alt artık kaldırıldı. Bunun yerine KeyEvent.isAlt Pressed kullanın. (Idd695)
- Modifier.keyInputFilter ve Modifier.previewKeyInputFilter kullanımdan kaldırıldı
- Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent öğelerini kullanın (I30f17, b/168511863, b/168511484)
- İşaretçi giriş API'lerinin askıya alınması için HandlePointerInputScope, AwaitPointerEventScope ve HandlePointerInput() adı awaitPointerEventScope() olarak değiştirildi. (Idf0a1, b/175142755)
- Autofill API artık deneysel bir API'dir ve kaydolmayı gerektirir (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, işaretçi giriş API'sinin askıya alınmasından kaldırıldı (Ia54d5, b/175142755)
- SeçimRegistrar'da birkaç yeni işlev kullanıma sunuldu ve ayrıca, onPositionChange, informPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
- Dahili olarak işaretlediğimiz LayoutNode'un diğer üyeleri (I443c6)
- LayoutInfo, araç ve test amacıyla kullanılmak üzere kullanıma sunulmuştur (I9b190)
- AndroidSahibi dahili (Ibcad0, b/170296980)
- ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
- İç içe yerleştirilmiş kaydırma sistemi eklendi. Daha fazla ayrıntı için Modifier.nestedScroll sayfasına bakın (I36e15, b/162408885)
- subcomposeInto(LayoutNode) dahili hale getirildi (Id724a)
Applier
arayüzü, ağaç oluşturma işlemini yukarıdan aşağı değil, aşağıdan yukarıya doğru kolaylaştıracak şekilde değiştirildi.insert()
yöntemi,insertTopDown()
olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()
) eklendi.Bir uygulama, hangisinin daha iyi performans gösterdiğine bağlı olarak düğümleri,
insertTopDown()
veyainsertBottomUp()
kullanarak düzenlediği ağaca ekler.LayoutNode
veView
gibi bazı ağaçlar, yukarıdan aşağıya doğru inşa etmekten çok daha verimlidir. Bu değişiklikten önce, performans için aşağıdan yukarıya yapı gerektiren her uygulama kullanıcısına kopyalanması gereken, aşağıdan yukarıya doğru bir dizi ekleme yapılması gerekiyordu. Bu değişiklikle birlikteApplier
, ağacı aşağıdan yukarıya doğru oluşturmak içininsertBottomUp()
öğesini, yukarıdan aşağıya doğru derlemek için deinsertTopDown()
politikasını geçersiz kılar. (Icbdc2)AndroidDialogProperties'e closeOnBack Press ve dismissOnClickOutside özellikleri eklendi. Bunlar, iletişimin onDismissRequest lambda'sı çağrılacağı zaman yapılandırmaya olanak tanır. (If5e17)
Kafesleştirilmiş öğe biçimlerinden (PNG gibi) veya VectorDrawables'dan opak yüklenen Painter nesnelerini işlemek için PaintterResource API eklendi. Tüketicilerin öğe türünü artık önceden belirlemesi gerekmiyor. Resim birleşimlerinde veya ressam değiştiricilerinde kullanmak üzere bir Painter nesnesi edinmek için bu yöntemi çağırabilirler. (I2c703, b/173818471)
Alt anlamların temizlenip yenilerini ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
ContentDrawScope, DrawScope ile yapılacak şekilde kullanıcı arayüzü modülüne taşındı. (Iee043, b/173832789)
Çizgili şekillere farklı desenler sağlamak için PathEffect grafik API'si kullanıma sunuldu. PathEffect'in beklenen/gerçek bir şekilde uygulanması anlamına gelen NativePathEffect kullanımı kullanımdan kaldırıldı. (I5e976, b/171072166)
Espresso'nun boşta kalma kaynaklarının Compose tarafından desteklenen bir varyantı olarak Compose'a IdlingResource arayüzleri eklendi. Bunlar, ComposeTestRule (I433f3) aracılığıyla kaydedilebilir ve kaydı iptal edilebilir.
ComposeIdlingResource'ın genel kaydı ve saat kayıtlarının ComposeIdlingResource'a genel (un) kaydı kaldırıldı (I32660)
Hata Düzeltmeleri
- Ofset değiştiricilerdeki lambdalar artık Kayan öğe yerine Intoffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
Genel API'den SlotTable, SlotReader ve SlotWriter kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretliydi. Artık oluşturma modülünün dahilinde bulunuyorlar.
CompositionData ve CompositionGroup, kompozisyon bilgilerini ayıklamak için kullanmak üzere arayüz araçları API'sinin yerine eklenmiştir. Bunlar herkese açık olsa da kullanıcı arayüzü API'sinin yorumladığı ham bilgileri sağladığı için (I31a9c) kullanıcı arayüzü API'si dışında kullanılmak üzere tasarlanmamıştır
Çizim ortamının boyutları mevcut olduğunda gölgelendirici örneği oluşturmak için yeniden düzenlenen ShaderBrush. Bu, beste zamanında özel DrawModifier uygulamalarını uygulamak zorunda kalmadan, oluşturulabilir bir öğenin tüm çizim sınırlarını kaplayan renk geçişlerini tanımlamak için yararlıdır.
Kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri yerine bir Gradyan nesnesinde fabrika yöntemleri kullanılıyor. (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed öğelerini kullanımdan kaldırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)
Desteği sonlandırılan BuildCompat.isAtLeastR (Idb37e)
AnnotatedString Derlemesi için buildAnnotatedString fabrika işlevi eklendi. Kullanımdan kaldırılan ExplaindString derleyici işlevi. (Idfe0b)
Değerleri radyana dönüştürmek için Kayan ve Çiftteki uzantı yöntemleri kaldırıldı. Kullanıldığı tek yer olan uygulama PathParser içinde özel bir işleve taşındı (I25f52)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.
API Değişiklikleri
- Anlamsal ekleme işlemi Kapat (I2b706)
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Kullanımdan kaldırılan API'den mevcut API'lere geçişe yardımcı olacak typealiases/yardımcı yöntemleri eklemek için DrawModifierUsage.kt dosyası oluşturuldu. (Id6044, b/173834241)
- Değiştirme. (I0bd29, b/173834241)
- Özel düzenlerin ve düzen değiştiricilerin, çizimi için bir grafik katmanı ekleyerek çocuğa yerleştirilmesine olanak tanıyan yeni Placeable.placeWithtier() ve Placeable.place üzeriWithlayer() yöntemleri eklendi. Öncelikle yeniden çizimleri optimize edebilmemiz için, bir çocuğu taşımamız gerektiğinde içeriğini tekrar çizmemiz gerekmez. İkinci olarak, çocuk için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831)
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- Çizimler katmanına kolaylık sağlamak için Modifier.scale/rotate API'leri eklendi.
Modifier.drawOpacity
adlı dosyaModifier.alpha
olarak yeniden adlandırıldıModifier.drawShadow
adıModifier.shadow
olarak değiştirildi (I264ca, b/173208140)
- PointerInputData'nın çalışma süresi ve konum alanlarını boş bırakamaz hale getirdi. (Id468a)
- MaterialTheme, seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Malzeme harici uygulamalar, seçim için kullanılan renkleri özelleştirmek için AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırması sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TransformOrigin API,
pivotFractionX
vepivotFractionY
öğelerinicomponent1
vecomponent2
olarak döndürecek şekilde yıkıcı söz dizimine sahip olacak şekilde güncellendi (If43c4, b/173586560) - Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla birleştirilebilir lambda parametresi adlandırma ve konumu için hata analizi denetimi eklendi.
Ayrıca, hata analizi ve yönlendirmelere göre sondaki lambdalarının adı olarak
children
kullanan bazı API'lericontent
'e taşıdı. (Iec48e) - Bir tuş etkinliği gönderildiğinde Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol eden API eklendi. (I50ed9)
- Yeni bir
Modifier.drawLayer()
aşırı yüklemesi eklendi. Katman parametrelerini durum değişikliği gerçekleştiğinde yeniden birleştirme ve geçişten kaçınmaya izin verecek şekilde tanımladığınız yeni GraphicstierScope'ta bir lambda bloğu kullanılır. DrawKatmanModifier, artık mantığını LayoutModifier'ın (I15e9f, b/173030831) Placeable.placeWithKatman() yöntemine taşımaya hazırlık sürecindedir. - Kullanımdan kaldırılan Ambiyanslar, son eki
Ambient
olarak adlandırdı ve diğer Ambiyans ve Compose API kurallarına uyarak bunların ön ekini Ambient içeren yeni özelliklerle değiştirdi. (I33440) androidx.compose.ui.text.Typeface
,androidx.compose.ui.text.font.Typeface
klasörüne taşındı (Ic2b81)- Semantik bağımsız değişkeni discoveryAllDescendants,mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Yön kilitleme dahil olmak üzere, işaretçi giriş API'sini askıya alan yeni sürükleme hareketi algılayıcı. (Icef25)
- VectorAsset adı ImageVector olarak değiştirildi ve VectorAsset adı, API yönergelerine uygun olarak iç ImageVector sınıfı olacak şekilde VectorAsset olarak Builder olarak değiştirildi. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder'ın typealias'ı eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- PlacementScope'un Place() öğesi için zIndex parametresi ekleyin. Böylece Modifier.zIndex() artık bir LayoutModifier olarak çalışır ve herhangi bir özel düzenin doğrudan yerleşim bloğunda (I711f7, b/171493718) alt öğeleri için zIndexes'i ayarlayabilir
- Temel anlam bilimi özellikleri kullanıcı arayüzüne taşındı (I6f05c)
- Yerin(Ofset) ve yerGörelinin(Ofset) değerini sonlandır. Bunun yerine, aşırı yüklemeleri tam ofsetler ile kullanın (I4c5e7)
- Daha önce kullanımdan kaldırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı, Modifier.onGloballyPositioned öğesini kullanın. Modifier.onDraw kaldırıldı. Modifier.onDrawBehind'i kullanın. Modifier.plus kaldırıldı.Değiştirici'yi kullanın. Color.UnSet kaldırıldı, Color.Unspecified değerini kullanın. PxBounds sınıfı kaldırıldı. Bunun yerine Rect kullanın. (Ie9d02, b/172562222)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
- Dokunma, iki kez dokunma, uzun basma ve basma bildirimi için hareket dedektörü, yeni askıya alma işaretçi girişi kullanılarak eklendi. Birkaç yardımcı program da eklendiğinden, geliştiricilerin kendi hareket algılayıcılarını yazmaları kolaylaştırıldı. (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ırmayı algılamaya yönelik yardımcılar da dahil olmak üzere yeni çok noktalı hareket algılayıcı. (Ic459d)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneysel (I6ef86, b/171378521)
İlişki temelli kaydırma API'leri ekleyin:
LazyListState.snapToItem ve LazyListState.smoothScrollBy değerinin yanı sıra kaydırma denetimi için alt düzey API'leri ekler. Bu API'ler, dönmeden önce kaydırmanın bitmesini bekleyen bir kaydırma işlemini kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)
Modifier.focusable, temele eklenmeli. Bir bileşene doğru anlam ve erişilebilirlik ile odaklanılabilir davranışlar eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)
AnimationClockTestRule'da,
clock
öğesine yetki verilebilecek varsayılan yöntem ve özellik uygulamalarını sağlayın (I7ea3d, b/173399709)AndroidComposeTestRule artık özel etkinlik başlatıcılarını (Ib8288, b/153623653, b/154135019) kabul edebilir
TextLayoutResult.getLinevisibleEnd desteği sonlandırıldı. Bunun yerine, TextLayoutResult.getLineEnd'ın artık yeni bir visibleEnd parametresi var. (I73282)
Güncellenen TextFieldValue API'si
- TextFieldValue.composition salt okunur hale getirildi
- geçersiz seçim aralığı için kaldırılan istisna atıldı (I4a675, b/172239032)
Metin okuma motoru için TtsDescription desteği. (I54cc6)
Eş yordamlarda animasyonları çalıştırmak için yeni API'ler (Ied662)
Hata Düzeltmeleri
- Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık Eyalet yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
- TextInputService#onStateUpdated değerine sıfırlamaInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
- Oluşturulabilir işlevlerdeki Değiştirici parametreleri için hata analizi kontrolü eklendi. Bu hata analizi denetimi, Oluşturma yönergelerine tutarlılık için parametrenin adlandırma, döndürme türü, varsayılan değeri ve sırasını kontrol eder. (If493b)
- TestAnimationClock'un MonotonicFrameClock tarafından çalıştırılmasına izin veren geçici bir seçenek eklendi (I1403b, b/173402197)
- Android Yazı Tipi sarmalayıcı eklendi.
typeface
işleviyle (ör.typeface(Typeface.DEFAULT)
) bir Android Yazı Tipi yükleyebilirsiniz.typefaceFromFontFamily()
adı datypeface()
olarak değiştirildi (I52ab7) - Değiştirici'nin fabrika işlevlerinin Değiştirici'de uzantılar olarak tanımlanıp tanımlanmadığını ve böylece birbirleriyle akıcı bir şekilde zincirlenmesinin mümkün olup olmadığını kontrol etmek için lint denetimi eklendi. (I07981)
- Eski kullanıcı arayüzü testi modülünü ve taslaklarını (I3a7cb) kaldırın
- Yeniden düzenleyen artık EmbeddingContext kabul etmez; gerekli planlama bağımlılıkları, efektCoroutineContext'ten alınır. FrameManager desteği sonlandırıldı; platform entegrasyonları kendi genel anlık görüntü işlemelerini başlatmalıdır. (I02369)
- Erişilebilirlik düğümüne stil bilgileri iletin. (If5e8d)
- TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmedi. (Ifce19)
Oluşturma Kullanıcı Arayüzü Sürüm 1.0.0-alpha07
11 Kasım 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.
API Değişiklikleri
- Eşit olmayan ölçeklendirme kullanım alanlarını desteklemek amacıyla yatay ve dikey eksenler için ölçek faktörlerini birbirinden bağımsız şekilde temsil eden ScaleFactor satır içi sınıfı kullanıma sunuldu.
- ContentScale'e computeScaleFactor yöntemi eklendi
- Hedefi tam olarak kaplaması için src sınırlarını genişletmek amacıyla, tek tip olmayan ölçeklendirme gerçekleştirmek için ContentScale.FillBounds eklendi.
- Boyut parametreleriyle ScaleFactor parametrelerini hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- Hizalamaları oluşturmaya ilişkin BiasHizalama ve BiasMutlakHizalama fabrikaları eklendi. (Iac836, b/169406772)
- Geliştiricinin odağı zorla temizlemesine izin verin. (I90372)
- Oluşturma'nın içindeki Görünümler için yükseltmenin çizilmemesine neden olan bir hata düzeltildi. (If7782)
- Adlandırma kuralını Modifier.drawBehind ile eşleştirmek için ContentDrawScope içinde onDrawBehind API oluşturuldu. (I4fc3a, b/171955269)
- Katman API'lerinde 3D dönüşümleri döndürmeX/dönüştürme Y özelliğini tamamlamak için kamera mesafesi desteği ekleyin. (I40213, b/171492100)
- Seçim Container'ı, geri çağırma olmadan eklendi (Ibfadb)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn (I708ad) eklenmeden kullanılabilir
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
- Kafa karıştırıcı olduğu içindrawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
- measureResult, MeasurementScope dışına taşındı. (Ibf96d, b/171184002)
- Düzenleyle ilgili birçok simge androidx.compose.ui'den androidx.compose.layout.ui konumuna taşındı. (I0fa98, b/170475424)
- Kullanımdan Kaldırılan FocusState2 (I686cb, b/168686446) kaldırıldı
- ZIndexModifier artık dahili (I1808b, b/171493718)
- Gereksiz kutulamayı önlemek için Boyut parametrelerinde lerp yönteminin döndürme türü, boş olmayan bir Boyut döndürecek şekilde güncellendi. (Ib0044)
- kotlinx-coroutines-test'in runBlockTest (I4402f) kullanılarak beste çerçevesi etkinlikleri için Compose'un MonotonicFrameClock'unu temel alan kodu test etmek için TestMonotonicFrameClock eklendi
- HareketKapsamı.localToGlobal (I15299, b/171462785) kaldırıldı
onAllNodesWithSubstring
bulucu eklendi (I81dd7, b/171462889)- androidx.ui.test modülü kullanımdan kaldırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4 (I452e8) adreslerine geçiş yapın
Hata Düzeltmeleri
- reCAPTCHAToBitmap, reCAPTCHAToImage'a taşındı. (I86385)
- foundation.Text kullanımdan kaldırıldı ve Matter.Text ile değiştirildi. Bir temadaki değerleri kullanmayan temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
- Metin Alanları'nı, KlavyeOptions'ı kabul edecek şekilde güncelleyin (Ida7f3)
- KlavyeOptions'ı ImeOptions olarak yeniden adlandırma (I82f36)
- KlavyeType ve ImeAction, KlavyeOptions'a taşındı (I910ce)
- Ambiyansların sağlanmasına alternatif olarak sourceDefault eklendi ve yalnızca önceden ortam değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField politikasını kullanın. (I896eb)
- ui-test-junit4 modülünü tanıtın (Ib91f8)
relativePaddingFrom
,paddingFrom
olarak yeniden adlandırıldı. Düzen sınırlarından metin referans çizgilerine olan mesafeleri belirtmeyi kolaylaştırmak içinpaddingFromBaseline
değiştiricisi eklendi. (I0440a, b/170633813)- LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak amacıyla LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için "Subject" parametresi içermeyen LaunchedEfektine izin verilmez. (Ifd3d4)
- Yapılandırma güncellendiğinde yeniden oluşturulan kaynaklar kullanıma sunuldu. (I6387c, b/167352819)
- Yeniden derleme için artık yapım sırasında bir CoroutineContext gerekiyor (Ic4610)
- Birden çok
Modifier.zIndex()
uygulandığındazIndex
değerlerinin toplamı. Önce birincisi kazanıyordu. (Ic514c, b/170623936) - Dahili SlotTable uygulamasında genel API'yi etkilememesi gereken değişiklikler. (If9828)
- Eklenen Klavye otomatik düzeltme IME Seçeneği (I57b8d)
- androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
- KlavyeOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)
Harici Katkı
- Dahili yapının androidx.compose.ui:ui-text-android (Ib93fa) 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
yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.
API Değişiklikleri
- Yeniden oluşturucu artık bir CompositionReference ve geçerli bir beste üst öğesidir. Açık Yeniden Oluşturucu artık daha az yerde gerekli. (I4036f)
- Oluşturulabilir API'nin, verileri kompozisyonlar genelinde korumak için dahili olarak "hatırlatma" özelliğinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı keepVectorPainter yerine kaldırın. (Ifda43)
- Uygulamalara, çizim komutlarını yeniden sıralama olanağı sağlamak amacıyla, Modifier.drawWithCache API'yi güncelleyerek ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak kullanıma sunduk. Bu, karşılık gelen harmanlama modu algoritmasının doğru bir şekilde uygulanabilmesi için önce içerik piksellerinin oluşturulması gereken karıştırma/renklendirme kullanım alanlarında faydalıdır. (Ie7ec8)
- SimpleContainer'ı PopupTestUtils.kt dosyasına 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 adresine bakın (I1737f)
- Sağ Tutma Yeri Konumunu Düzeltin. (I6e1e0)
- DrawScope ve
ContentDrawScope soyut sınıflar yerine arayüz olarak yeniden düzenlendi
- DrawScope'un CanvasDrawScope uygulaması oluşturuldu
- Bunun yerine CanvasScope'u kullanmak için DrawScope uygulamaları yeniden düzenlendi
- DrawScope için bağımlılıkları sarmalamak amacıyla DrawContext oluşturuldu
- DrawScope'taki kullanımdan kaldırılan yöntemler (I56f5e)
- Rahatsız edici değişiklik: İşaretçi etkinliklerinde değiştirilmesi gereken tek değerin tüketim verileri olması nedeniyle
PointerInputFilter.onPointerEvent(...)
öğesinden döndürülen değer kaldırıldı.PointerInputFilter.onPointerEvent(...)
öğesinden veri döndürmek yerine artık aktarılan PointerEvents'in tüketim verilerini değiştirebilirsiniz. (I6acd0) - MeasurementScope ve IntrinsicmeasureScope arayüzleri oluşturuldu. (I1a087, b/170461665)
- Hizalama Hattı için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
- Oluşturulan değiştiriciye denetleyici bilgilerini belirtme özelliği ekleyin (Idee08, b/163494569)
- Seçim menüsüne SelectAll (Tümünü Seç) seçeneği eklendi (Ief02b)
- DrawTransform.rotate, belgelerle eşleşecek varsayılan bir Center pivot parametresini alacak şekilde güncellendi.
- DrawScope.rotateRad, diğer dönüştürme yöntemleriyle eşleşmesi için Pivot noktası için bir ofset tüketmek üzere güncellendi.
- Kullanımdan kaldırılan DrawScope.rotateRad aşırı yüklemesi, pivotun x ve y koordinatı için kayan reklam gösterir.
- (Iffcbb, b/170434992)
Hata Düzeltmeleri
- androidx için EksikGetterMatchingBuilder için API lint kontrolü etkinleştirildi (I4bbea, b/138602561)
- Test ekle. (I6b8ae)
- ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'da yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
- Eklenmiş Klavyede Büyük Harf Kullanımı IME Seçeneği (I8ac38)
- CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
- SimpleContainer'ı PopupTestUtils.kt dosyasına taşıma (I65c3e)
- Radius API, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak yeniden adlandırıldı. Dokümanlar, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
ACTION_DOWN
(I94c5a, b/170320973) dışındaki tüm işlemler için onTouchEvent'i false döndüren alt Android Görünümlerine MotionEvents göndermeye devam ederek Android birlikte çalışabilirlik geliştirildi- Box, satır içi bir işleve dönüştürüldü. (Ibce0c, b/155056091)
Harici Katkı
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
yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.
API Değişiklikleri
- Denetleyici bilgilerini belirtmek için bir DSL ekleme (Ic9a22)
- Uzun Basarak Metne Taşıyın. (Iff2bc)
- Deneysel Modifier.pointerInput askıya alma giriş değiştiricisi (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 değerini devralmaktadır. Bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149)
İzleme verileri artık değişebilir. Ayrıca, tüketim işlemi yapan uzantı işlevleri için yapılan çağrılar artık yeni bir PointerInputChange döndürmez, bunun yerine sağlanan PointerInputChange'i değiştirir.
Bu, 2 adımlı bir işlemin ilk adımıdır. PointerEvent verilerini, diğer işaretçi verileri kullanıcı kodu tarafından düzenlenemeyeceği şekilde değişebilir. İkinci adım,
List<PointerInputChange>
döndürme türünüPointerInputFilter.onPointerEvent(...)
öğesinden kaldırmaktır. (Id067e)Metinde Seçimi ve Demo'yu devre dışı bırakın. (IE7e97)
onGloballyPositioned bir satır içi işlev oluşturuldu (I15830)
OnPositionedModifier, OnGloballyPositionedModifier ve onPositioned() olarak onGloballyPositioned() olarak yeniden adlandırılır. (I587e8, b/169083903)
hasPendingmeasureOrLayout özelliği Sahip bölümüne eklendi. Böylece, Sahibin bekleyen düzen çalışması olup olmadığı belirleniyor. (I3d9f8, b/169038599)
Programlı olarak net odak noktasına API eklendi (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)
kaldırıldı. Onun yerinePointerInputFilter.onPointerEvent(...)
kullanılmalıdır. (I6f04a)Boyut Değişiklikleri
- Size.getFlipped kaldırıldı
- Size.rem kaldırıldı
- Size.truncDiv (Ief44d, b/169790720) kaldırıldı
Satır içi sınıflarda koruyucu değerlerin standartlaştırılmasının bir parçası olarak, Color.Unset to Color olarak yeniden adlandırıldı.Diğer satır içi sınıflarla tutarlılık için belirtilmedi (I97611, b/169797763)
TextOverflow.None kullanıma sunuldu. Taşma Yok olduğunda, Metin artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
AnnotatedString.Builder.addStringNotlar içindeki kapsam parametresi, API tutarlılığı için etiket olarak yeniden adlandırıldı. (I7c8cb)
Hata Düzeltmeleri
- Her kaydırmada alt kompozisyonda daha az çalışma yapılarak LazyColumn/Row'un kaydırma performansı iyileştirildi. Beste sınıfı için yeni hasGeçersizations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi has Invalidations() (Ib2f32, b/168293643, b/167972292, b/165028371) olarak yeniden adlandırıldı
- Size.Belirtilmemiş parametreler, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, Size.Unspecified ve sonlu olmayan Boyutlar ile karşılaştırmalı olarak güncellendi. (I95a7e)
- Özel Layouts'taki Place() çağrılarının sırası artık alt öğeler için çizim sırasını tanımlıyor (Ibc9f6)
- Erişilebilirlik için AnnotatedString'i SpannableString dönüşümüne destekleme. (Ief907)
- Mümkün olduğunda yansıma kullanımını önlemek için eski platformlardaki Android sınıfları için koçaklar eklendi. (Ia1790)
- Düzeltilen hata: Gösterilen yazılım klavyesi uygulamanın çevirmesine neden olduysa işaretçi giriş koordinatları yanlış olur. (Ic4cec, b/163077821)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
yayınlandı. 1.0.0-alpha04 sürümü bu kayıtları içerir.
API Değişiklikleri
- Artık geçerli olmadığında düzenin toplanmasına ve gözlem kapsamlarının oluşturulmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
- İçerik düzeni yeniden ölçüldüğünde ve boyut değiştirildiğinde geri çağırma almak için sırasıyla OnRemeasuredModifier ve onSizeChanged() eklenmiştir. (I657cf, b/154108792)
- Uzun tıklama semantiği işlemi ekle (I6281b, b/156468846)
- FocusManager gizli hale getirildi. (I7872f)
DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturmak için uygulama güncellendi.
Çeşitli yöntemler için güncellenmiş dokümanlar (Ibd166)
Nesne oluşturulmasını ö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 blokundan okunamıyor. (Icc1ae, b/168295623)
anlamsal özelliklerine AccessibilityScrollState ekleyin. (Ifeda9)
Boyut/durum bilgilerine (I376dc) dayalı bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache'i kullanıma sundu
ParagrafKısıtlamaları kaldırılır. Genişlik şimdi doğrudan Paragraf'a geçirilir. (Ica712)
Hata Düzeltmeleri
- Birçok Grafik API güncellendi
- DrawScope ve DrawTransform'da x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil eden tek bir Offset parametresi kullanmak için ölçek ve rotasyon dönüşüm API'leri güncellendi
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap dokümanları güncellendikten sonra eliptik bisiklete ek olarak oval
- Satır içi Yarıçap sınıfı için herkese açık kurucunun doğrudan çağrılmaması, bunun yerine Yarıçap nesnelerinin işlev kurucuları aracılığıyla örneklendirilmesi gerekir
- topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.translate yerine Rect.shift desteği sonlandı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.maxBoyut olarak yeniden adlandırıldı.
- RoundRect.shortestSide, RoundRect.minDIMENSION olarak yeniden adlandırıldı.
- RoundRect.center, işlev yerine özellik olarak değiştirildi
- RoundRect oluşturucu, x/y yarıçap değerleri için tek tek parametreler yerine Yarıçap özelliklerini kullanmak üzere güncellendi
- Kaynağı 0,0 olan bir Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
- Yarıçapa yıkıcı bir API eklendi
- Çeşitli RoundRect uzantı işlevleri ise mülk olarak taşındı.
- (I8f5c7, b/168762961)
- foundation.Box kullanımdan kaldırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
- Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box desteği sonlandırılacak ve ardından generate.foundation.layout'ta yeni Box kullanıma sunulacak. Yeni Box'ın davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer şekilde davranan önceki Box'tan farklıdır. (I94893, b/167680279)
- Kutu süsleme parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgular olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.Sınır, Modifier.padding) (Ibae92, b/167680279) kullanın.
- Birçok Grafik API 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 DrawScope API'leri kapsamlı dönüşüm yöntemleriyle güncellendi
- ClipPath dokümanları, yuvarlatılmış dikdörtgen yerine Yola işaret edecek şekilde güncellendi
- pixelPath'de doğru parametreyle ilgili dokümanlardaki boşluk düzeltildi
- DrawScope.drawCanvas yeniden adlandırıldı ve boyut parametresi kaldırıldı
- inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınırın hepsine aynı inset değerini sağlayan ek aşırı yük eklendi.
- inset yönteminde, inset'in 4 tarafa da uygulanacağını belirten belgeler kaldırıldı
- Rect sınıfıyla ilgili dokümanlar güncellendi
- Rect parametrelerindeki yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yük oluşturuldu ve kullanımdan kaldırılan Rect.shift
- (If086a, b/167737376)
- Açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @visibleForTesting, bunları dahili API yapın ve kdoc'unu gizleyin (I554eb, b/168308412)
- Varsayılan seçimi devre dışı bırakmak ve beklenmedik davranışlardan kaçınmak için SeçimiKapsayıcıyı En Üstten kaldırın. Bunun yerine seçilebilir olması gereken içeriği sarmalamak için özel olarak bir 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
yayınlandı. Sürüm 1.0.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- İleri/geri kaydırma anlamlarını kaldır. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
onInvalidate()
,Owner
adlı şablondan kaldırıldı --OwnedLayer
herkese açık kullanıcı adı geçersiz kılma işlemi. (Ica72b, b/162061312)Size API'de, Offset parametrelerini kullanan operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu belirsiz ve onlar için beklenmedik bir sonuç türüdür. Ör. boyut - göreli konum, farkı içeren bir ofset mi yoksa boyut sonucu mu döndürmelidir?
Boyut sınıfında desteği sonlandırılmış yöntemler de kaldırıldı. (Iec902, b/166514214)
Hata Düzeltmeleri
- Bazen yanlış çizilen LazyColumn öğeleri için düzeltme uygulandı. Bu, bazı koşullarda kilitlenmelere de neden oluyordu. (Ibcf17, b/163066980, b/165921895)
- Bu API'yi kullanan DpConstraints ve API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
konumundanandroidx.ui.test
konumuna taşındı (Idef08, b/164060572)- Yer çekimi kullanımları, düzen API'lerini hizalamak veya uyumlu hale getirmek için tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut genel yöntemler kullanımdan kaldırılacağı için onNode ve diğer genel yöntemler ComposeTestRule'a eklendi. (Ieae36)
Sürüm 1.0.0-alpha02
2 Eylül 2020
androidx.compose.ui:ui-*:1.0.0-alpha02
yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- düzen düğümü sınırları değiştiğinde Sahibi bildirmek için geri çağırmayı kaldırın. (If654e, b/166106882)
- Vektör grafik yollarında dolgu türü parametreleri için destek eklendi. Böylece, çift sayılı veya Sıfır Olmayan yol dolgu kurallarına göre şekil kesimlerini destekleyebilirsiniz. (I43dd2)
- Çalışma süresi ve Hız artık satır içi sınıflardır (I48f4a)
- Süre artık bir satır içi sınıftır (I565eb)
- Düzen düğümü sınırları değiştiğinde Sahibi bildirmek için bir geri çağırma ekleyin. (Ic40b3)
Ofset ve yarıçap içeren Dikdörtgen işlev oluşturucunun, Dikdörtgeni sol, üst, sağ, alt yerine sol, sağ, üst, alt sırasında oluşturması sorunu düzeltildi.
İşlev oluşturucularının lehine Rect'teki desteği sonlandırılmış 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)
- Matris4, Matris ile değiştirildi. Vektörmath paketinin diğer tüm kısımları kaldırıldı. (Ibd665, b/160140398)
Birleştirilebilir işlevler için çağrı kuralı değişti. Bu, ikili programlarda sorun yaratan bir değişikliktir. Tüm kitaplıklar, oluşturma derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.
Değişen tek API'ler, açık etkinleştirmeye sahip derleyici API'leri olduğundan bu değişiklik kaynak düzeyinde zarar veren bir değişiklik oluşturmaz. (I7afd2, b/158123185)
PointerInputFilter'e dağıtım yapıldığında oluşabilen kilitlenme, PointerInputFilter'in eşzamanlı olarak kaldırılmasına neden olabilir. (
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
yayınlandı. Sürüm 1.0.0-alpha01 bu kayıtları 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
yayınlandı. Sürüm 0.1.0-dev17 bu kayıtları içerir.
API Değişiklikleri
emitView
desteği sonlandırıldı. Compose içinde Görünüm yayınlamak için mümkünse bunun yerineAndroidView
kullanın. Görünümler ve Görünüm Grupları oluşturma işlemlerinin, bunlar AndroidView kullanılarak bileşim ağacında bırakılmadığı sürece gelecekte desteklenmeyeceğini unutmayın. (I29b1e, b/163871221)FocusState2
desteği sonlandırılmış ve yeriniFocusState
ile değiştirmiştir (Ia8b79, b/160822876, b/160923332)- Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
- Özel emisyonlar, artık ayarlayıcılarından bir veya daha fazlasının atlanıp yayılmadan bağımsız olarak yeniden oluşturulabileceğini bildirebiliyor. (Ibbd13)
Kompozisyon için aynı nesne örneği kullanıldığından Vector sınıfları artık veri sınıfı olmayacak şekilde değiştirildi.
Vektörün içeriği değişirse koşullu olarak yeniden çizim yapmak için VectorPainter için mutableStateOf işareti eklendi.
VectorBileşen örneği, kompozisyonlarda yeniden kullanıldığı için VectorPainter'ın bir parçası olacak şekilde yeniden düzenlendi.
GroupBileşen ve Yol Bileşeni, ad alanları değişebilir olacak şekilde güncellendi (Ieae45, b/151378808)
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine alt düzendeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)Başlangıç, satır içi sınıf oldu (Iaec70)
SeçimKapsayıcısına bir değiştirici parametre eklendi (I4aada, b/161487952)
Kullanımdan kaldırılan FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)
mergePolicy
lambda,SemanticsPropertyKey
koleksiyonuna eklendi. Bu, birleştirmeAllDescendants semantik birleştirmesi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)Kısıtlamalar artık satır içi sınıf (I88736)
Ortak odak mantığını AndroidComposeView'dan dışarı taşıyan 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 bir satır içi sınıf (I2bf42)
PlacementScope.placeAbsolute()
,PlacementScope.place()
olarak, öncekiPlacementScope.place()
isePlacementScope.placeRelative()
olarak yeniden adlandırıldı. Sonuç olarak,PlacementScope.place()
yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmaz. İsterseniz bunun yerinePlacementScope.placeRelative()
politikasını kullanın. (I873ac, b/162916675)AlertDialog artık düğmeler için FlowRow'u kullanıyor (I00ec1, b/161809319, b/143682374)
Bazı test yardımcı programlarını ait oldukları yerde olmadıkları için herkese açık olmayan bir şekilde değiştirdik. Gelecekte herkese açık hale getirilecektir. (I32ab1)
Kullanımdan kaldırılan PxBounds'un yöntemi Rect oldu. PxBound'ların tüm kullanımları dikdörtgen ile güncellendi ve taşıma işlemine yardımcı olmak için uygun kullanımdan kaldırma/değiştirme notlarıyla eklendi. (I37038, b/162627058)
Kullanımdan Kaldırılan KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)
KeyEvent, belirtilen anahtar ve meta tuş durumu kombinasyonu (If3afc) tarafından oluşturulan unicode karakterini almak için kullanılabilecek bir unicode özelliğine sahiptir.
Büyük olasılıkla değişeceği için DelayUp özel etkinliğini ve ilgili sınıfları etkin bir API haline getirdi. (I56d6f)
Artık gerekmeyen 2 PointerEventPass kaldırıldı. (I3dd9d)
Paragraph.paint öğesine renk, gölge ve TextDecoration parametreleri ekleyin. Bu işlev, Paragraf'ın gereksiz yere yeniden oluşturulmasını önlemek için yararlı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 kullanımdan kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Kenarlık veri sınıfı, BorderStroke ile değiştirildi (I4257d, b/158160576)
Kullanımdan kaldırılan FrameManager çağrıları kaldırıldı.
Dahili yazma API'leri,
mutableStateof()
(I80ba6) gibi durum nesnelerini izlemek için genel gider miktarını azaltmak amacıyla değiştirildiVerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Modifier.drawArka Plan kaldırıldı. Değiştirici.background'ı kullanma (I73b0d, b/163019183)
For döngüsü içinde durumu kaydeden bir öğe kullanıldığında kilitlenme. SaveInstanceState() dosyasında artık aynı anahtara izin veriliyor. UiSaveStateRegistry API'si artık bu yeni gereksinime göre ayarlanmıştır (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)
state { ... }
derlemesi artık kullanımdan kaldırıldı. Bunun yerine, açıklık sağlamak amacıylaremember { mutableStateOf(...) }
öğesine yapılan açık çağrılar devre dışı bırakıldı. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkilendirmesi içinby mutableStateOf()
kalıbıyla eşleşir. (Ia5727)RRect, oluşturma adlandırma kalıplarına daha iyi uyması için RoundRect olarak yeniden adlandırıldı RRect ve kullanımdan kaldırılan RRect işlevi oluşturuculara benzer işlev oluşturucular oluşturuldu (I5d325)
Sürüm 0.1.0-dev16
5 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev16
yayınlandı. Sürüm 0.1.0-dev16 bu kayıtları içerir.
API Değişiklikleri
- OnChildPositioned kullanımdan kaldırıldı. Bunun yerine alt öğede OnPositioned özelliğini 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ı şişirme ve oluşturma amaçlı AndroidViewBinding API eklendi. (I081c6)
- KeyEvent2, KeyEvent ile değiştirilir (I2d770, b/162097585)
- Alternatif donanım anahtarı için destek eklendi (I9036b)
- FocusManager kullanımdan kaldırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() fonksiyonunu kullanın. (I74ae4, b/162211322)
- loadVectorResource, trimPath özelliklerini destekler (I808fe)
- İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
- Artık gerekmeyen 2 PointerEventPass kaldırıldı. (I33ca7)
- PointerInteropModifier uygulandı. Bu araç, MotionEvents'i alma ve bir Android View uygulamasıymış gibi Compose ile etkileşimde bulunma olanağı sağlar. (Ieb08c)
- Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId'yi kullanın. (Idaa05, b/162023919)
- Sağdan sola desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
- Vektör grafiklerinde yol kırpma desteği (Ie16c9, b/158188351)
- Kolayca özel bir düzen değiştirici oluşturmayı sağlayan Modifier.layout() eklendi (I73b69, b/161355194)
- Yeni AndroidView API eklendi ve mevcut API'ler kullanımdan kaldırıldı. (I5bcfd)
- Modifier.plus kullanımdan kaldırıldı. Bunun yerine Modifier.then adını kullanın. "Sonra"da sıralama sinyali daha güçlüyken
Modifier.padding().background() + anotherModifier
yazmanız da yasaklanır, bu da zinciri bozar ve okunması daha zordur (Iedd58, b/161529964) - Görünüm hiyerarşisinde Compose içeriğini barındırmak için [Abstract]ComposeView View alt sınıfları ekleyin. (I46357)
Row
veColumn
artık satır içi işlevlerde, bunları kullanmanın ek yükünü önemli ölçüde azaltıyor. (I75c10)- SubcomposeLayout eklendi. Alt ağaç bileşimini ölçme sırasında yalnızca daha sonra sunulacak bazı değerleri kullanmak istiyorsak ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan düşük düzey bir temel öğedir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmamıştır. (I25cc8)
- Bir SemanticsNode'un Compose hiyerarşisinin köküne göre konumunu almak için
SemanticsNode.positionInRoot
eklendi (Icdf26, b/161336532) - MotionEvents, Android'den Compose'a geçti ve tekrar Android'e geri döndü. (I14be8, b/158034713)
- Açılır pop-up kaldırıldı. (I00430)
- Kesilen ekranlarda pop-up konumu düzeltildi. (Idd7dd)
- TextLayoutResult'ı (I9d6e6) almak için erişilebilirlik işlemi ekleyin
- RemeasurementModifier eklendi. Düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Genel olarak, yeniden ölçüm/geçiş otomatik olarak gerçekleştiğinden hiçbir zaman buna ihtiyacınız yoktur ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
- getLineEllipsisoffset/getLineEllipsisCount'u kaldırın. Bunun yerine getLinevisibleEnd/getLineEnd/isLineEllipSIZE değerini kullanın. (I85aa2)
- En iyi uygulama nedeni için birkaç İşaret/Ek Açıklama ekleyin. (I66b20)
- TextLayoutResult içinde daha fazla satır API'si gösteriyor. (I79bd2)
- Yerleşik birimleri dönüştürecek yerleşik vektör dönüştürücülere artık Foo.VectorConverter aracılığıyla erişilebilir. Ör. Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273).
Hata Düzeltmeleri
- Genel API düzeltmelerini ele alın (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
- Offset API ile tutarlı olması için Intoffset.Origin'i Intoffset.Zero olarak yeniden adlandırın
- Tüketicileri kendi Canvas örneklerini oluşturmalarında desteklemek için yerelCanvas yöntemi Canvas arayüzünün dışına taşındı.
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş bırakılmamasını sağlamak için BlankCanvas sınıfı oluşturuldu
- ClipOp enum'ları, Pascal Case olarak yeniden adlandırıldı
- Filter Quality enum'ları Pascal Case olarak yeniden adlandırıldı
- Stroke Join enum'ları, Pascal Olgusu olacak şekilde yeniden adlandırıldı
- PointMode enum'ları, Pascal Case olarak yeniden adlandırıldı
- PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
- PathFillType enum'ları Pascal Case olacak şekilde yeniden adlandırıldı
- StrokeCap enum'ları, Pascal Kılıfı olarak yeniden adlandırıldı
- DrawCache uygulaması, artık lateinit parametrelerini kullanmayacak şekilde güncellendi
- DrawScope artık fillPaint ve drawPaint dahili parametreleri için geç yetkiyi kullanmayacak şekilde güncellendi
- Daha az ek yük için Box kullanımını önlemek üzere Resim oluşturma özelliği güncellendi
- Outline sınıfı, @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- Vektör alt bestesi, oluşturma işlevi bunları zaten işlerken eşitlik için gereksiz koşullu denetimleri kaldıracak şekilde güncellendi.
- Kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemlerinin yerine işlev kurucular
- @Immutable ve @Stable API'leri ile güncellenmiş Brush sınıfları ve işlev oluşturucular
- VertexMode sıralaması PascalCase olarak güncellendi
- Çizim kapsamı değiştiyse boyamadaki çizgi parametrelerinin üzerine koşullu olarak yazmak için DrawScope selectPaint yöntemi güncellendi
- Boyut, yıkıcı API'yi eklemek için güncellendi, UnspecifiedSize olarak yeniden adlandır ve Kullanılmayan yöntemler kaldırıldı
- API düzeyine bağlı olarak Android çerçevesi BlendModes ve PorterDuff modları arasında düzgün bir şekilde eşleme yapılabilmesi için Composer BlendMode API tüketimi güncellendi. BlendMode'un kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için işlev sorgusu olarak işlem görmesi için BlendMode#isSupported API kullanıma sunuldu. (I0ef42)
- Lazy listelerinin itemContent parametresi için LazyItemScope eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve normal Modifier.fillMaxSize(), öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için çalışmadığında üst maksimum boyutu dolduracak değiştiriciler sağlar. (Ibd3b2, b/162248854)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
politikasını kullanın. (Id9b62)LazyColumnItems
,LazyColumnFor
olarak yeniden adlandırıldı.LazyRowItems
,LazyRowFor
(I84f84) olarak yeniden adlandırıldıfoundation.shape.corner
paketifoundation.share
(I46491, b/161887429) olarak birleştirildiAndroidComposeTestRule
adlı dosyacreateAndroidComposeRule
olarak yeniden adlandırıldı. (I70aaf)TextLayoutResult
öğesine daha fazla API eklendi. (Id7e04)FilledTextField
malzemesi, en basit API'nin keşfedilip kullanılmasını kolaylaştırmak içinTextField
olarak, temelTextField
öğesi deBaseTextField
olarak yeniden adlandırıldı (Ia6242, b/155482676)- Modifier.drawArka Plan, 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
yayınlandı. Sürüm 0.1.0-dev15 bu kayıtları 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 kullanımdan kaldırılmıştır. Bunun yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver’a sahiptir. FocusState ve FocusDetailsState kullanımdan kaldırıldı. Bunun yerine FocusState2 (I46919, b/160822875, b/160922136) kullanıma sunuldu.
- Odak durumu değişikliğini gözlemlemek için bir değiştirici eklendi. (I05866, b/160924455, b/160923326)
- Odak değişikliği isteğinde bulunmak için bir düzenleyici eklendi (I8dd73, b/161182057, b/160924778)
- Kopyalama, kesme ve yapıştırma işlemlerinin düzgün bir şekilde gösterilmesi için Araç Çubuğu Menüsü'nü tıklayın. (Id3955)
- Tek değerli anlamsal özellikler artık bir çağrı stili kullanıyor.
Örneğin, 'semantics {hidden = true }' artık şu şekilde yazılır:
semantics { hidden() }
. (Ic1afd, b/145951226, b/145955412) - FocusModifier'ın yerini alan Modifier.focus eklendi. (Ib852a, b/160924778)
- Metin Alanı Seçimi için Kayan Araç Çubuğu ekleyin. (Ie8b07)
- Anahtar girişiyle ilgili API için deneysel bir API notu eklendi (I53c0a)
- Odakla ilgili tüm API'ler için deneysel bir API notu eklendi (I53b24, b/160903352)
- FocusState2'nin yerini alacak olan FocusState2 eklendi (I0a3ba, b/160822595)
- Focus API için bir @OptIn ek açıklaması olan ExperimentalFocus eklendi. (I1544b, b/160820961)
- Düzendeki 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)
- Uygulama, artık bileşimleri atmak için clear() yöntemi gerektiriyor (Ibe697)
- KeyEvent kullanımdan kaldırıldı ve KeyEvent2 (I68730) ile değiştirildi
- Test bulucularına yeni bir isteğe bağlı useUnmergedTree işareti eklendi. (I2ce48)
- LayoutNode deneysel API'sı oluşturuldu (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
Dönüşüm Kaynağı
Kullanımdan kaldırılan Size.copy tamamlayıcı nesne yöntemi örnek kopyalama yöntemi lehine (Ife290, b/159905651)
Pop-up'lar, İletiş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çüm bloğundan düzen yönü parametresi kaldırıldı. Bununla birlikte, düzen yönü ölçüm kapsamı nesnesi (Ic7d9d) aracılığıyla geri çağırma içinde kullanılabilir.
Seçimi yeniden düzenleyerek yeniden kullanın. (I420e0)
Tıklanabilir kaldırıldı. Modifier.clickable'ı (I84bdf) kullanın
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i kullanın (I15ff0, b/158841414)
Bu değişiklikten önce, yazma derleyici eklentisi (I5205a, b/158123804) varsa @Composable işlevinin içindeki kuruculara yapılan çağrılara önemsiz bir şekilde müdahale ediyordu.
Modifier.tag, Modifier.testTag ile karıştırılma ihtimalini ortadan kaldırmak için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
Placeable#get(alignmentLine) öğesinden döndürülen hizalama satırı Int konumları artık null değil. Sorgulanan hizalama çizgisi eksikse Hizalama Satırı.Belirtilmemiş değeri döndürülür. (I896c5, b/158134875)
AndroidView composable, bir değiştirici parametre eklendi. (I48a88, b/158746303)
Semantics() desteği sonlandırıldı. Bunun yerine Modifier.semantics() işlevini kullanın. (I72407, b/158841414)
Etkinlik veya Fragment'taki gibi (I5fdd1) ViewModel'in oluşturulmasına veya önceden oluşturulmasına olanak tanıyan viewModel() composable özelliğini ekleyin
IntPx kullanımı, IntPxPosition (IntPxPosition) ile Intoffset olarak değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Boyutlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxSize yerine Beden sınıfının kullanımını standart hâle getirin. Bu, kayan öğe olarak gösterilen genişlik ve yüksekliği temsil etmek için, paketleme için uzun 2 kayan değer değerinden yararlanmak amacıyla satır içi sınıfın avantajlarını sağlar. (Ic0191)
Konumlandırma bilgilerini temsil etmek üzere kullanılan sınıfların sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan noktalı olarak temsil edilen x ve y ofsetlerini temsil etmek için 2 kayan değer değerini paketlemek için uzun bir değerden yararlanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışması kapsamında, çeşitli beste sınıflarında Px sınıfı kullanımı değiştirildi (I086f4)
Piksel parametreleri (Id3434) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli beste sınıflarında Px sınıfı kullanımı değiştirildi
Piksel parametreleri (I97a5a) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli beste sınıflarında Px sınıfı kullanımı değiştirildi
TestTag artık kullanımdan kaldırılmıştır. Bunun yerine Modifier.testTag'i kullanın. (If5110, b/157173105)
ParentDataModifier#modifyParentData'nın varsayılan, işlemsiz uygulaması kaldırıldı. Daha önce arayüzün uygulanmaması durumu aynıydı. (I0deaa)
Daha önce desteği sonlandırılmış ScaleFit seçeneği kaldırıldı. Bunun yerine ContentScale'i kullanın. (Ifbc5b)
Piksel parametreleri (I19d02) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi
Bir Materyal Tasarım menü uygulaması olan ui-material'a DropdownMenü bileşeni eklendi. (I9bb3d)
Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() komutunu kullanın. (If8044)
Piksel parametreleri (I57bff) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi
Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırılmıştır. (I4cfdc)
Birleştirilmiş CanvasScope uygulamaları artık sadece DrawScope ve ContentDrawScope olarak CanvasScope'u DrawScope olarak adlandırıyoruz. Yoğunluk arayüzünü uygulamak ve LayoutDirection'ı eklemek ve LayoutDirection'ı eklemek için DrawScope güncellendi ContentDrawScope'ta DrawScope alt sınıfını sağladı Painter ve PainterModifier artık RTL özelliğini tutmayacak şekilde güncellendi (DrawScope bunu manuel olarak sağlamadan zaten sağlıyor) (I1798e)
Çift Tap Hareket Filtresi artık SingleTapHareket Filtresi'ni ağaç genelinde açıklığa kavuşturuyor. (If92b1)
Güncellenen Hizalama API'si ve mutlak hizalama için destek eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)
Drawlayer değiştiricileri API değiştirildi: Outline Shape yeniden şekillendi
Canvas'ı CanvasScope'u kullanıma sunacak şekilde gösteren üst düzey oluşturma API'leri güncellendi. Bu sayede, tüketicilerin kendi Paint nesnelerini tutma gerekliliği ortadan kalkar. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, çizim komutu vermek için temel Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilir. (I80afd)
WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalar ve layoutDirection'a ek olarak Dp'de minwidth, maxwidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamına sahiptir (I91b9a, b/149979702)
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Kullanımdan kaldırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Layout ve LayoutModifier2'deki dahili ölçüm işlevleri, artık dolaylı olarak yayılmış düzen yönüyle dahili sorgu API'si sağlayan bir IntrinsicmeasureScope alıcısına sahiptir. (Id9945)
Layout ve LayoutModifier alt öğeleri, farklı 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() eklenmiştir. DrawtierModifier'daki yükseltme özelliği, shadowElevation olarak yeniden adlandırıldı ve çizim sırasını artık kontrol etmemektedir. DrawShadow'un parametre sırası değiştirilmiştir: Yükseklik artık ilk sırada ve şekil, Dikdörtgen Şekil varsayılanı olan ikinci sıradadır. (I20150, b/152417501)
Sahip rolündeki onSizeChange ve onPositionChange kaldırıldı. (I5c718)
IntPx yerine yalnızca Int connstraints değerlerini destekleyen Kısıtlamaların bir kopyası olan Kısıtlamalar2 eklendi. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android gibi piksel olduğu varsayılır.
- IntPxSize'ın yerini alacak olan IntSize da eklendi. (I4b43a)
Hizalama, rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)
alignToSiblings, artık Yerleştirilebilir yerine Ölçüm kabul ediyor. (I5788d)
-
- ScaleFit, ContentScale olarak yeniden adlandırıldı
- ContentScale, hizalama API'si ile aynı modülde yaşamak için kullanıcı arayüzü grafiklerden arayüz çekirdekli modüle taşındı.
- FillMaxBoyutlar, Kırpma olarak yeniden adlandırıldı
- FillMinBoyut Sığdır olarak yeniden adlandırıldı
- Daha iyi eşleşmesi için Fit adını Inside olarak değiştirdi
- ImageView.ScaleType eşdeğerleri
- Kırpma ve Hizalama.Center kombinasyonlarının, Hizalama.Center ile kullanılan ImageView.ScaleType.>_CROP ve Fit ile aynı sonucu elde ettiğini gösteren dokümanlar eklendi.
Çizim değiştiriciler için Rtl desteği. (I0aaf9)
XML'den Android Görünümlerini şişirme API'si yayınlandı. Daha fazla ayrıntı için ViewInCompose demosuna bakın. (I42916)
DrawModifier API'yi iyileştirin:
- schema() ContentDrawScope için alıcı kapsamı oluşturuldu
- draw() üzerindeki tüm parametreler kaldırıldı
- DrawScope eski CanvasScope ile aynı arayüze sahip
- ContentDrawScope yöntemi,drawContent() yöntemine (Ibaced, b/152919067) sahiptir
Düzen Koordinatları için locationInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
DrawlayerModifier vedrawKatmanlar() artık varsayılan olarakClipToBounds ve ClipToOutline'ı false değerine ayarlar. (I0eb8b, b/152810850)
LayoutResult, measureResult olarak yeniden adlandırıldı. (Id8c68)
Düzen değiştiricileri tanımlamaya yönelik yeni bir API olan LayoutModifier2 eklendi; kullanımdan kaldırılan LayoutModifier (If32ac)
Değiştirici artı operatörü, fabrika uzantı işlevleriyle değiştirildi (I225e4)
Belirli bir Katman için çizim komutları görüntüleme listesinin yerini ayarlamak için çeviriX/Y özellikleri eklendi. Bu, animasyonlara veya dokunma etkinliklerine yanıt olarak içeriği taşırken yararlıdır. (I8641c)
Bir katmandaki belirli bir nokta çevresinde döndürme ve ölçeklendirmeyi desteklemek için Katman API'lerine pivotX, pivotY parametreleri eklendi (Icf7c3)
OnPositioned ve OnChildPositioned composable işlevlerini değiştirmek için OnPositionedModifier ve OnChildPositionedModifier ekleyin. (I2ec8f)
Bir Düzen için RenderNode eklemeyi sağlayan bir değiştirici olan tierModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölgelerin ayarlanmasına olanak tanır. Bu, RepaintBoundary'nin yerini alır. (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)
Yığın bileşeni sağdan sola yönü destekler (Ic9e00)
Oluşturma düzeninde Rtl için ilk destek (Ia5519)
Yoğunluk ve DensityScope tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)
Sağlanan Düzen Koordinatları değiştirildi, böylece Düzen Koordinatları Harita yerine Küme haline getirildi ve Düzen Koordinatları , değer almak için get() operatörü uyguladı. Bu, değiştiricilerin her bir değiştirici için yeni bir koleksiyon oluşturmadan kümedeki bir veya daha fazla değeri değiştirmelerini kolaylaştırır. (I0245a)
Düzen Koordinatları artık bir konum özelliğine sahip değil. LayoutModifiers, rotasyon veya ölçeklendirme düşünüldüğünde konum özelliği anlamlı değildir. Bunun yerine, geliştiriciler bir Layout Kodlayıcıdan diğerine geçişi hesaplamak için parentKoordinatörleri ve altToLocal() işlevini kullanmalıdır.
LayoutKoordinatları, boyut özelliği için PxSize yerine IntPxSize değerini kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullandığından tüm düzen boyutları, kayan nokta değerleri yerine tamsayılar kullanmalıdır. (I9367b)
Kısıtlamaların API yüzeyinde iyileştirmeler (I0fd15)
Durum bilgisiz ve bildirim temelli çizim API'si yüzeyini ortaya çıkarmak için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyutlandırma bilgileri de ilgili alt sınır sınırlarına dahil edilir. Tüketicinin, çizim işlemlerini yapılandırmak için kendi Paint durum nesnesini tutması gerekmez.
- CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli bir grafik demosu içerecek şekilde güncellendi (Ifd86d)
Kullanılmayan MaskFilter API, kullanımı sınırlı olduğundan ve çoğu kullanım alanında donanım hızlandırma için optimize edilmediğinden kaldırıldı (I54f76)
RectangleShape, androidx.ui.foundation.shape.*'dan androidx.ui.graphics'e taşındı.* (Ia74d5, b/154507984)
API'deki tüm null özellikli Renk kullanımları, null yapılamayan renkle değiştirildi ve null yerine Color.Unset (Iabaa7) kullanılıyor
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizimini desteklemek için ImagePainter'a isteğe bağlı ek rect parametresi ekleyin
Renkleri kutulamadan, ayarlanmamış bir değeri temsil etmesi için Ayarlanmamış Renk değeri eklendi. (If901a)
Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak amacıyla Canvas.rotate ve Canvas.scale uzantı yöntemleri eklendi. Bunlar varsayılan olarak mevcut tuval çevirisinin sol üst köşesinde yer alır.
Ayrıca Canvas.rotateRad, tutarlılık için bir uzantı yöntemi olarak taşındı (Ibaca6)
ImageAsset'teki piksel bilgilerinin sorgulanmasını desteklemek için PixelMap API'si oluşturuldu. (I69ad6)
Oluşturma ve üzerine derlenen Android çerçeve API'leri arasındaki nesne dönüşümleri için adlandırma kuralını eşleştirmek amacıyla, toFrameworkRect/toFrameworkRectF adını AndroidRect/toAndroidRectF olarak değiştirdi. Ayrıca bu API'lerle ilgili güncellenmiş belgeler (I86337)
Vektör grafikleri için mevcut alt bileşim API'sinin yerini alması için VectorPainter API'si eklendi. Alt bileşimin sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector kompozisyonları kullanımdan kaldırıldı ve VectorPainter oldu.
Image(Painter) API, PaintBox(Painter) olarak yeniden adlandırıldı ImageAsset yerine VectorAsset (I9af9a, b/149030271) hariç olmak üzere composable gibi davranan bir Vector oluşturuldu
Resim verileri ile düzene katılmak ve içerik çizmek için kullanılan Resim-oluşturulabilirliği arasındaki farkı daha iyi ayırt etmek için Resim, ImageAsset olarak yeniden adlandırıldı. _Body:Geleneksel Android uygulaması geliştirmeyi yazma çerçevesi (Id5bbd) ile birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap, Bitmap.asImageAsset() üzerinde uzantı yöntemi oluşturuldu.
TextDirection.Content eklendi (I48f36)
TextDecoration.plus operatörü eklendi (I0ad1a)
Force
, TextDirectionAlgorithm enum değerlerinden (Icc944) kaldırıldıTextDirectionAlgorithm, TextDirection (I75ce8) olarak yeniden adlandırılır
Metin Alanı Seçimi için LongpressAndDrag'i uygular. (I17919)
Aralıktaki tüm ek açıklamaları döndüren AnnotatedString.getStringDescriptions eklendi. (I1fa00)
Locale ve LocaleList için androidx.ui.text olan paket adı, androidx.ui.intl (I8132c) olarak değiştirildi
TextField'in imlecinde yanıp sönen bir animasyon var (Id10a7)
API değişikliği: AnnotatedString(builder: Builder), ExplaindString(builder: Builder) olarak yeniden adlandırılmaktadır. (Ia6377)
API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)
AnnotatedString.Builder.addNotlarString'i addStringNotlar olarak yeniden adlandırın. (I5059e)
Artık onTextInputStarted geri çağırması (I8dc44, b/151860051) ile sunulan SoftwareKlavyeController uygulamasını kullanarak yazılım klavyesini gizleyebilir/gösterebilirsiniz
Birleştirme() işlevine yetki veren (Metin/Paragraf/Genişlik) Stili için artı operatörü eklendi. (Ia1add)
Fontweight.lerp artık yapışmıyor. Bu hâlâ bir veri sınıfıdır. (I521c2)
Fontweight kurucusu artık herkese açık ve artık bir veri sınıfı değil. (Id6b1f)
TextLayoutResult'a (Ibc801) getLineStart, getLineEnd, getEllipsisoffset ve getEllipsisCount değerlerini ekleyin
kullanıcı arayüzü modülü, ui-text-core (I57dec) olarak yeniden adlandırılmıştır
Kullanıcı arayüzü geometrisi modülünde tüketilen bir yinelenen Boyut sınıfı olduğundan, kullanılmayan Boyut sınıfı kaldırıldı. (I1b602)
Sadece görünür öğeleri oluşturan ve yerleştiren kaydırma listesi bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında, yalnızca dikey yönde olması ve alt öğelerinde yapılan değişikliklerin tüm durumlarını tam olarak ele almaması sayılabilir. (Ib351b)
Box'a dolgu, kenarlık, şekil ve arka plan parametresi ekleyin (I05027, b/148147281)
Hata Düzeltmeleri
- Metin alanlarındaki onFocusChange geri çağırması, onFocusChanged (Ida4a1) olarak yeniden adlandırıldı
- VerticalScroller ve HoriziontalScroller desteği sonlandırıldı. Sütun/Satır davranışı ve parametreleriyle ilgili yerleşik deneyim için ScrollableColumn ve ScrollableRow'u kullanın veya kendi öğenizde Modifier.verticalScroll ve Modifier.LandscapeScroll'i kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırıldı ve ardından ScrollState (I400ce, b/157225838, b/149460415, b/154105299) kullanıma sunuldu
runOnIdleCompose
,runOnIdle
(I83607) olarak yeniden adlandırıldı- Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'lerinin adı onNodeXYZ olarak değiştirildi. Tüm doXYZ API'lerinin adı performansXYZ olarak değiştirildi. (I7f164)
- Oluşturma kullanıcı arayüzü artık yeni bir oluşturma işlemi gerektirmeden ViewGroups içinde oluşturulabilir. Örnek için ViewInteropDemo sayfasına bakın. (I9ab0b, b/160455080)
- MutableVector'a SortWith ve removeRange eklendi (Icccf7)
- TextField seçimi değiştirmek için Sürükleme Seçimi Tutucularını uygulayın. (I27032)
- NativeShader'ı sarmalayan Shader satır içi sınıfı kaldırıldı NativeShader'ı Shader olarak yeniden adlandırdı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklememiştir ve bir satır içi sınıftır. Bu nedenle doğrudan NativeShader sınıfını kullanın. (I25e4d)
PainterModifier, belirtilen kısıtlamalara ve ContentScale parametresine göre artık ölçeklendirme yapmayacak şekilde yeniden düzenlendi. Painter'ın uygulamaları, çizim içeriklerini, çizdikleri DrawScope'un boyutuna göre kendi başlarına ölçeklendirmektir.
VectorPainter'ın önbellek bit eşleminin, çizim yapılacak boyut yerine varsayılan boyutuna göre boyutlandırılmasıyla ilgili sorun düzeltildi.
Adı PainterModifier'a güvenmek yerine, içeriğini ölçeklendirmek için ImagePainter güncellendi. (I6ba90)
animasyon zamanlaması için üst düzey withFrameNanos işlevi ekleyin (Ie34c5)
@Untracked ek açıklaması kullanımdan kaldırılmıştır. @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 besteleri de kullanımdan kaldırılmıştır. Lütfen bunun yerine androidx.ui.input.TextFieldValue öğesini kullanın (I4066d, b/155211005)
İşaretleme sırasında alt bileşen aracılığıyla PointerInputFiltreler'in kaldırılması durumunda işaretçi girişi gönderiminin kilitlenmeye neden olmasıyla ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)
İşaretleme sırasında alt bileşim aracılığıyla PointerInputFiltreler kaldırılırsa işaretçi girişi dağıtımının kilitlenmeye neden olmasıyla ilgili sorun 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. Tamamlayıcı oluşturma yöntemlerinin yerine, varsayılan parametreye sahip işlev oluşturucunun y ekseni boyunca yarıçapının, zorunlu x ekseni yarıçap parametresinin yarıçapıyla eşleşmesini sağlayacak şekilde kaldırıldı.
DrawScope.drawroundRect, x ve y ekseni boyunca yarıçap için 2 ayrı kayan değer değeri yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi (I46d1b)
Recompose kompozisyonu artık yararlı bir soyutlama değil. Çoğu yeniden oluşturma işlemi MutableState atamaları sonucunda gerçekleşir. Bunun dışında her şey için geçerli 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ürlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi (Iede0b)
Compose'un derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, oluşturma derleyicisi çağrıları birleştirilebilir işlevlere dönüştürür. Bu değişiklikle birlikte, composable işlevin gövdesini dönüştürüp (çoğunlukla) çağrı sitesini değiştirmeden bırakıyoruz.
Bu, yazma çalışma zamanıyla iletişim kurma mantığının büyük kısmının, çağrı sitesi yerine işlev gövdesinin başında gerçekleştiği anlamına gelir.
Bu, tüm oluşturma işlemlerinde kaynakla uyumlu bir değişiklik olmalıdır. Bu değişikliğin ardından, yazma özelliğini kullanan çoğu kullanıcının herhangi bir kod güncellemesi gerekmeyecektir.
Bu çalışmayı desteklemek için oluşturulabilir tüm işlevlerin JVM imzası değiştirildi. Tek bir parametreyi kabul eden bir yazılabilir işlev, 3 parametre kabul eden bir işleve dönüştürülür. Ek parametreler, bir "anahtar" tam sayısı olan Composer, çağrılar aracılığıyla meta verileri yaymak için kullanılan bir bit maskesi tam sayıdır.
Oluştur özelliği artık varsayılan bağımsız değişkenleri de oluşturulabilir bir işleve dönüştürüyor. Bunu, işlevin kendisinin fazladan bir sentetik varsayılan aşırı yüklemesi uygulamadan yapar. Dolayısıyla bu değişiklik, daha az işlevin tanımlanmasına neden olur.
Aşağıdaki durumlardan kaynaklanan bilinen kasıtlı davranış değişiklikleri:
- Bazı aramalar, daha önce ulaşamadıkları yerden atlanır
- Varsayılan bağımsız değişken ifadelerindeki oluşturulabilir ifadeler artık doğru şekilde abone olundu ve işlendi
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 oluşturulabilecek işlevlere aktarılır. Bu, çalışma zamanında daha az karşılaştırmaya neden olur, slot tablosu boyutunu küçültür ve daha önce atlanmamış birleştirilebilir işlevlerin daha fazla atlanmasını sağlar 2. Derleme zamanında "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Böylece karşılaştırma sayısı ve slot tablosu boyutu küçültülür. 3. İşlevlerin gövdesinin kontrol akışı yapısı, oluşturulan grup sayısını en aza indirmek için kullanılır. Bu, slot tablosu boyutunu küçültür ve çalışma zamanı için daha az iş yapılmasına neden olur 4. İşlevlere yönelik kullanılmayan dağıtım ve alıcı parametreleri, işlevin gövde bölümünde kullanılmadığı takdirde işlevin atlanabilirliğinin belirlenmesine dahil edilmez.
Zarar veren değişikliklerin çoğu, derleyicinin doğrudan hedeflediği API'ler içindi ve tipik oluşturma kullanımı bu durumdan etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call desteği sonlandırıldı 4.
key
öğesinin değişken olmayan 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ı. Yedek olarakkey
kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine bir Function3 içerecek ş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)
DrawKatmanlarModifier'ın yerini alan RepaintBoundary kaldırıldı (I00aa4)
Düğme, FloatingActionButton ve Clickable artık ayrı bir
enabled
parametresine sahiptir. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)ButtonStyle farklı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenmiş örneklere bakın. (If63ab, b/146478620, b/146482131)
Ambiyans API'sinde önemli değişiklikler. Ayrıntılar için günlüğe ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)LayoutDirection tarafından belirlenecek varsayılan TextDirection'ın davranışı değiştirildi. Diğer bir deyişle, LayoutDirection RTL ise varsayılan TextDirection değeri RTL olacaktır. Daha önce TextDirection.ContentOrLtr/Rtl (I4e803) adıydı
Hata düzeltmesi: AnnotatedString örneğinde yazı tipi kalınlığı ve yazı tipi stili iç içe yerleştirildiğinde metin doğru şekilde oluşturulmuyor. (I77a9d)
Text()'a yaygın olarak kullanılan parametreleri ekler. Şu anda Text(style = TextStyle(text günde = TextStyle(text gündeme = Metin hizalama)) gibi az sayıda geçirmek 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ü, ui-text-android (I68cbe) olarak yeniden adlandırıldı