Oluşturma kullanıcı arayüzü
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(Tüm compose paketleri için API referans dokümanlarına bakın)
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
11 Aralık 2024 | 1.7.6 | - | - | 1.8.0-alpha07 |
Yapı
Oluşturma, androidx
içindeki 7 Maven grup kimliğinin birleşimidir. Her grup, kendi sürüm notlarına sahip hedeflenen bir işlev alt kümesi içerir.
Bu tabloda, gruplar ve her sürüm notları grubunun bağlantıları açıklanmaktadır.
Grup | Açıklama |
---|---|
compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyon oluşturabilirler. |
compose.compiler | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisi ile 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'da açıklananlarla eşleşen bileşenler sağlamak için tasarlanmış Compose'un üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarım'ın bir sonraki aşaması olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenen temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
compose.runtime | Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedeflemesi gereken temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşimde bulunmak için gereken oluşturma kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları beyan etme
Compose'a bağımlı eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.
Uygulamanızın veya modülünüzün build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Groovy
dependencies { implementation "androidx.compose.ui:ui:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
1.8 sürümü
Sürüm 1.8.0-alpha07
11 Aralık 2024
androidx.compose.ui:ui-*:1.8.0-alpha07
yayınlanır. 1.8.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Araçlar için
LayoutNode
'ten sahibin bilgisini gösterdi. (I26f7f) LocalAutofillHighlightColor
kompozisyonunda yerel olarak kullanılan bir Renk türü var. (I0e05b)- Desteği sonlandırılan
UrlAnnotation
ve yöntemlerini deneysel olarak işaretlenmiş halde bırakın. (Ic0021)
Hata Düzeltmeleri
BasicText
veya metin bileşeni içindeLinkAnnotation
kullanılırkenIndexOutOfBoundsException
kilitlenme sorunu düzeltildi (be7605, b/374115892)- Özel şekle sahip doldurulmuş metin alanlarının, gösterge çizgisini kırpmaması sorunu düzeltildi. (I4f87f, b/380704151)
- Uzun ekran görüntülerinde eksik arka planlar düzeltildi. (I4d57a)
- Bu kitaplıkta artık tür kullanımı olan JSpecify nullness ek açıklamaları kullanılmaktadır. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenlerini kullanmalıdır:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(Idfef8, b/326456246) - Android Q ve sonraki sürümlerde çalışırken geniş gam ve HDR renkleri için Oluşturma desteğini güncelleyin. (Icd8be, b/379135036)
- Yüklenemeyen kaynak yazı tipleri artık ölçümde istisna atma önceki davranışı yerine varsayılan yazı tipine sessizce geri dönecek. (Ib6a49)
AndroidView
ayrılıp bağlandığında odağın kaybedilmesiyle ilgili sorun düzeltildi. (I53446)requestFocus()
'ü sınırın dışındaki düzen işleminden kabul edin. (Ia8461)
Harici Katkı
- Kullanıcı arayüzüne
BringIntoViewResponderModifierNode
ekleyin. Bu, Görünür Hale Getirme işlevini uygulamanın yeni bir yolunu sağlar ve platform düzeyinde uygulamaya olanak tanır. (Ia6dd8)
Sürüm 1.8.0-alpha06
13 Kasım 2024
androidx.compose.ui:ui-*:1.8.0-alpha06
yayınlanır. 1.8.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
stylusHoverIcon
değiştiricisi ekler. (Iff20a, b/331289114)- Otomatik doldurma yöneticisini arayüz olarak değiştirir. (I84914, b/376080755)
- Belirli bir yönde odaklanmaya izin vermek için hem
focusRequester
hem deFocusTargetModifierNode
içinrequestFocus(FocusDirection)
ekler. (I5d9ec, b/245755256) FocusProperties.enter
veFocusProperties.exit
,FocusDirection
parametresi yerine alıcı kapsamı kullanılarakonEnter
veonExit
ile değiştirildi. (I6e667)- Metin araç çubuğuna otomatik doldurma desteği eklendi. (Ie6a4c)
- API,
Modifier.focusRestorer()
(I99c03) olarak değişti:- parametre adı "fallback" olarak değiştirildi
- parametresi artık lambda değil
FocusRequester
- parametresi artık varsayılan değer olarak Varsayılan ile NULL olmayan bir değere sahip
- Otomatik doldurma yöneticisi arayüzünden
@Experimental
ek açıklamasını kaldırma. Bu özellik, bu sürümü hedefleyen geliştirme aşamasındadır ancak @Expemiental API'yi (Id8398) tanıtmak istemiyoruz. LocalHapticFeedback
artık Vibratör API'si dokunma teknolojisinin desteklendiğini belirttiğinde varsayılan birHapticFeedback
uygulaması sağlar. ŞunlarHapticFeedbackType
'e eklendi:Confirm
,ContextClick
,GestureEnd
,GestureThresholdActivate
,Reject
,SegmentFrequentTick
,SegmentTick
,ToggleOn
,ToggleOff
,VirtualKey
. Wear Compose'dakiButton
,IconButton
,TextButton
veCard
gibi uzun tıklanabilir bileşenler artık uzun tıklama işleyici sağlandığındaLONG_PRESS
dokunma işlevini gerçekleştiriyor. (I5083d)OverscrollConfiguration
veLocalOverscrollConfiguration
parametrelerini kaldırır ve varsayılan kaydırma üstü uygulamasını örneklemek / parametrelerini özelleştirmek içinrememberPlatformOverscrollFactory
parametresini ekler. Aşırı kaydırma özelliğini devre dışı bırakmak içinLocalOverscrollConfiguration provides null
yerineLocalOverscrollFactory provides null
kullanın. Parıltı rengini / dolguyu değiştirmek içinLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)
yerineLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)
kullanın. (Ie71f9, b/255554340, b/234451516)- Deneysel
GlobalAssertions
API kaldırıldı. Amaçlanan kullanımı erişilebilirlik kontrolleri yapmaktı. Bu amaç içinenableAccessibilityChecks()
bölümüne bakın. (I59322)
Sürüm 1.8.0-alpha05
30 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha05
yayınlanır. 1.8.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
Otomatik doldurma, bu sürümde bir özellik işaretinin arkasında sunulur. Performansı iyileştirmek için çalışıyoruz ve API'ler hakkında erken geri bildirim almak istiyoruz. API'lerin, kararlı sürümden önce geri bildirimlere göre gelişmesi beklenir.
- Otomatik doldurma özelliğini etkinleştirmek için
onCreate
'teComposeUiFlags.isSemanticAutofillEnabled
değerini true olarak ayarlayın ve en son Oluşturma anlık görüntüsünü kullanın. - Otomatik doldurma özelliğinin bu sürümü, kimlik bilgilerini güçlü şifre önerisi ve gezinme aracılığıyla manuel olarak kaydetmeyi destekler. Ayrıca, otomatik doldurulabilir bir alan odaklandığında veya otomatik doldurma, metin bileşenlerindeki metin araç çubuğu aracılığıyla tetiklendiğinde doldurmayı destekler. Otomatik doldurma işlemi tamamlandığında bileşen vurgulanır.
API Değişiklikleri
- Otomatik doldurma arayüzünü
expect
/actual
yapısına uygun olacak şekilde değiştirin. (I22dce) - Otomatik doldurma özelliğinin başarılı doldurma vurgusunun tonunu değiştirmek için kullanılabilen
CompositionLocal
özelliğini kullanıma sunduk. (I32092) - Bir
LayoutNode
'un kök/pencere/ekrana göre konumuna ve boyutuna abone olmaya olanak tanıyanModifier.onRectChanged
API eklendi. API, mevcutonGloballyPositioned
değiştiricinin yaptığı birçok kullanım alanını çözer ancak bunu çok daha az ek maliyetle yapar. Ayrıca API, kullanım alanınıza göre geri çağırma işlevini erteleme ve kısıtlama olanakları sunar. (Id28c7, b/372765423, b/372757007, b/372994338) - Otomatik doldurma yöneticisini, kullanıcıların yeni girilen kimlik bilgilerini kaydetmesine yardımcı olan
commit()
vecancel()
API'lerini içerecek şekilde genişletir. (I2da00) - Kullanıcıların Otomatik Doldurma yolculuğunda ince ayar yapmak için kullanılabilecek yeni
AutofillManager
arayüzünü ve Otomatik Doldurma'nın bu yeni sürümünü etkinleştirmek için birisSemanticAutofillEnabled
işaretçisini kullanıma sunar. (I9d484) - Bir
LayoutNode
'un kök/pencere/ekrana göre konumuna ve boyutuna abone olmaya olanak tanıyanModifier.onRectChanged
API eklendi. API, mevcutonGloballyPositioned
değiştiricinin yaptığı birçok kullanım alanını çözer ancak bunu çok daha az ek maliyetle yapar. Ayrıca API, kullanım alanınıza göre geri çağırma işlevini erteleme ve kısıtlama olanakları sunar. (I3c8fa) - Genişletilmiş otomatik doldurma desteği için anlamsal özellikler ve veri türleri ekleyin. (I52c7d)
AnnotatedString
oluşturucudaki tüm yöntemler artık deneysel değil (Ia89c8, b/261561823)
Hata Düzeltmeleri
- Oluşturma alanına yerleştirilmiş görünümler artık odaklanıldığında döner etkinlikler alabilir (I4d53a, b/320510084)
- Çeşitli kaynak türlerinin yapılandırma değişikliklerinde güncellenmediği bir sorun düzeltildi (Ia9b99, b/352336694)
- Belirli eski Sony cihazlarda POBox Japonca Klavyesi kullanılırken
TextField
'ün düzgün çalışmasını engelleyen bir sorun giderildi. (Ia9b99, b/373743376) - İletişim kutularının ortalanmak yerine ekranın alt kısmında gösterilmesiyle ilgili sorun düzeltildi (Ia2ec, b/373093006)
- Hedefleme API 35 ve sonraki sürümler artık iletişim kutularının
decorFitsSystemWindows
değerini false olarak ayarlamaya zorlamaz. (Ibc94, b/364492593) - Katmanlar pencereler arasında taşınırken (ör. iletişim kutusu ve ana içerik) kilitlenme sorunu düzeltildi (I675ba, b/330955281)
Sürüm 1.8.0-alpha04
16 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha04
yayınlanır. 1.8.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Değişiklik olduğunda düğüm durumunun güncellenmesine izin vermek için
DelegatableNode#onDensityChange
veDelegatableNode#onLayoutDirectionChange
geri çağırma işlevleri ekler (I04f3e, b/340662451) - Geçerli pencerenin içerik kapsayıcı boyutunu sağlamak için
WindowInfo#containerSize
ekler. Bu,LocalWindowInfo
kullanılarak alınabilir. (Idc38c, b/369334429, b/360343819) - Devam eden bir fırlatma sırasında düğüm ağacından kaldırılan iç içe yerleştirilmiş kaydırılabilir öğeler için bir düzeltme yapıldı. Artık bu düğümler fırlatmayı iptal edecek ve kalan hızla
onPostFling
etkinliğini doğru şekilde gönderecektir. Ayrıca, gerileme durumunda davranışı kontrol etmek içinNewNestedScrollFlingDispatchingEnabled
işaretini de kullanıma sunuyoruz. İşaret, beta sürümünden önce kaldırılacaktır. (I05c37, b/371168883) - Tek bir işaretçi girişi değiştiricisinin dokunma sınırlarını genişletmek için kullanılabilen
PointerInputModifierNode#touchBoundsExpansion
özelliği kullanıma sunuldu. (Iccf02, b/335339283) - Geçerli pencerenin içerik kapsayıcı boyutunu sağlamak için
WindowInfo#containerSize
ekler. Bu,LocalWindowInfo
kullanılarak alınabilir. (I27767, b/369334429, b/360343819) - Kararlı temel sürüme sabitlemek için
readOnly
'üTextFields
'ten kaldırın. (I3aaba) Paragraph
veParagraphIntrinsics
, artıkAnnotatedString
'ye uygulanan tüm ek açıklamaların listesini alıyor. Daha önce yalnızcaSpanStyles
(I12f80) listesini alıyordu.
Hata Düzeltmeleri
AnnotatedString
'te paragrafların işlenme şekli güncellendi. Daha önce yalnızca çakışmayan paragraflar oluşturabiliyordunuz. ArtıkAnnotatedString
, tamamen çakışan ve birleştirilecek paragraflara ve iç içe yerleştirilmiş paragraflara izin veriyor. Bu durumda dış paragraf, iç paragrafın sınırlarına göre bölünür ve iç paragrafın stili dış paragrafın stiliyle birleştirilir (Ic9554).- Sıfır uzunlukta bir
LinkAnnotation
ileAnnotatedString
'teki kilitlenmeyi düzeltin. (89aac6)
Sürüm 1.8.0-alpha03
2 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha03
yayınlanır. 1.8.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kotlin sürümü 1.9'a güncellendi (I1a14c)
- Erişim hizmetleri için a11y hizmetlerindeki liste davranışını taklit etmek üzere Bant adlı yeni bir Anlambilim rolü kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
invisibleToUser()
'ühideFromAccessibility
olarak yeniden adlandırın. İşlevi aynı kalır. Daha fazla ayrıntı için dokümanları inceleyin. (Ib43a3)
Hata Düzeltmeleri
SensitiveContent
değiştiricisi (Ib0442) için dokümanları güncelleme- Bazı Android sürümlerinde belirli genel ana hat kliplerinin, yükseklik gölgeleriyle birlikte yoksayılması sorunu düzeltildi
- Belirli Android sürümlerinde genel bir ana hat klipsi belirtildiğinde boş kliplerin uygulanması sorunu düzeltildi.
- IME harici bir görünümde etkinken ve
ComposeView
'e odaklanmak için Sonraki işlem kullanıldığında ortaya çıkan istisna düzeltildi.clearFocus()
davranışı, API 28'den önceki sürümlerde View davranışıyla uyumludur. Bu sürümlerdeclearFocus()
, varsayılan View'un odaklanmasına neden olabilir. - Farklı düzen geçişleri için alt kompozisyonun yönetimini ayırarak
LazyList
'te yerleşimin ayrılmış düğümlerde gerçekleştiği sorun düzeltildi. - Odak
TextField
'tenEditText
'e veya başka bir Görünüm tabanlı düzenleyiciye geçtiğinde Yazılım Klavyesi'nin titremesi sorunu düzeltildi. - İç içe yerleştirilmiş kaydırma düğümleri artık ayrıldıktan sonra
onPostFling
etkinliklerini doğru şekilde gönderecek. - Genel performans iyileştirmeleri
Sürüm 1.8.0-alpha02
18 Eylül 2024
androidx.compose.ui:ui-*:1.8.0-alpha02
yayınlanır. 1.8.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Artık
TextOverflow.StartEllipsis
veTextOverflow.MiddleEllipsis
karakterlerini kullanarak tek satırlık metnin satırının başına veya ortasına üç nokta yerleştirebilirsiniz. (I38913, b/185418980)
Hata Düzeltmeleri
- Dalog
dismissOnClickoutside
'ü düzeltin (39a3d, b/364508685) - Diyalog içeriğinin gölgelerini kırpmayın (e8e2f, b/363027803)
- Odak araması Oluştur ve bir Görünüm arasında hareket ettiğinde hatalı davranışı düzeltme (58377, b/350534714)
Harici Katkı
AlignmentLines
Map
artıkVerticalAlignmentLine
veyaHorizontalAlignmentLine
somut türlerini kabul ediyor. (I02912)- Yeni ortak
ByteArray.decodeToImageBitmap(): ImageBitmap
yöntemi. (I83c21)
Sürüm 1.8.0-alpha01
4 Eylül 2024
androidx.compose.ui:ui-*:1.8.0-alpha01
yayınlanır. 1.8.0-alpha01 sürümü bu taahhütleri içerir.
1.7 sürümü
Sürüm 1.7.6
11 Aralık 2024
androidx.compose.ui:ui-*:1.7.6
yayınlanır. 1.7.6 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Önceden, odaklanma sisteminde bekleyen geçersiz kılma işlemleri olduğunda önemli bir etkinlikle karşılaştığımızda hata veriyorduk. Bunun yerine artık hata günlüğe kaydedilir (I7ea0, b/346370327).
- Deneme amaçlı ek açıklama
SemanticsPropertyReceiver.invisibleToUser()
'ten kaldırıldı. Bu özellik, 1.8'de kullanımdan kaldırılarakSemanticsPropertyReceiver.hideFromAccessibility()
ile değiştirilecek. (I448f0, b/376479686) - Belirli eski Sony cihazlarda POBox Japonca Klavyesi kullanılırken
TextField
'ün düzgün çalışmasını engelleyen sorun düzeltildi. (I94e0e, b/373743376) BasicText
öğesinin inlineContent özelliğininTalkBack
tarafından duyurulmamasına neden olan erişilebilirlik sorunu düzeltildi. (I67bcb, b/376479686)
1.7.5 sürümü
30 Ekim 2024
androidx.compose.ui:ui-*:1.7.5
yayınlanır. 1.7.5 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Özel ana hatlarla yükseklik ve kırpma işleminin düzgün şekilde oluşturulmadığı sorunlar düzeltildi.
- Genişliği sıfır olan
LinkAnnotation
ile gerçekleşen metin kilitlenmelerini düzeltir. (Ic1e2e) - Tıklanabilir bir metin bileşeni olarak oluşturulduğunda düğmenin
Talkback
bölümündeki bir duyuruyu düzeltir. (I1f588)
Sürüm 1.7.4
16 Ekim 2024
androidx.compose.ui:ui-*:1.7.4
yayınlanır. 1.7.4 sürümü bu taahhütleri içerir.
Sürüm 1.7.3
2 Ekim 2024
androidx.compose.ui:ui-*:1.7.3
yayınlanır. 1.7.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Genel bir ana hat klibi belirtmenin belirli Android sürümlerinde boş bir klip sınırına yol açmasına neden olan sorun düzeltildi.
- IME harici bir görünümde etkinken ve
ComposeView
'e odaklanmak için Sonraki işlem kullanıldığında ortaya çıkan istisna düzeltildi.clearFocus()
davranışı, API 28'den eski sürümlerde View davranışıyla uyumludur. Bu sürümlerdeclearFocus()
, varsayılan View'un odaklanmasına neden olabilir. - Önizleme geçersiz kılma işlemi için yanlış bir
placeOrder
kullanılmasına neden olan sorun düzeltildi. Bu sayede, önizleme yerleşiminin atlandığı uç bir durum düzeltildi.
1.7.2 sürümü
18 Eylül 2024
androidx.compose.ui:ui-*:1.7.2
yayınlanır. 1.7.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Ayrıntılı izleme kaldırılarak erişilebilirlik düğümü bilgileri ve anlambilim etkinliklerinin performansı iyileştirildi. (I89156, b/362530618)
ComposeView
, son derece büyük ölçüm boyutu (da5db, b/347036173) ile iletildiğinde artık kilitlenmeyecek- Düğmelerdeki
LiveRegion
duyurularının yapılmadığı bir erişilebilirlik ekran okuyucu sorunu düzeltildi. (f66fa7, b/348590026)
1.7.1 sürümü
10 Eylül 2024
- Android yapılarında değişiklik yapılmamıştır.
-desktop
yapı kaldırıldı ve-jvmStubs
ile-linuxx64Stubs
yapıları eklendi. Bu hedeflerin hiçbiri kullanılmak için tasarlanmamıştır. Bunlar, Jetbrains Compose çalışmalarına yardımcı olan yer tutuculardır.
1.7.0 sürümü
4 Eylül 2024
androidx.compose.ui:ui-*:1.7.0
yayınlanır.
1.6.0 sürümünden bu yana yapılan önemli değişiklikler
1.7.0 sürümündeki önemli değişiklikler bu blog yayınında ele alınmıştır.
Sürüm 1.7.0-rc01
21 Ağustos 2024
androidx.compose.ui:ui-*:1.7.0-rc01
yayınlanır. 1.7.0-rc01 sürümü bu taahhütleri içerir.
Önemli değişiklikler
- ui:ui modülü artık foundation:foundation modülünün minimum sürümünün en az 1.7.0-rc01 veya daha yeni bir sürüm olması koşulunu zorunlu kılıyor. Bu, 1.7.0-alpha01 sürümünün başlarında yapılan
NestedScrollSource
değişiklikleriyle ilgili olarak kullanıcı arayüzü ile temel arasındaki davranış uyumsuzluğunu gidermek için zorunlu kılınmıştır.
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.ui:ui-*:1.7.0-beta07
yayınlanır. 1.7.0-beta07 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Metin girişiyle ilgili
SemanticsNodeInteraction
işlevleriperformTextReplacement
,performTextInput
veperformTextClearance
artık salt okunurTextFields
üzerinde çağrıldığında doğrulama hataları atacaktır. (I4ae8f)
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.ui:ui-*:1.7.0-beta06
yayınlanır. 1.7.0-beta06 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.ui:ui-*:1.7.0-beta05
yayınlanır. 1.7.0-beta05 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Yazılım klavyesinin değiştirilmesinin, odak kaybedilip tekrar kazanılana kadar
TextField
'ün yeni klavyeden giriş kabul etmemesine neden olduğu bir hata düzeltildi. - Katman içeriklerinin kalıcı hale getirilmeye çalışılmasının,
SurfaceView
içeriğiyle oluşturulurken istenmeyen yan etkilere neden olduğu sorun düzeltildi.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.ui:ui-*:1.7.0-beta04
yayınlanır. 1.7.0-beta04 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Çok büyük metin satırlarını (ör.10. 000 karakter) ölçerken kilitlenmelerden kaçının (8157ab)
GraphicsLayer
API için yazılım oluşturma desteğini devre dışı bırakın. (35ddd8)- Katman kalıcılık mantığındaki kilitlenme sorunu düzeltildi. (70b13e)
- Katman nesnelerini yeniden kullanma optimizasyonu, oluşturma sorunlarına neden olduğu için geri alındı. (70b13e)
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.ui:ui-*:1.7.0-beta03
yayınlanır. 1.7.0-beta03 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-beta02
yayınlanır. 1.7.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
SemanticsProperties.Editable
,IsEditable
olarak yeniden adlandırıldı veSemanticsPropertyReceiver.editable
,isEditable
değerine değiştirildi. Özellik artık boole türüne sahip ve her zaman metin alanları tarafından belirtilir. (I8acd8)- Erişilebilirlik karşılaştırma parametresini yeniden adlandırın. (I3d440)
- Bağlantıların stilini belirlemek için API güncellendi:
TextLinkStyles
artıkLinkAnnotation
kurucusunun veAnnotatedString.fromHtml
yönteminin (I90b2b) bir parçasıdır. AyrıcaTextDefaults
, materyalden (I5477b) kaldırıldı.
Hata Düzeltmeleri
- Amacını daha iyi yansıtmak için
LayoutCoordinates.introducesFrameOfReference
,LayoutCoordinates.introducesMotionFrameOfReference
olarak yeniden adlandırıldı. İlgili işlev, bu işarete göre koordinatları hesaplayacak şekilde yeniden adlandırıldı. (I3a330)
Sürüm 1.7.0-beta01
14 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-beta01
yayınlanır. 1.7.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
performCustomAccessibilityActionLabelled
,performCustomAccessibilityActionWithLabel
olarak veperformCustomAccessibilityActionWhere
,performCustomAccessibilityActionWithLabelMatching
olarak yeniden adlandırıldı. (I5387f)AnnotatedString.hasEqualsAnnotations
adlı bankanın yeni adıhasEqualAnnotations
(I685c0)- Metinde Materyal temalı bağlantılar almak için API güncellendi. Özellikle, temalı
LinkAnnotations
oluşturmak ve temalı bağlantılarla HTML'yi ayrıştırmak içinTextDefaults
'ten yöntemler kaldırıldı. Bunun yerine, bağlantılara stil uygulamak için metin bileşenine parametre olarakTextLinkStyles
sınıfı eklendi. (I31b93)
Hata Düzeltmeleri
- Etkinlikler sırasında işaretçi giriş değiştiricileri dinamik olarak eklerken ek kullanım alanlarını düzeltir 63e1504
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-alpha08
yayınlanır. 1.7.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Değiştirilebilir şekil uygulamaları için destek eklendi.
Shape#createOutline
artık grafik katmanlarının içinde gözlemleniyor. Bu nedenle, içindeki durum değerlerini okumak durum değiştiğinde geçersizleştirmelere neden olur ve daha yüksek performanslı şekil animasyonlarına olanak tanır. (Id1629, b/326070216) isPositionedByParentWithDirectManipulation
,introducesFrameOfReference
olarak yeniden adlandırıldı. Artık bunun ters etki yarattığını unutmayın. Yani varsayılan olarak çoğuLayoutCoordinates
bir referans çerçevesi sunar ve yalnızca doğrudan müdahaleye tabi tutulduğunda mülk yanlış olur. Konum için yalnızca referans çerçevesi sunan öğelerle sorgu yapmak istiyorsanızpositionInLocalFrameOfReference(...)
değerini kullanın. VeyaLookaheadScope
'danpositionInLocalLookaheadFrameOfReference
. (Ifc5f7)LookaheadScope
API'leri kararlı hale getirildi (I21507)- API konseyi geri bildirimine göre
getScrollViewportLength
için işlem lambdasını değiştirin. (Ibc74a) GraphicsLayer
ana hatlarıyla API'ler, int yerine float parametreleri kullanacak şekilde güncellendi.UnsetOffset/UnsetSize IntSize
gözetmen değerleri, float tabanlı ofset ve boyut satır içi sınıflarında (I2fb03, b/333863462) mevcut Belirtilmemiş sabitler lehine kaldırıldı- Testler sırasında fare girişi enjekte edilirken
MouseInjectionScope.click()
,MouseInjectionScope.doubleClick()
,MouseInjectionScope.tripleClick()
,MouseInjectionScope.longClick()
artık daha evrensel olarak uygulanabilir hale getirmek için birbutton: MouseButton
parametresi kabul ediyor. Tüm yöntemler için varsayılan değerMouseButton.Primary
'tür. (I31a23, b/190493367, b/261439695) onClicked
,LinkInteractionListener
içindeonClick
olarak yeniden adlandırıldı. (Iaa35c)TextInclusionStrategy.isInside
'üisIncluded
olarak yeniden adlandırın.Paragraph/MultiParagraph#getRangeForRect()
döndürme türünü boş değer kabul etmeyen bir tür hâle getirin. (I51f26)
Hata Düzeltmeleri
reverseScrolling=true
ile kaydırılabilir kapsayıcılar için uzun ekran görüntüsü alma sorunu düzeltildi. (I7c59c)
Harici Katkı
- İç içe yerleştirilmiş
LazyLists
'lerde (ör. iç içe yerleştirilmişLazyRows
'yi oluşturan birLazyColumn
) öğelerin önceden getirilmesi için destek eklendi. Bu değişikliğin, buLazyLists
'lerde kaydırma sırasında kare atlama sayısını azaltması bekleniyor. Varsayılan uygulama, ilk 2 iç içe yerleştirilmiş öğeyi önceden almaktır ancak bu davranış yeniLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
veLazyListPrefetchStrategy#onNestedPrefetch
API'leri tarafından kontrol edilebilir. (I51952)
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.ui:ui-*:1.7.0-alpha07
yayınlanır. 1.7.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
ClickableText
desteği sonlandırıldı. Metne bağlantı eklemek için bağlantınıza karşılık gelen birLinkAnnotation
içeren birAnnotatedString
oluşturun ve buAnnotatedString
'yi Metin bileşenine iletin. (I34d4b, b/323346994)- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMargin
'ü tanıtın.BasicTextField
içinJoinOrSplit
hareketini destekleme (Ie6e13, b/325660505) FocusProperties.enter
veFocusProperties.exit
artık deneysel değil.FocusDirection.Enter
veFocusDirection.Exit
artık deneysel değil.FocusRequester.Cancel
artık deneysel değil (I461a1, b/261564106)- Artık,
Placeable.PlacementScope.withDirectManipulationPlacement
bağımsız değişkenini kullanarak çocuklarını yerleştiren üst düzenlerin belirlediği ofseti hariç tutmak için düzen koordinatlarını sorgularkenexcludeDirectManipulationOffset
bağımsız değişkenini kullanabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir düzen artık bunlarıwithDirectManipulationPlacement
(varsayılan olarak uygulanan Kaydırma gibi) kullanarak yerleştirebilir. Bu sayedeapproachLayout
tabanlı animasyonlar daha sezgisel hale gelir. Artık animasyon yaklaşımına karar verirken hangi ofsetin animasyonlu olacağını ve nelerin doğrudan uygulanacağını ayırt edebilirsiniz. (I60ec7) - Uzun ekran görüntüleri için özellik işareti kaldırıldı. (I28648, b/329128246)
LazyColumn
artık uzun ekran görüntülerinde yapışkan başlıkları doğru şekilde oluşturacaktır. (I8d239, b/329296635)NestedScroll
kaynaklarının sürükleme ve fırlatma işlemleri, artık animasyonlar (yan etki), fare tekerleği ve klavye (UserInput
) içeren bu kaynakların genişletilmiş tanımına uyum sağlamak içinUserInput
veSideEffect
ile değiştiriliyor. (I40579)ApproachLayoutModifierNode
veModifier.approachLayout
artık kararlı. Sırasıyla eskiisMeasurementApproachComplete()
veisPlacementApproachComplete()
'in yerini yeniisMeasurementApproachInProgress()
veisPlacementApproachInProgress()
aldı.- Desteği sonlandırılan
intermediateLayout
değiştirici kaldırıldı. (I3e91c) RenderNode
ve Resim gibi görüntü listesi destekli API'lerin begin/endRecording yöntemlerini yansıtacak şekilde kaydetmek içinGraphicsLayer#buildLayer
'ü yeniden adlandırın.rememberGraphicsLayer
,rememberObserver
'ten yararlanacak şekilde güncellendi. (I312c1, b/288494724, b/330758155)UrlAnnotation
desteği sonlandırıldı. Bunun yerineLinkAnnotation.Url
kullanın. Materyal temaları kullanıyorsanızTextDefaults
nesnesini kullanarak notu, Materyal temaları uygulanmış şekilde oluşturun (I8d180, b/323346545)- Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelindiğinde ve odaklanıldığında basılı durum stili seçeneğini aldı (I5f864, b/139312671)
String.parseAsHtml
,AnnotatedString.Companion.fromHtml
olarak yeniden adlandırıldı. (I43dcd)parseAsHtml
yöntemine stil bağımsız değişkenleri (linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) ve bir bağlantı etkileşimi dinleyicisi eklendi. HTML etiketli dizeyi<a>
etiketleriyle ayrıştırırken yöntem, bu tür her etiket için birLinkAnnotation.Url
oluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her ek açıklamaya iletir. (I7c977)LinkAnnotation
artık duruma dayalı stillendirme bağımsız değişkenlerini ve birLinkInteractionListener
alır. Köprü oluşturmak için bu ek açıklamayıAnnotatedString
içine ekleyin.focusedState
ve/veyahoveredState
parametrelerini ileterek, odaklanıldığında ve/veya fareyle üzerine gelindiğinde bağlantılar için görselconfiguration
öğesini tanımlayabilirsiniz. (I81ce4, b/139312671)ImeOptions.hintLocales
artık boş değer kabul etmiyor. Boş bir yerel ayar listesi göndermek istiyorsanız lütfenLocaleList.Empty
değerini kullanın. (Ic5bc4)
Hata Düzeltmeleri
- Hatalı/bozuk geçmiş giriş etkinliği verilerini sorunsuz bir şekilde işler (hatalı ofset verileri yoksayılır).
- Etkin bir işaretçi girişi etkinlik akışı sırasında bir işaretçi girişi değiştiricisi, başka bir işaretçi girişi değiştiricisinden önce dinamik olarak eklendiğinde (örneğin, fareyle üzerine gelme ve fareyle üzerine gelmeden çıkma [fare/kalem] arasında) beklenmedik işaretçi etkinliklerini düzeltir.
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.ui:ui-*:1.7.0-alpha06
yayınlanır. 1.7.0-alpha06 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Stilize dizeler için
parseAsHtml
yöntemi eklendi: HTML etiketleriyle işaretlenmiş bir dizeyiAnnotatedString
olarak dönüştürmenize olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde listeleri görüntüleyemezsiniz. (I84d3d, I30626, b/139326648) - Resmi Android API'si (
ScrollCaptureCallback
) kullanılarak Oluştur kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumlarda doğru şekilde işlenmeyebilir. Bu nedenle, şu anda varsayılan olarak devre dışıdır. Etkinleştirmek içinComposeFeatureFlag_LongScreenshotsEnabled
işaretini true olarak ayarlayın. (I2b055, b/329296471)
API Değişiklikleri
fun ClipEntry.getMetadata()
,val ClipEntry.clipMetadata
olarak değiştirilir. (I50155)ClipboardManager.getClipMetadata
veClipboardManager.hasClip
işlevleri kaldırıldı. Mevcut klip girişinin meta verilerini okumak için lütfenclipEntry.getMetadata()
simgesini kullanın. Ayrıca,ClipboardManager.getClip
sonucunun boş olup olmadığını kontrol ederek Panoya'da mevcut bir klip olup olmadığını anlayabilirsiniz. (I50498)- Artık
GraphicsLayer
nesneleriniplaceable.placeWithLayer()
işlevlerine iletebilirsiniz (I1b22f) ClipboardManager.setClip
artık panoyu temizleyebilmek için null değerini kabul ediyor. (I7d2e9)- Derleme araçları içinde uygulama ayrıntıları olarak kullanılan görünümleri gizlemeye yardımcı olmak için kaynak kimlikleri eklendi (I99531)
- Bir bitmap'in içeriğinin
GraphicsLayer
olarak oluşturulmasını desteklemek içinGraphicsLayer#toImageBitmap
askıya alma yöntemi eklendi. Bu, API düzeyi 22 ve sonraki sürümlerde (dahil) kullanılan ve tüm Android cihazların% 99'undan fazlasını destekleyen donanım hızlandırmalı bir oluşturma işlemidir. Android API düzeyi 21'de bu, yazılım oluşturmaya geri döner. (I9e114) - Android
RectF
'üComposeRect
'e dönüştürmek için yardımcı yöntem (I39925, b/325660505) - Tüm
KeyboardOptions
parametreleri artık varsayılan olarak belirtilmemiş bir değere sahiptir.KeyboardOptions.merge
yöntemi eklendi. KeyboardOptions.autoCorrect
,autoCorrectEnabled
olarak yeniden adlandırıldı ve null değerinin belirtilmediğini belirten null olarak ayarlandı. (Ia8ba0, b/295951492)BasicTextField(state)
varyantı veBasicSecureTextField
, yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için artıkKeyboardActions
yerineKeyboardActionHandler
kullanıyor. (I58dda)
Sürüm 1.7.0-alpha05
20 Mart 2024
androidx.compose.ui:ui-*:1.7.0-alpha05
yayınlanır. 1.7.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Görüntü listesindeki çizim komutlarını ve görüntü listesinin oluşturulmasını etkileyen ek özellikleri kaydetmek için yeni
GraphicsLayer
API'yi kullanıma sunuyoruz. Bu, karmaşık bir sahneyi, sahnenin tamamı yeniden oluşturulmadan birbirinden ayrı olarak güncellenebilen daha küçük parçalara bölmek için bir yalıtım sınırı sağlar.GraphicsLayer
öğesinde yapılan dönüşümler, görüntüleme listesi yeniden kaydedilmeden yapılabilir.Modifier.graphicsLayer
'ün aksineGraphicsLayer
, Composable içeriğin başka bir yerde oluşturulmasına olanak tanır ve içeriğin farklı sahnelerde oluşturulmasının beklendiği animasyonlu kullanım alanlarında yararlıdır.
API Değişiklikleri
GraphicsLayer.draw(Canvas)
artık herkese açık bir API değildir. Katmanı çizmek için lütfen bunun yerineDrawScope.drawLayer(GraphicsLayer)
uzantı işlevini kullanın. (I7a7c0)restrictedConstraints()
'ü iki yönteme bölün:fitPrioritizingWidth()
vefitPrioritizingHeight()
(I6d7fd)- Android L kullanımı için
HardwareCanvas
stub'ı kullanıma sunuldu (I1c3b5, b/288494724) GraphicsContext
kompozisyonunu yerel olarak göstermek için Compose çerçevesini güncelleyin. Ayrıca, sahip,DelegateableNode
vedrawWithCache
değiştirici uygulamalarını güncelleyerek, değiştiriciler kaldırıldığındaGraphicsLayer
örneklerini otomatik olarak temizleyecek kapsamlı erişim içinGraphicsContext
erişimini gösterin. (I64a2f, b/288494724)- Alt düzey IME ile ilgili testler ve diğer alt düzey IME kullanım alanları yazmaya yardımcı olmak için
InterceptPlatformTextInput
kullanıma sunuldu.PlatformTextInputTestOverride
desteği sonlandırıldı. (I862ed, b/322680547) GraphicsLayer.setOutline(Outline)
uzantı işlevi eklendi. (Ib81f4)GraphicsLayer
örnekleri oluşturmak için bir fabrika oluşturmak üzereGraphicsContext
işlev kurucusunu tanıtın (Ib98d6, b/288494724)- Başka bir yerde çizim yapmak ve sonuca farklı görsel efektler uygulamak için kullanılabilecek çizim komutlarını yakalamada geliştirici tarafından tanımlanan esneklik sağlamak amacıyla
GraphicsLayer
API'yi kullanıma sundu. (I80245, b/288494724) - Belirli bir dikdörtgen alanla kaplı bir metin aralığını döndüren
Paragraph#getRangeForRect
işlevini tanıtın. (Iee516, b/325660505) BasicText
içinonLinkClicked
bağımsız değişkeni ile deneysel geçersiz kılma kaldırıldı. Gelecekte köprü desteği için yeni bir API kullanıma sunulacaktır. (I107d5)
Hata Düzeltmeleri
- İsteğe bağlı görsel efektler ve dönüştürmelerle çizim komutlarının yakalanmasını ve yeniden oynatılmasını desteklemek için
GraphicsLayer
expect/actual API tanımı eklendi.GraphicsLayer
örneklerini oluşturma ve yönetme dahil olmak üzere grafik bağımlılıklarını içerecekGraphicsContext
arayüzünü kullanıma sunun. (I4a8d6, b/288494724) - Odak diğer görünümler arasına yerleştirilmiş bir
ComposeView
içinde takıldığı 1D odak aramayla ilgili birlikte çalışabilirlik sorunu düzeltildi. (I08fd4)
Harici Katkı
LocalLifecycleOwner
, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzünün dışında kullanılabilmesi için Compose kullanıcı arayüzündenlifecycle-runtime-compose
'e taşındı. Katkıda bulunduğunuz için teşekkürler Jake Wharton. (I6c41b, b/328263448)- Yanlış hizalamaya dayalı tüm alt türlerde tutarlı bir şekilde bias float özelliklerini gösterin. (I69f0f, b/328088992)
Sürüm 1.7.0-alpha04
6 Mart 2024
androidx.compose.ui:ui-*:1.7.0-alpha04
yayınlanır. 1.7.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Android U'dan sonraki cihazlarda BasicTextField2 için ekran kalemiyle el yazısı özelliğini destekleyin. (I002e4)
- Bu CL'de, oluşturma işleminde kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için
GetScrollViewportLength
semantik işlemini ekliyoruz. Bu CL, söz konusu mülkün Temel Kaydırılabilir Listeler'de kullanımını da kapsar. (Ic5fa2) FocusRequester.createRefs
artık kararlı (I4d92c, b/261436820)- Değiştirici düğümlerin yerel bir kompozisyon okumadan mevcut Android
View
'i almasına izin vermek içinDelegatableNode.requireView()
kullanıma sunuldu. (I40768) - Bir yolun yönünü tersine çevirmek için yeni API
Path.reverse()
(I36348) TextFields
'ye, tercih edilen dili önceden ayarlamak için IME'lere belirli yerel ayarlar ile ipucu verme olanağı sağlamak amacıylahintLocales
,KeyboardOptions
'e eklendi.- Temel platform nesnesini (ör.
java.util.Locale
) döndürenLocale
kaynağındanplatformLocale
mülkünü gösterin. (I921c6)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.ui:ui-*:1.7.0-alpha03
yayınlanır. 1.7.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- MaxLines ve Overflow özellikleriyle
ContextualFlowRow
ve GelişmişFlowRow
/Column
ile tanışın. DeneyselFlowRow
veFlowColumn
'te yapılan iyileştirmeleri veContextualFlowRow
ileContextualFlowColumn
'ın kullanıma sunulduğunu duyurmaktan mutluluk duyuyoruz. Bu iyileştirmeler sayesinde artık maxLines ve overflow desteğinden yararlanabilirsiniz. Bu güncelleme, performans açısından en uygun bileşenleri sunmak için tasarlanmıştır.ContextualFlow*
, küçük birmaxLines
yapılandırması ve dinamik +N daha fazla göster düğmelerini kullanan çok sayıda öğe için mükemmeldir.FlowRow
veFlowColumn
ise 100'den az öğe içeren küçük bir grup öğe için mükemmeldir. Önemli: Çapraz eksen maksimum değerine sığmalarından bağımsız olarak tüm öğelerin oluşturulduğuFlowRow
veyaFlowColumn
'teki mevcut davranışı korumak için başlatma sırasındaoverflow
'yiFlowRowOverflow.Visible
veyaFlowColumnOverflow.Visible
olarak ayarlayın. Bu yeni özelliklerin kullanım örneklerini görmek içinContextualFlowRowSample
veFlowRowSample
sayfalarını inceleyin. (Ib9135, b/293577082) - İzin verilen maksimum karakter sayısını filtreleyen metin alanlarında ayarlanması gereken
maxTextLength
semantik özelliğini ekleyin. (I24d9f, b/170648072) Modifier.inspectable
sarmalayıcısının desteği sonlandırıldı. Bu API, değiştiricinizin gerekli olandan daha fazla geçersiz kılınmasına neden olacağından artık kullanılması önerilmez. Geliştiricilerin, değiştirici özelliklerini araca göstermek istiyorsaModifierNodeElement
üzerindeinspectableProperties()
yöntemini uygulamaları önerilir. (Ib3236)WindowManager.LayoutParams
işaretleri üzerinde tam kontrol sağlayanPopupProperties
için yeni oluşturucu. (Ibb33e, b/312485503)onPlaced
'ı geçersiz kılma ve koordinatları bir mülkte kendiniz depolamanıza gerek kalmadanModifier.Node
'nin mevcutLayoutCoordinates
değerini almak içinDelegatableNode.requireLayoutCoordinates()
kullanıma sunuldu. (Ia8657)onPlaced
'ı geçersiz kılma ve koordinatları bir mülkte kendiniz depolamanıza gerek kalmadanModifier.Node
'nin mevcutLayoutCoordinates
değerini almak içinDelegatableNode.currentLayoutCoordinates
kullanıma sunuldu. (Iaebaa)BasicTextField2
veandroidx.compose.foundation.text2
paketindeki ilgili API'lerandroidx.compose.foundation.text
'e taşınır. (I9f635)- Belirli bir değiştirici düğümünde özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir
ApproachLayoutModifierNode
API eklendi. Ayrıca, oluşturulurken hedefi bilinmeyen animasyonlar için yeni bir deneyselDeferredTargetAnimation
API eklendi. (I60745) - Bir yolun yönünü sorgulamak ve
Path
'den konturlar ayıklamak için yeniPath
API'leri. (I63d04) - Bir
Path
öğesinin belirli bir noktayı içerip içermediğini kontrol etmek içinPathHitTest
vePath.contains(Offset)
eklendi. (I3b218) TextLayoutResult
artıkgetLineBaseline(lineIndex)
yöntemini gösteriyor. Bu sayede, mevcut kolaylık özelliklerifirstBaseline
velastBaseline
'a ek olarak metnin rastgele bir satırının taban çizgisini okuyabilirsiniz. (Ide4e8, b/237428541)- Yalnızca iki
AnnotatedStrings
notunu karşılaştırmak için yöntem eklendi. (I32659)
Hata Düzeltmeleri
SemanticsPropertyReceiver.performImeAction
veSemanticsActions.PerformImeAction
ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Id0528, b/322269946)
Sürüm 1.7.0-alpha02
7 Şubat 2024
androidx.compose.ui:ui-*:1.7.0-alpha02
yayınlanır. 1.7.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
SemanticsPropertyReceiver.performImeAction
ile ilgili bir ikili uyumluluk sorunu düzeltildi. (I65865, b/322269946)usePlatformDefaultWidth
parametresi alanPopupProperties
kurucusu artık deneysel değildir. (I8f8d2)- Zaman aşımı mesajına dahil edilecek koşulun dize açıklamasını alan
ComposeTestRule.waitUntil
aşırı yüklemesi eklendi. (I9413e) - Aynı değiştirici zincirine eklenen anlambilim özelliklerini kaldırmak için yeni anlambilim API'si
unset()
. Yeni anlam bilimi mülküisOpaque
. (I8c583, b/317966058, b/246056649) originalEventPosition
,PointerInputChange
'un herkese açık API'sindeki copy yönteminden kaldırıldı. (I7bead)
Hata Düzeltmeleri
- Sekme ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanabilir olmasına neden olan bir erişilebilirlik hatası düzeltildi. (I2181c)
VelocityTracker
artık varsayılan olarak puan eklemeyle ilgili düzeltmeye sahip olacak. Sorun varsaVelocityTrackerAddPointsFix
değerini false olarak ayarlayarak düzeltmeyi devre dışı bırakabilirsiniz. (Ib3877, b/269487059)TextStyle
veParagraphStyle
'te geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)
Harici Katkı
- Platforma özgü parametreler içermeyen yeni bir
DialogProperties
kurucu eklendi. (I45829) - Platforma özgü parametreler içermeyen yeni bir
PopupProperties
kurucu eklendi. (I9a038)
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.ui:ui-*:1.7.0-alpha01
yayınlanır. 1.7.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Resim gibi rastgele içerikleri desteklemek için
ClipEntry
veClipMetadata
eklenerekClipboardManager
genişletildi. - Test edilen içeriğin davranışının yerel olarak geçersiz kılınmasına (ör. kullanılabilir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema belirtme) izin vermek için
DeviceConfigurationOverride
API'yiui-test
'a ekler.
1.6 sürümü
1.6.8 sürümü
12 Haziran 2024
androidx.compose.ui:ui-*:1.6.8
yayınlanır. 1.6.8 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Yazı tipi ölçeği, tanımlanan en düşük tablodan daha düşük olduğunda yazı tipi ölçeklendirmesinde yaşanan tutarsızlıklar düzeltildi. Bu durumda, artık doğrusal 1x ölçek ile tanımlanan en düşük tablo arasında ara değer alıyoruz. Böylece, ölçekler arttıkça yazı tipi boyutu monoton bir şekilde artar. (Icbae3)
1.6.7 sürümü
1 Mayıs 2024
androidx.compose.ui:ui-*:1.6.7
yayınlanır. 1.6.7 sürümü bu taahhütleri içerir.
1.6.6 sürümü
17 Nisan 2024
androidx.compose.ui:ui-*:1.6.6
yayınlanır. 1.6.6 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Nadir görülen bir
BasicTextField
kilitlenmesi düzeltildi.
1.6.5 sürümü
3 Nisan 2024
androidx.compose.ui:ui-*:1.6.5
yayınlanır. 1.6.5 sürümü bu taahhütleri içerir.
1.6.4 sürümü
20 Mart 2024
androidx.compose.ui:ui-*:1.6.4
yayınlanır. 1.6.4 sürümü bu taahhütleri içerir.
Sürüm 1.6.3
6 Mart 2024
androidx.compose.ui:ui-*:1.6.3
yayınlanır. 1.6.3 sürümü bu taahhütleri içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.ui:ui-*:1.6.2
yayınlanır. 1.6.2 sürümü bu taahhütleri içerir.
1.6.1 sürümü
7 Şubat 2024
androidx.compose.ui:ui-*:1.6.1
yayınlanır. 1.6.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
SemanticsPropertyReceiver.performImeAction
veSemanticsActions.PerformImeAction
ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Ie0bb2, b/322269946)- Düzenler artık anormal derecede büyük bir boyut döndürüldüğünde ölçüm sırasında hata veriyor. Bu tür hatalar genellikle ölçüm,
Constraints.Infinity
olup olmadığını kontrol etmeden doğrudan maksimum kısıtlamaları kullandığında ortaya çıkar. Bu kontrol, geliştiricilerin yanlış boyutu içeren bir düzen yerine yanlış boyuta sahip düzenle ilgili sorunları bulmalarına yardımcı olur. (I339a9)
1.6.0 sürümü
24 Ocak 2024
androidx.compose.ui:ui-*:1.6.0
yayınlanır. 1.6.0 sürümü bu taahhütleri içerir.
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.ui:ui-*:1.6.0-rc01
yayınlanır. 1.6.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Ek yeniden oluşturma işlemlerini en aza indirerek performansı artırmak için optimize edilmiş vektör grafik uygulaması.
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.ui:ui-*:1.6.0-beta03
yayınlanır. 1.6.0-beta03 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Artık düğüm ayrılmış olmadan
LayoutCoordinates
'ün ayrılması mümkün. Oluşturma işleminde Layout Inspector'da (If693) buna karşı önlem alın.
Hata Düzeltmeleri
PlatformImeOptions
artık arayüz yerine somut bir sınıftır. (If40a4)- Kök her yeniden derlendiğinde
LocalSoftwareKeyboardController
veLocalTextInputService
'ye yeni değerler sağlanmasından kaynaklanan ek yayın yeniden derlemeleri düzeltildi. (I42190, b/310510985)
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta02
yayınlanır. 1.6.0-beta02 sürümü bu taahhütleri içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta01
yayınlanır. 1.6.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
DragAndDropTarget
değiştiricisi artık alıcıDragAndDropTarget
'yi açıkça alır ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda içerir. ArtıkDragAndDropModifierNode
için iki fabrika işlevi vardır. Biri aktarım almak, diğeri veri aktarmak için (I69481)maximumFlingVelocity
, kayan nokta olarak gösterilecek şekilde güncellendi.maximumFlingVelocity
birimi hakkında daha net bilgi vermesi için dokümanlar güncellendi. (I8adc7)DragAndDropModifierNode
fabrikasındakionDragAndDropStart
,acceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumundan kabul etmek 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ükle ve bırak etkinliklerini işlemek için kullanılan diğer lambdalar bununla değiştirildi. Sürükle ve bırak oturumlarından veri almak için birDragAndDropTarget
fabrika işlevi eklendi (Iebf3a)DragAndDropInfo
türü kaldırıldı.DragAndDropModifierNode.drag
artıktransferData
, dekorasyon boyutu ve sürükle dekorasyonDrawScope
lambda parametrelerini alıyorDragAndDropTarget
, tek bir soyut yöntem yerine belirli sürükle ve bırak etkinlikleri için yöntemlere sahiptirBir
DragAndDropModifierNode
için fabrika işlevindekionDragAndDropEvent
, sağlananDragAndDropTarget
'ın yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi ifade etmek amacıylaonDragAndDropStart
olarak yeniden adlandırıldıDragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
,establishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)Gezilebilir düğüm API adlarını daha anlaşılır hale getirmek için iyileştirir. (Ia4474)
OriginalText
yerineTextSubstitution
yazın. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
,runTextInputSession
olarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere tutulan
SubcomposeLayout
öğelerinin (ve bu öğeye dayalıLazyColumn
gibi düzenlerin) devre dışı olduğu kabul edilir. Bu tür düğümleri test etmek için yeniassertIsDeactivated()
test API'si kullanıma sunulmuştur. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)FocusDirection.In
veFocusDirection.Out
kaldırıldı, bunun yerineFocusDirection.Enter
veFocusDirection.Exit
kullanılıyor (I2f660)Material
SwipeToReveal
API'leri (kartlar ve çipler için), bu yuvaları oluşturmak üzere artık veri sınıfına dayalı örnekler yerine yuva tabanlı bir API'den (Compose tarafından önerilen) yararlanıyor. Bu, önemli bir değişikliktir. Yeni API'nin nasıl kullanılacağına ilişkin örnekler için lütfen demoya ve örnek koda bakın. (Ia8943)FontStyle(int)
kurucusunun desteği sonlandırıldı. Bunun yerineFontStyle.Normal
veyaFontStyle.Italic
kullanın. (I66610)FontScalable
arayüzüFontScaling
olarak yeniden adlandırıldı (Ie804a)
Hata Düzeltmeleri
SoftwareKeyboardController.show()
, metin düzenleyiciye odaklanılmadığında artık yazılım klavyesini göstermez. (I2165a, b/301477279)- Aynı Oluşturma Görünümü'nde Aşağı etkinliği almayan anahtarların donanım anahtarı Yukarı etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
ArcLine
'te Kaydırma Gradyanı için oluşturma desteği eklendi. (I4d5bb)PageSize.Fixed
için equals ve hashcode işlevlerini uygulayın. (Ie3ede, b/300134276)- Pencere içe yerleştirilmesi değişikliğiyle ilgili ikili uyumluluk sorunu düzeltildi (Iee695)
- Mikro karşılaştırmalar, bu katman olmadan daha iyi performans gösterdiğinden Material3 çipi/düğmesi için materyal çekirdek katmanını kaldırın. (I55555)
- Test oluşturmak için
effectContext
olarak iletilenTestDispatcher
'ler artık test ve çerçeveli saatler oluşturmak için kullanılacak. (Ia7178)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha08
yayınlanır. 1.6.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
Modifier.dragAndDrawSource
içinonDrawDragShadow
lambdadrawDragDecoration
olarak,DragAndDropInfo
için boyut parametresi isedragDecorationSize
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
SemanticsNodeInteraction.isDisplayed()
veSemanticsNodeInteraction.isNotDisplayed()
öğelerini kullanın. (I2c196, b/302100809) ParagraphTextStyle
'dekiTextAlign
,TextDirection
,Hyphens
veLineBreak
alanları içinnull
yerine özel birUnspecified
değeri kullanıma sunuldu. Bu sınıflar satır içi sınıflar olduğundan, nullable değerini Unspecified ile değiştirerek ilkel tür kutulamasını önleriz.TextStyle
ve paragraf stilindeki kurucular, alıcı yöntemler 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ükleme işlevi ekleyin. (If8f59) LoremIpsum
PreviewParameterProvider
sınıfını herkese açık hale getirdi. (I41bf5, b/266918816, b/300116360)
Hata Düzeltmeleri
FontFamilyResolver
artık önbellek yönetimi iş parçacığı içinDispatchers.Main
kullanıyor. (Ie8dd9)AndroidViewBinding
artıkcommitNow
'i (daha önce kullandığıcommit
yerine) kullanarakonRelease
'ının bir parçası olarak düzeninize birFragmentContainerView
ekleyerek şişirilmişFragment
örneklerini senkronize olarak kaldırıyor. Böylece, Live Edit'in değişikliklerden sonra kompozisyonu değiştirme yöntemiyle ilgili sorunları düzeltiyor. (I58fbf)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha07
yayınlanır. 1.6.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Özel metin düzenleyiciler için test yazmak üzere
PlatformTextInputMethodTestOverride
kullanıma sunuldu. (Id159b) - Sürükle ve bırak oturumlarını başlatmak için
dragAndDropSource
değiştiriciyi ve sürükle ve bırak oturumlarından veri almak içindragAndDropTarget
değiştiriciyi ekler. (Ib7828, b/286038936) - Ayırma işlemlerini önleyen
ColorList
veColorSet
koleksiyonları eklendi. (I744bd) - Doğrusal olmayan yazı tipi ölçeklendirmesini devre dışı bırakmak için
DisableNonLinearFontScalingInCompose
geçici işareti eklendi. Testlerinizi temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = true
değerini ayarlayın. Bu işaret, Oluştur 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)
Hata Düzeltmeleri
- Optimize edilmiş XML vektör çizilebilir öğe ayrıştırma. (Ibb015)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha06
yayınlanır. 1.6.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Materyal simgelerinde ek optimizasyonlar. (I3e08d)
- Benzer düğümleri bulmak için değiştirici ağacında yukarı/aşağı gezinme olanağı ekler. (I2d234)
focusRestorer()
değiştiriciyeonRestoreFailed()
geri çağırma işlevi eklendi (Ie1d43)ColorInt
,FloatRange
,IntRange
,Size
ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (Id65c8, b/290950582)showSystemUi=true
'üPreviewScreenSizes
tanımına ekleme (Ib61d3)
Davranış Değişiklikleri
- Oluşturma özelliği artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirmesi kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'ün üzerinde olduğunda küçük metinler normal şekilde büyür ancak zaten büyük olan metinler yalnızca biraz büyür. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yükseklikle orantılı olacak şekilde 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ınlanır. 1.6.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
AndroidComposeViewAccessibilityDelegateCompat
'te içerik yakalamayı etkinleştirin. (Ib2969)ScrollView
veRecyclerView
gibi Görünüm bileşenlerindeki fırlatma hızlarıViewConfiguration.ScaledMaximumFlingVelocity
ile sınırlıdır. Oluştur artıkmaximumFlingVelocity
için kendi sürümünü içerir ve bu sürümDraggable
için geçerlidir. (Ibf974)- Platform sürükle ve bırak API'lerini desteklemek için ilk iskeleti ekler. (If84ce)
deviceId
'üRotaryScrollEvent
'a ekleyin (Iba3bf)ui-tooling
Devices API, 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ınlanır. 1.6.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
ReusableComposition
'ü devre dışı bırakmak için gözlemleri kaldıran ancak düğümleri yerinde tutan bir yöntem eklendi. Devre dışı bırakılan kompozisyon,setContent
numarası aranarak tekrar etkinleştirilebilir. (Ib7f31)- Alt kompozisyonların yaşam döngüsünü ve yeniden kullanımını yönetmek için
ReusableComposition
arayüzü ekleyin. (I812d1, b/252846775) Modifier.focusGroup
, kararlı API'ler arasına alındı. (I7ffa3)ColorInt
,FloatRange
,IntRange
,Size
ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (I70487, b/290950582)ColorFilter
API, parametrelerin daha iyi incelenebilmesi 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 sunma (Ib036e)
- Yoğunluk arayüzünün yazı tipi ölçeklendirme bölümünü işlemek için
FontScalable
arayüzünü oluşturdu. (I2cf3f)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha03
yayınlanır. 1.6.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Giriş ve çıkış animasyonu sırasında içeriği animasyonlu kapsayıcının boyutuna göre ölçeklendiren yeni giriş/çıkış geçişi türü.
LookaheadScope
Kompozit eğlence ve arayüz artık kararlı. (Ifb2ce) privateImeOptions
(Idb772) yapılandırması için destek eklendi
Hata Düzeltmeleri
PopupPositionProvider.calculatePosition
, hesaplamada okunan durum değiştiğinde pop-up'ın konumunu otomatik olarak güncelleyecektir. (I676a1, b/292257547)readOnly
doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca,readOnly
odaklanıldığında true değerinden false değerine değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)- Kullanıcı arayüzü testinde genel iddiaların kapsamı genişletildi. (I1f90d)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.ui:ui-*:1.6.0-alpha02
yayınlanır. 1.6.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kompozit oluşturma uygulayıcıları tarafından uygulanabilecek bir hizmet bulucu arayüzü eklendi. Bu arayüz, başka bir kompozit oluşturma temsilcisine yetki veren kompozit oluşturma uygulamalarının orijinal kompozit oluşturma için arama yapmasına olanak tanır. Bu işlev doğrudan çağrılmamalıdır ve çalışma zamanında, kullanıcı arayüzü modülü gibi, derleyicinin sarmalanmış sürümlerinde bulunabilen deneysel API'lerin oluşturulmasını sağlamak için kullanılır. (I296b9)
- Tamamen yeniden tasarlanmış
PlatformTextInput*
API. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardController
veLocalSoftwareKeyboardController
artık deneysel değil.LocalSoftwareKeyboardController
artık uygun birCompositionLocal
. (I4c364)LookaheadLayout
veLookaheadLayoutScope
, birkaç sürümdür desteği sonlandırılmış olup artık kaldırılmıştır. Değişim API'leri, herhangi bir düzenle çalışabilenLookaheadScope
'tür. (I12ac3)- Testlerde odaklanmayı istemenin daha kolay ve bulunabilir bir yolu olarak
SemanticsNodeInteraction.requestFocus
eklendi. (Ie8722) - Gelecekte test çerçeveleri tarafından kullanılmak üzere genel iddiaları kaydetmek için deneysel API'ler ekleyin. (I12d77)
Hata Düzeltmeleri
AndroidView
'ınupdate
geri çağırma işlevinin ilk çağrısı artıkAndroidView
'ı tanıtan kompozisyon uygulandığında çalıştırılmak yerine görünüm eklenene kadar erteleniyor. Bu, okuduğu bir durum bir efekt tarafından hemen değiştirilirseupdate
geri çağırma işlevinin geçersiz kılınmadığı 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ınlanır. 1.6.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
LazyList
'te ileriye dönük aramayı destekleyin. Bu sayede, önizleme geçişindekiLazyList
, tüm animasyonlara (ör.öğe yerleşimi animasyonu,AnimatedVisibility
vb.) atlayabilir ve tüm alt öğeler için önizleme boyutunu ve konumunu hesaplayabilir. Önizleme geçişinden sonraLazyList
'ün alt öğeleri, önizleme geçişinde görüldüğü gibi gerçeklikten bağımsız olarak animasyon oluşturabilir.
Davranış Değişikliği: includeFontPadding artık Oluştur'da varsayılan olarak false değerine sahip
includeFontPadding
, Oluştur'da varsayılan olarak yanlış (21d806) olarak ayarlandı.
includeFontPadding
, metin taban çizgilerinin üzerine veya altına sarkabilecek tüm karakterleri barındırmak için metnin ilk satırının ve son satırının üstüne ek dolgu eklenip eklenmeyeceğini kontrol eden eski bir özelliktir.
Bu Oluştur sürümünü güncellemek, görüntülediğiniz her metnin ilk satırının ve son satırının üstündeki fazladan dolguyu kaldırarak tüm metinlerin kullanıcı arayüzünüzde nasıl oluşturulacağını değiştirir.
Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak, değişiklikler minimum düzeyde olacaktır. Ancak aşağıdaki gibi engellerle karşılaşabilirsiniz: - Bozuk ekran görüntüsü testleri. Gerekirse kullanıcı arayüzünü düzeltin ve altın resimleri yeniden oluşturun. - Metin biraz yanlış hizalanmış. Özel negatif dolguları kaldırın veya gerekirse dolgu ekleyin.
Her metin için PlatformTextStyle
kullanarak includeFontPadding
'ü etkinleştirebilirsiniz:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
Material stillerinizi yapılandırarak tüm metinlerinizde includeFontPadding
'ü etkinleştirebilirsiniz. Parametre adlarının M2 ve M3 arasında farklılık göstereceğini unutmayın.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
Oluştur includeFontPadding
hakkında daha fazla bilgiyi geliştirici dokümanlarında ve bu blog yayınında bulabilirsiniz.
Bu değişiklikle ilgili sorun/hata yaşarsanız sorun izleyiciyi kullanarak hata kaydı oluşturun.
API Değişiklikleri
InputConnection#requestCursorUpdates
kanalını destekleyin (I0c69b)FocusRequester.saveFocusedChild
veFocusRequester.restoreFocusedChild
eklendi (Ic557e, b/272302679, b/275157318)- Bitmap öğeleri yüklenmeye çalışırken, yüklenemeyen öğe yolunun açıklamasıyla birlikte atılan throwables'ı sarmalamak için
ResourceResolutionException
türünü ekleyin. (I19f44, b/230166331, b/278424788) - Performans ve bellek atamalarına göre optimize edilmiş erişilebilirlik. (Iede48)
- Metin çevirisini desteklemek için anlambilim özellikleri ve işlemleri eklendi. (I4a6bc)
- Geçerli ölçüm geçişinin ileriye dönük bir geçiş olup olmadığını belirtmek için
IntrinsincMeasureScope
ve uygulamalarında (ör.MeasureScope
) yeni mülk. (I7a812) - Oluşturma işlemini alternatif yoğunluk/düzen yönüne ve boyuta sahip farklı bir kanvasla yeniden hedefleme özelliğini sunmak için
DrawScope
API'si güncellendi. DrawContext
, yoğunluk ve düzen yönünün yapılandırılmasını desteklemek ve kanvası yapılandırılabilir hale getirmek için güncellendi. (Ie1f9b, b/225408150)- Karakter sınırlayıcı kutularını hesaplamak için
Paragraph#fillBoundingBoxes
eklendi. (If30ee) - Ortak
MultiPreviews
(Ia5a27) grubu eklendi
Hata Düzeltmeleri
- Özel
FocusTarget
oluşturmak için kullanılabilecekFocusTargetModifierNode
arayüzü eklendi. (I9790e) TextMeasurer
oluşturucudakifallback*
parametreleridefault*
olarak yeniden adlandırıldı. (I940a5)SemanticsPropertyReceiver.performImeAction
,onImeAction
olarak veSemanticsActions.PerformImeAction
,OnImeAction
olarak yeniden adlandırıldı. (I8e841)- İç içe kaydırmada (özellikle
NestedScrollConnection
içinde) fare kaydırma ile sürüklemeyi ayırt etmek için tekerlek ekler. (Ie57e4) - Döndürülen nesne orijinal
android.graphics.Paint
'yi sarmaladığındantoComposePaint
yerineasComposePaint
API eklendi (I22b4c) SemanticsProperties.imeAction
'ü kullanımdan kaldırın veSemanticsActions.performImeAction
ile yeni bir parametreyle değiştirin. (I4a587)- Fareyle seçim desteği eklendi. Dokunma tabanlı seçim, kelimeye göre genişler ve karaktere göre küçülür. (Ic0c6c, b/180639271)
- Ekranın dışına çıkan ofsetler için
AssertionError
atan eskiParagraph
yöntemleri,MultiParagraph
gibi artıkIllegalArgumentException
atıyor. (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ınlanır. 1.5.4 sürümü bu taahhütleri içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.ui:ui-*:1.5.3
yayınlanır. 1.5.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- (b/301209788)
TextField
, bazen Korece girişe odaklanıp giriş yaparken önceki komutları yanlış uygulayarak karakterlerin kaybolmasına neden oluyordu.
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.ui:ui-*:1.5.2
yayınlanır. 1.5.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Erişilebilirlik kaydırma API'sine arka plan iş parçacığında erişildiğinde kilitlenmeler için geçici çözüm eklendi.
- Bağlantısız düğümlerin semantik ağacına eklenmesini düzeltin.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.ui:ui-*:1.5.1
yayınlanır. 1.5.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
readOnly
doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca,readOnly
odaklanıldığında true değerinden false değerine değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)
1.5.0 sürümü
9 Ağustos 2023
androidx.compose.ui:ui-*:1.5.0
yayınlanır. 1.5.0 sürümü bu taahhütleri içerir.
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.ui:ui-*:1.5.0-rc01
yayınlanır. 1.5.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
SubcomposeLayout
,movableContentOf()
içinde kullanıldığında kilitlenme sorunu düzeltildi.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta03
yayınlanır. 1.5.0-beta03 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Özel 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 olabilecek iletişim kutusu ve pop-up bileşenleriyle 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ınlanır. 1.5.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
android.graphics.Paint
örneğinin Compose'da kullanılmasını sağlamak içinasComposePaint
API eklendi
Hata Düzeltmeleri
- Döndürülen nesne orijinal
android.graphics.Paint
'yi sarmaladığındantoComposePaint
yerineasComposePaint
API eklendi (I22b4c)
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-beta01
yayınlanır. 1.5.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Yeniden oluşturma, renk animasyonlarında ve
AndroidComposeView
(Ib2bfa) öğesinde ayrıştırmalar kaldırıldı - Yetkilendirmeye izin vermek için yardımcı işlev
CacheDrawModifierNode()
ekler (Icf8f9) - Önizleme sonuçlarını gözlemlemek ve isterseniz ana geçişi etkilemek için
MeasureScope
adresinden erişilebilenisLookingAhead
mülkünü kullanıma sunuyoruz. (Ibf4c3) - Yeni anlambilim mülkü
traversalIndex
,TalkBack
traversal'da (düşük değerler önce gelir) düğümleri yeniden sıralamak için kullanılan kayan bir sayı. (I9a81b, b/186443263) isContainer
olan semantik mülkünün adınıisTraversalGroup
olarak değiştirme (I121f6)ColorProducer
artıkproduce
yerineoperator fun invoke
kullanıyor (I4a9a2)- Yol nesnelerine kaydırma/ölçek/döndürme dönüşümleri uygulamak için
Path
transform API'yi ekleyin. (I23434, b/233772232) ColorProducer
adlı kullanıcının yöntemiproduce
olarak adlandırılır. (I78bde)toFrameworkColorSpace
'ütoAndroidColorSpace
olarak yeniden adlandırın (I4f547)ColorLambda
'üColorProducer
olarak yeniden adlandırın. (I73b1a)- Android ve Compose renk alanı türleri arasında dönüştürme yapmak için API'ler kullanıma sunuldu. (Ie7db4, b/279979665)
- Metin rengini verimli bir şekilde animasyonlu hale getirmek veya ayarlamak için
BasicText
parametresine bir renk parametresi eklendi. (Iffd88, b/246961787) TextRange.constrain
,TextRange.coerceIn
olarak yeniden adlandırıldı. (I31be2)- Tam parametre listesi içeren optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
gibi birçok metin API'si sabitlendi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği sonlandırılmadı. Aslında bu alanı kaldırmayı planlıyorduk ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, kullanımdan kaldırılma durumu alandan kaldırılıyor (I98e96, b/277703184)- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) AnnotatedString
'lardakiUrlAnnotation
'ler artıkTalkBack
gibi erişilebilirlik hizmetleri aracılığıyla açılabilir. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) LineHeightStyle.Alignment(topRatio)
kurucusu, kararlı API'ye yükseltildi. (I79c32, b/261565383)TextMeasurer
ve ilgili API'ler artık deneysel değildir. (I74647, b/261581753)- Metin düzenleyici düğümlerinde IME işlemini çağırmak için
PerformImeAction
semantik işlemi eklendi. (Ic606f, b/269633506) PlatformTextInput
API'ler artık Android için deneysel değildir. (I668eb)Enum.valueOf
için value parametre adı değiştirildi (Ia9b89)- enum valueOf (I818fe) tarafından daha fazla istisna atıldı
- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni düşük düzey
PlatformTextInputAdapter
API kullanıma sunuldu. (I58df4) - Canvas'ta metin çizerken farklı karışım algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508) Font.MaximumAsyncTimeout
'üFont.MaximumAsyncTimeoutMillis
olarak yeniden adlandırın. Yalnızca yeniden adlandırma. (I07af5)@Preview
referans cihazlarının DPI değerleri güncellendi (Id6151, b/254528382)- Metin fırçasını verimli bir şekilde animasyonlu hale getirmek veya ayarlamak için
BasicText
parametresinebrush
,alpha
parametreleri ekleyin. - :ui:ui-unit (I6f18d, b/246961787) içinde Float, Double, Long, Int, Short için kutusuz lambda türleri tanımlama
Hata Düzeltmeleri
- İşaretçi hızı izlemede birden çok ayırma kaldırıldı (I26bae)
- Düzenleme ve işaretçi girişi yönetiminde azaltılmış tahsisler (I5333a)
- Vektör bellek kullanımını ve ilk kareleri oluşturmayı optimize etme (I2f3c6)
- Tuval ile çizgi ve nokta çizerken ayrılan kaynaklar kaldırıldı (I9f535)
AndroidFont.fontVariationSettings
(I7d9e2) için doküman ekleme
Harici Katkı
- Vektör API'lerinde performans iyileştirmesi ve tahsislerin azaltılması (I906cb)
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-alpha04
yayınlanır. 1.5.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
Modifier.Node
Yetki Verme İyileştirmeleriDelegatingNode
'dan diğerModifier.Node
örneklerine yetki vermeyle ilgili gelişmiş bir özellik eklendi. Bu işlem,delegate
veundelegate
API'leri ile yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin yetki verilen düğüme açıkça atanması gerekiyordu. Bu değişiklikten sonra,DelegatingNode
açıkça geçersiz kılmadığı sürece düğüm arayüzleri dolaylı olarak atanır. (67352bc)
API Değişiklikleri
- Yetki verilebilen bir
NestedScroll Modifier.Node
olanNestedScrollModifierNode
'ü tanıtın. (I69513) AndroidViewBinding
bileşenineonReset
veonRelease
parametreleri eklendi. Bu parametreler,AndroidView
bileşenini yansıtır veViewBinding
ile görüntü yeniden kullanımı desteğini etkinleştirir. (I00b1e, b/276802519)- Compose Path API, daha hızlı yeniden kullanımla sık sık yol değiştirme işlemlerini desteklemek için güncellendi. (I7b797)
- Tam parametre listesi içeren optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
gibi birçok metin API'si sabitlendi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği sonlandırılmadı. Aslında bu alanı kaldırmayı planlıyorduk ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, kullanımdan kaldırılma durumu alandan kaldırılıyor (I98e96, b/277703184).
Hata Düzeltmeleri
Dialog
bileşeni tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan gerileme düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha03
yayınlanır. 1.5.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
LookaheadScope
içindekiSubcomposeLayout
için yeni varsayılan davranış: Koşullu yuvaları olmayanSubcomposeLayouts
(ör.TabRow
,Scaffold
,BoxWithConstraints
vb.) artık ileriye dönük animasyonlarla sorunsuz şekilde çalışır.
API Değişiklikleri
- Önizleme geçişindeki ölçüm politikasını yeniden kullanan yeni varsayılan
intermediateMeasurePolicy
,Scaffold
,TabRow
veBoxWithConstraints
gibi koşullu yuvaları olmayanSubcomposeLayout
alt türlerinin varsayılan olarak önizlemeyle çalışmasını sağlar. (Id84c8) - Android penceresi için oluşturulan yeniden derleyici,
ON_STOP
bildirimi aldığında artık tüm derleme yerine yalnızcawithFrameNanos
'e yapılan çağrıları engelleyecek. Bu, durdurulan etkinliklerle ilişkili pencerelerin veri değişiklikleri için yeniden derlenmeye devam edeceği ancak animasyonlar veyawithFrameNanos
'yi çağıran diğer tüm öğelerin engelleneceği anlamına gelir. (Id9e7f, b/240975572) motionEventSpy
, kararlı sürüme geçirilir. (Ic5ec4, b/261560988)- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) - Geliştiricilerin
includeFontPadding
ayarını yanlış olarak değiştirip test etmek için bu uyumluluk API'sini kullanmalarını teşvik etmek amacıylaPlatformTextStyle.includeFontPadding
için desteğin sonlandırılması iptal edildi. (I98e96, b/277703184)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha02
yayınlanır. 1.5.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Önizlemeye dayalı animasyonlar sırasında ölçüm/düzenleme mantığını işlemek için ek bir ara ölçüm politikası kullanan yeni
SubcomposeLayout
API. (I017d3) - PointerInput artık yavaştır ve daha iyi performans için Modifier.Node kullanır (küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
- Anahtar etkinlikleriyle deneysel API'leri kararlı hale getirir. (I9c7d8, b/261566839, b/261567368)
- Deneysel API'leri
PointerInputChange
'te kararlı olarak değiştirir. (I1b543, b/261560988, b/261565762, b/261565749) - Daha karmaşık
Modifier.Node
uygulamaları içinSuspendingPointerInputModifierNode
örneği oluşturmanın bir yolunu ekler. (Ic4933) AnnotatedString
'lardakiUrlAnnotation
'ler artıkTalkBack
gibi erişilebilirlik hizmetleri aracılığıyla açılabilir. (If4d82, b/253292081)- Donanım anahtarları yumuşak klavyeye gönderilmeden önce bunları durdurmak için bir API eklendi (I4f4c6, b/186800395)
- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) - Metinle ilgili test işlemleri (ör.
performTextInput
) artık alanı tıklamak yerine anlambilim işlemini kullanarak doğrudan odaklanmayı isteyecektir. (I6ed05)
Hata Düzeltmeleri
- Metin testi işlemleri artık metin alanlarının etkinleştirilmesini gerektiriyor. (Iab328)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.ui:ui-*:1.5.0-alpha01
yayınlanır. 1.5.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Modifier.intermediateLayout için artık açık bir LookaheadScope gerekmiyor. intermediateLayout'taki measure bloğu, alıcı olarak IntermediateMeasureScope'a sahiptir. Bu, uygun CoroutineScope, LookaheadScope ve MeasureScope sağlar.(Ibe2e5)
- LookaheadLayout, artık bir düzen olmayan LookaheadScope ile değiştirildi. Bu sayede, bir LookaheadScope'taki alt içerik doğrudan üst öğenin MeasurePolicy tarafından kontrol edilebilir. (Ibe2e5)
- Modifier.Nodes'un iş parçacıklarını başlatmasına izin vermek için
Modifier.Node#coroutineScope
ekler. (I76ef9) - CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes'ın CompositionLocals'ı okumasına izin verin. (Ib44df)
- @Deprecated sınıfının mülke yayılması. (I882d1)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.ui:ui-*:1.4.3
yayınlanır. 1.4.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Belirli değiştiricilerle kullanıldığında
AndroidView
'ün doğru şekilde yerleştirilememesine neden olan sorun düzeltildi. (I4dc77, b/274797771) - 2D Odak Arama'da
DropDown
Menüler'i etkileyen bir hata düzeltildi (b/276811828) - Özel odak giriş/çıkış özelliklerinde, lambda ilk kez çağrıldığında yalnızca giriş/çıkış bloğunu çalıştıran bir hata düzeltildi (b/277234245)
- Odak sisteminde,
focusProperties
okunurken kilitlenmeye neden olan bir gerileme düzeltildi. (b/271324781, b/274897776)
1.4.2 sürümü
19 Nisan 2023
androidx.compose.ui:ui-*:1.4.2
yayınlanır. 1.4.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
AndroidView
'ün değiştiricilerini doğru şekilde yeniden kullanmaması nedeniyle beklenmedik davranışlara ve kilitlenmelere neden olan sorun düzeltildi. (Ib67ee, b/275919849)Dialog
bileşeni tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmediği gerileme düzeltildi (I82551, b/262140644)
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.ui:ui-*:1.4.1
yayınlanır. 1.4.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
ParentDataModifier
'ünAndroidView
'u etkilememesiyle ilgili bir sorun düzeltildi (b/274797771)
1.4.0 sürümü
22 Mart 2023
androidx.compose.ui:ui-*:1.4.0
yayınlanır. 1.4.0 sürümü bu taahhütleri içerir.
1.3.0 sürümünden bu yana yapılan önemli değişiklikler
- Ekran kaydırıldığında sınırın dışına çıktıklarında kaldırılmayacakları şekilde, üşengeç liste öğelerinin sabitlenmesine olanak tanıyan yeni bir
PinnableContainer
API eklendi. Örneğin,Modifier.focusable()
şu anda odaklanan öğ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ılmıştır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - Surfaces'te
IsContainer
semantik özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre gezinme sırasını belirleyen daha sonraki bir değişiklikte kullanılır. (I63379) - Yeni bir erişilebilirlik rolü
DropdownList
eklendi. Bu,TalkBack
'e odaklanırkenandroid.widget.Spinner
'ın davranışını kopyalamak 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)
simgesini kullanabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri artık boş duruma geçmek için kareleri çalıştırırken (ör.
waitForIdle
aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu, düzen animasyonların ayrı karelerinde doğrulama yapan testleri etkileyebilir. (I8ea08, b/222093277) - Metnin
Static(default)
veya Animasyonlu olarak tanımlanması içinTextStyle
alanına deneyselTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
değerini kullanın. (I24dd7)
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.ui:ui-*:1.4.0-rc01
yayınlanır. 1.4.0-rc01 sürümü bu taahhütleri içerir.
API Değişiklikleri
onReset
parametresini kabul edenAndroidView
birleştirilebilir işlevine aşırı yükleme eklendi. Görünüm örnekleri, bileşimdeki düğümleri atıldığında ve uyumlu bir şekilde yeniden kullanıldığında yeniden kullanılabilir. Bu özellikle Görüntüleme sayısı içinLazyRows
veLazyColumns
değerlerinde yararlıdır. (I3f10d, b/230099236)- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni düşük düzey
PlatformTextInputAdapter
API kullanıma sunuldu. (I58df4)
Hata Düzeltmeleri
BasicTextField
'ınSetText
semantik işlemi artık metin arabelleğini IME güncellemeleri ve test işlevleriyle (ör.performTextReplacement
) aynı kod yolunu kullanarak güncelleyecektir.- Metin test işlevleri
performTextClearance
,performTextReplacement
veperformTextSelection
artıkSemanticsActions
'i 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ınlanır. 1.4.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
modifierElementOf()
API'si kaldırıldı. Lütfen bunun yerine doğrudanModifierNodeElement
adresinden uzatın. (I2256b)Layout
yeniden kullanıldığında (ör.LazyColumn
öğesi olarak) durumu düzgün şekilde ele almak için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni birModifier.Node.onReset()
geri çağırma işlevi eklendi. Odaklanmış durumu düzgün şekilde sıfırlamak içinFocusTargetModifierNode
düzeltildi. (I65495, b/265201972)- Canvas'ta metin çizerken farklı karışım algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508)
Hata Düzeltmeleri
- Erişilebilirlik odak sırası algoritması iyileştirildi. Örneğin, üst/alt çubuklar sırasıyla daha sık ilk/son okunur (74e9c5)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.ui:ui-*:1.4.0-beta01
yayınlanır. 1.4.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
PinnableContainer.PinnedHandle.unpin()
,release()
olarak yeniden adlandırıldı (I4667a)ComposeTestRule
'e deneysel API olarakwaitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
vewaitUntilDoesNotExist
eklendi. BöylecewaitUntil
API, herhangi bir eşleştiriciyi ve herhangi bir sayıda düğümü kabul edecek şekilde genişletildi. Daha fazla doküman içinComposeTestRule
adresine bakın. (Ifa1b9, b/226934294)Font.MaximumAsyncTimeout
'üFont.MaximumAsyncTimeoutMillis
olarak yeniden adlandırın. (I07af5)GoogleFont.Provider.AllFontsListUri
kaldırıldı ve bunun yerine ktdoc'ta bağlantısı verildi. (I16f29)
Hata Düzeltmeleri
AndroidFont.fontVariationSettings
(I7d9e2) için doküman ekleme
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha05
yayınlanır. 1.4.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tümLaunchedEffect
verememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)- 1 boyutlu hızı izlemek için yeni bir API ekleme (If5a82)
FocusRequester
artık@Stable
olarak işaretlendi. (I580ee)usePlatformDefaultWidth
parametresi alanDialogProperties
kurucusundan deneysel bir ek açıklamayı kaldırın. (Ic4048)PathMeasure.getPosition()
vePathMeasure.getTangent()
ile bir yoldaki mesafede konumu ve teğeti hesaplama işlevi eklendi (I3b47c)PlatformParagraphStyle
tarihinde yanlışlıkla herkese açık olarak ayarlanan ayarlayıcı kaldırıldı. (I07f47)- Satır içi/desteği sonlandırılmış ve gizli işlevlerin daha fazla türü/boşluk kabul edebileceği durumlar (I24f91)
- Sıfır tahsisi olan ek açıklamaları sorgulamak için
AnnotatedString.hasStringAnnotations
ekleyin. (I94dfe, b/246960758) TextMeasurer.measure
işlevi için metin olarakString
alan yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)- TextStyle'deki
LineBreak
veHyphens
API'leri kararlı sürüme geçirildi. (Ic1e1d)
Harici Katkı
TextInputSession
veTextInputService
'dekinotifyFocusedRect
yöntemlerinin desteği tekrar kaldırılmadı. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha04
yayınlanır. 1.4.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Ekran dışına kaydırıldıklarında kaldırılmayacakları şekilde, üşengeç liste öğelerinin sabitlenmesine olanak tanıyan yeni bir
PinnableContainer
API eklendi. Örneğin,Modifier.focusable()
şu anda odaklanan öğ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ılmıştır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - Surfaces'te
IsContainer
semantik özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre gezinme sırasını belirleyen daha sonraki bir değişiklikte kullanılır. (I63379) - Yeni erişilebilirlik rolü
DropdownList
eklendi. Bu,android.widget.Spinner
'e odaklanırkenTalkBack's
davranışını kopyalamak 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)
simgesini kullanabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri artık boş duruma geçmek için kareleri çalıştırırken (ör.
waitForIdle
aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu, düzen animasyonların ayrı karelerinde doğrulama yapan testleri etkileyebilir. (I8ea08, b/222093277) - Metnin
Static(default)
veya Animasyonlu olarak tanımlanması içinTextStyle
alanına deneyselTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
değerini kullanın. (I24dd7)
API Değişiklikleri
- Diğer
DrawScope
işlevleriyle uyumlu olması içindrawText
işlevindekimaxSize: IntSize
bağımsız değişkenisize: Size
ile değiştirildi.size
varsayılan olarakSize.Unspecified
olarak ayarlanır. Bu, önceki varsayılan davranışı değiştirmez. (Icd27d) - Desteği sonlandırılan deneysel yazı tipi kurucusu kaldırıldı. (I8a724, b/261435386)
Group
kullanıcı arayüzü araçları veri sınıfında artık grubun satır içi birleştirilebilir bir işleve çağrı olup olmadığını belirtenisInline
adlı bir alan var.isInline
true
ise çağrı satır içi bir birleştirilebilir işlevedir. Ancak, satır içi işlev bilgilerini oluşturmayan bir derleyici eklentisi sürümüyle derlenen modüllerden gelen satır içi birleştirilebilir işlev çağrıları için değer yanlış olabilir. (Idb846)- Daha önce deneysel olan bazı API'leri kararlı sürüme geçirdik
- 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
kurucu artık kararlı bir API'dir ve yeni yazı tipi tanımlayıcısı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)createFontFamilyResolver
API artık kararlı. Bu, ayarsız yazı tipi yükleme sırasında yakalanmayan istisnaları yakalamak için kullanılabilir. (Ibb481, b/261435386)Font.loadingStrategy
API artık kararlı. (I5937c, b/261435386)GoogleFont
API artık kararlı. (Ic90b0, b/261435386)TextUnit(float, TextUnitType)
artık kararlı bir API'dir. (I90c84, b/261561612)pluralStringResource
artık kararlı bir API'dir. (I09849, b/261439703)
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.ui:ui-*:1.4.0-alpha03
yayınlanır. 1.4.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
ExperimentalComposeUiApi
,PointerIcon
'dan kaldırılıyor (I23af8)- Sayfa erişilebilirlik işlemleri tanıtın:
PageUp
,PageDown
,PageLeft
,PageRight
. Bu özelliklerin yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab) rememberNestedScrollConnection
parametre görünümü, kök görünümden ana makine görünümüne güncellendi. (Ia5200)- Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API eklendi. (I2ba9d, b/203141462)
- Hareketlerin kaydırma etkinlikleri haline gelebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için
Clickable
içinde kullanılır. Clickables
öğesinin,Scrollable ViewGroup
içinde kullanıldığında dalgaların doğru şekilde geciktilmemesi sorunu düzeltildi.- Çekme panelleri ve sayfalar, hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda basmaları doğru şekilde geciktirmek için güncellendi.
graphicsLayer
'nin her zaman bir ara arabelleğe oluşturulacağını belirtmek içinCompositingStrategy.Always
,Offscreen
olarak yeniden adlandırıldı (I47dc1)- Birden fazla içerik yuvasına sahip düzen aşırı yüklenmesi artık kararlı (I10566, b/248294649)
- Test davranışını ve performansını incelemek için bir testin parçası olarak Perfetto izlerini (Sistem İzleri olarak da bilinir) yakalamak üzere deneysel yeni API'ler
PerfettoTrace.record {}
vePerfettoTraceRule
eklendi. (I3ba16) - Bir Oluşturma kuralı kullanan kullanıcı arayüzü testlerinde,
withFrameNanos
geri çağırmaları sırasında devam ettirilen devam ettirmeler, tüm çerçeve geri çağırmaları çalıştırılana kadar gönderilmez. Bu, normal şekilde çalışırken Oluştur'un davranışıyla aynıdır. Ancak eski davranışa dayanan testler başarısız olabilir. Bu durum yalnızcawithFrameNanos
veyawithFrameMillis
'ı doğrudan çağıran ve bu işlevlere geri çağırma dışında mantık aktaran kodları etkileyecektir. Bu mantığın geri çağırma işlevlerinin içine taşınması gerekebilir. Örnekler için bu CL'deki animasyon testi değişikliklerine bakın. withFrameNanos
geri çağırmalarından sonra ancak arayanların iş parçacıklarını devam ettirmeden önce kodu çalıştırmak içinTestMonotonicFrameClock
oluşturucuya ve fabrika işlevine isteğe bağlıonPerformTraversals: (Long) -> Unit
parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)- Oluştur'a EmojiCompat eklendi (Ibf6f9, b/139326806)
- Dinamik renk desteği için
@Preview
parametresine yeni duvar kağıdı parametresi eklendi (I9f512)
Hata Düzeltmeleri
- Anlık görüntü uygulama bildirimleri artık
Recomposer
değişiklikleri uygulamayı bitirdikten sonra gönderiliyor. (Iad6c0, b/222093277) - Çoklu pencere ekran görüntüsü alınmasına izin vermek için
captureToImage
'te değişiklikler yapıldı. Bu, oluşturma pop-up'larını kullanan ekran görüntüsü testleri için kullanışlıdır. (I169c5)
Bağımlılık Güncellemeleri
- Compose UI ve Compose Material artık Lifecycle 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ınlanır. 1.4.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
GraphicsLayerScope
,graphicsLayer
'un mevcut boyutunu göstermek için güncellendi. Bu,graphicsLayer
dönüşümlerini Composable boyutuna göre hesaplamak için kullanışlıdır. (If8c43,b/181387080)graphicsLayer
içeriğinin oluşturulması için ekran dışı bir oluşturma katmanından ne zaman yararlanılacağını belirlemek üzereCompositingStrategy
özelliği kullanıma sunuldu. Otomatik, alfa uygulanırsa veyaRenderEffect/Overscroll
kullanılıyorsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Her zaman,ModulateAlpha
'ün ekran dışı arabellekten yararlanmasını önleyen ve bunun yerine kaydedilen çizim talimatlarının her birinigraphicsLayer
içinde modüle eden bir ekran dışı arabellek sunar.ModulateAlpha
kullanımı,RenderEffect/Overscroll
kullanımları için ekran dışı bir arabellekten yararlanmaya devam eder (I25e82, b/256382834)invalidateSubtree()
, düzen ve çizim için tüm hiyerarşileri geçersiz kılmaya izin vermek üzereModifier.Node
'e eklendi. (I4bd90)rememberNestedScrollInteropConnection
sürümünü kararlı sürüme yükseltin. Kök görünümürememberNestedScrollInteropConnection
'e iletme ö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 yanıt vermesine yardımcı olabilir. (I9e107)- Daha önce okudukları bir değer değiştiğinde bilgilendirilmesi gereken
Modifier.Node
uygulamaları tarafından kullanılabilecekObserverNode
arayüzü eklendi (I5728b, b/247716483) Paint
sınıfına, yerelandroid.graphics.Paint
kabul eden yeni bir kurucu eklendi. Ayrıca, mevcut bir doğal boya nesnesini Compose Paint'e dönüştüren bir uzantı işlevitoComposePaint()
de eklendi. (Ica91b)- Android'de kullanmak için yeni
FontFamily.Resolver.resolveAsTypeface
ekleyin. (I8950b) - Araçların Composable'ın dahili durumlarını değiştirmesine izin vermek için
ToolingState
ekleyin (Ie6614) - Yeni eklenen animasyonlar için daha iyi destek sunmak amacıyla araçları yeniden yapılandırın (I8677b)
- material ve material3 metinlerine
minLines
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I4af1d)TextField
OutlinedTextField
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.ui:ui-*:1.4.0-alpha01
yayınlanır. 1.4.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Hareket algılayıcılar için
awaitEachGesture()
adlı yeni bir yöntem eklendi.forEachGesture()
'e benzer şekilde çalışır ancak hareketler üzerinde döngü tamamenAwaitPointerEventScope
içinde çalıştığından etkinlikler iterasyonlar arasında kaybolmaz. forEachGesture()
, hareketler arasında etkinliklerin kaybolmasına neden olduğu için desteği sonlandırıldı veawaitEachGesture()
ile değiştirildi. (Iffc3f, b/251260206)- androidx'de erişilebilirlik nesnelerinin geri dönüştürülmesi desteği sonlandırılıyor. Performans değişikliklerinin, desteklenen en eski sürümlerde bile önemsiz olduğunu tespit ettik. (I0a961)
- Kenarlıklandırılmış metin çizmeyi etkinleştirmek için
TextStyle
veSpanStyle
'ye deneysel özellik olarakDrawStyle
eklendi. (If24b8, b/155421273) AnnotatedString.Builder
artıkkotlin.text.Appendable
'i uyguluyor. (I1a061, b/231030444)AnnotatedString.Builder
artıkAnnotatedString
alt dizesi ve kesişen stilleri eklemek için birappend(AnnotatedString, start: Int, end: Int)
yöntemine sahiptir.Paragraph
veMultiParagraph
boyama işlevlerine, kenarlıklandırılmış metin çizmeyi 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ınlanır. 1.3.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Etkinlik, Oluşturma Görünümü'nün durumunu kaydederken Android 9'da bazen yaşanan kilitlenme sorunu düzeltildi. (I0b755, b/260322832)
1.3.2 sürümü
7 Aralık 2022
androidx.compose.ui:ui-*:1.3.2
yayınlanır. 1.3.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
protobuf-javalite:3.19.4
(CVE-2022-3171) güvenlik uyarısını önleyen Profobuf 3.21.8 sürümü kullanılacak şekilde güncellendi (b/255545055)
1.3.1 sürümü
9 Kasım 2022
androidx.compose.ui:ui-*:1.3.1
yayınlanır. 1.3.1 sürümü bu taahhütleri içerir.
1.3.0 sürümü
24 Ekim 2022
androidx.compose.ui:ui-*:1.3.0
yayınlanır. 1.3.0 sürümü bu taahhütleri içerir.
1.2.0 sürümünden bu yana yapılan önemli değişiklikler
- Yeni deneysel API paketi
LookaheadLayout
(daha önce imkansız olan animasyon davranışlarını etkinleştirir) - Deneysel yeni API paketi
Modifier.Node
(Modifier.composed
'a kıyasla daha yüksek performanslı alternatif) - Pencere içe eklemeleri desteği iyileştirildi.
- LazyLists'te D-Pad'ler ve donanım klavyesi için odaklanma desteği.
- İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü (bazı özelleştirilmiş tasarım sistemleri için davranışı bozan değişiklik - beta01 sürüm notlarındaki gerekçe)
- Birçok küçük, kesintisiz API iyileştirmesi
- Birçok hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.ui:ui-*:1.3.0-rc01
yayınlanır. 1.3.0-rc01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Metinde otomatik tire eklemeyi desteklemek için yeni deneysel API Tire eklendi (Iaa869)
Hata Düzeltmeleri
DeviceFontFamilyName
yazı tipleri, varsayılan olarakwght
veital
varyant ayarlarını yapılandırmaz. Bunun yerine, yüklüTypeface
için platform ayarını kullanır. (Ia7a6d, b/246989332)LazyColumn
bellek sızıntısı düzeltildi: Değiştiriciler yeniden kullanıldığındaonModifierLocalsUpdated
varsayılan değerle çağrılmıyordu (b/230168389)
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.ui:ui-*:1.3.0-beta03
yayınlanır. 1.3.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Metinde satır aralarını özelleştirmek için seçenekler ekleyin. (I86907)
- Minimum genişlik kısıtlamalarını desteklemek için
TextMeasurer.measure
yöntemindesize:IntSize
bağımsız değişkeniconstraints: Constraints
ile değiştirildi. (I37530, b/242707525)
Hata Düzeltmeleri
- AndroidX Activity'nin
BackHandler
API'si artıkDialog
bileşeninde çalışıyor. (I35342)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.ui:ui-*:1.3.0-beta02
yayınlanır. 1.3.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Layout için birden fazla birleştirilebilir içerik lambdasının listesini kabul eden deneysel bir aşırı yükleme eklendi. Bu, farklı içerik lambdalarına yerleştirilen ölçülebilirleri farklı şekilde ele almanıza olanak tanır (Ic1b4e)
Deneysel Focus API'lerinde yapılan değişiklikler:
FocusDirection.In
veFocusDirection.Out
artık kullanılmamaktadır ve bunların yeriniFocusDirection.Enter
veFocusDirection.Exit
almıştır. (Ia4262, b/183746982)FocusManager.moveFocus(Enter)
veFocusManager.moveFocus(Exit)
için özel bir davranış belirtmek üzere iki yeni odak özelliği (enter ve exit) eklendi. (I5f3f9, b/183746982)- Artık odak hareketini iptal etmek için
FocusRequester.Cancel
simgesini kullanabilirsiniz.FocusRequester.Cancel
, aşağıdaki odak özelliklerinden herhangi birinde kullanılabilir: yukarı, aşağı, sol, sağ, sonraki, önceki, başlangıç, bitiş, gir ve çık. (Ib300f)
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-beta01
yayınlanır. 1.3.0-beta01 sürümü bu taahhütleri içerir.
Değişken Düğümü Yeniden Düzenleme
Modifier/Modifier.Element
örneklerini yöneten ve LayoutNodes
'daki davranışlarını koordine eden katman büyük ölçüde yeniden yapılandırıldı. Bu, Compose'daki birçok değiştiriciden hiçbirinin herkese açık API'sini etkilemeyen ve yalnızca uygulamayla ilgili bir değişiklik olarak değerlendirilebilecek bir yeniden düzenlemeydi. Buna rağmen bu, çeşitli nedenlerle önemli bir değişikliktir. (Ie4313)
Değişiklik Özeti
Eklenen deneysel Modifier.Node
API'leri, durumun bir örnek üzerinde tutulmasına olanak tanıyan bir soyutlama sağlar. Bu durum, düzen düğümünün yaşam döngüsü boyunca korunur ve düzen düğümü başına ve onu oluşturan ilgili Modifier.Element
'nin kullanımı başına ayrılır.
Genel olarak bu soyutlama, Modifier.composed
API'sinin mekaniğine güvenmeden durum bilgisine sahip değiştiriciler oluşturmak için alternatif bir mekanizma sağlar.
Risk
Bu değişiklik, önceki sürümlerle kesinlikle ikili uyumludur ve gözlemlenebilir davranış açısından geriye dönük uyumlu olmasının yanı sıra pratik ve makul olması amaçlanmıştır. Bununla birlikte, bu yeniden düzenlemenin dokunmadığı birkaç Compose alt sistemi vardır ve davranış, testlerimiz kapsamında olmayan ve henüz bulunup düzeltilmemiş şekillerde değişmiş olabilir.
Lütfen bu sürüme geçerken dikkatli olun. Bu durumun sizin için sorun oluşturduğunu düşünüyorsanız lütfen bize bildirin.
Deneysel API'ler
Hepsi "Değişken Düğümü" adlı yeni kavramla ilgili olan çeşitli deneysel API'ler eklendi. Modifier.Node'lar aşağıdakiler sonucunda oluşturulur:
fun modifierElementOf(…): Modifier
abstract class ModifierNodeElement
abstract class Modifier.Node
abstract class DelegatingNode
interface LayoutModifierNode
interface DrawModifierNode
interface SemanticsNode
interface PointerInputNode
interface ModifierLocalNode
interface ParentDataModifierNode
interface LayoutAwareModifierNode
interface GlobalPositionAwareModifierNode
interface IntermediateLayoutModifierNode
Davranışları bozan değişiklik
İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
Oluşturma 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 sürümünden önceki Android sürümlerindeki bir erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusunun 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 etkileneceksiniz. İletişim kutunuzun veya pop-up'ınızın yüksekliğini düşürebilirsiniz. Bu yeni davranışı devre dışı bırakmanız gerekiyorsa istediğiniz yükseklik ayarıyla kendi iletişim kutunuzu veya pop-up'ınızı oluşturabilirsiniz. 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 etkileşime açık ve okunabilir olmasını sağlamak geliştiricinin sorumluluğunda olduğundan bu yöntem önerilmez.
API Değişiklikleri
painterResource
'ü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 parametreler için özel değerler sağlamak üzere lütfenTextMeasurer
kurucusunu kullanın. (Ia1da3)- İletişim kutularının
WindowInsets
özelliğini desteklemesine olanak tanımak içinDialogProperties.decorFitsSystemWindows
özelliği eklendi. (I57742, b/229378542) - İkili uyumluluğu korumak için yazı tipi kurucuları orijinal Kotlin dosyasına geri taşındı. Son kararlı sürümden değişiklik yok. (Ieb2f3)
- Birkaç eşitlik tanımından gereksiz operatör kaldırıldı. Bu işlemin herhangi bir etkisi yoktur. (I6c309)
FontVariation.Setting
, gelecekte API'lerin sıkıştırılmasına izin vermek için mühürlenmiş bir arayüzdür. (I11021, b/143703328)CompositionGroup.findParameters
öğesiniSlotTree.kt
'a ekleyin. Bu sayede araçlar, slot tablosunun tamamını ayrıştırmak zorunda kalmadanCompositionGroup
parametrelerini alabilir. (I124fe)
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-alpha03
yayınlanır. 1.3.0-alpha03 sürümü bu taahhütleri 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. Bu, geliştiricilerin mevcut düzenin alt öğeleri konumuna göre nereye yerleştireceğini bilmesini sağlar. (I5482b, b/238632578)- Matris dönüşümünü bir
LayoutCoordinates
'dan diğerine almak içinLayoutCoordinates.transformFrom
eklendi. (Ic5ab1, b/238632578) SemanticsModifier.id
desteği sonlandırıldı ve semantik kimliğiLayoutInfo.semanticsId
olarak değiştirildi. (Iac808, b/203559524)- Kaynak Yazı Tipleri artık yazı tipi varyantı ayarlarını desteklemektedir (API 26 ve sonraki sürümler). (I900dd, b/143703328)
DeviceFontFamilyNameFont
'te değişken yazı tipi desteği (Ic1279, b/143703328)- Yazı tipi oluşturucular artık O ve sonraki sürümlerin yüklü olduğu cihazlarda değişken yazı tiplerini yapılandırmak için
FontVariation.Setting
listesi kabul ediyor. (I11a9d, b/143703328) - Değişken yazı tiplerini tanımlamak ve kullanmak için
FontVariation
API'sini ekleyin. (I3c40c, b/143703328) LineHeightStyle.Alignment
kurucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)- Paragraf artık expect|actual olarak ayarlandı ve Android ile masaüstü için tanımlandı. (Id387e, b/239962983)
- Arayüz paragrafı artık mühürlü arayüz paragrafı. Paragrafları alt sınıflara ayırmanın kullanım alanı yoktur. Bu değişiklikten etkileniyorsanız bizimle iletişime geçmenizi öneririz. (If5247, b/239962983)
- Deneme amaçlı ek açıklama,
PlatformTextStyle
veLineHeightStyle
öğelerinden kaldırıldı. (I64bef) TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Lütfen uygulama kodunda bunun yerineSoftwareKeyboardController
ve IME yönetim kodundaTextInputSession
kullanın. (I14e4c, b/183448615)- Mevcut animasyon türleri için yeni API ekleme (I26179)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde
POST_NOTIFICATIONS
izninin verilmesini gerektiren API'lere@RequiresPermission
eklendi. (Ie542e, b/238790278)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.ui:ui-*:1.3.0-alpha02
yayınlanır. 1.3.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Basıncı almak için yeni bir
PointerInputChange#pressure
özelliği eklendi. (I45a5e, b/205164819) - Kompozisyonda
TextMeasurer
örneklerini 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 uygulanabilecekleri için
KeyInjectionScope
'ten gereksiz işlevleri kaldırın. Kaldırılan işlevler arasındapressKeys
,keysDown
vekeysUp
yer alır. (I81d77) KeyInjectionScope
içindeki sabit ve parametre adları, söz konusu sabitlerin ve parametrelerin birimleri milisaniye olduğunda "Millis" son ekini içerecek şekilde yeniden düzenlendi. (Iabef5)- Metin düzenleme sorunlarını gidermeye yardımcı olmak için
EditCommand
yönteminetoStringForLog()
yöntemi eklendi. (I53354, b/228862731) Canvas
vedrawBehind
gibi birDrawScope
üzerinde çalışan kompozitler ve değiştiricilerde çok stilli metin çizmenin bir yolunu sağlamak içinDrawScope
'adrawText
uzantı işlevi eklendi. (I16a62, b/190787898)TextMeasurer
adlı yeni bir deneysel API kullanıma sunuldu. Bu API,BasicText
ile aynı sonuçları veren ve Compose çalışma zamanından bağımsız olan rastgele metin düzeni hesaplamasını sağlar. (I17101)mapTree
öğesiniSlotTree.kt
'a ekleyin. Bu sayede araçlar, asTree gibi önce bellekte bir kopya oluşturmadanSlotTree
öğesini inceleyebilir. Bu, Düzen Denetleyici için yaklaşık 10 katlık bir performans artışı sağlar. (I5e113)- Geliştiricilerin kitaplıklardan
MultiPreview
ek açıklamaları yazıp yeniden kullanmasına olanak tanımak için Oluşturma Önizlemesi'nin ikili çıkış dosyalarında depolanması değiştirildi. (I85699, b/233511976)
Hata Düzeltmeleri
InputEventChange
etkinlikleriniVelocity
İzleyici'ye eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hız tüm durumlarda doğru şekilde hesaplanır (Icea9d, b/216582726, b/223440806, b/227709803)- Notlar 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ınlanır. 1.3.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Gerçek ölçüm/düzenlemeden önce bir önizleme geçişini destekleyen yeni
LookaheadLayout
. Bu sayede, değiştiğinde düzenin önceden hesaplanması sağlanırken, önizleme sonrası ölçüm/düzen, boyutu ve konumları hedefe doğru animasyonlu olarak hareket ettirmek için önceden hesaplanmış boyutu/konumu kullanabilir.SubcomposeLayouts
henüz desteklenmemektedir ancak gelecekteki bir sürümde desteklenecektir. (I477f5) Text
'nin tümünün opaklığını değiştirmek içinTextStyle
veSpanStyle
fırça çeşidine isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635)AnnotatedString
'lerdeTalkBack
bağlantı desteğini desteklemek içinUrlAnnotation
ek açıklama türünü ve ilişkili yöntemleri kullanıma sundu. (I1c754, b/231495122)- Hizmet işlevini çalışma zamanına taşıma (I4f729)
Hata Düzeltmeleri
TextLayoutResult.getLineForOffset
atılmıyor. (Idc5d6, b/235876324)
Harici Katkı
- Kompozit işlevlerdeki veya snapshotFlow aracılığıyla durumunu gözlemlemek için yeni bir API
WindowInfo.keyboardModifiers
eklendi (Icdb8a)
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.ui:ui-*:1.2.1
yayınlanır. 1.2.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Denetleyicide nullpointer düzeltildi (b/237987764)
- İnceleyicide hatırlama 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ınlanır. 1.2.0 sürümü bu taahhütleri içerir.
1.1.0 sürümünden bu yana yapılan önemli değişiklikler
Odak geçişinde iyileştirmeler:
- Yeni
BeyondBoundsLayout
çekirdek API'si kullanılarak, artık yavaş listelerde odağa dayalı kaydırma yapılabiliyor FocusOrder
veFocusProperties
'te yeni davranış özelleştirme API'leri- Fiziksel klavye veya TV uzaktan kumandasıyla ilgili davranış iyileştirildi
- Yeni
Aşağıdakiler için yeni API'ler:
- Pencere içe yerleştirilmeleri
- Hareketle çalışan, sonsuz ve düzen animasyonları için temel öğeler
RenderEffect
dahil olmak üzereGraphicsLayer
özellikleri
Birçok hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc03
yayınlanır. 1.2.0-rc03 sürümü bu taahhütleri içerir.
- 1.2.0-rc02 sürümünden bu yana değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc02
yayınlanır. 1.2.0-rc02 sürümü bu taahhütleri içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc01
yayınlanır. 1.2.0-rc01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Oluşturma kitaplarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
- Diğer tuşlar basılıyken veya açıkken tuş basma işlemlerini eklemek için
KeyInjectionScope
işlevine daha yüksek düzey işlevler eklendi. Bu işlevler arasındawithKeysDown
,withKeysToggled
vb. bulunur. Ayrıca, belirli bir meta anahtarın basılı olup olmadığını kontrol etmek için özellikler de eklendi. Örneğin,isCtrlDown
, kontrol tuşlarından birinin basılı olup olmadığını kontrol eder. Her işlevle ilgili dokümanlar içinKeyInjectionScope
adresine bakın. (I9f6cd, b/229831515) - Özel kaydırma efektlerine izin vermek için deneysel bir
OverscrollEffect
ve bunu kabul edenModifier.scrollable
aşırı yüklemeleri kullanıma sunuldu. - Deneysel
LocalOverScrollConfiguration
,foundation.gesture
'ten temel pakete taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) runComposeUiTestWithoutActivity {}
'ürunEmptyComposeUiTest {}
olarak yeniden adlandırın. Bu işlem,runComposeUiTestWithoutActivity {}
'ücreateEmptyComposeRule()
ile (I6fed7) uyumlu hale getirir.
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-beta03
yayınlanır. 1.2.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
pressKeyTimes
,isCapsLockOn
ve arkadaşlarıKeyInjectionScope
'ye ekledi. Ayrıca API artık fare ve klavyeyle birlikte kullanılan enjeksiyon kalıplarını (ör. meta tuşu basılıyken fare düğmesini tıklama) desteklemektedir. (I4c8da, b/229831515)- Önemli etkinlikleri ekleme için deneysel destek eklendi. Önemli etkinlikleri göndermek için
performKeyInput
'ü kullanın veyaperformMultiModalInput
ile çok modlu bir giriş hareketi sırasındaMultiModalInjectionScope
öğesininkey
mülkü aracılığıyla gönderin. API dokümanları içinKeyInjectionScope
adresine bakın. (Ic5000, b/229831515) - Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni
GoogleFont.Provider.AllFontsListUri
ekleyin. - Google Fonts, oluşturma işleminde yüklenemezse yeniden atılan hata mesajları iyileştirildi. (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 tüm durumlarda doğru şekilde hesaplanır (I51ec3, b/216582726, b/223440806, b/227709803) Show Layout Bounds
ayarı artık hızlı ayarlar kartından değiştirildikten hemen sonra, etkinlikten çıkıp yeniden girmek zorunda kalmadan birleştirilebilirler için uygulanacak. (I843d5, b/225937688)- Erişilebilirlik dizesi araması, yazı tipi yüklemeyi tetiklemez. Daha önce
StyleSpans
yazı tiplerini yüklemeye çalışıyordu.FontFamily.Resolver
'un üzerine yazılmışsa bu durum kilitlenmelere neden oluyordu. (I4609d) - İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme yaşanmaz.
DeleteSurroundingTextCommand
veDeleteSurroundingTextInCodePointsCommand
için artık kurucu bağımsız değişkenlerinin negatif olmaması gerekiyor. (Ica8e6, b/199919707)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.ui:ui-*:1.2.0-beta02
yayınlanır. 1.2.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- İşlevleri diğer önizleme türlerinde yeniden kullanma (I19f39)
Hata Düzeltmeleri
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
, yalnızca gerçekleşmediğinde değil, gerçekleştiği zaman da bu durumu daha iyi yansıtacak şekildeDisposeOnDetachedFromWindowOrReleasedFromPool
olarak yeniden adlandırıldı. (If15ca)
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.ui:ui-*:1.2.0-beta01
yayınlanır. 1.2.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Bu, 1.2 sürümünün ilk beta sürümüdür.
API Değişiklikleri
- Öğeleri görünür sınırların ötesinde düzenlerken
LazyList
'un özel uygulamaları tarafından kullanılabilecek deneyselBeyondBoundsInterval
eklendi (Ifabfb, b/184670295) Modifier.composed
'ün anahtar sürümleri artık kararlı API'dir (Ie65e4, b/229988420)- Mevcut görüntüleme bilgilerini almak için kompozisyon yerellerini kullanacak şekilde
rememberNestedScrollConnection
API'yi basitleştirdik (I67ca7) @ComposableTarget
ek açıklaması ve@ComposableTargetMarker
ile işaretlenmiş ek açıklamalar artık@file
ön ekiyle dosya kapsamında kullanılabilir. Dosya kapsamında bir hedef ek açıklaması kullanmak, derleyicinin dosyada bulunan tüm birleştirilebilir işlevlerin ilişkili uygulayıcının hedeflenmesini amaçladığını varsaymasına neden olur. Örneğin,@file:UiComposable
kullanmak, tüm@Composable
işlevlerinin Oluştur kullanıcı arayüzü uygulayıcısını hedeflediğini belirtir. Başka bir uygulayıcının hedeflenmesi gereken bir işlev, istenen uygulayıcı için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)Deneysel, platformdan bağımsız yeni bir test API'si kullanıma sunuldu:
TestRule
'ye gerek kalmadan Compose kullanıcı arayüzü testlerini çalıştırmak için kullanılabilen birinterface ComposeUiTest
ve birfun runComposeUiTest(block: ComposeUiTest.() -> Unit)
.ComposeTestRule
olmadan test çalıştırmak için testirunComposeUiTest
'a lambda olarak iletin veComposeContentTestRule
'dakiyle aynı olan alıcı kapsamındakiComposeUiTest
yöntemlerini ve üyelerini kullanın.Android'e özgü
interface AndroidComposeUiTest
vefun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
,AndroidComposeTestRule
'ye benzer şekilde temel etkinliğe erişim sağlamak için eklenir. Daha fazla kontrol için kendiniz birclass AndroidComposeUiTestEnvironment
örneği oluşturabilirsiniz.Masaüstü uygulaması
class DesktopComposeUiTest
'tür ancak şu anda masaüstüne özel çalıştırma işlevi sunulmamaktadır.Bir testi
ComposeTestRule
'tenComposeUiTest
'e 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() } }
Şunları yapmak için:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }
Şu anda
ComposeContentTestRule
veComposeTestRule
,ComposeUiTest
'den genişlemiyor. Bu,ComposeUiTest
'deki uzantı işlevlerinin henüzTestRule
arayüzünde çağrılamaması anlamına geliyor.ComposeUiTest
kararlı API'ye geçtiğindeComposeContentTestRule
veComposeTestRule
,ComposeUiTest
'ten itibaren geçerli olacak ş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
kapsamındaki varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)Gradyan renklendirmeyle metin çizmenin bir yolunu sağlamak için
TextStyle
veSpanStyle
'yeBrush
eklendi. (I53869, b/187839528)LineHeightBehavior
öğesinintrimFirstLineTop
,trimLastLineBottom
özellikleri tek bir enum olarak değiştirildi:LineHeightTrim
.LineHeightTrim
, iki doğrusal mantık değeriyle tanımlanan 4 durum değerine sahiptir:FirstLineTop
,LastLineBottom
, Her ikisi ve Yok (Ifc6a5, b/181155707)TextStyle
veParagraphStyle
'yeLineHeightBehavior
eklendi.LineHeightBehavior
, satır yüksekliğinin ilk satırın üst kısmına ve son satırın alt kısmına uygulanıp uygulanmayacağını kontrol eder. Ayrıca,TextStyle(lineHeight)
tarafından sağlanan alanda satırın hizalamasını da tanımlar.Örneğin,
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
aracılığıyla CSS'nin tanımladığına benzer bir davranış elde etmek mümkündür.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları yalnızcaincludeFontPadding
yanlış olduğunda doğru çalışır. (I97332, b/181155707)PlatformParagraphStyle.lerp
vePlatformSpanStyle.lerp
işlevleri üst düzey işlevler (I9a268) olarak değiştirildi
Hata Düzeltmeleri
PointerInputChange::copy
dokümanlarında artık bunun yüzeysel bir kopya olduğu doğru şekilde belirtiliyor. (I182f5)- Yükseklik sınırlı olduğunda ve tüm metin satırlarına sığmadığında üç noktayı destekleme (Ie528c, b/168720622)
- Varsayılan olarak etkin
includeFontPadding
.TextStyle.platformTextStyle
özelliğini kullanarakincludeFontPadding
özelliğini devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak bu zamana kadar satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre edebilecek veTextField
kırpma sorunlarını çözebileceğiz. (I01423, b/171394808)
Harici Katkı
- Dikey olarak kaydırırsak Android'de
MouseInjectionScope.scroll(delta = someDelta)
artık ters çevrilir (someDelta pozitifse aşağı doğru kayar) (Ifb697, b/224992993)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha08
yayınlanır. 1.2.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
pluralStringResource
işlevleri, gelecekte evrimin daha iyi uluslararasılaşmayı desteklemesine olanak tanımak için deneysel olarak işaretlendi. (If24e4)- Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor.
Constraints.maxHeight
parametresi şu anda herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre elips oluşturma gibi bazı hesaplamalar yapılmasına olanak tanıyacaktır. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
artık içine yeni öğe eklenmesine izin vermeyen özel bir MutableSet benzeri sınıfı kabul ediyor. (Icd314)- PointerIcon artık
@Stable
arayüzüdür (I9dafe) - Kısmi tüketim (aşağı VEYA konum) özelliği
PointerInputChange
sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()
kullanabilirsiniz. Değişikliğin daha önce başka bir kullanıcı tarafından tüketilip tüketilmediğini belirlemek içinisConsumed
değerini kullanabilirsiniz. PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu,PointerInputChange
kopyalarının, kopyalardan biri tüketildikten sonra tüketileceği anlamına gelir. Bağlantısız birPointerInputChange
oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)- Oluştur > Görüntüle yönünde Oluştur ve Görüntüle arasında iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, bir oluşturma üst öğesinin, iç içe geçmiş kaydırma görünümünden iç içe geçmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
- Oluşturma'nın Görüntüleme sistemi için tasarlanmış UIAutomator testlerine uygun hale getirilmesi amacıyla kullanılabilen yeni
SemanticsProperty testTagsAsResourceId
. (I39c20) FontFamily.SansSerif
kullanırken Android'deki sistem yazı tipleri için kullanılabilen tüm ağırlıkları gösterin. Bu durumda, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adları kullanılır. API 21-28'de daha önce yalnızca 400 ve 700 ağırlıkları destekleniyordu. Bu nedenle, 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şkenlerden önce olacak şekilde yeniden düzenledi. (Idafaa)
AndroidFont
artık typefaceLoader'ı yapıcı parametresi olarak alıyor. (I2c971)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
yayınlanır. 1.2.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Yeni
Snapshot.withoutReadObservation { ... }
işlevi eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerinin değişikliklerine abone olmadan iletilen lambda işlevini çalıştırmasına olanak tanır. Bu yöntem, anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak ancak gereksiz yeniden oluşturma veya yeniden ölçme işlemlerine neden olmadan değeri okumak istediğiniz kullanım alanlarında yararlı olabilir. (I9f365, b/214054486) ComposeView
'unconsumeWindowInsets
uzantı özelliği, geliştiricilerin AndroidWindowInsets
tüketimini devre dışı bırakmasına olanak tanır. Bu sayede hiyerarşide ayrıComposeViews
'lerin her biri birbirini etkilemedenWindowInsets
uygulayabilir. (I0ef08, b/220943142)- IME'ye ondalık ayırıcıyı özel olarak dahil etmek için
Keyboard.Number
'e alternatif olarakKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) PointerEventType.Scroll
vePointerEvent.scrollDelta
artık kararlı API'lerdir (I574c5, b/225669674)- İşbirliği yapan View sınıfları için View ile Compose arasında iç içe yerleştirilmiş kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, oluşturma işleminin artık kaydırma deltalarını (işbirliği yapan) bir görüntüleme üst öğesine gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
- Sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için
FontFamily.Resolver
güncellendi (I6c1e7) Font(AssetManager, String, ...)
desteği sonlandırıldı,Font(String, AssetManager, ...)
ile değiştirildi. Bu deneysel bir API'dir. (I1c7a4)- Yazı tipi yedekleme zincirleri sırasında isteğe bağlı olarak sistemde yüklü yazı tiplerini aramak için yeni yazı tipi tanımlayıcısı
Font(DeviceFontFamilyName)
ekleyin. (I30468, b/219754572) - TextStyle/ParagraphStyle öğesinde
includeFontPadding
için geçici uyumluluk yapılandırması eklendi.includeFontPadding
,TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
üzerinden değiştirilebilir. Bu, taşıma işlemini etkinleştirmek için 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 birlikte kullanılmak üzereGoogleFont.Provider
kurucusunu ekleme (Ic5ee1, b/225984280)Compose GoogleFont
artıkFont(GoogleFont)
olarak adlandırılıyor. API'nin geri kalanı sabit kalır. (I125f2)
Hata Düzeltmeleri
- İç dolgunun kullanılmasını sağlamak için material/Scaffold'a lint kontrolü eklendi (Ifb111)
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha06
yayınlanır. 1.2.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Odaklanabilir hedefe odaklanmayı istemek için
RequestFocus
semantik işlemi eklendi. (I17b71) - Mevcut düzen yönü RTL ise
VectorPainter
içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırması güncellendi. (I79cd9, b/185760237) Gölge/ortam renkleri, API uyumluluğu için
Modifier.graphicsLayer
parametresinin sonuna gelecek şekilde güncellendi (I3f864, b/160665122)API değişikliklerinin çalışmasını engellememek için
GraphicsLayerScope
'te gölge/ortam rengi için varsayılan uygulamalar eklendiRSB etkinliklerine etkinlik saati eklendi (Ief8ae)
FocusOrder
artıkFocusProperties
ile birleştirildi vefocusProperties()
,focusOrder()
'ın tüm özelliklerine sahip oldu.FocusOrder
vefocusOrder()
desteği sonlandırıldı.focusRequester
kabul edenfocusOrder()
,focusProperties()
ile birlikte birfocusRequester()
değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler daha güçlü bir sorumluluk ayrımı elde eder. (I601b7)Hem
RecyclerView
hem deCompose
'ü yükseltmek artık alt öğe olarak Oluşturma görünümleri içeren RecyclerView'ler için çok daha iyi kaydırma performansı elde etmenizi sağlayacak.Yerleşik varsayılan stratejiyi almak için
ViewCompositionStrategy.Default
değerini ekleyinYeni varsayılan strateji olan ve RecyclerView gibi kapsayıcıları bir araya getirmeyi düzgün şekilde yöneten
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
değerini ekleyin. (If7282)Çoklu önizleme özelliğini eklemenin ilk adımı olarak, ek açıklama sınıflarına @Preview ile ek açıklama ekleme desteği eklendi. Bu tür ek açıklamalar, Composable yöntemlerini veya diğer ek açıklama sınıflarını ek açıklamak için kullanılabilir. Bu sınıflar daha sonra, belirtilen @Preview ile dolaylı olarak ek açıklamalı olarak kabul edilebilir. (I12eff)
@Preview (I071c9) için Cihazlar listesine eklenen referans cihazlar
Hata Düzeltmeleri
- Vektör grafik API'leri, @UiComposable yerine uygun birleştirilebilir ek açıklama @VectorComposable'ı kullanacak şekilde güncellendi (I942bc)
- Çapraz satırı
AnnotatedString.Builder.withStyle
'ten (If84d5) kaldırın
Harici Katkı
- compose-ui:
GraphicsLayerScope
'yeambientShadowColor
vespotShadowColor
mülkleri 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ınlanır. 1.2.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
TextToolbar
artıkActionCallback
yerine lambda bağımsız değişkenleri alıyor. (Ib2eb9, b/197950089)- Temel ve uygulama uyumluluğundaki boşluk kabul edilebilirlik özelliği, Tiramisu DP2 ile eşleşecek şekilde güncellendi (I0cbb7)
- Ölçülen arayüz artık parentData mülkünü (I3313f) gösterir.
Modifier.onPlaced
veOnPlacedModifier
arayüzü artık kararlı. (Ib5482)- Yaşasın! Oluşturma animasyonu 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ışıdır.
includeFontPadding=false
nedeniyle ortaya çıkan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmayacak. (I31c84, b/171394808)
Hata Düzeltmeleri
ComposeContentTestRule.setContent
, içerik zaten mevcutken içerik ayarlamaya çalışırsanız artık birIllegalStateException
hatası atar. (I888a5, b/199631334)- Android'de panodan okunurken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (I06020, b/197769306)
- RSB kaydırma örneklerini iyileştirin. (I6a596)
Harici Katkı
- Kotlinx coroutines 1.6.0 (I3366d) sürümünü kullanacak şekilde güncellendi
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha04
yayınlanır. 1.2.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
Bir birleştirilebilir işlevin, kullanılmak üzere tasarlanmadığı bir uygulayıcı hedeflendiğinde derleme zamanında raporlanmasına olanak tanıyan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
eklendi.Çoğu durumda ek açıklamaları, derleyici eklentisi tarafından tahmin edilebilir. Bu nedenle, bu ek açıklamaları doğrudan kullanmak nadir bir durumdur. Özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), birleştirilebilir lambda olan alanlar veya global değişkenler (yerel değişkenler ve parametreler çıkarılır) veya
ComposeNode
ya da ilgili birleştirilebilir işlevler kullanıldığında çıkarım yapılamaz.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
'yi çağıran birleştirilebilir işlevlerin, işlev ve tüm birleştirilebilir lambda parametresi türleri için birComposableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ile ek açıklama içeren bir ek açıklama oluşturmanız ve ardından doğrudanComposableTarget
yerine işaretlenmiş ek açıklamayı kullanmanız önerilir.ComposableTargetMarker
ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özellik sınıfının tam nitelikli adının yer aldığı birComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımıyla ilgili bir örnek içinanroidx.compose.ui.UiComposable
bölümüne bakın. (I38f11)Font(resId, ...)
artık kararlı API'de loadingStrategy parametresini alıyor. (Ief3d2)FontLoadingStrategy
artık kararlı bir API'dir. (I1ee35, b/174162090)Metinde eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
Özel
Font.ResourceLoader
öğesiniFontFamily.Resolver
öğesine dönüştürmek için köprü API'si ekleyin. (Ia0060)
Hata Düzeltmeleri
- Sağlanan
FontFamily.Resolver
, Pop-up gibi alt kompozisyonlara iletilir. - Sağlanan
Font.ResourceLoader
, Pop-up gibi alt kompozisyonlara iletilir. (I48fa5)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
yayınlanır. 1.2.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
TextInputSession
veTextInputService
içindekinotifyFocusedRect
yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerineBringIntoViewRequester
kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)RenderNode
stub sınıfındadestroyDisplayListData
yöntemi kullanıma sunuldu (I1e659, b/216660268)- Önceden oluşturduğunuz
SubcomposeLayout
öğelerinin çocuklarını önceden ölçmenize olanak tanıyan yeni bir API eklendi. (I857ea) Bir birleştirilebilir lambda'yı, durumunu ve ilgili düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren
movableContentOf
eklendi. Önceki çağrı kompozisyondan çıktığında durum geçici olarak korunur ve lambda'ya yeni bir çağrı kompozisyona girerse durum ve ilişkili düğümler yeni çağrının konumuna taşınır. Yeni bir çağrı eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.Bir
movableContentOf
lambda aynı kompozisyonda birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur ve çağrılar kompozisyondan çıkarken ve yeni çağrılar girerken durum, çağrıldıkları sırayla ilk ayrılan çağrılardan giren çağrılara taşınır. Yeni aramalar tarafından hak talebinde bulunulmayan tüm eyaletler kalıcı olarak kaldırılır. (Ib4850)FontFamilyResolver
artıkLocalFontFamilyResolver.current
üzerinden kullanılabilirOluşturma kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi.Paragraf ve ÇokluParagraf öğeleri artık
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
artık bu düzen için kullanılan çözümleyiciyi içeriyor. Artık kullanılmadığı içinTextLayoutResult.layoutInput.resourceLoader
kullanımdan kaldırıldı. (Id5a45, b/174162090)Yedek davranışla birlikte eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text ve TextField tarafından kullanılır ve FontFamilyResolver aracılığıyla gösterilir.
FontFamilyResolver.preload
üzerinden yazı tiplerini önceden yükleme desteğiFontFamilyResolver.setAsyncLoadContext
, eşzamansız yazı tiplerini yüklemek için kullanılan genel coroutine bağlamını ayarlamanıza olanak tanır. (I87fe8, b/174162090)Android'de yeni yazı tipi kaynak tanımlayıcı türleri sağlamak için yeni bir düşük düzey API olan
AndroidFont
eklendi. Örneğin, yazı tiplerini uygulamaya özel bir arka uçtan yükleme, isteğe bağlı olarak önceden yüklenmiş yazı tiplerini cihazda bulma veya yazı tiplerini mevcut yazı tipi fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.Font.ResourceLoaded
API'si, isteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için genişletildi. Uygulama geliştiricilerin bu API'yi doğrudan kullanması önerilmez. Yeni yazı tipi türleri eklemek içinAndroidFont
bölümüne bakın.Font.AndroidResourceLoader
uzantı işlevi, beste dışındaykenFont.ResourceLoader
oluşturmaya olanak tanır.Kaynak yazı tipi indirilebilir yazı tipi XML'ine referans verdiğinde, kaynak tabanlı yazı tiplerine
loadingStrategy
parametresi eklendi. Bu parametre, yazı tipinin ayarsız olarak yüklenmesine olanak tanır. (Ie5aea, b/174162090)Typeface(FontFamily)
oluşturucunun desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri için bu işlem 10 saniye kadar sürebilir. İndirilebilir yazı tiplerinde bu çağrı 10 saniye boyunca engellenebilir. Bunun yerineFontFamilyResolver.preload
kullanın.fontResource(FontFamily): Typeface
desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri için bu işlem 10 saniye kadar sürebilir. Bunun yerineFontFamilyResolver.preload
(If8e7c, b/174162090) kullanın.maxSlotsToRetainForReuse
kabul edenSubcomposeLayoutState
kurucusu artık kullanımdan kaldırıldı. Bunun yerine,SubcomposeSlotReusePolicy
kabul eden yeni bir kurucu vardır. Bu yeni arayüz, gelecekte yeniden kullanılmak üzere hangi yuvaların tutulacağı konusunda daha ayrıntılı kontrol sağlar. (I52c4d)Color
'te HSV ve HSL işlevini deneysel olmayan API olarak gösterir. Oklab renk alanı artık herkese açık API'dir. (I08fb6, b/180731008)Genel API'de olması amaçlanmayan ve sizin için hiçbir şey yapmayan
AndroidComposeTestRule.AndroidComposeStatement
desteği sonlandırıldı. (Ibc46b)Dahili olarak oluşturulan kt sınıfının yeniden adlandırılması (Ia0b9e, b/174162090)
FontLoadingStrategy.values
(I42a9d, b/174162090) kaldırıldıGlobal yazı tipi yükleyicinin adı
FontFamilyResolver
olarak değişti. (I4f773, b/174162090)Masaüstü için yeni yazı tipi yükleme sistemini kullanın. (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
,State<Any>
değerini döndürür (I4406c, b/174162090)
Hata Düzeltmeleri
- Artık metin alanları, odaklanıldığında ve yumuşak giriş modu
ADJUST_PAN
olduğunda klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolver
için yerel kompozisyon kullanıyor FontLoader
masaüstü sürümü desteği sonlandırıldı- Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090) - Metin alanları arasında odağı değiştirirken artık dokunmatik klavye giriş türü yanıp sönmüyor. (I1bf50, b/187746439)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
yayınlanır. 1.2.0-alpha02 sürümü bu taahhütleri 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ı ekleme (I0cde6)
Harici Katkı
PointerEvent.scrollDelta.y
artık Android'de tersine çevrildi (fare tekerleğini sağa yatırdığımızda artık -1 yerine 1 döndürüyor) (Ia9811)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
yayınlanır. 1.2.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
FontFamily.canLoadSynchronously
özelliği kullanımdan kaldırıldı. Bu mülkte semantik anlam yoktur. (Ica5ef)- Layout Inspector'da değişmeyen kimlikler oluşturmak için
CompositionData
alanına 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
sürümüne bağlıdır.
Sürüm 1.1
1.1.1 sürümü
23 Şubat 2022
androidx.compose.ui:ui-*:1.1.1
yayınlanır. 1.1.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
adresindekiNullPointerException
sorununu düzeltin (aosp/1947059, b/206677462)- Android'de panodan okunurken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (I06020, b/197769306)
LazyVerticalGrid
'te RTL düzeltildi (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.ui:ui-*:1.1.0
yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
- Android 12 aşırı kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmasında yapılan iyileştirmeler
- Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılamak üzere düzen alanlarını 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 sayede, Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış elde edersiniz. Bu değişiklik, kullanıcı arayüzünüzü Compose Material bileşenlerini kullanarak oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
- Gezinme çubuğu için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçiriyor
- Kotlin'in daha 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ınlanır. 1.1.0-rc03 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03'ü desteklemek için güncellendi
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-rc01
yayınlanır. 1.1.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
SemanticsNodeInteraction.captureToImage()
artıkHardwareRenderer.isDrawingEnabled()
false
ise arama süresi boyunca etkinleştirilerek de çalışır (Idf3d0)
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-beta04
yayınlanır. 1.1.0-beta04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kotlin
1.6.0
ile uyumlu olacak şekilde güncellendi
API Değişiklikleri
androidx.core.view
(I7078a, b/204917439) dosyasında boşluk değeri temizlendi- Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya tüketilip tüketilmediğini kontrol etmesine 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 anahtarları kabul eden deneysel
Modifier.composed
aşırı yüklemeleri ekleyin. (Ice799, b/205851704) ComposeNotIdleException
artık doğrudanThrowable
yerineException
'den başlıyor. Bu,Exception
yakalayan catch yan tümcelerinin artıkComposeNotIdleException
yakalayabileceği anlamına gelir. (I9c217)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde metin tutamaçlarının hareket etmemesi sorunu düzeltildi. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta03
yayınlanır. 1.1.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Yerleşim değişikliğinin gözlemlenmesine izin vermek için yeni değiştirici Modifier.onPlaced eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine göre alt değiştiricinin ofsetinde ek değişiklikler yapılabilir. (I558fd)
InjectionScope.flush()
veInjectionScope.dispose()
kaldırıldı. Tüm etkinliklerin temizlenmesi ve kapsamın kaldırılması artık önceki gibi çağrılan perform*Input() yönteminin sonunda gerçekleşir. (I2bed8)MultiModalInjectionScope.Touch
veMultiModalInjectionScope.Mouse
kaldırıldı. Çok modlu hareketler için dokunma ve fare etkinlikleri eklemek üzere artıkMultiModalInjectionScope.touch()
veMultiModalInjectionScope.mouse()
işlevlerini kullanabilirsiniz. Bu işlevler, ilgili modun alıcı kapsamına sahip bir lambda kabul eder. (Idde18)
Hata Düzeltmeleri
TouchInjectionScope.swipeWithVelocity
içindekidurationMillis
için varsayılan değer artık kaydırmanın mümkün olacağı şekilde hesaplanır. (I19deb)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta02
yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Ebeveynlere bir öğeyi görüntüye getirmek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
- Araç desteği için yeni animasyon API'leri. Özellikle, geçişlerdeki animasyonları ve yapılandırmalarını incelemek için araçlara olanak tanır. (I4116e)
Harici Katkı
- Modifier.pointerHoverIcon (I95f01) eklendi
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-beta01
yayınlanır. 1.1.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Ebeveynlere bir öğeyi görüntülemek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel
BringIntoView
API eklendi (Ib918d, b/195353459) - Araç desteği için yeni animasyon API'leri. Özellikle, geçişlerdeki animasyonları ve yapılandırmalarını incelemek için araçlara olanak tanır. (I4116e)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
yayınlanır. 1.1.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
ExperimentalComposeUiApi
'üViewRootForInspector
veLayoutInfo.ownerViewId
'den kaldırın (I5c2e3)- Daha verimli bir şekilde, düzen için alt öğe içermeyen bir aşırı yükleme eklendi (Ib0d9a)
- Modüller arası çağrılması gereken Composer yöntemlerinden
InternalCompilerApi
kaldırıldı (I1aa0b) SemanticsNodeInteraction.performSemanticsAction
artık işlevin çağrıldığıSemanticsNodeInteraction
değerini döndürür. (I9e5db)- Dokunma Modu/Dokunma Modu Olmayan modu algılamak için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
- Tüketicilerin uzun basma zaman aşımı gibi özellikler için doğru değeri almasına olanak tanımak amacıyla
viewConfiguration: ViewConfiguration
,LayoutInfo
değerine eklendi. (I76ca6)- Testlerin giriş eklemeyi uzun basma zaman aşımı veya dokunma kayması gibi faktörlere göre ayarlamalarına izin vermek için
viewConfiguration: ViewConfiguration
,InjectionScope
değerine eklendi. - Hem dokunma hem de fare girişi için uzun basma ve iki kez dokunma işlemlerinin varsayılan süresi,
InjectionScope.viewConfiguration
içindeki değerlere göre değiştirildi.
- Testlerin giriş eklemeyi uzun basma zaman aşımı veya dokunma kayması gibi faktörlere göre ayarlamalarına izin vermek için
- İçinde TextField ve DropdownMenu bulunan ExposedDropdownMenuBox'a dayalı ExposedDropdownMenu'nun uygulanması (If60b2)
- Desteği sonlandırılan dismissOnClickOutside özelliğinin yerine PopupProperties özelliğine dismissOnOutsideClick eklendi. Yeni mülk, tıklama konumunu ve ankraj sınırlarını alır. Böylece, onDismissRequest işlevinin çağrılıp çağrılmayacağı konusunda daha ayrıntılı kontrol sağlanır. Örneğin, bu özellik, ankraja dokunulduğunda ankrajın kapatılmasını önlemek için yararlı olabilir.
- updateAndroidWindowManagerFlags, PopupProperties'e eklendi. Bu işlev, pop-up'ın Android WindowManager'a ilettiği işaretçiler üzerinde düşük düzeyde kontrol sağlar. Lambda parametresi, PopupProperties değerlerinden hesaplanan ve WindowManager işaretlerine neden olan işaretler olacaktır (ör. odaklanılabilir). Lambda işlevinin sonucu, Android WindowManager'a iletilecek nihai işaretler olur. updateAndroidWindowManagerFlags, varsayılan olarak parametrelerden hesaplanan işaretleri değiştirmez. Bu API, yalnızca pop-up'ın çok özel davranış koşullarının olduğu durumlarda dikkatli bir şekilde kullanılmalıdır. (I6e9f9)
Recomposer.state
desteği sonlandırıldı ve türü StateFlow olarak değiştirilmek üzereRecomposer.currentState
ile değiştirildi (Ic2ab3, b/197773820)InjectionScope
içinflush()
vedispose()
ekler. Sıralı tüm etkinlikleri hemen temizlemek istediğinizde ve kapsamı silmek istediğinizde bu yöntemleri kullanın. (Ifb73a)- Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştirici tarafından eşleştirilen içeriğe kaydıran
performScrollToNode(matcher: SemanticsMatcher)
eklendi. (Ic1cb8) InjectionScope
artıkDensity
'ü uygulayarakperformTouchInput
ve diğer platformlarda px ile dp arasında kolayca dönüştürme yapmanıza olanak tanıyor. (I8fe1f)
Hata Düzeltmeleri
- AndroidView artık LocalLifecycleOwner ve LocalSavedStateRegistryOwner'ı ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner aracılığıyla görüntüsüne dağıtıyor. (I38f96, b/179708470)
- WearOS SwipeToDismissBox'ın bazen kaydırma işlemlerini işlememesine yönelik hata düzeltildi. (I9387e)
- Enjekte edilen giriş etkinlikleri arasındaki varsayılan süre 10 ms'den 16 ms'ye değiştirildi. Bu durum, belirli bir kaydırma gibi giriş hareketleri gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha05
yayınlanır. 1.1.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Değiştiriciler arası iletişim desteği eklendi (Id5467, b/198826874)
- PointerEventChange'e deneysel geçmiş işaretçiler eklendi. (Ic1fd8, b/197553056, b/199921305)
LayoutInfo
içindensity: Density
velayoutDirection: LayoutDirection
ekler. Bu sayede,LayoutInfo
kullanıcılarıLayoutInfo
'te sunulan boyutları ve konumu doğru şekilde yorumlayabilir. (I002f1)- Fare etkinlikleri ekleme için deneysel destek eklendi. Fare etkinlikleri göndermeye başlamak için
performMouseInput
'ü kullanın veyaperformMultiModalInput
ile çok modlu giriş hareketi sırasındaMultiModalInjectionScope
öğesininMouse
mülkü aracılığıyla fare etkinlikleri gönderin. Mevcut API'nin dokümanları içinMouseInjectionScope
adresine bakın. (Iaa4a8, b/190493367)
Hata Düzeltmeleri
- Kaydırmayla ilgili olarak kaydırılabilir öğeler (hem gecikmeli hem de gecikmeli olmayan) için erişilebilirlik desteği düzeltildi (I6cdb0)
TouchInjectionScope.swipeWithVelocity
iyileştirildi. Artık daha geniş bir giriş değişkeni yelpazesini kabul ediyor ve kaydırma oluşturulamazsa girişte değişiklik öneriyor (I40fbe, b/182477143)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
yayınlanır. 1.1.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
PointerEvent
artık fareyle üzerine gelme etkinliklerini desteklemek içinPointerEventType
değerine sahiptir. (I091fa)- Çocukların, ana cihazın işaretçi girişi sınırlarının dışındaki işaretçi girişini kabul etmesine izin verin. Ebeveynler, PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655) mülkü ile bu çağrıları durdurabilir.
performGesture
veGestureScope
desteği sonlandırıldı ve bunların yerineperformTouchInput
veTouchInjectionScope
getirildi. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için
SemanticsNode
öğesine minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214) - İnceleyebilir özelliğinin yeniden uygulanması (I927bc, b/191017532)
- İnceleyebilir öğesinin parametre adı, oluşturulan öğeyle eşleşecek şekilde değiştirildi (I3a482, b/191017532)
performTouchInput
veTouchInjectionScope
'un yerineperformTouchInput
veTouchInjectionScope
'u kullanıma sunduk. Bu sayede fare gibi diğer modalitelerin de önünü açtık.TouchInjectionScope
,GestureScope
ile aynı yöntemlere sahiptir.movePointerTo
vemovePointerBy
,updatePointerTo
veupdatePointerBy
olarak yeniden adlandırılmıştır. Diğer tüm yöntemler aynıdır.TouchInjectionScope
'ün davranışı, iki küçük ayrıntı dışındaGestureScope
ile neredeyse aynıdır:- İşaretçiler bir hareket etkinliği gönderilmeden hareket ettirilirken aşağı etkinliği gönderilirken (yani
updatePointerTo()
kullanılmış ancakmove()
kullanılmamış ve ardındandown()
çağrılmışsa) önceki uygulama, etkinlik zamanını ileriye götürür ve aşağı etkinliğini göndermeden önce bir hareket etkinliği gönderirdi. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu belirli senaryoda etkinlik zamanını ileri götürmez. - İşaretçi bir hareket etkinliği gönderilmeden hareket ettirilirken yukarı etkinliği gönderilirken (yukarıdakine benzer şekilde) önceki uygulama, etkinlik zamanını ileriye alır ve yukarı etkinliğini göndermeden önce bir hareket etkinliği gönderirdi. Yeni uygulamada bu iki seçenek de yoktur: İşaretçilerin yeni konumları yalnızca yukarı etkinliği aracılığıyla yansıtılır.
Son olarak
TouchInjectionScope
, belirli bir işaretçinin mevcut konumunu almak için yeni bir yöntemcurrentPosition(pointerId: Int)
sunar. (If1191, b/190493367)- İşaretçiler bir hareket etkinliği gönderilmeden hareket ettirilirken aşağı etkinliği gönderilirken (yani
Hata Düzeltmeleri
- Minimum dokunma hedefi amacıyla klibin, dokunma hedefi sınırlarını klip bölgesinin ötesine uzatmasına izin verin. (I43e10, b/171509422)
- Android 12 cihazlarda uzayarak 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ınlanır. 1.1.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
1.1.0-alpha03
derleyicisi, Kotlin1.5.30
'e bağlı olacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Diğer değiştiricileri sarmalamak için
Modifier.inspectable
eklendi. (I1909b, b/191017532) - Bulanıklaştırma kullanım alanlarını, daha yaygın kullanılan klip işaretleri ve TileModes kombinasyonlarıyla basitleştirmek için
BlurredEdgeTreatment
API eklendi. Çoğu kullanım alanında, bulanık içeriğin orijinal içerik sınırlarının dışında oluşturulmasına ve bu sınırların dışındaki bölgelerin şeffaf siyahla bulanıklaştırılmasına ya da içeriğin, içerik sınırlarının dışına çıkan bulanıklık çekirdekleri için en yakın kenarı örnekleyerek içerik sınırlarına kırpılmasına izin verilir. (I6b4b7, b/166927547) - Oluşturma masaüstünde RenderEffect desteği eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklık görsel efektleri eklemenin basit bir yolu olarak OffsetEffect ve bulanıklık değiştiriciyi kullanıma sunduk. (I0f6aa, b/166927547)
- Katmanın içeriğini değiştirmek için
Modifier.graphicsLayer
üzerinde isteğe bağlı olarak yapılandırılabilen RenderEffect API kullanıma sunuldu. Bu, bir bileşimin ve bileşim hiyerarşisindeki alt bileşiimlerin içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547) - AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() yöntemlerine sahiptir (I507f0, b/179239764, b/182397793)
- Erişilebilirliği sağlamak için ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. Bu boyut, semantikte ve işaretçi girişinde kullanılabilir. (Ie861c)
- Bulanıklaştırmaya dayalı RenderEffects için kenar davranışını tanımlamada faydalı olan TileMode.Decal desteğini ekleyin. (I7e8ed, b/166927547)
performScrollToIndex
,performScrollToKey
,hasScrollToIndexAction
vehasScrollToKeyAction
artık kararlı API'dir (I142ae, b/178483889)- Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)
Hata Düzeltmeleri
- BlurredEdgeTreatment işlevinden isBounded yöntemi kaldırıldı. Bunun yerine, şekil parametresinin null olup olmadığı açıkça kontrol ediliyor. (I85d68)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha02
yayınlanır. 1.1.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
- Enjekte edilen hareketler artık zaman için bilgi kaynağı olarak MainTestClock'ın zamanını kullanır.
performGesture
içine yerleştirilen etkinliklerin mevcut zamanı, MainTestClock'ın mevcut zamanına ayarlanır. (Ifb364, b/192064452) DpRect(DpOffset, DpSize)
kurucu eklendi (I2cf16, b/194219828)- DpSize sınıfı eklendi (I7abb1, b/194219828)
Hata Düzeltmeleri
- Vektör grafikleri xml ayrıştırması, VectorDrawable'larda kök renk tonu özellikleri olarak ColorStateList'leri desteklemek için 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ınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
RelocationRequester.bringIntoView
artık parametre olarak bir dikdörtgen kabul ediyor. Bu sayede, bir bileşimin bir bölümünü görüntüye getirebiliriz (Ice2c5, b/194330245)AnimatedImageVector
ve ilgili API'ler artık yeniandroidx.compose.animation:animation-graphics
modülündedir. (I60873)- Taşıma isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
ColorPainter'a benzer şekilde, bir Painter içinde rastgele bir fırçanın çizilmesini desteklemek için BrushPainter API'yi kullanıma sundu
Brush API, BrushPainter içinde sorgulanan bir doğal boyut parametresine sahip olacak şekilde güncellendi (Ia2752, b/189466433)
Kaynak ve hedef dikdörtgenleri kullanan DrawScope#drawImage yöntemi, isteğe bağlı bir FilterQuality parametresi kullanacak şekilde güncellendi. Bu, piksel tabanlı sanat için ölçeklendirildiğinde pikselli olması amaçlanan piksel sanatında kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresi de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)
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 uygulamasının drawsContent'i çağırdığından emin olun.
Daha önce Modifier.paint, Modifier'ler zincirindeki bir yaprak düğüm olarak bekleniyordu. Ancak bu şekilde, birleştirilebilir bir kapsayıcıda (ör. kutu) yapılandırılmasını veya üzerine
Modifier.paint().border()
gibi ek süslemeler eklenmesini engeller. Modifier.paint, belirtilen boyacının içeriğini çizdikten sonra drawContent'i çağırarak değiştirici kalıbıyla davranışta daha iyi tutarlılık elde ederiz. (Ibb2a7, b/178201337, b/186213275) - İletişim kutuları artık platform boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini yanlış olarak ayarlayın. (Iffaed, b/192682388) InfiniteAnimationPolicy
, :compose:ui alanına taşındı (I5eb09, b/160602714)- Eşzamanlı olmayan listeler ve normal kaydırma bileşenleri için anlambilim işlemleri 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ınlanır. 1.0.5 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- derivedStateOf örneklerini izlemeyle ilgili bir kilitlenme düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.ui:ui-*:1.0.4
yayınlanır. 1.0.4 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
'e bağlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.ui:ui-*:1.0.3
yayınlanır. 1.0.3 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
'e bağlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.ui:ui-*:1.0.2
yayınlanır. 1.0.2 sürümü bu taahhütleri içerir.
Oluştur 1.0.2
sürümünü desteklemek için güncellendi. Compose 1.0.2
, Kotlin 1.5.21
ile uyumludur.
1.0.1 sürümü
4 Ağustos 2021
androidx.compose.ui:ui-*:1.0.1
yayınlanır. 1.0.1 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
'e bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0
yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünün önemli özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose sürüm bloguna göz atın.
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız aşağıdaki kilitlenmeyi görebilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Bu sorunu düzeltmek için
build.gradle
dosyanızdaki minSdkVersion değerini geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin sonraki sürümünde7.1
düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0-rc02
yayınlanır. 1.0.0-rc02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- İletişim kutuları artık platform boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini yanlış olarak ayarlayın. (Iffaed, b/192682388)
Sürüm 1.0.0-rc01
1 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0-rc01
yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- ui-tooling modülünü
ui-tooling
veui-tooling-preview
olarak bölme (Iefa28, b/190649014)
API Değişiklikleri
- Desteği sonlandırılan deneysel
FocusManager#moveFocusIn
veFocusManager#moveFocusOut
(I227d7, b/170154986, b/186567354, b/168510304) kaldırıldı - Canvas artık erişilebilirlik için contentDescription parametresini destekliyor. (Ib547c)
PopupProperties
'dakiuseDefaultMaxWidth
,usePlatformDefaultWidth
olarak yeniden adlandırıldı. (I05710)- İletişim kutuları artık ekran genişliğinin tamamını kullanabilir. (I83929, b/190810877)
- HSV ve HSL renk gösterimleriyle ilgili deneysel destek eklendi. (Id7cf8, b/180731008)
Davranış Değişiklikleri
@Preview
Oluştur artıkrememberLauncherForActivityResult()
gibi API'leri kullanan ve bu sahibin varlığına bağlı olan Composable'ları önizlemenize olanak tanıyan birLocalActivityResultRegistryOwner
sağlar. (Ib13d1, b/185693006)@Preview
Oluştur artıkBackHandler
gibi API'leri kullanan ve bu sahibin varlığına bağlı olan Composable'ları önizlemenize olanak tanıyan birLocalOnBackPressedDispatcherOwner
sağlıyor. (Ia1c05, b/185693006)
Hata Düzeltmeleri
InfiniteAnimationPolicy
,androidx.compose.ui:ui
'a taşındı (I5eb09, b/160602714)- AnimatedImageVector, modül yapısının değiştirilmesi 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ınlanır. 1.0.0-beta09 sürümü bu taahhütleri içerir.
API Değişiklikleri
- enum Role ve LiveRegionMode'u özel yapıcıyla satır içi sınıflara dönüştürün (Id1890)
- KeyboardCapitalization, 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, @ExperimentalComposeUiApi olmalıdır. (Iede6c)
- TextAlign, FontSynthesis ve TextDirection artık satır içi sınıflardır. (I212fe)
- TextOverflow, satır içi sınıfa dönüştürülür. (I433af)
- FontStyle artık satır içi bir sınıftır. (I9e48b)
Hata Düzeltmeleri
- Anahtar sabitler şu anda @ExperimentalComposeUiApi. Kodu kullananlar, kararlı hale gelmeden önce özel sabitler tanımlayabilir. (Ia5d48)
- Oluşturma testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tespit edilmiştir:
- Yerel bir bitmap olmadığından
ImageBitmap()
, NullPointerException'a yol açar. - Çizim olmadığından
captureToImage()
, bir sonraki çizim geçişini süresiz olarak bekler (yani kilitlenir). - Yüklenen yazı tipi olmadığından metinler yanlış ölçülür. Tüm karakterlerin sabit yüksekliği yaklaşık 20 piksel, genişliği ise 1 pikseldir.
ComposeTestRule.waitUntil {}
, beklerken ana iş parçacığını çalıştırmaz. Bu nedenle,ComposeTestRule.mainClock.advanceTimeUntil {}
ile aynı şekilde çalışır. Gelecekte daha fazla sınırlamanın tanımlanması beklenmektedir. (I284fa)
- Yerel bir bitmap olmadığından
Profil Kuralları eklendi
Bu sürüm, aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları ekler:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığın profil kuralları,
src/main
veya eşdeğer dizinde bulunanbaseline-prof.txt
metin dosyasında belirtilir. Dosyada satır başına bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme için kullanılan bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan, okunabilir ART profil biçiminin bir üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.Yöntem kuralları aşağıdaki kalıba sahiptir:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Sınıf kuralı ise aşağıdaki kalıba sahiptir:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek içinH
,S
veP
karakterlerinden biri veya daha fazlasıdır.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin,androidx.compose.runtime.SlotTable
sınıfının tanımlayıcı değeriLandroidx/compose/runtime/SlotTable;
olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürülen türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yönteminin imzasıisPlaced()Z
'dir.Tek bir kuralın birden fazla yöntemi veya sınıfı kapsayabilmesi için bu kalıplarda joker karakterler (
**
,*
ve?
) bulunabilir.
Kurallar ne işe yarar?
H
işareti bulunan bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.S
işareti bulunan bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve yöntemin başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.P
işareti olan bir yöntem, 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 maliyetini önlemek için yığınta önceden ayrılması gerektiğini gösterir.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Daha sonra bu yapıları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özgü kompakt bir ikili ART profili oluşturmak için kullanılır. Ardından ART, uygulamanın performansını (özellikle de ilk çalıştırmayı) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bu durumun, hata ayıklama yapılabilir uygulamaları etkilemeyeceğini unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta08
yayınlanır. 1.0.0-beta08 sürümü bu taahhütleri içerir.
API Değişiklikleri
NestedScrollSource
enum, satır içi sınıfla değiştirildi. (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true)
,FocusManager.clearFocus(force = true)
olarak yeniden adlandırıldı (Ia0c41)- Yeni enum değerleri eklendiğinde kapsamlı when ifadeleriyle ilgili sorunları önlemek için enum kullanımları satır içi sınıflara yeniden yapılandırıldı. (I2b5eb)
@ExperimentalComposeUiApi
,PopupProperties
hesabından kaldırılsın mı? (I01fa6)PointerType
, bir enum yerine satır içi sınıf olarak değiştirildi (If5058)- ContentDescription ve Text semantics özellikleri artık tek değer değil liste şeklindedir. Bu sayede, bunları birleştirirken birleştirme yerine olduğu gibi birleştirebilirsiniz. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırıldı veModifier.focusTarget()
(I6c860) ile değiştirildiModifier.onSizeChanged()
veModifier.onGloballyPositioned()
artık satır içi işlevler değil (I727f6, b/186109675)KeyboardType
enum, satır içi sınıfla değiştirildi. (I73045, b/187055290)FocusState
enum,FocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- ImeAction enum, satır içi bir sınıfla değiştirildi. (I18be5, b/187055290)
PlaceholderVerticalAlign
satır içi sınıfa dönüştürülür. (If6290)- TextUnitType artık satır içi bir sınıftır. (I4cba9)
AnnotatedString.withAnnotation
işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak adlandırılıyor. (I0cd0a)- TextUnitType içeren TextUnit kurucusu artık ExperimentalComposeApi yerine ExperimentalTextApi oldu.
Hata Düzeltmeleri
- Beta07'de LazyColumn/Row öğelerinin kaydırma işleminden sonra kısmen gösterilmesine neden olan hata düzeltildi (I8c9ac, b/188566058)
- Artık
detectDragGesures
,detectVerticalGestures
vedetectHorizontalGestures
, konum değişikliğini otomatik olarak tüketiyor. onDrag geri çağrılarında change.consumePositionChange çağrısına gerek yok (I42fc4, b/185096350, b/187320697) - Hizalama çizgileri sağlayan LayoutModifiers düzeltildi. Alt öğelerin hizalama çizgileri değişirken üst öğenin yeniden ölçülmesine neden olan bir hata düzeltildi. (I4401f, b/174315652)
Modifier.onGloballyPositioned()
, tüm değiştiricilerin uygulanmasından sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirecek ş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ınlanır. 1.0.0-beta07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- İnceleyicide kullanılmak üzere
ViewRootForInspector
arayüzü eklendi (Ib70df) SubcomposeLayoutState
artık yeniden kullanılabilir yuvaların sayısını ayarlama özelliğini destekliyor. Yeni bir slota ihtiyaç duyduğumuzda yeniden kullanmak için bu slotları kaldırmak yerine, düzen bu slotları etkin durumda tutar (Ieb981).- KeyEventType enum, satır içi bir sınıfla değiştirildi. (Id670a, b/187055290)
FocusDirection
enum, satır içi sınıfla değiştirildi. (Ib6d03, b/187055290, b/184086802)- İçeriği, gerekli slotId ile önceden oluşturmanıza olanak tanıyan SubcomposeLayout durumunu kaldırma özelliğini kullanıma sunar. Bu durumda, bir sonraki sefer belirli slotId ile alt oluşturmayı denediğimizde bir sonraki ölçüm daha hızlı geçer. (I42580, b/184940225)
- Klip Seçim Kolu eklendi (Iff80d, b/183408447)
- LayoutInspector desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)
Hata Düzeltmeleri
- LazyColumn/Row, artık daha önce görünür olan 2 öğeyi, kaydırıldığında bile etkin durumda tutar (atılmaz). Bu sayede bileşen, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde etkin alt kompozisyonları yeniden kullanabilir. (Ie5555)
AnnotatedString
'dekiTextGeomerticTransform
veTextDecoration
, verildiği şekilde uygulanır. (I61900, b/184760917)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta06
yayınlanır. 1.0.0-beta06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Gezinme Hareketiyle İlgili Çakışmayı Çözme (I1145e)
@ComposeCompilerApi
artık@RequiresOptIn
değil (Iab690)- Koleksiyonu ve öğelerini erişilebilirlik hizmetleri için işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
- Dizine eklenen öğelerin bulunduğu bir listeyi belirli bir dizin içeren öğeye kaydırmaya yönelik
SemanticsActions.ScrollToIndex
ve anahtarlanmış öğelerin bulunduğu bir listedeki öğenin dizin bilgisini almaya yönelikSemanticsProperties.IndexForKey
işlevleri eklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirli bir dizinle kaydıran
SemanticsNodeInteraction.performScrollToIndex
ve bir listeyi belirli bir anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKey
işlevleri eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirli bir dizinle kaydıran
- GraphicLayerInfo'ya ownerViewId eklendi (I19f62)
- Yazı tiplerini assets, File ve FileDescriptor'dan yüklemek için Font() aşırı yüklemeleri eklendi (I5d382)
- Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan erişilebilirlik API'si
error
eklendi (I12997, b/180584804, b/182142737) - Öğeler, File ve FileDescriptor'dan yazı tipi yüklemek için
Font()
aşırı yükleme eklendi (I43007) - AnnotatedString'in
TextFieldValue.Saver
'e kaydedilmesine destek eklendi.addTtsAnnotation
ve withAnnotation yardımcı işlevleriAnnotatedString.Builder
'a eklendi (I8cbdc, b/178446304) - TextUnit kurucu 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ınlanır. 1.0.0-beta05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Deneysel
FocusManager.moveFocus(In)
veFocusManager.moveFocus(Out)
eklendi (Ic5534, b/183746743) - Deneysel
performTextInputSelection
API eklendi (I2dcbb, b/178510628) InputEventCallback
arayüzü desteği sonlandırıldı. Arayüz, herhangi bir herkese açık API'de kullanılamıyordu ve kodda da kullanılmıyordu. (I34a02, b/184003208)TextLayoutResult/createTextLayoutResult
işlevi kullanımdan kaldırıldı. Test için eklenen, kullanılmayan herkese açık bir işlevdir. İşlev, metin oluşturma API'leri için kullanılabilecek bir işlem yapmaz. Bu işlevin desteği sonlandırılmış olup daha sonra kaldırılacaktır. (I80413)
Hata Düzeltmeleri
- Erişilebilirlik kaydırma işlemleri
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0) - ui-test-manifest ve ui-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ınlanır. 1.0.0-beta04 sürümü bu taahhütleri içerir.
API Değişiklikleri
SoftwareKeyboardController
'dekihideSoftwareKeyboard
veshowSoftwareKeyboard
öğelerini sırasıylahide()
veshow()
olarak yeniden adlandırın.- LocalSoftwareKeyboardController için CompositionLocal arayüzünün tamamını sağlayarak ayarlanmasını sağlayın (özellikle testlerde kullanışlıdır) (I579a6)
- LiveRegion erişilebilirlik API'si eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri, kullanıcıyı değişiklikler hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946)
- TextOverflow.Visible özelliği kullanıma sunulmuştur. (Ic8f89)
Hata Düzeltmeleri
- Kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin hızlı kaydırma işleminden sonra yanlış konumlandırılmasına neden olan sorun düzeltildi (Ie4d13, b/183877420) AndroidViewBinding
,AndroidViewBinding
oluşturma hiyerarşisiFragmentContainerView
(Ib0248, b/179915946)AndroidViewBinding
,ComposeView
birFragment
içindeykenFragmentContainerView
aracılığıyla şişirilen parçaları artık doğru şekilde iç içe yerleştiriyor. Bu sayede, bu parçaların durumunu kaydetme ve geri yüklemeyle ilgili sorunlar düzeltildi. (I70eb0, b/179915946)- Compose ViewBinding artık
1.3.2
Fragmanı'na bağlıdır ve yapılandırma değişikliklerinden sonraFragmentContainerView
aracılığıyla şişirilen parçaları tutarlı bir şekilde gösterir. (I0743d, b/179915946)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta03
yayınlanır. 1.0.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- ComposeView'un ViewTree bağımlılıkları için ertelenen kontrol (I8dbbf, b/182466548)
GestureScope
'tekiswipeUp
/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ınlanır. 1.0.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni bir
LocalSoftwareKeyboardController
kompozisyon yerel API'si eklendi. (I5951e, b/168778053) - TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni bir
LocalSoftwareKeyboardController
kompozisyon yerel API'si eklendi. (I84472, b/168778053) - Aşağıdaki
SemanticsMatcher
'ler kaldırıldı:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(If16bd)
- Aşağıdaki
SemanticsMatchers
, @ExperimentalTestApi olarak işaretlendi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(Ia600c)
- Aşağıdaki
SemanticsMatcher
'ler 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ıyla ilgili kısıtlamaları zorunlu kılma (I6aa29, b/174531520)
androidx.compose.ui:ui
artık AppCompat veya Fragment'e bağlı değildir. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 veya sonraki bir sürümü / Fragment 1.3 veya sonraki bir sürümü kullandığınızdan emin olun. Bu sürümler, ComposeView için gereken yaşam döngüsü ve kayıtlı durum sahiplerinin doğru şekilde ayarlanması için gereklidir. (I1d6fa, b/161814404)- navigation-compose hedefinin içinde kullanıldığında bozuk
rememberSaveable { mutableStateOf(0) }
sorunu düzeltildi. (I1312b, b/180042685, b/180701630) - TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni bir
LocalSoftwareKeyboardController
kompozisyon yerel API'si eklendi. (I658b6, b/168778053) ComposeRootRegistry
'ıntearDownRegistry()
(Iddce1) bölümündeki nadir NoSuchElementException hatası düzeltildi
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-beta01
yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- onStart geri çağırma işlevi
detectDragGestures
'e (I67269, b/179995594) eklendi - Boyutlandırma için özgün öğeler olan 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 / basitleştirildi. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Etkileşim etkinliklerini yayınlamaktan / toplamaktan arayüzler sorumludur.
interactionState = remember { InteractionState() }
değeriniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
değerini kullanın.- Bunun yerine:
Interaction.Pressed in interactionState
InteractionSource.collectIsPressedAsState() gibi InteractionSource'daki uzantı işlevlerini kullanmanız gerekir. - Karmaşık kullanım alanları için etkileşim akışını gözlemlemek üzere InteractionSource.interactions parametresini kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerini ve örneklerini inceleyin.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'a AccessibilityManager arayüzü ve LocalAccessibilityManager ekleyin (I53520)
- Desteği sonlandırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için mülk yerine işlev kullanın (I580ed, b/169874631, b/175142755)
- Tür takma adları, temel türlerle değiştirildi:
ColorStop
adlı bankanın yeni adıPair<Float, Color>
SpanStyleRange
artık "AnnotatedString.Range" oldu ParagraphStyleRange
adlı bankanın yeni adıAnnotatedString.Range<ParagraphStyle>
StringAnnotation
adlı bankanın yeni adıAnnotatedString.Range<String>
- (I8dd1a)
- CoreTextField gibi düşük düzeyli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Yerleştirilebilir öğe artık alt düzenin gerçekte ölçüldüğü boyutu temsil eden measuredSize özelliğini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla sekme veya radyo düğmesi koleksiyonunu işaretlemeye olanak tanıyan selectionGroup değiştirici ekleyin (Ie5c29)
compositionLocalOf
vestaticCompositionLocalOf
içindefaultFactory
artık isteğe bağlı değil zorunludur.Bu değişiklik, varsayılan fabrika sağlanmayan, boş olmayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, boş olmayan bir tür için null referansı sağlıyordu.
Boş bırakılabilir türler için varsayılan fabrika olarak
{ null }
değerini sağlayabilirsiniz.Mantıklı bir varsayılan değer sağlanamazsa yerel değişkenleri, null olmayan türlerle kullanmanızı önermeyiz. Makul bir varsayılan değer yoksa
defaultFactory
lambda işlevi bir istisna atmalıdır. Ancak istisna atma, yerel kullanıcıların, tür sistemi tarafından zorunlu kılınmadığı sürece sağlanmasına dair gizli bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Kullanımdan kaldırılan yöntemler kullanıcı arayüzü modüllerinden kaldırıldı (I646f6)
Beden düzenleyiciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
Modifier.tapGestureFilter
kaldırıldı. Bunun yerineModifier.pointerInput { detectTapGestures(...) }
politikasını kullanın. (I266ed, b/175294473)Kısmi tüketim, işaretçi giriş sisteminden kaldırıldı. Kısmi tüketimi koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)
Oryantasyon, temel pakete taşındı. VelocityTracker, ui.gesture alanından ui.input.pointer alanına taşındı. (Iff4a8, b/175294473)
imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector yardımcılarında uzantı işlevidir.
load{Image,Vector,Font}Resource
işlev silindi. (I89130)AnimationClockObservable ve alt sınıfları kaldırıldı. AnimatedFloat kaldırıldı. (Icde52, b/177457083)
Providers, CompositionLocalProvider olarak yeniden adlandırıldı
- Composition kurucusu artık anahtar parametresi kabul etmiyor ve desteği sonlandırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey bir özelliğe dönüştürülmüştür.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
- ComposableLambdaN, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
- snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'ın birleştirme yöntemi artık deneysel değil
- @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değil.
- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
- isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
- Çeşitli üst düzey API'ler taşındı ve farklı dosyalarda yeniden düzenlendi. Kotlin'in dosya sınıfı semantikleri nedeniyle bu durum ikili uyumluluğu bozar ancak kaynak uyumluluğunu etkilemez. Bu nedenle çoğu kullanıcı için sorun oluşturmaz.
- (I99b7d, b/177245490)
ComponentActivity.setContent()
, compose:ui öğesinden kaldırıldı.androidx.activity:activity-compose:1.3.0-alpha01
adresindekini kullanın.viewModel()
veLocalViewModelStoreOwner
, compose:ui'den kaldırıldı.androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
(I6f36b) adresindekileri kullanınModifier.scrollable yeniden tasarlandı. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanılıyor (I4f5a5, b/174485541, b/175294473)
PointerInputModifier'daki CustomEvents desteği kaldırıldı (I02707, b/175294473)
SnapshotStateObserver artık deneysel değil (Id2e6a)
Daha önce desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932)
longPressGestureFilter ve doubleClickGestureFilter kaldırıldı. Modifier.pointerInput'ı yardımcı işlevlerle (ör.detectTapGestures) kullanın (I2fedf, b/175294473)
String.format API'si kaldırıldı. String.format'tan dahili olarak yararlanmamak için çeşitli toString yöntemlerinde yeniden yapılandırılmış kullanımlar kaldırıldı. (Id1290)
dp iddiaları 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
(I15cdc, b/179664814) kaldırıldıModifier.verticalScroll()/horizontalScroll() işlevindeki kaydırma konumu artık tam sayılarla temsil ediliyor (I81298)
FlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış azalma değerleri yerine askıya alma animasyonunun özelleştirilmesine olanak tanır. (I02b86, b/175294473)
Tüm ImeAction geri çağırma işlevleri için aynı işlemi ayarlamak amacıyla yardımcı bir işlev eklendi (I63447, b/179226323)
SoftwareKeyboardController geri çağırma işlevi, kısa süre içinde yeni bir API ile değiştirilmek üzere tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
FontSpan ve FontWeigthStyleSpan artık kullanılmadığından kaldırıldı. (Ie5b56, b/177423444)
Aşağıdaki Material API değişiklikleri yapıldı:
- Varsayılan dolguyu özelleştirmeye izin vermek için Top/BottomAppBar'a contentPadding parametresi eklendi.
- Gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesine ilişkin API yönergelerine uymak için BackdropScaffold'daki parametreler yeniden düzenlendi.
- BottomNavigationItem'deki
icon
parametresi,selected
veonClick
'den sonra olacak şekilde taşındı. - BottomNavigationItem'deki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametreleri yalnızcacontent
olarak yeniden adlandırıldı. ButtonDefaults.buttonColors()
parametreleri yeniden sıralandı. Parametrelerin türü değişmediğinden bu durumun kodunuzda hata oluşturmayacağı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 daha önce olduğu gibi çalışmaz.darkColors()
parametresidarkColors()
'e eklendi.secondaryVariant
Bu renk genellikle koyu temadakisecondary
ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenir.- Yaygın olarak kullanılmadıkları ve yararlı olmadıkları için ElevationDefaults ve animateElevation() herkese açık API yüzeyinden kaldırıldı.
Slider
içindekionValueChangeEnd
,onValueChangeFinished
olarak yeniden adlandırıldı ve null değerini kabul edecek şekilde değiştirildi.- Tutarlılık için
Snackbar
'dakitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolguyu özelleştirmeye izin vermek için
DropdownMenuItem
parametresiDropdownMenuItem
'a eklendi vecontent
,RowScope
'ın bir uzantısı haline getirildi.contentPadding
ModalDrawerLayout
,ModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
,BottomDrawer
olarak yeniden adlandırıldı.- (I1cc66)
Hata Düzeltmeleri
- Compose'da AnimatedVectorDrawable kaynaklarını kullanmak için API eklendi.
<animated-vector>
XML'i AnimatedImageVector olarak yüklemek ve painterFor (I8ea91) ile animasyonlu hale getirmek için animatedVectorResource'i kullanın - TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController kompozisyon yerel 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ınlanır. 1.0.0-alpha12 sürümü bu taahhütleri içerir.
API Değişiklikleri
- UiApplier'dan ViewGroups desteği kaldırıldı. Desteği sonlandırılan emitView bileşenleri kaldırıldı. (Ifb214)
- Modifier.pointerInput artık, yeni bağımlılar için işaretçi girişi algılama coroutine'inin ne zaman yeniden başlatılacağını belirtmek üzere anahtarları hatırlamayı gerektiriyor. (I849cd)
- CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
- Bounds, DpRect (I4b32a) olarak yeniden adlandırıldı
- Test güncellemesi: hasText(), metin alanında hem girişi hem de etiket/ipucu/yer tutucu metinlerini kontrol eder (Iab803)
- viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose altına taşındı. Artık bu bağımlılığı kullanmak için ayrı bir bağımlılığı (androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01) eklemeniz gerekir. (I7a374)
- AccessibilityAction'da null değerine izin verin, AccessibilityAction ve CustomAccessibilityAction'daki işlem etiketini CharSequence yerine String olarak değiştirin (I0dc82)
- Adlandırma kurallarının ImageBitmap ve ImageVector ile daha uyumlu olması için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Alt dize artık bağımsız değişken olarak kullanılarak daha iyi alt dize testi API'leri (Icbe78)
- Özel bir odaklanma sırası belirtmeden FocusRequester kabul eden bir
Modifier.focusOrder()
lambda eklendi. Bu, bir bileşiğe (I4f52a, b/179180978) özel bir odaklanma sırası değil, yalnızca referans belirtmemiz gerektiğinde kullanışlıdır. - ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent yöntemine taşındı. (Icf416)
- Yapıyı bölme ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
- Pop-up, platforma özel olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve
isFocusable
,PopupProperties
(Ieeea5) sürümündefocusable
parametresine taşındı - İletişim kutusu, platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
- LayoutNode'u dahili hale getirdi (I8a7b1, b/175103944)
- Constraints.enforce, Constraints.constrain ile değiştirildi. (I8b8ea)
- loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
- Performans nedeniyle ScrollAxisRange semantikleri artık doğrudan kayan nokta değerleri yerine kayan nokta döndüren lambdaları alır. (If4a35, b/178657186)
- Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantikleri ve semantikleri kontrol etmek için ilgili test yöntemleri eklendi (I8e07a)
- OwnerLayer/OwnerScope/OwnerSnapshotObserver'ı dahili hale getirdik (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, API yönergesiyle daha tutarlı olması ve dahili uygulama sınıflarını herkese açık API'den gizlemek için güncellendi. (Id9e32)
- Genişletme ve daraltma semantik işlemleri eklendi. ModalBottomSheetState'e expand ve halfExpand eklendi (Ib5064)
- Modifier.dragGestureFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, tek eksenli sürükleme için Modifier.draggable'yı kullanın (I0ba93, b/175294473) - Ambiyanslar, Ambiyans -> KompozisyonYerel yeniden adlandırma ile eşleşecek şekilde yeniden adlandırıldı. Ambients eskiden AmbientFoo olarak adlandırılıyordu. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
- Desteği sonlandırılan BaseTextField kaldırıldı. Bunun yerine BasicTextField'i kullanın. (I71368)
- Seçim, temele taşındı. (I7892b)
- Daha önce
state { 0 }
bileşenini kaldırıpremember { mutableStateOf(0) }
gibi kullanımları teşvik ettiğimiz gibi,savedInstanceState { 0 }
bileşenini de kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmalısınız. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir koruyucu nesne iletiyorsanız artıkstateSaver
parametresi içeren yeni bir rememberSaveable aşırı yüklemesini kullanmanız gerekir. Kullanım şu şekilde görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Erişilebilirlik için şifre semantikası eklendi (I231ce)
- Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05)
- Artık performans üzerinde olumlu bir etkisi veya değeri olmadığı için
emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programlarının desteği sonlandırıldı (I0484d) snapshotFlow
vewithMutableSnapshot
artık deneysel değil (I6a45f)- Yeniden derleyiciler artık kapatılabilir. Kapalı yeniden derleyiciler, derleme alt coroutine'leri tamamlanana kadar yeniden derlemeye devam eder. Recomposer.shutDown, kapat ile kontrast oluşturmak için iptal olarak yeniden adlandırıldı. (Ib6d76)
- UiSavedStateRegistry, SaveableStateRegistry olarak, AmbientUiSavedStateRegistry ise AmbientSaveableStateRegistry olarak yeniden adlandırıldı ve her ikisi de androidx.compose.runtime.saveable paketine taşındı. (I30224)
- androidx:compose:runtime:runtime-saved-instance-state yapıtı, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac)
- Kullanıcı arayüzü paketindeki uzun süredir kullanımdan kaldırılmış birçok API silindi. (I2f2dc)
- compose:runtime-dispatch yapısını kullanmayı bırakın. MonotonicFrameClock artık compose:runtime, AndroidUiDispatcher ise compose:ui altında bulunabilir. (Ib5c36)
- Outline.* sınıfları artık veri sınıfı değildir (I4879e, b/178001427)
view.captureToImage()
, değiştirilmeden kaldırıldı. (I7fcd2)- Kaynak içeriğin RGB değerlerini değiştirmek için kullanılan ColorMatrix API'yi kullanıma sundu. ColorFilter API'yi bir arayüz olacak ve PathEffect'in uygulanmasıyla eşleşecek şekilde yeniden yapılandırdı. (Ica1e8)
- Şekil'in createOutline işlevine layoutDirection parametresini ekleyin. Bu sayede, düzen yönüne duyarlı şekiller oluşturabilirsiniz. (I57c20, b/152756983)
- onImeActionPerformed işlevinin desteği sonlandırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
- Sonsuz animasyonlarda uygulanacak bir
InfiniteAnimationPolicy
coroutine bağlam öğesi kullanıma sunuldu.ComposeTestRule
ile test çalıştırırken hariç olmak üzere varsayılan olarak hiçbir politika yüklenmez. (I50ec4, b/151940543) - canDrag, Modifier.scrollable özelliğinden kaldırıldı. (Id66e7, b/175294473)
- Yeni bir parentCoordinates mülküne izin vermek için LayoutCoordinates.parentCoordinates, LayoutCoordinates.parentLayoutCoordinates olarak yeniden adlandırıldı. parentCoordinates mülkü artık üst değiştiricinin LayoutCoordintes özelliğini sunar. Bu, onSizeChanged() ve onGloballyPositioned() için daha kapsamlı kullanım alanları sağlar (Idfbfd, b/177926591)
- tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine, detectTapGestures işleviyle birlikte Modifier.clickable veya Modifier.pointerInput kullanın. (I6baf9, b/175294473)
- SaveableStateRegistry'nin unregisterProvider işlevi kaldırıldı. Bunun yerine registerProvider(), artık kaydı iptal etmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739)
- rememberSavedInstanceState(), rememberSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
- CoreText ve CoreTextField, herkese açık API'den kaldırıldı
- Desteği sonlandırılan SelectionContainer aşırı yüklemesi kaldırıldı
- (I99c19)
- Doğrudan WindowManager'a eklenen/kaldırılan hiyerarşilerde Compose'un kullanıldığı testler artık daha kararlı. (Ie81ed, b/175765614)
- Recomposer.current() kaldırıldı. [Soyut]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönetilen, yavaşça oluşturulan, pencere kapsamlı Recomposer'ları kullanır. Ana makine yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon tikleri duraklatılır. (I38e11)
- Recomposer.runningRecomposers artık işlemdeki devam eden derleme durumunu gözlemlemek için salt okunur RecomposerInfo'dan oluşan bir genel StateFlow sunuyor. Artık desteği sonlandırılmış olan Recomposer.current() yerine bu API'yi tercih edin. (If8ebe)
- Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate adlı sınıftan androidx.compose.runtime.saveable adlı sınıfa taşındı (I77fe6)
- EditCommands, AnnotatedString değerini kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve çok stilli metin düzenleme henüz uygulanmamıştır. (I4c3ea)
- Uptime ve Duration kaldırıldı. (Ib9bf4, b/177420019)
- CompositionData.asTree() ve ilgili API'ler ayrı bir ui-tooling-data modülüne taşındı ve deneysel olarak işaretlendi (Ic95b8)
- RounderCornerShape, CutCornerShape ve CornerBasedShape'taki parametreler, şeklin rtl yönünde otomatik olarak yansıtılmasını desteklemek için sol/sağ yerine başlangıç/bitiş olarak yeniden adlandırıldı. AbsoluteRounderCornerShape ve AbsoluteCutCornerShape, otomatik yansıtmanın istenmediği durumlar için kullanıma sunulmuştur. (I61040, b/152756983)
Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden yapılandırıldı. Arayüzde artık tür parametresi de kullanılmamaktadır.
Bu, kaynak kod uyumluluğunu etkilemeyecek ancak ikili programda uyumsuzluk yaratan dahili bir değişikliktir. (I3b922, b/169406779)
İstemsiz olarak herkese açık olan StringBuilder.deleteAt işlevini kaldırın (Id6ed9)
Hata Düzeltmeleri
- Başka bir bileşimin alt öğeleri olan görüntü hiyerarşilerine yerleştirilen ComposeViews artık üst öğelerinin alt bileşimlerini barındırıyor (I92883)
- ImageBitmap nesnelerini yüklerken kaynak çizilebilir önbelleğini yeniden kullanmak için compose'in 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ınlanır. 1.0.0-alpha11 sürümü bu taahhütleri içerir.
API Değişiklikleri
- WithConstraints, BoxWithConstraints olarak yeniden tasarlandı ve foundation.layout alanına taşındı. (I9420b, b/173387208)
- Key.DPadUp desteği sonlandırıldı. Bunun yerine Key.DirectionUp işlevini kullanın. (Iab335, b/177954892)
- Sahip arayüzü artık dahili. (If8e35)
- Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
- PopupPositionProvider'ı, global koordinatlar yerine pencereye göre koordinatlar kullanacak şekilde değiştirir. parentGlobalBounds öğesini anchorBounds olarak yeniden adlandırır ve windowGlobalBounds öğesini windowSize: IntSize olarak değiştirir (I2994a)
- Süre ve Uptime, Uzun milisaniye ile değiştirilecek. Bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldırır. (Ia33b2, b/175142755, b/177420019)
- AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365)
- Vektör grafiklerinin köküne uygulanan tonlamanın ayrıştırılmasını desteklemek için vektör grafikleri API'si güncellendi. (Id9d53, b/177210509)
- Cihazları ayırt etmek için PointerInputChange'e toolType eklendi (Iac787, b/175142755)
- AmbientWindowManager, AmbientWindowInfo olarak yeniden adlandırıldı (I2686a, b/177084714, b/177084983)
- Küresel koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)
- İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsLayer eklendi. (I315df)
- FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiştir. (I2d898, b/177000821)
- SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, horizontalScrollAxisRange olarak yeniden adlandırıldı. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
- PointerInputData kaldırıldı ve PointerInputChange, PointerInputData'nın tüm alanlarını içerecek şekilde değiştirildi. Herhangi bir genel API'de kullanılmadıkları için PointerInputEvent ve PointerInputEventData'yı dahili hale getirdik. (Ifff97, b/175142755)
- DP'nin ham piksele dönüştürülmesini desteklemek için GraphicsLayerScope'nun yoğunluğunu güncelledik. (Ied528, b/176819695)
- Matris API'si, satır ana sıralamasını takip edecek ve SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığını içsel olarak eşleştirmek için farklı matris temsilleri arasındaki dönüşümlere yardımcı olacak dizin sabitleri sağlayacak şekilde güncellendi. (I432e6)
- Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
- String.fintPrecedingBreak ve String.fingFollowingBreak, InternalTextApi'ye taşındı. (I657c4)
- androidx.compose.ui.util.isSurrogatePair, herkese açık API'den kaldırıldı. (Ia9494)
- TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı
- TransformedText artık bir veri sınıfı değildir (Ie672a)
data class
, aşağıdaki sınıflardan kaldırıldı:- InlineTextContent
- LocaleList (I605c7)
- Aşağıdaki sınıflar artık veri sınıfı değildir:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
- VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4)
- İşlev referansı parametre türü (I5e1bd) eklendi
- InspectorNode'a (Ice42f) dönüştürülmüş sınırları ekleme
Hata Düzeltmeleri
- onCommit, onDispose ve onActive için desteği sonlandırıldı. Bunun yerine SideEffect ve DisposableEffect API'leri kullanılmalıdır (If760e)
Yazı tipi/yazı tipi ailesi/yazı karakteri için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Baş harfi küçük olan önceki fabrika işlevleri kullanımdan kaldırıldı
- Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürür
- Alt sınıfların kurucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulmalarını sağladı.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
ComposeTestRule
'u genişleten veComposeTestRule
'dan kaldırılansetContent
'yi tanımlayanComposeContentTestRule
tanıtıldı.ComposeTestRule
döndüren ve sizin için bir Etkinlik başlatmayan bircreateEmptyComposeRule()
fabrika yöntemi eklendi. Testiniz sırasında etkinliğinizi başlatmak istediğinizde (ör.ActivityScenario.launch
(I9d782, b/174472899) kullanarak) bunu kullanın.animateAsState artık animateFooAsState olarak değişti. Foo, animasyon uygulanan değişkenin türüdür. Ör. Float, Dp, Offset vb. (Ie7e25)
Resim ve simge için içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c)
displaySize değerini kaldırın. Genellikle onRoot() boyutunu veya en azından pencere boyutunu kullanmak daha iyidir. (I62db4)
OnSizeChanged, düzenin içeriğinin boyutunu bildiriyordu. Artık boyutu, değiştirici zincirindeki konumunda raporlar. (I36b78, b/177562900)
emit() API'si ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler aynıdır, yalnızca Compose (I4137b) adlandırma kurallarına uymak için farklı bir ada sahiptir.
TextFieldValue, AnnotatedString değerini kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve çok stilli metin düzenleme henüz uygulanmamıştır.
- EditingBuffer kurucu parametrelerinden
initial
kaldırıldı. (I326d5)
- EditingBuffer kurucu parametrelerinden
invalidate ve compositionReference() işlevlerinin desteği sonlandırıldı. Bu işlevlerin yerine sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri kullanılmalıdır. (I583a8)
AnnotatedString, kotlin.CharSequence'ten türetilecek şekilde değiştirildi. Bu nedenle length ve subSequence artık örnek işlevleridir ve uzantı işlevleri kaldırılmıştır. (Iaf429)
RememberObserver, CompositionLifecycleObserver'ın yerini aldı ve CompositionLifecycleObserver'ın desteği sonlandırıldı.
RememberObserver
, değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemlerleCompositionLifecycleObserver
'in yerini alır. Yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bu, önerilen uygulamadır ve olmaya devam edecektir. Ancak bir referans bir bileşimde birden fazla kez hatırlandıysaonEnter
yalnızca bir kez çağrılırken her referans içinonRemembered
çağrılır. NesneWithConstraints
veScaffold
gibi alt kompozisyonlarda kullanıldıysaonEnter
birden çok kez çağrıldı. Bu da tekonEnter
çağrı garantisini güvenilir kılmıyor veRememberObserver
için kaldırıldı.RememberObserver
,RememberObserver
örneğiremember
'ye iletilen geri çağırma işlevinden döndürülürse ancak derleme durumunda hatırlanmadıysa ve bu nedenle hiçbir zamanonRemembered
çağrılmamışsa çağrılanonAbandoned
'yi ekler. Bu durum, bir istisna, derlemeyi tamamlanmadan sonlandırırsa veya derleme, derleme oluşturulduğu durum artık geçerli olmadığı veya başka bir şekilde artık gerekli olmadığı için atılırsa ortaya çıkabilir. Yukarıdaki tek referans önerisini izleyenRememberObserver
örneği harici bir kaynağı izliyorsa hemonForgotten
hem deonAbandoned
, kaynağın artık gerekli olmadığını gösterir. Nesne,onRemembered
içinde başlatılan işi veya ayrılan kaynakları izliyorsaonRemembered
çağrılırsaonAbandoned
çağrılmayacağındanonAbandoned
yoksayılabilir. (I02c36)2 veya daha fazla TextUnit arasındaki aritmetik işlemler desteği sonlandırıldı. Int.sp ve Int.em gibi uzantı işlevlerine tercih edilen TextUnit.Sp ve TextUnit.Em işlevleri kullanımdan kaldırıldı. (I48369)
Açıkça herkese açık kaynak belirtilmeyen (ör. public.xml aracılığıyla) kütüphanelerdeki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)
ScrollableColumn/Row desteği sonlandırıldı. ScrollableColumn, büyük bir kaydırılabilir içeriğiniz olduğunda LazyColumn'a kıyasla daha az verimlidir. Bunun nedeni, LazyColumn ile yalnızca görünür öğeleri oluşturabilmemiz/ölçebilmemiz/çizmemizdir. Kullanıcıların verimsiz bir yönteme başvurmasını önlemek için ScrollableColumn ve ScrollableRow için desteği sonlandırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)
fabrika yöntemi.items(items: List)
veitemsIndexed(items: List)
artık uzantı işlevleri olduğundan, kullanıldığında bunları manuel olarak içe aktarmanız gerekir. Diziler için yeni uzantı aşırı yüklemeleri:items(items: Array)
veitemsIndexed(Array)
(I803fc, b/175562574)Lütfen ImeAction.NoAction yerine ImeAction.None kullanın
- Lütfen ImeAction.Unspecified (Ie1bcc) yerine ImeAction.Default kullanın
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
TextInputService.onStateUpdated, updateState olarak yeniden adlandırıldı (Id4853)
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ınlanır. 1.0.0-alpha10 sürümü bu taahhütleri içerir.
Zararlı Değişiklik
Dahili derleyici API'sinin yeniden yapılandırılması, tüm
@Composable
işlevleri tamamlandıktan sonra, derleme sonucunda oluşturulan düğümlerde yapılan değişikliklerin derlemenin "değişiklikleri uygula" aşamasında toplu olarak yapılmasına olanak tanır.Bu, davranışta önemli bir değişikliktir. Nod'lar artık değişiklikler uygulanana kadar dahili ve deneysel API'lerden kullanılamayacağından uygulama kodunu etkileyebilir. Bu sorun genellikle, kodu
SideEffect
bileşeninde bu tür bağımlılıklarla çevreleyerek kod yürütmeyi düğümler oluşturulup başlatılana kadar erteleyerek çözülebilir. (I018da)
API Değişiklikleri
- Özel bir odak geçiş sırası belirtmek için kullanılabilen Modifier.focusOrder() eklendi (I90cf5, b/175899543, b/170155556, b/170155429)
- Desteği sonlandırılan focusObserver kaldırıldı. Bunun yerine onFocusChanged veya onFocusEvent kullanılmalıdır (I3ecb9, b/175156387)
- EditOperations API Değişiklikleri
- EditOperation, EditCommand olarak yeniden adlandırıldı
- EditOperation somut uygulamaları için komut son eki eklendi
- EditCommand'lar artık veri sınıfları değildir
- EditOperation.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() işlevi mülk olarak değiştirildi. (I973f7)
- ui-test modülü artık test edilen kullanıcı arayüzleri için yeniden derleyicilerin oluşturulmasını yapılandırabilecek (Ibebd8)
- Hız, bileşen parçaları ve matematiksel işlemler içerecek şekilde değiştirildi. (Ib0447)
- Benzer deneysel API ek açıklamalarıyla tutarlı olması için
@ExperimentalTesting
,@ExperimentalTestApi
olarak yeniden adlandırıldı (Ia4502, b/171464963) - Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5)
- Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- layoutnode sınırları değiştiğinde sahibi bilgilendirmek için geri çağırma işlevi ekleyin. (I72fd1)
- Belirtilmemiş sabit içeren satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
[Abstract]ComposeView API'lerini, oluşturma tabanlı görünümlerin geri dönüştürülmesine izin verecek şekilde genişletin. Bu API'ler, daha sonra yeniden oluşturmak için oluşturma işlemlerini kaldırır. Alt kompozisyon oluşturmak için pencere kapsamlı Recomposer'ları ve CompositionReference'ları yükleyip keşfetmek üzere API'ler ekleyin.
[Abstract]ComposeViews bileşeninin bertaraf stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış, pencerenin ayrılması durumunda bertaraf etmektir. (I860ab)
Any.identityHashCode() herkese açık API'si kaldırıldı (I025d7)
toStringAsFixed API'si kaldırıldı ve bunun yerine doğrudan String.format kullanıldı. (Iaba6b)
Foundation Strings.kt'ye açma/kapatma düğmesi ekleme (I4a5b7, b/172366489)
nativeClass, ui modülüne taşındı ve dahili hale getirildi. equals uygulamalarında nativeClass kullanımı, bunun yerine "is MyClass" olarak güncellendi. (I4f734)
Modifier.focus() ve Modifier.focusRequester() işlevlerinin desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
SelectionManager'da seçilebilir öğe güncellemelerini bildirmek için SelectionRegistrar.notifySelectableChange eklendi. (I6ff30, b/173215242)
Çeşitli ana hat uygulamalarında sınırlayıcı dikdörtgeni elde etmek için Outline.bounds mülkü kullanıma sunuldu. (I16e74, b/175093504)
TestUiDispatcher kullanımdan kaldırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
ImeOptions ve KeyboardOptions artık veri sınıfı değildir (I3c898, b/168684531)
VisualTransformation API Değişiklikleri
- OffsetMap, OffsetMapping olarak yeniden adlandırıldı
- OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı
- PasswordTransformation artık veri sınıfı değildir
- OffsetMapping kendi dosyasına taşındı
- (I0bdf3)
Position, DpOffset olarak yeniden adlandırıldı ve getDistance() kaldırıldı (Ib2dfd)
Dp.isFinite() işlevi, Dp.isFinite (I50e00) değerine değiştirildi
Hata Düzeltmeleri
- Yeniden derleyici artık mevcut durumunun akışını gösterir. Bu sayede, etkinliğini ve ilişkili efektlerin etkinliğini izleyebilirsiniz. (Ifb2b9)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent aracılığıyla erişilebilir (I87c57, b/173086397)
animate()
artıkanimateAsState()
ile değiştirildi. Bu değişiklik,T
yerineState<T>
döndürür. Geçersiz kılma kapsamı, State değerinin okunduğu yere daraltılabileceğinden bu, daha iyi performans sağlar. (Ib179e)- Semantics role API'yi ekleyin ve tıklanabilir, seçilebilir ve değiştirilebilir SemanticsModifier'a parametre olarak Role ekleyin. Modifier.progressSemantics özelliği, Kaydırma Çubuğu'nun da kullanabilmesi için değiştirildi. (I216cd)
- Animasyonları arasında karşılıklı münhasırlığı sağlayan yeni coroutine tabanlı API
Animatable
.- Çok boyutlu bozulma animasyonunu destekleyen 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ınlanır. 1.0.0-alpha09 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Desteği sonlandırılan KeyEvent.Alt kaldırıldı. Bunun yerine KeyEvent.isAltPressed işlevini kullanın. (Idd695)
- Modifier.keyInputFilter ve Modifier.previewKeyInputFilter desteği sonlandırıldı. Bunun yerine Modifier.onKeyEvent ve Modifier.onPreviewKeyEvent kullanın (Idbf1b, b/175156384)
- Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent'i kullanın (I30f17, b/168511863, b/168511484)
- İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope adlı API'nin adı AwaitPointerEventScope olarak, handlePointerInput() adlı API'nin adı da awaitPointerEventScope() olarak değiştirildi. (Idf0a1, b/175142755)
- Autofill API artık deneysel API'dir ve etkinleştirilmesi gerekir (I0a1ec)
- FocuSRequester örnekleri oluşturmak için yapıyı bozma beyanları ekleme (I35d84, b/174817008)
- accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
- Özel etkinlikler, askıya alınmış işaretçi girişi API'sinden kaldırıldı (Ia54d5, b/175142755)
- SelectionRegistrar'da birkaç yeni işlev kullanıma sunuldu ve onPositionChange işlevi notifyPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
- Dahili olarak işaretlediğimiz diğer LayoutNode üyeleri (I443c6)
- LayoutInfo, araç ve test tarafından kullanılmak üzere kullanıma sunuldu (I9b190)
- AndroidOwner tarafından dahili hale getirildi (Ibcad0, b/170296980)
- ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
- İç içe yerleştirilmiş kaydırma sistemi eklendi. Daha fazla bilgi için Modifier.nestedScroll'a bakın (I36e15, b/162408885)
- subcomposeInto(LayoutNode) işlevi dahili hale getirildi (Id724a)
Applier
arayüzü, ağaç oluşturmayı yukarıdan aşağıya yerine aşağıdan yukarıya basitleştirmek için değiştirildi.insert()
yöntemiinsertTopDown()
olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()
) eklendi.Uygulayıcı, daha iyi performans gösterene bağlı olarak
insertTopDown()
veyainsertBottomUp()
'ü kullanarak düzenlediği ağaca düğüm ekler.LayoutNode
veView
gibi bazı ağaçların alttan yukarıya doğru oluşturulması, yukarıdan aşağıya doğru oluşturulmasından çok daha verimlidir. Bu değişiklikten önce, aşağıdan yukarıya doğru uygulamak için bir dizi ekleme gerekliydi. Bu eklemelerin, performans için aşağıdan yukarıya doğru oluşturma işlemi gerektiren her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte,Applier
, ağacı aşağıdan yukarıya doğru oluşturmak içininsertBottomUp()
'ü, ağacı yukarıdan aşağıya doğru oluşturmak için iseinsertTopDown()
'yi geçersiz kılar. (Icbdc2)AndroidDialogProperties özelliğine dismissOnBackPress ve dismissOnClickOutside özellikleri eklendi. Bunlar, iletişim kutusunun onDismissRequest lambda işlevinin ne zaman çağrılacağını yapılandırmaya olanak tanır. (If5e17)
Rastgele öğe biçimlerinden (PNG'ler gibi) veya VectorDrawable'lardan Painter nesnelerini opak olarak yüklemeyi işlemek için painterResource API eklendi. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Bu yöntemi çağırarak resim kompozisyonlarında veya ressam değiştiricilerinde kullanılacak bir Painter nesnesi elde edebilirler. (I2c703, b/173818471)
Alt öğelerin anlamlarını temizlemek ve yeni anlamlar ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
ContentDrawScope, DrawScope ile birlikte olması için ui-graphics modülüne taşındı. (Iee043, b/173832789)
Kalın çizgili şekillere farklı desenler sağlamak için PathEffect grafik API'si kullanıma sunuldu. PathEffect'in beklenen/gerçek uygulaması lehine NativePathEffect'in desteği sonlandı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. ComposeTestRule (I433f3) aracılığıyla kaydedilebilir ve kayıtları iptal edilebilir.
ComposeIdlingResource'ın küresel (kaydetme/kaydetmeme) kaydı ve ComposeIdlingResource'a saatlerin küresel (kaydetme/kaydetmeme) kaydı kaldırıldı (I32660)
Hata Düzeltmeleri
- Ofset değiştiricilerdeki lambdalar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader ve SlotWriter, herkese açık API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretlenmişti. Artık bu özellikler, oluşturma modülüne dahil edildi.
CompositionData ve CompositionGroup, kompozisyon bilgilerini ayıklamak için kullanılacak ui-tooling API'nin yerine eklendi. Bunlar herkese açıktır ancak ui-tooling API'nin yorumladığı ham bilgileri sağladıkları için ui-tooling API dışında kullanılmak üzere tasarlanmamıştır (I31a9c)
Çizim ortamının boyut bilgileri mevcut olduğunda gölgelendirici örneğini yavaşça oluşturmak için ShaderBrush yeniden yapılandırıldı. Bu, özel DrawModifier uygulamaları uygulamak zorunda kalmadan, bir kompozisyonun tüm çizim sınırlarını kompozisyon sırasında kaplayan degradeleri tanımlamak için kullanışlıdır.
Gradyan işlevi oluşturucu API'leri, Gradyan nesnesinde fabrika yöntemleri lehine kullanımdan kaldırıldı. (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed işlevleri kullanımdan kaldırılıyor. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)
Desteği sonlandırılan BuildCompat.isAtLeastR (Idb37e)
AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. annotatedStringBuilder işlevi kullanımdan kaldırıldı. (Idfe0b)
Değerleri radyana dönüştürmek için Float ve Double'daki uzantı yöntemleri kaldırıldı. Yalnızca kullanıldığı yer olan PathParser uygulamasında özel bir işlev olarak taşındı (I25f52)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
yayınlanır. 1.0.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kapatma (I2b706) anlamsal işlemini ekleme
- DrawModifier API'leri, androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılan API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemler içeren DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
- Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca API geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
- Özel düzenlerin ve düzen değiştiricilerin, çizimleri için bir grafik katmanı ekleyerek bir alt öğe yerleştirmesine olanak tanıyan placeable.placeWithLayer() ve placeable.placeRelativeWithLayer() adlı yeni yöntemler eklendi. Bu sayede, önce yeniden çizimleri optimize edebiliriz. Böylece, bir alt öğeyi taşımamız gerektiğinde içeriğini yeniden çizmemiz gerekmez. İkinci olarak, bir alt öğe için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831)
<T>
, SubcomposeLayout beyanından kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- drawLayer için kolaylık sağlamak amacıyla Modifier.scale/rotate API'leri eklendi.
Modifier.drawOpacity
,Modifier.alpha
olarak yeniden adlandırıldıModifier.drawShadow
,Modifier.shadow
olarak yeniden adlandırıldı (I264ca, b/173208140)
- PointerInputData'nın çalışma süresi ve konum alanlarını boş bırakılamayan hale getirdik. (Id468a)
- MaterialTheme artık seçim tutamaçlarının ve seçim arka planının doğru renklerini ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırma işlevi sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TransformOrigin API'si,
pivotFractionX
vepivotFractionY
değerlerinicomponent1
vecomponent2
olarak döndürmek için yapı bozma söz dizimine sahip olacak şekilde güncellendi (If43c4, b/173586560) - Compose yönergeleriyle tutarlılığı kontrol etmek için birleştirilebilir lambda parametre adlandırma ve konumu için lint denetimi eklendi.
Ayrıca, son lambda adları olarak
children
kullanan bazı API'ler, lint kontrolüne ve yönlendirmeye görecontent
olarak taşındı. (Iec48e) - Bir tuş etkinliği gönderilirken Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol etmek için API eklendi. (I50ed9)
- Yeni bir
Modifier.drawLayer()
aşırı yükleme işlevi eklendi. Yeni bir GraphicsLayerScope'da bir lambda bloğu alır. Bu blokta, katman parametrelerini durum değişikliği olduğunda yeniden oluşturma ve yeniden düzeni atlamaya izin verecek şekilde tanımlarsınız. DrawLayerModifier, mantığını LayoutModifier'ın placeable.placeWithLayer() yöntemine taşımaya hazırlanırken artık şirket içi bir sınıftır (I15e9f, b/173030831) - Son eklerinde
Ambient
bulunan Ambient'ler kullanımdan kaldırıldı ve diğer Ambient'ler ile Compose API yönergelerine uygun olarak Ambient önekiyle yeni mülklerle değiştirildi. (I33440) androidx.compose.ui.text.Typeface
,androidx.compose.ui.text.font.Typeface
'e taşındı (Ic2b81)- Anlamsal bağımsız değişken mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Yönlendirme kilitleme dahil olmak üzere yeni sürükleme hareketi algılayıcısı, işaretçi giriş API'sini askıya alır. (Icef25)
- VectorAsset, ImageVector olarak yeniden adlandırıldı. API yönergelerine göre ImageVector'ın iç sınıfı olması için VectorAsset taşındı ve Builder olarak yeniden adlandırıldı. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder için typealias eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- PlacementScope'un place() işlevi için zIndex parametresi ekleyin. Böylece Modifier.zIndex(), artık LayoutModifier olarak çalışır ve tüm özel düzenler, alt öğelerinin zIndex'lerini doğrudan yerleşim bloğunda ayarlayabilir (I711f7, b/171493718)
- Temel anlambilim özellikleri kullanıcı arayüzüne taşındı (I6f05c)
- place(Offset) ve placeRelative(Offset) işlevleri kullanımdan kaldırıldı. Bunun yerine, int ofset'leri olan aşırı yüklemeleri kullanın (I4c5e7)
- Daha önce desteği sonlandırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı, Modifier.onGloballyPositioned'ı kullanın. Modifier.onDraw kaldırıldı. Modifier.onDrawBehind'i kullanın. Modifier.plus kaldırıldı. Modifier.then işlevini kullanın. Color.Unset kaldırıldı. Color.Unspecified'i kullanın. PxBounds sınıfı kaldırıldı. Bunun yerine Rect sınıfını kullanın. (Ie9d02, b/172562222)
- Hizalama arayüzü güncellendi ve çalışır hale getirildi. (I46a07, b/172311734)
- Yeni askıya alınmış işaretçi girişi kullanılarak dokunma, iki kez dokunma, uzun basma ve basma göstergesi için hareket algılayıcı eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmasını kolaylaştıran birkaç yardımcı program da eklendi. (I00807)
id
,LayoutIdParentData
içinlayoutId
olarak yeniden adlandırıldı.Measurable.id
,Measurable.layoutId
olarak yeniden adlandırıldı. (Iadbcb, b/172449643)- Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan yeni çoklu dokunma hareket algılayıcı. (Ic459d)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Testlerde zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
İş parçacığı tabanlı kaydırma API'leri ekleyin:
Ekran kaydırma kontrolü için LazyListState.snapToItem ve LazyListState.smoothScrollBy'nin yanı sıra daha düşük düzey API'ler ekler. Bu API'ler, kaydırma işlemini kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, geri dönmeden önce kaydırma işleminin tamamlanmasını bekler. (Ie5642)
Modifier.focusable'ın temele eklenmesi gerekiyor. Doğru anlam ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)
AnimationClockTestRule'daki yöntem ve özelliklerin
clock
'ye (I7ea3d, b/173399709) devredilebilecek varsayılan uygulamalarını sağlayınAndroidComposeTestRule artık özel etkinlik başlatıcıları kabul edebilir (Ib8288, b/153623653, b/154135019)
TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. Bunun yerine TextLayoutResult.getLineEnd artık yeni bir parametreye (visibleEnd) sahiptir. (I73282)
Güncellenen TextFieldValue API
- TextFieldValue.composition özelliği salt okunur hale getirildi
- geçersiz seçim aralığı için kaldırıldı istisnası atıldı (I4a675, b/172239032)
Metin okuma motoru için TtsAnnotation desteği. (I54cc6)
Animasyonları coroutine'lerde çalıştırmak için yeni API'ler (Ied662)
Hata Düzeltmeleri
- Kutu'nun alignment parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricileri offset olarak yeniden adlandırıldı. Artık durum yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
- TextInputService#onStateUpdated işlevine resetInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
- Kompozit işlevlerdeki değiştirici parametreler için lint denetimi eklendi. Bu dil bilgisi denetimi, parametrenin adlandırmasını, döndürme türünü, varsayılan değerini ve sırasını, Oluşturma yönergeleriyle tutarlı olup olmadığını kontrol eder. (If493b)
- TestAnimationClock'ın MonotonicFrameClock tarafından yönlendirilmesine izin vermek için geçici olarak eklenen seçenek (I1403b, b/173402197)
- Android yazı tipi sarmalayıcısı eklendi.
typeface
işlevi (ör.typeface(Typeface.DEFAULT)
) aracılığıyla Android yazı tipi yükleyebilirsiniz. AyrıcatypefaceFromFontFamily()
,typeface()
olarak yeniden adlandırıldı (I52ab7) - Düzenleyici fabrika işlevlerinin Düzenleyici'de uzantı olarak tanımlanıp tanımlanmadığını kontrol etmek için lint denetimi eklendi. Böylece, işlevler birbirine sorunsuz bir şekilde bağlanabilir. (I07981)
- Eski ui-test modülünü ve onun stub'larını kaldırın (I3a7cb)
- Recomposer artık EmbeddingContext'i kabul etmez; gerekli planlama bağımlılıkları effectCoroutineContext'ten alınır. FrameManager desteği sonlandırıldı. Platform entegrasyonlarının kendi genel anlık görüntü işlemelerini başlatması gerekir. (I02369)
- Stil bilgilerini erişilebilirlik düğümüne iletin. (If5e8d)
- Diğer birimlerle tutarlılık sağlamak için TextUnit.Inherit, TextUnit.Unspecified olarak yeniden adlandırıldı. (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ınlanır. 1.0.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Düzensiz ölçeklendirme kullanım alanlarını desteklemek amacıyla yatay ve dikey eksenler için ölçek faktörlerini birbirinden bağımsız olarak temsil etmek üzere ScaleFactor satır içi sınıfı kullanıma sunuldu.
- ContentScale'a computeScaleFactor yöntemi eklendi
- Kaynak sınırlarını hedefi tamamen kaplayacak şekilde uzatmak için tekdüze olmayan ölçeklendirme yapmak üzere ContentScale.FillBounds eklendi.
- ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- Hizalama oluşturmak için BiasAlignment ve BiasAbsoluteAlignment fabrikaları eklendi. (Iac836, b/169406772)
- Geliştiricinin zorla odağı temizlemesine izin verin. (I90372)
- Oluşturma bölümündeki Görünümler için yüksekliğin ç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'lerindeki 3D dönüşümleri (rotationX/rotationY) tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
- Geri çağırma işlevi olmadan SelectionContainer eklendi (Ibfadb)
- ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad)
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7)
- Kafa karıştırıcı olduğu için drawShadow() değiştiriciden opaklık kaldırıldı. (I82c62, b/171624638)
- MeasureResult, MeasureScope'tan çıkarıldı. (Ibf96d, b/171184002)
- androidx.compose.ui altındaki birkaç düzen sembolü, androidx.compose.layout.ui altına taşındı. (I0fa98, b/170475424)
- Desteği sonlandırılan FocusState2 (I686cb, b/168686446) kaldırıldı
- ZIndexModifier artık dahili (I1808b, b/171493718)
- Gereksiz kutucuklama işlemlerini önlemek için Size parametrelerindeki lerp yönteminin döndürdüğü tür, null olmayan bir Size döndürecek şekilde güncellendi. (Ib0044)
- kotlinx-coroutines-test'in runBlockingTest yöntemini kullanarak kompozisyon çerçeve etkinliklerini beklemek için Compose'un MonotonicFrameClock'ına dayanan kodu test etmek üzere TestMonotonicFrameClock eklendi (I4402f)
- GestureScope.localToGlobal (I15299, b/171462785) kaldırıldı
onAllNodesWithSubstring
bulucu eklendi (I81dd7, b/171462889)- androidx.ui.test modülünün desteği sonlandırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4'e (I452e8) geçin
Hata Düzeltmeleri
- captureToBitmap, captureToImage olarak değiştirildi. (I86385)
- foundation.Text desteği sonlandırıldı ve material.Text ile değiştirildi. Bir temadan değer tüketmeyen temel, tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
- TextField'leri KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
- KeyboardOptions öğesini ImeOptions olarak yeniden adlandırın (I82f36)
- KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
- provideDefault, ambiyans sağlamaya alternatif olarak eklenmiştir ve yalnızca önceden sağlanmış bir ambiyans değeri olmadığında ayarlanacak ambiyans değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'i kullanın. (I896eb)
- ui-test-junit4 modülü kullanıma sunuldu (Ib91f8)
relativePaddingFrom
,paddingFrom
olarak yeniden adlandırıldı.paddingFromBaseline
değiştiricisi, düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtmek için kolaylık sağlamak amacıyla eklendi. (I0440a, b/170633813)- SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedTask, LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek amacıyla, konu parametresi olmayan LaunchedEffect'e izin verilmez. (Ifd3d4)
- Yapılandırma güncellendiğinde yeniden derlenen, derlenebilir kaynaklar kullanıma sunuldu. (I6387c, b/167352819)
- Yeniden derleyici artık oluşturulurken CoroutineContext gerektiriyor (Ic4610)
- Birden fazla
Modifier.zIndex()
uygulandığındazIndex
değerlerinin toplamı. Daha önce ilk seçenek kazanıyordu. (Ic514c, b/170623936) - Herkese açık API'yi etkilemeyecek olan dahili SlotTable uygulamasında yapılan değişiklikler. (If9828)
- Klavye otomatik düzeltme IME seçeneği eklendi (I57b8d)
- androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb)
- KeyboardOptions.toImeOptions, herkese açık API'den kaldırıldı. (Ic2e45)
Harici Katkı
- Dahili yapı androidx.compose.ui:ui-text-android (Ib93fa) için yayın devre dışı bırakıldı
Sürüm 1.0.0-alpha06
28 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha06
yayınlanır. 1.0.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Recomposer artık bir CompositionReference ve geçerli bir kompozisyon üst öğesidir. Explicit Recomposer artık daha az yerde gerekli. (I4036f)
- Kompozit API'nin, verileri kompozisyonlar arasında kalıcı hale getirmek için dahili olarak "remember" işlevini kullandığını daha iyi belirtmek amacıyla VectorPainter yerine rememberVectorPainter işlevinin desteği sonlandırıldı. (Ifda43)
- Uygulamalara çizim komutlarını yeniden sıralama olanağı sağlamak için Modifier.drawWithCache API'si, ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak göstermek üzere güncellendi. Bu, ilgili karışım modu algoritmasının düzgün şekilde uygulanması için içerik piksellerinin önce oluşturulması gereken karışım/tonlama kullanım alanları için yararlıdır. (Ie7ec8)
- SimpleContainer'ı PopupTestUtils.kt'ye taşıma (I78c57)
- ConsumedData artık bir veri sınıfı değildir. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 adresine bakın (I1737f)
- Rtl kolu konumunu düzeltin. (I6e1e0)
- DrawScope ve ContentDrawScope, soyut sınıflar yerine arayüz olacak şekilde yeniden yapılandırıldı.
- DrawScope için CanvasDrawScope uygulaması oluşturuldu
- DrawScope'un, bunun yerine CanvasScope'u kullanacak şekilde yeniden yapılandırılmış uygulamaları
- DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu
- DrawScope'ta desteği sonlandırılmış yöntemler kaldırıldı (I56f5e)
- Önemli değişiklik: İşaretçi etkinliklerinde değiştirilebilmesi gereken tek değerin tüketim verileri olması nedeniyle
PointerInputFilter.onPointerEvent(...)
değerinden döndürülen değer kaldırıldı. ArtıkPointerInputFilter.onPointerEvent(...)
'ten veri döndürmek yerine, iletilen PointerEvents öğesinin tüketim verilerini değiştirebilirsiniz. (I6acd0) - MeasureScope ve IntrinsicMeasureScope arayüzler haline getirildi. (I1a087, b/170461665)
- AlignmentLine için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
- Birleştirilmiş değiştiricide denetleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569)
- Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
- DrawTransform.rotate, dokümanla eşleşecek şekilde varsayılan bir merkez pivot parametresi alacak şekilde güncellendi.
- DrawScope.rotateRad, diğer dönüşüm yöntemleriyle eşleşecek şekilde pivot noktası için bir ofset kullanacak şekilde güncellendi.
- Pivot'un x ve y koordinatı için kayan nokta değerleri kullanan, desteği sonlandırılan DrawScope.rotateRad aşırı yüklemesi.
- (Iffcbb, b/170434992)
Hata Düzeltmeleri
- MissingGetterMatchingBuilder için API lint kontrolü, androidx için etkinleştirildi (I4bbea, b/138602561)
- Test ekleyin. (I6b8ae)
- ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'dan yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
- Klavye Büyük Harfleri IME Seçeneği eklendi (I8ac38)
- CoreTextField'e (I72e6d) tek satırlı klavye seçeneği eklendi
- SimpleContainer'ı PopupTestUtils.kt'ye taşıma (I65c3e)
- Radius API'nin adı, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirtmek için dokümanlar güncellendi. (I130c7, b/168762961)
ACTION_DOWN
(I94c5a, b/170320973) hariç tüm işlemler için onTouchEvent işlevi false döndüren alt Android Görsellerine MotionEvents göndermeye devam ederek Android birlikte çalışabilirliği iyileştirildi- Kutu satır içi işlev haline getirildi. (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ınlanır. 1.0.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Denetleyici bilgilerini belirtmek için DSL ekleme (Ic9a22)
- Uzun basmayı metne taşıyın. (Iff2bc)
- Deneysel Modifier.pointerInput giriş değiştiriciyi askıya alma (Ia77d2)
- Kopyala/Yapıştır/Kes erişilebilirlik işlemleri eklendi (I6db4f)
- AndroidOwner için herkese açık kurucu kaldırıldı (Iacaef)
- Pop-up'lar ve iletişim kutuları artık FLAG_SECURE işaretini üst pencereden devralıyor. Ayrıca bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149)
Tüketim verileri artık değiştirilebilir. Ayrıca, tüketim yapan uzantı işlevlerine yapılan çağrılar artık yeni bir PointerInputChange döndürmez, bunun yerine sağlanan PointerInputChange'i değiştirir.
Bu, PointerEvent verilerini diğer işaretçi verilerinin kullanıcı kodu tarafından düzenlenemeyecek şekilde değişken hale getirmeye yönelik 2 adımlı bir sürecin ilk adımıdır. İkinci adımda,
List<PointerInputChange>
döndürme türünüPointerInputFilter.onPointerEvent(...)
'dan kaldırın. (Id067e)Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)
onGloballyPositioned işlevi satır içi işlev haline getirildi (I15830)
OnPositionedModifier, OnGloballyPositionedModifier olarak yeniden adlandırıldı ve onPositioned(), onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)
Sahibin bekleyen bir düzen çalışması olup olmadığını belirten hasPendingMeasureOrLayout özelliği, Owner alanına eklendi. (I3d9f8, b/169038599)
Odağı programatik olarak temizlemek için API eklendi (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)
kaldırıldı. Bunun yerinePointerInputFilter.onPointerEvent(...)
kullanılmalıdır. (I6f04a)Boyutta yapılan değişiklikler
- Size.getFlipped kaldırıldı
- Size.rem kaldırıldı
- Size.truncDiv (Ief44d, b/169790720) kaldırıldı
Satır içi sınıflar için gözetmen değerlerinin standartlaştırılması kapsamında, diğer satır içi sınıflarla tutarlılık sağlamak amacıyla Color.Unset değerini Color.Unspecified olarak yeniden adlandırın (I97611, b/169797763)
TextOverflow.None özelliği kullanıma sunuldu. Taşma None olduğunda Text artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
AnnotatedString.Builder.addStringAnnotation içindeki scope parametresi, API tutarlılığı için tag olarak yeniden adlandırıldı. (I7c8cb)
Hata Düzeltmeleri
- Her kaydırma işleminde alt kompozisyonda daha az işlem yapılarak LazyColumn/Row'un kaydırma performansı iyileştirildi. Composition sınıfı için yeni hasInvalidations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi, hasInvalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371)
- Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamalarını, sonlu olmayan boyutların yanı sıra Size.Unspecified ile de kontrol edecek şekilde güncellendi. (I95a7e)
- Özel düzenlerde place() çağrılarının sırası artık alt öğelerin çizim sırasını tanımlar (Ibc9f6)
- Erişilebilirlik için AnnotatedString'den SpannableString'e dönüştürme işlemini destekleyin. (Ief907)
- Mümkün olduğunda yansımanın kullanılmasını önlemek için eski platformlardaki Android sınıfları için stub'ler eklendi. (Ia1790)
- Düzeltilen hata: Gösterilen yazılım klavyesi, uygulamanın çevirmesine neden olursa işaretçi giriş koordinatları yanlış olurdu. (Ic4cec, b/163077821)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
yayınlanır. 1.0.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Artık geçerli olmayan düzen ve çizim gözlem kapsamlarının toplanmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
- İçerik düzeni yeniden ölçüldüğünde ve boyut değiştiğinde geri çağırma işlevi almak için sırasıyla OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
- Uzun tıklama semantik işlemi ekleme (I6281b, b/156468846)
- FocusManager'ı gizli hale getirdi. (I7872f)
Uygulama, DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturacak şekilde güncellendi.
Çeşitli yöntemlerle ilgili dokümanlar güncellendi (Ibd166)
Nesne oluşturmayı önlemek için TextRange'yi satır içi yapın. (Id034b)
PlacementScope#parentWidth ve PlacementScope#parentLayoutDirection artık özel bir düzenin yerleşim bloğundan okunamaz. (Icc1ae, b/168295623)
AccessibilityScrollState özelliğini semantik özelliklere ekleyin. (Ifeda9)
Boyut/durum bilgilerine bağlı bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache özelliği kullanıma sunuldu (I376dc)
ParagraphConstraints kaldırılır. Genişlik artık doğrudan paragrafa iletiliyor. (Ica712)
Hata Düzeltmeleri
- Birçok Grafik API'si güncellendi
- DrawScope ve DrawTransform'daki x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresi kullanacak şekilde ölçek ve dönme dönüşümü API'leri güncellendi
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap dokümanları, elips şeklindeki şekillere ek olarak oval şeklindeki şekilleri de içerecek şekilde güncellendi.
- Satır içi Radius sınıfının herkese açık kurucusunun doğrudan çağrılmaması gerektiğini, bunun yerine Radius nesnelerinin işlev kurucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi
- Sağ üst, sağ alt, alt orta vb. noktaları sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.shift işlevi, Rect.translate işlevi lehine kullanımdan kaldırıldı
- RoundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
- RoundRect.center işlevi, işlev yerine mülk olarak değiştirildi
- RoundRect yapıcısı, x/y yarıçapı değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi
- Orijininin 0,0 olduğu bir dikdörtgen olduğunu varsayılan Boyut API'leri kaldırıldı
- Radius'a bir destructing API eklendi
- Çeşitli RoundRect uzantı işlevleri, mülk olarak taşındı
- (I8f5c7, b/168762961)
- foundation.Box desteği sonlandırıldı. Bunun yerine lütfen foundation.layout.Box öğesini kullanın. (Ie5950, b/167680279)
- Grup, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box, compose.foundation.layout içindeki yeni Box için kullanımdan kaldırılacak. Yeni Kutu'nun davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki Kutu'dan farklıdır. (I94893, b/167680279)
- Kutu süsleme parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine değiştiricileri kullanın (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Birçok Grafik API'si güncellendi
- Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için DrawScope API'leri, kapsamlı dönüşüm yöntemleriyle güncellendi
- clipPath dokümanları, yuvarlatılmış dikdörtgen yerine yol ifadesini içerecek şekilde güncellendi
- clipPath'teki sağ parametre için dokümanda sabit aralık
- DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
- İçe ekleme yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınırın tamamına aynı içe ekleme değerini sağlayan içe ekleme aşırı yüklemesi eklendi
- İç içe ekleme yönteminin 4 tarafın tamamına uygulanacağını belirten dokümanlar kaldırıldı
- Rect sınıfı için güncellenmiş dokümanlar
- Rect parametreleriyle ilgili 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ükleme oluşturuldu ve Rect.shift desteği sonlandırıldı
- (If086a, b/167737376)
- rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ve textInputServiceFactory sınıflarına @VisibleForTesting ekleyerek bunları dahili API'ye dönüştürün ve kdoc'larını gizleyin (I554eb, b/168308412)
- Varsayılan seçimi devre dışı bırakmak ve beklenmedik davranışların önüne geçmek için SelectionContainer'ı üst kısımdan kaldırın. Bunun yerine, seçilmesi gereken içeriği sarmalamak için özellikle 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ınlanır. 1.0.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- İleri/geri kaydırma semantik işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
onInvalidate()
,Owner
'ten kaldırıldı.OwnedLayer
, geçersizleştirmeyi yönetir. (Ica72b, b/162061312)Size API'sinde, Offset parametrelerini kullanan operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu net değil ve sonuç türü beklenmedik. Ör. beden - ofset, bir ofset mi yoksa farkı içeren bir beden sonucu mu döndürmelidir?
Ayrıca, Size sınıfındaki desteği sonlandırılmış yöntemler de kaldırıldı. (Iec902, b/166514214)
Hata Düzeltmeleri
- Bazen LazyColumn öğelerinin yanlış çizilmesi sorunu düzeltildi. Bu durum bazı durumlarda kilitlenmelere de neden oluyordu. (Ibcf17, b/163066980, b/165921895)
- DpConstraints ve bu API'yi kullanan API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
kuruluş birimindenandroidx.ui.test
kuruluş birimine taşındı (Idef08, b/164060572)- Yerçekimi kullanımları, düzen API'lerinde tutarlı bir şekilde align veya alignment olarak yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut genel yöntemler kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer genel yöntemler eklendi. (Ieae36)
Sürüm 1.0.0-alpha02
2 Eylül 2020
androidx.compose.ui:ui-*:1.0.0-alpha02
yayınlanır. 1.0.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- layoutnode sınırları değiştiğinde sahibi bilgilendirmek için geri çağırma işlevini kaldırın. (If654e, b/166106882)
- evenOdd veya NonZero yol dolgu kurallarına göre şekillerin kesik kısımlarını desteklemek için vektör grafik yollarında filltype parametreleri için destek eklendi. (I43dd2)
- Uptime ve Velocity artık satır içi sınıflardır (I48f4a)
- Süre artık satır içi bir sınıftır (I565eb)
- layoutnode sınırları değiştiğinde sahibi bilgilendirmek için bir geri çağırma işlevi ekleyin. (Ic40b3)
Offset ve radius içeren Rect işlevi yapıcısının Rect'i sol, üst, sağ, alt yerine sol, üst, sağ, alt sırasıyla oluşturduğu sorun düzeltildi.
Rect'teki desteği sonlandırılmış tamamlayıcı yöntemler, işlev oluşturucular lehine kaldırıldı.
Rect.kt'deki yöntemleri doğrulamak için testler eklendi (I08460, b/165822356)
Hata Düzeltmeleri
- Değiştirilebilir bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
- Matrix4, Matrix ile değiştirildi. vectormath paketinin diğer tüm bölümleri kaldırıldı. (Ibd665, b/160140398)
Birleştirilebilir işlevler için çağrı kuralı değişti. Bu, ikili kodda yapılan ve uyumsuzluk yaratan bir değişikliktir. Tüm kitaplıklar, derleyici derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.
Yalnızca açık bir şekilde etkinleştirilen derleyici API'leri değiştiği için bu değişiklik kaynak düzeyinde önemli bir değişiklik oluşturmaz. (I7afd2, b/158123185)
Bir PointerInputFilter'e gönderim yapıldığında PointerInputFilter'in senkronize olarak kaldırılmasına neden olabilecek kilitlenme düzeltildi. (I58f25)
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
yayınlanır. 1.0.0-alpha01 sürümü bu taahhütleri 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ınlanır. 0.1.0-dev17 sürümü bu taahhütleri içerir.
API Değişiklikleri
emitView
desteği sonlandırıldı. Oluştur içinde görüntü yayınlamak için mümkünse bunun yerineAndroidView
kullanın. Görünümler ve Görünüm Grupları doğrudan oluşturulduğunda, bu işlemler kompozisyon ağacında yaprak olmadığı sürece gelecekte desteklenmeyecektir. Bu işlemler AndroidView kullanılarak yapılabilir. (I29b1e, b/163871221)FocusState2
desteği sonlandırıldı veFocusState
ile değiştirildi (Ia8b79, b/160822876, b/160923332)- Desteği sonlandırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
- Özel yayınlar artık ayarlayıcılarından bir veya daha fazlasının atlanıp yayınlanmadan bağımsız olarak yeniden derlenebileceğini belirtebilir. (Ibbd13)
Beste için aynı nesne örneği kullanıldığı için Vektör 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 çizmek için VectorPainter için mutableStateOf işareti eklendi.
Bestelerde yeniden kullanıldığı için VectorComponent örneği, VectorPainter'ın bir parçası olacak şekilde yeniden düzenlendi.
GroupComponent ve PathComponent'in ad alanlarının değiştirilebilir olması için güncellendi (Ieae45, b/151378808)
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine alt düzendeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)Ofset, satır içi sınıf haline geldi (Iaec70)
SelectionContainer'a (I4aada, b/161487952) bir değiştirici parametresi eklendi
Desteği sonlandırılan FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) kaldırıldı
SemanticsPropertyKey
'emergePolicy
lambda eklendi. Bu, mergeAllDescendants semantik birleştirme işlemi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)Constraints artık satır içi bir sınıftır (I88736)
Ortak odaklanma mantığını AndroidComposeView'den çıkaran 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ıftır (Iac0bf)
IntSize artık satır içi bir sınıftır (I2bf42)
PlacementScope.placeAbsolute()
,PlacementScope.place()
olarak yeniden adlandırıldı ve öncekiPlacementScope.place()
,PlacementScope.placeRelative()
olarak yeniden adlandırıldı. Sonuç olarak,PlacementScope.place()
yöntemi artık sağdan sola doğru metinlerde konumu otomatik olarak yansıtmayacaktır. Bu isterseniz bunun yerinePlacementScope.placeRelative()
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 olmaktan çıkardık. Gelecekte herkese açık hale getirilecektir. (I32ab1)
İşaretçi giriş kodunun yeniden yapılandırılmış organizasyonu. (Ie3f45)
Rect için PxBounds desteği sonlandırıldı. PxBounds'un tüm kullanımlarını rect ile güncelledik ve taşıma işlemine yardımcı olmak için uygun desteği sonlandırma/şununla değiştirin ek açıklamaları ekledik. (I37038, b/162627058)
Desteği sonlandırılmış KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)
KeyEvent, belirtilen anahtar ve meta anahtar durumu kombinasyonu (If3afc) tarafından oluşturulan unicode karakterini almak için kullanılabilecek bir unicode mülküne sahiptir.
DelayUp özel etkinliği ve ilgili sınıflar, büyük olasılıkla değiştirileceği için etkinleştirme gerektiren bir API haline getirildi. (I56d6f)
Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I3dd9d)
Paragraph.paint işlevine color, shadow ve TextDecoration parametrelerini ekleyin. Bu işlev, gereksiz paragraf yeniden oluşturma işlemlerini önlemek için kullanışlıdır. (I81689)
Hata Düzeltmeleri
- onFocusChanged geri çağırma işlevleri TextField'den kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Kenarlık veri sınıfı, BorderStroke (I4257d, b/158160576) ile değiştirildi
Desteği sonlandırılan FrameManager çağrıları kaldırıldı.
Dahili oluşturma API'leri,
mutableStateof()
gibi durum nesnelerini izlemek için ek maliyet miktarını azaltacak şekilde değiştirildi (I80ba6)VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Modifier.drawBackground kaldırıldı. Modifier.background (I73b0d, b/163019183) öğesini kullanın.
for döngüsü içinde durumu kaydeden bir şey kullanıldığında oluşan kilitlenme düzeltildi. Artık savedInstanceState() içinde aynı anahtara izin veriliyor. UiSavedStateRegistry'nin API'si bu yeni şarta göre ayarlandı (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)
state { ... }
bileşeni artık kullanımdan kaldırıldı. Bunun yerine, netlik içinremember { mutableStateOf(...) }
'a açık çağrılar yapılması önerilir. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf mülkü yetkilendirmesi içinby mutableStateOf()
kalıbıyla eşleşir. (Ia5727)RRect, oluşturma adlandırma kalıplarına daha uygun olması için RoundRect olarak yeniden adlandırıldı. RRect'e benzer işlev oluşturucular oluşturuldu ve RRect işlev oluşturucuları için destek sonlandırıldı (I5d325)
Sürüm 0.1.0-dev16
5 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev16
yayınlanır. 0.1.0-dev16 sürümü bu taahhütleri içerir.
API Değişiklikleri
- OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned işlevini 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şirmek ve oluşturmak için AndroidViewBinding API eklendi. (I081c6)
- KeyEvent2, KeyEvent (I2d770, b/162097585) ile değiştirildi
- Alt donanım anahtarı (I9036b) desteği eklendi
- FocusManager desteği sonlandırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() işlevlerini kullanın. (I74ae4, b/162211322)
- loadVectorResource, trimPath özelliklerini destekler (I808fe)
- İletişim kutusunu kullanıcı arayüzüne taşıma (I47fa6)
- Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I33ca7)
- MotionEvents alma ve Android View'un bir uygulamasıymışsınız gibi Compose ile etkileşim kurma olanağı sağlayan PointerInteropModifier uygulandı. (Ieb08c)
- Desteği sonlandırılan etiket değiştirici kaldırıldı. Bunun yerine lütfen layoutId değerini kullanın. (Idaa05, b/162023919)
- Sağdan sola yazma 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)
- Özel bir düzen değiştiriciyi kolayca oluşturmaya olanak tanıyan Modifier.layout() eklendi (I73b69, b/161355194)
- Yeni bir AndroidView API eklendi ve mevcut API'lerin desteği sonlandırıldı. (I5bcfd)
- Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then işlevini kullanın. "Sonra", sıralama konusunda daha güçlü bir sinyal verir. Ayrıca
Modifier.padding().background() + anotherModifier
yazmayı yasaklar. Bu da zinciri bozar ve metnin okunmasını zorlaştırır (Iedd58, b/161529964) - Bir Görünüm hiyerarşisinde Oluştur içeriğini barındırmak için [Abstract]ComposeView görünümü alt sınıfları ekleyin. (I46357)
Row
veColumn
artık satır içi işlev olduğundan bunların kullanılmasıyla ilgili ek maliyet önemli ölçüde azaltıldı. (I75c10)- SubcomposeLayout eklendi. Alt ağaç bileşimi için yalnızca daha sonra ölçüm sırasında kullanılabilen bazı değerleri kullanmak isterseniz ölçüm sırasında alt öğeleri derlemeye olanak tanıyan düşük düzey bir ilkeldir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
- Bir SemanticsNode öğesinin, Oluşturma hiyerarşisinin köküne göre konumunu almak için
SemanticsNode.positionInRoot
eklendi (Icdf26, b/161336532) - MotionEvents, Android'den Compose'a ve tekrar Android'e aktarıldı. (I14be8, b/158034713)
- dropdownPopup kaldırıldı. (I00430)
- Kesik ekranlarda pop-up konumu düzeltildi. (Idd7dd)
- TextLayoutResult almak için erişilebilirlik işlemi ekleme (I9d6e6)
- RemeasurementModifier eklendi. Bu, düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Yeniden ölçme/yeniden düzenleme otomatik olarak gerçekleştiği için genelde buna hiç ihtiyacınız olmaz ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
- getLineEllipsisOffset/getLineEllipsisCount işlevini kaldırın. Bunun yerine getLineVisibleEnd/getLineEnd/isLineEllipsized işlevlerini kullanın. (I85aa2)
- En iyi uygulama nedeniyle bazı işaretler/notlar ekleyin. (I66b20)
- TextLayoutResult'da daha fazla satır API'si kullanıma sunuldu. (I79bd2)
- Yerleşik birimleri dönüştürmek için yerleşik vektör dönüştürücülere artık Foo.VectorConverter aracılığıyla erişilebilir. Ör.Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273)
Hata Düzeltmeleri
- Geniş API düzeltmelerini ele alma (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırma
- Tutarlı bir API yüzeyi elde etmek için Offset ve IntOffset sınıflarını hizalama
- Offset API ile tutarlı olması için IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın
- Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden yapılandırmak ve alanın null olmamasına dikkat etmek için EmptyCanvas sınıfı oluşturuldu
- ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı
- FilterQuality enum'ları Pascal Case olarak yeniden adlandırıldı
- StrokeJoin enum'ları Pascal Case olarak 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 olarak yeniden adlandırıldı
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı
- DrawCache uygulaması, artık lateinit parametrelerini kullanmamak için güncellendi
- DrawScope, fillPaint ve strokePaint dahili parametreleri için artık yavaş yetkilendirme kullanmamak üzere güncellendi
- Daha az ek maliyet için Box kullanımını önlemek amacıyla resim derleyici güncellendi
- Ana hat 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 bileşimi, birleştirme işlemi zaten bunları ele aldığından eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere güncellendi
- İşlev oluşturucuların lehine Rect yardımcı oluşturucu yöntemlerinin desteği sonlandırıldı
- Fırça sınıfları ve işlev kurucuları @Immutable ve @Stable API'leriyle güncellendi
- VertexMode enum'u PascalCase olarak güncellendi
- DrawScope selectPaint yöntemi, boyadaki vuruş parametrelerinin değişmiş olması durumunda koşullu olarak üzerine yazacak şekilde güncellendi
- Boyut, yapı bozma API'sini eklemek için güncellendi, BelirtilmemişBoyut yeniden adlandırılarak Belirtilmemiş olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
- Compose BlendMode API tüketimi, API düzeyine bağlı olarak Android çerçevesi BlendMode'leri ile PorterDuff modları arasında düzgün bir şekilde eşlenecek şekilde güncellendi. BlendMode#isSupported API'si, BlendMode'ın kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için bir özellik sorgusu olarak kullanılmak üzere kullanıma sunuldu. (I0ef42)
- LazyItemScope, yavaş listelerin itemContent parametresi için eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve öğe sonsuz kısıtlamalarla ölçüldüğü için normal Modifier.fillMaxSize() işlevi çalışmadığında kullanım alanını çözen, üst öğenin maksimum boyutunu doldurmak için değiştiriciler sağlar. (Ibd3b2, b/162248854)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
kullanın. (Id9b62)LazyColumnItems
,LazyColumnFor
olarak yeniden adlandırıldı.LazyRowItems
,LazyRowFor
olarak yeniden adlandırıldı (I84f84)foundation.shape.corner
paketifoundation.share
olarak düzleştirildi (I46491, b/161887429)AndroidComposeTestRule
,createAndroidComposeRule
olarak yeniden adlandırıldı. (I70aaf)TextLayoutResult
'e daha fazla API eklendi. (Id7e04)- İstenen en basit API'nin keşfedilmesini ve kullanılmasını kolaylaştırmak için
FilledTextField
malzemesiTextField
olarak, temelTextField
iseBaseTextField
olarak yeniden adlandırıldı (Ia6242, b/155482676) - Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
Sürüm 0.1.0-dev15
22 Temmuz 2020
androidx.compose.ui:ui-*:0.1.0-dev15
yayınlanır. 0.1.0-dev15 sürümü bu taahhütleri içerir.
Bağımlılıklar Güncellemesi
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıkları, yukarıdaki Bağımlılıkları tanımlama bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
- FocusModifier desteği sonlandırılmış, yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver getirilmiştir. FocusState ve FocusDetailedState için desteğin sonlandırılması ve FocusState2'nin kullanıma sunulması (I46919, b/160822875, b/160922136)
- Odak durumunun değişmesini gözlemlemek için bir değiştirici eklendi. (I05866, b/160924455, b/160923326)
- Odak değişiklikleri isteğinde bulunmak için bir değiştirici eklendi (I8dd73, b/161182057, b/160924778)
- Kopyala, kes ve yapıştır işlemlerini doğru şekilde gösterecek şekilde araç çubuğu menüsünü ayarlayın. (Id3955)
- Tek değerli anlambilim özellikleri 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 yüzen araç çubuğu ekleyin. (Ie8b07)
- Anahtar girişiyle ilgili API için deneysel bir API ek açıklama eklendi (I53c0a)
- Focus ile ilgili tüm API'ler için deneysel bir API ek açıklama eklendi (I53b24, b/160903352)
- FocusDetailedState'in (I0a3ba, b/160822595) yerini alacak FocusState2 eklendi
- Focus API için @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, bu API'yi kullanacak şekilde güncellendi. (I0d8d0, b/159596546)
- Uygulayıcı artık kompozisyonları kaldırmak için clear() yöntemini gerektiriyor (Ibe697)
- KeyEvent desteği sonlandırıldı ve KeyEvent2 ile değiştirildi (I68730)
- Bulma araçlarını test etmek için yeni bir isteğe bağlı işaret olan useUnmergedTree eklendi. (I2ce48)
- LayoutNode'u deneysel API yaptı (I4f2e9)
Aşağıdakiler dahil olmak üzere çeşitli satır içi sınıf türlerine kopyalama yöntemleri eklendi:
- Zaman farkı
- Boyut
- Yarıçap
- Hareket
TransformOrigin
Size.copy yardımcı nesnesi yöntemi, örnek kopyalama yöntemi lehine kullanımdan kaldırıldı (Ife290, b/159905651)
Pop-up'lar, iletişim kutuları ve menüler artık bağlama dayalı MaterialTheme'i devralıyor (Ia3665, b/156527485)
TextDirection, ResolvedTextDirection (I3ff38) olarak yeniden adlandırıldı
Layout() işlevinin measure bloğundan layout direction parametresi kaldırıldı. Ancak sayfa düzeni yönü, ölçüm kapsamı nesnesi (Ic7d9d) aracılığıyla geri çağırma içinde kullanılabilir.
Yeniden kullanmak için SelectionHandles'ı yeniden yapılandırın. (I420e0)
Tıklanabilir özelliği kaldırıldı. Değiştirici.tıklanabilir (I84bdf) özelliğini kullanın
Test etiketi ve semantikler silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i kullanın (I15ff0, b/158841414)
Bu değişiklikten önce, derleyici derleyici eklentisi, bir @Composable işlevi içinde yapıcı çağrıları (I5205a, b/158123804) varsa basit bir şekilde durduruyordu.
Modifier.tag, Modifier.testTag ile karışıklık olmaması için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi tam sayı konumları artık null değil. Sorgulanan hizalama çizgisi yoksa AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)
AndroidView bileşenine bir değiştirici parametre eklendi. (I48a88, b/158746303)
Semantics() desteği sonlandırıldı. Bunun yerine Modifier.semantics() kullanın. (I72407, b/158841414)
Activity veya Fragment'te işleyiş şekline benzer şekilde, önceden oluşturulmuş ViewModel'i oluşturmaya veya almaya olanak tanıyan viewModel() composable'ı ekleyin (I5fdd1)
IntPx kullanımı Int ile değiştirildi. IntPxPosition, IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Beden bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Size sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanmak amacıyla satır içi sınıfın avantajlarını sağlar. (Ic0191)
Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, x ve y ofsetlerini kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanan satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Id3434)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a)
Test etiketi için destek sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
ParentDataModifier#modifyParentData için varsayılan, işlem yapmayan uygulama kaldırıldı. Bu uygulama, arayüzün hiç uygulanmamasına eşdeğerdi. (I0deaa)
Daha önce kullanımdan kaldırılmış olan ScaleFit kaldırıldı. Bunun yerine ContentScale özelliğini kullanın. (Ifbc5b)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I19d02)
Materyal Tasarım menüsü uygulaması olan ui-material'e DropdownMenu bileşeni eklendi. (I9bb3d)
Desteği sonlandırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() kullanın. Desteği sonlandırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() kullanın. (If8044)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I57bff)
Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için desteği sonlandırılma durumuna alındı. (I4cfdc)
CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. DrawScope, Density arayüzünü uygulayacak ve LayoutDirection sağlayacak şekilde güncellendi. ContentDrawScope'taki DrawScope alt sınıfı silindi. Painter ve PainterModifier, DrawScope'un manuel olarak sağlamadığı bir RTL mülkünü artık kendileri sağlamamaları için güncellendi (I1798e)
DoubleTapGestureFilter artık ağaçta SingleTapGestureFilter için belirsizliği gideriyor. (If92b1)
Alignment API güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)
DrawLayer değiştiricileri API'si değiştirildi: outlineShape, shape olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip oldu ve artık null kabul etmiyor; clipToOutline, clip olarak yeniden adlandırıldı; clipToBounds, RectangleShape ile clip == true ile aynı olduğu için kaldırıldı (I7ef11, b/155075735)
Bir Canvas'ı gösteren daha yüksek düzeydeki compose API'leri, bunun yerine CanvasScope'u göstermek için güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini yönetmesi gerekmez. Yine de bir tuvale erişmesi gereken tüketiciler, temel tuvalde çizim komutları göndermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
WithConstraints sona ek lambda API'si değiştirildi. Artık iki parametre yerine, constraints ve layoutDirection'e ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702)
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Desteği sonlandırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Layout ve LayoutModifier2'deki içsel ölçüm işlevleri artık, içsel sorgu API'sine dolaylı olarak yayılan düzen yönünü sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)
Düzen ve DüzenDeğiştirici alt öğeleri farklı bir düzen yönü ile ölçülebilir. (Ibd731)
Aynı üst düzendeki çocukların çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklendi. DrawLayerModifier'daki elevation mülkü shadowElevation olarak yeniden adlandırıldı ve artık çizim sırasını kontrol etmiyor. DrawShadow parametre sırası değişti: elevation artık ilk sırada, shape ise varsayılan olarak RectangleShape ile ikinci sırada yer alıyor. (I20150, b/152417501)
Owner'da onSizeChange ve onPositionChange kaldırıldı. (I5c718)
Constraints2 eklendi. Bu, Constraints'ın IntPx yerine yalnızca Int kısıtlama değerlerini destekleyen bir kopyasıdır. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android gibi piksel olduğu varsayılır.
- IntSize da eklendi. Bu özellik, IntPxSize'in yerini alacak. (I4b43a)
Hizalama, rastgele değerlerle oluşturulabilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)
alignToSiblings artık Placeable yerine Measured değerini kabul ediyor. (I5788d)
-
- ScaleFit, ContentScale olarak yeniden adlandırıldı
- ContentScale, Alignment API ile aynı modülde yer alması için ui-graphics modülünden ui-core modülüne taşındı.
- FillMaxDimension, Crop olarak yeniden adlandırıldı
- FillMinDimension, Fit olarak yeniden adlandırıldı
- Daha iyi eşleşme için İçine Sığdır olarak yeniden adlandırıldı
- ImageView.ScaleType eşdeğerleri
- Kırpma ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu, Alignment.Center ile kullanılan Fit'in ImageView.ScaleType.FIT_CENTER ile aynı sonucu, Alignment.Center ile kullanılan Inside'ın ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu sağladığını belirten dokümanlar eklendi
Çizim değiştiricileri için rtl desteği. (I0aaf9)
Android görünümlerini XML'den şişirmek için API yayınlandı. Daha fazla bilgi için ViewInCompose demosuna bakın. (I42916)
DrawModifier API'yi iyileştirin:
- draw() için alıcı kapsamını ContentDrawScope yaptı
- draw() işlevindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
- ContentDrawScope'ta drawContent() yöntemi var (Ibaced, b/152919067)
LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
DrawLayerModifier ve drawLayer() için clipToBounds ve clipToOutline varsayılan olarak false olarak ayarlandı. (I0eb8b, b/152810850)
LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi; LayoutModifier desteği sonlandırıldı (If32ac)
Değiştirici artı operatör, fabrika uzantı işlevleriyle değiştirildi (I225e4)
Belirli bir katman için çizim komutlarının görüntüleme listesinin kaydırılmasını desteklemek amacıyla translationX/Y özellikleri eklendi. Bu yöntem, animasyonlara veya dokunma etkinliklerine yanıt olarak içeriği taşımak için kullanışlıdır. (I8641c)
Katman API'lerine, katmandaki belirli bir nokta etrafında döndürme ve ölçeklendirmeyi desteklemek için pivotX ve pivotY parametreleri eklendi (Icf7c3)
OnPositioned ve OnChildPositioned kompozisyon işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier ekleyin. (I2ec8f)
Düzen için bir RenderNode eklemenize olanak tanıyan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölge ayarlarını yapmanıza olanak tanır. Bu, RepaintBoundary'ın yerini alacak. (I7100d, b/150774014)
Düzen yönünün, üst düzen düğümünden alt öğelere iletilmesini sağladık. Düzen yönü değiştirici eklendi. (I3d955)
Grup bileşeni, sağdan sola yönlülüğe (Ic9e00) destek verir.
Oluşturma düzeninde Rtl için ilk destek (Ia5519)
Density ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current değerini kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)
LayoutCoordinates, sağlananAlignmentLines'i bir Harita yerine bir Küme haline getirmek ve LayoutCoordinates'in bir değer almak için get() operatörünü uygulamak üzere değiştirildi. Bu, değiştiricilerin her değiştirici için yeni bir koleksiyon oluşturmadan grubun bir veya daha fazla değerini değiştirmesini kolaylaştırır. (I0245a)
LayoutCoordinates artık bir konum özelliğine sahip değildir. LayoutModifiers, döndürme veya ölçeklendirme göz önüne alındığında position mülkü anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'dan diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() yöntemlerini kullanmalıdır.
LayoutCoordinates, boyut mülkü için PxSize yerine IntPxSize kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullanır. Bu nedenle, tüm düzen boyutları kayan nokta değerleri değil, tam sayılar kullanmalıdır. (I9367b)
Kısıtlamalar API yüzeyinde yapılan iyileştirmeler (I0fd15)
Durumsuz, açıklayıcı bir çizim API yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyut bilgileri de karşılık gelen içe yerleştirilmiş sınırlara göre kapsamlandırılır. Tüketicinin, çizim işlemlerini yapılandırmak için kendi Paint durum nesnesini koruması gerekmez.
- CanvasScopeSample eklendi ve demo uygulama, açıklayıcı grafik demo içerecek şekilde güncellendi (Ifd86d)
Kullanımı sınırlı olduğu ve çoğu kullanım alanında donanım hızlandırma için optimize edilmediği için kullanılmayan MaskFilter API kaldırıldı (I54f76)
RectangleShape, androidx.ui.foundation.shape.* klasöründen androidx.ui.graphics.* klasörüne taşındı. (Ia74d5, b/154507984)
API'deki tüm boş değer kabul eden Color kullanımları, boş değer kabul etmeyenlerle değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7)
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizilmesini desteklemek için ImagePainter'a ek isteğe bağlı rect parametresi eklendi
Renkleri kutu içine almadan ayarlanmamış bir değeri temsil etmek için ayarlanmamış renk eklendi. (If901a)
Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak üzere Canvas.rotate ve Canvas.scale uzantı yöntemleri eklendi. Bunlar varsayılan olarak geçerli kanvas çevirisinin sol üst köşesine yerleştirilir.
Ayrıca Canvas.rotateRad, tutarlılık için bir uzantı yöntemi olarak taşındı (Ibaca6)
Bir ImageAsset'ten piksel bilgilerinin sorgulanması için PixelMap API oluşturuldu. (I69ad6)
Compose ile bunların üzerine inşa edildiği Android framework API'leri arasındaki nesne dönüşümleri için adlandırma kuralıyla eşleşecek şekilde toFrameworkRect/toFrameworkRectF olarak adlandırıldı. Ayrıca bu API'lerle ilgili dokümanlar da güncellendi (I86337)
Vektör grafikleri için mevcut alt kompozisyon API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector bileşenlerinin desteği sonlandırıldı ve VectorPainter tercih edildi.
Image(Painter) API'nin adı PaintBox(Painter) olarak değiştirildi. Image bileşeni gibi davranan ancak ImageAsset yerine VectorAsset kullanan bir Vector bileşeni oluşturuldu (I9af9a, b/149030271)
Resim verileri ile düzene katılmak ve içerik çizmek için kullanılan yeni Image bileşeni arasındaki farkı daha iyi ayırt etmek amacıyla Image adı ImageAsset olarak değiştirildi. _Body:Geleneksel Android uygulama geliştirmeyi Compose çerçevesiyle birleştirmek için yararlı olan bir ImageAsset örneği oluşturmak amacıyla android.graphics.Bitmap üzerinde Bitmap.asImageAsset() adlı bir uzantı yöntemi oluşturuldu (Id5bbd)
TextDirection.Content (I48f36) eklendi
TextDecoration.plus operatörü eklendi (I0ad1a)
Force
, TextDirectionAlgorithm enum değerlerinden kaldırıldı (Icc944)TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)
Metin Alanı Seçimi için LongPressAndDrag'ı uygular. (I17919)
Aradaki tüm ek açıklamaları döndüren AnnotatedString.getStringAnnotations işlevi eklendi. (I1fa00)
Locale ve LocaleList için paket adı androidx.ui.text yerine androidx.ui.intl olarak değiştirildi (I8132c)
TextField'in imlecinde yanıp sönen animasyon var (Id10a7)
API değişikliği: AnnotatedString(builder: Builder), annotatedString(builder: Builder) olarak yeniden adlandırıldı. (Ia6377)
API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)
AnnotatedString.Builder.addAnnotationString işlevini addStringAnnotation olarak yeniden adlandırın. (I5059e)
Artık onTextInputStarted geri çağırma işlevi tarafından sağlanan SoftwareKeyboardController'ı kullanarak yazılım klavyesini gizlemek/göstermek mümkün (I8dc44, b/151860051)
(Text/Paragraph/Span)Style için merge() işlevine yetki veren artı operatörü eklendi. (Ia1add)
FontWeight.lerp artık sabitlenmiyor. Bu sınıf yine de bir veri sınıfıdır. (I521c2)
FontWeight kurucusu artık herkese açıktır ve veri sınıfı değildir. (Id6b1f)
TextLayoutResult'a getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount ekleyin (Ibc801)
ui-text modülü, ui-text-core olarak yeniden adlandırıldı (I57ara)
ui-geometry modülünde kullanılan yinelenen bir Size sınıfı olduğundan kullanılmayan Size sınıfı kaldırıldı. (I1b602)
Yalnızca görünür öğeleri oluşturan ve düzenleyen kaydırılabilir bir liste bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan tüm değişiklikleri tam olarak ele almaması yer alıyor. (Ib351b)
Kutuya dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)
Hata Düzeltmeleri
- Metin alanlarında onFocusChange geri çağırma işlevi, onFocusChanged olarak yeniden adlandırıldı (Ida4a1)
- VerticalScroller ve HoriziontalScroller desteği sonlandırıldı. Sütun/satır davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u veya kendi öğenizde Modifier.verticalScroll ve Modifier.horizontalScroll'u kullanın. Benzer şekilde, ScrollerPosition için desteğin sonlandırılması ve ScrollState'in kullanılması önerilir (I400ce, b/157225838, b/149460415, b/154105299)
runOnIdleCompose
,runOnIdle
olarak yeniden adlandırıldı (I83607)- Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
- Oluşturma kullanıcı arayüzü artık yeni bir oluşturma işlemi gerektirmeden ViewGroups içinde oluşturulabilir. Örnek için ViewInteropDemo'ya bakın. (I9ab0b, b/160455080)
- MutableVector'a sortWith ve removeRange eklendi (Icccf7)
- TextField için seçimi değiştirmek üzere sürükle seçim tutma yerlerini uygulayın. (I27032)
- NativeShader expect sınıfını sarmalayan Shader satır içi sınıfı kaldırıldı. NativeShader, Shader olarak yeniden adlandırıldı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklemedi ve satır içi bir sınıftı. Bu nedenle, NativeShader sınıfını doğrudan kullanın. (I25e4d)
PainterModifier, artık verilen kısıtlamalara ve ContentScale parametresine göre ölçeklendirme sağlamamak için yeniden yapılandırıldı. Painter'ın uygulamalarında, çizim içeriği kendileri tarafından, çizim yaptıkları DrawScope'un verilen boyutuna göre ölçeklendirilir.
VectorPainter'ın önbelleğe alınan bitmap'inin, çizim için belirtilen boyut yerine varsayılan boyuta ayarlanması sorunu düzeltildi.
ImagePainter, PainterModifier'ın kendi adına ölçeklendirme yapması yerine içeriğini ölçeklendirecek şekilde güncellendi. (I6ba90)
Animasyon zamanlaması için üst düzey withFrameNanos işlevi ekleyin (Ie34c5)
@Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField bileşenlerinin desteği de sonlandırıldı. Bunun yerine lütfen androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)
Gönderim sırasında alt kompozisyon aracılığıyla PointerInputFilters kaldırılırsa işaretçi girişi dağıtımının kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)
PointerInputFilters'in dağıtım sırasında alt kompozisyon aracılığıyla kaldırılması durumunda işaretçi girişi dağıtımının kilitlenmesiyle ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)
Radius sınıfı satır içi sınıf olacak şekilde yeniden düzenlendi. Y eksenindeki yarıçapın zorunlu x ekseni yarıçap parametresiyle eşleşmesi için varsayılan parametre içeren işlev kurucusu lehine tamamlayıcı oluşturma yöntemleri kaldırıldı.
DrawScope.drawRoundRect, x ve y eksenindeki yarıçap için 2 ayrı kayan değer yerine tek bir Radius parametresi kullanacak şekilde güncellendi (I46d1b)
Recompose bileşeni artık yararlı bir soyutlama değildir. Yeniden derleme işlemlerinin çoğu, MutableState atamalarının sonucu olarak gerçekleşir. Bunun dışındaki her şey için mevcut kapsamın yeniden derlenmesini tetiklemek üzere
invalidate
işlevini kullanmanız önerilir. (Ifc992)Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b)
Compose derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce derleyici, çağrıları birleştirilebilir işlevlere dönüştürüyordu. Bu değişiklikle birlikte, artık bir derlenebilir işlevin gövdesini dönüştürüyor ve çağrı yerini (çoğunlukla) değiştirmeden bırakıyoruz.
Bu, derleme çalışma zamanı ile iletişim kuran mantığın çoğunun çağrı yerinde değil, işlev gövdesinin başında gerçekleştiği anlamına gelir.
Bu, oluşturma işlevinin tüm kullanımları için kaynak uyumlu bir değişikliktir. Oluşturma özelliğini kullanan çoğu kullanıcının bu değişiklik nedeniyle herhangi bir kod güncellemesi yapması gerekmez.
Bu çalışmayı desteklemek için tüm birleştirilebilir işlevlerin JVM imzası değiştirildi. Tek bir parametre kabul eden bir birleştirilebilir işlev, 3 parametre kabul eden bir işleve dönüştürülür. Ek parametreler, "anahtar" tam sayıdır. Meta verileri çağrılar aracılığıyla yaymak için kullanılan bir bit maskesi tam sayısıdır.
Oluşturma işlevi artık varsayılan bağımsız değişkenleri de birleştirilebilir bir işleve dönüştürüyor. Bu işlemi, işlevin ek bir sentetik varsayılan aşırı yüklemesi sunmadan yapar. Bu nedenle, bu değişiklik daha az işlevin tanımlanmasına neden olur.
Bu durumdan kaynaklanan bilinen bilinçli davranış değişiklikleri:
- Bazı aramalar, daha önce atlanmadıkları halde atlanır.
- Varsayılan bağımsız değişken ifadelerindeki birleştirilebilir ifadeler artık doğru şekilde abone oluyor ve işleniyor
Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer birleştirilebilir işlevlere iletilir. Bu, çalışma zamanında daha az karşılaştırma yapılmasına, yuva tablosu boyutunun küçültülmesine ve daha önce atlanmayan birleştirilebilir işlevlerin daha fazla atlanmasına yol açar2. Derleme zamanında "statik" olarak belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Bu, karşılaştırma sayısını ve slot tablosu boyutunu azaltır. 3. Oluşturulan grup sayısını en aza indirmek için işlev gövdesinin kontrol akışı yapısı kullanılır. Bu, slot tablosu boyutunu azaltır ve çalışma zamanında daha az çalışma yapılmasına neden olur4. İşlevlere yönelik kullanılmayan dağıtım ve alıcı parametreleri, işlevin gövdesinde kullanılmadıkları takdirde işlevin atlanabilirliğini belirlemeye dahil edilmez.
Çoğu önemli değişiklik, derleyicinin doğrudan hedeflediği API'ler içindi ve compose'in normal kullanımı bundan etkilenmeyecektir: 1. Composer::startExpr kaldırıldı. Composer::endExpr kaldırıldı. Composer::call işlevinin desteği sonlandırıldı.
key
işlevinin varargs olmayan aşırı yüklemeleri kaldırıldı. Bundan sonravararg
sürümünü kullanın. 5. Pivot ek açıklaması kullanımdan kaldırıldı. Bunun yerinekey
kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine Function3 bekleyecek şekilde değiştirildi 7. restartableFunction ve restartableFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi (I60756, b/143464846)Desteği sonlandırılan LayoutAlign değiştiricileri kaldırıldı. (I10877)
RepaintBoundary, DrawLayerModifier (I00aa4) için kaldırıldı
Button, FloatingActionButton ve Clickable için artık ayrı bir
enabled
parametresi vardır. 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'de önemli değişiklikler. Ayrıntılar için günlüğe ve
Ambient<T>
belgelerine bakın (I4c7ee, b/143769776)Varsayılan TextDirection davranışı, LayoutDirection tarafından belirlenecek şekilde değiştirildi. Yani LayoutDirection RTL ise varsayılan TextDirection de RTL olur. Önceki adı: TextDirection.ContentOrLtr/Rtl (I4e803)
Hata düzeltmesi: Yazı tipi ağırlığı ve yazı tipi stili bir AnnotatedString'a iç içe yerleştirildiğinde metin doğru şekilde oluşturulmuyor. (I77a9d)
Sık kullanılan parametreleri Text() işlevine ekler. Şu anda bu parametrelerden az sayıdasını iletmek için yerel bir metin stili oluşturuyorsanız (ör. Text(style = TextStyle(textAlign = TextAlign.Center))) artık parametreleri doğrudan sağlayabilirsiniz: Text(textAlign = TextAlign.Center) (I82768)
ui-android-text modülü, ui-text-android olarak yeniden adlandırıldı (I68cbe)