Kullanıcı arayüzü oluşturma
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(Tüm oluşturma paketleri için API referans belgelerine bakın)
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
17 Nisan 2024 | 1.6.6 | - | - | 1.7.0-alpha07 |
Yapı
Oluşturma işlemi, androidx
içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her biri kendi sürüm notlarına sahip olan hedeflenmiş bir işlev alt kümesi içerir.
Bu tabloda, gruplar ve her sürüm notları grubunun bağlantıları açıklanmaktadır.
Gruplandır | Açıklama |
---|---|
compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun. |
compose.derleyici | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. |
compose.temel | 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 derleyin. Bu, Compose'un daha üst düzey giriş noktasıdır ve www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak için tasarlanmıştır. |
compose.material3 | Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşenler ile Jetpack Compose kullanıcı arayüzleri derleyin. Material 3, güncellenmiş tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri içerir ve yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
compose.runtime | Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanızın veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Groovy
dependencies { implementation "androidx.compose.ui:ui:1.6.6" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.12" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.6.6") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.12" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme konusuna bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.7
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.ui:ui-*:1.7.0-alpha07
yayınlandı. 1.7.0-alpha07 sürümü bu kayıtları içerir.
API Değişiklikleri
ClickableText
, kullanımdan kaldırıldı olarak işaretlendi. Metne bağlantı eklemek için, bağlantınıza karşılık gelen birLinkAnnotation
ile birAnnotatedString
oluşturun ve buAnnotatedString
öğesini composable'ın metnine iletin. (I34d4b, b/323346994)- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMargin
uygulamasını tanıtın.BasicTextField
içinJoinOrSplit
hareketini destekleyin (Ie6e13, b/325660505) FocusProperties.enter
veFocusProperties.exit
artık deneme aşamasında değil.FocusDirection.Enter
veFocusDirection.Exit
artık deneme aşamasında değil.FocusRequester.Cancel
artık deneysel değildir (I461a1, b/261564106)- Düzen koordinatlarını sorgularken, artık alt öğelerini
Placeable.PlacementScope.withDirectManipulationPlacement
kullanarak yerleştiren üst Düzenler tarafından ayarlanan ofseti hariç tutmak içinexcludeDirectManipulationOffset
bağımsız değişkenini kullanabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir Düzen, artıkwithDirectManipulationPlacement
öğesini kullanarak bunları yerleştirebilir (varsayılan olarak kullanılan Kaydırma gibi). Bu,approachLayout
tabanlı animasyonların daha sezgisel olmasına yardımcı olur. Böylece animasyon eklenen ofseti ve yaklaşımlarını canlandırmaya karar verirken doğrudan neyin uygulanacağını ayırt etme fırsatına sahip olurlar. (I60ec7) - Uzun ekran görüntüleri için özellik bayrağı kaldırıldı. (I28648, b/329128246)
LazyColumn
artık uzun ekran görüntülerinde yapışkan başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)NestedScroll
kaynaklarının Sürükle ve Kaydırma işlevi, artık animasyonlar (Yan Efekt) ile 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
kararlı durumda. Sırasıyla eskiisMeasurementApproachComplete()
veisPlacementApproachComplete()
yerine yeniisMeasurementApproachInProgress()
veisPlacementApproachInProgress()
kullanılacak.- Kullanımdan kaldırılan
intermediateLayout
değiştiricisi kaldırıldı. (I3e91c) - Displaylist destekli
RenderNode
ve Picture gibi API'lerin start/endRecording yöntemlerini yansıtmak içinGraphicsLayer#buildLayer
adını yeniden adlandırın. rememberObserver
hizmetinden yararlanmak içinrememberGraphicsLayer
güncellendi. (I312c1, b/288494724, b/330758155)UrlAnnotation
desteği sonlandırıldı. Onun yerineLinkAnnotation.Url
kullanın. Malzeme teması kullanıyorsanızTextDefaults
nesnesini kullanarak ek açıklamayı Malzeme teması uygulanmış halde oluşturun (I8d180, b/323346545)- Metin bağlantıları, üzerine gelindiğinde ve odaklanıldığında normal biçimlendirmeye ek olarak basılmış durum stil seçeneği de 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 işleyici eklendi. HTML etiketli dizeyi<a>
etiketleriyle ayrıştırırken yöntem, bu tür etiketlerin her biri için birLinkAnnotation.Url
oluşturur ve her bir ek açıklamaya stil nesneleri ve bağlantı etkileşimi işleyiciyi iletir. (I7c977)LinkAnnotation
artık duruma dayalı stil bağımsız değişkenlerini veLinkInteractionListener
parametresini alıyor. Köprü almak için bu ek açıklamayıAnnotatedString
öğesine ekleyin.focusedState
ve/veyahoveredState
öğelerini geçirerek bağlantılar için odaklandıkları ve/veya fareyle üzerine gelindiğinde görselconfiguration
tanımlayabilirsiniz. (I81ce4, b/139312671)ImeOptions.hintLocales
artık null işareti değil. Boş bir Yerel Ayar listesi iletmek istiyorsanız lütfenLocaleList.Empty
değerini kullanın. (Ic5bc4)
Hata Düzeltmeleri
- Bozuk/bozuk geçmiş giriş etkinliği verilerini düzgün bir şekilde işler (bozuk ofset verilerini yoksayar).
- İşaretçi giriş değiştiricisi, etkin bir işaretçi giriş etkinliği akışı sırasında başka bir işaretçi giriş değiştiricisinden önce dinamik olarak eklendiğinde (örneğin, fareyle üzerine gelme çıkışı ile fareyle üzerine gelme çıkışı [fare/ekran kalemi] arasına) beklenmeyen işaretçi etkinliklerini düzeltir.
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.ui:ui-*:1.7.0-alpha06
yayınlandı. 1.7.0-alpha06 sürümü bu kayıtları içerir.
Yeni Özellikler
- Stil özellikleri ayarlanmış dizeler için
parseAsHtml
yöntemi eklendi: HTML etiketleriyle işaretlenmiş bir dizeninAnnotatedString
biçimine dönüştürülmesine olanak tanır. Tüm etiketlerin desteklenmediğini, örneğin henüz madde işaretli listeleri görüntüleyemeyeceğinizi unutmayın. (I84d3d, I30626, b/139326648) - Resmi Android API'sini (
ScrollCaptureCallback
) kullanarak Compose kaydırma kapsayıcılarındaki uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumlar doğru şekilde işlenemez. 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ştirildi. (I50155)ClipboardManager.getClipMetadata
veClipboardManager.hasClip
işlevleri kaldırıldı. Geçerli klip girişinin meta verilerini okumak için lütfenclipEntry.getMetadata()
kullanın. Panonun geçerli bir klibinin olup olmadığını anlamak için boşsaClipboardManager.getClip
sonucunu da kontrol edin. (I50498)- Artık
GraphicsLayer
nesneleriplaceable.placeWithLayer()
işlevlerine (I1b22f) geçirebilirsiniz ClipboardManager.setClip
, Panoyu temizleyebilmek için artık boş değer kabul ediyor. (I7d2e9)- Derleme araçlarında uygulama ayrıntıları olarak kullanılan Görünümleri gizleme konusunda yardım için kaynak kimlikleri eklendi (I99531)
- Bit eşlemin içeriklerinin
GraphicsLayer
içinde oluşturulmasını desteklemek içinGraphicsLayer#toImageBitmap
askıya alma yöntemi eklendi. Bu, tüm Android cihazların% 99'undan fazlasını destekleyen API düzeyi 22 ve üstü (dahil) cihazlarda donanım hızlandırmalı oluşturma işlemidir. Bu, Android API düzeyi 21'de yazılım oluşturma kapsamına girer. (I9e114) - Android
RectF
değeriniComposeRect
biçimine dönüştürmek için yardımcı yöntem (I39925, b/325660505) - Tüm
KeyboardOptions
parametreleri artık varsayılan olarak belirtilmemiş bir değere sahip.KeyboardOptions.merge
yöntemi eklendi. KeyboardOptions.autoCorrect
öğesiautoCorrectEnabled
olarak yeniden adlandırıldı ve null özellikli hale getirildi. null, herhangi bir değerin belirtilmediğini gösterir. (Ia8ba0, b/295951492)BasicTextField(state)
varyantı veBasicSecureTextField
artık yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek içinKeyboardActions
yerineKeyboardActionHandler
kullanıyor. (I58dda)
Sürüm 1.7.0-alpha05
20 Mart 2024
androidx.compose.ui:ui-*:1.7.0-alpha05
yayınlandı. 1.7.0-alpha05 sürümü bu kayıtları içerir.
Yeni Özellikler
- Bir görüntüleme listesinde çizim komutlarını kaydetmek ve görüntüleme listesinin oluşturulmasını etkileyen ek özellikleri kaydetmek için yeni
GraphicsLayer
API'sini kullanıma sunun. Bu, karmaşık bir sahneyi, tüm sahneyi yeniden oluşturmadan ayrı ayrı 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üştürme işlemleri, görüntüleme listesi yeniden kaydedilmeden yapılabilir.Modifier.graphicsLayer
'den farklı olarakGraphicsLayer
, başka bir yerde Oluşturulabilir içeriğin oluşturulmasına olanak tanır ve içeriğin farklı sahnelerde oluşturulmasının beklendiği animasyonlu kullanım alanlarında kullanışlıdır.
API Değişiklikleri
GraphicsLayer.draw(Canvas)
artık herkese açık bir API değil. Katmanı çizmek için lütfen bunun yerineDrawScope.drawLayer(GraphicsLayer)
uzantı işlevini kullanın. (I7a7c0)restrictedConstraints()
öğesini iki yönteme bölün:fitPrioritizingWidth()
vefitPrioritizingHeight()
(I6d7fd)- Android L kullanımı için
HardwareCanvas
saplama kullanıma sunuldu (I1c3b5, b/288494724) - Düzenleme çerçevesini güncelleyerek Sahip,
DelegateableNode
vedrawWithCache
Değiştirici uygulamalarının yanı sıra yerel olarak da birGraphicsContext
bestesi sunarak kapsamlı erişim içinGraphicsContext
erişimini açığa çıkarmak ve Değiştiriciler kullanımdan kaldırıldığındaGraphicsLayer
örneğini otomatik olarak temizleyeceksiniz. (I64a2f, b/288494724) - Alt düzey IME ile ilgili testlerin ve diğer düşük düzey IME kullanım alanlarının yazılmasına yardımcı olması 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 (Ib98d6, b/288494724) oluşturmak için fabrika oluşturmak üzereGraphicsContext
işlev oluşturucusunu tanıtın- Çizim komutlarını yakalama konusunda geliştirici tarafından tanımlanan esneklik sağlamak için kullanıma sunulan
GraphicsLayer
API, başka bir yere çizim yapmak ve aynı zamanda farklı görsel efektler uygulamak için kullanılabilir. (I80245, b/288494724) - Belirli bir dikdörtgen alanın kapsadığı metin aralığını döndüren
Paragraph#getRangeForRect
özelliğini kullanın. (Iee516, b/325660505) onLinkClicked
bağımsız değişkeniyle yapılanBasicText
deneme amaçlı geçersiz kılması kaldırıldı. Köprü desteği için ileride bunun yerine yeni bir API kullanıma sunulacaktır. (I107d5)
Hata Düzeltmeleri
- İsteğe bağlı birleştirme görsel efektleri ve dönüşümleri içeren çizim komutlarının yakalanıp tekrar oynatılmasını desteklemek için
GraphicsLayer
beklenen/gerçek API tanımı eklendi.GraphicsLayer
örneklerinin oluşturulması ve yönetilmesi de dahil olmak üzere grafik bağımlılıklarını içerecek şekildeGraphicsContext
arayüzünü kullanın. (I4a8d6, b/288494724) - 1D odak aramasıyla ilgili, odağın diğer görünümlerin arasına yerleştirilmiş bir
ComposeView
içinde takılmasına neden olan 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
'ye taşındı. Katkılarından dolayı Jake Wharton'a teşekkür ederiz. (I6c41b, b/328263448)- Tüm önyargıya dayalı hizalama alt türlerinde önyargı kayma özelliklerini sürekli olarak gösterin. (I69f0f, b/328088992)
Sürüm 1.7.0-alpha04
6 Mart 2024
androidx.compose.ui:ui-*:1.7.0-alpha04
yayınlandı. 1.7.0-alpha04 sürümü bu kayıtları içerir.
API Değişiklikleri
- Android U'dan sonraki cihazlarda BasicTextField2 için ekran kalemi el yazısı özelliği desteklenir. (I002e4)
- Bu CL'de, oluşturma sırasında kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için
GetScrollViewportLength
semantik işlemini ekliyoruz. Bu değişiklik belgesi, temel kaydırılabilir listelerde söz konusu mülkün kullanımını da uygular. (Ic5fa2) FocusRequester.createRefs
artık kararlı (I4d92c, b/261436820)- Değiştirici düğümlerin yerel bir beste okumadan geçerli Android
View
sürümünü almalarını sağlamak içinDelegatableNode.requireView()
kullanıma sunuldu. (I40768) - Bir yolun yönünü tersine çevirmek için yeni API
Path.reverse()
(I36348) TextFields
uygulamasının, tercih edilen bir dili ayarlamak üzere belirli yerel ayarlarla IME'lere ipucu vermesini sağlamak içinhintLocales
,KeyboardOptions
içine eklendi.- Temel platform nesnesini (ör.
java.util.Locale
) döndürenLocale
öğesindenplatformLocale
özelliğini kullanıma sunun. (I921c6)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.ui:ui-*:1.7.0-alpha03
yayınlandı. Sürüm 1.7.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- MaxLines ve Overflow ile
ContextualFlowRow
ve GeliştirilmişFlowRow
/Column
ile tanışın. Deneme amaçlıFlowRow
veFlowColumn
için geliştirmeleri duyurmaktan mutluluk duyuyoruz. Bu geliştirmeler artık maxLines ve taşma desteğinin yanı sıraContextualFlowRow
veContextualFlowColumn
özelliklerini de içeriyor. Bu güncelleme, en iyi performans bileşenleri sağlamak için tasarlanmıştır.ContextualFlow*
küçük birmaxLines
yapılandırmasından ve dinamik +N daha fazla düğmeden yararlanan çok sayıda öğe için,FlowRow
veFlowColumn
ise 100'den az öğe içeren az sayıda öğe için idealdir. Önemli: Çapraz eksene uygun olup olmamalarından bağımsız olarak tüm öğelerin oluşturulduğuFlowRow
veyaFlowColumn
ürününde mevcut davranışı korumak için başlatma sırasındaoverflow
değeriniFlowRowOverflow.Visible
veyaFlowColumnOverflow.Visible
olarak ayarlayın. Bu yeni özelliklerin uygulamalı örneklerini görmek içinContextualFlowRowSample
veFlowRowSample
özelliklerini keşfedin. (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ı kullanımdan kaldırıldı. Bu API, değiştiricinizin gereğinden fazla geçersiz kılınmasına neden olur. Bu nedenle, bu API'nin kullanılması önerilmez. Değiştirici özellikleri araçlara sunmak isteyen geliştiricilerin,ModifierNodeElement
sitesindeinspectableProperties()
yöntemini uygulamaları önerilir. (Ib3236)PopupProperties
içinWindowManager.LayoutParams
işaretleri üzerinde tam kontrol sağlayan yeni oluşturucu. (Ibb33e, b/312485503)onPlaced
değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadanModifier.Node
adlı öğenin mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.requireLayoutCoordinates()
kullanıma sunuldu. (Ia8657)onPlaced
değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadanModifier.Node
adlı öğenin mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.currentLayoutCoordinates
kullanıma sunuldu. (Iaebaa)BasicTextField2
veandroidx.compose.foundation.text2
paketi kapsamındaki ilgili API'lerandroidx.compose.foundation.text
kuruluş birimine taşındı. (I9f635)- Açık bir Değiştirici Düğümde özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir
ApproachLayoutModifierNode
API'si eklendi. Ayrıca, örneklendirme sırasında hedefi bilinmeyen animasyonlar için yeni bir deneyselDeferredTargetAnimation
API'sı eklendi. (I60745) - Bir Yolun yönünü sorgulamak ve bir
Path
öğesinden kontur çıkarmak için yeniPath
API'leri. (I63d04) Path
öğesinin belirli bir nokta içerip içermediğini kontrol etmek içinPathHitTest
vePath.contains(Offset)
eklendi. (I3b218)TextLayoutResult
artıkgetLineBaseline(lineIndex)
yöntemini gösteriyor. Bu, mevcut kolaylık özelliklerifirstBaseline
velastBaseline
özelliğine ek olarak metnin rastgele bir satırının referans çizgisini okumanıza olanak tanır. (Ide4e8, b/237428541)- Yalnızca iki
AnnotatedStrings
öğesinin ek açıklamalarını karşılaştırmak için bir 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ınlandı. Sürüm 1.7.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
SemanticsPropertyReceiver.performImeAction
ile ilgili ikili program uyumluluğu sorunu düzeltildi. (I65865, b/322269946)usePlatformDefaultWidth
parametresi alanPopupProperties
oluşturucu artık deneysel değil. (I8f8d2)- Zaman aşımı mesajına eklemek üzere koşulun dize açıklamasını alan bir
ComposeTestRule.waitUntil
aşırı yükü eklendi. (I9413e) - Aynı değiştirici zincirine eklenen anlamsal özellikleri kaldırmak için yeni semantics API
unset()
. Yeni anlamsal özellikisOpaque
. (I8c583, b/317966058, b/246056649) PointerInputChange
uygulamasının herkese açık API'sindeki kopyalama yöntemindenoriginalEventPosition
kaldırıldı. (I7bead)
Hata Düzeltmeleri
- Sekme ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanabilir olmasına izin veren a11y hatası düzeltildi. (I2181c)
VelocityTracker
artık varsayılan olarak nokta ekleme düzeltmesine sahip olacak. Herhangi bir sorun varsaVelocityTrackerAddPointsFix
değeri false (yanlış) değerine ayarlanarak düzeltme devre dışı bırakılabilir. (Ib3877, b/269487059)TextStyle
veParagraphStyle
sürümlerinde geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)
Harici Katkı
- Platforma özgü parametreler olmadan yeni bir
DialogProperties
oluşturucusu eklendi. (I45829) - Platforma özgü parametreler olmadan yeni bir
PopupProperties
oluşturucusu eklendi. (I9a038)
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.ui:ui-*:1.7.0-alpha01
yayınlandı. Sürüm 1.7.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Resimler gibi rastgele içerikleri desteklemek için
ClipEntry
veClipMetadata
eklenerekClipboardManager
genişletildi. - Test edilen içeriğin davranışını yerel olarak geçersiz kılmaya (ör. kullanılabilir bir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema belirtme) olanak tanımak için
ui-test
öğesineDeviceConfigurationOverride
API ekler.
Sürüm 1.6
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.ui:ui-*:1.6.6
yayınlandı. 1.6.6 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Nadir görülen
BasicTextField
kilitlenmelerini düzeltir.
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.ui:ui-*:1.6.5
yayınlandı. 1.6.5 sürümü bu kayıtları içerir.
Sürüm 1.6.4
20 Mart 2024
androidx.compose.ui:ui-*:1.6.4
yayınlandı. 1.6.4 sürümü bu kayıtları içerir.
Sürüm 1.6.3
6 Mart 2024
androidx.compose.ui:ui-*:1.6.3
yayınlandı. 1.6.3 sürümü bu kayıtları içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.ui:ui-*:1.6.2
yayınlandı. 1.6.2 sürümü bu kayıtları içerir.
Sürüm 1.6.1
7 Şubat 2024
androidx.compose.ui:ui-*:1.6.1
yayınlandı. 1.6.1 sürümü bu kayıtları 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ürdüğünde ölçüm yaparken hata veriyor. Bu tür hatalar genellikle ölçümde
Constraints.Infinity
kontrol edilmeden doğrudan maksimum kısıtlamaları kullandığında ortaya çıkar. Bu denetim, geliştiricilerin, yanlış boyuta sahip düzende değil de yanlış boyuta sahip düzendeki sorunları bulmasına yardımcı olur. (I339a9)
Sürüm 1.6.0
24 Ocak 2024
androidx.compose.ui:ui-*:1.6.0
yayınlandı. 1.6.0 sürümü bu kayıtları içerir.
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.ui:ui-*:1.6.0-rc01
yayınlandı. 1.6.0-rc01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Ek yeniden kompozisyonları en aza indirerek performansı iyileştirmek için vektör grafikleri optimize edildi.
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.ui:ui-*:1.6.0-beta03
yayınlandı. 1.6.0-beta03 sürümü bu kayıtları içerir.
Yeni Özellikler
- Artık
LayoutCoordinates
, düğüm çıkarılmadan ayrılabilir. Oluşturma Düzen Denetleyicisi'nde (If693) buna karşı koruma sağlayın
Hata Düzeltmeleri
PlatformImeOptions
artık bir arayüz değil, somut bir sınıf. (If40a4)- Her kök yeniden derlendiğinde
LocalSoftwareKeyboardController
veLocalTextInputService
değerlerinin yeni değerlerin sağlanmasından kaynaklanan ek aşağı akış yeniden oluşturmaları 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ınlandı. 1.6.0-beta02 sürümü bu kayıtları içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta01
yayınlandı. 1.6.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
DragAndDropTarget
değiştiricisi artık alıcıDragAndDropTarget
öğesini açık bir şekilde üstlenir ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda'ya sahiptir. Şu andaDragAndDropModifierNode
için iki fabrika işlevi mevcuttur. Biri aktarımları almak, diğeri veri aktarımı için kullanılır (I69481)maximumFlingVelocity
, Kayan öğe olarak gösterilecek şekilde güncellendi. Dokümanlar,maximumFlingVelocity
birliği hakkında daha net bilgi verecek şekilde güncellendi. (I8adc7)DragAndDropModifierNode
fabrikasındakionDragAndDropStart
,acceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumundan kabul etmesi içindragAndDropTarget
Değiştirici'ye eklendi. Bu lambda, sürükle ve bırak oturumuyla ilgileniyorsanız geçerli birDragAndDropTarget
döndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'lar bu şekilde değiştirildi. Sürükle ve bırak oturumlarından veri almak için birDragAndDropTarget
fabrika işlevi eklendi (Iebf3a)DragAndDropInfo
,DragAndDropModifierNode.drag
türü olarak kaldırıldı ve artıktransferData
, süsleme boyutu ve sürükleme dekorasyonuDrawScope
lambda parametrelerini alıyorDragAndDropTarget
, tek bir soyut yöntem yerine belirli sürükle ve bırak etkinlikleri için yöntemler içeriyorBir
DragAndDropModifierNode
için fabrika işlevindekionDragAndDropEvent
, sağlananDragAndDropTarget
değerinin yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi açıklamak amacıylaonDragAndDropStart
olarak yeniden adlandırıldıDragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
,establishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)Geçirilebilir düğüm API'sı adlarını iyileştirir ve bunları daha anlaşılır hale getirir. (Ia4474)
OriginalText
yerineTextSubstitution
kullanın. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
,runTextInputSession
olarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere saklanan
SubcomposeLayout
alt öğeleri (ve buna dayalıLazyColumn
gibi düzenler) devre dışı olarak kabul edilir. Bu tür düğümleri test etmek için yeniassertIsDeactivated()
test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, varsayılan olarak devre dışı bırakılmış düğümleri filtreler. (I2ef84, b/187188981)Kaldırılan
FocusDirection.In
veFocusDirection.Out
, bunun yerineFocusDirection.Enter
veFocusDirection.Exit
öğelerini kullanıyor (I2f660)Materyal
SwipeToReveal
API'leri (Kartlar ve Çipler için), artık bu slotları oluşturmak için veri sınıfı tabanlı örnekler yerine slot tabanlı API'leri (Compose tarafından önerildiği gibi) kullanmaktadır. Bu son derece önemli bir değişikliktir. Yeni API'nın nasıl kullanılacağıyla ilgili örnekler için lütfen demoyu ve örnek kodu inceleyin. (Ia8943)FontStyle(int)
oluşturucu kullanımdan kaldırıldı, bunun yerineFontStyle.Normal
veyaFontStyle.Italic
kullanın. (I66610)FontScalable
arayüzünün adıFontScaling
(Ie804a) olarak değiştirildi
Hata Düzeltmeleri
- Hiçbir metin düzenleyiciye odaklanılmamışsa
SoftwareKeyboardController.show()
artık yazılım klavyesini göstermez. (I2165a, b/301477279) - Aynı Oluşturma Görünümü'nde Down etkinliği almayan anahtarlar için donanım tuşu Up etkinlikleri artık yoksayılacaktır. (Ib37b4, b/305518328)
ArcLine
bölgesinde Gradyan Süpürme özelliği için oluşturucu desteği eklendi. (I4d5bb)PageSize.Fixed
için eşittir ve karma kodunu uygulayın. (Ie3ede, b/300134276)- Pencere Inset değişikliğiyle ikili program uyumluluğu sorununu düzeltme (Iee695)
- Mikro karşılaştırmalar, bu olmadan daha iyi performans gösterdiğinden Material3 Çip/Düğmesi için malzeme temel katmanını kaldırın. (I55555)
- Compose'a
effectContext
testlerinde iletilenTestDispatcher
'ler artık test ve kare saatleri oluşturmak için kullanılır. (Ia7178)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha08
yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.
API Değişiklikleri
Modifier.dragAndDrawSource
,onDrawDragShadow
lambda'yıdrawDragDecoration
olarak yeniden adlandırdı veDragAndDropInfo
adlı boyut parametresidragDecorationSize
olarak yeniden adlandırıldı. (Id0e30, b/303904810)- Eşleşen bir düğümün görünür olup olmadığını kontrol etmek için, üzerinde de iddiada bulunmadan,
SemanticsNodeInteraction.isDisplayed()
veSemanticsNodeInteraction.isNotDisplayed()
özelliklerini kullanın. (I2c196, b/302100809) null
öğesinin yerine kullanılacakParagraphTextStyle
öğesininTextAlign
,TextDirection
,Hyphens
veLineBreak
alanları için özel birUnspecified
değeri kullanıma sunuldu. Bu sınıflar satır içi sınıflar olduğundan, nullable öğesi Belirtilmemiş değeriyle değiştirilerek temel tür kutulama işleminden kaçınılır.TextStyle
ve Paragraf stilindeki oluşturucular, alıcılar ve diğer yöntemler, belirtilen parametreleri boş türler olarak kabul edecek şekilde güncellendi. (I4197e, b/299490814)- XML'den bir
GoogleFont
okumak içinGoogleFont
aşırı yükünü ekleyin. (If8f59) LoremIpsum
PreviewParameterProvider
açık sınıf haline getirildi. (I41bf5, b/266918816, b/300116360)
Hata Düzeltmeleri
FontFamilyResolver
, önbellek yönetimi eş yordamları için artıkDispatchers.Main
kullanıyor. (Ie8dd9)AndroidViewBinding
, daha önce kullandığıcommit
yerinecommitNow
kullanarak düzeninizeonRelease
öğesinin parçası olarak birFragmentContainerView
ekleyerek şişirilenFragment
örneği artık eşzamanlı olarak kaldırıyor. Böylece, Canlı Düzenleme'nin yöntemdeki sorunları, değişiklikler sonrasında besteyi değiştirerek düzeltiyor. (I58fbf)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha07
yayınlandı. Sürüm 1.6.0-alpha07 bu kayıtları içerir.
API Değişiklikleri
- Özel metin düzenleyicilere yönelik yazma testleri için
PlatformTextInputMethodTestOverride
kullanıma sunuldu. (Id159b) - Sürükle ve bırak oturumlarını başlatmak için
dragAndDropSource
Değiştirici ve sürükle ve bırak oturumlarından almak içindragAndDropTarget
Değiştirici ekler. (Ib7828, b/286038936) - Ayırmalardan kaçınan
ColorList
veColorSet
koleksiyonları eklendi. (I744bd) - Doğrusal olmayan yazı tipi ölçeklendirmesini devre dışı bırakmak için
DisableNonLinearFontScalingInCompose
geçici işareti eklendi. Bunları temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = true
değerini ayarlayın. Bu bayrak, Compose 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)
Hata Düzeltmeleri
- Optimize edilmiş XML vektör çekilebilirlerinin ayrıştırılması. (Ibb015)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha06
yayınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.
API Değişiklikleri
- Materyal simgeleri için ek optimizasyonlar. (I3e08d)
- Benzer düğümleri bulmak için değiştirici ağacı yukarı/aşağı çekme özelliği ekler. (I2d234)
focusRestorer()
değiştiricisine (Ie1d43)onRestoreFailed()
geri çağırma eklendiColorInt
,FloatRange
,IntRange
,Size
ve daha fazlasını belirtmek için çeşitli grafik API'lerine Androidx ek açıklamaları eklendi. (Id65c8, b/290950582)showSystemUi=true
öğesiniPreviewScreenSizes
tanımına ekle (Ib61d3)
Davranış Değişiklikleri
- Compose'da daha iyi okunabilirlik ve erişilebilirlik sağlamak için artık doğrusal olmayan yazı tipi ölçeklendirme kullanılıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda, küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinlerin boyutu biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğinde amaçlanan yükseklikle orantılı biçimde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar sayfasına bakın. (I11518)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha05
yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
AndroidComposeViewAccessibilityDelegateCompat
uygulamasında içerik yakalamayı etkinleştir. (Ib2969)ScrollView
veRecyclerView
gibi View bileşenlerindeki fırlatma hızlarıViewConfiguration.ScaledMaximumFlingVelocity
ile sınırlıdır. Oluşturma işlemi artıkDraggable
için geçerli olan kendimaximumFlingVelocity
sürümünü içeriyor. (Ibf974)- Platform sürükle ve bırak API'lerini desteklemek için başlangıç iskelesini ekler. (If84ce)
deviceId
öğesiniRotaryScrollEvent
alanına (Iba3bf) ekleyinui-tooling
Cihazlar API'si daha yeni cihazları içerecek şekilde güncellendi (Ib25b4)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha04
yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
ReusableComposition
devre dışı bırakılması için bir yöntem eklendi. Gözlemler kaldırıldı ancak düğümler yerinde tutuldu. Devre dışı bırakılan besteyisetContent
çağrısı yapılarak tekrar etkinleştirilebilir. (Ib7f31)- Alt bestelerin yaşam döngüsünü yönetmek ve yeniden kullanmak için
ReusableComposition
arayüzü ekleyin. (I812d1, b/252846775) Modifier.focusGroup
sürümü, kararlı API'lere yükseltildi. (I7ffa3)ColorInt
,FloatRange
,IntRange
,Size
ve daha fazlasını belirtmek için çeşitli grafik API'lerine Androidx ek açıklamaları eklendi. (I70487, b/290950582)ColorFilter
API, parametrelerin daha iyi denetlenmesi için somut alt sınıf türlerine sahip olacak şekilde güncellendi. (I5fe29)- Kullanıcı arayüzü önizlemelerinde kullanılabilecek geçerli Wear cihazlarını listelemek için Wear-araçları-önizleme kitaplığını sunun (Ib036e)
- Yoğunluk arayüzünün yazı tipi ölçeklendirme kısmını işlemek için
FontScalable
arayüzü oluşturuldu. (I2cf3f)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha03
yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- İçeriği, giriş ve çıkış animasyonu sırasında animasyon kapsayıcısının boyutuna göre ölçeklendiren yeni giriş/çıkış geçişi türü.
LookaheadScope
Oluşturulabilir eğlence ve arayüz artık kararlı. (Ifb2ce) privateImeOptions
(Idb772) yapılandırması için destek eklendi
Hata Düzeltmeleri
PopupPositionProvider.calculatePosition
artık hesaplamadaki okunma durumu değiştiğinde pop-up'ın konumunu otomatik olarak günceller. (I676a1, b/292257547)- Klavyeyi gösteren ve
readOnly
doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktaykenreadOnly
ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589) - Kullanıcı arayüzü testinde genel onayların uygulanması genişletildi. (I1f90d)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.ui:ui-*:1.6.0-alpha02
yayınlandı. Sürüm 1.6.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- Besteyi uygulayan kişiler tarafından uygulanabilecek olan ve başka bir beste yetki hizmeti araması için orijinal Besteye yetki veren Beste uygulamasına olanak tanıyan bir hizmet konum belirleyici arayüzü eklendi. Bu, doğrudan olarak adlandırılmamalıdır ve kullanıcı arayüzü modülünde olduğu gibi oluşturucunun sarmalanmış sürümlerinden bulunabilen, çalışma zamanında deneysel API'lerin oluşturulmasını etkinleştirmek için kullanılır. (I296b9)
PlatformTextInput*
API tümüyle yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)SoftwareKeyboardController
veLocalSoftwareKeyboardController
artık deneme aşamasında değil.LocalSoftwareKeyboardController
artık uygun birCompositionLocal
. (I4c364)LookaheadLayout
veLookaheadLayoutScope
birkaç sürüm için kullanımdan kaldırıldı ve şimdi kaldırıldı. Yeni API'ler tüm Layout'larla çalışabilecekLookaheadScope
API'leridir. (I12ac3)SemanticsNodeInteraction.requestFocus
, testlerde odaklanma isteğinde bulunmanın daha kolay ve bulunabilir bir yolu olarak eklendi. (Ie8722)- Gelecekte test çerçeveleri tarafından kullanılmak üzere global iddiaları kaydetmek için deneysel API'ler ekleyin. (I12d77)
Hata Düzeltmeleri
AndroidView
adlı kullanıcıya aitupdate
geri çağırma işleminin ilk çağrısı,AndroidView
öğesini tanıtan beste uygulandığında çalıştırılmak yerine görünüm eklenene kadar ertelenir. Bu işlem, okuduğu bir durum bir efektle hemen değiştirilirseupdate
geri çağırmanın geçersiz kılınmayacağı bir hatayı düzeltir. (Ie9438, b/291094055)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.ui:ui-*:1.6.0-alpha01
yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
LazyList
için ileriye dönük destek. Bu, ileri geçiş geçişindekiLazyList
öğesinin tüm animasyonları (ör.öğe yerleşimi animasyonu,AnimatedVisibility
vb.) atlamasına ve tüm alt öğeler için ileriye dönük boyutu ile konumunu hesaplamasına olanak tanır.LazyList
çocukları, ileriye doğru geçişten sonra ileriye doğru geçişte görüldüğü gibi bağımsız olarak gerçeğe göre hareket edebilir.
Davranış Değişikliği: includeFontPadding, artık Compose'da varsayılan olarak yanlış
Oluşturma işleminde includeFontPadding
artık varsayılan olarak false (21d806) değeridir.
includeFontPadding
, metin referans değerlerinin üzerine veya altına uzayabilecek karakterleri yerleştirmek için metnin ilk satırının ve son satırının üstüne fazladan dolgu eklenip eklenmeyeceğini kontrol eden eski bir özelliktir.
Bu Oluştur sürümünü güncellediğinizde, görüntülediğiniz her metnin ilk satırının ve son satırının üstündeki fazladan dolguyu kaldırarak tüm metinlerin kullanıcı arayüzünüzde oluşturulma şeklini değiştirir.
Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak, minimum düzeyde değişiklik yapılmalıdır. Ancak, aşağıdakiler gibi engelleyicilerle karşılaşabilirsiniz: - Bozuk ekran görüntüsü testleri. Gerekirse kullanıcı arayüzünü düzeltin ve altın rengi resimleri yeniden oluşturun. - Metin biraz hatalı hizalanıyor. Özel negatif dolguları kaldırın veya gerekirse dolgu ekleyin.
Her metin için PlatformTextStyle
kullanarak includeFontPadding
hizmetine kaydolabilirsiniz:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
Materyal stillerinizi yapılandırarak tüm metinleriniz için includeFontPadding
özelliğini etkinleştirebilirsiniz. M2 ile M3 arasında parametre adlarının farklılık göstereceğini unutmayın.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
Compose includeFontPadding
hakkında daha fazla bilgiyi geliştirici dokümanlarında ve bu blog yayınında bulabilirsiniz.
Bu değişiklikle bağlantılı sorunlar veya hatalarla karşılaşırsanız sorun izleyiciyi kullanarak hata bildiriminde bulunun.
API Değişiklikleri
InputConnection#requestCursorUpdates
(I0c69b) kanalını destekleyinFocusRequester.saveFocusedChild
veFocusRequester.restoreFocusedChild
eklendi (Ic557e, b/272302679, b/275157318)- Bit eşlem öğeleri yüklenmeye çalışılırken, yüklenemeyen öğe yolunun açıklamasına yer verilen atılabilir öğeleri sarmalamak için
ResourceResolutionException
türünü ekleyin. (I19f44, b/230166331, b/278424788) - Performans ve bellek ayırmaları için optimize edilmiş erişilebilirlik. (Iede48)
- Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
- Mevcut ölçüm geçişinin ileriye dönük geçiş olup olmadığını belirtmek için
IntrinsincMeasureScope
içinde ve uygulamalarında (ör.MeasureScope
) yeni özellik. (I7a812) - Oluşturma işlemini alternatif yoğunluk/düzen yönü ve boyutla farklı bir tuvalde yeniden hedefleme özelliğini kullanıma sunmak için
DrawScope
API güncellendi. - Yoğunluk ve düzen yönü yapılandırmasını desteklemek ve kanvası yapılandırılabilir hale getirmek için
DrawContext
güncellendi. (Ie1f9b, b/225408150) - Karakter sınırlayıcı kutuları hesaplamak için
Paragraph#fillBoundingBoxes
eklendi. (If30ee) - Ortak
MultiPreviews
(Ia5a27) kümesi eklendi
Hata Düzeltmeleri
- Özel bir
FocusTarget
oluşturmak için kullanılabilecekFocusTargetModifierNode
arayüzü eklendi. (I9790e) TextMeasurer
oluşturucudakifallback*
parametreleri,default*
olarak yeniden adlandırıldı. (I940a5)SemanticsPropertyReceiver.performImeAction
öğesinin adıonImeAction
,SemanticsActions.PerformImeAction
adı iseOnImeAction
olarak değiştirildi. (I8e841)- İç içe kaydırmada fare kaydırmasını sürüklemeden ayırt etmek için Tekerlek ekler (özellikle
NestedScrollConnection
içinde). (Ie57e4) - Döndürülen nesne orijinal
android.graphics.Paint
öğesini sardığındantoComposePaint
öğesinin yerine kullanılacakasComposePaint
API eklendi (I22b4c) SemanticsProperties.imeAction
öğesini kullanımdan kaldırın veSemanticsActions.performImeAction
için yeni bir parametreyle değiştirin. (I4a587)- Fareyle seçme desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişler ve karakter bazında küçülür. (Ic0c6c, b/180639271)
- Daha önce
AssertionError
ofsetleri içinAssertionError
hatası verenParagraph
yöntemleri artıkMultiParagraph
gibiIllegalArgumentException
hızına neden oluyor. (I549d3, b/243338896)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.ui:ui-*:1.5.4
yayınlandı. 1.5.4 sürümü bu kayıtları içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.ui:ui-*:1.5.3
yayınlandı. 1.5.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- (b/301209788)
TextField
bazen Korece girişe odaklanıp giriş yaparken önceki komutları yanlış bir şekilde uygulayıp karakterlerin kaybolmasına neden oluyordu.
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.ui:ui-*:1.5.2
yayınlandı. 1.5.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Arka plan ileti dizisinden Accessibility Scroll API'ye erişildiğinde oluşan kilitlenmeler için geçici çözüm eklendi.
- Anlambilim ağacına eklenen eklenmemiş düğümleri düzeltin.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.ui:ui-*:1.5.1
yayınlandı. Sürüm 1.5.1 bu kayıtları içerir.
Hata Düzeltmeleri
- Klavyeyi gösteren ve
readOnly
doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktaykenreadOnly
ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.ui:ui-*:1.5.0
yayınlandı. 1.5.0 sürümü bu kayıtları içerir.
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.ui:ui-*:1.5.0-rc01
yayınlandı. 1.5.0-rc01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
movableContentOf()
içindeSubcomposeLayout
kullanıldığında meydana gelen kilitlenme düzeltildi.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta03
yayınlandı. 1.5.0-beta03 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Özel bir FocusTarget hedefi oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (Ifb1d6)
- İletişim Kutusu ve Pop-up composable'larında yaşanan,
usePlatformDefaultWidth=true
olduğunda alt pencerenin beklendiği gibi yeniden boyutlandırılmamasına neden olabilecek bir sorun düzeltildi. (I112ee)
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta02
yayınlandı. 1.5.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Compose'da kullanılacak
android.graphics.Paint
örneğinin kullanımını etkinleştirmek içinasComposePaint
API'si eklendi
Hata Düzeltmeleri
- Döndürülen nesne orijinal
android.graphics.Paint
öğesini sardığındantoComposePaint
öğesinin yerine kullanılacakasComposePaint
API eklendi (I22b4c)
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-beta01
yayınlandı. 1.5.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Yeniden oluşturma, renk animasyonları ve
AndroidComposeView
(Ib2bfa) kapsamındaki ayırmalar kaldırıldı - Yetki vermek için
CacheDrawModifierNode()
yardımcı eğlencesini ekler (Icf8f9) - Önceden inceleme sonuçlarını gözlemlemek ve isterseniz ana geçişi etkilemek için
MeasureScope
üzerinden erişilebilenisLookingAhead
özelliğini kullanıma sunuyoruz. (Ibf4c3) TalkBack
geçişindeki düğümleri yeniden sıralamak için kullanılan bir hareketli değer olan yeni anlamsal özelliktraversalIndex
(düşük değerler önce gelir). (I9a81b, b/186443263)isContainer
semantik mülkünüisTraversalGroup
olarak yeniden adlandırma (I121f6)ColorProducer
artıkproduce
yerine biroperator fun invoke
özelliğine sahip (I4a9a2)- Yol nesnelerine çevirme/ölçek/döndürme dönüşümleri uygulamak için
Path
dönüşüm API'si ekleyin. (I23434, b/233772232) ColorProducer
yönteminin adıproduce
. (I78bde)toFrameworkColorSpace
alanının adınıtoAndroidColorSpace
olarak değiştirin (I4f547)ColorLambda
alanının adınıColorProducer
olarak değiştirin. (I73b1a)- Android ve Compose renk alanı türleri arasında dönüşüm yapmak için API'leri kullanmaya başlayın. (Ie7db4, b/279979665)
- Metin renginin verimli bir şekilde animasyonunun ayarlanmasına veya ayarlanmasına olanak tanımak için
BasicText
öğesine bir renk parametresi eklendi. (Iffd88, b/246961787) TextRange.constrain
,TextRange.coerceIn
olarak yeniden adlandırıldı. (I31be2)- Tam parametre listesine sahip, optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği sonlandırıldı. Asıl amacımız alanı kaldırmak olsa da geri bildirimlere göre geliştiricilerin bu yapılandırma seçeneğine ihtiyacı var. Bu nedenle, desteğin sonlandırılması (I98e96, b/277703184)- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) AnnotatedString
içindekiUrlAnnotation
dosyaları artıkTalkBack
gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) LineHeightStyle.Alignment(topRatio)
oluşturucu, kararlı API sürümüne yükseltildi. (I79c32, b/261565383)TextMeasurer
ve ilgili API'ler artık deneysel değ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 değer parametresi adı değiştirildi (Ia9b89)- enum valueOf parametresinden (I818fe) daha fazla atılmış istisna
- Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey
PlatformTextInputAdapter
API'si kullanıma sunuldu. (I58df4) - Tuval üzerinde metin çizerken farklı harmanlama algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508) Font.MaximumAsyncTimeout
alanının adınıFont.MaximumAsyncTimeoutMillis
olarak değiştirin. Yalnızca yeniden adlandır'a dokunun. (I07af5)@Preview
referans cihazların (Id6151, b/254528382) güncellenmiş DPI değerleri- Metin fırçasını verimli bir şekilde canlandırmak veya ayarlamak için
BasicText
öğesinebrush
,alpha
parametreleri ekleyin. - Kayan noktalı, Çift, Uzun, İnt, Kısa in :ui:ui-unit için kutusuz lambda türlerini tanımlama (I6f18d, b/246961787)
Hata Düzeltmeleri
- İşaretçi hızı izlemedeki birden fazla ayırma kaldırıldı (I26bae)
- Düzen ve işaretçi giriş yönetiminde azaltılmış ayırmalar (I5333a)
- Vektör bellek kullanımını ve ilk kare oluşturmayı optimize etme (I2f3c6)
- Tuval ile çizgi ve nokta çizerken ayırmalar kaldırıldı (I9f535)
AndroidFont.fontVariationSettings
(I7d9e2) için doküman ekle
Harici Katkı
- Vektör API'lerinde (I906cb) gelişmiş performans ve ayırmaları azaltma
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-alpha04
yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
Modifier.Node
Yetki İyileştirmeleri BirDelegatingNode
öğesinden diğerModifier.Node
örneklerine yetki verme yeteneği eklendi. Bu işlem,delegate
veundelegate
API'leriyle yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin, yetki verilen düğüme açıkça yetkilendirilmesi gerekiyordu. Bu değişiklikten sonra,DelegatingNode
açıkça geçersiz kılmadığı sürece düğüm arayüzlerine dolaylı olarak yetki verilecek. (67352bc)
API Değişiklikleri
- Yetki verilebilecek bir
NestedScroll Modifier.Node
olanNestedScrollModifierNode
ile tanışın. (I69513) onReset
veonRelease
parametreleriAndroidViewBinding
composable'ına eklendi. BöyleceAndroidView
composable yansıtıldı veViewBinding
ile görüntülemenin yeniden kullanımı desteği etkinleştirildi. (I00b1e, b/276802519)- Compose Path API'si daha hızlı yeniden kullanımla sık kullanılan Yol işleme durumları için geri sarma işlemlerini destekleyecek şekilde güncellendi. (I7b797)
- Tam parametre listesine sahip, optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPadding
desteği sonlandırıldı. Asıl amacımız alanı kaldırmak olsa da geri bildirimlere göre geliştiricilerin bu yapılandırma seçeneğine ihtiyacı var. Bu nedenle, desteğin sonlandırılması (I98e96, b/277703184)
Hata Düzeltmeleri
Dialog
composable tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmemesiyle ilgili regresyon düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha03
yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
LookaheadScope
ürünündeSubcomposeLayout
için yeni varsayılan davranış: Koşullu yuvaları (ör.TabRow
,Scaffold
,BoxWithConstraints
vb.) olmayanSubcomposeLayouts
artık ileri doğru animasyonlarla düzgün şekilde çalışıyor.
API Değişiklikleri
- İleriye dönük geçişteki ölçüm politikasını yeniden kullanan yeni varsayılan
intermediateMeasurePolicy
,Scaffold
,TabRow
veBoxWithConstraints
gibi koşullu alanlar içermeyenSubcomposeLayout
alt türünün varsayılan olarak ileri düzey öğeyle çalışmasına olanak tanır. (Id84c8) - Bir Android penceresi için oluşturulan yeniden düzenleyici,
ON_STOP
bildirimi aldığında tüm besteleri değil, yalnızcawithFrameNanos
çağrılarını engelleyecektir. Bu, durdurulan etkinliklerle ilişkili pencerelerin veri değişiklikleri için yeniden derlenmeye devam edeceği, ancak animasyonların veyawithFrameNanos
işleviyle ilişkili diğer tüm çağrıların engelleneceği anlamına gelir. (Id9e7f, b/240975572) motionEventSpy
adlı öğeyi kararlı olarak değiştirir. (Ic5ec4, b/261560988)- Herkese açık
TextRange.constrain
yöntemi eklendi. (I97912) - Geliştiricileri,
includeFontPadding
false (yanlış) ayarını değiştirmek ve test etmek için bu uyumluluk API'sini kullanmaya teşvik etmek amacıylaPlatformTextStyle.includeFontPadding
desteği sonlandırılmıştır. (I98e96, b/277703184)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha02
yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- İleriye dayalı animasyonlar sırasında ölçüm/düzen mantığını yönetmek için ek bir ara önlem politikası gerektiren yeni
SubcomposeLayout
API'si. (I017d3) - PointerInput artık geç değildir ve daha iyi performans için Modifier.Node'u kullanır (Küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
- Deneysel API'leri Önemli etkinliklerle birlikte kararlı olarak değiştirir. (I9c7d8, b/261566839, b/261567368)
PointerInputChange
ürününde deneysel API'leri kararlı olarak değiştirir. (I1b543, b/261560988, b/261565762, b/261565749)- Daha karmaşık
Modifier.Node
uygulamaları içinSuspendingPointerInputModifierNode
örnekleme yöntemi ekler. (Ic4933) AnnotatedString
içindekiUrlAnnotation
dosyaları artıkTalkBack
gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)- Donanım tuşlarını, yazılım klavyesine gönderilmeden önce engellemek 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 semantik işlemini kullanarak doğrudan odaklanma isteğinde bulunacak. (I6ed05)
Hata Düzeltmeleri
- Metin testi işlemleri için artık metin alanlarının etkinleştirilmesi gerekiyor. (Iab328)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.ui:ui-*:1.5.0-alpha01
yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Modifier.intermediateLayout artık açık bir LookaheadScope gerektirmiyor. intermediateLayout'taki ölçüm bloğunun alıcısı olarak IntermediateMeasureScope yer alır. Bu blok, kullanışlı CoroutineScope, LookaheadScope ve MeasureScope özelliğini sağlar.(Ibe2e5)
- LookaheadLayout'un yerini, artık bir Layout olmayan LookaheadScope aldı. Bu, LookaheadScope içindeki Chid içeriğinin doğrudan üst MeasurePolicy tarafından kontrol edilmesine olanak tanır. (Ibe2e5)
- Modifier.Nodes'un eş yordamları başlatmasına izin vermek için
Modifier.Node#coroutineScope
ekler. (I76ef9) - CompositionLocalTüketiciModifierNode arayüzünü uygulayarak Modifier.Nodes'un CompositionLocals öğesini okumasına izin verin. (Ib44df)
- @Kullanımdan kaldırılan sınıfın mülke çoğaltılması. (I882d1)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.ui:ui-*:1.4.3
yayınlandı. 1.4.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Belirli Değiştiricilerle birlikte kullanıldığında
AndroidView
öğesinin doğru şekilde yerleştirilememesine neden olan sorun düzeltildi. (I4dc77, b/274797771) - 2D Odaklı Arama özelliğinde
DropDown
Menüleri etkileyen bir hata düzeltildi (b/276811828) - Özel odak giriş/çıkış özelliklerinde yalnızca lambda ilk kez çağrıldığında giriş/çıkış blokunu çalıştıran bir hata düzeltildi (b/277234245)
- Odak sisteminde
focusProperties
okunurken kilitlenmeye neden olan bir regresyon düzeltildi. (b/271324781, b/274897776)
Sürüm 1.4.2
19 Nisan 2023
androidx.compose.ui:ui-*:1.4.2
yayınlandı. 1.4.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
AndroidView
ürününün, değiştiricilerini doğru bir şekilde yeniden kullanamamasına, dolayısıyla beklenmedik davranışlara ve kilitlenmelere neden olabileceği bir sorun düzeltildi. (Ib67ee, b/275919849)Dialog
composable (I82551, b/262140644) tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesi sorunu düzeltildi.
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.ui:ui-*:1.4.1
yayınlandı. 1.4.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
AndroidView
ürününü etkilemeyenParentDataModifier
ile ilgili sorunu düzeltir (b/274797771)
Sürüm 1.4.0
22 Mart 2023
androidx.compose.ui:ui-*:1.4.0
yayınlandı. 1.4.0 sürümü bu kayıtları içerir.
1.3.0'dan sonraki önemli değişiklikler
- Geç liste öğelerinin sınırların dışına kaydırıldığında silinmemesi için sabitlenmesine olanak tanıyan yeni bir
PinnableContainer
API'si eklendi. ÖrneğinModifier.focusable()
, geçerli olarak odaklanılmış öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010) - Odak sistemi, yeni deneysel
Modifier.Node
API'leri kullanılarak yeniden yazılır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, {1214352203, b/29b} - Yüzeylere
IsContainer
semantik özelliğine eklendi. Bu özellik, geçiş sırasının yüzeyler gibi öğelerin anlamsal anlamına göre belirlendiği daha sonra yapılacak bir değişiklikte kullanılacaktır. (I63379) - Yeni
DropdownList
erişilebilirlik rolü eklendi. Bu,android.widget.Spinner
ürününe odaklanırkenTalkBack
kullanıcısını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)
kullanabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri, boşta kalan kareler çalıştırılırken (ör.
waitForIdle
aracılığıyla) artık her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde uygulanan testleri etkileyebilir. (I8ea08, b/222093277) - Metni
Static(default)
veya Animasyonlu olarak tanımlamak içinTextStyle
öğesine deneme amaçlıTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
kullanın. (I24dd7)
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.ui:ui-*:1.4.0-rc01
yayınlandı. 1.4.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
onReset
parametresini kabul edenAndroidView
composable işlevinin aşırı yüklenmesi eklendi. Bestedeki düğümleri silinip uyumlu bir şekilde yeniden kullanıldığında görüntüleme örneklerinin yeniden kullanılmasına olanak tanır. Bu özellikle GörünümlerinLazyRows
veLazyColumns
kadarında faydalıdır. (I3f10d, b/230099236)- Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey
PlatformTextInputAdapter
API'si kullanıma sunuldu. (I58df4)
Hata Düzeltmeleri
BasicTextField
adlı uygulamanınSetText
semantik işlemi, metin arabelleğini IME güncellemeleriyle ve test işlevleriyle (ör.performTextReplacement
) aynı kod yolunu kullanarak günceller.- Metin test işlevleri
performTextClearance
,performTextReplacement
veperformTextSelection
artıkSemanticsActions
kullanıyor. (I0807d, b/269633168, b/269624358)
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.ui:ui-*:1.4.0-beta02
yayınlandı. 1.4.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
modifierElementOf()
API kaldırıldı. Bunun yerine lütfen doğrudanModifierNodeElement
üzerinden uzatın. (I2256b)Layout
yeniden kullanılacağında (örneğin, birLazyColumn
öğesi olarak) durumu düzgün bir ş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. Odaklanılan durumu düzgün bir şekilde sıfırlamak içinFocusTargetModifierNode
düzeltildi. (I65495, b/265201972)- Tuval üzerinde metin çizerken farklı harmanlama algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508)
Hata Düzeltmeleri
- Erişilebilirlik odağı sırası algoritması iyileştirildi. Örneğin, üst/alt çubuklar daha sık ilk/son olarak okunuyor (74e9c5)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.ui:ui-*:1.4.0-beta01
yayınlandı. 1.4.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
PinnableContainer.PinnedHandle.unpin()
,release()
(I4667a) olarak yeniden adlandırıldıwaitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
vewaitUntilDoesNotExist
,ComposeTestRule
API'sine deneysel API olarak eklendi. BöylecewaitUntil
API, tüm eşleştiricileri ve tüm düğüm sayısını kabul edecek şekilde genişletildi. Diğer dokümanlar içinComposeTestRule
sayfasına göz atın. (Ifa1b9, b/226934294)Font.MaximumAsyncTimeout
alanının adınıFont.MaximumAsyncTimeoutMillis
olarak değiştirin. (I07af5)GoogleFont.Provider.AllFontsListUri
dosyası kaldırıldı ve bu öğeye ktdoc'ta bağlandı. (I16f29)
Hata Düzeltmeleri
AndroidFont.fontVariationSettings
(I7d9e2) için doküman ekle
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha05
yayınlandı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test bestesi ve bestedeki tümLaunchedEffect
ilerememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)- 1 boyutlu hızı izlemek için yeni bir API ekleyin (If5a82)
FocusRequester
artık@Stable
olarak işaretlendi. (I580ee)usePlatformDefaultWidth
parametresini alan deneysel ek açıklamayıDialogProperties
oluşturucudan kaldırın. (Ic4048)PathMeasure.getPosition()
vePathMeasure.getTangent()
(I3b47c) ile, yol üzerinde belirli bir mesafedeki hesaplama konumuna ve tanjanta işlev eklendiPlatformParagraphStyle
tarihinde yanlışlıkla açığa çıkan herkese açık ayarlayıcı kaldırıldı. (I07f47)- Satır içi/kullanımdan kaldırılan gizli işlevlerin daha fazla tür/boşluk değeri (I24f91)
- Sıfır tahsisli ek açıklamaları sorgulamak için
AnnotatedString.hasStringAnnotations
ekleyin. (I94dfe, b/246960758) String
öğesini metin olarak alanTextMeasurer.measure
işlevi için yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)- TextStyle'daki
LineBreak
veHyphens
API'leri kararlı sürüme geçirildi. (Ic1e1d)
Harici Katkı
TextInputSession
veTextInputService
uygulamalarındakinotifyFocusedRect
yöntemlerinin desteği tekrar sonlandırılmadı. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha04
yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
- Geç liste öğelerinin sınırların dışına kaydırıldığında silinmemesi için sabitlenmesine olanak tanıyan yeni bir
PinnableContainer
API'si eklendi. ÖrneğinModifier.focusable()
, geçerli olarak odaklanılmış öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010) - Odak sistemi, yeni deneysel
Modifier.Node
API'leri kullanılarak yeniden yazılır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, {1214352203, b/29b} - Yüzeylere
IsContainer
semantik özelliğine eklendi. Bu özellik, geçiş sırasının yüzeyler gibi öğelerin anlamsal anlamına göre belirlendiği daha sonra yapılacak bir değişiklikte kullanılacaktır. (I63379) - Yeni
DropdownList
erişilebilirlik rolü eklendi. Bu,android.widget.Spinner
özelliğine odaklanırkenTalkBack's
davranışını tekrarlamak için kullanılabilir. (I177e5, b/236159001) - Artık tek bir Paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakmak üzere
PlatformTextStyle(emojiSupportMatch)
kullanabilirsiniz. (Ia7100, b/139326806) - Android Compose kullanıcı arayüzü testleri, boşta kalan kareler çalıştırılırken (ör.
waitForIdle
aracılığıyla) artık her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde uygulanan testleri etkileyebilir. (I8ea08, b/222093277) - Metni
Static(default)
veya Animasyonlu olarak tanımlamak içinTextStyle
öğesine deneme amaçlıTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
kullanın. (I24dd7)
API Değişiklikleri
drawText
içindekimaxSize: IntSize
bağımsız değişkeni, diğerDrawScope
işlevleriyle satır içi olması içinsize: Size
ile değiştirildi.size
varsayılan olarakSize.Unspecified
değerine ayarlanır. Bu ayar, önceki varsayılan davranışı değiştirmez. (Icd27d)- Kullanımdan kaldırılan deneysel yazı tipi oluşturucu kaldırıldı. (I8a724, b/261435386)
Group
kullanıcı arayüzü araç veri sınıfının artık bir satır içi composable işleve çağrı için olup olmadığını gösterenisInline
alanı var.isInline
değeritrue
ise çağrı, bir satır içi composable işleve yapılır. Ancak bu değer, oluşturma derleyici eklentisinin satır içi işlev bilgilerini oluşturmayan bir sürümüyle derlenmiş modüllerden gelen satır içi composable işlevlere yapılan çağrılar için yanlış olabilir. (Idb846)- Daha önce deneysel olan bazı API'ler kararlı sürüme geçirildi
- Rotary Scroll Event API artık kararlı (I42ad3, b/261561229)
FontVariation
API artık kararlı (I8779f, b/241016309)- Tüm
Font()
oluşturucuları artık kararlı API'dir (I5948b, b/261435386) DeviceFontFamilyName
artık kararlı (I8b640, b/261435386)variationSettings
ileAndroidFont
kurucusu artık kararlı bir API ve yeni yazı tipi açıklayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)createFontFamilyResolver
API artık kararlı. Bu, eşzamansız yazı tipi yükleme işlemi sırasında yakalanmamış istisnaları yakalamak için kullanılabilir. (Ibb481, b/261435386)Font.loadingStrategy
API artık kararlı. (I5937c, b/261435386)GoogleFont
API artık kararlı. (Ic90b0, b/261435386)TextUnit(float, TextUnitType)
artık kararlı API. (I90c84, b/261561612)pluralStringResource
artık kararlı API. (I09849, b/261439703)
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.ui:ui-*:1.4.0-alpha03
yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
ExperimentalComposeUiApi
,PointerIcon
klasöründen kaldırılıyor (I23af8)- Sayfa erişilebilirlik işlemlerini tanıtın:
PageUp
,PageDown
,PageLeft
,PageRight
. Bunların yalnızca API 29'dan kullanılabildiğini unutmayın. (Ida4ab) - Kök görünümünden ana makine görünümüne
rememberNestedScrollConnection
parametre görünümü güncellendi. (Ia5200) - Üst öğelerin kaydırma bilgilerini sorgulamak için Değiştirici API'si eklendi. (I2ba9d, b/203141462)
- Hareketler kaydırma etkinliğine dönüşebilirken basma etkileşimlerini doğru bir şekilde ertelemek için
Clickable
içinde kullanılır. Clickables
işlevinin,Scrollable ViewGroup
içinde kullanıldığında dalgaları doğru şekilde geciktirmemesi düzeltildi.- Hareketlerin kaydırma etkinliklerine dönüşmesi ihtimaline karşı bastırmaları doğru bir şekilde geciktirecek Çekmeceler ve E-Tablolar güncellendi.
graphicsLayer
öğesinin her zaman bir ara tampon (I47dc1) içinde oluşturulacağını belirtmek içinCompositingStrategy.Always
öğesiOffscreen
olarak yeniden adlandırıldı- Birden fazla içerik alanıyla düzende aşırı yükleme artık kararlı (I10566, b/248294649)
- Test davranışını ve performansını incelemek amacıyla test kapsamında Perfetto izlerini (Sistem İzleri olarak da bilinir) yakalamak için
PerfettoTrace.record {}
vePerfettoTraceRule
adlı deneysel yeni API'ler eklendi. (I3ba16) - Oluşturma kuralı kullanılan kullanıcı arayüzü testlerinde,
withFrameNanos
geri çağırmaları sırasında devam ettirilen devamlar, tüm çerçeve geri çağırma işlemlerinin çalışması bitene kadar dağıtılmaz. Bu, normal çalışırken oluşturma davranışıyla eşleşir. Ancak, eski davranışa dayanan testler başarısız olabilir. Bu, yalnızca doğrudanwithFrameNanos
veyawithFrameMillis
çağrısı yapan kodu etkilemelidir ve geri çağırma işlevinin içine taşınması gerekebilecek bu işlevlere aktarılan geri çağırma dışında bir mantığa sahiptir. Örnekler için bu EKL'deki animasyon testi değişikliklerine bakın. withFrameNanos
geri çağırmalarından sonra, ancak arayanların eş yordamları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)- EmojiCompat, Oluşturma'ya eklendi (Ibf6f9, b/139326806)
- Dinamik renk desteği için
@Preview
öğesine yeni duvar kağıdı parametresi eklendi (I9f512)
Hata Düzeltmeleri
- Anlık görüntü uygulama bildirimleri,
Recomposer
değişiklikleri uygulamayı bitirdikten sonra gönderilir. (Iad6c0, b/222093277) - Çok pencereli ekran görüntülerinin yakalanmasını sağlamak için
captureToImage
uygulamasında değişiklikler yapıldı. Bu, Pop-Up oluşturma pop-up'larını kullanan ekran görüntüsü testleri için yararlıdır. (I169c5)
Bağımlılık Güncellemeleri
- Compose Kullanıcı Arayüzü ve Compose Material artık Lifecycle 2.5.1'i kullanır. (I05ab0, b/258038814)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.ui:ui-*:1.4.0-alpha02
yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
graphicsLayer
öğesinin mevcut boyutunu göstermek içinGraphicsLayerScope
güncellendi. Bu özellik, Composable boyutunun işlevi olarakgraphicsLayer
dönüşümlerini hesaplamak için kullanışlıdır. (If8c43,b/181387080)graphicsLayer
içeriğini oluşturmak için ekran dışı birleştirme katmanından ne zaman yararlanacağınızı belirlemek içinCompositingStrategy
kullanıma sunuldu. Otomatik, alfa veyaRenderEffect/Overscroll
uygulanırsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur.ModulateAlpha
ürününün ekran dışı arabelleği kullanmaktan kaçınacağı ve bunun yerinegraphicsLayer
içindeki kaydedilen çizim talimatlarının her birini değiştireceği bir ekran dışı arabelleğe her zaman eklenir.ModulateAlpha
kullanımı,RenderEffect/Overscroll
kullanımları için ekran dışı arabelleğe alınmaya devam eder (I25e82, b/256382834)- Düzen ve çizim için bütün hiyerarşilerin geçersiz kılınmasına olanak tanımak amacıyla
invalidateSubtree()
Modifier.Node
grubuna eklendi. (I4bd90) rememberNestedScrollInteropConnection
sürümünü kararlı sürüme yükseltin.rememberNestedScrollInteropConnection
için kök görünümü 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 tepki vermesine yardımcı olabilir. (I9e107)- Daha önce okudukları bir değer değiştiğinde bildirim alması gereken
Modifier.Node
uygulamaları tarafından kullanılabilenObserverNode
arayüzü eklendi (I5728b, b/247716483) Paint
öğesine, yerelandroid.graphics.Paint
kabul eden yeni bir oluşturucu eklendi. Ayrıca, mevcut bir yerel Paint nesnesini Compose Paint'e dönüştüren birtoComposePaint()
uzantı işlevi de eklendi. (Ica91b)- Android'de kullanmak için yeni
FontFamily.Resolver.resolveAsTypeface
ekleyin. (I8950b) - Araçların Composable'ın (Ie6614) dahili durumlarını değiştirmesine izin vermek için
ToolingState
ekleyin - Eklenen yeni animasyonları daha iyi destekleyecek şekilde araçları yeniden düzenleme (I8677b)
- Malzeme ve malzeme3 Metin,
TextField
veOutlinedTextField
öğelerineminLines
parametresi eklendi. Bu parametre, satır sayısı (I4af1d) açısından bileşenin minimum yüksekliğinin ayarlanmasını sağlar.
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.ui:ui-*:1.4.0-alpha01
yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Hareket algılayıcıları için yeni bir yöntem (
awaitEachGesture()
) eklendi.forEachGesture()
ile benzer şekilde çalışır, ancak hareketler üzerindeki döngü tamamenAwaitPointerEventScope
içinde çalıştığından etkinlikler yinelemeler arasında kaybolmaz. - Hareketler arasında etkinliklerin kaybedilmesine izin verdiğinden
forEachGesture()
kullanımdan kaldırılmış ve yerineawaitEachGesture()
getirilmiştir. (Iffc3f, b/251260206) - Androidx'te erişilebilirlik nesnelerinin geri dönüşümü kullanımdan kaldırılıyor. Desteklenen en eski sürümlerde bile performans değişikliklerinin göz ardı edilebilir olduğunu tespit ettik. (I0a961)
- Ana hatlarıyla çizilen metni etkinleştirmek için
DrawStyle
,TextStyle
veSpanStyle
öğelerine deneysel bir özellik olarak eklendi. (If24b8, b/155421273) AnnotatedString.Builder
artıkkotlin.text.Appendable
özelliğini uyguluyor. (I1a061, b/231030444)AnnotatedString.Builder
artık birAnnotatedString
alt dizesini ve kesişen stilleri eklemek içinappend(AnnotatedString, start: Int, end: Int)
yöntemine sahip.Paragraph
veMultiParagraph
boyama işlevine, dış çizgili metnin çizilmesini sağlayanDrawStyle
parametresi eklendi. (Ic8102, b/155421273)
Harici Katkı
- TV Cihazlarını Önizlemelere (Ie15cd) eklediğiniz için
vighnesh
teşekkür ederiz
Sürüm 1.3
Sürüm 1.3.3
11 Ocak 2023
androidx.compose.ui:ui-*:1.3.3
yayınlandı. 1.3.3 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Android 9'da Etkinlik, Oluşturma Görünümü'nün durumunu kaydederken bazen oluşan kilitlenme için düzeltme. (I0b755, b/260322832)
Sürüm 1.3.2
7 Aralık 2022
androidx.compose.ui:ui-*:1.3.2
yayınlandı. 1.3.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
protobuf-javalite:3.19.4
(CVE-2022-3171) (b/255545055) kapsamındaki güvenlik uyarısını önleyen Profobuf 3.21.8 kullanılacak şekilde güncellendi
Sürüm 1.3.1
9 Kasım 2022
androidx.compose.ui:ui-*:1.3.1
yayınlandı. 1.3.1 sürümü bu kayıtları içerir.
Sürüm 1.3.0
24 Ekim 2022
androidx.compose.ui:ui-*:1.3.0
yayınlandı. 1.3.0 sürümü bu kayıtları içerir.
1.2.0'dan sonraki önemli değişiklikler
- Yeni deneysel API paketi
LookaheadLayout
(önceden imkansız olan animasyon davranışlarını etkinleştirir) - Yeni deneysel API paketi
Modifier.Node
(Modifier.composed
alternatifine daha yüksek performanslı alternatif) - İyileştirilmiş pencere ekleme desteği.
- LazyList'lerdeki D-Pad'ler ve donanım klavyesi desteğine odaklanma.
- İletişim kutuları ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü (bazı özel tasarım sistemleri için davranış bozucu davranış değişikliği - beta01 sürüm notlarında gerekçe)
- Çok sayıda küçük ve sorunsuz API iyileştirmesi
- Çok sayıda hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.ui:ui-*:1.3.0-rc01
yayınlandı. 1.3.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Metinde otomatik kısa çizgiyi desteklemek için yeni deneysel API Kısa Çizgileri eklendi (Iaa869)
Hata Düzeltmeleri
DeviceFontFamilyName
yazı tipleri,wght
veital
varyasyon ayarlarını varsayılan olarak yapılandırmaz. Bunun yerine, yüklenenTypeface
için platform ayarı kullanılır. (Ia7a6d, b/246989332)LazyColumn
bellek sızıntısı düzeltildi. Değiştiriciler yeniden kullanıldığındaonModifierLocalsUpdated
varsayılan değerle çağrılmıyordu (b/230168389)
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.ui:ui-*:1.3.0-beta03
yayınlandı. 1.3.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- Metin'de satır sonunu özelleştirmek için seçenekler ekleyin. (I86907)
- Minimum genişlik kısıtlamalarını desteklemek için
TextMeasurer.measure
yöntemindeconstraints: Constraints
içerensize:IntSize
bağımsız değişkeni değiştirildi. (I37530, b/242707525)
Hata Düzeltmeleri
- AndroidX Activity'in
BackHandler
API'si artıkDialog
composable'da çalışıyor. (I35342)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.ui:ui-*:1.3.0-beta02
yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Birden fazla composable içerik lambdasından oluşan bir listeyi kabul eden ve farklı içerik lambdalarına farklı şekilde yerleştirilen ölçülebilir öğelerin tehdit edilmesine olanak tanıyan, Layout için deneysel bir aşırı yükleme eklendi (Ic1b4e)
Deneysel Focus API'lerinde yapılan değişiklikler:
FocusDirection.In
veFocusDirection.Out
kullanımdan kaldırılıpFocusDirection.Enter
veFocusDirection.Exit
ile değiştirilir. (Ia4262, b/183746982)FocusManager.moveFocus(Enter)
veFocusManager.moveFocus(Exit)
için özel davranış belirtmek üzere iki yeni odak özelliği giriş ve çıkış özelliği eklendi. (I5f3f9, b/183746982)- Artık odak taşıma işlemini iptal etmek için
FocusRequester.Cancel
öğesini kullanabilirsiniz.FocusRequester.Cancel
, şu odak özelliklerinin herhangi birinde kullanılabilir: yukarı, aşağı, sol, sağ, sonraki, önceki, başlangıç, bitiş, giriş ve çıkış. (Ib300f)
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-beta01
yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.
Değiştirici Düğüm Yeniden Düzenleyen
Modifier/Modifier.Element
örneği işleyen ve LayoutNodes
üzerinde davranışlarını koordine eden katman büyük ölçüde yeniden düzenlendi. Bu yeni düzenleme işlemi, Compose'daki birçok değiştiriciden hiçbirinin herkese açık API'sini etkilemez. Bu değişiklik, yalnızca uygulamaya özel bir değişiklik olarak görülebilir. Bununla birlikte, bu değişiklik çeşitli nedenlerle önemli bir değişikliktir. (Ie4313)
Değişiklik Özeti
Eklenen deneysel Modifier.Node
API'leri, düzen düğümünün yaşam döngüsüyle korunacak bir örnekte durumun korunmasına olanak tanıyan bir soyutlama sağlar. Bu API'ler, düzen düğümünün yaşam döngüsüyle korunacak olan örnekte durumun korunmasını sağlar ve bunu üreten ilgili Modifier.Element
için düzen düğümü ve kullanımı başına ayrılır.
Genel olarak bu soyutlama, Modifier.composed
API'nin mekaniğine gerek kalmadan durum bilgili değiştiriciler üretmek için alternatif bir mekanizma sağlar.
Risk
Bu değişiklik, önceki sürümlerle kesinlikle ikili programlarla uyumludur ve pratik ve makul olduğu kadar gözlemlenebilir davranış açısından geriye dönük olarak uyumlu olması amaçlanmıştır. Bununla birlikte, oluşturma işleminin bu yeniden düzenlemeyle ilgilenmeyen birkaç alt sistemi vardır ve davranış, büyük olasılıkla testlerimizin kapsamına girmeyen ve henüz bulunup düzeltilmemiş şekillerde değişmiştir.
Lütfen dikkatli bir şekilde bu sürüme yükseltin. Bu durumun sizin açınızdan sorun yarattığını düşünüyorsanız lütfen bize bildirin.
Deneysel API'ler
Tamamı yeni bir "Değiştirici Düğüm" konseptiyle ilgili olan çeşitli deneysel API'lar eklendi. Değiştirici.Node'lar,
fun modifierElementOf(…): Modifier
abstract class ModifierNodeElement
abstract class Modifier.Node
abstract class DelegatingNode
interface LayoutModifierNode
interface DrawModifierNode
interface SemanticsNode
interface PointerInputNode
interface ModifierLocalNode
interface ParentDataModifierNode
interface LayoutAwareModifierNode
interface GlobalPositionAwareModifierNode
interface IntermediateLayoutModifierNode
Zarar veren davranış değişikliği
İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
Oluştur iletişim kutuları ve pop-up'lar için desteklenen maksimum yükseklik 30 dp'den 8 dp'ye düşürüldü. Bu değişiklik, hem materyal hem de kullanıcı arayüzü özel iletişim kutularını ve pop-up'larını etkiler. Bu değişiklik, S altındaki Android sürümlerinde bir erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up içindeki içerikle etkileşimde bulunabilmesini 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 etkilenir. İletişim kutusu veya pop-up'ınızın yüksekliğini düşürebilirsiniz. Bu yeni davranışı devre dışı bırakmanız gerekirse kendi iletişim kutunuzu veya pop-up'ınızı istediğiniz yükseklik grubuyla bölebilirsiniz. Erişilebilirlik olumsuz etkilenebileceğinden ve iletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından erişilebilir ve okunabilir olduğundan emin olmak geliştiriciye ait olduğundan bunun yapılması önerilmez.
API Değişiklikleri
painterResource
ürününün yapılandırma değişikliklerinde güncellenmemesi sorunu giderildi (I58e73, b/228862715)rememberTextMeasurer
artıkFontFamily.Resolver
,Density
veyaLayoutDirection
parametrelerini kabul etmiyor. Bu parametrelere özel değerler sağlamak için lütfenTextMeasurer
oluşturucuyu kullanın. (Ia1da3)- İletişim Kutularının
WindowInsets
özelliğini desteklemesi içinDialogProperties.decorFitsSystemWindows
özelliği eklendi. (I57742, b/229378542) - İkili program uyumluluğunu korumak için yazı tipi oluşturucuları orijinal kotlin dosyasına geri taşındı. Son kararlı sürüme göre değişiklik yok. (Ieb2f3)
- Birkaç eşittir tanımından gereksiz operatör kaldırıldı. Bunun bir etkisi olmadı. (I6c309)
FontVariation.Setting
, gelecekteki sınırlama API'lerine olanak tanıyan kalıcı bir arayüzdür. (I11021, b/143703328)CompositionGroup.findParameters
adlı kişiyiSlotTree.kt
alanına ekleyin. Bu sayede araçlar, slot tablosunun tamamını ayrıştırmak zorunda kalmadanCompositionGroup
parametrelerini alabilir. (I124fe)
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-alpha03
yayınlandı. Sürüm 1.3.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
LayoutCoordinates.findRootCoordinates()
artık herkese açık (I7fa37, b/204723384)PlacementScope
içindeLayoutCoordinates
öğesini almak için deneysel API eklendi. Geliştiriciler bu sayede, mevcut düzenin alt öğelerini konumuna göre nereye yerleştireceğini bilirler. (I5482b, b/238632578)- Bir
LayoutCoordinates
'den diğerine Matris dönüşümünü elde etmek içinLayoutCoordinates.transformFrom
eklendi. (Ic5ab1, b/238632578) SemanticsModifier.id
kullanımdan kaldırıldı ve semantik kimliğiLayoutInfo.semanticsId
konumuna taşındı. (Iac808, b/203559524)- Kaynak Yazı Tipleri artık yazı tipi varyasyonu ayarlarının belirlenmesini destekliyor (API 26+). (I900dd, b/143703328)
DeviceFontFamilyNameFont
ürününde değişken yazı tipi desteği (Ic1279, b/143703328)- Yazı tipi oluşturucular artık O+ cihazlarda değişken yazı tiplerini yapılandırmak için
FontVariation.Setting
listesini kabul ediyor. (I11a9d, b/143703328) - Değişken yazı tiplerini tanımlamak ve kullanmak için
FontVariation
API'si ekleyin. (I3c40c, b/143703328) LineHeightStyle.Alignment
kurucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)- Paragraf artık Android ve Masaüstü için beklenen|gerçek ve tanımlı. (Id387e, b/239962983)
- Arayüz Paragrafı artık Paragarph arayüzü için kapalı. Paragrafı alt sınıflandırma olarak kullanmak için herhangi bir kullanım alanı yoktur. Bu değişiklik sizi etkiliyorsa iletişime geçmenizi öneririz. (If5247, b/239962983)
PlatformTextStyle
veLineHeightStyle
adlı uygulamalardan deneysel ek açıklama kaldırıldı. (I64bef)TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Bunun yerine lütfen uygulama kodundaSoftwareKeyboardController
, IME yönetim kodunda iseTextInputSession
kullanın. (I14e4c, b/183448615)- Mevcut animasyon türleri için yeni API ekleme (I26179)
Hata Düzeltmeleri
- SDK 33 ve sonraki sürümlerde
POST_NOTIFICATIONS
izninin verilmesini gerektiren API'lere@RequiresPermission
eklendi. (Ie542e, b/238790278)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.ui:ui-*:1.3.0-alpha02
yayınlandı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- Baskıyı almak için yeni
PointerInputChange#pressure
özelliği eklendi. (I45a5e, b/205164819) - Kompozisyonda
TextMeasurer
örneği kolayca oluşturmak ve hatırlamak içinrememberTextMeasurer
eklendi. (I8d66e) Rect
,RoundRect
veMutableRect
artıkcontains
işlevini çağırmak için Kotlinin
söz dizimini destekliyor. (Ie42b0, b/238642990)- API'nin daha basit bölümleriyle kolayca uygulanabildiğinden, gereksiz işlevleri
KeyInjectionScope
bölümünden kaldırın. Kaldırılan işlevler arasındapressKeys
,keysDown
vekeysUp
bulunuyor. (I81d77) KeyInjectionScope
içinde, sabit değer ve parametre adları yeniden düzenleyerek "Millis" son ekini dahil etti. Burada söz konusu sabit değerler ve parametrelerin birimleri milisaniyedir. (Iabef5)- Metin düzenleme sorunlarının giderilmesine yardımcı olmak için
EditCommand
öğesinetoStringForLog()
yöntemi eklendi. (I53354, b/228862731) Canvas
vedrawBehind
gibiDrawScope
üzerinde çalışan composable'lar ve değiştiriciler üzerinde çok stilli metin çizmenin yolunu sağlamak içinDrawScope
öğesinedrawText
uzantı işlevi eklendi. (I16a62, b/190787898)- Compose çalışma zamanından bağımsız olarak
BasicText
ile aynı sonuçları oluşturan rastgele metin düzeni hesaplamasına olanak tanıyanTextMeasurer
adlı yeni deneysel API'yi kullanıma sunun. (I17101) mapTree
adlı kişiyiSlotTree.kt
alanına ekleyin. Bu, araçların asTree'de olduğu gibi bellekte kopya oluşturmadanSlotTree
öğelerini incelemesine olanak tanır. Layout Inspector için bu, yaklaşık 10 faktörlü bir performans artışı sağlar. (I5e113)- Geliştiricilerin kitaplıklardaki
MultiPreview
ek açıklamalarını yazmasına ve yeniden kullanmasına olanak tanımak için Oluşturma Önizlemesi, ikili çıkış dosyalarında depolanacak şekilde değiştirildi. (I85699, b/233511976)
Hata Düzeltmeleri
Velocity
İzleyici'yeInputEventChange
etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede hedef öğe hareket etse bile hızın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (Icea9d, b/216582726, b/223440806, b/227709803)- Ek açıklamalar olduğunda
AnnotatedString.toUpperCase
işlevinin neden olduğu NPE'yi düzeltin. (I0aca2, b/210899140)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.ui:ui-*:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Gerçek ölçümden/düzenden önce ileriye dönük geçişi destekleyen yeni
LookaheadLayout
. Bu yöntem, değiştiğinde düzenin önceden hesaplanmasına olanak tanırken, aynı zamanda boyutu ve konumları hedefe doğru hareket ettirmek için önceden hesaplanmış boyutu/konumu kullanmasına da izin verir.SubcomposeLayouts
henüz desteklenmiyor ancak yakın zamanda yayınlanacak bir sürümde desteklenecektir. (I477f5) Text
öğesinin tamamının opaklığını değiştirmek içinTextStyle
veSpanStyle
öğelerinin fırça çeşidine isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635)AnnotatedString
ürünlerindeTalkBack
bağlantı desteğini desteklemek içinUrlAnnotation
ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)- Yardımcı program işlevlerini çalışma zamanına taşıma (I4f729)
Hata Düzeltmeleri
TextLayoutResult.getLineForOffset
fırlatmıyor. (Idc5d6, b/235876324)
Harici Katkı
- Durumunu composable işlevlerde veya SnapshotFlow (Icdb8a) aracılığıyla gözlemlemek için yeni bir API (
WindowInfo.keyboardModifiers
) eklendi
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.ui:ui-*:1.2.1
yayınlandı. 1.2.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- İnceleyicideki boş işaretçi düzeltildi (b/237987764)
- Denetleyicide anımsama sırasında sınıf yayınlama istisnası düzeltildi (b/235526153)
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.ui:ui-*:1.2.0
yayınlandı. 1.2.0 sürümü bu kayıtları içerir.
1.1.0'dan sonraki önemli değişiklikler
Odak geçişinde iyileştirmeler:
- Geç listelerde odaklanma odaklı kaydırma artık yeni
BeyondBoundsLayout
temel API ile çalışıyor FocusOrder
veFocusProperties
için yeni davranış özelleştirme API'leri- Fiziksel klavye veya TV uzaktan kumandasıyla davranış iyileştirildi
- Geç listelerde odaklanma odaklı kaydırma artık yeni
Şu kullanıcılar için yeni API'ler:
- Pencere iç kısımları
- Harekete dayalı, sonsuz ve düzen animasyonları için temel temel öğeler
RenderEffect
dahilGraphicsLayer
özellik
Çok sayıda hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc03
yayınlandı. 1.2.0-rc03 sürümü bu kayıtları içerir.
- 1.2.0-rc02 sürümünden beri değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc02
yayınlandı. 1.2.0-rc02 sürümü bu kayıtları içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc01
yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
- Diğer tuşlar basılı tutulurken veya açıkken tuşlara basmak için
KeyInjectionScope
ürününe üst düzey işlevler eklendi. Bu işlevler,withKeysDown
,withKeysToggled
vb. içerir. Ayrıca, belirli bir meta tuşun devrede olup olmadığını kontrol etmeye yarayan özellikler de eklendi. Örneğin, kontrol tuşlarından herhangi birinin basılı olup olmadığını kontrol etmek için kullanılanisCtrlDown
. Her işlevle ilgili dokümanlar içinKeyInjectionScope
sayfasına bakın. (I9f6cd, b/229831515) - Özel fazla kaydırma efektlerinin yanı sıra bunu kabul eden
Modifier.scrollable
aşırı yüklemeye izin veren deneysel birOverscrollEffect
kullanıma sunulmuştur. - Deneysel
LocalOverScrollConfiguration
,foundation.gesture
paketinden temel paketine taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) runComposeUiTestWithoutActivity {}
adınırunEmptyComposeUiTest {}
olarak değiştiripcreateEmptyComposeRule()
ile uyumlu hale getirin (I6fed7)
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-beta03
yayınlandı. 1.2.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
pressKeyTimes
,isCapsLockOn
ve arkadaşlarıKeyInjectionScope
koleksiyonuna eklendi. Buna ek olarak, API artık bir meta tuşu basılı tutarak fare düğmesini tıklama gibi fare ve klavye birleşik ekleme kalıplarını da destekliyor. (I4c8da, b/229831515)- Önemli etkinlik ekleme için deneysel destek eklendi. Önemli etkinlikleri göndermek için
performKeyInput
kullanın veya bu etkinlikleriperformMultiModalInput
ile bir çoklu modal giriş hareketi sırasındaMultiModalInjectionScope
öğesininkey
özelliği aracılığıyla gönderin. API belgeleri içinKeyInjectionScope
sayfasına göz atın. (Ic5000, b/229831515) - Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni
GoogleFont.Provider.AllFontsListUri
ekleyin. - GoogleFonts, oluşturma sırasında yüklenemediğinde hata mesajlarının geri alınmasını iyileştirin. (I0416c)
Hata Düzeltmeleri
- Hız İzleyici'ye
InputEventChange
etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede hedef öğe hareket etse bile hızın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (I51ec3, b/216582726, b/223440806, b/227709803) Show Layout Bounds
ayarı, composable'a Hızlı Ayarlar kutusundan kapatıldıktan hemen sonra uygulanır. Bu işlemden ayrılıp etkinliğe yeniden girmeniz gerekmez. (I843d5, b/225937688)- Erişilebilirlik dizesinin arama özelliği, yazı tipi yüklemesini tetiklemez. Önceden,
StyleSpans
için yazı tipleri yüklenmeye çalışılıyordu ve bu daFontFamily.Resolver
öğesinin üzerine yazılması durumunda kilitlenmelere yol açıyordu. (I4609d) - İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
DeleteSurroundingTextCommand
veDeleteSurroundingTextInCodePointsCommand
artık kurucu bağımsız değişkenlerinin negatif olmayan olmasını gerektiriyor. (Ica8e6, b/199919707)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.ui:ui-*:1.2.0-beta02
yayınlandı. 1.2.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Diğer önizleme türlerinde işlevleri yeniden kullanma (I19f39)
Hata Düzeltmeleri
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
, yalnızca imha işleminin gerçekleşmemesini değil, imha işleminin ne zaman gerçekleştiğini daha iyi yansıtmak içinDisposeOnDetachedFromWindowOrReleasedFromPool
olarak yeniden adlandırıldı. (If15ca)
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.ui:ui-*:1.2.0-beta01
yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Bu, 1.2'nin ilk beta sürümüdür!
API Değişiklikleri
- Öğeleri görünür sınırların dışına yerleştirdiklerinde
LazyList
özel uygulamaları tarafından kullanılabilecek deneme amaçlıBeyondBoundsInterval
eklendi (Ifabfb, b/184670295) Modifier.composed
işletim sisteminin anahtarlı sürümleri artık kararlı API'dir (Ie65e4, b/229988420)- Mevcut görünüm bilgilerini edinmek için beste yerellerini kullanmak üzere
rememberNestedScrollConnection
API basitleştirildi (I67ca7) @ComposableTargetMarker
tarafından işaretlenen@ComposableTarget
ek açıklaması ve ek açıklamaları artık@file
önekiyle dosya kapsamında kullanılabilir. Dosya kapsamında bir hedef ek açıklama kullanmak, derleyicinin dosyadaki tüm composable işlevlerin ilişkili uygulamayı hedeflemeyi amaçladığını varsaymasına neden olur. Örneğin,@file:UiComposable
kullanıldığında tüm@Composable
işlevlerinin Compose kullanıcı arayüzü uygulayıcısını hedeflediği belirtilir. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)Platformdan bağımsız, deneysel, test API'si kullanıma sunuldu:
interface ComposeUiTest
vefun runComposeUiTest(block: ComposeUiTest.() -> Unit)
. Bunlar,TestRule
gerekmeden Compose kullanıcı arayüzü testleri çalıştırmak için kullanılabilir.ComposeTestRule
olmadan test çalıştırmak için testi lambda olarakrunComposeUiTest
öğesine geçirin veComposeUiTest
alıcı kapsamında bulunan (ComposeContentTestRule
ile aynı olan yöntemleri ve üyeleri) kullanın.Android'e özgü
interface AndroidComposeUiTest
vefun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
,AndroidComposeTestRule
'a benzer şekilde temel Etkinliğe erişim sağlamak için eklenir. Daha da fazla kontrol için kendiniz birclass AndroidComposeUiTestEnvironment
örneği oluşturabilirsiniz.Masaüstü uygulaması
class DesktopComposeUiTest
olsa da şu anda Masaüstü'ne özel çalıştırma işlevleri sunulmamaktadır.Bir
ComposeTestRule
testindenComposeUiTest
hedefine 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() } }
Şimdilik
ComposeContentTestRule
veComposeTestRule
ComposeUiTest
dışında bir konumda değil. Bu nedenle,ComposeUiTest
üzerindeki uzantı işlevleri henüzTestRule
arayüzünde çağrılamaz.ComposeUiTest
, kararlı API'ya geçiş yaptığındaComposeContentTestRule
veComposeTestRule
,ComposeUiTest
yerine eklenecek. (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
öğesinden varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)Gradyan renklerle metin çizebileceğiniz bir yöntem sağlamak için
TextStyle
veSpanStyle
öğelerineBrush
eklendi. (I53869, b/187839528)trimFirstLineTop
,LineHeightBehavior
öğesinintrimLastLineBottom
özelliği tek bir numaralandırmaya dönüştürüldü:LineHeightTrim
.LineHeightTrim
, iki boole ile tanımlanan 4 durum değerine sahiptir:FirstLineTop
,LastLineBottom
, Her ikisi ve Yok (Ifc6a5, b/181155707)LineHeightBehavior
,TextStyle
veParagraphStyle
öğelerine eklendi.LineHeightBehavior
, satır yüksekliğinin ilk satırın üstüne ve son satırın altına uygulanıp uygulanmayacağını kontrol eder. Ayrıca,TextStyle(lineHeight)
tarafından sağlanan alandaki çizginin hizalamasını da tanımlar.Örneğin, CSS'nin
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
aracılığıyla tanımladığı duruma benzer bir davranış elde edilebilir.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları yalnızcaincludeFontPadding
yanlış olduğunda düzgün çalışır. (I97332, b/181155707)PlatformParagraphStyle.lerp
vePlatformSpanStyle.lerp
işlevleri, üst düzey işlevler olacak şekilde değiştirildi (I9a268)
Hata Düzeltmeleri
PointerInputChange::copy
dokümanlarında, bunun yüzeysel bir kopya olduğu artık doğru şekilde belirtiliyor. (I182f5)- Yükseklik sınırlı olduğunda ve tüm metin satırlarına uymadığında üç nokta desteği (Ie528c, b/168720622)
- Varsayılan olarak
includeFontPadding
etkinleştirildi.TextStyle.platformTextStyle
özelliğini kullanarakincludeFontPadding
öğesini devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak o zamana kadar, satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre etmemize veTextField
kırpma sorunlarını çözmemize olanak tanıyacağız. (I01423, b/171394808)
Harici Katkı
MouseInjectionScope.scroll(delta = someDelta)
, Android'de artık dikey olarak kaydırırsak ters çevrilmiş oluyor (someDelta pozitifse aşağı kaydırır) (Ifb697, b/224992993)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha08
yayınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.
API Değişiklikleri
pluralStringResource
işlevleri, gelecekte daha iyi uluslararasılaştırmayı desteklemek üzere gelişmeye olanak tanımak için deneysel olarak işaretlenmişti. (If24e4)- Paragraf ve Çoklu Paragraf artık Kısıtlamalar parametresini kabul ediyor.
Constraints.maxHeight
öğesini geçirmek şu an için bir işlem değildir, ancak ileride yüksekliğe göre elipsleme gibi bazı hesaplamalar yapılabilir. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
artık yeni öğe eklemeye izin vermeyen özel MutableSet benzeri özel sınıfı kabul ediyor. (Icd314)- PointerIcon artık
@Stable
arayüzü (I9dafe) oldu - Kısmi tüketim (düşüş VEYA konum)
PointerInputChange
içinde kullanımdan kaldırıldı. Değişiklikten tamamen yararlanmak içinconsume()
öğesini kullanabilirsiniz. Başka birinin değişikliği daha önce kullanıp kullanmadığını belirlemek içinisConsumed
kullanabilirsiniz. PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu, kopyalardan biri tüketildiğindePointerInputChange
kopyalarının kullanılacağı anlamına gelir. Bağlantısız birPointerInputChange
oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)- Oluştur ve Görünüm arasında, Oluştur > Görüntüle yönünde İç İçe Kaydırılan birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturan bir üst öğenin iç içe yerleştirilmiş bir kaydırma görünümünden iç içe yerleştirilmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
- Compose'un View sistemi için tasarlanan UIAutomator testlerine uymasını sağlamak için kullanılabilecek yeni
SemanticsProperty testTagsAsResourceId
. (I39c20) FontFamily.SansSerif
özelliğini kullanırken Android'de sistem yazı tipleri için mevcut tüm ağırlıkları görüntüleyin. API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adları kullanılır. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları desteklendiğinden bu bir davranış değişikliğidir. (I380fe, b/156048036, b/226441992)- Paragraf ve Çok paragraflı eğitmenleri, konum bağımsız değişkenlerini isteğe bağlı bağımsız değişkenlerden önce olacak şekilde yeniden sıraladı. (Idafaa)
AndroidFont
artık typefaceLoader'ı kurucu parametresi olarak kullanıyor. (I2c971)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
yayınlandı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.
API Değişiklikleri
- Yeni
Snapshot.withoutReadObservation { ... }
işlevi eklendi. Kullanıcıların bu blok sırasında okunan durum değerlerinde yapılan değişikliklere abone olmadan geçirilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak, ancak gereksiz yeniden oluşturma veya yeniden ölçüme neden olmadan değeri okuyabilmek istediğiniz kullanım durumlarında bu özellikten yararlanabilirsiniz. (I9f365, b/214054486) ComposeView
öğesininconsumeWindowInsets
uzantı özelliği, geliştiricilerin AndroidWindowInsets
kullanımını devre dışı bırakmasına olanak tanır. Böylece, birbirine müdahale etmeden her birininWindowInsets
uygulamasına hiyerarşide ayrıComposeViews
erişimi sağlanır. (I0ef08, b/220943142)- IME'ye özellikle ondalık ayırıcı eklemek için
Keyboard.Number
yerine alternatif olarakKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) PointerEventType.Scroll
vePointerEvent.scrollDelta
artık kararlı API'lerdir (I574c5, b/225669674)- Görünüm sınıflarında birlikte çalışmak için Görünüm ve Oluşturma arasında İç İçe Kaydırma birlikte çalışabilirliği etkinleştirilir. Bu, oluşturma işleminin artık kaydırma deltalarını (birlikte çalışan) View üst öğesine gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
FontFamily.Resolver
, sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için güncellendi (I6c1e7)Font(AssetManager, String, ...)
desteği sonlandırıldı, yerineFont(String, AssetManager, ...)
kullanılacak. Bu deneysel bir API'dir. (I1c7a4)- Yazı tipi yedek zincirleri sırasında isteğe bağlı olarak sistem tarafından yüklenen yazı tiplerini aramak için yeni yazı tipi açıklayıcısı
Font(DeviceFontFamilyName)
ekleyin. (I30468, b/219754572) - TextStyle/ParagrafStyle'da
includeFontPadding
için geçici uyumluluk yapılandırması eklendi.includeFontPadding
,TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
aracılığıyla değiştirilebilir. Bu, taşımayı etkinleştirmek için kullanılan geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808) - Hata ayıklama yardımı için
GoogleFont.Provider.isAvailableOnDevice
uzantısı ekleyin. (I64e31) @ArrayRes
ile kullanmak içinGoogleFont.Provider
oluşturucusunu ekleyin (Ic5ee1, b/225984280)Compose GoogleFont
artıkFont(GoogleFont)
olarak adlandırılıyor ancak API, aksi takdirde kararlı kalmaya devam edecek. (I125f2)
Hata Düzeltmeleri
- İç dolgunun kullanıldığından emin olmak için malzemeye/Yönlendirici'ye lint kontrolü eklendi (Ifb111)
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha06
yayınlandı. Sürüm 1.2.0-alpha06 bu kayıtları içerir.
API Değişiklikleri
- Odaklanabilir hedefe odaklanma isteği için
RequestFocus
semantik işlemi eklendi. (I17b71) - Geçerli düzen yönü RTL olduğunda
VectorPainter
öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çekilebilirlerinin ayrıştırılması güncellendi. (I79cd9, b/185760237) Gölge/ortam renkleri, API uyumluluğu için sondaki
Modifier.graphicsLayer
parametreleri olacak şekilde güncellendi (I3f864, b/160665122)Kesintisiz API değişiklikleri sağlamak için
GraphicsLayerScope
tarihinde gölge/ortam rengine varsayılan uygulamalar eklendiRSB etkinliklerine (Ief8ae) etkinlik zamanı eklendi
FocusOrder
artıkFocusProperties
olarak birleştirildi vefocusProperties()
artıkfocusOrder()
uygulamasının tüm özelliklerine sahip.FocusOrder
vefocusOrder()
desteği sonlandırıldı.focusRequester
kabul edenfocusOrder()
,focusProperties()
ile birliktefocusRequester()
değiştiriciyle değiştirilmelidir. Bu, değiştiricilerin endişeleri daha iyi ayırmasını sağlar. (I601b7)Hem
RecyclerView
hem deCompose
yeni sürüme geçirildiğinde, Compose görünümlerinin alt öğe olarak kullanıldığı RecyclerView'lar için kaydırma performansı çok daha iyi olacaktır.Yerleşik varsayılan stratejiyi alma yöntemi olarak
ViewCompositionStrategy.Default
eklemeYeni varsayılan strateji olan ve RecyclerView gibi havuz kapsayıcılarını düzgün işleyen
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
ekleyin. (If7282)Çoklu önizleme özelliğini eklemenin ilk adımı olarak @Preview ile ek açıklama sınıflarına ek açıklama ekleme desteği eklendi. Bu tür ek açıklamalar, Composable yöntemlere veya diğer ek açıklama sınıflarına ek açıklama eklemek için kullanılabilir. Böylece bu ek açıklama sınıfları, belirtilen @Preview ile dolaylı olarak açıklanmış olarak değerlendirilebilir. (I12eff)
@Preview için Cihazlar listesine eklenen referans cihazlar (I071c9)
Hata Düzeltmeleri
- Vektör grafik API'ları, @UiComposable (I942bc) yerine uygun composable @VectorComposable ek açıklamasını kullanacak şekilde güncellendi
AnnotatedString.Builder.withStyle
öğesinden çapraz satırı kaldır (If84d5)
Harici Katkı
- create-ui:
GraphicsLayerScope
içinambientShadowColor
vespotShadowColor
özelliklerini ekle (I1ba1a, b/160665122) - Çoğul kaynaklar artık
pluralStringResource
işlevleriyle desteklenmektedir. (Ib2f23, b/191375123)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha05
yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
TextToolbar
artıkActionCallback
yerine lambda bağımsız değişkenlerini kabul ediyor. (Ib2eb9, b/197950089)- Core ve appcompat içindeki null değer, Tiramisu DP2'yle (I0cbb7) eşleşecek şekilde güncellendi
- Ölçülen arayüz artık parentData özelliğini (I3313f) gösteriyor
Modifier.onPlaced
veOnPlacedModifier
arayüzü artık kararlı. (Ib5482)- Harika! Animasyon oluşturma artık Geliştirici Seçenekleri'ndeki "Animatör süre ölçeği" ayarını destekliyor. (I5a4fc, b/161675988)
- Yerel bir
BeyondBoundsLayout
değiştiricisi eklendi (If8b51, b/184670295) - Metin: includeFontPadding artık varsayılan olarak devre dışıdır.
includeFontPadding=false
sonucunda ortaya çıkan kırpma sorunları işlenir ve uzun komut dosyaları için kırpma işlemi yapılmaz. (I31c84, b/171394808)
Hata Düzeltmeleri
- Zaten bir içerik varken içerik ayarlamayı denerseniz
ComposeContentTestRule.setContent
şimdi birIllegalStateException
atar. (I888a5, b/199631334) - Android'de panodan okuma sırasında pano içeriğinin neden kilitlenmesi düzeltildi. (I06020, b/197769306)
- RSB kaydırma örneklerini iyileştirin. (I6a596)
Harici Katkı
- Kotlinx eş 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ınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
Bir composable işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleyen çağrıldığında derleme zamanı raporlamasını sağlayan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
eklendi.Çoğu durumda ek açıklamalar, oluşturucu derleyici eklentisi tarafından tahmin edilebilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadir bir durumdur. Çıkarım yapılamayan durumlar arasında özel uygulayıcı, soyut composable işlevleri (arayüz yöntemleri gibi), alanlar veya composable lambda olan genel değişkenler (yerel değişkenler ve parametreler çıkarım yapılır) oluşturup kullanmak veya
ComposeNode
ya da ilgili composable işlevleri kullanmak yer alır.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
çağıran composable işlevlerin, işlev ve tümcomposable lambda parametre türleri içinComposableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ek açıklaması içeren bir ek açıklama oluşturmanız ve daha sonra, işaretli ek açıklamanın doğrudanComposableTarget
yerine kullanılması önerilir.ComposableTargetMarker
ile işaretlenmiş bir composable ek açıklama, applier parametresi olarak özellik sınıfının tam adına sahipComposbleTarget
özelliğine eşdeğerdir.ComposableTargetMarker
kullanımına ilişkin örnek içinanroidx.compose.ui.UiComposable
sayfasını inceleyin. (I38f11)Font(resId, ...)
artık kararlı API'de yükleme stratejisini kullanıyor. (Ief3d2)FontLoadingStrategy
artık kararlı API. (I1ee35, b/174162090)Metin olarak eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
Özel
Font.ResourceLoader
öğesiniFontFamily.Resolver
biçimine dönüştürmek için Bridge API'sini ekleyin. (Ia0060)
Hata Düzeltmeleri
- Sağlanan
FontFamily.Resolver
, Pop-up gibi alt kompozisyonlara aktarılır. - Sağlanan
Font.ResourceLoader
, Pop-up gibi alt kompozisyonlara aktarılır. (I48fa5)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
TextInputSession
veTextInputService
uygulamalarındakinotifyFocusedRect
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
saplama sınıfında (I1e659, b/216660268)destroyDisplayListData
yöntemi kullanıma sunuldu- Önceden oluşturduğunuz
SubcomposeLayout
alt öğelerini önceden ölçmenizi sağlayan yeni bir API eklendi. (I857ea) Oluşturulabilir bir lambdayı, durumunu hareket ettiren bir lambdaya ve karşılık gelen düğümleri çağrıldığı yeni konuma dönüştüren
movableContentOf
eklendi. Önceki çağrı besteden çıktığında durum geçici olarak korunur ve lambda'ya yeni bir çağrı besteye girerse durum ve ilişkili düğümler yeni çağrının konumuna taşınır. Yeni çağrı eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.Bir
movableContentOf
lambda aynı bileşimde birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Ayrıca, çağrılar besteden ayrıldıkça ve yeni çağrılar girdikçe durum, ilk ayrılan çağrılardan gelen çağrılara çağrıldıkları sırada taşınır. Yeni çağrılar tarafından talep edilmeyen tüm eyaletler kalıcı olarak kaldırılır. (Ib4850)FontFamilyResolver
artıkLocalFontFamilyResolver.current
üzerinden kullanılabilirOluşturma kullanımının dışında yeni FontFamily çözümleyiciler oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi.Artık Paragraf ve MultiParagraf,
FontFamily.Resolver
kullanıyorTextLayoutResult.layoutInput.fontFamilyResolver
artık bu düzen için kullanılan çözümleyiciyi içeriyor.TextLayoutResult.layoutInput.resourceLoader
artık kullanılmadığı için kullanımdan kaldırıldı. (Id5a45, b/174162090)Yedek davranışla birlikte eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text and TextField tarafından kullanılır ve FontFamilyResolver aracılığıyla gösterilir
FontFamilyResolver.preload
aracılığıyla yazı tiplerini önceden yükleme desteğiFontFamilyResolver.setAsyncLoadContext
, eşzamansız yazı tiplerini yüklemek için kullanılan genel eş yordam bağlamının ayarlanmasına olanak tanır. (I87fe8, b/174162090)Android'de yeni türlerde yazı tipi kaynağı tanımlayıcıları sağlayan alt düzey yeni bir API olan
AndroidFont
eklendi. Örneğin, uygulamaya özel bir arka uçtan yazı tipi yükleme, isteğe bağlı olarak cihazda önceden yüklenmiş yazı tiplerini bulma veya mevcut Yazı tipi fabrikaları tarafından sağlanmayan bir kaynaktan yazı tipi yükleme.İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için
Font.ResourceLoaded
API genişletildi. Uygulama geliştiricilerin doğrudan bu API'yi kullanmaları önerilmez. Yeni yazı tipi türleri eklemek içinAndroidFont
sayfasına bakın.Font.AndroidResourceLoader
uzantı işlevi, kompozisyonun dışındayken birFont.ResourceLoader
oluşturulmasına izin verir.Kaynak yazı tipi, indirilebilir yazı tipleri XML'ine başvurduğunda eşzamansız yüklemeye izin vermek için kaynak tabanlı yazı tiplerine
loadingStrategy
parametresi eklendi. (Ie5aea, b/174162090)Typeface(FontFamily)
oluşturucu kullanımdan kaldırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. İndirilebilir yazı tiplerinde bu çağrı 10 saniye süreyle 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. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. Bunun yerineFontFamilyResolver.preload
kullanın (If8e7c, b/174162090)maxSlotsToRetainForReuse
kabul edenSubcomposeLayoutState
oluşturucunun desteği sonlandırıldı. Bunun yerineSubcomposeSlotReusePolicy
özelliğini kabul eden yeni bir oluşturucu vardır. Bu yeni arayüz, hangi alanların gelecekte yeniden kullanılmak üzere saklanacağı konusunda daha ayrıntılı kontrole olanak tanıyan yeni bir arayüzdür. (I52c4d)Color
ürününde HSV ve HSL işlevini, deneysel olmayan API olarak sunar. Oklab renk alanı artık herkese açık bir API. (I08fb6, b/180731008)Herkese açık API'ye sunulmaması amaçlanan ve sizin için herhangi bir fayda sağlamadığı
AndroidComposeTestRule.AndroidComposeStatement
desteği sonlandırıldı. (Ibc46b)Oluşturulan dahili kt sınıfı yeniden adlandırması (Ia0b9e, b/174162090)
FontLoadingStrategy.values
kaldırıldı (I42a9d, b/174162090)Genel yazı tipi yükleyicisinin adı
FontFamilyResolver
olarak değiştirildi. (I4f773, b/174162090)Masaüstü için yeni yazı tipi yükleme sistemini kullanın. (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
,State<Any>
değerini döndürür (I4406c, b/174162090)
Hata Düzeltmeleri
- Metin Alanları artık odaklanıldığında ve yumuşak giriş modu
ADJUST_PAN
olduğunda klavye gösterildiğinde klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolver
için yerel besteyi kullanıyor - Masaüstü
FontLoader
desteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090) - Metin alanları arasında odak değiştirildiğinde, sanal klavye giriş türü artık titremiyor. (I1bf50, b/187746439)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
yayınlandı. Sürüm 1.2.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- Yan düğmeli dönen Wear cihazları için
Modifier.onRotaryScrollEvent()
veModifier.onPreRotaryScrollEvent()
eklendi (I18bf5, b/210748686) - Deneysel
View.createLifecycleAwareRecomposer
uzantısı (I0cde6) ekleyin
Harici Katkı
PointerEvent.scrollDelta.y
artık Android'de ters çevrilmiş (artık fare tekerleğini sağa doğru yatırırsak -1 yerine 1 döndürüyor) (Ia9811)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
FontFamily.canLoadSynchronously
desteği sonlandırıldı. Bu özelliğin semantik anlamı yok. (Ica5ef)- Düzen İnceleyici'de sabit kimlikler oluşturmak için
CompositionData
öğesine kimlik alanı eklendi. (Ic116e) - Wear OS cihaz kimlikleri Cihaz önizleme listesine eklendi (I93232)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
hizmetini kullanabilirsiniz.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.ui:ui-*:1.1.1
yayınlandı. 1.1.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
adresindekiNullPointerException
sorununu düzeltin (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında pano içeriğinin neden kilitlenmesi düzeltildi. (I06020, b/197769306)
LazyVerticalGrid
içinde sabit RTL (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.ui:ui-*:1.1.0
yayınlandı. 1.1.0 sürümü bu kayıtları içerir.
1.0.0'dan sonraki önemli değişiklikler
- Android 12 Fazla kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmasıyla ilgili iyileştirmeler
- Compose 1.0'da Material bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılayacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olarak ayarlasanız bile Düğme dokunma hedefi minimum 48x48 dp boyuta genişler. Bu işlem, Compose Materyalini Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ve Oluşturma öğelerini birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
- Navigasyon Rail için Kararlı Destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir
- Kotlin'in yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.ui:ui-*:1.1.0-rc03
yayınlandı. 1.1.0-rc03 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03 sürümünü 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ınlandı. 1.1.0-rc01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
HardwareRenderer.isDrawingEnabled()
false
iseSemanticsNodeInteraction.captureToImage()
artık görüşme süresince (Idf3d0) etkinleştirilirse çalışır
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-beta04
yayınlandı. 1.1.0-beta04 sürümü bu kayıtları içerir.
Yeni Özellikler
- Kotlin
1.6.0
ile uyumlu olacak şekilde güncellendi
API Değişiklikleri
androidx.core.view
içindeki boş değer temizlendi (I7078a, b/204917439)- 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'lar eklendi. (I2e59d)
- Kullanıcı arayüzü katmanına fare kaydırma tekerleği etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
- Eşitlik açısından karşılaştırmak için anahtarları kabul eden ve atlama optimizasyonlarına uygun olan deneysel
Modifier.composed
aşırı yüklemeleri ekleyin. (Buz799, b/205851704) ComposeNotIdleException
artık doğrudanThrowable
yerineException
değerinden uzanıyor. Bunun,Exception
yakalayan yakalama ifadelerinin artıkComposeNotIdleException
öğelerini yakalayabileceği ancak önceden bunu yapamayacakları anlamına geldiğini unutmayın. (I9c217)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerlerini düzeltin. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta03
yayınlandı. 1.1.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- Yerleşim değişikliğinin gözlemlenmesine olanak tanımak için yeni Modifier.onPlaced değiştiricisi eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine göre alt değiştiriciye ait ofsette ek değişiklikler yapılabilir. (I558fd)
InjectionScope.flush()
veInjectionScope.dispose()
kaldırıldı. Tüm etkinliklerin temizlenmesi ve kapsamın ortadan kaldırılması, daha önce olduğu gibi artık performans*Input() yönteminin sonunda gerçekleştiriliyor. (I2bed8)MultiModalInjectionScope.Touch
veMultiModalInjectionScope.Mouse
kaldırıldı. Çok modlu hareketlerde dokunma ve fare etkinliklerini eklemek için artıkMultiModalInjectionScope.touch()
veMultiModalInjectionScope.mouse()
kullanabilirsiniz. Bunların her ikisi de, söz konusu modun alıcı kapsamına sahip olan lambdaları kabul eder. (Idde18)
Hata Düzeltmeleri
TouchInjectionScope.swipeWithVelocity
öğesindekidurationMillis
için varsayılan değer, kaydırma işleminin uygun olacağı şekilde hesaplanmıştır. (I19deb)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta02
yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Ebeveynlere, bir öğeyi görünüme getirmek için kaydırma isteği göndermenizi sağlayan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
- Araçları destekleyen yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler içinde incelemesine olanak tanır. (I4116e)
Harici Katkı
- Modifier.pointerHoverIcon eklendi (I95f01)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-beta01
yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Ebeveynlere, bir öğeyi görünür hale getirmek için kaydırma isteği göndermenizi sağlayan deneysel
BringIntoView
API'si eklendi (Ib918d, b/195353459) - Araçları destekleyen yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler içinde incelemesine olanak tanır. (I4116e)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
yayınlandı. 1.1.0-alpha06 sürümü bu kayıtları içerir.
API Değişiklikleri
ExperimentalComposeUiApi
özelliğiniViewRootForInspector
veLayoutInfo.ownerViewId
alanlarından kaldırın (I5c2e3)- Layout için iyileştirilmiş verimlilikle çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
- Modüller arası olarak çağrılması gereken Composer yöntemlerinden
InternalCompilerApi
kaldırıldı (I1aa0b) SemanticsNodeInteraction.performSemanticsAction
şimdi işlevin çağrıldığıSemanticsNodeInteraction
değerini döndürüyor. (I9e5db)- TouchMode/NonTouchMode'u algılamak için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
- Tüketicilerin, uzun süreli zaman aşımı gibi konularda doğru değeri alabilmelerini sağlamak için
LayoutInfo
öğesineviewConfiguration: ViewConfiguration
eklendi. (I76ca6)- Testlerin giriş yerleştirmeyi uzun basma zaman aşımı veya dokunma eğimi gibi öğelere göre ayarlamasına olanak tanımak için
viewConfiguration: ViewConfiguration
işleviInjectionScope
eklendi. - Hem dokunma hem de fare girişi için varsayılan uzun basma ve iki kez dokunma süresi
InjectionScope.viewConfiguration
değerindeki değerlere dayalı olacak şekilde değiştirildi.
- Testlerin giriş yerleştirmeyi uzun basma zaman aşımı veya dokunma eğimi gibi öğelere göre ayarlamasına olanak tanımak için
- içinde TextField ve DropdownMenü bulunan ExposedDropdownMenüBox'a dayalı ExposedDropdownMenü'nün (If60b2) uygulanması
- PopupProperties'e dismissOnOutsideClick, kullanımdan kaldırılan dismissOnClickOutside öğesinin yerine eklendi. Yeni özellik, tıklama konumunu ve bağlayıcı sınırlarını alarak onDismissRequest'in çağrılıp çağrılmaması gerektiği üzerinde daha ayrıntılı kontrol sağlar. Örneğin bu, sabite yapılan dokunmalar için bağlayıcının kapatılmasını önlemek açısından yararlı olabilir.
- GüncellemeAndroidWindowManagerFlags, PopupProperties'e eklendi ve pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde alt düzey denetim olanağı sundu. Lambda parametresi, WindowManager flag'lerini sağlayan PopupProperties değerlerinden hesaplanan işaretler olacaktır: ör. odaklanılabilir. Lambda'nın sonucu, Android WindowManager'a aktarılacak son işaretler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmez. Bu API, yalnızca pop-up'ın çok belirli davranış gereksinimleri olduğu durumlarda dikkatli kullanılmalıdır. (I6e9f9)
Recomposer.state
kullanımdan kaldırıldı ve türünü StateFlow (Ic2ab3, b/197773820) olarak değiştirmek içinRecomposer.currentState
ile değiştirildiflush()
vedispose()
,InjectionScope
koleksiyonuna eklendi. Bunları, sıraya alınmış tüm etkinlikleri hemen temizlemek istediğinizde ve sırasıyla kapsamı kaldırmak istediğinizde kullanın. (Ifb73a)- Belirli bir eşleştirici ile eşleşen içeriğe kaydırılabilir bir kapsayıcıyı kaydıran
performScrollToNode(matcher: SemanticsMatcher)
eklendi. (Ic1cb8) InjectionScope
artıkDensity
kullanıyor. Bu sayedeperformTouchInput
ve arkadaşlarınızda px ile dp arasında kolayca dönüşüm yapabilirsiniz. (I8fe1f)
Hata Düzeltmeleri
- AndroidView artık LocalLifecycleOwner ve LocalSavedStateRegistryOwner öğelerini, ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner aracılığıyla kendi görünümüne yayar. (I38f96, b/179708470)
- WearOS ScrollToDismissBox bazen kaydırma işlemlerini yapamama sorunu düzeltildi. (I9387e)
- Yerleştirilen giriş etkinlikleri arasındaki varsayılan süre 10 ms'den 16 ms'ye değiştirildi. Bu durum, belirli bir kaydırma gibi giriş hareketlerini gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha05
yayınlandı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
- Değiştirici iletişim için ek destek (Id5467, b/198826874)
- PointerEventChange'e deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
density: Density
velayoutDirection: LayoutDirection
,LayoutInfo
koleksiyonuna eklendi. Bu,LayoutInfo
tüketicilerininLayoutInfo
konumunda gösterilen boyutları ve konumu doğru bir şekilde yorumlamasına olanak tanır. (I002f1)- Fare etkinlikleri eklemek için deneysel destek eklendi. Fare etkinlikleri göndermeye başlamak için
performMouseInput
kullanın veyaperformMultiModalInput
ile çok kalıcı giriş hareketi sırasındaMultiModalInjectionScope
öğesininMouse
özelliği aracılığıyla fare etkinlikleri gönderin. Kullanılabilir API belgeleri içinMouseInjectionScope
sayfasına göz atın. (Iaa4a8, b/190493367)
Hata Düzeltmeleri
- Kaydırılabilir öğeler (hem geç hem tembel olmayan) için kaydırma ile ilgili sabit erişilebilirlik desteği (I6cdb0)
TouchInjectionScope.swipeWithVelocity
iyileştirildi. Bu özellik artık daha çeşitli giriş değişkenlerini kabul ediyor ve kaydırma işlemi oluşturulamıyorsa girişte değişiklik yapılmasını öneriyor (I40fbe, b/182477143).
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
PointerEvent
, fareyle üzerine gelme etkinliklerini desteklemek için artık birPointerEventType
özelliğine sahip. (I091fa)- Çocukların, ebeveynin işaretçi giriş sınırları dışında işaretçi girişini kabul etmesine izin verin. Üst yayıncılar, bu çağrılara PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655) mülküyle müdahale edebilir.
performTouchInput
veTouchInjectionScope
ile değiştirilenperformGesture
veGestureScope
kullanımdan kaldırıldı. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin minimum erişilebilirlik değerlerini karşılamasını sağlayabilmek için
SemanticsNode
öğesine, minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214) - İncelenebilir öğesinin uygulamasını yeniden yap (I927bc, b/191017532)
- Inspectable parametre adı, oluşturulan ile eşleşecek şekilde değiştirildi (I3a482, b/191017532)
Diğer yöntemlerin (fare gibi) önünü açmak için
performTouchInput
veTouchInjectionScope
'in yerine geçenperformTouchInput
veTouchInjectionScope
kullanıma sunuldu.TouchInjectionScope
,updatePointerTo
veupdatePointerBy
olarak yeniden adlandırılanmovePointerTo
vemovePointerBy
dışındaGestureScope
ile aynı yöntemlere sahiptir. Diğer tüm yöntemler aynıdır.TouchInjectionScope
, iki küçük ayrıntıyla birlikteGestureScope
ile neredeyse aynıdır:- Bir taşıma etkinliği gönderilmeden işaretçiler taşınırken aşağı etkinlik gönderildiğinde (yani
updatePointerTo()
kullanıldı ancakmove()
değil vedown()
çağrıldı) önceki uygulama, etkinlik zamanını ilerletir ve aşağı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu spesifik senaryoda etkinlik zamanını ilerletmez. - Bir taşıma etkinliği göndermeden işaretçiler taşınırken bir yukarı etkinlik gönderirken (yukarıdakine benzer şekilde), önceki uygulama etkinlik zamanını ilerletir ve yukarı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulamada bunların ikisi de yoktur: İşaretçilerin yeni konumları yalnızca yukarı etkinliği üzerinden yansıtılır.
Son olarak
TouchInjectionScope
, verilen işaretçinin mevcut konumunu elde etmek için yeni bircurrentPosition(pointerId: Int)
yöntemini kullanıma sunar. (If1191, b/190493367)- Bir taşıma etkinliği gönderilmeden işaretçiler taşınırken aşağı etkinlik gönderildiğinde (yani
Hata Düzeltmeleri
- Klibin, minimum dokunma hedefi amaçları için dokunma hedefi sınırlarını klip bölgesinin dışına genişletmesine izin verin. (I43e10, b/171509422)
- Android 12 cihazlarda esneme fazla kaydırma desteği eklendi. (Iccf3c, b/171682480)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha03
yayınlandı. Sürüm 1.1.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
1.1.0-alpha03
oluşturma işlemi, Kotlin1.5.30
biçimini temel alacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Diğer değiştiricilerin sarmalanması için
Modifier.inspectable
eklendi. (I1909b, b/191017532) - Bulanıklaştırmanın kullanım alanlarını basitleştirmek için klip işaretleri ve TileMode'ların daha yaygın
kullanılan kombinasyonları olacak şekilde
BlurredEdgeTreatment
API'si eklendi. Çoğu kullanım alanı, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına izin verilmesi ve bu sınırların dışındaki alanların şeffaf siyah renkle bulanıklaştırılması ya da içeriğin içerik sınırlarının dışına çıkan bulanıklık çekirdekleri için en yakın kenardan örnek alınarak içerik sınırlarından kesilmesidir. (I6b4b7, b/166927547) - Oluşturma masaüstünde RenderEffect için destek eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklaştırma görsel efektlerinin basit bir şekilde eklenmesi için OffsetEct ve bulanıklaştırma değiştiricisi kullanıma sunuldu. (I0f6aa, b/166927547)
- Katmanın içeriğini değiştirmek için isteğe bağlı olarak
Modifier.graphicsLayer
üzerinde yapılandırılabilen RenderEffect API'yi kullanıma sunduk. Bu özellik, bir beste hiyerarşisindeki composable ve alt composable'ların içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547) - AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() öğelerini içeriyor (I507f0, b/179239764, b/182397793)
- Erişilebilirlik sağlamak amacıyla anlambilimde ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
- Bulanıklaştırma tabanlı OluşturmaEfektleri için uç davranışını tanımlamada yararlı olan TileMode.Decal desteğini ekleyin. (I7e8ed, b/166927547)
performScrollToIndex
,performScrollToKey
,hasScrollToIndexAction
vehasScrollToKeyAction
artık kararlı API (I142ae, b/178483889)- Kesilen sınırları almak için test yöntemi eklendi. (I6b28e)
Hata Düzeltmeleri
- Şekil parametresinin null olup olmadığını açıkça kontrol etmek için isBounded yöntemi bulanıklaştırma işleminden kaldırıldı. (I85d68)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha02
yayınlandı. Sürüm 1.1.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
- Eklenen hareketler artık zaman için bilgi kaynağı olarak MainTestClock'ın zamanını kullanıyor.
performGesture
işlevine eklenen etkinliklerin geçerli zamanı, MainTestClock'ın geçerli zamanına başlatılır. (Ifb364, b/192064452) DpRect(DpOffset, DpSize)
kurucusu eklendi (I2cf16, b/194219828)- DpSize sınıfı eklendi (I7abb1, b/194219828)
Hata Düzeltmeleri
- VectorDrawables'da kök renk tonu özellikleri olarak ColorStateLists özelliğini desteklemek için Vector grafikleri xml ayrıştırması güncellendi. (I86915, b/195668138)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
RelocationRequester.bringIntoView
, artık bir composable'ın bir bölümünü görünüme getirmemize olanak tanıyan bir dikdörtgeni parametre olarak kabul ediyor (Ice2c5, b/194330245)AnimatedImageVector
ve ilgili API'ler artık yeniandroidx.compose.animation:animation-graphics
modülünde. (I60873)- Konum değiştirme isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
ColorPainter'a benzer şekilde, Painter içinde rastgele bir fırçanın çizilmesini desteklemek için BrushPainter API'yi kullanıma aldı
Brush API, BrushPainter içinde sorgulanan içsel bir boyut parametresine sahip olacak şekilde güncellendi (Ia2752, b/189466433)
İsteğe bağlı bir filterQuality parametresini kullanmak için kaynak ve hedef dikdörtgenlerini tüketen güncellenmiş DrawScope#drawImage yöntemi. Bu özellik, piksel tabanlı sanat için ölçeklendirildiğinde pikselleştirilmesi amaçlanan piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı birFilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)
Bir hareketteki etkinliklerin zamanlaması üzerinde daha fazla kontrol sağlamak için
GestureScope.advanceEventTime
yöntemi eklendi (Ibf3e2)
Hata Düzeltmeleri
- Çizim değiştiricilerinin zincirlenmesini daha iyi desteklemek için Modifier.paint uygulamasınındrawsContent çağrılarını sağladığından emin olun.
Daha önce Modifier.paint'in Değiştiriciler zincirindeki bir yaprak düğüme eklenmesi bekleniyordu, ancak bunu yaparak bir composable container'da (ör. kutu) yapılandırılmasını veya üzerine
Modifier.paint().border()
gibi ek süslemelerin eklenmesini engelliyordu. Belirtilen resmin içeriklerini çizdikten sonra Modifier.paint'indrawContent çağrısını yaparak, değiştirici kalıbıyla davranışta daha iyi bir davranış tutarlılığı elde ederiz. (Ibb2a7, b/178201337, b/186213275) - İletişim kutuları artık platform boyutlandırma davranışını takip etmektedir. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini false (yanlış) olarak ayarlayın. (Iffaed, b/192682388) InfiniteAnimationPolicy
dosyası :compose:ui konumuna taşındı (I5eb09, b/160602714)- Geç listeler ve normal kaydırma bileşenleri için anlamsal işlemler aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.ui:ui-*:1.0.5
yayınlandı. 1.0.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- türvedStateOf örneklerinin kilitlenmesini izlemeyle ilgili bir sorun düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.ui:ui-*:1.0.4
yayınlandı. 1.0.4 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
temel alınarak güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.ui:ui-*:1.0.3
yayınlandı. 1.0.3 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
temel alınarak güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.ui:ui-*:1.0.2
yayınlandı. 1.0.2 sürümü bu kayıtları içerir.
Compose 1.0.2
sürümünü desteklemek için güncellendi. 1.0.2
oluşturma işlemi, Kotlin 1.5.21
ile hâlâ uyumlu.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.ui:ui-*:1.0.1
yayınlandı. 1.0.1 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
temel alınarak güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0
yayınlandı. 1.0.0 sürümü bu kayıtları içerir.
1.0.0'ın temel özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Sürüm Oluşturma bloguna göz atın!
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız şu kilitlenmeyle karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Sorunu düzeltmek için
build.gradle
dosyanızda minSdkVersion değerini geçici olarak 24+ sürümüne yükseltin. Bu sorun, Android Studio Bumblebee ve AGP7.1
sürümünün bir sonraki sürümünde düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0-rc02
yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- İletişim kutuları artık platform boyutlandırma davranışını takip etmektedir. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini false (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ınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Kullanıcı arayüzü araçları modülünü
ui-tooling
veui-tooling-preview
olarak bölün (Iefa28, b/190649014)
API Değişiklikleri
- Kullanımdan kaldırılan deneysel
FocusManager#moveFocusIn
veFocusManager#moveFocusOut
(I227d7, b/170154986, b/186567354, b/168510304) - Tuval artık erişilebilirlik için contentDescription parametresini desteklemektedir. (Ib547c)
PopupProperties
öğesindekiuseDefaultMaxWidth
,usePlatformDefaultWidth
olarak yeniden adlandırıldı. (I05710)- İletişim kutuları artık ekran genişliğinin tamamını kullanabiliyor. (I83929, b/190810877)
- HSV ve HSL renk temsilleri için deneysel destek eklendi. (Id7cf8, b/180731008)
Davranış Değişiklikleri
- Compose
@Preview
artık ilgili sahibin mevcut olmasına bağlı olanrememberLauncherForActivityResult()
gibi API'leri kullanan composable'ları önizlemenize olanak tanıyan birLocalActivityResultRegistryOwner
sağlıyor. (Ib13d1, b/185693006) - Compose
@Preview
artıkBackHandler
gibi API'leri kullanan composable'ları önizlemenize olanak tanıyan ve mevcut sahibin mevcut olmasına bağlı olan birLocalOnBackPressedDispatcherOwner
sağlıyor. (Ia1c05, b/185693006)
Hata Düzeltmeleri
InfiniteAnimationPolicy
,androidx.compose.ui:ui
klasörüne taşındı (I5eb09, b/160602714)- AnimasyonluImageVector, modül yapısını değiştirmek için geçici olarak kaldırıldı. (I41906, b/160602714)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta09
yayınlandı. 1.0.0-beta09 sürümü bu kayıtları içerir.
API Değişiklikleri
- Enum Rolü ve LiveRegionMode'u, özel oluşturucuyla (Id1890) satır içi sınıflara değiştirin
- Büyük harf kullanımı, satır içi sınıfa dönüştürüldü. (Id5a1c)
- HapticFeedbackType'ı satır içi sınıf olarak değiştirin. (I255ec)
- Modifier.pointerInteropFilter: @DeneyselalComposeUiApi. (Iede6c)
- Textalign, FontSynthesis ve TextDirection artık satır içi sınıflardır. (I212fe)
- TextOverflow, satır içi sınıf olarak değiştirildi. (I433af)
- FontStyle artık bir satır içi sınıf oldu. (I9e48b)
Hata Düzeltmeleri
- Anahtar sabitleri şimdilik @DeneyselalComposeUiApi'dir. Kod tüketmek, sabitlemeden önce özel sabitleri bildirebilir. (Ia5d48)
- Oluşturma testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tanımlanmıştır:
- Yerel bit eşlem yoktur. Dolayısıyla
ImageBitmap()
, NullPointerException'a yol açar. - Çizim olmadığından
captureToImage()
bir sonraki çekiliş kartını süresiz olarak bekler (yani kilitlenmeler yaşanır). - Yüklü yazı tipi olmadığı için metinler yanlış şekilde ölçülür. Tüm karakterlerin yaklaşık 20 piksel sabit yüksekliğinde ve 1 piksel genişliğindedir.
ComposeTestRule.waitUntil {}
, beklerken ana iş parçacığını çalıştırmadığından,ComposeTestRule.mainClock.advanceTimeUntil {}
ile aynı şekilde çalışır. Gelecekte daha fazla sınırlandırmanın tanımlanması bekleniyor. (I284fa)
- Yerel bit eşlem yoktur. Dolayısıyla
Eklenmiş Profil Kuralları
Bu sürümde aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları eklenir:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.temel
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-dalga
- 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ığa ilişkin profil kuralları,
src/main
veya eşdeğer dizinde bulunanbaseline-prof.txt
metin dosyasında belirtilir. Dosya, satır başına bir kural belirtir. Bu örnekte, bir kural kitaplıktaki yöntemler veya sınıflarla eşleştirme kalıbıdır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan, kullanıcılar tarafından okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.Bir yöntem kuralı aşağıdaki kalıba sahip olur:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Bir sınıf kuralı aşağıdaki kalıba sahip olur:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmemesi gerektiğini belirtmek içinH
,S
veP
karakterlerinden bir veya daha fazlasını içerir.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfı tanımlar. Örneğin,androidx.compose.runtime.SlotTable
sınıfındaLandroidx/compose/runtime/SlotTable;
tanımlayıcısı olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yöntemiisPlaced()Z
imzasına sahiptir.Tek bir kuralın birden fazla yöntemi veya sınıfı kapsamasını sağlamak için bu kalıplar joker karakterler (
**
,*
ve?
) içerebilir.
Kurallar ne işe yarar?
H
işaretine sahip bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini belirtir.S
işaretine sahip bir yöntem, bunun başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemi başlatma sırasında yorumlama maliyetinden kaçınmak için önceden derlenmesi gerektiğini belirtir.P
işaretine sahip bir yöntem, bunun başlatma sonrasında çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetinden kaçınmak için yığında önceden ayrılması gerektiğini gösteriyor.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda, bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özel kompakt bir ikili program ART profili oluşturmak için kullanılır. Uygulama cihazlara yüklendiğinde ART, uygulamanın performansını özellikle ilk çalıştırmada iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla bu profilden yararlanabilir. Bu işlemin hata ayıklaması yapılabilir uygulamalar üzerinde etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta08
yayınlandı. 1.0.0-beta08 sürümü bu kayıtları içerir.
API Değişiklikleri
NestedScrollSource
sıralaması, bir satır içi sınıfla değiştirilir. (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true)
,FocusManager.clearFocus(force = true)
(Ia0c41) olarak yeniden adlandırıldı- Yeni enum değerleri eklendiğinde kapsamlı ifadelerle ilgili sorunları önlemek için enum kullanımları satır içi sınıflarda yeniden düzenlendi. (I2b5eb)
@ExperimentalComposeUiApi
,PopupProperties
hesabından kaldırılsın mı? (I01fa6)- Sıralama olan
PointerType
, satır içi sınıf olarak değiştirildi (If5058) - ContentDescription ve Text semantics özellikleri artık tek değerler değil, listelerdir. Böylece birleştirme yapmak yerine, olduğu halde birleştirebilirsiniz. Ayrıca bu değişiklikleri kullanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırılmış olup yerineModifier.focusTarget()
(I6c860) ile değiştirilmiştirModifier.onSizeChanged()
veModifier.onGloballyPositioned()
artık satır içi işlevler değil (I727f6, b/186109675)KeyboardType
sıralaması, bir satır içi sınıfla değiştirilir. (I73045, b/187055290)FocusState
sıralaması,FocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- ImeAction enum'un yerine bir satır içi sınıf getirildi. (I18be5, b/187055290)
PlaceholderVerticalAlign
, satır içi sınıfa dönüştürülür. (If6290)- TextUnitType artık bir satır içi sınıftır. (I4cba9)
AnnotatedString.withAnnotation
işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi'dir. (I0cd0a)- TextUnitType içeren TextUnit oluşturucu, artık ExperimentalComposeApi yerine DeneyselalTextApi olmuştur.
Hata Düzeltmeleri
- Beta07'de kullanıma sunulan, LazyColumn/Satır öğelerinin kaydırmadan sonra kısmen gösterildiği hata düzeltildi (I8c9ac, b/188566058)
- Artık
detectDragGesures
,detectVerticalGestures
vedetectHorizontalGestures
konum değişikliğini otomatik olarak kullanacak; onDrag geri çağırmalarında change.consumePositionChange çağrılmasına gerek yoktur (I42fc4, b/185096350, b/187320697) - Hizalama çizgileri sağlayan LayoutModifier'lar düzeltildi. Alt öğelerin hizalama çizgileri değiştirilirken üst öğenin yeniden ölçülememesine neden olan bir hata düzeltildi. (I4401f, b/174315652)
Modifier.onGloballyPositioned()
, tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirmek için değiştirildi. Bu, artık değiştiricilerin sıralamasının, hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta07
yayınlandı. 1.0.0-beta07 sürümü bu kayıtları içerir.
API Değişiklikleri
- Denetleyicide kullanılmak üzere
ViewRootForInspector
arayüzü eklendi (Ib70df) SubcomposeLayoutState
artık yeniden kullanılabilir slot sayısını ayarlamayı destekliyor. Düzen, bir dahaki sefere yeni bir yuvaya ihtiyacımız olduğunda (Ieb981) tekrar kullanmak için bu sayı aralıklarını atmak yerine etkin durumda tutar- KeyEventType numaralandırması, bir satır içi sınıfla değiştirilir. (Id670a, b/187055290)
FocusDirection
sıralaması, bir satır içi sınıfla değiştirilir. (Ib6d03, b/187055290, b/184086802)- SubcomposeLayout durumunu kaldırabilme özelliğini sunar. Bu sayede içeriği slotId değerine önceden kombinlemenize olanak tanır. Bu sayede, bir dahaki sefer hiçbir kompozisyon gerekmeyeceğinde belirtilen slotId ile alt derlemeye çalıştığımızda bir sonraki önlemin geçişi daha hızlı yapılır. (I42580, b/184940225)
- Klip Seçimi Tutma Yeri eklendi (Iff80d, b/183408447)
- Layout Inspector desteği ile ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)
Hata Düzeltmeleri
- LazyColumn/Row artık, daha önce aşağı kaydırılmış olsalar bile önceden görünür olan en fazla 2 öğeyi etkin (atılmayan) tutacak. Bu, kaydırma performansını iyileştiren yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt kompozisyonları yeniden kullanmasına olanak verir. (Ie5555)
AnnotatedString
üzerindekiTextGeomerticTransform
veTextDecoration
belirtildiği şekilde uygulanacaktır. (I61900, b/184760917)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta06
yayınlandı. 1.0.0-beta06 sürümü bu kayıtları içerir.
API Değişiklikleri
- Gezinme Hareketiyle Çakışmayı Çöz (I1145e)
@ComposeCompilerApi
artık@RequiresOptIn
değil (Iab690)- Koleksiyonun ve öğelerinin erişilebilirlik hizmetleri için işaretlenmesine olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
- Dizine eklenmiş öğeler içeren bir listeyi belirli bir dizine sahip öğeye kaydırmak için
SemanticsActions.ScrollToIndex
ve anahtarlı öğeler içeren bir listedeki öğenin dizinini almak içinSemanticsProperties.IndexForKey
eklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirtilen dizine kaydıran
SemanticsNodeInteraction.performScrollToIndex
ve listeyi belirtilen anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKey
eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirtilen dizine kaydıran
- ownerViewId, GraphicLayerInfo'ya eklendi (I19f62)
- Öğeler, Dosya ve Dosya Açıklayıcı'daki yazı tiplerini yüklemek için Font() aşırı yüklemeleri eklendi (I5d382)
- Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan
error
Erişilebilirlik API'si eklendi (I12997, b/180584804, b/182142737) - Öğeler, Dosya ve Dosya Açıklayıcı'daki yazı tiplerini yüklemek için
Font()
aşırı yükleme eklendi (I43007) - AnnotatedString,
TextFieldValue.Saver
içine kaydetme desteğini kaydetmektedir.addTtsAnnotation
ve ek açıklama yardımcı program işlevleriAnnotatedString.Builder
öğesine 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ınlandı. 1.0.0-beta05 sürümü bu kayıtları içerir.
API Değişiklikleri
- Deneysel
FocusManager.moveFocus(In)
veFocusManager.moveFocus(Out)
eklendi (Ic5534, b/183746743) - Deneysel
performTextInputSelection
API'si eklendi (I2dcbb, b/178510628) InputEventCallback
arayüzü kullanımdan kaldırıldı. Arayüzün herkese açık herhangi bir API'de kullanımı mümkün değildi ve kod içinde kullanılmadı. (I34a02, b/184003208)- Kullanımdan kaldırılan
TextLayoutResult/createTextLayoutResult
işlevi. Bu, test için eklenmiş, kullanılmayan bir herkese açık işlevdir. İşlev, oluşturma metin API'ları için kullanılabilecek hiçbir şey yapmaz. Bu işlev artık kullanımdan kaldırılmıştır ve daha sonra kaldırılacaktır. (I80413)
Hata Düzeltmeleri
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
erişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0)- ui-test-manifest veui-tooling-data içindeki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumlu.
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta04
yayınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.
API Değişiklikleri
SoftwareKeyboardController
sitesindekihideSoftwareKeyboard
veshowSoftwareKeyboard
uygulamalarını sırasıylahide()
veshow()
olarak yeniden adlandırın.- LocalYazılımKlavyeDenetleyicisi için tam CompositionLocal arayüzünü sağlayın. Bu arayüz, ayarlanmasına izin verin (özellikle testlerde kullanışlıdır) (I579a6)
- LiveRegion Accessibility API eklendi. Düğüm canlı bölge olarak işaretlenirse erişilebilirlik hizmetleri kullanıcıyı değişiklikleri hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946).
- TextOverflow.visible eklendi. (Ic8f89)
Hata Düzeltmeleri
- Kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin, hızlı kaydırmadan sonra yanlış konumlandırılmasıyla ilgili sorun düzeltildi (Ie4d13, b/183877420) AndroidViewBinding
artıkAndroidViewBinding
oluşturma hiyerarşisinden çıkarıldığındaFragmentContainerView
aracılığıyla şişirilen parçaları düzgün şekilde kaldırıyor. (Ib0248, b/179915946)AndroidViewBinding
,ComposeView
öğenizFragment
içindeykenFragmentContainerView
aracılığıyla şişirilen parçaları artık doğru şekilde iç içe yerleştirerek bu parçaların durumunu kaydetme ve geri yükleme sorunlarını düzeltir. (I70eb0, b/179915946)- Oluşturma ViewBinding artık Fragment
1.3.2
öğesini kullanıyor ve yapılandırma değişikliklerinden sonraFragmentContainerView
aracılığıyla şişirilen parçaları tutarlı şekilde gösteriyor. (I0743d, b/179915946)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta03
yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- ComposeView'un ViewTree bağımlılıkları için ertelenmiş kontrol (I8dbbf, b/182466548)
GestureScope
içindekiswipeUp
/swipeDown
/swipeLeft
/swipeRight
işlevlerine isteğe bağlıstartX
/endX
vestartY
/endY
parametreleri eklendi. (I49e2d, b/182063305)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta02
yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel API'si eklendi. (I5951e, b/168778053) - TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel API'si eklendi. (I84472, b/168778053) - Aşağıdaki
SemanticsMatcher
öğeleri 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
öğeleri eklendi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(I2f502)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımında kısıtlamalar uygula (I6aa29, b/174531520)
androidx.compose.ui:ui
artık AppCompat veya Fragment'e bağlı değil. Uygulamanızda ComposeView'un yanı sıra Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3+ / Fragment 1.3 ve sonraki sürümleri kullandığınızdan emin olun. Bu sürümler, yaşam döngüsünü ve ComposeView için gereken kayıtlı durum sahiplerinin doğru şekilde ayarlanması için gereklidir. (I1d6fa, b/161814404)- Gezinme-oluşturma hedefinde kullanıldığında bozuk
rememberSaveable { mutableStateOf(0) }
sorununu düzeltme. (I1312b, b/180042685, b/180701630) - TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel API'si eklendi. (I658b6, b/168778053) ComposeRootRegistry
öğesinintearDownRegistry()
öğesindeki nadir NoSuchElementException sorunu düzeltildi (Iddce1)
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-beta01
yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- onStart geri çağırma özelliği
detectDragGestures
grubuna eklendi (I67269, b/179995594) - Yerleşik özelliklere göre boyutlandırmayla ilgili 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 kullanacak şekilde güncellendi veya basitleştirilmiştir. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, Etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
interactionState = remember { InteractionState() }
öğesiniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
işlevini kullanın.Interaction.Pressed in interactionState
yerine, EngagementSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmalısınız.- Karmaşık kullanım örneklerinde, Etkileşimlerin akışını gözlemlemek için EtkileşimKaynak.interactions'ı kullanabilirsiniz. Daha fazla bilgi için EngagementSource belgelerine ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'da AccessibilityManger arayüzü ve LocalAccessibilityManger'in eklenmesi (I53520)
- Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı, locationInParent ve boundsInParent için özellik yerine işlevi kullanın (I580ed, b/169874631, b/175142755)
- Temel türlerle değiştirilen typealias'lar:
ColorStop
artıkPair<Float, Color>
SpanStyleRange
artık `AnnotatedString.Rangeoldu ParagraphStyleRange
artıkAnnotatedString.Range<ParagraphStyle>
StringAnnotation
artıkAnnotatedString.Range<String>
- (I8dd1a)
- CoreTextField gibi alt düzey metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Placeable, artık alt düzenin gerçekte ölçtüğü boyutu temsil eden measurementSize özelliğini gösterir. Bu boyut, ölçüm sınırlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla Sekme veya Radyo Düğmesi koleksiyonunu işaretlemeye olanak tanıyan seçim grubu değiştiricisi ekleyin (Ie5c29)
compositionLocalOf
vestaticCompositionLocalOf
için artık isteğe bağlı yerinedefaultFactory
zorunludur.Bu değişiklik, varsayılan fabrikanın sağlanmadığı, boş değerli olmayan türler için olası tür hatasını ortadan kaldırır. Önceden bu, null yapılamayan bir tür için boş referans sağlıyordu.
Boş değer atanabilen türler için varsayılan fabrika ayarı olarak
{ null }
değerini sağlayın.Makul bir varsayılan sağlanmadığı sürece, null yapılamayan türlere sahip yerel halkın kullanılması önerilmez. Makul bir varsayılan yoksa
defaultFactory
lambda bir istisna atmalıdır. Bununla birlikte, istisna uygulamak yerel tüketicilerin, tür sistemi tarafından zorunlu kılınmayan, sağlanan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Kullanıcı arayüzü modüllerinde desteği sonlandırılan yöntemler kaldırıldı (I646f6)
Boyut değiştiriciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)
Modifier.tapGestureFilter
kaldırıldı. Bunun yerineModifier.pointerInput { detectTapGestures(...) }
politikasını kullanın. (I266ed, b/175294473)işaretçi giriş sisteminden kısmi tüketim kaldırıldı. Kısmi tüketimin koordinasyonu için önerilen yöntem Modifier.nested Scroll'dur. (Ie9c9b)
Yön, temel paketine taşındı. VelocirtTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)
imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector tamamlayıcılarında uzantı işlevleridir.
load{Image,Vector,Font}Resource
işlev silindi. (I89130)AnimationClockObservable ve alt sınıflar kaldırıldı. Animasyonlu Kayan öğe kaldırıldı. (Icde52, b/177457083)
Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı
- Beste oluşturucu artık anahtar parametresi kabul etmediğinden kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey mülke dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- ComposableLambdaN, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- SnapshotFlow işlevi androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
- @TestOnly üst düzey clearRoots işlevi kaldırıldı. Buna artık gerek yoktur.
- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceBilgileri kaldırıldı. Buna artık gerek yoktur.
- isjoinedKey, birbirine katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
- Çeşitli üst düzey API'ler taşındı ve farklı dosyalar halinde yeniden düzenlendi. Kotlin’in dosya sınıfı semantiği nedeniyle bu, ikili uyumluluğu keser ancak kaynak uyumluluğunu keser. Bu nedenle çoğu kullanıcı için sorun teşkil etmeyecektir.
- (I99b7d, b/177245490)
ComponentActivity.setContent()
,Compose:ui'den kaldırıldı.androidx.activity:activity-compose:1.3.0-alpha01
tarafından gönderileni kullanın.viewModel()
veLocalViewModelStoreOwner
, generate:ui'den kaldırıldı.androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
alanındaki (I6f36b) olanları kullanınModifier.scrollable yeniden düzenlendi. Şimdi ScrollableController sınıfının yerine Scrollable arayüzünü kullanır (I4f5a5, b/174485541, b/175294473)
PointerInputModifier'ın sunduğu Customevens desteği kaldırıldı (I02707, b/175294473)
SnapshotStateObserver artık Deneysel değil (Id2e6a)
Daha önce kullanımdan kaldırılmış bazı API'ler silindi (Ice5da, b/178633932)
longPauseLanguageFilter ve doubleClickActionsFilter kaldırıldı. Değiştirici.pointerInput'u,detectTapHarekets (I2fedf, b/175294473) gibi yardımcı işlevlerle kullanın
String.format API'nin çeşitli toString yöntemlerindeki kullanımları, String.format'tan dahili olarak yararlanılmaması için yeniden düzenlendi. (Id1290)
dp onaylamaları kaldırıldı (I798d2)
androidx.compose.runtime:runtime-dispatch (I55feb) kaldırıldı
Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
runBlockingWithManualClock
kaldırıldı (I15cdc, b/179664814)Modifier.verticalKaydırma()/YAtayKaydırma() işlevindeki kaydırma konumu, artık Ints ile temsil edilir (I81298)
FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decays yerine askıya alma animasyonunun özelleştirilmesine izin veriliyor. (I02b86, b/175294473)
Tüm ImeAction geri çağırma işlevleri için aynı işlemi ayarlamaya yardımcı olacak bir yardımcı işlev eklendi (I63447, b/179226323)
Kısa bir süre içinde yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma özelliği tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
FontSpan ve FontWeigthStyleSpan artık kullanılmamakta ve kaldırılmaktadır. (Ie5b56, b/177423444)
Aşağıdaki Material API değişiklikleri yapıldı:
- Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
- BackdropScaffold'daki parametreler, isteğe bağlı parametrelerden önce gelen zorunlu parametreler için API yönergelerine uygun olacak şekilde yeniden sıralandı.
- BottomNavigasyonItem öğesindeki
icon
parametresi,selected
veonClick
değerlerinin sonrasına taşındı. - BottomNavigasyonItem parametresindeki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametresi yalnızcacontent
olarak yeniden adlandırıldı. ButtonDefaults.buttonColors()
içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediğinden, bunun kodunuzda bir hataya neden olmayacağını lütfen unutmayın. Lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde, kodunuz öncekiyle aynı şekilde çalışmaz.darkColors()
adlı kampanyayasecondaryVariant
parametresi eklendi. Bu renk, koyu temada genelliklesecondary
ile aynıdır, ancak tutarlılık ve daha fazla özelleştirme için eklenir.- Yaygın olarak kullanılmadığı / yararlı olmadığı için ElevationDefaults ve animasyonElevation() herkese açık API yüzeyinden kaldırıldı.
Slider
içindekionValueChangeEnd
öğesi,onValueChangeFinished
olarak yeniden adlandırıldı ve boş değerli hale getirildi.- Tutarlılık için
Snackbar
içindekitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolgunun özelleştirilmesine olanak tanımak için
DropdownMenuItem
öğesinecontentPadding
parametresi eklendi vecontent
,RowScope
üzerinde bir uzantı oldu. ModalDrawerLayout
,ModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
,BottomDrawer
olarak yeniden adlandırıldı.- (I1cc66)
Hata Düzeltmeleri
- Compose'da animasyonluVectorDrawable kaynaklarını kullanmak için API eklendi. Bir
<animated-vector>
XML'i canlandırmalıImageVector olarak yüklemek ve boyaterFor (I8ea91) ile canlandırmak için animatedVectorResource kullanın. - TextField'te önceki SoftwarekeyboardController arayüzünün yerini almak üzere yeni LocalSoftwareKlavyeController 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ınlandı. 1.0.0-alpha12 sürümü bu kayıtları içerir.
API Değişiklikleri
- ViewGroups desteği, UiApplier'den kaldırıldı. Kullanımdan kaldırılan emitView composable'ları kaldırıldı. (Ifb214)
- Modifier.pointerInput artık işaretçi girişi algılama eşinin yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek için tuşları hatırlamayı gerektiriyor. (I849cd)
- CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
- Sınırlar, DpRect (I4b32a) olarak yeniden adlandırıldı
- Test güncellemesi: hasText(), metin alanında (Iab803) hem girişi hem de etiket/ipucu/yer tutucu metinleri kontrol eder
- viewModel() composable ve LocalViewModelStoreOwner androidx.lifecycle.viewmodel.compose adresine taşındı. Şimdi, androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 adında ayrı bir bağımlılık eklemeniz gerekir. (I7a374)
- AccessibilityAction'da null işlemine izin verin, AccessibilityAction ve CustomAccessibilityAction'daki işlem etiketini CharSequence'tan String'e (I0dc82) değiştirin
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter'ın adı, BitmapPainter olarak, paralel VectorPainter olarak değiştirildi. (Iba381, b/174565889)
- Alt dizenin artık bağımsız değişken olarak kullanıldığı daha iyi alt dize test API'leri (Icbe78)
- Özel bir odak sırası lambda belirtmeden FocusRequester'ı kabul eden bir
Modifier.focusOrder()
eklendi. Bu, bir composable (I4f52a, b/179180978) için özel odak sırası değil, yalnızca referans belirtmemiz gerektiğinde faydalıdır. - ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
- Destructure ve copy() yöntemleri, nadiren kullanıldıkları çeşitli sınıflardan kaldırılmıştır. (I26702, b/178659281)
- Pop-up, platforma özel olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve
isFocusable
,PopupProperties
hizmetindeki (Ieeea5) birfocusable
parametresine taşındı. - İletişim kutusu platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
- LayoutNode dahili (I8a7b1, b/175103944)
- Constraints.enforce yerine Constraints.disable öğesinin yerini aldı. (I8b8ea)
- loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, VektörResource ve loadVectorResource için destek sonlandırılmıştır. Bunun yerine PaintterResource kullanın. (I6b809)
- Performansı korumak için ScrollAxisRange semantiği, artık doğrudan Kayan noktalı değerler yerine Kayan noktalı öğeleri döndüren lambda'ları almaktadır. (If4a35, b/178657186)
- Erişilebilirlik için metin alanında düzenlenebilir giriş metnini işaretlemek amacıyla EditableText semantiği eklendi. Anlamı kontrol etmek için ilgili test yöntemleri de eklendi (I8e07a)
- SahipLayer/OwnerScope/OwnerSnapshotObserver dahili (I4ffaf, b/175103944)
- toIntPx(), roundToPx() olarak yeniden adlandırıldı. (I9b7e4, b/173502290)
- IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
- Snapshot API, dahili uygulama sınıflarını herkese açık API'den gizlemenin yanı sıra API yönergeleriyle daha tutarlı olacak şekilde güncellendi. (Id9e32)
- Anlamsal genişletme ve daraltma işlemleri eklendi. ModalBottomSheetState'e genişletme ve yarısı genişletme eklendi (Ib5064)
- Modifier.dragMoveFilter kullanımdan kaldırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, bir eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473) - Ambiyans, Ambiyans -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Eskiden AmbientFoo adı verilen ambiyanslar artık CompositionLocals olarak LocalFoo olarak adlandırılıyor. (I2d55d)
- Kullanımdan kaldırılan BaseTextField kaldırıldı. Bunun yerine BasicTextField politikasını kullanın. (I71368)
- Seçim temele taşındı. (I7892b)
state { 0 }
composable'ı kaldırdığımız ve artıkremember { mutableStateOf(0) }
gibi kullanımı teşvik ettiğimiz şekildesavedInstanceState { 0 }
composable'ı da kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmanız gerekir. MutableState içinde kullanılan tür pakette depolanıyorsa otomatik olarak kaydedilip geri yüklenir. Daha önce bir özel tasarruf nesnesi iletiyorsanız şimdistateSaver
parametresine sahip Hatırlanabilirlik özelliğinin yeni bir aşırı yüklenmesini kullanmanız gerekir. Kullanım şöyle görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004)- Erişilebilirlik için şifre anlamı eklendi (I231ce)
- Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere İlerlemeBarRangeInfo.Indeterminate eklendi (I6fe05)
emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programları, artık performans üzerinde herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)snapshotFlow
vewithMutableSnapshot
artık deneysel değil (I6a45f)- Yeniden toplayıcılar artık kapatılabilir. Kapalı yeniden düzenleyiciler, beste alt eş yordamları tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatma işlemiyle kontrast oluşturmak üzere iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
- UiSavedStateRegistry, SaveableStateRegistry olarak, AmbientUiSavedStateRegistry, AmbientSaveableStateRegistry olarak ve her ikisi de androidx.compose.runtime.saveable paketine taşınmıştır. (I30224)
- Yapı androidx:compose:runtime:runtime-saved-instance-state , androidx:compose:runtime:runtime-saveable (I6dcac) olarak yeniden adlandırıldı
- Kullanıcı arayüzü paketindeki uzun süredir desteği sonlandırılmış API'lerin çoğu silindi. (I2f2dc)
- Composer:runtime-dispatch yapısı kullanımdan kaldırıldı. MonotonicFrameClock artık write:runtime'da, AndroidUiDispatcher ise Composer:ui'de 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 kullanıma sunuldu. Refactored ColorFilter API, bir arayüz haline gelir ve PathEffect uygulamasıyla eşleşir. (Ica1e8)
- Shape'in createOutline öğesine layoutDirection parametresini ekleyin. Bu, düzen yönüne duyarlı şekiller oluşturulmasına olanak tanır. (I57c20, b/152756983)
- onImeActionPerformed desteği sonlandırıldı. Bunun yerine Klavyeİşlemleri kullanın (If0bbd, b/179071523)
- Sonsuz animasyonlara uygulanacak bir
InfiniteAnimationPolicy
eş yordam bağlam öğesi kullanıma sunuldu. Varsayılan olarak, testlerinComposeTestRule
ile çalıştırıldığı durumlar dışında herhangi bir politika yüklenmez. (I50ec4, b/151940543) - canDrag, Modifier.scrollable'dan kaldırıldı. (Id66e7, b/175294473)
- Yeni birparentKoordinatör özelliğine izin vermek için, LayoutKoordinatları.parentKoordinatları, LayoutKoordinatlar.parentLayoutKoordinatörler olarak yeniden adlandırıldı. parentKoordinatör özelliği artık üst değiştiriciye ait LayoutCoordintes öğelerini sunmaktadır. Bu sayede onSizeChanged() ve onGloballyPositioned() (Idfbfd, b/177926591) ile ilgili daha kapsamlı kullanım alanları elde edilir.
- dokununhareket filtresi, çiftehafizasi hareketFiltresi, uzunBasın Hareket Filtresi ve basIndicaitonHareket Filtresi kullanımdan kaldırılmıştır. Bunun yerine, Detfier.clickable'ı ya da Modifier.pointerInput'u tespit etmek için Dokunma Hareketleri işleviyle kullanın. (I6baf9, b/175294473)
- SaveableStateRegistry'nin unregisterProvider'ı 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)
- HatırlatıcıInstanceState(), comeSaveable() 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ı
- Kullanımdan kaldırılan SelectionContainer aşırı yükü kaldırıldı
- (I99c19)
- Compose'un hiyerarşilerde doğrudan WindowManager'a eklenen/kaldırılan testler artık daha kararlı. (Ie81ed, b/175765614)
- Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, geç oluşturulmuş, pencere kapsamlı Recomposer'ları kullanıyor. Yeniden oluşturma ve withFrameNanos tabanlı animasyon onay işaretleri, ana makine Yaşam Döngüsü durdurulurken duraklatılır. (I38e11)
- Recomposer.runningRecomposers artık süreçte devam eden beste durumunu gözlemlemek için küresel bir RecomposerInfo salt okunur StateFlow'u sunuyor. Artık kullanımdan kaldırılmış olan Recomposer.current() için bu API'yi tercih edin. (If8ebe)
- Saver, listSaver(), mapSaver(), autoSaver androidx.compose.runtime.savedinstancestate durumundan androidx.compose.runtime.saveable (I77fe6) konumuna taşındı
- EditCommands, AnnotatedString'i 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)
- Çalışma Süresi ve Süre kaldırıldı. (Ib9bf4, b/177420019)
- CompositionData.asTree() ve ilgili API'ler ayrı kullanıcı arayüzü-veri modülüne taşındı ve deneysel (Ic95b8) olarak işaretlendi.
- RounderCornerShape, CutCornerShape ve CornerBasedShape ile ilgili parametreler, şeklin rtl yönünde otomatik yansıtmasını desteklemek için sol/sağ'dan başlangıç/bitiş olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için MutlakRounderCornerShape ve absoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
Compose derleyici eklentisinin hedeflediği API, beton sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüz artık "type" parametresi kullanmamaktadır.
Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir. Ancak ikili programlara zarar veren bir değişikliktir. (I3b922, b/169406779)
Yanlışlıkla herkese açık StringBuilder.deleteAt işlevini (Id6ed9) kaldırın
Hata Düzeltmeleri
- Görünüm hiyerarşilerine yerleştirilen ve başka bir bestenin alt öğesi olan ComposeView'lar artık üst öğelerinin alt bestelerini barındırıyor (I92883)
- ImageBitmap nesnelerini yüklerken kaynak çekilebilir önbelleğini yeniden kullanmak için oluşturma'nın imageFromResource API'si güncellendi. (If3627, b/178751994)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha11
yayınlandı. Sürüm 1.0.0-alpha11 bu kayıtları içerir.
API Değişiklikleri
- WithConstraints, BoxWithConstraints olarak yeniden oluşturulması ve foundation.layout'a taşındı. (I9420b, b/173387208)
- Key.DPadUp kullanımdan kaldırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
- Şu andan itibaren dahili kullanıcı arayüzü. (If8e35)
- Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
- PopupPositionProvider'ı genel koordinatları değil pencereye bağlı koordinatları kullanacak şekilde değiştirir. parentGlobalBounds adını anchorBounds olarak değiştirir ve windowGlobalBounds değerini windowSize: IntSize (I2994a) olarak değiştirir.
- Süre ve Çalışma Süresi, Uzun milisaniyelerle değiştirilir ve bu adım, bu sınıflardaki işaretçi girişinin bağımlılığını ortadan kaldırır. (Ia33b2, b/175142755, b/177420019)
- AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner ile benzer şekilde eklendi (I9a3e8, b/176756365)
- Vektör grafikleri API'si, vektör grafiklerinin köküne uygulanan tonlamanın ayrıştırılmasını desteklemek için güncellendi. (Id9d53, b/177210509)
- Cihazları ayırt etmek için ToolType öğesi PointerInputChange'e eklendi (Iac787, b/175142755)
- AmbientWindowManager, AmbientWindowInfo (I2686a, b/177084714, b/177084983) olarak yeniden adlandırıldı
- Global koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (Iee284)
- Denetleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsKatman eklendi. (I315df)
- FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiş. (I2d898, b/177000821)
- SemanticsPropertyRecipientr.hidden, invisibleToUser olarak yeniden adlandırıldı ve @DeneyselalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, progressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityKayState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, Yatay ScrollAxisRange olarak yeniden adlandırılmıştır. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırılır. (Id3148)
- PointerInputData kaldırıldı ve tüm PointerInputData alanlarını vermek için PointerInputChange ile değiştirildi. Herkese açık API'lerde kullanılmadıkları için PointerInputEvent ve PointerInputEventData verilerini dahili hale getirdi. (Ifff97, b/175142755)
- Güncellenmiş GraphicsLayerScope, dp'nin ham piksellere dönüşümlerini desteklemek için yoğunluğu uygulamaktadır. (Ied528, b/176819695)
- Matris API'si, ana satır sıralamasını takip edecek ve farklı matris temsilleri arasındaki dönüşümlere yardımcı olmak amacıyla dizin sabitleri sağlayarak SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığını dahili olarak eşleştirmek için güncellendi. (I432e6)
- Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
- String.fintPrecedingBreak ve String.fingFollowingBreak öğesini InternalTextApi'ye taşıyın. (I657c4)
- androidx.compose.ui.util.isSurrogatepair herkese açık API'den kaldırıldı. (Ia9494)
- TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı
- TransformedText artık bir veri sınıfı (Ie672a) değil
data class
aşağıdaki sınıflardan kaldırıldı:- Satır İçiMetinİçeriği
- Yerel Ayar (I605c7)
- Aşağıdaki sınıflar artık veri sınıfı değildir:
- Ek Açıklamalı Dize
- Paragraf Stili
- Aralık Stili
- Metin Stili
- Yazı TipiAğı
- Metin Dekorasyonu
- MetinGeometrikDönüşüm
- Metin Dizini
- MetinDüzeniSonuçları
- MetinLayoutInput (Iaff99)
- VisualTransformation, işlevsel bir arayüz olarak değiştirildi (I3bba4)
- İşlev referans parametresi türü eklendi (I5e1bd)
- Dönüştürülen sınırları InspectorNode'a (Ice42f) ekleyin
Hata Düzeltmeleri
- onCommit, onDispose ve onActive desteği sonlandırıldı ve yerini SideEffect ve DisposableEffect API'leri (If760e) aldı.
Font/FontFamily/Yazı Tipi için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Küçük ilk harfle kullanımdan kaldırılan önceki fabrika işlevleri
- Yeni fabrika işlevleri, alt sınıflar yerine FontFamily döndürürken
- Alt sınıfların kurucuları, yalnızca fabrika işlevleri aracılığıyla oluşturulabilecek şekilde gizlendi.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
ComposeTestRule
kapsamını genişleten veComposeTestRule
öğesinden kaldırılmış olansetContent
öğesini tanımlayanComposeContentTestRule
kullanıma sunuldu.ComposeTestRule
döndüren ve sizin için Etkinlik başlatmayan bir fabrika yöntemi (createEmptyComposeRule()
) eklendi. Testiniz sırasında Etkinliğinizi başlatmak istediğinizde, ör.ActivityScenario.launch
kullanarak (I9d782, b/174472899) bunu kullanın.canlandırmaAsState artık animasyonluFooAsState oldu. Burada Foo, animasyonlu değişkenin türüdür. Ör. Kayma, Dp, Offset vb. (Ie7e25)
Resim ve Simge'ye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetleriyle (I2ac4c) ilgili açıklama sağlamak için kullanılır
DisplaySize, kaçınılması gerektiği için bu etiketi kaldırın. Genellikle, en azından onRoot() boyutunu veya pencere boyutunu kullanmak daha iyidir. (I62db4)
OnSizeChanged, düzenin içeriğinin boyutunu bildiriyordu. Şimdi boyutu, değiştirici zincirindeki konumunda raporluyor. (I36b78, b/177562900)
emit() API ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler aynıdır. Compose'un (I4137b) adlandırma kurallarına uyması için farklı bir adları vardır.
TextFieldValue, AnnotatedString'i 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.
- EditBuffer oluşturucu parametrelerinden
initial
kaldırıldı. (I326d5)
- EditBuffer oluşturucu parametrelerinden
inverify ve engagementReference() işlevleri artık sırasıyla currentRecomposeScope ve remindersCompositionReference koduyla kullanımdan kaldırılmıştır. (I583a8)
AnnotatedString, kotlin.CharSequence değerinden genişletilecek şekilde değiştirildi. Bu nedenle, uzunluk ve alt Sekans artık örnek işlevleri oldu ve uzantı işlevleri kaldırıldı. (Iaf429)
ThankObserver, CompositionLifecycleObserver'ın yerini almıştır. CompositionLifecycleObserver için de destek sonlandırılmıştır.
RememberObserver
,CompositionLifecycleObserver
yerine değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler kullanır. Yalnızca bir kez hatırlanan ve önerilen uygulama olmaya devam eden nesneler için mekanik olarak yeni API'ye geçiş yapılabilir. Bununla birlikte, bir referans bir bestede birden çok kez hatırlandıysa her bir referans içinonRemembered
çağrılır. Burada,onEnter
yalnızca bir kez çağrılır. Nesne alt kompozisyonlarda kullanılmışsaonEnter
birden çok kez çağrıldı (örneğin,WithConstraints
veScaffold
) tekonEnter
çağrısı garantisini güvenilmez hale getiriyor veRememberObserver
için kaldırıldı.RememberObserver
,RememberObserver
örneğininremember
öğesine iletilen geri çağırmadan döndürülmesi durumunda çağrılanonAbandoned
ifadesini ekler. Ancak bu işlev, bileşim durumunda hatırlanmaz ve bu nedenle, hiçbir zamanonRemembered
çağrılmaz. Bu durum, beste tamamlanmadan önce bir istisnanın sonlandırılması veya bestenin artık güncel olmadığı ya da başka bir şekilde gerekli olmaması nedeniyle bestenin çıkarılması durumunda meydana gelebilir. Yukarıdaki tek referans önerisini izleyenRememberObserver
örneğinin hemonForgotten
hem deonAbandoned
harici bir kaynağı izlemesi, kaynağa artık ihtiyaç duyulmadığını gösterir. Nesne,onRemembered
çağrılırsa çağrılmayacağı içinonAbandoned
, başlatılan işleri veyaonRemembered
içinde ayrılan kaynakları izliyorsa yoksayılabilir. (I02c36)2 veya daha fazla Metin Birimi arasındaki aritmetik işlem kullanımdan kaldırıldı. Int.sp ve Int.em gibi uzantı işlevleri yerine kullanımdan kaldırılan TextUnit.Sp ve TextUnit.Em işlevleri. (I48369)
Açıkça beyan edilmiş herkese açık kaynaklar bulunmayan (ör. Public.xml aracılığıyla) kitaplıklardaki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)
ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz veya çizebildiğimizden, büyük bir kaydırma içeriğiniz olduğunda LazyColumn'u kullanmak, LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımını teşvik etmeye karar verdik. Kullanıcılar yine de geç davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.vertical ülkeler(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 bunları kullanıldıklarında manuel olarak içe aktarmanız gerekir. Şu diziler için yeni uzantı aşırı yüklemeleri:items(items: Array)
veitemsIndexed(Array)
(I803fc, b/175562574)Lütfen ImeAction.NoAction yerine ImeAction.None kullanın
- Lütfen ImeAction.Unspecified (Ie1bcc) yerine ImeAction.Default kullanın
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
TextInputService.onStateUpdated, updateState (Id4853) olarak değiştirildi
TransitionDefinition tabanlı Geçiş 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-alfa10
13 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha10
yayınlandı. Sürüm 1.0.0-alpha10 bu kayıtları içerir.
Çarpıcı Değişim
Dahili derleyici API'sinin yeniden yapılandırılması, bileşim sonucunda oluşturulan düğümlerde tüm
@Composable
işlevleri tamamlandıktan sonra değişikliklerin "değişiklikleri uygula" bileşimi aşamasında toplu olarak işlenmesini sağlar.Bu, değişiklikler uygulanana kadar dahili ve deneysel API'lerde artık düğümler mevcut olmadığı için uygulama kodunu etkileyebilecek olumsuz bir davranış değişikliğidir. Bu, genellikle kodun yürütülmesini, düğümler oluşturulup başlatılıncaya kadar ertelemek için bir
SideEffect
composable'ında bu tür bağımlılıklarla kod yuvarlanarak çözülebilir. (I018da)
API Değişiklikleri
- Özel bir odak geçiş sırası belirtmek için kullanılabilecek Modifier.focusOrder() (I90cf5, b/175899543, b/170155556, b/170155429) eklendi
- Kullanımdan kaldırılan domainObserver'ın bunun yerine onFocusChanged veya onFocusEvent kullanımı kaldırıldı (I3ecb9, b/175156387)
- Editİşlemler API'sında Yapılan Değişiklikler
- EditOperation'ın adı, EditCommand olarak değiştirildi
- EditOperation somut uygulamaları için Komut son eki eklendi
- EditCommand artık veri sınıfı değil
- EditProcess.process işlevi, applyTo olarak yeniden adlandırıldı
- InputEventListener, InputEventCallback olarak yeniden adlandırıldı
- (I0a366)
- Kullanılmayan PxSquared, PxCubed, PxInverse kaldırıldı. Size.center(), özellik olarak değiştirildi. (I973f7)
- ui-test modülü artık test edilen kullanıcı arayüzleri için Yeniden Oluşturucuların oluşturulmasını yapılandırabilecek (Ibebd8)
- Değiştirilmiş Hız, bileşen parçaları ve matematiksel işlemlere sahip olacak şekilde değiştirildi. (Ib0447)
@ExperimentalTesting
öğesinin adı, benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olacak şekilde@ExperimentalTestApi
olarak değiştirildi- Color.useOrElse(), Color.takeOrElse() (Ifdcf5) olarak yeniden adlandırıldı
- Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Layoutnode sınırları değiştiğinde Sahibine bildirimde bulunmak için bir geri çağırma ekleyin. (I72fd1)
- Belirsiz sabit değeri olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
[Abstract]ComposeView API'lerini genişleterek Compose tabanlı görünümlerin geri dönüştürülmesini sağlayın ve bu görünümleri daha sonra yeniden oluşturmak üzere elden çıkarın. Alt besteler oluşturmak için pencere kapsamlı Recomposer ve CompositionReferences öğelerini yüklemek ve keşfetmek için API'ler ekleyin.
[Abstract]ComposeViews öğelerinin beste yok etme stratejisini yapılandırmak için ViewCompositionStrategy'yi ekleyin. Varsayılan davranış pencere ayırmada yok etme şeklindedir. (I860ab)
Any.identityHashCode() herkese açık API (I025d7) kaldırıldı
Bunun yerine doğrudan String.format kullanılması yerine toStringAsFixed API'sı kaldırıldı. (Iaba6b)
Temel Strings.kt öğesine geçiş anahtarı ekleyin (I4a5b7, b/172366489)
NativeClass'ı UI modülüne taşıyıp dahili hale getirdim. Uygulamalarda NativeClass'ın güncellenen kullanımları, bunun yerine "is MyClass" kullanılacak şekilde eşittir. (I4f734)
Modifier.focus() ve Modifier.focusRequester() işlevlerin desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() öğelerini kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
Seçim Yöneticisi'ne Seçilebilir güncellemelerin bildirilmesi için SelectionRegistrar.notifySelectableChange kullanıma sunuldu. (I6ff30, b/173215242)
Çeşitli dış çizgi uygulamaları için sınırlayıcı düzeni elde etmek amacıyla Outline.bounds özelliği kullanıma sunuldu. (I16e74, b/175093504)
Kullanımdan Kaldırılmış TestUiDispatcher. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
ImeOptions ve KeyboardOptions artık bir veri sınıfı değil (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ğil
- OffsetMapping kendi dosyasına taşındı
- (I0bdf3)
Position (Konum) DpOffset olarak yeniden adlandırıldı ve getDistance() (Ib2dfd) kaldırıldı
Eğlenceli Dp.isFinite(), val Dp.isFinite (I50e00) olarak değiştirildi
Hata Düzeltmeleri
- Recomposer artık geçerli durumunun bir Akışını sunarak etkinliğinin ve ilişkili efektlerin izlenmesine olanak tanıyor. (Ifb2b9)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden (I87c57, b/173086397) erişilebilir.
animate()
artıkT
yerineState<T>
döndürenanimateAsState()
ile değiştiriliyor. Geçersiz kılma kapsamı State değerinin okunduğu yere daraltılabileceği için bu daha iyi performans sağlar. (Ib179e)- Semantics rol API'sini ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak Rol ekleyin. Modifier.progressSemantics değiştirildi, böylece Kaydırma Çubuğu da kullanılabilir. (I216cd)
- Animasyonları arasında karşılıklı dışlama sağlayan yeni eş yordam tabanlı API
Animatable
.- Çok boyutlu azalma animasyonunu destekleyecek yeni DecayAnimationSpec özelliği
- (I820f2, b/168014930)
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha09
yayınlandı. Sürüm 1.0.0-alpha09 bu kayıtları içerir.
API Değişiklikleri
- Kullanımdan kaldırılan KeyEvent.Alt artık kaldırılmıştır. Bunun yerine KeyEvent.isAlt Pressed kullanın. (Idd695)
- Modifier.keyInputFilter ve Modifier.previewKeyInputFilter kullanımdan kaldırıldı
- Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent öğelerini kullanın (I30f17, b/168511863, b/168511484)
- İşaretçi giriş API'lerinin askıya alınması için HandlePointerInputScope, AwaitPointerEventScope vehandlePointerInput() adı awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)
- Otomatik Doldurma API'si artık deneysel bir API olup etkinleştirilmesini gerektirir (I0a1ec)
- FocuSRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
- AccessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
- Özel etkinlikler, askıya alma işaretçi giriş API'sinden kaldırıldı (Ia54d5, b/175142755)
- SelectionRegistrar'da birkaç yeni işlev kullanılmaya başlandı ve ayrıca, onPositionChange adını NotificationPositionChange olarak değiştirdi. (Ifbaf7)
- Dahili olarak işaretlediğimiz LayoutNode'un diğer üyeleri (I443c6)
- LayoutInfo, araçlar ve testler tarafından kullanılmak üzere kullanıma sunulmuştur (I9b190)
- AndroidSahibi dahili (Ibcad0, b/170296980)
- ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
- İç içe kaydırma sistemi eklendi. Daha fazla ayrıntı için Modifier.nested Scroll'a bakın (I36e15, b/162408885)
- subcomposeInto(LayoutNode) dahili hale getirildi (Id724a)
Applier
arayüzü, ağaç oluşturmayı yukarıdan aşağı değil, aşağıdan yukarıya basitleştirecek şekilde değiştirildi.insert()
yöntemi,insertTopDown()
olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()
) eklendi.Uygulama geliştiricileri, düzenlediği ağaca düğüm ekleme işlemi için hangisinin daha iyi performans gösterdiğine bağlı olarak
insertTopDown()
veyainsertBottomUp()
seçeneklerini kullanır.LayoutNode
veView
gibi bazı ağaçlar, aşağıdan yukarıya doğru inşa etmekte yukarıdan aşağıya doğru çok daha etkilidir. Bu değişiklikten önce, performans için aşağıdan yukarıya yapı gerektiren her uygulamaya kopyalanan, aşağıdan yukarıya doğru bir ekleme yığını gerekiyordu. Bu değişiklikle birlikte birApplier
, ağacı aşağıdan yukarıya oluşturmak içininsertBottomUp()
öğesini, yukarıdan aşağıya doğru derlemek için deinsertTopDown()
politikasını geçersiz kılar. (Icbdc2)AndroidDialogProperties'e dismissOnBack Press ve dismissOnClickOutside özellikleri eklendi. Bunlar, iletişim kutusunun onDismissRequest lambda'sı çağrılacağı zaman yapılandırmaya olanak tanır. (If5e17)
Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables'dan opak şekilde yüklenen Painter nesnelerini işlemek için boyaterResource API'si eklendi. Tüketiciler artık öğe türünü önceden belirlemek zorunda değil. Resim composable'larında veya boya değiştiricilerde kullanılacak bir Painter nesnesi edinmek için bu yöntemi çağırabilirler. (I2c703, b/173818471)
Alt öğelerin anlamlarını temizlemek ve yenilerini ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
ContentDrawScope, DrawScope'u içerecek şekilde ui-graphics modülüne taşındı. (Iee043, b/173832789)
Çizgili şekillere farklı desenler sağlamak için PathEffect grafik API'si kullanıma sunuldu. NativePathEffect kullanımı, beklenen/gerçek PathEffect uygulaması için kullanımdan kaldırıldı. (I5e976, b/171072166)
Espresso'nun boşta kalan 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 genel kaydı ve ComposeIdlingResource'daki genel (un) saat kaydı kaldırıldı (I32660)
Hata Düzeltmeleri
- Ofset değiştiricilerindeki lambda'lar artık Kayma yerine IntOffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
Genel API'den SlotTable, SlotReader ve SlotWriter kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık oluşturma modülünün dahilindedirler.
Kullanıcı arayüzü araçları API'sinin kompozisyon bilgilerini çıkarmak için kullanılması amacıyla CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak kullanıcı arayüzü araçları API'sinin yorumladığı ham bilgileri sağladığı için (I31a9c) kullanıcı arayüzü araçları API'sinin dışında kullanılması amaçlanmamıştır.
ShaderBrush, çizim ortamının bilgileri hazırlanırken gölgelendirici örneği oluşturmak için yeniden düzenlendi. Bu, özel DrawModifier uygulamalarını uygulamak zorunda kalmadan composable'ın tüm çizim sınırlarını kaplayan renk geçişlerini tanımlamak için yararlıdır.
Bir Gradyan nesnesinde fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed" değerlerini kullanımdan kaldırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)
Desteği sonlandırılan BuildCompat.isAtLeastR (Idb37e)
AnnotatedString öğesi oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Kullanımdan kaldırılan captiondString oluşturucu işlevi. (Idfe0b)
Değerleri radyana dönüştürmek için Float ve Double'daki uzantı yöntemleri kaldırıldı. PathParser uygulamasında kullanıldığı tek yer olan özel bir işleve taşındı (I25f52)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.
API Değişiklikleri
- Anlamsal ekleme işlemi Kapat (I2b706)
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Kullanımdan kaldırılan API'lerden mevcut API'lere geçişe yardımcı olacak typealiases/helper yöntemlerini eklemek için DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
- Değiştirme. (I0bd29, b/173834241)
- Özel düzenlerin ve düzen değiştiricilerin, bir çocuğa çizimleri için bir grafik katmanı ekleyerek yerleştirmelerine olanak tanıyan yeni Placeable.placeWithLayer() ve Placeable.placeAllowedWithKatman() yöntemleri eklendi. Öncelikle yeniden çizimleri optimize edebildiğimiz için, bir çocuğu taşımamız gerektiğinde içeriğini yeniden çizmemiz gerekmez. İkinci olarak, bir çocuk için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831)
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- 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
adıModifier.shadow
olarak değiştirildi (I264ca, b/173208140)
- PointerInputData'nın çalışma süresi ve konum alanlarını boş değerli hale getirdi. (Id468a)
- MaterialTheme, seçim tutma yerleri ve seçim arka planı için artık doğru renkleri ayarlıyor. Materyal dışı uygulamalar, seçim için kullanılan renkleri özelleştirmek için AmbientTextSelectionColors öğelerini manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TransformOrigin API,
pivotFractionX
vepivotFractionY
öğelerinicomponent1
vecomponent2
olarak döndürecek şekilde yapısal bir söz dizimine sahip olacak şekilde güncellendi (If43c4, b/173586560) - Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla, composable lambda parametresi adlandırma ve konumu için lint denetimi eklendi.
Ayrıca, hata analizi ve yönlendirmelerine uygun şekilde, sonraki lambda'nın adı olarak
children
kullanan bazı API'lericontent
konumuna taşıdı. (Iec48e) - Bir tuş etkinliği gönderildiğinde Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol eden API eklendi. (I50ed9)
- Yeni bir
Modifier.drawLayer()
aşırı yüklemesi eklendi. Katman parametrelerini durum değişikliği gerçekleştiğinde yeniden birleştirme ve geçişten kaçınmaya izin verecek şekilde tanımladığınız yeni GraphicsLayerScope'ta bir lambda bloğu kullanılır. DrawLayerModifier, artık mantığını LayoutModifier'ın Placeable.placeWithlayer() yöntemine (I15e9f, b/173030831) taşımaya hazırdır. - Kullanımdan kaldırılmış Ambiyanslar ve Compose API kurallarına uyarak son eki
Ambient
olan Ambiyans sonekleri, ön ekinde Ambiyans olan yeni özelliklerle değiştirildi. (I33440) androidx.compose.ui.text.Typeface
,androidx.compose.ui.text.font.Typeface
hedefine (Ic2b81) taşındı- Anlamsal bağımsız değişken birleştirmeTümDescendants,mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Yeni sürükleme hareketi algılayıcı, yön kilitleme de dahil olmak üzere işaretçi giriş API'sini askıya alıyor. (Icef25)
- VectorAsset adı ImageVector olarak değiştirildi. VectorAsset adı, API yönergelerine göre iç ImageVector sınıfı olmak üzere VectorAsset olarak değiştirildi. Uyumluluk için ImageVector.Builder bağlantısına VectorAssetBuilder öğesinin typealias özelliği eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- YerleşimKapsam'ın Place() öğesine zIndex parametresini ekleyin. Böylece, Modifier.zIndex() artık bir LayoutModifier olarak çalışır ve herhangi bir özel düzenin, doğrudan yerleşim bloğunda (I711f7, b/171493718) alt öğeleri için zIndexes değerini ayarlayabilirsiniz.
- Temel semantik özellikleri kullanıcı arayüzüne taşındı (I6f05c)
- Yer (yer (Ofset)) ve yergöreli(Ofset) seçimini kaldırın. Bunun yerine, aşırı yüklemeleri tam ofsetlerle kullanın (I4c5e7)
- Daha önce kullanımdan kaldırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı, Modifier.onGloballyPositioned'ı kullanın. Modifier.onDraw kaldırıldı. Lütfen Modifier.onDrawBehind'i kullanın. Modifier.plus kaldırıldı, Modifier.then'i kullanın. Renk.Ayarlanmadı kaldırıldı, Renk.Belirtilmemiş seçeneğini kullanın. PxBounds sınıfı kaldırılmış, bunun yerine Rect kullanın. (Ie9d02, b/172562222)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
- Yeni askıya alma işaretçisi girişi kullanılarak dokunma, iki kez dokunma, uzun basma ve basma bildirimi için hareket dedektörü eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmaları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ırmayı algılamaya yönelik yardımcılar da dahil olmak üzere yeni çok noktalı hareket algılayıcı. (Ic459d)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
Eş yordam tabanlı kaydırma API'leri ekleyin:
LazyListState.snapToItem ve LazyListState.smoothScrollBy öğesinin yanı sıra kaydırma denetimi için alt düzey API'leri ekler. Bu API'ler, dönmeden önce kaydırmanın bitmesini bekleyen kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)
Modifier.focusable'ın temele eklenmesi gerekiyor. Bir bileşene doğru anlam ve erişilebilirlikle odaklanılabilir davranış eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)
AnimationClockTestRule'da,
clock
öğesine yetki verilebilecek yöntem ve özelliklerin varsayılan uygulamalarını sağlayın (I7ea3d, b/173399709)AndroidComposeTestRule artık özel etkinlik başlatıcıları (Ib8288, b/153623653, b/154135019) kabul edebilir
TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. Bunun yerine, TextLayoutResult.getLineEnd'ın artık yeni bir visibleEnd parametresi var. (I73282)
TextFieldValue API güncellendi
- TextFieldValue.composition salt okunur yapıldı
- geçersiz seçim aralığı için atılan istisna kaldırıldı (I4a675, b/172239032)
Metin okuma motoru için TtsAnnotation desteği. (I54cc6)
Eş yordamlarda animasyon çalıştırmak için yeni API'ler (Ied662)
Hata Düzeltmeleri
- Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
- OffPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık State yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
- TextInputService#onStateUpdated değerine (I3e8f5, b/172239032, b/171860947) resetInput parametresi eklendi
- Oluşturulabilir işlevlere Değiştirici parametreleri için hata analizi kontrolü eklendi. Bu hata analizi denetimi, Oluşturma yönergeleriyle tutarlılık sağlamak için parametrenin adlandırmasını, döndürme türünü, varsayılan değerini ve sırasını kontrol eder. (If493b)
- TestAnimationClock'ın MonotonicFrameClock tarafından çalıştırılmasına izin veren geçici bir seçenek eklendi (I1403b, b/173402197)
- Android Yazı Tipi sarmalayıcı eklendi. Bir Android Yazı Tipini
typeface
işleviyle (ör.typeface(Typeface.DEFAULT)
) yükleyebilirsiniz.typefaceFromFontFamily()
alanı datypeface()
olarak yeniden adlandırıldı (I52ab7) - Değiştirici'nin fabrika işlevlerinin, Modifier'da uzantı olarak tanımlandığını, dolayısıyla bunların sorunsuz bir şekilde birbirine bağlanabilmesini sağlayan lint denetimi eklendi. (I07981)
- Eski kullanıcı arayüzü testi modülünü ve saplamalarını kaldırın (I3a7cb)
- Recomposer artık EmbeddingContext kabul etmiyor. Gerekli planlama bağımlılıkları, efektCoroutineContext'ten alınır. FrameManager desteği sonlandırıldı; platform entegrasyonları kendi genel anlık görüntü işlemelerini başlatmalıdır. (I02369)
- Erişilebilirlik düğümüne stil bilgisi iletin. (If5e8d)
- TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmedi. (Ifce19)
Kullanıcı Arayüzü Sürümü 1.0.0-alpha07 Oluşturun
11 Kasım 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.
API Değişiklikleri
- Eşit olmayan ölçeklendirme kullanım alanlarını desteklemek amacıyla, birbirinden bağımsız yatay ve dikey eksenler için ölçek faktörlerini temsil eden ScaleFactor satır içi sınıfı kullanıma sunuldu.
- ContentScale'e "computeScaleFactor" yöntemi eklendi
- Hedefi tam olarak kaplaması için src sınırlarını genişletmek amacıyla, tek tip olmayan ölçeklendirme gerçekleştirmek için ContentScale.FillBounds eklendi.
- Boyut parametreleriyle ScaleFactor parametrelerini hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- Hizalamalar oluşturmaya ilişkin BiasHizalama ve BiasMutlakHizalama fabrikaları eklendi. (Iac836, b/169406772)
- Geliştiricinin odağı tamamen netleştirmesine izin verin. (I90372)
- Oluşturma sayfasının içindeki Görünümler için yükseltilerin ç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'yi oluşturdu. (I4fc3a, b/171955269)
- Katman API'lerinde 3D dönüşümleri döndürmeX/dönüştürme özelliğini tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
- Seçim kapsayıcısı, geri çağırma olmadan eklendi (Ibfadb)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn (I708ad) eklenmeden kullanılabilir
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
- Kafa karıştırıcı olduğundandrawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
- MeasureResult, MeasureScope dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli simgeler androidx.compose.ui'den androidx.compose.layout.ui konumuna taşındı. (I0fa98, b/170475424)
- Kullanımdan Kaldırılan FocusState2 (I686cb, b/168686446) kaldırıldı
- ZIndexModifier artık dahili (I1808b, b/171493718)
- Gereksiz kutulamayı önlemek için Boyut parametrelerinde lerp yönteminin döndürme türü, boş olmayan bir Boyut döndürülecek şekilde güncellendi. (Ib0044)
- kotlinx-coroutines-test'in runBlockTest (I4402f) kullanılarak beklemedeki beste çerçeve etkinlikleri için Compose'un MonotonicFrameClock hizmetinin kullanıldığı test kodu için TestMonotonicFrameClock eklendi
- ActionsScope.localToGlobal (I15299, b/171462785) kaldırıldı
onAllNodesWithSubstring
bulucu eklendi (I81dd7, b/171462889)- androidx.ui.test modülü kullanımdan kaldırıldı. Lütfen şu platforma geçiş yapın: androidx.compose.ui.test ve androidx.compose.ui.test.junit4 (I452e8)
Hata Düzeltmeleri
- createToBitmap, captureToImage'a taşındı. (I86385)
- foundation.Text desteği sonlandırıldı ve text.Text ile değiştirildi. Temadaki değerleri kullanmayan, temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
- TextFields öğesini KlavyeOptions'ı kabul edecek şekilde güncelleyin (Ida7f3)
- KlavyeSeçenekleri ImeOptions olarak yeniden adlandırın (I82f36)
- KlavyeType ve ImeAction, KlavyeOptions'a taşındı (I910ce)
- ambients'in sağlanmasına bir alternatif olarak allowDefault eklendi ve yalnızca önceden bir ortam değeri sağlanmadığında ayarlanacak ambiyans değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField politikasını kullanın. (I896eb)
- ui-test-junit4 modülünü tanıtın (Ib91f8)
relativePaddingFrom
,paddingFrom
olarak yeniden adlandırıldı. Düzen sınırlarından metin referans çizgilerine olan mesafeleri belirtmeyi kolaylaştırmak içinpaddingFromBaseline
değiştiricisi eklendi. (I0440a, b/170633813)- LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak amacıyla LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek amacıyla, konu parametresi olmayan LaunchedEfektine izin verilmez. (Ifd3d4)
- Yapılandırma güncellendiğinde yeniden oluşturulan composable kaynakları kullanıma sunuldu. (I6387c, b/167352819)
- Recomposer artık yapım aşamasında CoroutineContext gerektirir (Ic4610)
- Birden çok
Modifier.zIndex()
uygulandığındazIndex
değerlerini toplayın. Daha önce ilki kazanıyordu. (Ic514c, b/170623936) - Dahili SlotTable uygulamasında yapılan ve genel API'yi etkilememesi gereken değişiklikler. (If9828)
- Eklenen Klavye otomatik düzeltme IME Seçeneği (I57b8d)
- androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
- KlavyeOptions.toImeOptions herkese açık API'den kaldırıldı. (Ic2e45)
Harici Katkı
- Dahili yapı androidx.compose.ui:ui-text-android (Ib93fa) 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ınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.
API Değişiklikleri
- Recomposer artık bir CompositionReference ve geçerli bir beste üst öğesi. Açık Recomposer artık daha az yerde gerekli. (I4036f)
- Bir composable API'nin, verileri kompozisyonlar genelinde tutmak için dahili olarak "hatırla" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı silmeden VectorPainter özelliğini uygulayın. (Ifda43)
- Modifier.drawWithCache API'si, uygulamalara çizim komutlarını yeniden sıralama olanağı sağlamak amacıyla, ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak gösterecek şekilde güncellendi. Bu, karşılık gelen harmanlama modu algoritmasının doğru bir şekilde uygulanabilmesi için ilk olarak içerik piksellerinin oluşturulması gereken, karıştırma/renklendirme kullanım durumlarında faydalıdır. (Ie7ec8)
- SimpleContainer'ı PopupTestUtils.kt'ye (I78c57) taşıyın
- ConsumedData artık bir veri sınıfı değil. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 sayfasına bakın (I1737f)
- Rtl Tutma Yeri Konumunu Düzeltin. (I6e1e0)
- DrawScope ve ContentDrawScope soyut sınıflar yerine arayüzler olarak yeniden düzenlendi
- DrawScope'un CanvasDrawScope uygulamasını oluşturuldu
- DrawScope'un yerine CanvasScope'u kullanmak için yeniden düzenleme
- DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu
- DrawScope'taki kullanımdan kaldırılan yöntemler (I56f5e)
- Zarar veren değişiklik: İşaretçi etkinliklerinde değiştirilebilecek tek değer tüketim verileri olduğu için
PointerInputFilter.onPointerEvent(...)
öğesinden döndürülen değer kaldırıldı.PointerInputFilter.onPointerEvent(...)
öğesinden veri döndürmek yerine, artık aktarılan PointerEvents tüketim verilerini değiştirebilirsiniz. (I6acd0) - MeasureScope ve IntrinsicMeasureScope arayüzleri oluşturuldu. (I1a087, b/170461665)
- Hizalama Hattı için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
- Oluşturulan değiştiriciye denetçi bilgilerini belirtme olanağı ekleyin (Idee08, b/163494569)
- Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
- DrawTransform.rotate, belgelerle eşleştirmek için center'ın varsayılan pivot parametresini alacak şekilde güncellendi.
- DrawScope.rotateRad, diğer dönüştürme yöntemleriyle eşleştirmek amacıyla özet noktası için bir Offset tüketecek şekilde güncellendi.
- Kullanımdan kaldırılan DrawScope.rotateRad aşırı yüklemesi, pivotun x ve y koordinatı için kayan nokta.
- (Iffcbb, b/170434992)
Hata Düzeltmeleri
- EksikGetterMatchingBuilder için API lint kontrolü, Androidx için etkinleştirildi (I4bbea, b/138602561)
- Test ekle'yi tıklayın. (I6b8ae)
- ComposeTestRule'da geçişleri etkinleştirin; yanıp sönen imleci etkinleştirmek için ComposeTestRule'daki seçeneği kaldırın. (If0de3)
- Klavyede Büyük Harf Kullanımı IME Seçeneği Eklendi (I8ac38)
- CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
- SimpleContainer'ı PopupTestUtils.kt (I65c3e) hedefine taşıyın
- Compose genelinde nasıl kullanıldığını daha iyi ifade etmek için Radius API'yi CornerRadius olarak yeniden adlandırdı. Belgeler, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
ACTION_DOWN
dışındaki tüm işlemler için onTouchEvent için false değerini döndüren alt Android Görünümlerine MotionEvents'i göndermeye devam edilerek Android birlikte çalışabilirlik işlevi iyileştirildi (I94c5a, b/170320973)- Box, satır içi bir işleve sahip. (Ibce0c, b/155056091)
Harici Katkı
AnnotatedString.capitalize
veAnnotatedString.decapitalize
için farklı yerel ayarları destekleme (I4aa7f)
Sürüm 1.0.0-alpha05
14 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha05
yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.
API Değişiklikleri
- Denetleyici bilgilerini belirtmek için bir DSL ekleme (Ic9a22)
- Uzun Bas'ı Metne Taşıyın. (Iff2bc)
- Deneysel Modifier.pointerInput askıya alma giriş değiştiricisi (Ia77d2)
- Eklenen Kopyalama/Yapıştırma/Kesme erişilebilirlik işlemleri (I6db4f)
- AndroidOwner için herkese açık oluşturucu kaldırıldı (Iacaef)
- Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE değerini devralmaktadır. Bunu açıkça yapılandırmak için ek bir seçenek de eklendi (I64966, b/143778148, b/143778149)
Tüketim verileri artık değişebilir. 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 değerini değiştirir.
Bu, diğer işaretçi verilerinin kullanıcı kodu tarafından düzenlenememesi için PointerEvent verilerini değişken hale getirmek için 2 adımlı işlemin ilk adımıdır. İkinci adım,
List<PointerInputChange>
döndürme türünüPointerInputFilter.onPointerEvent(...)
öğesinden kaldırmaktır. (Id067e)Metin ve Demo Seçimi'ni devre dışı bırakın. (Ie7e97)
onGloballyPositioned bir satır içi işlevi yapıldı (I15830)
OnPositionedModifier, OnGloballyPositionedModifier ve onPositioned() olarak onGloballyPositioned() olarak yeniden adlandırılır. (I587e8, b/169083903)
hasPendingMeasureOrLayout özelliği Sahip'e eklendi ve Sahibin bekleyen düzen çalışması olup olmadığını bildiriyor. (I3d9f8, b/169038599)
Programlı olarak temizleme odağına API eklendi (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)
kaldırıldı. Bunun yerinePointerInputFilter.onPointerEvent(...)
kullanılmalıdır. (I6f04a)Boyut Değişiklikleri
- Size.getFlipped kaldırıldı
- Size.rem kaldırıldı
- Size.truncDiv (Ief44d, b/169790720) kaldırıldı
Satır içi sınıflarda koruyucu değerlerin standartlaştırılması kapsamında, Color.Unset to Color olarak yeniden adlandırıldı.Diğer satır içi sınıflarla tutarlılık için belirtilmedi (I97611, b/169797763)
TextOverflow.None sunuldu. Taşma Yok olduğunda, Metin artık taşmayı işlemeyecek ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
AnnotatedString.Builder.addStringDescription içindeki kapsam parametresi, API tutarlılığı için etiket olarak yeniden adlandırılmaktadır. (I7c8cb)
Hata Düzeltmeleri
- LazyColumn/Row için kaydırma performansı, her kaydırmada alt kompozisyon üzerinde daha az işlem yapılarak iyileştirildi. Kompozisyon sınıfı için yeni hasClicks() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi has Invalidations() (Ib2f32, b/168293643, b/167972292, b/165028371) olarak yeniden adlandırıldı
- Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, Size.Unspecified ve sonlu olmayan Boyutlar ile uyumlu olacak şekilde güncellendi. (I95a7e)
- Özel Düzenler'deki Place() çağrılarının sırası artık alt öğeler için çizim sırasını tanımlıyor (Ibc9f6)
- Erişilebilirlik için AnnotatedString'in SpannableString dönüşümüne destek sağlama. (Ief907)
- Mümkün olduğunda yansıma kullanımını önlemek için eski platformlardaki Android sınıfları için koçaklar eklendi. (Ia1790)
- Düzeltilen hata: Yazılım klavyesi, uygulamanın çeviri yapmasına neden olduysa işaretçi giriş koordinatları yanlış olur. (Ic4cec, b/163077821)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
yayınlandı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Artık geçerli olmadığında düzenin toplanmasına ve gözlem kapsamları çizimine izin vermek için OwnerScope eklendi. (Ic4cf8)
- İçerik düzeni yeniden ölçüldüğünde ve boyut değiştiğinde bir geri çağırma almak için OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
- Uzun tıklama semantik işlemi ekle (I6281b, b/156468846)
- FocusManager gizli hale getirildi. (I7872f)
DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturmak için uygulama güncellendi.
Çeşitli yöntemler için güncellenmiş dokümanlar (Ibd166)
Nesne oluşturulmasını önlemek için TextRange'i satır içi yapın. (Id034b)
PlacementScope#parentWidth ve Placement#parentLayoutDirection artık özel bir düzenin yerleşim bloğundan okunamaz. (Icc1ae, b/168295623)
semantik özelliklerine Accessibility ScrollState ekleyin. (Ifeda9)
Boyut/durum bilgilerine (I376dc) bağlı bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache'i kullanıma sunduk
ParagrafKısıtlamaları kaldırıldı. Genişlik artık doğrudan Paragraf'a aktarılıyor. (Ica712)
Hata Düzeltmeleri
- Birçok Grafik API güncellendi
- Ölçek ve rotasyon dönüşüm API'leri, DrawScope ve DrawTransform'daki x/y koordinatları için ayrı float parametreleri yerine, pivot koordinatı temsil eden tek bir Offset parametresi kullanacak şekilde güncellendi.
- Rect.expandToinclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap belgeleri, eliptik bisiklete ek olarak oval olarak güncellendi
- Satır içi Yarıçap sınıfı için herkese açık oluşturucunun doğrudan çağrılmaması gerektiğini, bunun yerine Yarıçap nesnelerinin işlev kurucuları aracılığıyla örneklendirmesi gerektiğini belirten belgeler eklendi
- topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.translate'in yerini alan Rect.shift desteği sonlandırıldı
- RoundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı.
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
- RoundRect.center, işlev yerine bir özellik olarak değiştirildi
- RoundRect oluşturucusu, x/y yarıçap değerleri için bağımsız parametreler yerine Yarıçap özelliklerini kullanacak şekilde güncellendi
- Kaynağı 0,0 olan Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
- Yarıçapa yıkıcı bir API eklendi
- Çeşitli RoundRect uzantı işlevlerini mülk olacak şekilde taşıdılar.
- (I8f5c7, b/168762961)
- foundation.Box kullanımdan kaldırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
- Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box kullanımdan kaldırılacak ve yerini generate.foundation.layout'ta yeni Box kullanıma sunacaktır. Yeni Box'ın davranışı, birden fazla alt öğeye sahip olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer şekilde davranan önceki Box'tan farklıdır. (I94893, b/167680279)
- Kutu süsleme parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279) kullanın
- Birçok Grafik API güncellendi
- Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için DrawScope API'leri kapsamlı dönüşüm yöntemleriyle güncellendi
- KlipPath dokümanları, yuvarlatılmış dikdörtgen yerine Path'e başvuruda bulunacak şekilde
- KlipPath'de sağ parametreye ilişkin dokümanlardaki aralık sabitlendi
- DrawScope.drawCanvas adınıdrawIntoCanvas olarak yeniden adlandırdı ve boyut parametresini kaldırdı
- inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınırın hepsine aynı içe değer değerini sağlayan ek aşırı yük eklendi.
- Inset yönteminde, inset'in 4 tarafa da uygulanacağını belirten belgeler kaldırıldı
- Rect sınıfıyla ilgili dokümanlar güncellendi
- Rect parametrelerindeki yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
- Rect.join ve Rect.expandToinclude kaldırıldı
- Rect.translate(offset) için aşırı yük oluşturuldu ve Rect.shift kullanımdan kaldırıldı
- (If086a, b/167737376)
- Ek açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @VisibleForTesting öğelerini dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
- Varsayılan seçimi devre dışı bırakmak ve beklenmeyen davranışların önüne geçmek için SelectionContainer'ı En Üstten kaldırın. Bunun yerine seçilebilir olması 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ınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.
API Değişiklikleri
- İleri/geri kaydırma anlamlarını kaldır. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
onInvalidate()
,Owner
adlı alandan kaldırıldı --OwnedLayer
herkese açık kullanıcı adı geçersiz kılma işlemi. (Ica72b, b/162061312)Size API'de, Offset parametrelerini kullanan operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu belirsiz ve bu tür işlemler için beklenmedik bir sonuçtur. Ör. boyut - göreli konum bir ofset mi, yoksa farklılığa sahip bir boyut sonucu mu döndürmeli?
Ayrıca, Beden sınıfında desteği sonlandırılmış yöntemler de kaldırıldı. (Iec902, b/166514214)
Hata Düzeltmeleri
- Bazen yanlış çizilen LazyColumn öğeleri için düzeltme. Bu da bazı durumlarda kilitlenmelere neden oluyordu. (Ibcf17, b/163066980, b/165921895)
- Bunu kullanan DpConstraints ve API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
konumundanandroidx.ui.test
konumuna taşındı (Idef08, b/164060572)- Yer çekimi kullanımları tutarlı bir şekilde, düzen API'leriyle uyumlu hale gelecek şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut genel yöntemler kullanımdan kaldırılacağı için onNode ve ComposeTestRule'a 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ınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- düzen düğümü sınırları değiştiğinde bunu Sahibine bildirmek için geri çağırmayı kaldırın. (If654e, b/166106882)
- Vektör grafik yollarında dolgu türü parametreleri için destek eklendi. Böylece, çift tek veya Sıfır Olmayan yol doldurma kurallarına göre şekil kesimlerini destekleyebilirsiniz. (I43dd2)
- Çalışma süresi ve Hız artık satır içi sınıflardır (I48f4a)
- Süre artık bir satır içi sınıftır (I565eb)
- Layoutnode sınırları değiştiğinde Sahibine bildirimde bulunmak için bir geri çağırma ekleyin. (Ic40b3)
Ofset ve yarıçap özelliğine sahip Dikdörtgen işlevi oluşturucunun, Dikdörtgeni sol, üst, sağ, alt yerine sol, sağ, üst, alt düzeninde oluşturması sorunu düzeltildi.
İşlev oluşturucularının lehine Rect'teki kullanımdan kaldırılan tamamlayıcı yöntemler kaldırıldı.
Rect.kt'deki yöntemleri doğrulamak için testler eklendi (I08460, b/165822356)
Hata Düzeltmeleri
- Değiştirilebilen bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
- Matrix4, Matris ile değiştirildi. Vektörmath paketinin diğer tüm kısımları kaldırıldı. (Ibd665, b/160140398)
composable işlevler için çağrı kuralı değişti. Bu, zarar veren bir ikili değişimdir. Tüm kitaplıklar, oluşturma derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.
Değişen tek API'ler açık bir etkinleştirmeye sahip derleyici API'leri olduğundan bu değişiklik kaynak düzeyinde zarar veren bir değişiklik oluşturmaz. (I7afd2, b/158123185)
PointerInputFilter'e dağıtım yapmak, PointerInputFilter'in eşzamanlı olarak kaldırılmasına neden olduğunda oluşabilecek kilitlenme sorunu düzeltildi. (I58f25)
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev17
yayınlandı. 0.1.0-dev17 sürümü bu kayıtları içerir.
API Değişiklikleri
emitView
desteği sonlandırıldı. Compose içinde Görünümler yayınlamak için mümkünse bunun yerineAndroidView
kullanın. Görünüm ve Görünüm Gruplarının doğrudan oluşturulmasının, bunlar bile oluşturma ağacında bırakılmadığı sürece gelecekte desteklenmeyeceğini unutmayın. Bu işlem AndroidView kullanılarak yapılabilir. (I29b1e, b/163871221)FocusState2
kullanımdan kaldırıldı ve yerineFocusState
(Ia8b79, b/160822876, b/160923332)- Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
- Özel Emit'ler artık bir veya daha fazla ayarlayıcının emit'ten bağımsız olarak atlanıp yeniden derlenebileceğini bildirebiliyor. (İbbd13)
Oluşturma için aynı nesne örneği kullanıldığından 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 çizim yapmak üzere VectorPainter için mutableStateOf flag'i eklendi.
VectorBileşen örneği, kompozisyonlarda tekrar kullanıldığı için VectorPainter'ın bir parçası olacak şekilde yeniden düzenlendi.
GroupComponent ve PathBileşen'i ad alanları değişebilir olacak şekilde güncellendi (Ieae45, b/151378808)
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine alt düzendeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)Başlangıç, satır içi sınıf (Iaec70) haline geldi
Seçim Container'ına bir değiştirici parametre eklendi (I4aada, b/161487952)
Kullanımdan kaldırılan FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) kaldırıldı
mergePolicy
lambda,SemanticsPropertyKey
koleksiyonuna eklendi. Bu, birleştirmeAllDescendants semantik birleştirmesi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten varsa üst değeri, aksi halde alt değeri kullanmaktır. (Iaf6c4, b/161979921)Sınırlamalar artık satır içi bir sınıf (I88736) oldu
Ortak odak mantığını AndroidComposeView'un dışına taşıyan FocusManager eklendi (I528ef, b/161487952, b/162206799)
Alfa sürümü için PointerEventPass adları güncellendi. (Ifda6f)
IntOffset artık bir satır içi sınıftır (Iac0bf)
IntSize artık bir satır içi 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ç olarakPlacementScope.place()
yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmaz. Dilerseniz bunun yerinePlacementScope.placeRelative()
politikasını kullanabilirsiniz. (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 hale getirmedi. Gelecekte herkese açık hale getirilecektir. (I32ab1)
İşaretçi giriş kodunun yeniden düzenlenen düzeni yeniden düzenlendi. (Ie3f45)
Rect'in lehine kullanımdan kaldırılan PxBounds PxBound'ların tüm kullanımları dikdörtgen biçiminde güncellendi ve taşıma işlemine yardımcı olmak için uygun kullanımdan kaldırma/değiştirme ek açıklamaları eklendi. (I37038, b/162627058)
Kullanımdan Kaldırılan KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)
KeyEvent, belirtilen anahtar ve meta anahtar durumu kombinasyonu (If3afc) tarafından oluşturulan unicode karakterini almak için kullanılabilecek bir unicode özelliğine sahiptir.
Büyük olasılıkla değiştirilecek olan DelayUp özel etkinliğini ve ilgili sınıfları, etkin bir API haline getirdi. (I56d6f)
Artık ihtiyaç duyulmayan 2 PointerEventPasses kaldırıldı. (I3dd9d)
Paragraph.paint öğesine color, shadow ve TextDecoration parametrelerini ekleyin. Bu işlev, gereksiz Paragraf yeniden oluşturulmasını önlemek için yararlıdır. (I81689)
Hata Düzeltmeleri
- TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder kullanımdan kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Sınır veri sınıfı, BorderStroke ile değiştirildi (I4257d, b/158160576)
Kullanımdan kaldırılan FrameManager çağrıları kaldırıldı.
Dahili oluşturma API'leri,
mutableStateof()
(I80ba6) gibi durum nesnelerini izlemek için kullanılan ek yük miktarını azaltacak şekilde değiştirildiDikey Kaydırma ve Yatay Kaydırmaer kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Modifier.drawbackground kaldırıldı. Değiştirici.background'ı (I73b0d, b/163019183) kullanma
For döngüsü içinde durumu kaydeden bir şey kullanıldığında kilitlenme. SaveInstanceState()'te aynı anahtara sahip olmaya artık izin veriliyor. UiSavedStateRegistry API'si artık bu yeni gereksinime göre ayarlanmıştır (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)
Artık
state { ... }
composable'ı kullanımdan kaldırılarak yerine açıkremember { mutableStateOf(...) }
çağrısı yapılması gerekiyor. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkisi içinby mutableStateOf()
kalıbıyla eşleşir. (Ia5727)RRect, oluşturma adlandırma kalıplarına daha iyi sığması için RoundRect olarak yeniden adlandırıldı RRect'e ve kullanımdan kaldırılan RRect işlev kurucularına (I5d325) benzer işlev kurucuları oluşturuldu
Sürüm 0.1.0-dev16
5 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev16
yayınlandı. 0.1.0-dev16 sürümü bu kayıtları içerir.
API Değişiklikleri
- OnChildPositioned kullanımdan kaldırıldı. Bunun yerine alt öğede OnPositioned'ı kullanın. (I87f95, b/162109766)
- setViewContent desteği sonlandırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
- ViewBinding'e dayalı olarak düzen kaynaklarını şişirmek ve oluşturmak için AndroidViewBinding API'si eklendi. (I081c6)
- KeyEvent2, KeyEvent ile değiştirilmiştir (I2d770, b/162097585)
- Alt donanım anahtarı için destek eklendi (I9036b)
- FocusManager kullanımdan kaldırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() komutunu kullanın. (I74ae4, b/162211322)
- loadVectorResource, trimPath özelliklerini destekler (I808fe)
- İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
- Artık ihtiyaç duyulmayan 2 PointerEventPasses kaldırıldı. (I33ca7)
- PointerInteropModifier uygulandı. Bu özellik, MotionEvents'i alma ve Compose ile bir Android View uygulamasıymış gibi etkileşimde bulunma imkanı sağlar. (Ieb08c)
- Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId kullanın. (Idaa05, b/162023919)
- Sağdan sola desteğine yönelik API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient özelliği eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
- Vektörel grafiklerde yol kırpma desteği (Ie16c9, b/158188351)
- Özel düzen değiştiricinin kolayca oluşturulmasına olanak tanıyan Modifier.layout() eklendi (I73b69, b/161355194)
- Yeni AndroidView API eklendi ve mevcut API'ler kullanımdan kaldırıldı. (I5bcfd)
- Modifier.plus kullanımdan kaldırıldı, bunun yerine Modifier.then kullanın. "Ardından" daha güçlü bir sipariş sinyaline sahiptir. Ayrıca, zinciri bozan ve okunması daha zor olan
Modifier.padding().background() + anotherModifier
yazmayı da yasaklar (Iedd58, b/161529964) - Görünüm hiyerarşisinde Compose içeriğini barındırmak için [Abstract]ComposeView View alt sınıfları ekleyin. (I46357)
Row
veColumn
artık satır içi işlevlerle bunları kullanmanın ek yükünü önemli ölçüde azaltıyor. (I75c10)- SubcomposeLayout eklendi. Alt ağaç bileşimi ölçümü sırasında yalnızca daha sonra kullanılabilen bazı değerleri kullanmak istiyorsak ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan düşük seviyeli bir temel öğedir. Örneğin, SubcomposeLayout kullanılarak WithConstraints uygulanmaz. (I25cc8)
- SemanticsNode'un Compose hiyerarşisinin köküne göre konumunu almak için
SemanticsNode.positionInRoot
eklendi (Icdf26, b/161336532) - MotionEvents, Android'den Oluşturulma'ya ve ardından tekrar Android'e geçti. (I14be8, b/158034713)
- dropdownPop-up kaldırıldı. (I00430)
- Kesilen ekranlarda pop-up konumu sabitlendi. (Idd7dd)
- TextLayoutResult'ı (I9d6e6) almak için erişilebilirlik işlemi ekleyin
- RemeasurementModifier eklendi. Düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Genel olarak, yeniden ölçüm/geçiş otomatik olarak gerçekleştiğinden hiçbir zaman buna ihtiyacınız yoktur ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
- getLineEllipsisOffset/getLineEllipsisCount'u kaldırın. Bunun yerine getLineVisibleEnd/getLineEnd/isLineEllipDimension'ı kullanın. (I85aa2)
- En iyi uygulama nedeni için İşaretler/Ek Açıklamalar ekleyin. (I66b20)
- TextLayoutResult'da daha fazla satır API'sı gösterin. (I79bd2)
- Yerleşik birimleri dönüştürmek için dahili vektör dönüştürücülere artık Foo.VectorConverter, ör. Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273) üzerinden erişilebilir.
Hata Düzeltmeleri
- Genel API düzeltmelerini ele alın (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve IntOffset sınıflarını tutarlı bir API yüzeyine sahip olacak şekilde
- Offset API ile tutarlı olması için IntOffset.Origin adını IntOffset.Zero olarak yeniden adlandırın
- Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için yerelCanvas yöntemi Canvas arayüzünün dışına taşındı.
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş bırakılamamasını sağlamak için saplama BlankCanvas sınıfı oluşturuldu
- ClipOp numaralandırmaları Pascal Kılıfı olarak yeniden adlandırıldı
- Filtre Quality enum'ları Pascal Case olarak yeniden adlandırıldı
- Strokejoin enum'ları, Pascal Case olarak yeniden adlandırıldı
- PointMode sıralamaları Pascal Case olarak yeniden adlandırıldı
- PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
- PathFillType numaralandırmaları Pascal Case olarak yeniden adlandırıldı
- StrokeCap sıralamaları Pascal Case olarak yeniden adlandırıldı
- DrawCache uygulaması, artık lateinit parametrelerini kullanmayacak şekilde güncellendi.
- DrawScope, fillPaint ve stroPaint dahili parametreleri için geç yetkiyi kullanacak şekilde güncellendi
- Daha az ek yük için Box kullanımını önlemek üzere Image composable güncellendi
- Outline sınıfı, @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- Oluşturma bunları zaten işlediğinden eşitlik için gereksiz koşullu denetimleri kaldırmak üzere Vector alt bileşimi güncellendi
- İşlev kurucuları lehine, kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemleri
- @Immutable ve @Stable API'leriyle güncellenmiş Fırça sınıfları ve işlev kurucuları
- VertexMode sıralaması PascalCase olarak güncellendi
- Değiştiyse boyadaki çizgi parametrelerinin üzerine koşullu olarak yazmak için DrawScope selectPaint yöntemi güncellendi
- Boyut güncellendi, böylece yıkıcı API eklendi, UnspecifiedSize yeniden adlandırılıp Belirsiz olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
- API seviyesine bağlı olarak Android çerçevesi BlendModes ve PorterDuff modları arasında doğru eşleme yapmak için yazma BlendMode API tüketimi güncellendi. Kullanılmadan önce BlendMode'un cihazda desteklenip desteklenmediğini belirlemek için bir özellik sorgusu işlevi görmesi için BlendMode#isSupported API kullanıma sunuldu. (I0ef42)
- Lazy listelerinin itemContent parametresi için LazyItemScope eklendi. Üst maksimum boyutu dolduracak değiştiriciler sağlar. Bu da, öğenin görüntü alanını doldurması gerektiğinde kullanım alanını çözer ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() çalışmaz. (İbd3b2, b/162248854)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
kullanın. (Id9b62)LazyColumnItems
,LazyColumnFor
olarak yeniden adlandırıldı.LazyRowItems
,LazyRowFor
(I84f84) olarak yeniden adlandırıldıfoundation.shape.corner
paketi,foundation.share
(I46491, b/161887429) olarak birleştirildiAndroidComposeTestRule
,createAndroidComposeRule
olarak yeniden adlandırıldı. (I70aaf)TextLayoutResult
API'sine daha fazla API eklendi. (Id7e04)- İstenen API'nin en basit şekilde keşfedilip kullanılmasını kolaylaştırmak için
FilledTextField
malzemesinin adıTextField
, temelTextField
malzemesi 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ınlandı. 0.1.0-dev15 sürümü bu kayıtları içerir.
Bağımlılıkları Güncelleme
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıklarınızı yukarıda Bağımlılık bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
- FocusModifier kullanımdan kaldırılmış ve bunun yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver sitesine yapılmıştır. FocusState ve FocusDetailsState desteği, onun yerine FocusState2 (I46919, b/160822875, b/160922136)
- Odak durumu değişikliğini 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)
- Kopyalama, kesme ve yapıştırma işlemlerinin düzgün şekilde gösterilmesi için Araç Çubuğu Menüsü'nü tıklayın. (Id3955)
- Tek değerli anlambilim özellikleri artık bir çağrı stili kullanıyor.
Örneğin, 'semantik { gizlendi = true }' artık şu şekilde yazıldı:
semantics { hidden() }
. (Ic1afd, b/145951226, b/145955412) - FocusModifier'ın yerini alan Modifier.focus eklendi. (Ib852a, b/160924778)
- Metin Alanı Seçimi için Kayan Araç Çubuğu Ekleyin. (Ie8b07)
- Anahtar girişiyle ilgili API için deneysel bir API notu eklendi (I53c0a)
- Odakla ilgili tüm API'ler (I53b24, b/160903352) için deneysel bir API notu eklendi
- FocusDetailsState'in yerini alacak FocusState2 eklendi (I0a3ba, b/160822595)
- Focus API'si için bir @OptIn ek açıklaması olan ExperimentalFocus eklendi. (I1544b, b/160820961)
- Düzendeki tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'si kullanılacak şekilde güncellendi. (I0d8d0, b/159596546)
- Applier artık kompozisyonları atmak için clear() yöntemi gerektiriyor (Ibe697)
- KeyEvent kullanımdan kaldırıldı ve KeyEvent2 (I68730) ile değiştirildi
- Test bulucularına yeni bir isteğe bağlı useUnmergedTree işareti eklendi. (I2ce48)
- LayoutNode deneysel API'sı yapıldı (I4f2e9)
Aşağıdakiler de dahil olmak üzere çeşitli satır içi sınıf türlerine kopyalama yöntemleri eklendi:
- Zaman farkı
- Boyut
- Yarıçap
- Hareket
Dönüşüm Kaynağı
Kullanımdan kaldırılan Size.copy tamamlayıcı nesne yöntemi yöntemi (Ife290, b/159905651)
Pop-up'lar, İletişim Kutuları ve Menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)
TextDirection, resolvedTextDirection (I3ff38) olarak yeniden adlandırıldı
Layout() işlevinin ölçüm bloğundan düzen yönü parametresi kaldırıldı. Bununla birlikte düzen yönü, ölçüm kapsamı nesnesi (Ic7d9d) aracılığıyla geri çağırma içinde kullanılabilir
Seçimi yeniden düzenleme için yeniden düzenleyin. (I420e0)
Tıklanabilir kaldırıldı. Modifier.clickable (I84bdf) dosyasını kullanın
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i kullanın (I15ff0, b/158841414)
Bu değişiklikten önce, bir @Composable işlevi (I5205a, b/158123804) varsa oluşturma derleyici eklentisi, bir @Composable işlevinin içindeki kuruculara yapılan çağrılarda önemsiz bir şekilde engelleniyordu.
Modifier.testTag ile karışıklık olmaması için Modifier.tag'in adı Modifier.layoutId olarak değiştirildi. (I995f0)
Placeable#get(HizalamaSatırı) öğesinden döndürülen hizalama çizgisi tam konumları artık boş değil. Sorgulanan hizalama çizgisi eksikse Hizalama Satırı.Belirtilmemiş döndürülür. (I896c5, b/158134875)
AndroidView composable, değiştirici parametre eklendi. (I48a88, b/158746303)
Semantics() desteği sonlandırıldı. Bunun yerine Modifier.semantics() işlevini kullanın. (I72407, b/158841414)
Etkinlik veya Fragment'taki (I5fdd1) çalıştığına benzer şekilde ViewModel'in oluşturulmasına veya daha önce oluşturulmuş olmasına olanak tanıyan viewModel() composable ekleyin
IntPx kullanımı Int ile değiştirildi. IntPxPosition değeri IntOffset olarak değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Boyutlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxSize yerine Beden sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak gösterilen genişliği ve yüksekliği temsil etmek için uzun bir paket halinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (Ic0191)
Konumlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak temsil edilen x ve y ofsetlerini temsil etmek için uzun bir paket şeklinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmeyi amaçlayan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)
Piksel parametreleri (Id3434) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi
Piksel parametreleri için yalnızca Dp ve temel türlere (I97a5a) dayalı büyük yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi
TestTag artık kullanımdan kaldırıldı. Bunun yerine Modifier.testTag'i kullanın. (If5110, b/157173105)
ParentDataModifier#modifyParentData'nın varsayılan, işlemsiz uygulaması kaldırıldı. Daha önce arayüzün uygulanmaması ile aynıydı. (I0deaa)
Daha önce kullanımdan kaldırılan ScaleFit kaldırılmıştır. Bunun yerine ContentScale'i kullanın. (Ifbc5b)
Piksel parametreleri (I19d02) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi
DropdownMenü bileşeni kullanıcı arayüzüne, Materyal Tasarım menü uygulaması olarak eklendi. (I9bb3d)
Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() öğesini kullanın. (If8044)
Piksel parametreleri (I57bff) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi
Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırılmıştır. (I4cfdc)
Birleştirilmiş CanvasScope uygulamaları artık sadece DrawScope ve ContentDrawScope oluyor. CanvasScope'u DrawScope olarak adlandırıyoruz. DrawScope, Density arayüzünü uygulamak ve ContentDrawScope'ta LayoutDirection'da LayoutDirection'ı Silinmiş DrawScope alt sınıfı sağladı Painter ve PainterModifier artık RTL özelliğini sağlamayacak şekilde güncellendi (DrawScope bunu manuel olarak sağlamadan zaten sunduğu için (I1798e))
DoubleTapMoveFilter artık tekliDokun Hareket Filtresini ağaç genelinde belirsizleştiriyor. (If92b1)
Hizalama API'si güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtmaz) (I38cd3)
DrawLayer değiştiricileri API değiştirildi: OutShape şekil olarak yeniden adlandırıldı ve RectangleShape artık null yapılmıyor
Bunun yerine CanvasScope'u kullanıma sunmak için Tuval sunan daha üst düzey oluşturma API'leri güncellendi. Bu, tüketicilerin kendi Paint nesnelerini koruma ihtiyacını ortadan kaldırır. Hâlâ bir Tuval'e erişmesi gereken tüketiciler, çizim komutu vermek için alttaki Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilirler. (I80afd)
WithConstraints sondaki lambda API'si değiştirildi. Şimdi iki parametre yerine bir alıcı kapsamına sahiptir. Bu alıcı kapsamı, sınırlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlar (I91b9a, b/149979702)
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Kullanımdan kaldırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Layout ve LayoutModifier2'deki içsel ölçüm işlevleri, artık örtülü bir şekilde yayılmış düzen yönüyle intrinsics query API'si sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)
Layout ve LayoutModifier alt öğeleri, farklı bir düzen yönüyle ölçülebilir. (Ibd731)
Aynı üst düzendeki alt öğelerin çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklendi. DrawLayerModifier'daki yükseltme özelliği, shadowElevation olarak yeniden adlandırılır ve artık çizim sırasını kontrol etmez. DrawShadow'un parametre sırası değiştirildi: Yükseklik artık ilk sırada ve şekil, RectangleShape varsayılan olarak ikinci sıradadır. (I20150, b/152417501)
Sahip rolündeki onSizeChange ve onPositionChange kaldırıldı. (I5c718)
IntPx yerine yalnızca Int koşul değerlerini destekleyen Kısıtlamaların bir kopyası olan Constraints2 eklendi. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android gibi piksel olduğu varsayılır.
- Bir süre sonra IntPxSize'ın yerini alacak olan IntSize de eklendi. (I4b43a)
Hizalama, rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)
alignToSiblings artık Yerleştirilebilir yerine Ölçülmüş kabul eder. (I5788d)
-
- ScaleFit, ContentScale olarak yeniden adlandırıldı
- Hizalama API'si ile aynı modülde yaşamak için ContentScale kullanıcı arayüzü grafiklerden arayüz çekirdek modülüne taşındı.
- FillMaxDimension, Kırpma olarak yeniden adlandırıldı
- FillMinDimension, Sığdır olarak yeniden adlandırıldı
- Daha iyi eşleşmesi için Fit'i Inside olarak yeniden adlandırdı
- ImageView.ScaleType eşdeğerleri
- Kırpma ve Hizalama.Center kombinasyonunun, Hizalama.Center ile kullanılan ImageView.ScaleType.CENTER_CROP ve Fit ile aynı sonucu elde ettiğini gösteren dokümanlar eklendi.
Çizim değiştiriciler için Rtl desteği. (I0aaf9)
XML'den Android Görünümlerini şişirme API'si yayınlandı. Daha fazla ayrıntı için ViewInCompose demosuna bakın. (I42916)
DrawModifier API'sını iyileştirin:
- Draw() ContentDrawScope için alıcı kapsamı oluşturuldu
- Draw() üzerindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahip
- ContentDrawScope'tadrawContent() yöntemi (Ibaced, b/152919067) bulunur
LayoutKoordinatları için locationInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
DrawtierModifier vedrawLayer() öğelerini artık varsayılan olarakClipToBounds ve klipToOutline'ı false olarak ayarlayın. (I0eb8b, b/152810850)
LayoutResult'ın adı MeasureResult olarak değiştirildi. (Id8c68)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi; kullanımdan kaldırılan LayoutModifier (If32ac)
Değiştirici artı operatörü fabrika uzantı işlevleriyle değiştirildi (I225e4)
Belirli bir Katman için çizim komutları görüntüleme listesini dengelemeyi desteklemek üzere çeviriX/Y özellikleri eklendi. Bu, içeriğin animasyonlara veya dokunma etkinliklerine yanıt olarak taşınmasında faydalıdır. (I8641c)
Bir katmandaki belirli bir nokta çevresinde döndürme ve ölçeklendirmeyi desteklemek için Katman API'lerine pivotX, pivotY parametreleri eklendi (Icf7c3)
OnPositioned ve OnChildPositioned composable işlevlerini değiştirmek için OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)
Bir Düzen için RenderNode eklemeyi sağlayan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölgelerin ayarlanmasına olanak tanır. Bu, RepaintBoundary'nin yerini alacaktır. (I7100d, b/150774014)
Düzen yönü, üst düzen düğümünden alt öğelere yayıldı. Düzen yönü değiştiricisi eklendi. (I3d955)
Yığın bileşeni sağdan sola yönü destekler (Ic9e00)
Oluşturma düzeninde Rtl için ilk destek (Ia5519)
Density ve DensityScope tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kodunu kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)
LayoutKoordinatları, sağlananHizalamaSatırlarını bir Harita yerine bir kümeye dönüştürmek ve LayoutKoordinatlarının, bir değeri almak için bunun yerine get() operatörünü uygulamasını sağlamak amacıyla değiştirildi. Bu, değiştiricilerin her biri için yeni bir koleksiyon oluşturmadan kümedeki bir veya daha fazla değeri değiştirmesini kolaylaştırır. (I0245a)
Düzen koordinatlarının artık bir konum özelliği yoktur. LayoutModifier'lar, rotasyon veya ölçeklendirme düşünüldüğündeposition özelliği anlamlı değildir. Bunun yerine, geliştiriciler bir LayoutKoordinatör'den diğerine dönüşümü hesaplamak için ebeveyniniz Koordinatör'ü ve AltToLocal() işlevini kullanmalıdır.
LayoutCoordinates, boyut özelliği 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ında kayan nokta değerleri değil tamsayı değerleri kullanılmalıdır. (I9367b)
Kısıtlamaların API yüzeyinde yapılan iyileştirmeler (I0fd15)
Durum bilgisiz ve bildirim temelli bir çizim API'si yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır. Boyutlandırma bilgileri de ilgili inset sınırlarına dahil edilir. Tüketicinin çizim işlemlerini yapılandırmak için kendi Boya durumu nesnesini korumasına gerek yoktur.
- CanvasScopeSample eklendi ve demo uygulaması bildirim temelli bir grafik demosu içerecek şekilde güncellendi (Ifd86d)
Kullanılmayan MaskFilter API, kullanımı sınırlı olduğundan ve çoğu kullanım alanında donanım hızlandırma için optimize edilmediğinden kaldırıldı (I54f76)
RectangleShape, androidx.ui.foundation.shape.* biçiminden androidx.ui.graphics'e taşındı.* (Ia74d5, b/154507984)
API'deki tüm null yapılabilir Renk kullanımları, null özelliği olmayanlarla değiştirildi ve null yerine Color.Unset (Iabaa7) değeri kullanıldı
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizimini desteklemek için ImagePainter'a isteğe bağlı ek rect parametresi ekleyin
Kutuya konma Renkleri içermeyen, ayarlanmamış bir değeri temsil etmek için Ayarlanmayan Renk değeri eklendi. (If901a)
Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak amacıyla Canvas.rotate ve Canvas.scale uzantı yöntemleri eklendi. Bunlar varsayılan olarak geçerli tuval çevirisinin sol üst köşesindedir.
Ayrıca Canvas.rotateRad, tutarlılık için bir uzantı yöntemi olarak taşındı (Ibaca6)
ImageAsset'teki piksel bilgilerini sorgulamayı desteklemek için PixelMap API'si oluşturuldu. (I69ad6)
Oluşturma ve temelde derlendikleri Android çerçeve API'leri arasındaki nesne dönüşümlerini adlandırma kurallarını eşleştirmek için toFrameworkRect/toFrameworkRectF adını AndroidRect/toAndroidRectF olarak değiştirdi. Ayrıca bu API'lerle ilgili güncellenmiş dokümanlar (I86337)
Vektör grafikleri için mevcut alt bileşim API'sinin yerini alması için VectorPainter API'si eklendi. Alt kompozisyonun sonucu DrawModifier yerine bir VectorPainter nesnesidir. Önceki DrawVector composable'lar kullanımdan kaldırıldı ve yerine VectorPainter geldi.
Image(Painter) API'si PaintBox(Painter) olarak yeniden adlandırıldı ImageAsset yerine VectorAsset (I9af9a, b/149030271) hariç, Image composable gibi davranan Vector composable'ı oluşturuldu
Resim verileri ile düzene katılmak ve içerik çizmek için kullanılacak olan Image composable arasındaki farkı daha iyi ayırt etmek amacıyla Image, ImageAsset olarak yeniden adlandırıldı. _Body:Geleneksel Android uygulama geliştirmesini, oluşturma çerçevesi (Id5bbd) ile birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap, Bitmap.asImageAsset() üzerinde oluşturulan uzantı yöntemidir.
TextDirection.Content eklendi (I48f36)
TextDecoration.plus operatörü eklendi (I0ad1a)
Force
, TextDirectionAlgorithm enum değerlerinden (Icc944) kaldırıldıTextDirectionAlgorithm, TextDirection (I75ce8) olarak yeniden adlandırıldı
Metin Alanı Seçimi için LongPressAndDrag yöntemini uygular. (I17919)
Aralıktaki tüm ek açıklamaları döndüren AnnotatedString.getStringDescriptions eklendi. (I1fa00)
Locale ve LocaleList için androidx.ui.text olan paket adı, androidx.ui.intl (I8132c) olarak değiştirildi
TextField'in imleci yanıp sönen bir animasyon içeriyor (Id10a7)
API değişikliği: AnnotatedString(builder: Builder), aboneliğinize ek açıklamalıString(builder: Builder) olarak yeniden adlandırılır. (Ia6377)
API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)
AnnotatedString.Builder.addNotlarString'i addStringnot olarak yeniden adlandırın. (I5059e)
Artık onTextInputStarted geri çağırma işlevi (I8dc44, b/151860051) ile sunulan SoftwareKeyboardController'ı kullanarak yazılım klavyesini gizlemek/göstermek mümkündür.
Merge() işlevine yetki veren (Text/Paragraf/Span)Style için artı operatörü eklendi. (Ia1add)
Fontweight.lerp artık yapılmıyor. Bu hâlâ bir veri sınıfıdır. (I521c2)
Fontweight kurucusu artık herkese açık ve artık bir veri sınıfı değil. (Id6b1f)
TextLayoutResult'a (Ibc801) getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount değerlerini ekleyin
kullanıcı arayüzü modülü, ui-text-core (I57dec) olarak yeniden adlandırıldı
Kullanıcı arayüzü geometrisinde tüketilen yinelenen bir Boyut sınıfı olduğundan, kullanılmayan Boyut sınıfı kaldırıldı. (I1b602)
Yalnızca görünür öğeleri oluşturan ve düzenleyen bir kaydırma listesi bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında, yalnızca dikey yönde olması ve alt öğelerinde yapılan değişikliklerin tüm durumlarını tam olarak ele almaması yer almaktadır. (Ib351b)
Box'a dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)
Hata Düzeltmeleri
- Metin alanlarındaki onFocusChange geri çağırması, onFocusChanged (Ida4a1) olarak yeniden adlandırıldı
- Vertical Scroller ve Horiziontal Scroller kullanımdan kaldırıldı. Sütun/Satır davranışı ve parametreleriyle ilgili yerleşik deneyim için ScrollableColumn ve ScrollableRow'u kullanın veya kendi öğenizde Modifier.vertical Scroll ve Modifier.YAYA kaydırıcılarını kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırıldı ve yerini ScrollState (I400ce, b/157225838, b/149460415, b/154105299) kullanıma sunun.
runOnIdleCompose
,runOnIdle
(I83607) olarak yeniden adlandırıldı- Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri, performansXYZ olarak yeniden adlandırıldı. (I7f164)
- Oluşturma kullanıcı arayüzü artık ViewGroups içinde yeni bir kompozisyon gerekmeksizin oluşturulabilir. Örnek için ViewInteropDemo'ya bakın. (I9ab0b, b/160455080)
- MutableVector'a SortWith ve removeRange eklendi (Icccf7)
- TextField seçimini değiştirmek için Sürükleme Seçimi Tutma Yerlerini uygulayın. (I27032)
- NativeShader'ı sarmalayan Shader satır içi sınıfı kaldırıldı, NativeShader'ı Gölgelendirici olarak yeniden adlandırdı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli herhangi bir şey eklemedi ve bir satır içi sınıftı. Bu yüzden doğrudan NativeShader sınıfını kullanın. (I25e4d)
PainterModifier, belirtilen kısıtlamalara ve ContentScale parametresine göre artık ölçeklendirme yapmayacak şekilde yeniden düzenlendi. Painter'ın uygulamaları, çizim içeriklerini, çizdikleri DrawScope'un belirli boyutuna göre kendileri ölçeklendirmektir.
VectorPainter'ın önbellek bit eşleminin, çizim yapılacak boyut yerine varsayılan boyutuna göre boyutlandırılmasıyla ilgili sorun düzeltildi.
ImagePainter, bunun için PainterModifier'a güvenmek yerine içeriğini ölçeklendirmek üzere 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) (Id211e) ile değiştirin
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue kullanımdan kaldırıldı. Bu türü kullanan TextField,FilledTextField ve CoreTextField composable öğeleri de kullanımdan kaldırılmıştır. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)
Dağıtma sırasında PointerInputFiltreler'in alt bileşen aracılığıyla kaldırılması durumunda işaretçi giriş dağıtımının kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)
İşaretleme sırasında alt bileşen aracılığıyla PointerInputFiltreler kaldırılırsa işaretçi girişi dağıtımının kilitlenmeye neden olmasıyla ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)
Yarıçap sınıfı yeniden düzenleyerek satır içi bir sınıf oldu. Tamamlayıcı oluşturma yöntemleri, varsayılan parametresi olan işlev kurucunun lehine olan ve y ekseni boyunca yarıçapı zorunlu x ekseni yarıçap parametresinin yarıçapıyla aynı olacak şekilde ayarlanarak kaldırıldı.
DrawScope.drawRoundRect, yarıçap için x ve y ekseni boyunca 2 ayrı kayan nokta değeri yerine tek bir Radius parametresi kullanacak şekilde güncellendi (I46d1b)
Recompose composable artık yararlı bir soyutlama değil. Yeniden oluşturma işlemlerinin çoğu MutableState atamaları sonucunda gerçekleştirilmelidir. Bunun dışındaki her şey için geçerli kapsamın yeniden oluşturulmasını tetiklemek üzere
invalidate
işlevini kullanmanız önerilir. (Ifc992)Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b)
Compose derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, oluşturma derleyicisi çağrıları composable işlevlere dönüştürüyordu. Bu değişiklikle birlikte, composable fonksiyonunun gövdesini dönüştürüp çağrı sitesini (çoğunlukla) değiştirmeden bırakıyoruz.
Bu, yazma çalışma zamanıyla iletişim kuran mantığın büyük bölümünün, çağrı sitesi yerine işlev gövdesinin başlangıcında gerçekleştiği anlamına gelir.
Bu, tüm oluşturma kullanımı için kaynakla uyumlu bir değişiklik olmalıdır. Bu değişikliğin ardından, yazma kullanıcılarının çoğunun herhangi bir kodu güncellemesi gerekmez.
Bu çalışmayı desteklemek için tüm composable işlevlerin JVM imzası değiştirildi. Tek bir parametreyi kabul eden bir composable işlev, 3 parametre kabul eden bir işleve dönüştürülür; ek parametreler "anahtar" tam sayısı olan Composer ve çağrılar aracılığıyla meta verileri yaymak için kullanılan bir bit maskesi tam sayısıdır.
Oluştur özelliği artık varsayılan bağımsız değişkenleri de composable bir işleve dönüştürüyor. Bunu, işlevin kendisinin ek bir sentetik varsayılan aşırı yüklemesi olmadan yapar; böylece bu değişiklik daha az işlevin tanımlanmasına neden olur.
Aşağıdaki durumlardan kaynaklanan bilinen kasıtlı davranış değişiklikleri:
- Bazı aramalar daha önce atlamadıkları noktalara atlanır
- Varsayılan bağımsız değişken ifadelerindeki composable ifadeler artık doğru şekilde abone olundu ve işlendi
Bu çalışma kapsamında bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer composable fonksiyonlara aktarılır. Bu, çalışma zamanında daha az karşılaştırmaya neden olur, slot tablosu boyutunu küçültür ve daha önce atlanmamış composable işlevlerin daha fazla atlanmasını sağlar 2. Derleme zamanında "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Böylece karşılaştırma sayısını azaltıp slot tablosu boyutunu küçültebilirsiniz. 3. İşlevlerin gövdesinin kontrol akışı yapısı, oluşturulan grup sayısını en aza indirmek için kullanılır. Bu, slot tablosu boyutunu küçültür ve çalışma zamanında daha az iş yapılmasına neden olur 4. İşlevlere yönelik kullanılmayan gönderme ve alıcı parametreleri, işlevin gövdesinde kullanılmadıkları takdirde işlevin atlanabilirliğini belirlemeye dahil edilmez.
Zarar veren değişikliklerin çoğu, derleyicinin doğrudan hedeflediği API'ler içindi ve tipik oluşturma kullanımı bu durumdan etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call kullanımdan kaldırıldı 4.
key
öğesinin değişken olmayan aşırı yüklemeleri kaldırıldı. Bundan sonravararg
sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı. Yedek olarakkey
kullanın. 6. ScopeUpdateScope::updateScope değeri, Function1 yerine bir Function3 öğesi beklenecek şekilde değiştirildi. 7. restartableFunction ve yeniden başlatılabilirFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi (I60756, b/143464846)Kullanımdan kaldırılan LayoutLayout değiştiricileri kaldırıldı. (I10877)
DrawtierModifier'ın (I00aa4) yerini alan RepaintBoundary kaldırıldı
Button, FloatingActionButton ve Clickable'ın 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)
Ambients API'deki önemli değişiklikler. Ayrıntılar için günlüğe ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)Varsayılan TextDirection davranışı LayoutDirection tarafından belirlenecek şekilde değiştirildi. Yani, LayoutDirection RTL ise varsayılan TextDirection RTL olur. Önceden TextDirection.ContentOrLtr/Rtl (I4e803) protokolü kullanılıyordu.
Hata düzeltmesi: Bir AnnotatedString verisinde yazı tipi ağırlığı ve yazı tipi stili iç içe yerleştirildiğinde metin doğru şekilde oluşturulmuyor. (I77a9d)
Text()'a yaygın olarak kullanılan parametreleri ekler. Şu anda Text(style = TextStyle = TextStyle(texthhizala.Center) gibi az sayıda parametrenin iletilmesi için yerel bir metin stili oluşturuyorsanız, artık parametreleri doğrudan sağlayabilirsiniz: Text(textalign = TextAlign.Center) (I82768)).
ui-android-text modülü, ui-text-android (I68cbe) olarak yeniden adlandırıldı