Compose kullanıcı arayüzü
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(Tüm Compose paketleri için API referans belgelerine bakın)
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 7 Ekim 2026 | 1.12.1 | - | 1.13.0-beta01 | - |
Yapı
Compose, androidx içindeki 7 Maven grup kimliğinin birleşimidir. Her grup, işlevlerin hedeflenen bir alt kümesini içerir ve her birinin kendi sürüm notları vardır.
Bu tabloda gruplar açıklanmakta ve her bir sürüm notu grubuna bağlantı verilmektedir.
| Grup | Açıklama |
|---|---|
| compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun. |
| compose.compiler | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. |
| compose.foundation | Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin. |
| compose.material | Kullanıma hazır Materyal Tasarım bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklanan bileşenleri sağlamak üzere tasarlanmış, Compose'un daha üst düzey giriş noktasıdır. |
| compose.material3 | Materyal Tasarım'ın bir sonraki evrimi olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3, güncellenmiş temalar ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özelliklerini içerir. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzü ile uyumlu olacak şekilde tasarlanmıştır. |
| compose.runtime | Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedefleyeceği temel çalışma zamanı. |
| compose.ui | Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken Compose kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposu başlıklı makaleyi inceleyin.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.compose.ui:ui:1.12.1" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.12.1") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Lütfen yeni bir tane oluşturmadan önce 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 Issue Tracker belgelerine bakın.
Sürüm 1.13
Sürüm 1.13.0-beta01
7 Ekim 2026
androidx.compose.ui:ui-*:1.13.0-beta01 yayınlandı. 1.13.0-beta01 sürümü bu commit'leri içerir.
API değişiklikleri
- 1.13 sürümünde
Modifier.interactionBarrier(), genel API yüzeyinden geri alındı. (I47974, b/564575045, b/347038246) PolygonShapeAPI'leri güncellendi:CornerRounding,dp()vefraction()fabrikalarıyla üst düzeye taşındı,transformed()vescaledToFit()uzantıları yerinde değiştirilebilirPolygonShape.transform(PolygonShapeTransformScope.() -> Unit)vePolygonShape.copy()ile değiştirildi. (If5970)onValueChangeartıkSlider,VerticalSliderveRangeSliderüzerinde zorunlu bir parametredir.SliderveRangeSliderbileşenlerinde daha önce gizlenmiş olan, desteği sonlandırılmış API'ler (SliderStateüzerindeDraggableStateuygulaması ve eskiSaveraşırı yüklemeleri dahil) kaldırıldı.isVertical,SliderStateadlı alandan kaldırıldı.isVerticalaşırı yüklemesi lehineSliderStatealan, desteği sonlandırılanSliderDefaults.Thumbaşırı yüklemesi. (I3fdc1)MediaQueryiçindekiPosturesınıfının yerini, fizikselWindowFold'leri (FoldStateveFoldOrientation) kullanıma sunanWindowPosturealdı.WindowPosture'yeisTabletopveisFlatkolaylık özellikleri eklendi ve Book duruşu kaldırıldı. (Id9e8e)- Kitaplıklar artık Kotlin 2.2'yi hedefliyor ve kotlinc 2.2 gerektiriyor (I82396, b/498369605)
@FloatRange,BlurStop.fraction'ye eklendi,BlurRadiusSpec.radialGradient'deki varsayılanfallOffRadius,Dp.Unspecifiedolarak değiştirildi,Modifier.blur'ınradiusparametresiblurRadiusSpecolarak yeniden adlandırıldı veBlurScope.radius,blurRadiusSpecolarak yeniden adlandırıldı. (I91dbc, b/556335791)
Hata düzeltmeleri
- Ölçüm sırasında hizalama çizgileri sorgulandığında oluşan IllegalArgumentException ("LayoutNode not found in RectList") hatası düzeltildi. (Icec9e, b/549552303)
VectorPainterartık aynıImageVectoröğesini birden fazla composable'da oluştururken dahili grafik kaynaklarını (ImageBitmap) paylaşacak. Bu sayede, yinelenen doku yüklemeleri ve bellek kullanımı azaltılarak yinelenen simgeler kullanılan listeler gibi senaryolarda performans artırılır. Bu optimizasyonComposeUiFlags.isVectorDrawCacheSharingEnabledüzerinden devre dışı bırakılabilir. (I91b41)- AndroidTextPaint.setTextMotion'ın, FontHinting veya None doğrusallığına geçiş yaparken LINEAR_TEXT_FLAG'i temizlememesiyle ilgili hata düzeltildi. (I8c19c)
- TalkBack'in dokunarak keşfetme odağının, Compose kullanıcı arayüzü içeriğiyle kaplı yerleştirilmiş bir AndroidView'a (ör. WebView) atlamasına neden olan sorun düzeltildi. (I11372, b/561099702)
Color.toColorLong()çağrıldığında veya bir Paint'teColor.Unspecifiedüzerinde birleştirilmiş bir renk ayarlandığındaIllegalArgumentExceptionile kilitlenmeye neden olan sorun düzeltildi. (Ia365b, b/557521315)androidx.lifecycle:lifecycle-runtimebağımlılığı 2.10.0 sürümüne güncellendi. Bu sürüm, paketlenmiş yaşam döngüsü çalışma zamanı lint kontrollerinin AGP 9.5.0-alpha04 veya sonraki sürümlerle çalışması için gereklidir. (I99bfd, b/556807521)- 10'dan fazla parametreye sahip composable'lar için araçlardaki parametre ayıklama sorunu düzeltildi. (Ib167d)
- Devre dışı bırakılan düzen düğümlerinin düzen kuyruğundan temizlenmemesi nedeniyle yeniden ölçme sırasında kilitlenmeye neden olan sorun düzeltildi. (Ie64a5)
Sürüm 1.13.0-alpha03
9 Eylül 2026
androidx.compose.ui:ui-*:1.13.0-alpha03 yayınlandı. 1.13.0-alpha03 sürümü bu commit'leri içerir.
API değişiklikleri
value, onValueChangeparametrelerini kabul eden Material 2 metin alanı aşırı yüklemelerinin desteği sonlandırıldı. Lütfen durumunu yükseltmek içinTextFieldStatekullanan aşırı yüklemeye geçin. (I6b841, b/556234973)- İlk Compose kökü oluşturulmadan önce
WindowInsetsRulers'ı genel olarak devre dışı bırakmak için ortak bir API ekleyin. OrtakComposeView.disableWindowInsetsRulers()Iadc8f lehine yalnızca Android'i kullanımdan kaldırmaWindowInsetsRulers.disable() - Poligon şekillerini dönüştürmek ve sığdırmak için Compose Foundation'da
PolygonShape.transformedvePolygonShape.scaledToFituzantı işlevlerini ekler. (I3f327) - Değiştirici,
LineHeight.Trim.isTrimLastLineBottom()işlevinin adınıLineHeight.Trim.trimsLastLineBottom,LineHeight.Trim.isTrimFirstLineTopişlevinin adını iseLineHeight.Trim.trimsFirstLineTopolarak değiştirdi (I02211) ComposeUiTestConfig.platformbölümündekiPlatformTestConfigaltınaboundsAssertionToleranceeklendi. Bu sayede testler, varsayılan sınır onaylama toleransını ortam/kural düzeyinde yapılandırabilir. (I7819d, b/545673912)value, onValueChangeparametrelerini kabul edenBasicTextFieldaşırı yüklemelerinin desteği sonlandırıldı. Lütfen durumunu yükseltmek içinTextFieldStatekullananBasicTextFieldaşırı yüküne geçin. (I636bf, b/552879150)BasicTextField(value, onValueChange)ile uyumlu olarak,VisualTransformationyalnızca buTextFieldaroması aracılığıyla kullanıma sunulduğu için kullanımdan kaldırılmıştır. Mevcut dönüşümlerOutputTransformation'e taşınmalıdır. (I636bf, b/552879150)- Satır yüksekliğini her satır için ayrı ayrı hesaplamak üzere
LineHeightStyle.Mode.PerLineeklendi. Böylece aynı paragrafta farklı yazı tipi boyutları desteklenerek çakışma önleniyor. (I41738) LazyListStatearacılığıylaLazyLayoutCacheWindowveLazyListPrefetchStrategysağlamanın yerini, composable işlev içinLazyLayoutCacheWindowsağlamak aldı. (I71f19)- Aşamalı bulanıklaştırmayı (ör. gradyanlar ve özel gölgelendiriciler) desteklemek için
Modifier.blur { ... }API'si eklendi (Ie6595, b/481685669) - Dokunma, odak ve erişilebilirlik etkileşimlerini engellemek için Modifier.
interactionBarrier() eklendi. (I7c1b7, b/347038246) - Geliştiricilerin Android'de sistem genelinde pencereler arası bulanıklık durumunu sorgulamasına ve gözlemlemesine olanak tanımak için
isCrossWindowBlurEnabledüzerindeWindowInfouzantı özelliği eklendi. (If38e2, b/538405295) - Mevcut
android.view.Windownesnesinin alınmasına olanak tanıyanLocalWindow CompositionLocaleklendi. Böylece, pencere düzeyindeki API'lerin Composables içinden kontrol edilmesi kolaylaştı. (I4d4ff, b/221889664)
Hata düzeltmeleri
- Varsayılan olarak
isMinimalistLocalsEnabledetkindir. (Ibb4eb, b/523295932) - Varsayılan olarak tek satır yüksekliği optimizasyonunu etkinleştirin. Yükseklik veya seçim yolu gibi bazı metin metriklerinde birkaç piksel farka neden olabilir (I5575a).
compileSdkiçin Compose kitaplıkları 37.1 sürümüne güncellendi. Bu işlem, Compose kullanan tüm uygulamalar ve kitaplıklar içincompileSdköğesinin geçişli olarak güncellenmesini gerektirir. (I05b0f)- Tahmin edilen geri gitme sırasında
WindowInsetsRulersIME eklerinin animasyonlu olarak işaretlenmemesi ve odak metin alanları arasında değiştirildiğindeimePaddingöğesinin güncellenmemesi sorunu düzeltildi. (Id4562, b/537386261, b/539686000) ComposeView, standart bir AndroidViewGroupiçinde barındırıldığında dokunmatik yüzeyde parmakla yakınlaştırma hareketlerinin yoksayılmasına neden olan sorun düzeltildi. (I80f79)
Harici Katkı
- Bir
ComposeViewtek bir çerçeve içinde ayrılıp yeniden eklendiğinde (ör.removeViewveaddViewile yeniden sıralandığında) oluşan etkinlik sızıntısı düzeltildi. (Ib5129, b/547675867)
Sürüm 1.13.0-alpha02
26 Ağustos 2026
androidx.compose.ui:ui-*:1.13.0-alpha02 yayınlandı. 1.13.0-alpha02 sürümü bu commit'leri içerir.
API değişiklikleri
- Modifier.background için yeni bir anlamsal özellik
BackgroundColoreklendi (I7eec3, b/518049030) - Artık mevcut temel dizilerden
Verticesoluşturabilirsiniz. (Ifaba8, b/496412761) VectorPainterartık aynıImageVectoröğesini birden fazla composable'da oluştururken dahili grafik kaynaklarını (ImageBitmap) paylaşacak. Bu sayede, yinelenen doku yüklemeleri ve bellek kullanımı azaltılarak yinelenen simgeler kullanılan listeler gibi senaryolarda performans artırılır. Bu optimizasyonComposeUiFlags.isVectorDrawCacheSharingEnabledüzerinden devre dışı bırakılabilir. (I35639, b/331283180)requestFocusForChildInLocalBoundsyardımcı işlevini ekleyin (Ib1a48)
Sürüm 1.13.0-alpha01
12 Ağustos 2026
androidx.compose.ui:ui-*:1.13.0-alpha01 yayınlandı. 1.13.0-alpha01 sürümü bu commit'leri içerir.
API değişiklikleri
isVelocityTrackerMinSampleSizeFixEnabledözellik bayrağını ekler (Ic9b51, b/533444810, b/533775739, b/523705159)- Eski
ExperimentalVelocityTrackerApiek açıklama sınıfı kaldırıldı. (I6f9c6, b/483449576) - isClearNestedScrollCoroutineScopeFixEnabled işaretini kaldırın (Iedfd7, b/506963276)
TextFieldStateartık metin stili bilgilerini kaydedip geri yükleyebiliyor.AnnotatedString.Annotation.SaverartıkAnnotatedString.Annotationnesnelerinin kaydedilmesine ve geri yüklenmesine olanak tanımak için herkese açık. (I8b533, b/135556699)- Compose kullanıcı arayüzü testlerinde özel hata etkinlik işleyicilerini ve hata yapıtı bağlamını desteklemek için
ComposeTestConfig'daTestFailurePolicyveTestFailureHandlerkullanıma sunuldu. (Ib1a85, b/414802953, b/291106656, b/430644575) - Test için düzen düğümlerinin çözümlenmiş bileşik üst-alt alfa değerlerini göstermek üzere
SemanticsProperties.alpha eklendi. (Ifddb6, b/524035059) ui-test-junit4v2 paketinde, tek tek parametreler alancreateComposeRule,createAndroidComposeRulevecreateEmptyComposeRuleaşırı yüklemelerinin desteği sonlandırıldı.ComposeUiTestConfigkabul eden aşırı yüklemeleri veya varsayılanComposeUiTestConfigkullanan parametresiz aşırı yüklemeleri kullanın. Varsayılan birComposeUiTestConfig, her testin başında ilk giriş modunuInputMode.Toucholarak ayarlar. Bu durum, klavye modu (InputMode.Keyboard) bekleyen mevcut testlerin başarısız olmasına neden olabilir. Etkilenen testleri düzeltmek içinComposeUiTestConfig(inputMode = InputMode.Keyboard)açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak içinAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falsedeğerini ayarlayabilirsiniz. Bu işaret gelecekte kaldırılacak. Bu nedenle, yalnızca az sayıda test başarısız olursa testleri doğrudan yapılandırmalarını değiştirerek çözmeniz önerilir. (Idfb86, b/504195741)createComposeRulevecreateAndroidComposeRuleiçin bağımsız değişken içermeyen çağrılar (ör.createComposeRule()veyacreateAndroidComposeRule<MyActivity>()) artık varsayılan birComposeUiTestConfigkullanıyor. Bu, her testin başında ilk giriş modunuInputMode.Toucholarak ayarlayarak cihazın temiz bir durumda olmasını sağlıyor ve önceki giriş modu değişikliklerinin testler arasında sızmasını önlüyor. Ancak bu yeni varsayılan dokunma modu, klavye modunu (InputMode.Keyboard) bekleyen mevcut testlerin başarısız olmasına neden olabilir. Etkilenen testleri düzeltmek içinComposeUiTestConfig(inputMode = InputMode.Keyboard)açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak içinAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falsedeğerini ayarlayabilirsiniz. Bu işaret gelecekte kaldırılacak. Bu nedenle, yalnızca az sayıda test başarısız olursa testleri doğrudan yapılandırmalarını değiştirerek çözmeniz önerilir. (Idc4dd, b/267253920, b/504195741)- Geçersiz kılınabilir boş temel yöntemleri, geçersiz kılma uygulamalarının super'ı çağırmaması gerektiğini belirtmek için
@EmptySuperile Compose'da açıklama ekleyin. (Id407b) ExposedDropdownMenuartık üye işlevi yerineExposedDropdownMenuBoxScopeüzerinde bir uzantı işlevidir. Kodunuzu yeni bir içe aktarma işlemiyle güncellemeniz gerekebilir. (Ie8a65, b/356452026)DialogPropertiesöğesineblurBehindRadius,backgroundBlurRadius,scrimAlphavewindowShapeözelliklerini,PopupPropertiesöğesine iseblurBehindRadiusvescrimAlphaözelliklerini ekledik. Geliştiriciler artık arka plan bulanıklığı, pencere bulanıklığı ve scrim opaklığını doğrudan iletişim kutularında ve pop-up'larda yapılandırabilir.windowShapeayarı, kırpma iletişim kutusu arka plan bulanıklıklarının yuvarlak köşelerle sınırlandırılmasına olanak tanır. (I5d437)- Özellik bayrağı kaldırıldı. Artık fareyle üzerine gelme etkinlikleri doğru şekilde işlenmiş olarak işaretlendiğinden, Dokunarak Keşfet özelliği etkin olduğunda Compose düğmeleri erişilebilirlik odağını doğru şekilde koruyor ve titreme yapmıyor. (Ib1c80)
- Diğer ayar koleksiyonlarını birleştirmek veya ayarları satır içi olarak geçersiz kılmak için
FontVariation.Settings'ya birleştirme aşırı yüklemeleri eklendi. (I6340c) - Yazı tipi arayüzünde
variationSettingsseçeneği kullanıma sunuldu. Varsayılan olarak yeniFontVariation.Emptyyazı tipi kullanılır. Dizi kopyası ayırmalarını önlemek içinFontVariation.Settingsvararg oluşturucusuasList()kullanacak şekilde optimize edildi. (I9c22f) - Ayrılmış veya bağlantısı kaldırılmış bir
CoroutineScopeöğesini güvenli bir şekilde döndürmek içinNestedScrollDispatcher.coroutineScopeözelliği güncellendi. (I9b112, b/535290281) - Ayrı
effectContext,runTestContextvetestTimeoutparametrelerini alanrunComposeUiTest,runAndroidComposeUiTestveAndroidComposeUiTestEnvironmentaşırı yüklemeleri kullanımdan kaldırıldı.ComposeUiTestConfigkabul eden aşırı yüklemeleri veya varsayılanComposeUiTestConfigkullanan parametresiz aşırı yüklemeleri kullanın. Varsayılan birComposeUiTestConfig, her testin başında ilk giriş modunuInputMode.Toucholarak ayarlar. Bu durum, klavye modu (InputMode.Keyboard) bekleyen mevcut testlerin başarısız olmasına neden olabilir. Etkilenen testleri düzeltmek içinComposeUiTestConfig(inputMode = InputMode.Keyboard)açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak içinAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falsedeğerini ayarlayabilirsiniz. Bu işaret gelecekte kaldırılacak. Bu nedenle, yalnızca az sayıda test başarısız olursa testleri doğrudan yapılandırmalarını değiştirerek çözmeniz önerilir. (Ia6d55, b/504195741) - Yalnızca sondaki bir lambda ile
runComposeUiTest,runAndroidComposeUiTestveAndroidComposeUiTestEnvironmentçağrıları artık varsayılan birComposeUiTestConfigkullanıyor. Bu işlev, her testin başında ilk giriş modunuInputMode.Toucholarak ayarlayarak cihazın temiz bir durumda olmasını sağlıyor ve önceki giriş modu değişikliklerinin testler arasında sızmasını önlüyor. Ancak bu yeni varsayılan dokunma modu, klavye modunu (InputMode.Keyboard) bekleyen mevcut testlerin başarısız olmasına neden olabilir. Etkilenen testleri düzeltmek içinComposeUiTestConfig(inputMode = InputMode.Keyboard)açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak içinAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falsedeğerini ayarlayabilirsiniz. Bu işaret gelecekte kaldırılacak. Bu nedenle, yalnızca az sayıda test başarısız olursa testleri doğrudan yapılandırmalarını değiştirerek çözmeniz önerilir. (I8c85d, b/504195741) - Dönüş değerlerinin onaylanmasını sağlamak için
SemanticsNodeInteraction.isDisplayed() veisNotDisplayed() işlevlerine @CheckResulteklendi. Böylece, geliştiriciler bunları yanlışlıkla onaylama API'leri yerine kullandığında testlerin sessizce başarısız olması önlenir. (I1b447, b/508178494) AndroidComposeUiFlag.isDelayAndroidViewsHandlerCreationEnabledişaretinin kullanılması,AndroidViewiçerenViewGroupöğesinin yalnızcaAndroidViewiçermeyenComposeViewöğelerinin performansını artırmak içinAndroidVieweklendiğinde oluşturulmasına neden olur. İşaret devre dışı bırakıldığında, kapsayanViewGroup,ComposeViewpencereye eklendiğinde oluşturulur ve eklenir. (I306a3, b/524283041)- Gönderenin üst coroutine kapsamına erişmek için alternatif bir API olan
coroutineScopeOrNull()'ıNestedScrollDispatcher'da kullanıma sunduk. (I18c0f) - Temizleme işlemlerinin her zaman yürütüldüğünden emin olmak için
clearCallbacksdeğerinirunAndClearCallbacksolarak değiştirin. (If4720, b/526700075) ComposeTestConfig,ComposeUiTestConfigolarak yeniden adlandırıldı ve v2 paketinden anaandroidx.compose.ui.testpaketine taşındı. (I1d2a1, b/504195741)- Yeniden çizim geçişlerinin beklenmesi sırasında özel bir zaman aşımı yapılandırılmasına olanak tanımak için
SemanticsNodeInteraction.captureToImage() işlevine birtimeoutMillisparametresi (varsayılan olarak 2.000 ms) eklendi. (Ib7d62, b/249501063) - Dolaylı işaretçi girişindeki değişikliklere geçmiş bilgilerini ekler (Ie62d2, b/526961645)
- Metin alanlarındaki ipucu metnini temsil etmek için yeni bir
hintTextanlamsal özelliği eklendi. Bu özellik,AccessibilityNodeInfoile eşleme yaparak erişilebilirlik desteğini iyileştirir.hintText. (Ib65da, b/448376876) LocalOwnerveLocalAndroidComposeView'den isteğe bağlı olarak dinamik bir şekilde çözülerekCompositionLocalçözünürlüğü optimize edildi. Bu özellik,ComposeUiFlags.isMinimalistLocalsEnabledkullanılarak açılıp kapatılabilir. (I2bf6d)androidx.benchmarkartık 24minSdksahibi. (Ic2a85)hideFromAccessibilityöğesinin birleştirme alt öğelerine yayılmasını kontrol etmek içinAndroidComposeUiFlagsöğesine deneysel bir işaretisPropagateHideFromAccessibilityToMergingChildrenEnabledeklendi. (Ie41ff, b/483506400)- Deneysel olan Promoted
ComposeUiTestve ilgili test API'leri (ComposeTestRulevewaitUntilvaryantları dahil) kararlı sürüme geçirildi. (Iaec77, b/471148519, b/485124363) - Birleştirilmiş geçiş gruplarında
TalkBackgezinme sırası düzeltildi. GerekirseAndroidComposeUiFlags.isTraversalGroupSortingEnableddevre dışı bırakılarak bu değişiklik geri alınabilir. (I5ae09, b/285043826) - Deneysel ve eski
IndirectPointerEventyardımcı işlevi kaldırıldı. (I05dee, b/499336763, b/501098299, b/501098376, b/513249467) - Deneysel @AnimationToolingApi'yi, daha katı izleme garantileri olan @RestrictTo API ile değiştirin. (Ia4fd1, b/524317805)
- Belirli bir düğümün alt ağacındaki tüm anlamsal yapı düğümlerini bulmak için
onDescendants()seçici eklendi. (Id6b9b, b/444588117) waitUntilNodeCount,waitUntilAtLeastOneExists,waitUntilExactlyOneExistsvewaitUntilDoesNotExistyardımcı API'lerinin desteği sonlandırıldı. Bu API'leruseUnmergedTreekabul etmiyordu. Birleştirilmemiş anlamsal yapı ağacındaki düğümlerin beklenmesini desteklemek içinuseUnmergedTreekabul eden yeni aşırı yüklemeler eklendi. (If675f, b/268432145)- Geliştiricilerin karşılaştırma eşiğini yapılandırmasına olanak tanımak için
SemanticsNodeInteractionboyut ve konum onaylarına (assertWidthIsEqualTo,assertHeightIsEqualTo,assertTouchWidthIsEqualTo,assertTouchHeightIsEqualTo,assertPositionInRootIsEqualTo,assertTopPositionInRootIsEqualTo,assertLeftPositionInRootIsEqualTo)toleranceparametresi eklendi. Bu sayede, farklı ekran yoğunluklarında test sağlamlığı iyileştirildi. (I3a477, b/202752461) - Compose testi artık ana iş parçacığı senkronizasyonunu destekliyor. Artık senkronizasyon API'lerini (ör.
waitForIdle() verunOnIdle()) güvenli bir şekilde çağırabilir ve Compose onaylarını veya işlemlerini doğrudan kullanıcı arayüzü/ana iş parçacığı geri çağırmaları içinde yürütebilirsiniz. (I0247a, b/498478569) - Parametre yönetimini basitleştirmek ve ölçeklenebilirliği artırmak için Compose test API'leri için yeni bir yapılandırma modeli (
ComposeTestConfig) kullanıma sunuldu.ComposeTestConfigaracılığıyla doğrudan giriş modunun (dokunma/klavye) yapılandırılması için destek eklendi. Bu sayede, durum sızıntısı nedeniyle testlerin başarısız olmasını önlemek için otomatik kurulum ve sıfırlama sağlanır.run*ComposeUiTestvecreate*ComposeRuleiçinComposeTestConfignesnesini kabul eden yeni aşırı yüklemeler eklendi. (Ia3da9, b/267253920, b/504195741) - Temel temsillerini
String'denInt'ye değiştirerekPreviewParameterProvider, Media Query özellikleri (Posture,PointerPrecisionvb.) ile kullanılırken Oluşturma Önizlemesi'ndeki kilitlenme sorunu düzeltildi. (Ic8f92, b/489939558) - Görsel metnin yanı sıra ham giriş metninde tam eşleşmeyi etkinleştirmek için
hasTextExactlyveassertTextEquals'yeincludeInputTextparametresi eklendi. (Iee329, b/519026043)
Hata düzeltmeleri
SaveableStateRegistry.performSave()tahsislerini önlemek içinHashMapoptimize edildi. Şirket içindeScatterMapkullanılır. (I7d510)- Populated text colors in AccessibilityNodeInfo.ExtraRenderingInfo for Text Composables. (I11c94, b/518049030)
- Düzen düğümü ayrılırken
NestedScrollDispatcher.coroutineScopeOrNull'ya erişmeninnulldöndürmek yerineIllegalStateExceptionoluşturmasına neden olan sorun düzeltildi. (I55634, b/533444810) - Dinamik alıcılar kullanılarak
compose:uiüst düzey değer sınıfı özelliklerinin dosya düzeyinde optimize edilmiş şekilde başlatılması. (I34184) - Dinamik alıcılar kullanarak
ui-unitdeğer sınıflarının (TextUnit) optimize edilmiş yardımcı nesne başlatması. (If4a99) - Dinamik alıcılar kullanarak
ui-graphicsvalue classes (BlendMode,Colorvb.) için optimize edilmiş yardımcı nesne başlatma. (Iaa86a) - Dinamik alıcıları kullanarak
compose:ui:uideğer sınıflarının (Key,CompositingStrategyvb.) optimize edilmiş yardımcı nesne başlatması. (I1a340) - Dinamik alıcılar kullanarak
compose:uimetin değeri sınıflarının (TextAlign,TextOverflow,ImeActionvb.) optimize edilmiş yardımcı nesne başlatması. (I776e0) - Dinamik alıcılar kullanarak
compose:uiaraç ve test değeri sınıflarının (AnimatedVisibilityState,MouseButton,ScrollWheel) optimize edilmiş yardımcı nesne başlatması. (I23e1b) - Dinamik alıcılar kullanarak
compose:uibirim değeri sınıflarının (Dp,DpOffset,TextUnitTypevb.) optimize edilmiş yardımcı nesne başlatması. (If5eb5) - Dinamik alıcıları kullanarak
compose:uigeometri değeri sınıflarının (Offset,Size,CornerRadius) optimize edilmiş yardımcı nesne başlatması. (I3b110) - Dinamik alıcılar kullanarak
compose:uideğer sınıflarının (Role,FocusDirection,PointerEventTypevb.) optimize edilmiş yardımcı nesne başlatması. (Ie35dd) - Gereksiz yavaş düzen geçişlerini önlemek için
BaselineShift.None,BaselineShift.UnspecifiedveBaselineShift(0f)öğelerini doğru şekilde işleyin. (I4350c) - Kayan nokta karşılaştırmaları veya eşitlik kontrollerinde, negatif sıfır (-0,0) içeren Dp değerlerinin karşılaştırmalarda veya eşitlik kontrollerinde farklı şekilde davranmasına neden olan sorun düzeltildi. (I7dbcf, b/525506543)
- API bilgilerini temizler (Ia8066)
Harici Katkı
Alignment.topRatio,Trim.isTrimFirstLineTop()veTrim.isTrimLastLineBottom()artık herkese açık API'lerdir (I84f62)
Sürüm 1.12
Sürüm 1.12.1
9 Eylül 2026
androidx.compose.ui:ui-*:1.12.1 yayınlandı. 1.12.1 sürümü bu commit'leri içerir.
Sürüm 1.12.0
12 Ağustos 2026
androidx.compose.ui:ui-*:1.12.0 yayınlandı. 1.12.0 sürümü bu commit'leri içerir.
### İndirilebilir Değişken Yazı Tipleri ve Sıfır Yapılandırmalı Kurulum (ui-text-google-fonts)
• Değişken yazı tipleri ve sıfır yapılandırmalı GMS sertifikaları
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontVariation
import androidx.compose.ui.text.googlefonts.Font
import androidx.compose.ui.text.googlefonts.GoogleFont
val fontFamily = FontFamily(
Font(
googleFont = GoogleFont("Google Sans Flex"),
// Automatically uses default GMS certificates!
variationSettings = FontVariation.Settings(
FontVariation.weight(900),
FontVariation.slant(0f)
)
)
)
──────
### Geniş renk gamı (WCG) desteği (ui-graphics)
WCG Preservation: * Paint veya Gölgelendirici'de ayarlanan sRGB olmayan renk uzayları (ör. AdobeRgb, DisplayP3) API 29 ve sonraki sürümlerde korunur. * Daha eski API düzeylerinde sRGB'ye geri döner.
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Paint
import androidx.compose.ui.graphics.colorspace.ColorSpaces
val wcgColor = Color(0.9f, 0.5f, 0.1f, colorSpace = ColorSpaces.AdobeRgb)
val paint = Paint().apply {
color = wcgColor // Preserved on API 29+
}
──────
### Donanım hızlandırmalı örgü gradyanları (ui)
• Painter API: Modifier.meshGradient, donanım hızlandırmalı Canvas.drawMesh'i kullanan MeshGradientPainter ile değiştirildi.
• Kullanım: MeshGradientPainter'ı Modifier.paint içinde kullanın.
import androidx.compose.ui.draw.paint
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.MeshGradientPainter
val meshPainter = remember {
MeshGradientPainter(rows = 1, columns = 1, hasBicubicColor = true) {
setVertex(0, 0, Offset(0f, 0f), Color.Red)
setVertex(0, 1, Offset(1f, 0f), Color.Blue)
setVertex(1, 0, Offset(0f, 1f), Color.Green)
setVertex(1, 1, Offset(1f, 1f), Color.Yellow)
}
}
Box(Modifier.fillMaxSize().paint(meshPainter))
──────
### 4. Kimlik Bilgisi Yöneticisi Entegrasyonu (ui)
Otomatik doldurma: * API 34 ve sonraki sürümlerdeki metin alanları için düşük düzeyde credentialRequest anlamsal yapı özelliği ekler.
import androidx.compose.ui.semantics.credentialRequest
import androidx.compose.ui.semantics.CredentialRequestData
import androidx.compose.ui.semantics.semantics
BasicTextField(
value = value,
onValueChange = onValueChange,
modifier = Modifier.semantics {
if (Build.VERSION.SDK_INT >= 34) {
credentialRequest = CredentialRequestData(request, callback)
}
}
)
──────
### 5. Otomatik Etkileşim Sesleri (ui)
Tıklama ve gezinme sesleri: * Platform ses yapılandırmasını kullanarak Android uyumlu tıklama ve gezinme seslerini destekleyin. * Kapsam dışında bırakma: Bir alt ağaçta sesleri devre dışı bırakmak için SoundEffectOnInteraction sarmalayıcısını kullanın.
import androidx.compose.ui.platform.SoundEffectOnInteraction
// Opt-out of sounds for everything inside
SoundEffectOnInteraction(enabled = false) {
Button(onClick = {}) {
Text("Silent Button")
}
}
### 6. Karma Kullanıcı Arayüzleri İçin Espresso Entegrasyonu (ui-test)
Compose etkileşimlerini, Espresso ViewInteraction tarafından eşleştirilen görünüm hiyerarşisiyle sınırlandırın.
import androidx.compose.ui.test.junit4.onRootWithViewInteraction
import androidx.test.espresso.Espresso.onView
// Match RecyclerView row using Espresso
val specificRow = onView(allOf(withId(R.id.row), hasDescendant(withText("Item #5"))))
// Scope Compose interactions to that row
composeTestRule.onRootWithViewInteraction(specificRow)
.onNodeWithTag("fav_icon")
.performClick()
Sürüm 1.12.0-rc01
29 Temmuz 2026
androidx.compose.ui:ui-*:1.12.0-rc01 yayınlandı. 1.12.0-rc01 sürümü bu commit'leri içerir.
Sürüm 1.12.0-beta02
1 Temmuz 2026
androidx.compose.ui:ui-*:1.12.0-beta02 yayınlandı. 1.12.0-beta02 sürümü bu commit'leri içerir.
Sürüm 1.12.0-beta01
17 Haziran 2026
androidx.compose.ui:ui-*:1.12.0-beta01 yayınlandı. 1.12.0-beta01 sürümü bu commit'leri içerir.
API değişiklikleri
- Yok (dahili geliştirici özellik bayrağını taşıma) (Iaf2c4, b/368702588)
- Geçersiz: Bir özellik bayrağı taşındı. (I24668, b/521811270)
- Deneysel özellik bayrağı
ComposeUiFlagseklendi.isTrackpadPinchReinterpretationEnabled, dokunmatik yüzeydeki iki parmakla yakınlaştırma hareketlerini ölçek faktörleriyle fare etkinlikleri olarak yeniden yorumlamak için kullanılır. (Id3477, b/478053727) - Dolaylı işaretçi etkinliklerini tetiklemek için test işlevini yeniden adlandırır (I3ee35, b/509618414)
- Artık softwrap=false olan bir metin için satır yüksekliği ayarlamanın daha iyi hesaplandığı
BasicTextveBasicTextFieldöğelerine optimizasyon ekleyin (I2150a).
Hata düzeltmeleri
- Gereksiz kullanıcı arayüzü yeniden oluşturmasını önlemek için alt bileşenler arasında optimize edilmiş kaydırma yakalama durumu yayılımı. (I05830)
- Deneysel özellik bayrağı
ComposeUiFlagsetkinleştirildi.isTrackpadPinchReinterpretationEnabledolarak ayarlanır. (I35ab8, b/478053727) - Vektör çizilebilir kaynak ayrıştırmasında, üst
<clip-path>öğeleri iç içe yerleştirilmiş<group>öğeleri içeriyorsa yoksayılmasına neden olan sorun düzeltildi. (Id4ea9, b/474530439) - Dahili test ortamı ve eş yordam kapsamı, yürütme denemeleri arasında tekrar üretilerek
AndroidComposeTestRuleiçinde standart JUnit 4 test yeniden deneme kuralları için destek eklendi. (Iafaa7, b/235383900)
Harici Katkı
- Pano uygulamasını taklit etmenin bir yolunu sağlamak için test amacıyla
AndroidClipboardarayüzünü kullanıma sunma (Ie4d72, b/512924975) TextAttributevecommitText()setComposingText()varyantları için geriye dönük uyumluluk eklendi. SDK>=37 için erişilebilirlik hizmetleri, önerilen değiştirme metninin seçilip seçilmediğini duyurabilir. SDK<37 için sözlü geri bildirim etkilenmez (yani mevcut davranış). (I90e3d, b/439879822)
Sürüm 1.12.0-alpha03
19 Mayıs 2026
androidx.compose.ui:ui-*:1.12.0-alpha03 yayınlandı. 1.12.0-alpha03 sürümü bu commit'leri içerir.
API değişiklikleri
- Jetpack Compose metin alanlarının, otomatik doldurma çerçevesi aracılığıyla Android'in Kimlik Bilgisi Yöneticisi ile entegre olmasına olanak tanımak için API 34 ve sonraki sürümlere yeni bir
credentialRequestSemantics özelliği veCredentialRequestDatayardımcı işlevi eklendi. (Ida2bf, b/488446455) - Diğerlerinin yanı sıra
ParagraphIntrinsicssoftWrapbağımsız değişkenini alan bir fabrika işlevi eklendi. Dahili olarak, metnin tek bir satır olarak oluşturulduğuna dair bir sinyal olarak kullanabilir ve belirli optimizasyonlar yapabiliriz. (I66ca4, b/485495112) - Otomatik etkileşim sesleri (tıklamalar ve odak gezinme) için Compose bileşenlerine destek eklendi. Ayrıca, devre dışı bırakmaya izin veren yeni bir
SoundEffectOnInteractionComposable eklendi. Bu değişiklik nedeniyle artık anlamsal tıklama işleyicilerinin ana ileti dizisinden çağrılması gerektiğini ve bunun az sayıda test senaryosunu etkileyebileceğini unutmayın. (I78f65) Fontfabrika işleviylevariationSettingsfotoğraf çekme özelliği sabitlendi. (I183f2)ResourceFontloadingStrategyözelliği vecopyyöntemi sabitlendi. (I40d84)InterceptPlatformTextInputvePlatformTextInputInterceptorAPI'leri kararlı hale getirildi. (Id2784)- Platform ayrımını iyileştirmek için
registerIdlingResourceveunregisterIdlingResourceuzantı işlevlerine taşındı. İçe aktarma işlemlerinizi güncellemeniz gerekebilir. (I21d3d, b/471148519) - Eyalet denetimi sırasında test performansını artırmak için
runWithoutImplicitWaitileComposeTestRuleveComposeUiTestkullanıma sunuldu. Bu API, örtülü senkronizasyon devre dışı bırakılarak bir kod bloğunun yürütülmesine olanak tanır ve her düğüm sorgusu için tekrarlanan senkronizasyonların ek yükünü önler. Bu, özellikle animasyon testi gibi kareler arasında manuel olarak ilerleyen ve birden fazla özelliği örnekleyen testlerde test işleminin hızını önemli ölçüde artırır. (Ie00e9, b/490270394) @PreviewWrapperek açıklaması artıkMultiPreviewek açıklama sınıflarına uygulanabiliyor. Böylece geliştiriciler, yeniden kullanılabilir ve önceden sarmalanmış önizleme yapılandırmaları oluşturabiliyor. (I8ae66, b/511170361)- Örgü gradyanlarını oluşturmak için
MeshGradientPainterözelliği kullanıma sunuldu.Modifier.meshGradientözelliği kaldırıldı. Bunun yerineModifier.paintile birlikteMeshGradientPainterözelliğini kullanın.MeshGradientRendererartık dahili. (I2d170, b/508110246) - Cetveller artık, Cetvel'in sağlanıp sağlanamayacağını belirten bir lambda ve Cetvel'in değerini sağlayan ayrı bir lambda ile birlikte ayrı ayrı sağlanabilir.
isRulerProvidedlambda'sı gözlemlenmez ve değer sağlanıp sağlanamayacağı konusunda iyimser olmalıdır.rulerProviderlambda'sı, herhangi bir değer değiştiğinde cetvel değerini ve cetvelin tüm okuyucularını güncelleyecek şekilde gözlemlenir. (Ie9089) - Deneysel Stil API'sinde, özel stil kapsamlarına sahip olabilen özel stil türleri oluşturma desteği eklendi. Bu, bir stil tarafından ayarlanabilen özelliklerin alt kümesini oluşturmaya (ör. grafik katmanını veya metin özelliklerini tamamen kaldırma) ve kapsamın diğer stillerden bağımsız olarak genişletilmesine (ör.
MediaPlayercomposable'da yalnızcaplaying { }söz dizimini destekleme) olanak tanır. Bu değişiklik, ikili ve kaynak uyumluluğunu bozuyor. Kaynak uyumluluğunu bozan temel değişiklik,StyleScopeiçindeki yardımcı işlevlerin uzantı işlevlerine taşınmasıdır (ör.fun contentProperty(all: Dp)artık bir uzantı işlevidir). Gerekli uzantı işlevlerini veya androidx.compose.foundation.styles'dan tüm sembolleri içe aktarmak, bu yöntemleri çağıran kodun doğru şekilde derlenmesi için yeterli olmalıdır. (I1ef27, b/493676648) - İşaretçi kimliği için varsayılan bağımsız değişkenle
updatePointerBy()ekler. (I99f30, b/502001776) DeferredTargetAnimationartık deneysel değil. Lütfen katılımı kaldırın." ifadesini androidx-main'e taşıyın.- Düzeltmeyi kontrol etmek için
isClearNestedScrollCoroutineScopeFixEnabledişareti eklendi. (Ibd394, b/505343254) DeferredTargetAnimationartık deneysel bir özellik değil. Lütfen etkinleştirmeyi kaldırın. (I1e4ae, b/500030165)- ui-tooling'de tetikleyicileri desteklemek için yeni enum (I6e198, b/478807872)
ComposeViewContext, referans görünümü eklenmeden oluşturulabilir. Yine desetContent()çağrılmadan önce referans görünümünün eklenmesi gerekir. (Id0952)
Hata düzeltmeleri
- Aynı düzen için birden fazla kaydetme çağrısı yapıldığında
focusRestoreröğesinin odağı düzgün şekilde geri yüklememesi sorunu düzeltildi (I10277, b/505371994). - Önceki bir performans iyileştirmesi, eklenmemiş
ComposeViewsöğelerinin ölçülmesine izin vermeme gibi bir yan etkiye neden olmuştu. Bu değişiklik, performans sorununu yeniden ortaya çıkarmadan buna izin veriyor. (I9b2c5, b/508650647) ComposeViewContextdaha hızlı erişimi desteklemek için artıkComposeViewContextdeğiştirildiğinde kompozisyon yeniden oluşturuluyor. (I3b3a8, b/487364963)- Android'de Compose'un boya ve gölgelendiricide sRGB olmayan renkler ayarlamasına izin vererek Compose renk alanlarını platformdaki eşdeğerleriyle doğru şekilde eşleyerek geniş renk gamını korur. Platform oluşturma işlemlerinde (ör. CIE XYZ, CIE Lab, OkLab) desteklenmeyen veya mevcut API düzeyinde kullanılamayan renk alanları, Srgb renk alanına güvenli bir şekilde geri döner. (I3efb5, b/388511109)
Harici Katkı
androidx.compose.ui.platform.NativeClipboardtypealias desteği sonlandırıldı. Bunun yerine doğrudanandroid.content.ClipboardManagerkullanın (Ibc611).- Platform türünün
typealiasüzerindencommonMainkaynak kümesine gösterilmesini önlemek içinClipboard.nativeClipboardmülkünüClipboard.nativeClipboardManageruzantısıyla değiştirin (Ibc611).
Sürüm 1.12.0-alpha02
6 Mayıs 2026
androidx.compose.ui:ui-*:1.12.0-alpha02 yayınlandı. 1.12.0-alpha02 sürümü bu commit'leri içerir.
API değişiklikleri
MeshGradientDeğiştirici'yi kullanıma sunar. (Ia9a08, b/455752719)- Yerleşik otomatik doldurma hata ayıklama günlük kaydı geri çağırmalarını kaldırır. Aynı işlev,
AutofillManager.AutofillCallbacküzerinden giriş yapılarak da kullanılabilir. (I631c7, b/502279690) - İndirilebilir yazı tipleri için varyasyon ayarlarını destekleme (Ic25c7, b/496278020)
mediaQueryvederivedMediaQuery,Booleanyerine genel bir tür döndürecek şekilde güncellendi. Böylece, uyarlanabilir kullanıcı arayüzleri oluştururken daha esnek bir kullanım sağlandı. (I93830, b/498698350)
Sürüm 1.12.0-alpha01
22 Nisan 2026
androidx.compose.ui:ui-*:1.12.0-alpha01 yayınlandı. 1.12.0-alpha01 sürümü bu commit'leri içerir.
API değişiklikleri
ComposeUiFlags.isIndirectPointerNavigationGestureDetectorEnabledadlı özellik bayrağını kaldırır (I82be3, b/455601135)mediaQueryişlevi satır içi işlev haline getirildi (Ie9457, b/498698350)ComposeViewContextdeneysel aşamadan çıktı veExperimentalComposeViewContextApiek açıklaması kaldırıldı (I32eca)ComposeView.disableWindowInsetsRulers()artık deneysel değil (Ia81a5)hasPendingWork()API'si eklendi. Bu API, beklemeyi tetiklemeden veya saati ilerletmeden Compose kullanıcı arayüzünde şu anda bekleyen iş olup olmadığını pasif olarak kontrol etmeye olanak tanır. Bu, animasyonların veya diğer arka plan işlemlerinin ne zaman tamamlandığını belirlemek için manuel saat testlerinde kullanışlıdır. (Ic54e3)AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnabledözellik bayrağı kaldırıldı (I7fd25, b/491111451)AndroidComposeUiFlags.isSharedFontEnabledözellik bayrağı kaldırıldı (I2cebe, b/479898293)- Android'de desteklenen klavye seçenekleri grubunu tamamlamak için tarih, saat, tarih saat, işaretli ondalık gibi ek
KeyboardTypeseçenekleri ekler. (I3713e, b/202353328) AndroidComposeUiFlags.isSharedHapticsEnabledişareti kaldırıldı (I6a1d4, b/479895628)AndroidComposeUiFlags.isSharedClipboardManagerEnabledişareti kaldırıldı (I41e3c, b/479895130)AndroidComposeUiFlags.isSharedViewConfigurationEnabledişareti kaldırıldı (I6d3aa, b/479890645)AndroidComposeUiFlags.isSharedDrawingEnabledözellik bayrağı kaldırıldı. (I27912, b/479849019)AndroidComposeUiFlags.isSharedAccessibilityManagerEnabledözellik bayrağı kaldırıldı (I6b726, b/479845566)AndroidComposeUiFlags.isSharedWindowInfoEnabledişaretini kaldırma (Ife9a9, b/479837249)AndroidComposeUiFlags.isSharedComposeViewContextEnabledişaretini kaldırın. (Ic522a, b/479834257)- İndirilebilir değişken yazı tiplerini özelleştirmek için varyasyon ayarları ekleyin (Ifdc93, b/223262013)
- İndirilebilir değişken yazı tiplerini özelleştirmek için varyasyon ayarları ekleyin (I390af, b/223262013)
isTraversableDelegatesFixEnabledişaretini kaldır (Ia7dfe, b/485962494)- Test performansını ve durum kararlılığını artırmak için
ComposeTestRuleveComposeUiTestüzerinderunWhenIdleve askıya alma varyantıawaitAndRunWhenIdlekullanıma sunuldu. Bu API'ler, kullanıcı arayüzünü bir kez senkronize eder ve ardından her işlem için tekrarlanan senkronizasyonların ek yükü olmadan bir kod bloğunu yürütür. Bu durum, özellikle animasyon testinde olduğu gibi birçok özelliği örnekleyen testlerde, test yürütme işleminin önemli ölçüde daha hızlı ve daha az kararsız olmasını sağlar. (Iabf66, b/490270394) - Katmanın görsel sınırlarını ölçülen boyutunun ötesine genişletmek için kullanılabilecek
LayerOutsets,GraphicsLayerveModifier.graphicsLayeröğelerini ekler. Bu, katman bir ekran dışı arabelleğe yükseltildiğinde örtülüclipToBoundsdavranışını önlemek için kullanılabilir. (Ic1189) - Otomatik doldurma giriş etkinliklerinin günlüğe kaydedilmesi varsayılan olarak devre dışı bırakıldı. Bu özellikler artık
ComposeView.setAutofillDebugEnablednumarası aranarak etkinleştirilebilir. (I5b430, b/487947860) - VelocityTracker, Android Framework tarafından sağlanan uygulamayı kullanacak şekilde değiştirildi (
AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabledile yapılandırılabilir). (Ibc7e2, b/359962905) AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnableddoğru olduğunda, alt görünümler her zaman bir düzen geçişi sırasında ölçümden sonra düzen çağrısı yapar. Compose, ölçümden sonra her zaman bir alt öğe yerleştirmez ancak Görünümler, uygun durum yönetimi için bunu gerektirir. (Ib4fe9, b/430974758)isVirtual,LayoutInfo'ye ekleniyor (I3e5cd, b/494243978)isGraphicsLayerShapeSemanticsEnabledbayrağı temizlendi. (I44be0, b/455600081)- Yazı tipi sertifikalarını kod tabanına ekleme gibi manuel bir adım olmadan indirilebilir yazı tiplerini kullanmak için yeni bir Font API eklendi. (I30b86, b/479454159)
- Compose semantik aramalarının kapsamını belirli Android görünümleriyle sınırlamak için
onRootWithViewInteractioneklendi . Bu, üretim kodunda benzersiz test etiketleri gerektirmedenRecyclerViewsgibi karma kullanıcı arayüzlerinin test edilmesini kolaylaştırır . (Ic02c4, b/175226753)
Hata düzeltmeleri
captureToImage()API artık bir pop-up'ı veya iletişim kutusunu, tek bir bit eşlemde bağlantısıyla birlikte yakalamanıza olanak tanıyor. (I9b83a, b/443137545)- Compose
compileSdk, API 37'ye güncellendi. Bu nedenle, Compose kullanılırken minimum AGP sürümü 9.2.0 olmalıdır. (Id45cd, b/413674743) - Semantikte
ContentDataType.Noneayarlandığında artık Oluşturma tarafından otomatik doldurma etkinlikleri gönderilmez. Bu, otomatik doldurma hizmetleri isteğiyle ilişkili başlatma maliyetlerini önler. (I8fbda, b/487947860)
Sürüm 1.11
Sürüm 1.11.4
1 Temmuz 2026
androidx.compose.ui:ui-*:1.11.4 yayınlandı. 1.11.4 sürümü bu commit'leri içerir.
Sürüm 1.11.3
17 Haziran 2026
androidx.compose.ui:ui-*:1.11.3 yayınlandı. 1.11.3 sürümü bu commit'leri içerir.
Sürüm 1.11.2
19 Mayıs 2026
androidx.compose.ui:ui-*:1.11.2 yayınlandı. 1.11.2 sürümü bu commit'leri içerir.
Sürüm 1.11.1
6 Mayıs 2026
androidx.compose.ui:ui-*:1.11.1 yayınlandı. 1.11.1 sürümü bu commit'leri içerir.
Sürüm 1.11.0
22 Nisan 2026
androidx.compose.ui:ui-*:1.11.0 yayınlandı. 1.11.0 sürümü bu commit'leri içerir.
Sürüm 1.11.0-rc01
8 Nisan 2026
androidx.compose.ui:ui-*:1.11.0-rc01 yayınlandı. 1.11.0-rc01 sürümü bu commit'leri içerir.
Sürüm 1.11.0-beta02
25 Mart 2026
androidx.compose.ui:ui-*:1.11.0-beta02 yayınlandı. 1.11.0-beta02 sürümü bu commit'leri içerir.
API değişiklikleri
- Tutarlılık için
PreviewWrapperAPI'sini yeniden adlandırın (I62659, b/490085948) ComposeViewContext,ComposeViewöğesinin görünüm hiyerarşisine eklenmeden oluşturulmasına olanak tanır.ComposeVieweklenmeden bestelemeye başlamak içinAbstractComposeView.createComposition(composeViewContext)simgesini kullanın. (I46e6f)panEndvescaleEnd(If80fe) için dokunmatik yüzey testi API'lerinedelayMilliseklendi.
Hata düzeltmeleri
ClipboardveClipboardManagerartık ilk yöntem çağrısında sisteme ait hizmeti istiyor (If0016, b/487947860)- Odak düğümlerinin ve gruplarının yeniden kullanıldığı geç yüklenen kapsayıcılarda odak doğru şekilde geri yüklenecek (I18d36, b/481564275)
clippingEnabled = falseile açılan pop-up'ta artık kenardan kenara görüntüleme için pencere sınırlarının tamamı doğru şekilde kullanılıyor (I206408, b/327017902)
Sürüm 1.11.0-beta01
11 Mart 2026
androidx.compose.ui:ui-*:1.11.0-beta01 yayınlandı. 1.11.0-beta01 sürümü bu commit'leri içerir.
API değişiklikleri
- Jetpack Compose Dialog'a (Ic7728) özel
windowTokendesteği eklendi. - Özel
windowTokenvewindowTypeiçin destek, Jetpack Compose Popups'a eklendi. (I0a04f) PreviewWrapperarayüzünü ve bir ek açıklama sağlayıcısını tanıtın. Bu sayede geliştiriciler, önizlemelerini özel davranışlarla sorunsuz bir şekilde sarmalayabilir. (I29f54, b/484306729)AndroidComposeUiFlags.isSharedFontEnableddoğru olduğunda,FontLoaderveFontFamilyResolvergibi yazı tipiyle ilgili nesne örnekleri,ComposeViewContextiçindekiComposeViewörnekleri arasında paylaşılabilir. (I403e8)- Compose semantik işlemcileri,
mainLooperyerine view.handler'ı kullanır. Böylece, ana olmayan işleyicileri kullanan görünümlerde kilitlenme önlenir. (I671c3, b/486235925) isSkipNonImportantSemanticsNodesHitTestEnabledadlı bir işaret eklendi. Bu işaret,TalkBack'nin dokunarak keşfetme özelliğini etkileyen, anlamsal yapı isabet testiyle ilgili bir hata düzeltmesini korur. (I2933f, b/481011169, b/454377558, b/461360154)- Android Hizmetleri'nden Jetpack Compose Dialog'larının görüntülenmesi için destek eklendi. Geliştiriciler,
DialogPropertiesiçindeki yeniwindowTypeparametresi aracılığıyla özel bir pencere türü sağlayarak artık Dialog'ları yer paylaşımı pencerelerinde gösterebilir. (I7c504, b/478214962) - Ölçek ve kaydırma değerlerini almak için
PointerInputChangeveHistoricalChangeözelliklerini yeniden adlandırır. (I989a8, b/481333653) - Dokunmatik yüzey hareketleri için farklı eğrileri ve girişleri simüle etmek amacıyla dokunmatik yüzey testi API'lerine daha fazla işlev eklendi. (I290fb, b/473603145, b/479213358)
- Yeni
PointerEventType.PanvePointerEventType.PanStart,PointerEventType.PanMovevePointerEventType.PanEndolarak ayrılıyor. Benzer şekilde,PointerEventType.Scale,PointerEventType.ScaleStart,PointerEventType.ScaleChangevePointerEventType.ScaleEndolarak ayrılmıştır. Bu bölme, platform tarafından yorumlanan kaydırma ve ölçeklendirme hareketlerinin başlangıcı ve sonuyla ilgili ek bilgilerin iletilmesine olanak tanır. Bu sayede Compose'daki işaretçi girişi işleyicileri, etkinlikleri uygun şekilde algılamak için bu bilgileri kullanabilir ve özellikle kaydırma veya ölçeklendirme işleminin ne zaman tamamlandığını bilebilir. (I4daf6, b/479285849, b/481333653) AndroidComposeUiFlags.isSharedHapticsEnableddoğru olduğundaComposeViewContext, paylaşılan dokunsal kontrol cihazı örneğini içerir. (Icd79a)- Pencere boyutlarına, pencere duruşuna ve diğer cihaz ile ortam özelliklerine dayalı olarak bildirim temelli uyarlanabilir kullanıcı arayüzü geliştirmeyi sağlamak için deneysel
mediaQuery,derivedMediaQueryveUiMediaScopeAPI'leri (@ExperimentalMediaQueryApiolarak işaretlenmiş) kullanıma sunuldu. (I2d21e, b/479800750)
Hata düzeltmeleri
- Şekil parametresi dinamik olarak değiştirildiğinde blok kapsamlı
Modifier.dropShadowveModifier.innerShadowöğelerinin yeniden çizilmemesine neden olan sorun düzeltildi. (Ida262, b/486202623) - Satır içi içeriğin, soldan sağa metin içeren sağdan sola düzenlerde veya sağdan sola metin içeren soldan sağa düzenlerde yanlış yerleştirilmesine neden olan hata düzeltildi. (I09789)
- Bir parça geçişinde
ComposeViewkullanıldığında istisna oluşturulmasına neden olan hata düzeltildi. (Ia425f, b/484100557)
Harici Katkı
- Metin değiştirme önerileri kullanılabilir olduğunda çeviri yazım girişinin bulunabileceği farklı durumları belirlemeye yardımcı olması için
InputTextSuggestionStateözelliği ekleyin. Ayrıca, mevcut çeviri yazısı metin kompozisyonu aralığını izlemek içinTextCompositionRangeözelliğini kullanıma sunar. Boş değer, kompozisyonun yerinde olmadığını gösterir. (I7a67f, b/476472318)
Sürüm 1.11.0-alpha06
25 Şubat 2026
androidx.compose.ui:ui-*:1.11.0-alpha06 yayınlandı. 1.11.0-alpha06 sürümü bu commit'leri içerir.
API değişiklikleri
ComposeUiFlags.areWindowInsetsRulersEnabledişareti,ComposeView.disableWindowInsetsRulers()API'siyle değiştirildi. (Idcdb4, b/455590696)- Yalnızca Android'e özel deneysel özellik bayrağı
isAccessibilityShowOnScreenNestedScrollingEnabled, (I1c13a) olarak değiştirildi. - Yürüyerek çıkma (I1c13a) için destek ekleyin.
- Ekran okuyucular ve benzer erişilebilirlik hizmetleriyle daha iyi bir kullanıcı deneyimi için kaydırılabilir kapsayıcılarda kısmen görünür birleştirme düğümlerinin alt öğeleri olan ekran dışı semantik düğümleri bildirin (I71df9, b/434782764).
AndroidComposeUiFlags.isSharedClipboardManagerEnableddoğru olduğunda, pano ile ilgili örneklerComposeViewContext(I65e2c) kullanılarakComposeViewsgenelinde paylaşılabilir.ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabledkaldırıldı (I6e14a, b/455601894)
Sürüm 1.11.0-alpha05
11 Şubat 2026
androidx.compose.ui:ui-*:1.11.0-alpha05 yayınlandı. 1.11.0-alpha05 sürümü bu commit'leri içerir.
API değişiklikleri
AndroidComposeUiFlags.isSharedWindowInfoEnabled,WindowInfobilgileriniComposeViewContextkonumuna taşır. İşaret devre dışı bırakıldığındaWindowInfo,AndroidComposeViewtarafından kontrol edilir (I3b364).ComposeViewiçindeki ortak yapılar, ortakComposeViewContext'ye taşınır. Bu,CoroutineContext'ıComposeViewContext'e taşıyan ilk değişikliktir.AndroidComposeUiFlags.isSharedComposeViewContextEnableddoğru olduğunda değerler otomatik olarak paylaşılır. Yanlış olduğunda paylaşılmaz. (I9364d, b/461566955)- Dokunmatik yüzey hareketleri ve dokunmatik yüzey giriş etkinliklerinin fareye dönüştürülmesi için destek eklendi. Bu değişiklikle birlikte, tablet veya dizüstü bilgisayarlarda olduğu gibi imleci kontrol eden trackpad işaretçi etkinlikleri genellikle fare işaretçileri olarak raporlanır. Bu da işaretçi eğimi, kaydırma ve üzerine gelme ile ilgili davranışları iyileştirir. Kaydırma ve ölçeklendirme hareketleri de işaretçi etkinliği değişikliklerinde ek bilgilerle birlikte bildirilir. Bu değerlerin ayarlanacağını belirten yeni bir PointerEventType.Pan ve PointerEventType.Scale ile birlikte (Id071a, b/315527861, b/459831570)
Hata düzeltmeleri
- Toggleable özelliği değişikliği için
CONTENT_CHANGE_TYPE_CHECKEDgönderin. (I6ac64, b/476894689, b/474538004, b/475754416)
Harici Katkı
androidx.compose.ui.graphics.NativePainttürü için takma ad desteği sonlandırıldı. Bunun yerine doğrudanandroid.graphics.Paintkullanın (I6303c, b/477394763).- Platform türünün
typealiasaracılığıylacommonMainkaynak kümesine aktarılmasını önlemek içinPaint.asFrameworkPaint()uzantısınıPaint.nativePaintile değiştirin (I6303c, b/477394763). NumPadhareket anahtarları (I1ff12) için destek ekleyin.
Sürüm 1.11.0-alpha04
28 Ocak 2026
androidx.compose.ui:ui-*:1.11.0-alpha04 yayınlandı. 1.11.0-alpha04 sürümü bu commit'leri içerir.
API değişiklikleri
TestCoroutineScheduler,runCurrent()kullanımını etkinleştirmek ve paylaşılan planlayıcı örneğine erişimi sağlamak için kullanıma sunuldu. (Iea662, b/254115946)- Erişilebilirlik'ten gelen
android.R.id.accessibilityActionShowOnScreenisteğine yanıt olarak iç içe kaydırmada gezinme desteği eklendi. (Ib2723, b/431148846)
Hata düzeltmeleri
- Özel Android RGB renk alanının dönüştürülmesi düzeltildi. Özel gri tonlama dönüşümleri, özel Compose ve Android RGB renk alanları arasında yanlış şekilde dönüştürülüyordu.(ebd45,b/377021410)
Sürüm 1.11.0-alpha03
14 Ocak 2026
androidx.compose.ui:ui-*:1.11.0-alpha03 yayınlandı. 1.11.0-alpha03 sürümü bu commit'leri içerir.
API değişiklikleri
ComposeUiTestFlags.isStandardTestDispatcherSupportEnabledbayrağı kaldırıldı. v2run*ComposeUiTestvecreate*ComposeRuleAPI'leri artık varsayılan olarakStandardTestDispatcherkullanıyor.UnconfinedTestDispatcherkullanmaya devam etmek için desteği sonlandırılmış API varyantlarını kullanabilirsiniz. Ancak, eş yordam yürütme üzerinde daha iyi kontrol sağlamak için v2 API'lere geçmenizi önemle tavsiye ederiz. (Iecc9c, b/455601592)androidx.compose.ui.test.junit4.v2.create*ComposeRuleAPI'leri kullanıma sunuldu. Bu yeni API'ler, eşzamanlı yordamların hemen yürütülmek yerine sıraya alındığı üretim davranışını daha iyi simüle etmek için varsayılan olarakStandardTestDispatcherkullanır. Daha fazla bilgi için taşıma kılavuzuna bakın. (I1870e, b/254115946)androidx.compose.ui.test.v2.run*ComposeUiTestAPI'leri kullanıma sunuldu. Bu yeni API'ler, eşzamanlı yordamların hemen yürütülmek yerine sıraya alındığı üretim davranışını daha iyi simüle etmek için varsayılan olarakStandardTestDispatcherkullanır. Daha fazla bilgi için taşıma kılavuzuna bakın. (I4f782, b/254115946)ComposeViewiçindeki ortak yapılar artık paylaşılabilir.ComposeUiFlags.isSharedComposeViewContextEnableddoğru olduğunda değerler otomatik olarak paylaşılır. Yanlış olduğunda paylaşılmaz. (I0d1b4, b/463540495, b/460468959, b/461503366, b/463641813)
Hata düzeltmeleri
ComposeViewsimgesinden tüm içeriğin kaldırılması durumunda çizilen içeriğin kaldırılmaması hatası düzeltildi. (I8b382, b/299503084)LookaheadScopeile animasyon oluşturulurken duraklatılabilir birleştirme ile ilgili kilitlenme sorunu düzeltildi. (I7e649, b/469669851)- Otomatik doldurma hizmetine aşırı uzun dizeler iletmenin kilitlenmeye neden olduğu sorun çözüldü. Bunu önlemek için metinler artık gönderilmeden önce otomatik olarak geçerli bir uzunluğa kısaltılıyor.
- Fareyle üzerine gelme çıkışının çok özel koşullarda tıklamaya neden olabildiği hata düzeltildi (a3d5a0f).
- Testler için ekran kalemiyle üzerine gelme etkinliği gönderme sorunu düzeltildi ve yeni ekran kalemi testleri için fare testleri hazırlandı. (9ca9bc9)
- İşaretçi girişiyle kullanıcı arayüzü öğelerini yerleştirme/kaldırma desteği ekler. (d0742b0, b/BUD_ID)
- Jetpack Compose'da
Popup,PopupPositionProvideröğesine sabit koordinatların iletilmesine ve pop-up'ların yanlış yerleştirilmesine neden olan hata düzeltildi. Pop-up konumlandırma hesaplamalarında artık doğru göreli koordinatlar kullanılıyor.(1f7edf,b/469940907)
Sürüm 1.11.0-alpha02
17 Aralık 2025
androidx.compose.ui:ui-*:1.11.0-alpha02 yayınlandı. 1.11.0-alpha02 sürümü bu commit'leri içerir.
API değişiklikleri
MultiModalInjectionScopeAPI'leri artık kararlı sürümde.performKeyInputveperformRotaryScrollInputile bunların temel anahtar ve döner API'leri bu kapsamdadır. Deneysel ek açıklama kaldırıldı. (Ie8bbc, b/261561237)- Dokunmatik yüzey testi API'leri eklendi. Bunlar fare testi API'lerine benzer ve tablet ya da dizüstü bilgisayar dokunmatik yüzeyinin davranışını taklit eden etkinlikler yerleştirir. Birincil giriş noktaları
SemanticsNodeInteraction.performTrackpadInputveMultiModalInjectionScope.trackpad(I2ce67), b/432326139'dur.
Hata düzeltmeleri
- Fare tekerleği kaydırma girişinin birlikte çalışabilirliği, yalnızca Compose'da kullanılıyorsa tüketilecek şekilde düzeltildi. Compose'da gönderildiyse tüketilmeyecek. (I5e0c4),
Sürüm 1.11.0-alpha01
3 Aralık 2025
androidx.compose.ui:ui-*:1.11.0-alpha01 yayınlandı. 1.11.0-alpha01 sürümü bu commit'leri içerir.
API değişiklikleri
- Anlamsal otomatik doldurma varsayılan olarak etkinleştirildiğinden
isSemanticAutofillEnabledkullanıcı arayüzü işaretini kaldırır. (I849cf, b/455587954) - Geçilebilir yöntem bulma
findNearestAncestorözelliğinin alakalı düğümleri keşfetme şekli değiştirildi. Artık aynı türdeki (NodeKind) temsilciler geçiş sırasında görünür. Bu değişiklik,isTraversableDelegatesFixEnabledişaretiyle korunur. (Ia3165, b/280804097) ANI#isTextEntryKeyiçinTextEntryKeyeşlemesi ekleyin (Ifde7b, b/399540654)Modifier.onFirstVisible(), davranışının yanıltıcı olması ve her zaman adın iddia ettiği sözleşmeye uymaması nedeniyle kullanımdan kaldırıldı. Örneğin,LazyColumnöğesine eklendiğinde bu geri çağırma, öğe kaydırma işleminden sonra her görünür hale geldiğinde çağrılır. Bu adla değiştiricinin kullanıcıları, bu sonucu beklememiş olabilir. Bunun yerineModifier.onVisibilityChanged()kullanılması ve düzenin daha önce görünür olup olmadığının, belirli kullanım alanının gereksinimlerine göre manuel olarak izlenmesi önerilir. (Ia7095, b/447601783)onRemeasured()geri araması gerektiğinde kullanılanMeasuredSizeAwareModifierNodeözelliği kullanıma sunuldu. Lütfen diğer geri çağırmalara ihtiyacınız olmadığında daha genelLayoutAwareModifierNodekullanmak yerine doğrudan bu arayüzü kullanın. (If6fb0)
Sürüm 1.10
Sürüm 1.10.6
25 Mart 2026
androidx.compose.ui:ui-*:1.10.6 yayınlandı. 1.10.6 sürümü bu commit'leri içerir.
Sürüm 1.10.5
11 Mart 2026
androidx.compose.ui:ui-*:1.10.5 yayınlandı. 1.10.5 sürümü bu commit'leri içerir.
Sürüm 1.10.4
25 Şubat 2026
androidx.compose.ui:ui-*:1.10.4 yayınlandı. 1.10.4 sürümü bu commit'leri içerir.
Sürüm 1.10.3
11 Şubat 2026
androidx.compose.ui:ui-*:1.10.3 yayınlandı. 1.10.3 sürümü bu commit'leri içerir.
Sürüm 1.10.2
28 Ocak 2026
androidx.compose.ui:ui-*:1.10.2 yayınlandı. 1.10.2 sürümü bu commit'leri içerir.
Sürüm 1.10.1
14 Ocak 2026
androidx.compose.ui:ui-*:1.10.1 yayınlandı. 1.10.1 sürümü bu commit'leri içerir.
Hata düzeltmeleri
LookaheadScopeile animasyon oluşturulduğunda duraklatılabilir kompozisyonun kilitlenmesi sorunu düzeltildi (I7e649, b/469669851).- Jetpack Compose'da
Popup,PopupPositionProvideröğesine sabit koordinatların iletilmesine ve pop-up'ların yanlış yerleştirilmesine neden olan hata düzeltildi. Pop-up konumlandırma hesaplamalarında artık doğru göreli koordinatlar kullanılıyor.(1f7edf,b/469940907)
Sürüm 1.10.0
3 Aralık 2025
androidx.compose.ui:ui-*:1.10.0 yayınlandı. 1.10.0 sürümü bu commit'leri içerir.
Sürüm 1.10.0-rc01
19 Kasım 2025
androidx.compose.ui:ui-*:1.10.0-rc01 yayınlandı. 1.10.0-rc01 sürümü bu commit'leri içerir.
Hata düzeltmeleri
visibilityChangedgeri çağırmalarını,minDurationMssıfır olmadığında yanlış değeriyle doğru şekilde gönderin. (2ac08b8, b/456384555)- Düğüm başlangıçta görünür olmadığında
onVisibilityChangedgeri çağırma işlevini çağırmayın. (3969e8d, b/447364998)
Sürüm 1.10.0-beta02
5 Kasım 2025
androidx.compose.ui:ui-*:1.10.0-beta02 yayınlandı. 1.10.0-beta02 sürümü bu commit'leri içerir.
Sürüm 1.10.0-beta01
22 Ekim 2025
androidx.compose.ui:ui-*:1.10.0-beta01 yayınlandı. 1.10.0-beta01 sürümü bu commit'leri içerir.
API değişiklikleri
- Odak değişikliği gönderme için optimizasyon ekler. Bu özellik
isOptimizedFocusEventDispatchEnabled = falseile devre dışı bırakılabilir (I919fb, b/449228515) - Tüm dolaylı dokunma API'lerini, işaretçi giriş API'leriyle eşleşecek şekilde dolaylı işaretçi API'leri adını kullanacak şekilde günceller. (I238ce, b/451607214)
TextDirection,TextAlign,Hyphens,FontSynthesisvalueOfişlevleri artık bilinmeyen bir değer aldığındaIllegalArgumentExceptionhatası veriyor. (I07c67)- Sarmalayıcı işlev yerine varsayılan değerleri iletmek için
CompositionDataTree.makeTreeişlevini güncelleyin. (Id64a6, b/445229688) effectContextparametresini kabul eden test kuralı API'lericreateComposeRule,createAndroidComposeRulevecreateEmptyComposeRulekararlıdır ve parametre varsayılan olarakEmptyCoroutineContextdeğerini alır. (If400c, b/450540702)UnplacedStateAwareModifierNode,UnplacedAwareModifierNodeolarak yeniden adlandırıldı (I6a551, b/449719932)- İçerik Yakalama Optimizasyonu'nu geri alma (Ic000b, b/442364065)
ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabledözellik bayrağı eklendi. Bu özellik,LayoutCoordinates.positionInRoot()gibi koordinat isteklerinin her çağrıda ağacın tamamını geçmek yerineRectManageriçinde önbelleğe alınmış olan uzaklıkları kullanmasını sağlayarak performans optimizasyonunu mümkün kıldı. (Ieaadc)
Hata düzeltmeleri
PlaceholderSpanartık boyutlandırma için doğrusal olmayan yazı tipi ölçeklendirmeyi doğru şekilde kullanıyor (Id2ead, b/324462728)- Platform düzeyinde desteklenen dokunsal geribildirim sabitlerini gerçekleştirmek için
ViewCompatkullanın. Bu işlev, daha yeni sabitler için yedek desteğine dayanır. (Ib5a00)
Sürüm 1.10.0-alpha05
8 Ekim 2025
androidx.compose.ui:ui-*:1.10.0-alpha05 yayınlandı. 1.10.0-alpha05 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- İç içe yerleştirilmiş pop-up'ların ekranın üst kısmında yanlış konumlandırılmasına neden olan hata düzeltildi. Artık üst pop-up'a doğru şekilde sabitleniyorlar. (Id4603, b/191279752)
- Hiyerarşideki diğer görünümlerle odak sarmalama sorunu düzeltildi. (I95223, b/446028624)
- Kotlin 2.2.20 tarafından oluşturulan lambda'larda denetçide satır içi parametrelerin eksik olduğu alanlar düzeltildi (I9855d, b/447110005).
- Kullanıcı arayüzü ve temel modüller arasındaki otomatik doldurma kaynaklarının ad çakışması düzeltildi (I5da5a).
Harici Katkı
UiModesnesnesi, sabitlerinin Android API'den alındığını yansıtmak için AndroidUiModes olarak yeniden adlandırıldı. (Ia0a77)
Sürüm 1.10.0-alpha04
24 Eylül 2025
androidx.compose.ui:ui-*:1.10.0-alpha04 yayınlandı. 1.10.0-alpha04 sürümü bu commit'leri içerir.
API değişiklikleri
CoroutineContextparametresini kabul eden Compose test kuralı varyantı kararlı sürüme yükseltildi. Deneysel açıklama kaldırıldı ve geliştiricilerin bu API'yi kullanmak için artık etkinleştirmesi gerekmiyor. (I74e6e)ComposeUiFlags.isRectTrackingEnabledkaldırıldı. Bu mantık her zaman etkin değildir. (Id78df)Updater#setöğesinin satır içi aşırı yüklemesi, sağlanan değeri çok fazla kez kutuladığı için kullanımdan kaldırıldı (Id679e).onAutofillTextsemantik özelliğini desteği sonlandırılmış olarak işaretleyin. (I6f81c)UnplacedStateAwareModifierNodekullanıma sunuldu. Daha önce yerleştirilen düzen artık yerleştirilmediğinde çağrılan bir geri çağırma sağlar. (I8fdd8, b/309776096)RetainObserver.onRetainedile ilgili doküman düzeltildi veRememberObserver.onAbandonedile aynı işlevi görenRetainObserver.onUnusedeklendi. (Ia6fc5)onVisibilityChangedNode()eklendi. Bu,Modifier.onVisibilityChanged()tarafından temsilci atama yoluyla kullanılan birModifier.Nodeüretiyor. Bu sayede, özelModifier.Node'nizdeki bu işlevselliği genişletebilirsiniz. (I70d84, b/443001320)
Hata düzeltmeleri
- Çok satırlı, üç nokta ile kısaltılmış metnin son satırına yerleştirildiğinde satır içi içeriğin, üç nokta ile kısaltılmış bölgeden önce yer tutucu olmasına rağmen oluşturulamaması sorunu düzeltildi. (I76aaf, b/441829208)
Sürüm 1.10.0-alpha03
10 Eylül 2025
androidx.compose.ui:ui-*:1.10.0-alpha03 yayınlandı. 1.10.0-alpha03 sürümü bu commit'leri içerir.
API değişiklikleri
DelegatableNode.invalidateLayoutForSubtreeöğesiniDelegatableNode.invalidateMeasurementForSubtreeolarak yeniden adlandırır. (I94257, b/430106107)- Gereksiz
isInHiddenAccessibilitySubtreeeşleştiriciyi kaldırır. (I4476c, b/443792965) - Tüm küçültülmüş uygulamalar için varsayılan olarak etkinleştirilen, grup anahtarına dayalı Compose yığın izlemelerini kullanıma sunar. Bu izlemeler için proguard eşlemesi, Kotlin 2.3.0'dan itibaren Compose derleyici Gradle eklentisi tarafından oluşturulur. (Ifbcb5)
Modifier.skipToLookaheadSizeartıkModifier.skipToLookaheadPositionile aynı şekilde, yalnızca paylaşılan geçiş etkin olduğunda boyut atlamayı etkinleştiren varsayılan olarak etkin bir lambda kullanıyor. (Ibe0f5, b/432485585)ComposeUiFlags.isOutOfFrameDeactivationEnabledkaldırıldı ve bu işlev artık her zaman etkin. (I421ed)FillableDataörnekleri oluşturmak için fabrika işlevlerini yardımcı nesneye taşıyın.FillableData(value)yöntemini çağırmak yerine yeni fabrika yöntemlerini kullanın:FillableData.createFrom(value). (I2e200, b/441719650)- Odak araması için sınırlı düzenin ötesinde performans gösterecek
BeyondBoundsLayoutModifierNodeyeni bir Değiştirici düğümü kullanıma sunuldu. (I39be1, b/416133658) FocusTargetModifierNode.requestFocus()kendisi odaklanılabilir olmadığında odağı alt öğelerinden birine gönderir. Bu durum artıkFocusRequester.requestFocus()veFocusRequesterModifierNode.requestFocus()ile tutarlıdır. Bu davranışa ihtiyacınız yoksa uygulamanızdaComposeUiFlags.isRequestFocusOnNonFocusableFocusTargetEnabledişaretini false olarak ayarlayın. (Icca5c, b/436863604)WindowInfoiçinde DP tabanlı pencere boyutu sağlayın (I9322b, b/424442112)isNestedScrollDispatcherNodeFixEnabledişareti kaldırıldı. (If451a)FillableDataAPI'sinde otomatik doldurma özelliğinde tarih değerleri için destek eklendi. Tarih bilgilerini almak içinval dateMillisValue: Long, tarih tabanlıFillableDataörnekleri oluşturmak için de ilgiliFillableData(dateMillisValue: Long)oluşturucu eklendi. (Id072a)
Harici Katkı
UiModesnesnesi,UiModeek açıklaması için kullanılan sabitleri bildirmek üzere kullanıma sunulur (I03cb8).
Sürüm 1.10.0-alpha02
27 Ağustos 2025
androidx.compose.ui:ui-*:1.10.0-alpha02 yayınlandı. 1.10.0-alpha02 sürümü bu commit'leri içerir.
API değişiklikleri
FillableDataiçinde Boole ve tam sayı değerleri ile platformunAutofillValuedeğerine çevrilenFillableDataBoole ve liste örneklerini oluşturmak için fabrika oluşturucuları da dahil olmak üzere, açma/kapatma düğmeleri ve listeler gibi metin olmayan bileşenleri destekleyecek şekildeFillableDataöğesini güncelleyin. İlgili anlamsal özellik ve işlem de eklenir. (Ia8105, Icc5cf)- Dokunma modunda olmayan görünüm sisteminde, ekrandaki odaklanılabilir öğelerden birine ilk/varsayılan odak atanır. Bu özellik, Oluşturma'ya eklenir ve
ComposeUiFlags.isInitialFocusOnFocusableAvailableetkinleştirilerek kullanılabilir. (Ib9178) isPointerInteropFilterDispatchingFixEnabledişareti kaldırıldı. (Iaa589)isNestedScrollInteropPostFlingFixEnabledişareti kaldırıldı. (I2a756)isHiddenFromAccessibility()veisInHiddenAccessibilitySubtree()anlamsal eşleştiricileri ekleyin. (I9f5a1)- Temel planlayıcıdaki tüm son tarihli görevleri çalıştırmak için
runCurrent(),MainTestClock'ye eklendi. Bu, görevlerin 0 ms gecikmeyle hemen yürütülmek yerine planlayıcıya eklendiği birStandardTestDispatcherüzerinde testlerin çalıştırılmasını desteklemek içindir. Bir test,StandardTestDispatcherkullanacak şekilde ayarlanabilir. Bunun içinComposeTestRuleoluşturulur veStandardTestDispatcherbu composable'a iletilir. Varsayılan olarak testlerUnconfinedTestDispatcherüzerinde çalıştırılır. Bu durumdarunCurrent()hiçbir zaman çağrılmak zorunda kalmaz. StandardTestDispatcherüzerinde test çalıştırma desteği eklendi. Geçmişte test çerçevesi, üretim ortamından küçük farklılıklar gösteren birUnconfinedTestDispatcherkullanılarak oluşturuluyordu (ve hâlâ da bu şekilde oluşturuluyor). Artık kendiStandardTestDispatcheröğenizi oluşturupComposeTestRuleöğenizi oluştururken (veya runComposeUiTest işlevini çağırırken)effectContextöğesine ekleyerek bu kurulumu değiştirebilirsiniz. (I334d0, b/254115946)SlotTreeöğesinden düğüm ağacı oluşturmaya yönelik kodu güncelleyin. (I997d3)
Hata düzeltmeleri
- Compose UI artık Android'e yaşam döngüsüne duyarlı
RetainScopesyükler. Varsayılan davranış artık yapılandırma değişikliklerinderetaindeğerlerini koruyacak. (Id4a09, b/177562901)
Harici Katkı
VelocityTracker, platforma özgü davranışları kullanarak izlenen işaretçi etkinliklerine göre işaretçinin hızını hesaplayabilir. (I621e8)
Sürüm 1.10.0-alpha01
13 Ağustos 2025
androidx.compose.ui:ui-*:1.10.0-alpha01 yayınlandı. 1.10.0-alpha01 sürümü bu commit'leri içerir.
API değişiklikleri
ComposeViewiçindeki fare veya dokunmatik alanla yapılan işaretçi aşağı hareketleri, işaretçi aşağı hareketi odaklanılan düğümün sınırları içinde gerçekleşmezse artık odağı otomatik olarak temizleyecek. Bu, işaretçi giriş cihazları kullanılırken mevcut davranıştan daha çok beklenen bir "odaklanmayı temizlemek için dokunma" kullanıcı deneyimiyle sonuçlanır. Bu davranış, yeni birAbstractComposeView.isClearFocusOnPointerDownEnabledAPI ile devre dışı bırakılabilir. (I6322b, b/282963174)- Metne ek olarak çeşitli otomatik doldurma bileşen türlerini desteklemek için
FillableDataarayüzünü kullanıma sunuyoruz. (If9bd2) - Paylaşılan öğelerin dinamik olarak etkinleştirilmesine ve devre dışı bırakılmasına olanak tanıyan yeni API. Bu API, devam eden bir paylaşılan öğe geçişinin olup olmadığını da hesaba katar. Geçiş sırasında hedef paylaşılan öğe kaldırıldığında alternatif hedef sınırları ayarlamak için yeni API.
LookaheadScopeöğesininLayoutCoordinatesdeğerini almak için yeni API. (I18dd4, b/409819304, b/395670637) - İç içe yerleştirilmiş kaydırma birlikte çalışabilirliğine doğru tam sayıları gönderme denemesini kontrol etmek için
isNestedScrollInteropIntegerPropagationEnabledişaretini kullanıma sunma. (If8316) - Odaklanmayı belirtilen dikdörtgenle çakışan bir alt öğeye taşımak için
requestFocusForChildInRootBounds(),DelegatableNodeöğesine eklendi. (I001ef) isOnScrollChangedCallbackEnabled,isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled,isFlingContinuationAtBoundsEnabled,isAutomaticNestedPrefetchEnabled,DragGesturePickUpEnabled,isPointerInteropFilterDispatchingFixEnabled,isNestedScrollInteropPostFlingFixEnabled,isNestedScrollDispatcherNodeFixEnabledişaretleri kaldırıldı (I36c18)- Döndürülen değerlerin kullanımını zorunlu kılmak için
SemanticsNodebulucu ve seçici işlevlerine@CheckResultnotu eklendi. (I6f86e, b/201652748) - İçerik yakalama sürecinin performansını iyileştirme (I3c7c0)
- Otomatik doldurma özelliğinin başarılı doldurma vurgusunun fırçasını değiştirmek için kullanılabilecek
CompositionLocalsimgesini kullanıma sunduk. (I52329) - Bir türün diğerinden nasıl dönüştürüleceğini bildiği varsayılarak farklı türler arasında otomatik enterpolasyona olanak tanıyan yeni bir Interpolatable arayüzü kullanıma sunuldu. Bu arayüz, Fırça ve Şekil gibi çeşitli beste türlerinde kullanılır ancak harici olarak da kullanılabilir. (I58eab)
- Artık kaydırılabilir öğe, 2 boyutlu fare tekerleği kaydırma etkinliklerini daha iyi destekliyor.
MouseInjectionScope'daki kullanım alanlarını test etmeye yardımcı olacak yeni bir test API'si kullanıma sunuldu. Ayrıca,MouseInjectionScopeiçinde kaydırma yöntemleri için yeni bir aşırı yükleme veisMouseWheel1DAxisLockingEnabled(I136df) adlı yeni davranışı kontrol etmek için bir işaretçi kullanıma sunduk. - Klavye türü ve durumu, gezinme türü ve durumu, dokunmatik ekran durumu ve kullanıcı arayüzü modu türü için
DeviceConfigurationOverridesekleyin (I282f0). Tightadlı yeni birLineHeightStyle.Modeeklendi. Bu mod, daha uzun glifleri kesebilecek olsa bile daha küçük satır yüksekliklerinin uygulanmasına yardımcı olur. (Id3849)BaselineShiftartık kutulamayı önlemek için Belirtilmemiş değerine sahip.BaselineShift,Hyphens,LineBreak,TextAlignveTextDirectionartıkisSpecifiedyardımcı işlevlerine sahip.Hyphens,TextAlign,TextDecorationveTextDirectionartık verimli serileştirme/deserileştirme sağlayanvalueOf()ve değer yöntemlerine sahip. (I8d44c)- Önizleme parametre örnekleri için özel görünen adlara izin vermek üzere yeni bir
getDisplayNameyöntem arayüzü eklendi. (I19bdf, b/241699422) - Dp değerleri, küçüktür veya büyüktür işareti kullanılarak Belirtilmemiş ile karşılaştırıldığında artık her zaman yanlış değeri döndürüyor.
Dp.compareTo(Unspecified)her zaman 0 değerini döndürür.ComposeUiUnitFlags.isDpCompareToChangedişaretini false olarak ayarlamak,Dp.compareTo()değerini önceki davranışına döndürür. Bu durumda, Belirtilmemiş ile küçüktür ve büyüktür karşılaştırmaları her zaman false değerini döndürmez ve Belirtilmemiş ilecompareTo(),Float.compareTo()davranışıyla eşleşir. (Ifa88b, b/429221319)
Hata düzeltmeleri
- Varsayılan minSdk'nın API 21'den API 23'e taşınması (Ibdfca, b/380448311, b/435705964, b/435705223)
- Geçiş devam ederken yeni
AndroidComposeViewsoluşturulmasını engelleyen sorun düzeltildi. (I2e23e, b/340894487, b/287484338) - Tek renk kullanan ve
fillColoröğesi ne tamamen opak ne de tamamen şeffaf olan bir drawable vektör öğesi kullanılırken oluşan renk hatası düzeltildi. (I3b041, b/328677973) - Temaya özgü renklerle
painterResourceüzerinden yüklenen simgelerin tema değişikliklerinde güncellenmemesine neden olan sorun düzeltildi. (I85ea0, b/424416571) onFillDatavefillableDataanlamsal yapısını kullanıma sunma (I45d9e)- Platforma özgü durum kodlama özelliği artık
StateRestorationTester'da her zaman etkindir. Bu, test davranışını gerçek uygulama durumu geri yükleme ile uyumlu hale getirir (ör. Android'de paketleme). (I38211, b/408154192, b/382294247) - Odaklanma isteğinde bulunurken zaman zaman yaşanan kilitlenme sorunları düzeltildi. (57b31a11, b/431111149)
Sürüm 1.9
Sürüm 1.9.5
19 Kasım 2025
androidx.compose.ui:ui-*:1.9.5 yayınlandı. 1.9.5 sürümü bu commit'leri içerir.
Sürüm 1.9.4
22 Ekim 2025
androidx.compose.ui:ui-*:1.9.4 yayınlandı. 1.9.4 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Satır içi içerik, üç noktalı bölgede olmamasına rağmen çok satırlı ve üç noktalı bir metnin son satırında yer alıyorsa satır içi metin içeriğinin kaybolmasına neden olan sorun düzeltildi. (I76aaf, b/441829208)
debounceMillissıfır olmadığındaonLayoutRectChangeddeğiştirici geri çağırmalarının her zaman çağrılmamasına neden olan sorun düzeltildi. (72aba47, b/445324854)
Sürüm 1.9.3
8 Ekim 2025
androidx.compose.ui:ui-*:1.9.3 yayınlandı. 1.9.3 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Taşınan düzende 170'ten fazla alt öğe varsa
onVisibilityChanged/onFirstVisible/onLayoutRectChangeddeğiştiricilerin geri çağırma almamasına neden olan hata düzeltildi. (4f2fdd, b/445356774)
Sürüm 1.9.2
24 Eylül 2025
androidx.compose.ui:ui-*:1.9.2 yayınlandı. 1.9.2 sürümü bu commit'leri içerir.
Hata düzeltmeleri
Modifier.onVisibilityChanged()artık bir düğüm ayrıldığında veya yeniden kullanıldığında doğru şekilde tetikleniyor. (Ic5ce20)Modifier.onVisibilityChanged()veonLayoutRectChanged()artık alt öğeleri yerleştirmek içinplaceWithLayer()kullanan üst düzenleri düzgün şekilde işliyor. (Ia05ac9)Modifier.onVisibilityChanged()veonLayoutRectChanged()için katman/katman değiştirici kaldırma veya katman özelliklerini güncelleme gibi uç durumlarda uygun şekilde bildirim gönderin. (Ia05ac)
Sürüm 1.9.1
10 Eylül 2025
androidx.compose.ui:ui-*:1.9.1 yayınlandı. 1.9.1 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Tek renk kullanan ve
fillColoröğesi ne tamamen opak ne de tamamen şeffaf olan bir drawable vektör öğesi kullanılırken oluşan renk hatası düzeltildi. (I3b041, b/328677973)
Sürüm 1.9.0
13 Ağustos 2025
androidx.compose.ui:ui-*:1.9.0 yayınlandı. 1.9.0 sürümü bu commit'leri içerir.
1.8.0 sürümünden beri yapılan önemli değişiklikler
- 1.9.0 sürümündeki önemli değişiklikler bu blog yayınında ele alınmıştır.
- Compose ile birlikte gelen hata analizi kontrolleri artık minimum 8.8.2 AGP sürümü gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine
gradle.propertiesdosyanızdaandroid.experimental.lint.version=8.8.2(veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir. - Önemli değişiklik:
graphicsLayerdeğiştirici düğümleri artıkSemanticsModifierNode'yi uyguluyor. Bu durum, anlamsal yapı ağacına yeniSemanticsNodeseklenmesine ve dolayısıyla anlamsal yapı ağacı yapısı hakkında varsayımlarda bulunan testlerde test hatalarına yol açabilir. Örneğin,onChild,onParent,onSiblingve benzeri yöntemleri kullanarak onaylamalar yapan testler, mevcut ve hedef düğümler arasına yeni bir düğüm eklenirse başarısız olabilir. Bu hataları düzeltmenin tercih edilen yolu, doğrudan hedef düğümetestTageklemektir. Bir diğer yaklaşım iseonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))gibi daha esnek bir eşleştirici kullanmaktır. (I638b5)
Sürüm 1.9.0-rc01
30 Temmuz 2025
androidx.compose.ui:ui-*:1.9.0-rc01 yayınlandı. 1.9.0-rc01 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Temaya özgü renklerle
painterResourceüzerinden yüklenen simgelerin, sistem teması değişikliklerinde güncellenmemesine neden olan sorun düzeltildi. (I85ea0, b/424416571) - Önemli grafik yöntemlerinin optimize edilirken yeniden adlandırıldığı API 21(Lollipop) ve 28(Pie) sürümlerindeki hatalar düzeltildi. (Iebf99, b/425120571, b/420462749)
- Yeni eklenen
onLayoutRectChangeddeğiştiricilerin başlangıçta geri çağrıldığından emin olun. (l9aa91), (lb348a) - Bir ofset önbelleğinin yanlış şekilde geçersiz kılınması nedeniyle
onLayoutRectChangeddeğiştiricilerinin yanlış koordinatlarla (ibd4cd), (lddc57) çağrılması sorunu düzeltildi. onLayoutRectChangeddeğiştiricileri tarafından yanlış koordinatlar alan döndürülmüş/eğri düzenlerle ilgili düzeltme (lddc57, b/426750475)
Harici Katkı
LazyListiçindekidragAndDropSourceöğelerinin kaydırıldığında kaybolmasına neden olan sorun düzeltildi. Thanks Victor Rendina! (dc3bcd3, b/425894792)
Sürüm 1.9.0-beta03
16 Temmuz 2025
androidx.compose.ui:ui-*:1.9.0-beta03 yayınlandı. 1.9.0-beta03 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Düzgün şekilde bulanıklaştırılmış iç gölgelerin, kaydırma ile doğru şekilde hareket etmemesine neden olan sorun düzeltildi.
Sürüm 1.9.0-beta02
2 Temmuz 2025
androidx.compose.ui:ui-*:1.9.0-beta02 yayınlandı. 1.9.0-beta02 sürümü bu commit'leri içerir.
API değişiklikleri
- Sınıfla eşleşmesi için yardımcı nesneyi deneysel olarak değiştirir. (I8452a)
isTrackFocusEnableddeneysel işareti (I003fd) kaldırıldı
Hata düzeltmeleri
WindowInsets,ComposeViewiçeriğini ihlal etmediğindeWindowInsetsRulersdeğerleri sağlanmaz. (I71221)
Sürüm 1.9.0-beta01
18 Haziran 2025
androidx.compose.ui:ui-*:1.9.0-beta01 yayınlandı. 1.9.0-beta01 sürümü bu commit'leri içerir.
Zarar Veren Değişiklikler
graphicsLayerdeğiştirici düğümleri artıkSemanticsModifierNode'yi uyguluyor. Bu durum, anlamsal yapı ağacına yeniSemanticsNodeseklenmesine ve dolayısıyla anlamsal yapı ağacı yapısı hakkında varsayımlarda bulunan testlerde test hatalarına yol açabilir. Örneğin,onChild,onParent,onSiblingve benzeri yöntemleri kullanarak onaylamalar yapan testler, mevcut ve hedef düğümler arasına yeni bir düğüm eklenirse başarısız olabilir. Bu hataları düzeltmenin tercih edilen yolu, doğrudan hedef düğümetestTageklemektir. Bir diğer yaklaşım iseonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))gibi daha esnek bir eşleştirici kullanmaktır. (I638b5)
API değişiklikleri
ShadowContext, kapalı arayüz (I3ce40) olarak değiştirildi.- Dolaylı dokunma etkinliği oluşturmak için modüller arası bir yöntem (test için) eklendi (I22e4c).
IndirectTouchEvent.nativeEventdeneysel hale getirir. (I6fda5)- API konseyi geri bildirimlerine göre API yüzeyini düzeltir. (Ibf378)
FrameRateCategory.NoPreferencesabitini kaldırın.Modifier.requestedFrameRatefiltresiniModifier.preferredFrameRateolarak yeniden adlandırın. (I2f976)WindowInsetsRulers:rulersIgnoringVisibilitydeğeri maksimum olarak değiştirildi.getDisplayCutoutBounds(),PlacementScope'nin uzantı işlevi olarak değiştirildi.WindowInsetsAnimationProperties,WindowInsetsAnimationolarak,getAnimationProperties()isegetAnimation()olarak değiştirildi. (I3816f)ShadowParamssınıfıShadowolarak değiştirildi (I11cca)- Kare hızı API'sinin paketini
androidx.compose.ui.uiandroidx.compose.uiolarak değiştirin (I8994e) InsetsRulers,WindowInsetsRulersadıyla ortak kodda olacak şekilde değiştirildi. API'yi basitleştirerek tüm iç kısımlarınWindowInsetsRulersolmasını sağladık. Cetvel dışı animasyon özellikleriAnimationPropertiessınıfına çıkarıldı.WindowInsetsRulers.innermostOf(), birden fazlaWindowInsetsRulers'yi birleştirmek için kullanılabilir. (I2f0c6, b/415012444)- Compose derleyicisi tarafından eklenen kaynak bilgilerini ayrıştırmak için bir araç API'si eklendi. (Iceaf9, b/408492167)
Hata düzeltmeleri
- Özellik tamamen doğrulandığından
isGetFocusedRectReturnEmptyEnabledile ilgili işaret kaldırıldı. (Ife722) performScrollToNodeiçinde, bazı durumlarda hedef düğüme ulaşmayan bir hata düzeltildi. Bu düzeltmeyle, söz konusu durumlarda her zaman hedef düğüme ulaşılması bekleniyor. Bu değişikliğin yan etkisi olarak, işlemin sonunda tam kaydırma konumu farklı olabilir. Bu durum, ekran görüntüsü testlerini ve tam kaydırma konumuyla ilgili varsayımlarda bulunan testleri etkiler. (I2c8a1)
Sürüm 1.9.0-alpha04
4 Haziran 2025
androidx.compose.ui:ui-*:1.9.0-alpha04 yayınlandı. 1.9.0-alpha04 sürümü bu commit'leri içerir.
API değişiklikleri
- Özelleştirilebilir gölgeler için değiştirici API'leri eklendi. (I2058d, b/160665122)
- Sınırları hesaplarken düğümün dikkate alınıp alınmayacağını belirleyen bir
SemanticsModifierNode.isImportantForBoundsözellik ekleyin. Bu özellik varsayılan olarak doğrudur ve düğümün sınırlarda dikkate alınmaması gerektiğini belirtmek için yanlış olarak ayarlanabilir. (I7ebec) SemanticsPropertyKeyaracılığıyla kullanıma sunulan erişilebilirlik ekstraları olarak kullanıma sunulan Android'e özgü anlamsal yapı özelliklerini bildirmek içinAccessibilityNodeInfo.getExtrasfabrika işlevi ekleyin. (I2ed51)ComposeUiFlags.isRemoveFocusedViewFixEnabledkullanımı kaldırıldı ve işaretin desteği sonlandırıldı. (I50328)- Yeni özelleştirilebilir gölge çerçevesi kullanıma sunuldu.
DropShadowPainterveInnerShadowPainterileDropShadow/InnerShadowbağımlılıkları bu kapsamda yer alır. Gölge altyapısı, aynı oluşturulan gölgelerin n kez yeniden oluşturulmasına gerek kalmadan birden fazla çağrı merkezinde paylaşılabilmesi için paylaşılır. (I24f7a, b/160665122) - İki gölgelendirici arasında birleştirilmiş sonuç oluşturan
CompositeShaderveCompositeShaderBrushişlevlerini kullanıma sunduk. Ayrıca, gölgelendirici için bir dönüşüm matrisi ayarlamak üzereShaderBrush#transformekleyin. (I2621a, b/160665122)
Hata düzeltmeleri
NestedScrollInteropConnectioniçinde, hızlı kaydırma yöntemlerinin görünümlere göre yanlış sırada olmasına neden olan hata düzeltildi. (I56ad4)- Daha önce, tam ekran çizilen iletişim kutuları ekran kesme bölgesi içinde çizilmiyordu. Bu hata düzeltildi. Artık
decorFitsSystemWindows = falseveusePlatformDefaultWidth = falseiçeren iletişim kutuları, ekran kesimi bölgesini kullanabiliyor. (I9e975) TalkBack'nın yeşil odak göstergesinin, Compose uygulaması arka plandayken açıldıktan sonra çizilmemesine neden olan hata düzeltildi. (Ifd12a)
Sürüm 1.9.0-alpha03
20 Mayıs 2025
androidx.compose.ui:ui-*:1.9.0-alpha03 yayınlandı. 1.9.0-alpha03 sürümü bu commit'leri içerir.
API değişiklikleri
- İşaret
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled,ComposeViewiçinde odaklanılabilir hiçbir şey olmadığında dikdörtgeni boş değere ayarlar. Bu, odak aramasının odaklanılacak görünümü seçmesini engeller. Bu, özellikle bir IME'ninComposeViewverequestFocus()başarısız olabilecek şekilde odaklanmaya çalışabileceği bir SONRAKİ seçeneği olduğunda önemlidir. (Ibd0e2, b/369256395) isNestedScrollDispatcherNodeFixEnabledişaretini kullanıma sunuyoruz. (I0d24a)DialogProperties'dialogContentTitlefiltresiniwindowTitleolarak yeniden adlandırın (Ibd27b)Modifier.onFirstVisibleveModifier.onVisibilityChangeddeğiştiricileri kullanıma sunuldu. Bu değiştiriciler,Modifier.onLayoutRectChangedüzerine inşa edilmiş üst düzey değiştiricilerdir. Bu değiştiriciler, özellikle gösterimleri kaydetme ve videoları otomatik oynatma gibi birçok yaygın uygulama gereksinimini karşılamak için tasarlanmıştır. Kaydırma performansından ödün verme riski olmadan kritik liste tabanlı senaryolarda kullanılabilmeleri için performans göz önünde bulundurularak geliştirilmiştir. Bu değiştirici API'lerine ek olarak, bu kullanım alanlarını desteklemek ve geliştiricilerin kullanım alanlarına tam olarak uyan benzer özel değiştiricileri kolayca oluşturmasını sağlamak içinRelativeLayoutBoundsek API'ler eklendi. (I759b8)- Bu özelliğin gelecekteki geliştirme sürecini hesaba katmak için
setDiagnosticStackTraceEnableddeğerini deneysel olarak değiştirin. (I11db3) - Durum oluşturma için
Modifier.scrollable2D,Scrollable2DStateve tamamlayıcı API'leri kullanıma sunun. Ayrıca, yaygın kaydırma uzantısı işlevleri kullanıma sunuldu. (Ic61c8, b/214410040) - Renk alanı kimlikleri bazı renk alanları için sıralı olmadığından, Compose 64 bit renk değerleri doğrudan Android
ColorLongsile karşılaştırılamaz. Android renk alanlarına dönüştürme ve bu alanlardan dönüştürme için iki yeni API eklendi:toColorLong()vefromColorLong(). (I36899) - Alt sınırda kaydırma hızı kontrolüne izin vermek için
ViewConfiguration.minimumFlingVelocityözelliği eklendi. (I11aab)
Sürüm 1.9.0-alpha02
7 Mayıs 2025
androidx.compose.ui:ui-*:1.9.0-alpha02 yayınlandı. 1.9.0-alpha02 sürümü bu commit'leri içerir.
API değişiklikleri
- İçerik penceresinin başlığını ayarlayan
dialogContentTitleöğesiniDialogPropertiesiçine ekleyin. bf9d670
Hata düzeltmeleri
- Dahili testler düzeltilirken pencere yerleştirme cetvelleri geçici olarak devre dışı bırakıldı. 8d1402
- İşaretçi girişi değişikliklerinin
VelocityTrackeriçindeDragGestureNodeöğesine eklenme şekli düzeltildi. Bu işlem, yeniisAdjustPointerInputChangeOffsetForVelocityTrackerEnabledişaretiyle kontrol edilebilir.254ddb
Sürüm 1.9.0-alpha01
23 Nisan 2025
androidx.compose.ui:ui-*:1.9.0-alpha01 yayınlandı. 1.9.0-alpha01 sürümü bu commit'leri içerir.
Davranış Değişiklikleri
- Compose ile birlikte gelen hata analizi kontrolleri artık minimum 8.8.2 AGP sürümü gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine
gradle.propertiesdosyanızdaandroid.experimental.lint.version=8.8.2(veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.
API değişiklikleri
- İzleme ifadelerini isabet yolu izleyicisi (hata ayıklama) için etkinleştirmek üzere işareti kaldırır. (I1b2a1)
InnerRectRulersveOuterRectRules, yöntem olarak değiştirildi.RectRulersgenel API'sinden ad parametresi kaldırıldı.DerivedRulersartık dikey ve yatay cetveller için bir oluşturucu seçeneği. Örnek oluşturmak içinMergedHorizontalRulersveMergedVerticalRulersyöntemlerinin yeriniminOfvemaxOfyöntemleri aldı. (Iee89f, b/408192133)androidx.compose.ui.LocalSavedStateRegistryOwneryerineandroidx.savedstate.compose.LocalSavedStateRegistryOwnerdesteği sonlandırıldı. (I5439f, b/377946781)- Ekranda içerik gösterilirken uyku moduna geçmemesi için
Modifier.keepScreenOnekleyin (Ib5af4, b/408284174) - Yeni bir anlamsal özellik
Shapeekleyin.Bu özellik, kullanıcı arayüzü öğesinin şekli sınırlayıcı dikdörtgeninden farklı olduğunda (ör. yuvarlak köşeli dikdörtgen) ayarlanabilir. (I1376f) AndroidViewsiçinde işaretçi etkinliği göndermeyle ilgili sorun düzeltildi ve değişiklikleri korumak içinisPointerInteropFilterDispatchingFixEnabledişareti eklendi. (I0e272, b/372055500, b/408002332)FocusRestorerartık daha önce odaklanılan öğeyi sabitlemiyor. Kullanıcılar, daha önce odaklanılan öğenin aynı kompozisyon karmasına sahip olmasını sağlamak için bir anahtar kullanmalıdır. Böylece odak başarıyla geri yüklenir. (I4203b, b/330696779)- Oluşturma özelliğinin
ViewTreeObserver.OnScrollChangedtetiklemesine izin verin. Bu davranış,isOnScrollChangedCallbackEnabledişaretiyle kullanıma sunulur. AyrıcaDelegatableNode dispatchOnScrollChanged'nın uzantı işlevini de kullanıma sunduk. (I34b9d, b/238109286) currentCompositeKeyHashdesteği sonlandırıldı. Bunun yerinecurrentCompositeKeyHashCodepolitikasını kullanın. Yeni API, aynı karmayı daha fazla bit ile kodlar. Bu da kompozisyon hiyerarşisindeki iki rastgele alakasız grubun aynı karma anahtarına sahip olma olasılığını katlanarak azaltır. (I4cb6a, b/177562901)- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5)
FocusRequesteriçin lint kontrolü desteği eklendi. Böylece, öğesinin kompozisyon içinde hatırlanması sağlanır (I6bf91).- Composable'ın oluşturulacağı tercih edilen kare hızını veya kare hızı kategorisini ayarlama özelliği eklendi (Ie5201).
- Android'de yerel
MotionEvent'ı kullanıma sunma. (I17286) getChecked() + setChecked(int)ekleyin,isChecked + setChecked(boolean)desteğini sonlandırın (Iaac9d)graphicsLayerdeğiştiricisi artıkblendModevecolorFilterdeğerlerini kabul ediyor (Iab0e6)LocalResourcescomposition local to query Resources eklendi. Yapılandırma değiştiğindeLocalResources.currentçağrısı yeniden oluşturulur. Bu nedenle,stringResource()gibi API'lere yapılan çağrılar güncellenmiş değerler döndürür. (I50c13, b/274786917)- Dolaylı dokunma etkinliklerini işlemek için Composables'a yönelik deneysel API'yi kullanıma sunma (Icff57)
- Bu sürüm, composable içeriğinizin düzen ve çizim aşamalarında oluşturulan işlenmemiş istisnaların raporlanmasını iyileştirir. Daha önce, burada yakalanmayan bir istisna, test çalıştırıcısının kilitlenmesine ve test paketinin erken sonlandırılmasına neden oluyordu. Bu istisnalar artık test paketi sonlandırılmadan daha sorunsuz bir şekilde bildirilebilir. (I9928b, b/314128080)
- Deneysel
GlobalAssertionsAPI'sinin desteği sonlandırıldı. Bu özelliğin amacı, erişilebilirlik kontrolleri yapmaktı. Bunun yerineenableAccessibilityChecks()özelliğini kullanabilirsiniz. (I50aa5) SemanticsNodeInteraction.performTextInputSelectionartık deneysel değildir ve seçimi orijinal dönüştürülmemiş metne veya dönüştürülmüş metne uygulamanıza olanak tanıyan ek birrelativeToOriginalparametresini destekler. (I3a905, b/261561038, b/277018945)AnnotatedStringaracılığıyla özel madde işaretli listeler oluşturmak için API'yi kullanıma sunma (I1d066, b/383269496, b/139326648)- Davranışı daha net bir şekilde açıklayan
runWithMeasurementDisabledlehinerunWithTimingDisableddesteği sonlandırıldı. Tüm metrikler duraklatılır. Ayrıca,runWithMeasurementDisabledişlevi satır içi olduğundan erişimi açmak için yeniden tanımlamak mümkün olmadığındanMicrobenchmarkScopeüst sınıfını kullanıma sunun. (I9e23b, b/389149423, b/149979716) - Daha yeni cihazları içerecek şekilde ui-tooling Devices API güncellendi. (Ia2ac1)
- Geliştiricinin daha büyük pencereleri dikkate almasına yardımcı olmak için önizleme ekranı boyutları koleksiyonuna Tablet Dikey boyutunu ekleyin (Ia1976).
- Belirli bir anda izlemeyi değerlerle işaretlemek/günlüğe kaydetmek için izleme değeri API'sini kullanıma sunuyoruz. İzleme değerleri, Prefetto'da bir izlemenin zaman çizelgesi üzerinden görülebilen yeni bir şerit olarak gösterilir. Android'de
Trace.setCounterkullanılarak uygulanır. (Idcf48)
Hata düzeltmeleri
- Pausable composition'da remember gözlemcilerinin gönderilmesini düzeltme. Böylece, aynı uygulama içinde remembered/forgotten gönderimi önlenir (I570b2, b/404645679, b/407931790).
android:dialogThemeartıkdecorFitsSystemWindowsyanlış olduğunda iletişim kutusu özelliklerini kontrol edecek şekilde ayarlanabilir (I7922f, b/246909281)- İletişim kutusunun dışında yakalanan hareket etkinliklerinin iletişim kutusunu kapatmasına neden olan hata düzeltildi. (Ia78fd)
- Compose lint kontrolleri artık komut satırından minimum 8.8.2 AGP sürümü ve IDE desteği için en az Android Studio Ladybug gerektiriyor. AGP'nin eski bir sürümünü kullanıyorsanız Lint sürümünü AGP'yi etkilemeden yükseltmek için gradle.properties dosyasında
android.experimental.lint.version=8.8.2değerini ayarlayabilirsiniz. (I6f2a8) - Çıkış dönüşümü uygulanmadan önce
textfielddeğerini yakalayan yeni bir semantik özellikInputTexteklendi. (Iae46a, b/395911609, b/176949051) - Android'de erişilebilirlik kontrollerini etkinleştiren
enableAccessibilityChecks()API'si,TestRuleüzerinde çağrı yaparkenTestRulevecompose:ui:ui-test-junit4-accessibilitykullanmıyorsanızcompose:ui:ui-test-accessibilityolan ayrı paketlere taşındı (I3c318, b/391560768). LaunchedEffectverememberCoroutineScope'de yığın izlemeleri oluşturma desteği eklendi (I705c0, b/354163858)
Harici Katkı
- Deneysel
runComposeUiTestişlevini, askıya alma engellemesini kabul edecek şekilde değiştirme. Ayrıca, ikili uyumluluk için desteği sonlandırılmış bir işlevrunComposeUiTesteklendi (I3b88c, b/361577328).
Sürüm 1.8
Sürüm 1.8.3
18 Haziran 2025
androidx.compose.ui:ui-*:1.8.3 yayınlandı. 1.8.3 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Özellik tamamen doğrulandığından
isGetFocusedRectReturnEmptyEnabledile ilgili işaret kaldırıldı. (Ife722) - İşaret
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled,ComposeViewiçinde odaklanılabilir hiçbir şey olmadığında dikdörtgeni boş değere ayarlar. Bu, odak aramasının odaklanılacak görünümü seçmesini engeller. Bu, özellikle bir IME'nin,ComposeViewverequestFocus()başarısız olabilecek şekilde odaklanmaya çalışabileceği bir SONRAKİ seçeneği olduğunda önemlidir. (Ibd0e2, b/369256395)
Sürüm 1.8.2
20 Mayıs 2025
androidx.compose.ui:ui-*:1.8.2 yayınlandı. 1.8.2 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- İletişim kutusunda etkin etkinlik akışı sırasında iletişim kutusu kaldırılırken oluşan NPE hatası düzeltildi (6a7e7f).
- Yalnızca çizim güncellemeleri yapıldığında
onLayoutRectChangesimgesinin, sınırlı zaman çizelgesine göre güncellenmemesi sorunu düzeltildi. (03b82d)
Sürüm 1.8.1
7 Mayıs 2025
androidx.compose.ui:ui-*:1.8.1 yayınlandı. 1.8.1 sürümü bu commit'leri içerir.
Hata düzeltmeleri
onLayoutRectChangedveLazyLayoutile ilgili bazı sorunları düzeltme d791b11- Önceden oluşturulmuş öğeler için yeniden ölçüm isteklerini atlayın. Bu hata, bazı durumlarda önceden getirme işlemi verimli bir şekilde çalışmadığı ve ölçüm çerçeve içinde gerçekleştiği için tembel düzenlerin kaydırma performansını etkiliyordu. 742087a
Sürüm 1.8.0
23 Nisan 2025
androidx.compose.ui:ui-*:1.8.0 yayınlandı. 1.8.0 sürümü bu commit'leri içerir.
1.7.0 sürümünden beri yapılan önemli değişiklikler
- Compose 1.8, anlamsal otomatik doldurma için yeni eklenen desteği içerir. Metin bileşenleri için otomatik doldurma özelliğinin kullanılabilmesi için her iki modülün de en yeni sürümleri gerekir. Bu nedenle, kullandığınız UI ve Foundation sürümlerinin 1.8 veya daha yeni bir sürüm olduğundan emin olun. API kullanımı ve örnekleri için lütfen otomatik doldurma belgelerine göz atın. Daha fazla bilgiye buradan ulaşabilirsiniz.
- Compose 1.8, ek dokunsal geribildirim türlerini destekler:
Confirm,ContextClick,GestureEnd,GestureThresholdActivate,Reject,SegmentFrequentTick,SegmentTick,ToggleOn,ToggleOff,VirtualKey. Bu özelliğeLocalHapticFeedbacküzerinden erişilebilir. Android'de ise Vibrator API, dokunma teknolojisinin desteklendiğini gösterdiğinde bu özellik varsayılan olarak kullanılabilir. Modifier.focusRestorer(),onEnterveonExitFocusProperties(I6e667) dahil olmak üzere birden fazla Focus API artık kararlı sürümde. ArtıkrequestFocusişlevini çağırırken birFocusDirectionbelirtebilirsiniz. Belirli bir yönde odaklanmaya olanak tanımak için hemfocusRequesterhem deFocusTargetModifierNode'yerequestFocus(FocusDirection)API'si ekledik. (I5d9ec][https://android-review.googlesource.com/#/q/I5d9eca3a2cd283c1b84ad6b77d929ef9a49ce4cc], b/245755256)
Sürüm 1.8.0-rc03
9 Nisan 2025
androidx.compose.ui:ui-*:1.8.0-rc03 yayınlandı. 1.8.0-rc03 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Regresyona neden olan bazı odaklanma birlikte çalışabilirlik düzeltmelerini devre dışı bırakır. (b9d998, b/369256395, b/378570682, b/376142752, b388590015/, b/389994198, b/391378895)
Sürüm 1.8.0-rc02
26 Mart 2025
androidx.compose.ui:ui-*:1.8.0-rc02 yayınlandı. 1.8.0-rc02 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Compose hiyerarşisine yerleştirilmiş odaklanılmış görünümlerin, odaklanılmış görünüm bir LazyList'ten kaldırıldığında yeniden girişli kompozisyona neden olması sorunu düzeltildi. (765562)
Sürüm 1.8.0-rc01
12 Mart 2025
androidx.compose.ui:ui-*:1.8.0-rc01 yayınlandı. 1.8.0-rc01 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Odaklanmış bir
AndroidView, sanal klavye etkinken kaldırıldığında yaşanan kilitlenme sorunu düzeltildi. (Ic725a) - Yeni odak durumu işleme uygulamasındaki birkaç sorun düzeltildi. (b/395895685)
LaunchedEffecttuşu kullanılarak bir metin alanına odaklanma isteğinde bulunulduğunda otomatik doldurmanın engellenmesine neden olan sorun düzeltildi. (b/392539099)
Sürüm 1.8.0-beta03
26 Şubat 2025
androidx.compose.ui:ui-*:1.8.0-beta03 yayınlandı. 1.8.0-beta03 sürümü bu commit'leri içerir.
API değişiklikleri
- Android'de erişilebilirlik kontrollerini etkinleştiren
enableAccessibilityChecks()API'si, TestRule'u kullanmıyorsanızcompose:ui:ui-test-accessibility,TestRuleçağrılırken isecompose:ui:ui-test-junit4-accessibilityolan ayrı paketlere taşındı (I547ef, b/391560768). - Çıkış dönüşümü uygulanmadan önce bir metin alanının değerini yakalayan yeni bir semantik özellik
InputTexteklendi. (Iae46a)
Hata düzeltmeleri
- Otomatik doldurma hizmetlerinin giriş metni yerine dönüştürülmüş çıkış metnini kaydetmesine neden olan sorun düzeltildi. (Iae46a, b/395911609, b/176949051)
Sürüm 1.8.0-beta02
12 Şubat 2025
androidx.compose.ui:ui-*:1.8.0-beta02 yayınlandı. 1.8.0-beta02 sürümü bu commit'leri içerir.
Yeni Özellikler
Configuration#screenWidth/heightDpçağrılarına karşı uyarı veren bir lint kontrolü eklendi. Geçerli pencere boyutunu almak için bunun yerineLocalWindowInfo.current.containerSizekullanılabilir.
Sürüm 1.8.0-beta01
29 Ocak 2025
androidx.compose.ui:ui-*:1.8.0-beta01 yayınlandı. 1.8.0-beta01 sürümü bu commit'leri içerir.
API değişiklikleri
ContextualFlowRowveContextualFlowColumn, kullanımdan kaldırıldı olarak işaretlendi. Bu deneysel bileşen 1.7 sürümünde kullanıma sunulmuştu ancak henüz kararlı hale getirilmemişti ve uygulamanın istenmeyen bir durum olduğu düşünülüyordu. Gelecekte, bu bileşenin çözmesi amaçlanan kullanım alanlarını çözen bir bileşen sağlanabilir.FlowRowveFlowColumn, 1.7 sürümünde kullanıma sunulan veoverflowparametresini içeren deneysel aşırı yüklemelere sahiptir. Bu parametrenin kullanımı sonlandırıldı. Bunun yerine bu parametre olmadan aşırı yüklemeler kullanılabilir. Bu aşırı yüklemeler için varsayılan "taşma" davranışı, kullanıma sunulduğundan beri olduğu gibi "Kırp" olacaktır.ContextualFlowRowiçin birçok kullanım alanı FlowRow kullanılarak gerçekleştirilebilir ancak bunun her durumda geçerli olmadığını kabul ediyoruz.ContextualFlowRow, kullanıcı alanında tamamen uygulanabilir ve istenirse uygulaması kopyalanıp uyarlanabilir. Gelecekte bu kullanım alanlarını farklı bir şekilde çözmeyi umuyoruz. (Ibafec)
SemanticsNodeInteraction.semanticsId()kaldırıldı. Bunun yerineSemanticsNodeInteraction.fetchSemanticsNode().idpolitikasını kullanın. (Ie397a)- Eski otomatik doldurma API'lerinin desteği sonlandırıldı. Bunun yerine yeni anlamsal API'yi kullanın. (I943ff)
requestAutofillAPI'yi otomatik doldurma yöneticisinin dışında çalışacak şekilde yeniden yazın. (Id1929)
Hata düzeltmeleri
- Anlamsız bir
previouslyFocusedRectparametresi (odak yönüyle ilgili) içerenrequestFocus()öğesininComposeViewöğesini atlamasına neden olan odak sorunu düzeltildi. (Ifdc2f, b/388590015) GraphicsLayer.record { this@ContentDrawScope.drawContent() }kullanılırken zaman zaman oluşan NPE (NullPointerException) hatası düzeltildi.drawContent()kaydı yapıyorsanızDrawScopeiçindeGraphicsLayer#recorduzantı işlevini kullandığınızdan emin olun.GraphicsLayerüzerinde üye işlevini kullanmayın. (I75fc0, b/389046242)- Üç nokta içeren metin düzeninin, animasyonlar sırasında bazen yanlış çevrilmesi sorunu düzeltildi. Daha fazla bilgi için b/389707025 adresini inceleyin (Ie55b1, b/389707025).
Sürüm 1.8.0-alpha08
15 Ocak 2025
androidx.compose.ui:ui-*:1.8.0-alpha08 yayınlandı. 1.8.0-alpha08 sürümü bu commit'leri içerir.
API değişiklikleri
AutofillManageröğesini soyut sınıf yapma. (I0a3b0)- IME'nin odaklanılabilir öğeler olmadan
ComposeViewöğesine odaklanmaya çalıştığında kilitlenme, alt öğeAndroidViewsiçinde odak değişikliği ve odaklanma isteğininAndroidViewbırakması gibi odaklanmayla ilgili çeşitli sorunlar düzeltildi. (Ia03c3, b/369256395, b/378570682, b/376142752) FocusEnterExitScope.cancelFocus()kelimesinicancelFocusChange()olarak değiştirme (I89959)- Artık
RectInfo.calculateOcclusions()ile birleştirilebilir tıkanmaları hesaplayabilirsiniz. DelegatableNodeüzerinde, genel düzen değişiklikleri için bir dinleyici kaydetmek üzere uzantı işlevi eklendi. (I68b59)
Hata düzeltmeleri
ComposeContentTestRule.setContentkullanılırken test edilen composable için ana makine olarak kullanılan etkinlik, artık SDK 35'i hedeflerkenActionBaröğesinin test içeriğiyle çakışmasını önlemek içinTheme.Material.Light.NoActionBartemasını kullanıyor. Bu davranışı devre dışı bırakmak içinui-test-manifestbağımlılığını kaldırabilir ve test uygulamanızın AndroidManifest.xml dosyasına, istediğiniz temayla birlikteComponentActivityiçin bir etkinlik girişi ekleyebilirsiniz. (I7ae1b, b/383368165)- Aynı varyasyon ayarlarına sahip kaynak yazı tipleri artık yanlış varyasyon ayarlarının uygulanmasına neden olan aşırı önbelleğe almayı önleyecek. (If3dff, b/372044241)
AnnotatedString.fromHtmlartık<ul>/<li>etiketlerini destekliyor. (I7c2fe, b/299662276, b/139326648)
Harici Katkı
- Yeni bir pano arayüzü ve bunun için bir kompozisyon yereli eklendi. (I80809)
Sürüm 1.8.0-alpha07
11 Aralık 2024
androidx.compose.ui:ui-*:1.8.0-alpha07 yayınlandı. 1.8.0-alpha07 sürümü bu commit'leri içerir.
API değişiklikleri
- Araçlar için
LayoutNodealanındaki sahibi gösterildi. (I26f7f) LocalAutofillHighlightColorkompozisyonu, yerel kullanım için Renk türünde olmalıdır. (I0e05b)- Desteği sonlandırılan
UrlAnnotationve yöntemleri deneysel olarak işaretlenmeye devam edecek. (Ic0021)
Hata düzeltmeleri
BasicTextveya Text composable içindeLinkAnnotationkullanılırkenIndexOutOfBoundsExceptionkilitlenmesi sorunu düzeltildi (be7605, b/374115892).- Özel şekilli doldurulmuş metin alanlarının gösterge çizgisini kırpmamasıyla ilgili sorun düzeltildi. (I4f87f, b/380704151)
- Uzun ekran görüntülerinde eksik arka planlar düzeltildi. (I4d57a)
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için şu derleyici bağımsız değişkenini kullanmalıdır:
-Xjspecify-annotations=strict(Bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Idfef8, b/326456246) - Android Q+ üzerinde çalışırken geniş renk gamı ve HDR renkleri için Compose desteği güncellendi. (Icd8be, b/379135036)
- Yüklenemeyen kaynak yazı tipleri, ölçümde istisna oluşturma şeklindeki önceki davranış yerine artık varsayılan yazı tipine sessizce geri dönecek. (Ib6a49)
AndroidViewayrılıp takıldığında odak kaybı sorunu düzeltildi. (I53446)- Sınırlı düzen işleminin dışından
requestFocus()kabul etme. (Ia8461)
Harici Katkı
- Kullanıcı arayüzüne
BringIntoViewResponderModifierNodeekleyin. Bu, Bring Into View işlevini uygulamak için yeni bir yol sunar ve platform düzeyinde uygulanmasına olanak tanır. (Ia6dd8)
Sürüm 1.8.0-alpha06
13 Kasım 2024
androidx.compose.ui:ui-*:1.8.0-alpha06 yayınlandı. 1.8.0-alpha06 sürümü bu commit'leri içerir.
API değişiklikleri
stylusHoverIcondeğiştiricisini ekler. (Iff20a, b/331289114)- Otomatik doldurma yöneticisini arayüz olarak değiştirir. (I84914, b/376080755)
- Belirli bir yönde odaklanmaya olanak tanımak için hem
focusRequesterhem deFocusTargetModifierNodeöğesinerequestFocus(FocusDirection)eklendi. (I5d9ec, b/245755256) FocusProperties.enterveFocusProperties.exit,FocusDirectionparametresi yerine alıcı kapsamı kullananonEnterveonExitile değiştirildi. (I6e667)- Metin araç çubuğuna otomatik doldurma desteği eklendi. (Ie6a4c)
Modifier.focusRestorer()(I99c03) ile ilgili API değişiklikleri:- parametre adı "fallback" olarak değiştirildi
- parametresi artık lambda değil,
FocusRequester - parametresi artık varsayılan değer olarak Default ile NULL olmayan bir değerdir.
- Otomatik doldurma yöneticisi arayüzünden
@Experimentalek açıklamasını kaldırma. Bu özellik, bu sürümde kullanıma sunulması hedeflenerek hâlâ geliştirme aşamasındadır ancak @Expemiental API'yi (Id8398) kullanıma sunmak istemiyoruz. LocalHapticFeedbackartık Vibrator API, dokunma teknolojisinin desteklendiğini belirttiğinde varsayılan birHapticFeedbackuygulaması sağlar. AşağıdakilerHapticFeedbackType-Confirm,ContextClick,GestureEnd,GestureThresholdActivate,Reject,SegmentFrequentTick,SegmentTick,ToggleOn,ToggleOff,VirtualKey. Wear Compose'dakiButton,IconButton,TextButtonveCardgibi uzun tıklanabilir bileşenler, uzun tıklama işleyicisi sağlandığında artıkLONG_PRESSdokunsal geri bildirimini veriyor. (I5083d)- Varsayılan kaydırma sonu uygulamasının bir örneğini oluşturmak veya parametrelerini özelleştirmek için
OverscrollConfigurationveLocalOverscrollConfigurationkaldırılır,rememberPlatformOverscrollFactoryeklenir. Aşırı kaydırmayı devre dışı bırakmak içinLocalOverscrollConfiguration provides nullyerineLocalOverscrollFactory provides nullkullanın. Işıma rengini / dolgusunu değiştirmek içinLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)yerineLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)kullanın. (Ie71f9, b/255554340, b/234451516) - Deneysel
GlobalAssertionsAPI'si kaldırıldı. Bu özellik, erişilebilirlik kontrolleri yapmak için tasarlanmıştır. Bunun yerineenableAccessibilityChecks()özelliğini kullanın. (I59322)
Sürüm 1.8.0-alpha05
30 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha05 yayınlandı. 1.8.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
Otomatik doldurma, bu sürümde bir özellik bayrağının arkasında kullanıma sunulmuştur. Performansı iyileştirmek için çalışmalarımızı sürdürüyoruz ve API'ler hakkında erken geri bildirim almak istiyoruz. API'lerin, geri bildirimlere göre kararlı sürümden önce geliştirilmesi beklenmektedir.
- Otomatik Doldurma'yı etkinleştirmek için
onCreateiçindeComposeUiFlags.isSemanticAutofillEnableddeğerini true olarak ayarlayın ve en son Anlık Oluşturma Özetini kullanın. - Otomatik Doldurma'nın bu sürümü, kimlik bilgilerinin manuel olarak, Güçlü Şifre Öner özelliğiyle ve gezinme yoluyla kaydedilmesini destekler. Ayrıca, otomatik doldurulabilir bir alan odaklandığında veya Otomatik Doldurma, metin bileşenlerindeki metin araç çubuğu üzerinden tetiklendiğinde de doldurmayı destekler. Otomatik doldurma işlemi tamamlandığında bileşen vurgulanır.
API değişiklikleri
- Otomatik doldurma arayüzünü
expect/actualyapısına uygun şekilde değiştirin. (I22dce) - Otomatik doldurma özelliğinin başarılı doldurma vurgusunun tonunu değiştirmek için kullanılabilecek
CompositionLocalsimgesini kullanıma sunduk. (I32092) Modifier.onRectChangedAPI'si eklendi. Bu API,LayoutNodeöğesinin kök/pencere/ekrana göre konumuna ve boyutuna abone olmanızı sağlar. API, mevcutonGloballyPositioneddeğiştiricinin çözdüğü birçok kullanım alanını çözer ancak bunu çok daha az ek yükle yapar ve API, kullanım alanının gerektirdiği şekilde geri çağırmayı sekmeyi kaldırma ve kısıtlama olanaklarıyla birlikte gelir. (Id28c7, b/372765423, b/372757007, b/372994338)- Otomatik Doldurma Yöneticisi'ni, kullanıcılara yeni girilen kimlik bilgilerini kaydetmede yardımcı olan
commit()vecancel()API'lerini içerecek şekilde genişletir. (I2da00) - Kullanıcıların otomatik doldurma yolculuğuna ince ayar yapmak için kullanılabilecek yeni bir
AutofillManagerarayüzü ve otomatik doldurmanın bu yeni sürümünü etkinleştirmek için birisSemanticAutofillEnabledişareti sunar. (I9d484) Modifier.onRectChangedAPI'si eklendi. Bu API,LayoutNodeöğesinin kök/pencere/ekrana göre konumuna ve boyutuna abone olmanızı sağlar. API, mevcutonGloballyPositioneddeğiştiricinin çözdüğü birçok kullanım alanını çözer ancak bunu çok daha az ek yükle yapar ve API, kullanım alanının gerektirdiği şekilde geri çağırmayı sekmeyi kaldırma ve kısıtlama olanaklarıyla birlikte gelir. (I3c8fa)- Genişletilmiş otomatik doldurma desteği için anlamsal özellikler ve veri türleri ekleyin. (I52c7d)
AnnotatedStringoluşturucudaki tüm yöntemler artık deneysel değildir (Ia89c8, b/261561823)
Hata düzeltmeleri
- Oluşturma işlemine yerleştirilen görünümler artık odaklanıldığında döner etkinlikler alabiliyor (I4d53a, b/320510084)
- Çeşitli kaynak türlerinin yapılandırma değişikliklerinde güncellenmemesine neden olan sorun düzeltildi (Ia9b99, b/352336694).
- Belirli eski Sony cihazlarda POBox Japonca klavye kullanılırken
TextField'nın düzgün çalışmasını engelleyen sorun giderildi. (Ia9b99, b/373743376) - İletişim kutularının ortalanmak yerine ekranın en altında gösterilmesiyle ilgili sorun düzeltildi (Ia2ec, b/373093006).
- 35 ve sonraki API sürümlerini hedefleme artık iletişim kutularında
decorFitsSystemWindowsdeğerinin yanlış olarak ayarlanmasını zorunlu kılmaz. (Ibc94, b/364492593) - Katmanlar pencereler arasında (ör. iletişim kutusu ve ana içerik) taşındığında kilitlenmenin düzeltilmesi (I675ba, b/330955281)
Sürüm 1.8.0-alpha04
16 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha04 yayınlandı. 1.8.0-alpha04 sürümü bu commit'leri içerir.
API değişiklikleri
DelegatableNode#onDensityChangeveDelegatableNode#onLayoutDirectionChangegeri çağırma işlevlerini ekleyerek bunlar değiştiğinde düğüm durumunun güncellenmesine olanak tanır (I04f3e, b/340662451).- Geçerli pencerenin içerik kapsayıcı boyutunu sağlamak için
WindowInfo#containerSizeekler. Bu bilgi,LocalWindowInfokullanılarak alınabilir. (Idc38c, b/369334429, b/360343819) - Devam eden bir hızlı kaydırma sırasında düğüm ağacından kaldırılan iç içe kaydırılabilir öğeler için düzeltme sunuldu. Artık bu düğümler, hızlı kaydırmayı iptal edecek ve kalan hızla
onPostFlingetkinliğini doğru şekilde gönderecek. Ayrıca, gerileme durumunda davranışı kontrol etmek içinNewNestedScrollFlingDispatchingEnabledişaretini kullanıma sunuyoruz. Beta sürümünden önce işaret kaldırılacak. (I05c37, b/371168883) - Tek bir işaretçi giriş değiştiricisinin dokunma sınırlarını büyütmek için kullanılabilecek
PointerInputModifierNode#touchBoundsExpansiontanıtıldı. (Iccf02, b/335339283) - Geçerli pencerenin içerik kapsayıcı boyutunu sağlamak için
WindowInfo#containerSizeekler. Bu bilgi,LocalWindowInfokullanılarak alınabilir. (I27767, b/369334429, b/360343819) - Kararlı temel sürümüne sabitlemek için
readOnly'yıTextFields'den kaldırın. (I3aaba) ParagraphveParagraphIntrinsicsartıkAnnotatedStringöğesine uygulanan tüm ek açıklamaların listesini alıyor. Daha önce yalnızcaSpanStyleslistesi vardı (I12f80).
Hata düzeltmeleri
AnnotatedStringiçinde paragrafların işlenme şekli güncellendi. Daha önce yalnızca çakışmayan paragraflar oluşturabiliyordunuz. ArtıkAnnotatedString, tamamen çakışan ve birleştirilecek paragraflara, ayrıca içteki paragrafın sınırlarında bölünecek dıştaki paragrafın ve içteki paragrafın stilinin dıştaki paragrafın stiliyle birleştirileceği iç içe paragraflara izin veriyor (Ic9554).AnnotatedStringiçinde sıfır uzunlukluLinkAnnotationile kilitlenmeyi düzeltin. (89aac6)
Sürüm 1.8.0-alpha03
2 Ekim 2024
androidx.compose.ui:ui-*:1.8.0-alpha03 yayınlandı. 1.8.0-alpha03 sürümü bu commit'leri içerir.
API değişiklikleri
- Kotlin sürümü 1.9'a güncellendi (I1a14c)
- Erişilebilirlik hizmetleri için sayfa gezginlerindeki liste davranışını taklit etmek amacıyla Bant adlı yeni bir Anlamsal Yapı Rolü kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
invisibleToUser()filtresinihideFromAccessibilityolarak yeniden adlandırın. İşlevi aynı kalır. Daha fazla bilgi için dokümanlara bakın. (Ib43a3)
Hata düzeltmeleri
SensitiveContentdeğiştiricisi için dokümanları güncelleme (Ib0442)- Bazı Android sürümlerinde belirli genel ana hat kliplerinin yükseklik gölgeleriyle birlikte yoksayılması sorunu düzeltildi.
- Belirli Android sürümlerinde genel bir ana hat klibi belirtildiğinde boş kliplerin uygulanmasıyla ilgili sorun düzeltildi.
- IME, harici bir görünümde etkinken ve
ComposeViewüzerinde odaklanmak için Sonraki işlemi kullanıldığında oluşan istisna düzeltildi.clearFocus()davranışı, API < 28'deki View davranışı ile uyumludur. Bu API'declearFocus(), varsayılan View'un odaklanmasına neden olabilir. - Farklı düzenleme geçişleri için alt kompozisyon yönetimini ayırarak
LazyListiçinde yerleşimin ayrılmış düğümlerde gerçekleşmesiyle ilgili sorun düzeltildi. - Odak
TextField'danEditText'ye veya başka bir View tabanlı düzenleyiciye geçtiğinde yazılım klavyesinin titremesine neden olan sorun düzeltildi. - İç içe yerleştirilmiş kaydırma düğümleri artık ayrıldıktan sonra
onPostFlingetkinliklerini doğru şekilde gönderiyor. - Genel performans iyileştirmeleri
Sürüm 1.8.0-alpha02
18 Eylül 2024
androidx.compose.ui:ui-*:1.8.0-alpha02 yayınlandı. 1.8.0-alpha02 sürümü bu commit'leri içerir.
API değişiklikleri
TextOverflow.StartEllipsisveTextOverflow.MiddleEllipsisartık kullanılabilir. Bu sayede, tek satırlık metin satırının başına veya ortasına üç nokta yerleştirilebilir. (I38913, b/185418980)
Hata düzeltmeleri
- Dalog'u düzeltme
dismissOnClickoutside(39a3d, b/364508685) - İletişim kutusu içeriğinin gölgelerini kırpmayın (e8e2f, b/363027803)
- Odak arama, Oluşturma ile Görünüm arasında hareket ederken hatalı davranış düzeltildi (58377, b/350534714).
Harici Katkı
AlignmentLinesMapartıkVerticalAlignmentLineveyaHorizontalAlignmentLinebeton türlerini kabul ediyor. (I02912)- Yeni ortak
ByteArray.decodeToImageBitmap(): ImageBitmapyöntemi. (I83c21)
Sürüm 1.8.0-alpha01
4 Eylül 2024
androidx.compose.ui:ui-*:1.8.0-alpha01 yayınlandı. 1.8.0-alpha01 sürümü bu commit'leri içerir.
Sürüm 1.7
Sürüm 1.7.8
12 Şubat 2025
androidx.compose.ui:ui-*:1.7.8 yayınlandı. 1.7.8 sürümü bu commit'leri içerir.
Sürüm 1.7.7
29 Ocak 2025
androidx.compose.ui:ui-*:1.7.7 yayınlandı. 1.7.7 sürümü bu commit'leri içerir.
Hata düzeltmeleri
LinkAnnotationileAnnotatedString, Text composable'a geçirilirkenIndexOutOfBoundsExceptiondüzeltildi. (Ic96d2)AnnotatedStringiçindeLinkAnnotationkullanıldığında nadir durumlarda testlerde zaman aşımı sorununa neden olan hata düzeltildi. (I04a03)
Sürüm 1.7.6
11 Aralık 2024
androidx.compose.ui:ui-*:1.7.6 yayınlandı. 1.7.6 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Daha önce, odak sisteminde bekleyen geçersiz kılmalar olduğunda bir önemli etkinlik ile karşılaştığımızda hata veriyorduk. Şimdi bunun yerine bir hata kaydediyoruz (I7ea0, b/346370327).
SemanticsPropertyReceiver.invisibleToUser()adlı öğeden deneysel ek açıklamayı kaldırdı. Bu işlev, 1.8 sürümünde kullanımdan kaldırılacak ve yerineSemanticsPropertyReceiver.hideFromAccessibility()işlevi eklenecek. (I448f0, b/376479686)- Belirli eski Sony cihazlarda POBox Japonca klavyesi kullanılırken
TextFieldözelliğinin düzgün çalışmasını engelleyen sorun düzeltildi. (I94e0e, b/373743376) BasicTextöğesinin inlineContent'ininTalkBacktarafından duyurulmamasına neden olan erişilebilirlik sorunu düzeltildi. (I67bcb, b/376479686)
Sürüm 1.7.5
30 Ekim 2024
androidx.compose.ui:ui-*:1.7.5 yayınlandı. 1.7.5 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Özel ana hatlarla yükseklik ve kırpmanın düzgün şekilde oluşturulmamasına neden olan sorunlar düzeltildi.
- Sıfır genişlikli
LinkAnnotationile oluşan metin kilitlenmesi düzeltildi. (Ic1e2e) - Tıklanabilir bir Text composable olarak oluşturulduğunda düğmenin
Talkbackbölümündeki duyuruyu düzeltir. (I1f588)
Sürüm 1.7.4
16 Ekim 2024
androidx.compose.ui:ui-*:1.7.4 yayınlandı. 1.7.4 sürümü bu commit'leri içerir.
Sürüm 1.7.3
2 Ekim 2024
androidx.compose.ui:ui-*:1.7.3 yayınlandı. 1.7.3 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Genel bir ana hat klibi belirtmenin, belirli Android sürümlerinde boş bir klip sınırına yol açmasıyla ilgili sorun düzeltildi.
- IME, harici bir görünümde etkinken ve
ComposeViewüzerinde odaklanmak için Sonraki işlemi kullanıldığında oluşan istisna düzeltildi.clearFocus()davranışı, API < 28'deki View davranışı ile uyumludur. Bu API'declearFocus(), varsayılan View'un odaklanmasına neden olabilir. - İleriye dönük geçersiz kılma için yanlış
placeOrderkullanılmasına neden olan sorun düzeltildi. Bu sayede, ileriye dönük yerleştirmenin atlandığı uç durum düzeltildi.
Sürüm 1.7.2
18 Eylül 2024
androidx.compose.ui:ui-*:1.7.2 yayınlandı. 1.7.2 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Ayrıntılı izlemeyi kaldırarak erişilebilirlik düğümü bilgisi ve anlamsal yapı etkinliklerinin performansını iyileştirdik. (I89156, b/362530618)
ComposeView, çok büyük bir ölçüm boyutu iletildiğinde (da5db, b/347036173) artık kilitlenmeyecek.- Düğmelerdeki
LiveRegionduyurularının yapılmamasına neden olan erişilebilirlik ekran okuyucu sorunu düzeltildi. (f66fa7, b/348590026)
Sürüm 1.7.1
10 Eylül 2024
- Android yapıları değiştirilmez.
-desktopeser kaldırıldı,-jvmStubsve-linuxx64Stubseserleri eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar.
Sürüm 1.7.0
4 Eylül 2024
androidx.compose.ui:ui-*:1.7.0 yayınlandı.
1.6.0 sürümünden beri yapılan önemli değişiklikler
1.7.0 sürümündeki önemli değişiklikler bu blog yayınında ele alınmıştır.
Sürüm 1.7.0-rc01
21 Ağustos 2024
androidx.compose.ui:ui-*:1.7.0-rc01 yayınlandı. 1.7.0-rc01 sürümü bu commit'leri içerir.
Önemli değişiklikler
- ui:ui modülü artık foundation:foundation'ın minimum sürümünün en az 1.7.0-rc01 veya daha yeni olmasını zorunlu kılıyor. Bu, 1.7.0-alpha01 sürümünün başlarında yapılan
NestedScrollSourcedeğişiklikleriyle ilgili olarak kullanıcı arayüzü ve temel arasındaki davranış uyumsuzluğunu düzeltmek için zorunlu kılınmıştır.
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.ui:ui-*:1.7.0-beta07 yayınlandı. 1.7.0-beta07 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Metin girişiyle ilgili
SemanticsNodeInteraction,performTextReplacement,performTextInputveperformTextClearanceişlevleri artık salt okunurTextFieldsüzerinde çağrıldığında onaylama hataları verecek. (I4ae8f)
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.ui:ui-*:1.7.0-beta06 yayınlandı. 1.7.0-beta06 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.ui:ui-*:1.7.0-beta05 yayınlandı. 1.7.0-beta05 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Yazılım klavyesinin değiştirilmesi durumunda odak kaybedilip yeniden kazanılana kadar
TextField'nın yeni klavyeden giriş kabul etmemesine neden olan hata düzeltildi. - Katman içeriklerini kalıcı hale getirme girişimlerinin,
SurfaceViewiçerikle oluşturma sırasında istenmeyen yan etkilere neden olduğu sorun düzeltildi.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.ui:ui-*:1.7.0-beta04 yayınlandı. 1.7.0-beta04 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Çok büyük metin satırları (ör. 10.000 karakter) ölçülürken kilitlenmelerin önüne geçildi (8157ab).
GraphicsLayerAPI'si için yazılım oluşturma desteğini devre dışı bırakın. (35ddd8)- Katman kalıcılığı mantığındaki kilitlenme düzeltildi. (70b13e)
- Katman nesnelerini yeniden kullanma optimizasyonu, oluşturma sorunlarına neden olduğundan geri alındı. (70b13e)
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.ui:ui-*:1.7.0-beta03 yayınlandı. 1.7.0-beta03 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-beta02 yayınlandı. 1.7.0-beta02 sürümü bu commit'leri içerir.
API değişiklikleri
SemanticsProperties.Editable,IsEditableolarak yeniden adlandırıldı veSemanticsPropertyReceiver.editable,isEditabledeğerine değiştirildi. Özellik artık bir Boole değeri ve her zaman metin alanlarıyla belirtilir. (I8acd8)- Erişilebilirlik karşılaştırması parametresini yeniden adlandırın. (I3d440)
- Bağlantıları stilize etmek için güncellenen API:
TextLinkStylesartıkLinkAnnotationoluşturucusunun veAnnotatedString.fromHtmlyönteminin (I90b2b) bir parçasıdır. AyrıcaTextDefaults, materyalden (I5477b) kaldırıldı.
Hata düzeltmeleri
- Amacını daha iyi yansıtması için
LayoutCoordinates.introducesFrameOfReference,LayoutCoordinates.introducesMotionFrameOfReferenceolarak yeniden adlandırıldı. İlgili işlevi, koordinatları bu işarete göre hesaplayacak şekilde yeniden adlandırdı. (I3a330)
Sürüm 1.7.0-beta01
14 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-beta01 yayınlandı. 1.7.0-beta01 sürümü bu commit'leri içerir.
API değişiklikleri
performCustomAccessibilityActionLabelled,performCustomAccessibilityActionWithLabelolarak,performCustomAccessibilityActionWhereiseperformCustomAccessibilityActionWithLabelMatchingolarak yeniden adlandırıldı. (I5387f)AnnotatedString.hasEqualsAnnotationsartıkhasEqualAnnotations(I685c0)- Metinde Material temalı bağlantıları alma API'si güncellendi. Özellikle, temalı
TextDefaultsoluşturmak ve temalı bağlantılarla HTML'yi ayrıştırmak için kullanılan yöntemlerLinkAnnotationsöğesinden kaldırıldı. Bunun yerine, bağlantıların Text composable'a parametre olarak stilize edilmesine olanak tanıyan birTextLinkStylessınıfı eklendi. (I31b93)
Hata düzeltmeleri
- Etkinlikler sırasında işaretçi girişi değiştiricileri dinamik olarak eklenirken ek kullanım alanları düzeltildi. 63e1504
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.ui:ui-*:1.7.0-alpha08 yayınlandı. 1.7.0-alpha08 sürümü bu commit'leri içerir.
API değişiklikleri
- Değiştirilebilir şekil uygulamaları için destek eklenir.
Shape#createOutlineartık grafik katmanlarında gözlemleniyor. Bu nedenle, durum değiştiğinde içindeki durum değerlerinin okunması geçersiz kılınmaya neden olacak ve daha iyi performans gösteren şekil animasyonlarına olanak tanıyacak. (Id1629, b/326070216) isPositionedByParentWithDirectManipulation,introducesFrameOfReferenceolarak yeniden adlandırıldı. Bu özelliğin artık ters etki gösterdiğini, yani varsayılan olarak çoğuLayoutCoordinatesöğesinin bir referans çerçevesi oluşturduğunu ve yalnızca doğrudan manipülasyon altında yerleştirildiğinde özelliğin yanlış olacağını unutmayın. Yalnızca referans çerçevesi sunanlarla konum sorgulamak içinpositionInLocalFrameOfReference(...)kullanın. VeyaLookaheadScopepositionInLocalLookaheadFrameOfReference. (Ifc5f7)LookaheadScopeAPI'ler kararlı hale getirildi (I21507)- API konseyinin geri bildirimine göre
getScrollViewportLengthiçin işlem lambda'sını değiştirin. (Ibc74a) GraphicsLayerAna hat API'leri, int yerine kayan nokta parametrelerini kullanacak şekilde güncellendi. Kayan nokta tabanlı Offset ve Size satır içi sınıflarında (I2fb03, b/333863462) zaten mevcut olan Belirtilmemiş sabitler lehineUnsetOffset/UnsetSize IntSizesentinel değerleri kaldırıldı.- Testler sırasında fare girişi yerleştirilirken
MouseInjectionScope.click(),MouseInjectionScope.doubleClick(),MouseInjectionScope.tripleClick(),MouseInjectionScope.longClick()artık daha evrensel olarak uygulanabilir hale getirmek içinbutton: MouseButtonparametresini kabul ediyor. Tüm yöntemler için varsayılan değerMouseButton.Primary'dır. (I31a23, b/190493367, b/261439695) LinkInteractionListeneriçindeonClicked,onClickolarak yeniden adlandırıldı. (Iaa35c)TextInclusionStrategy.isInsidefiltresiniisIncludedolarak yeniden adlandırın.Paragraph/MultiParagraph#getRangeForRect()dönüş türünü null yapılamaz hale getirin. (I51f26)
Hata düzeltmeleri
reverseScrolling=trueiçeren kaydırma kapsayıcıları için uzun ekran görüntüsü alma sorunu düzeltildi. (I7c59c)
Harici Katkı
- İç içe yerleştirilmiş
LazyListsöğelerinin (ör. iç içe yerleştirilmişLazyRowsöğelerini oluşturma işlevi gören birLazyColumn) önceden getirilmesi için destek eklendi. Bu değişikliğin, buLazyListsöğelerinde kaydırma sırasında kare düşmelerini azaltması bekleniyor. Varsayılan olarak, ilk 2 iç içe öğe önceden getirilir. Ancak bu davranış, yeniLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)veLazyListPrefetchStrategy#onNestedPrefetchAPI'leri ile kontrol edilebilir. (I51952)
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 commit'leri içerir.
API değişiklikleri
ClickableText, desteği sonlandırılmış olarak işaretlenir. Metne bağlantı eklemek için bağlantınıza karşılık gelen birLinkAnnotationileAnnotatedStringoluşturun ve buAnnotatedStringöğesini Text composable'a iletin. (I34d4b, b/323346994)- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMarginözelliğini kullanıma sunuyoruz.BasicTextFieldiçinJoinOrSplithareketini destekleme (Ie6e13, b/325660505) FocusProperties.enterveFocusProperties.exitartık deneysel değil.FocusDirection.EnterveFocusDirection.Exitartık deneysel değil.FocusRequester.Cancelartık deneysel değil (I461a1, b/261564106)- Düzen koordinatlarını sorgularken artık
excludeDirectManipulationOffsetbağımsız değişkenini kullanarak, çocuklarınıPlaceable.PlacementScope.withDirectManipulationPlacementile yerleştiren üst düzenlerin belirlediği ofseti hariç tutabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir Düzen, artık bunlarıwithDirectManipulationPlacementkullanarak yerleştirebilir (ör. varsayılan olarak uygulanan Kaydırma). Bu sayede,approachLayouttabanlı animasyonlar daha sezgisel hale gelir. Artık, yaklaşımını canlandırmaya karar verirken hangi ofsetin animasyonunu yapacağını ve hangi ofsetin doğrudan uygulanacağını ayırt etme fırsatı elde eder. (I60ec7) - Uzun ekran görüntüleri için özellik bayrağı kaldırıldı. (I28648, b/329128246)
LazyColumnartık uzun ekran görüntülerinde sabit başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)NestedScrollkaynakları, animasyonları (Side Effect) ve fare tekerleği ile klavyeyi (UserInput) de içerecek şekilde genişletilen bu kaynakların tanımına uyum sağlamak içinUserInputveSideEffectile değiştiriliyor. (I40579)ApproachLayoutModifierNodeveModifier.approachLayoutartık kararlı sürümde. EskiisMeasurementApproachComplete()veisPlacementApproachComplete()sırasıyla yeniisMeasurementApproachInProgress()veisPlacementApproachInProgress()ile değiştirildi.- Kullanımdan kaldırılan
intermediateLayoutdeğiştiricisi kaldırıldı. (I3e91c) RenderNodeve Picture gibi Displaylist destekli API'lerin begin/endRecording yöntemlerini yansıtmak içinGraphicsLayer#buildLayeröğesini record olarak yeniden adlandırın.rememberGraphicsLayer,rememberObserver'dan yararlanacak şekilde güncellendi. (I312c1, b/288494724, b/330758155)UrlAnnotationdesteği sonlandırıldı. Bunun yerineLinkAnnotation.Urlkullanın. Material temalandırma kullanıyorsanız Material temalandırmanın uygulandığı ek açıklamayı oluşturmak içinTextDefaultsnesnesini kullanın (I8d180, b/323346545).- Metin bağlantılarına normal stilin yanı sıra basılı durum stili seçeneği, fareyle üzerine gelme ve odaklanma stilleri eklendi (I5f864, �b/139312671).
String.parseAsHtml,AnnotatedString.Companion.fromHtmlolarak yeniden adlandırıldı. (I43dcd)parseAsHtmlyöntemine stil oluşturma bağımsız değişkenleri (linkStyle,focusedLinkStyle,hoveredLinkStyle) ve bir bağlantı etkileşimi dinleyicisi eklendi. HTML etiketli dizeyi<a>etiketleriyle ayrıştırırken yöntem, bu tür her etiket için birLinkAnnotation.Urloluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her ek açıklamaya iletir. (I7c977)LinkAnnotationartık duruma dayalı stil oluşturma bağımsız değişkenlerini ve birLinkInteractionListeneralır. Köprü almak için bu ek açıklamayıAnnotatedStringöğesine ekleyin.focusedStateve/veyahoveredStateparametrelerini ileterek bağlantılar odaklandığında ve/veya üzerine gelindiğinde bağlantıların görselconfigurationözelliğini tanımlayabilirsiniz. (I81ce4, b/139312671)ImeOptions.hintLocalesartık boş değer içerebilir değil. Boş bir yerel ayar listesi iletmek istiyorsanız lütfenLocaleList.Emptykullanın. (Ic5bc4)
Hata düzeltmeleri
- Geçmişteki kötü/bozuk giriş etkinliği verilerini sorunsuz bir şekilde işler (kötü ofset verilerini yoksayar).
- Etkin bir işaretçi girişi etkinlik akışı sırasında (ör. fareyle üzerine gelme ve fareyle üzerinden çıkma arasında) başka bir işaretçi girişi değiştiriciden önce dinamik olarak bir işaretçi girişi değiştirici eklendiğinde oluşan beklenmedik işaretçi etkinlikleri düzeltildi.
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 commit'leri içerir.
Yeni Özellikler
- Stil verilmiş dizeler için
parseAsHtmlyöntemi eklendi: Bu yöntem, HTML etiketleriyle işaretlenmiş bir dizeyiAnnotatedStringbiçimine dönüştürmeye olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde işaretli listeleri görüntüleyemezsiniz. (I84d3d, I30626, b/139326648) - Resmi Android API'si (
ScrollCaptureCallback) kullanılarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumları doğru şekilde ele almayabilir. Bu nedenle, özellik şu anda varsayılan olarak devre dışıdır. Bu özelliği etkinleştirmek içinComposeFeatureFlag_LongScreenshotsEnabledbayrağını true olarak ayarlayın. (I2b055, b/329296471)
API değişiklikleri
fun ClipEntry.getMetadata(),val ClipEntry.clipMetadataolarak değiştirildi. (I50155)ClipboardManager.getClipMetadataveClipboardManager.hasClipişlevleri kaldırıldı. Lütfen mevcut klip girişinin meta verilerini okumak içinclipEntry.getMetadata()kullanın. Ayrıca, Pano'da geçerli bir klip olup olmadığını anlamak içinClipboardManager.getClipsonucunun boş olup olmadığını da kontrol edin. (I50498)- Artık
GraphicsLayernesneleriniplaceable.placeWithLayer()işlevlerine iletebilirsiniz (I1b22f) ClipboardManager.setClipartık panoyu temizlemek için boş değer kabul ediyor. (I7d2e9)- Derleme araçlarında uygulama ayrıntıları olarak kullanılan Görünümlerin gizlenmesine yardımcı olmak için kaynak kimlikleri eklendi (I99531).
GraphicsLayer#toImageBitmapaskıya alma yöntemi, bit eşlem içeriklerininGraphicsLayeriçine işlenmesini desteklemek için eklendi. Bu, API düzeyi 22 ve sonraki sürümlerde (dahil) donanım hızlandırmalı bir oluşturma işlemidir ve tüm Android cihazların% 99'undan fazlasını destekler. Android API düzeyi 21'de bu, yazılım oluşturmaya geri döner. (I9e114)- Android
RectFöğesiniComposeRectöğesine dönüştürmek için yardımcı yöntem (I39925, b/325660505) - Tüm
KeyboardOptionsparametreleri artık varsayılan olarak belirtilmemiş bir değere sahip.KeyboardOptions.mergeyöntemi eklendi. KeyboardOptions.autoCorrect,autoCorrectEnabledolarak yeniden adlandırıldı ve boş değer atanabilir hale getirildi. Boş değer, 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çinKeyboardActionsyerineKeyboardActionHandlerkullanı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 commit'leri içerir.
Yeni Özellikler
- Çizim komutlarını bir görüntüleme listesine kaydetmek için yeni bir
GraphicsLayerAPI'nin yanı sıra görüntüleme listesinin oluşturulmasını etkileyen ek özellikleri kullanıma sunuyoruz. Bu, karmaşık bir sahneyi daha küçük parçalara bölmek için bir izolasyon sınırı sağlar. Böylece, sahnenin tamamını yeniden oluşturmadan parçaları ayrı ayrı güncelleyebilirsiniz. BirGraphicsLayerüzerinde yapılan dönüşümler, görüntüleme listesi yeniden kaydedilmeden gerçekleştirilebilir.Modifier.graphicsLayer'dan farklı olarakGraphicsLayer, Composable içeriğin başka yerlerde oluşturulmasına olanak tanır ve içeriğin farklı sahnelerde oluşturulmasının beklendiği animasyonlu kullanım alanlarında faydalıdır.
API değişiklikleri
GraphicsLayer.draw(Canvas)artık herkese açık bir API değil. Katmanı çizmek için lütfen bunun yerineDrawScope.drawLayer(GraphicsLayer)uzantı işlevini kullanın. (I7a7c0)restrictedConstraints(),fitPrioritizingWidth()vefitPrioritizingHeight()olmak üzere iki yönteme ayrıldı (I6d7fd)- Android L kullanımı için
HardwareCanvassaplaması eklendi (I1c3b5, b/288494724) - Compose çerçevesini,
GraphicsContextkompozisyon yerelini gösterecek şekilde güncelleyin. Ayrıca, Owner,DelegateableNodevedrawWithCacheModifier uygulamalarını, kapsamlı erişim içinGraphicsContexterişimini gösterecek şekilde güncelleyin. Bu sayede, Modifier'lar kaldırıldığındaGraphicsLayerörnekleri otomatik olarak temizlenir. (I64a2f, b/288494724) - Düşük seviyeli IME ile ilgili testler ve diğer düşük seviyeli IME kullanım alanları yazmaya yardımcı olması için
InterceptPlatformTextInputtanıtıldı.PlatformTextInputTestOverridedesteği sonlandırıldı. (I862ed, b/322680547) GraphicsLayer.setOutline(Outline)uzantı işlevi eklendi. (Ib81f4)GraphicsContextişlev oluşturucusunu kullanarakGraphicsLayerörnekleri oluşturmak için fabrika oluşturma (Ib98d6, b/288494724)- Çizim komutlarını yakalamada geliştirici tanımlı esneklik sağlamak için
GraphicsLayerAPI'si kullanıma sunuldu. Bu komutlar başka yerlerde çizim yapmak ve sonuca farklı görsel efektler uygulamak için kullanılabilir. (I80245, b/288494724) - Belirli bir dikdörtgen alanla kapsanan metin aralığını döndüren
Paragraph#getRangeForRectişlevini kullanıma sunuyoruz. (Iee516, b/325660505) BasicTextbağımsız değişkenininonLinkClickedbağımsız değişkeniyle deneysel olarak geçersiz kılınması kaldırıldı. Köprü desteği için gelecekte bir yedek API sunulacaktır. (I107d5)
Hata düzeltmeleri
- Çizim komutlarının isteğe bağlı birleştirme görsel efektleri ve dönüşümleriyle yakalanmasını ve yeniden oynatılmasını desteklemek için
GraphicsLayerexpect/actual API tanımı eklendi.GraphicsLayerörneklerinin oluşturulması ve yönetilmesi dahil olmak üzere grafik bağımlılıklarını içerenGraphicsContextarayüzünü kullanıma sunuyoruz. (I4a8d6, b/288494724) - Odaklanmanın diğer görünümlerin arasına yerleştirilmiş bir
ComposeViewiçinde takılı kalmasına neden olan 1D odak aramayla ilgili birlikte çalışabilirlik sorunu düzeltildi. (I08fd4)
Harici Katkı
LocalLifecycleOwner, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzü dışında kullanılabilmesi için Compose kullanıcı arayüzündenlifecycle-runtime-compose'ye taşındı. Katkısı için Jake Wharton'a teşekkür ederiz. (I6c41b, b/328263448)- Tüm önyargı tabanlı hizalama alt türlerinde önyargı kaydırma özelliklerini tutarlı bir şekilde kullanın. (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 commit'leri içerir.
API değişiklikleri
- Android U sürümünden sonraki cihazlarda BasicTextField2 için ekran kalemiyle el yazısı özelliğini destekleyin. (I002e4)
- Bu CL'de, Compose'da kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için
GetScrollViewportLengthsemantik işlemini ekliyoruz. Bu değişiklik listesi, söz konusu özelliğin Foundation Scrollable Lists'te kullanımını da uygular. (Ic5fa2) FocusRequester.createRefsartık kararlı (I4d92c, b/261436820)- Değiştirici düğümlerin, kompozisyon yereli okunmadan mevcut Android
Viewsürümünü almasına olanak tanıyanDelegatableNode.requireView()tanıtıldı. (I40768) - Bir yolun yönünü tersine çevirmek için yeni API
Path.reverse()(I36348) hintLocales,KeyboardOptions'ye eklenerekTextFields'nin belirli yerel ayarlara sahip IME'lere ipucu vererek tercih edilen bir dili önceden ayarlamasına olanak tanındı.- Temel alınan 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ı. 1.7.0-alpha03 sürümü şu commit'leri içerir.
API değişiklikleri
- Maksimum Satır ve Taşma ile
ContextualFlowRowve GelişmişFlowRow/Column'ı kullanıma sunuyoruz.FlowRowveFlowColumndeneysel özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artık maxLines ve taşma desteğinin yanı sıraContextualFlowRowveContextualFlowColumnözelliklerini de içeriyor. Bu güncelleme, performansı en iyi hale getiren bileşenler sağlamak için tasarlanmıştır.ContextualFlow*, küçük birmaxLinesyapılandırması ve dinamik +N daha fazla göster düğmeleri kullanan çok sayıda öğe için idealdir.FlowRowveFlowColumnise 100'den az öğe içeren az sayıda öğe için idealdir. Önemli: Tüm öğelerin, çapraz eksen maksimumuna uyup uymadıklarına bakılmaksızın oluşturulduğuFlowRowveyaFlowColumn'daki mevcut davranışı korumak için başlatma sırasındaoverflow'yiFlowRowOverflow.VisibleveyaFlowColumnOverflow.Visibleolarak ayarlayın. Bu yeni özelliklerin nasıl kullanıldığını görmek içinContextualFlowRowSampleveFlowRowSamplesayfalarını inceleyin. (Ib9135, b/293577082) - İzin verilen maksimum karakter sayısını filtreleyen metin alanlarında ayarlanması gereken
maxTextLengthsemantik özelliğini ekleyin. (I24d9f, b/170648072) Modifier.inspectablesarmalayıcısının desteği sonlandırıldı. Bu API, değiştiricinizin gereğinden fazla geçersiz kılınmasına neden olacağından artık kullanılması önerilmemektedir. Geliştiricilerin, değiştirici özelliklerini araçlara göstermek istiyorlarsainspectableProperties()yönteminiModifierNodeElementüzerinde uygulamaları önerilir. (Ib3236)WindowManager.LayoutParamsişaretleri üzerinde tam kontrol sağlayanPopupPropertiesiçin yeni oluşturucu. (Ibb33e, b/312485503)DelegatableNode.requireLayoutCoordinates(),Modifier.Node'nin mevcutLayoutCoordinatesdeğerini almak içinonPlaced'ü geçersiz kılmaya ve koordinatları bir mülkte saklamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak kullanıma sunuldu. (Ia8657)DelegatableNode.currentLayoutCoordinates,Modifier.Node'nin mevcutLayoutCoordinatesdeğerini almak içinonPlaced'ü geçersiz kılmaya ve koordinatları bir mülkte saklamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak kullanıma sunuldu. (Iaebaa)BasicTextField2veandroidx.compose.foundation.text2paketi altındaki ilgili API'lerandroidx.compose.foundation.textpaketine taşınıyor. (I9f635)- Açık bir değiştirici düğümünde özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir
ApproachLayoutModifierNodeAPI eklendi. Ayrıca, örnekleme sırasında hedefi bilinmeyen animasyonlar için yeni bir deneyselDeferredTargetAnimationAPI eklendi. (I60745) - Bir yolun yönünü sorgulamak ve bir
Pathöğesinden konturları çıkarmak için yeniPathAPI'leri. (I63d04) Pathöğesinin belirli bir nokta içerip içermediğini kontrol etmek içinPathHitTestvePath.contains(Offset)işlevleri eklendi. (I3b218)TextLayoutResultartıkgetLineBaseline(lineIndex)yöntemini kullanıma sunuyor. Bu sayede, mevcut kolaylık özelliklerifirstBaselinevelastBaseline'ye ek olarak metnin rastgele bir satırının temelini okuyabilirsiniz. (Ide4e8, b/237428541)- Yalnızca iki
AnnotatedStrings'nin ek açıklamalarını karşılaştırma yöntemi eklendi. (I32659)
Hata düzeltmeleri
SemanticsPropertyReceiver.performImeActionveSemanticsActions.PerformImeActionile 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ı. 1.7.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
SemanticsPropertyReceiver.performImeActionile ilgili ikili uyumluluk sorunu düzeltildi. (I65865, b/322269946)PopupPropertiesparametresi alanusePlatformDefaultWidtholuşturucusu artık deneysel değildir. (I8f8d2)- Zaman aşımı mesajına dahil edilecek koşulun dize açıklamasını alan
ComposeTestRule.waitUntilaşırı yüklemesi eklendi. (I9413e) - Aynı değiştirici zincirine eklenen anlamsal yapı özelliklerinin kaldırılması için yeni anlamsal yapı API
unset(). Yeni anlamsal yapı özelliğiisOpaque. (I8c583, b/317966058, b/246056649) originalEventPosition,PointerInputChangegenel API'sindeki kopyalama yönteminden kaldırıldı. (I7bead)
Hata düzeltmeleri
- Sekme olmayan ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanmasına izin veren erişilebilirlik hatası düzeltildi. (I2181c)
VelocityTrackerartık varsayılan olarak puan ekleme düzeltmesine sahip olacak. Sorun olması durumundaVelocityTrackerAddPointsFixdeğeri false olarak ayarlanarak düzeltme devre dışı bırakılabilir. (Ib3877, b/269487059)TextStyleveParagraphStyle'de geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)
Harici Katkı
- Platforma özgü parametreler içermeyen yeni bir
DialogPropertiesoluşturucu eklendi. (I45829) - Platforma özgü parametreler içermeyen yeni bir
PopupPropertiesoluşturucu eklendi. (I9a038)
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.ui:ui-*:1.7.0-alpha01 yayınlandı. 1.7.0-alpha01 sürümü şu commit'leri içerir.
API değişiklikleri
- Resim gibi rastgele içerikleri desteklemek için
ClipEntryveClipMetadataeklenerekClipboardManagergenişletildi. - Test edilen içeriğin davranışını yerel olarak geçersiz kılmaya (ör. mevcut bir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema belirtmek) olanak tanımak için
DeviceConfigurationOverrideAPI'siniui-test'ye ekler.
Sürüm 1.6
Sürüm 1.6.8
12 Haziran 2024
androidx.compose.ui:ui-*:1.6.8 yayınlandı. 1.6.8 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Yazı tipi ölçeği, tanımlanan en düşük tablodan daha küçük olduğunda yazı tipi ölçeklendirmesindeki tutarsızlıklar düzeltildi. Bu durumda, yazı tipi boyutunun ölçekler arttıkça monoton bir şekilde artması için artık doğrusal 1x ölçeği ile tanımlanan en düşük tablo arasında enterpolasyon yapıyoruz. (Icbae3)
Sürüm 1.6.7
1 Mayıs 2024
androidx.compose.ui:ui-*:1.6.7 yayınlandı. 1.6.7 sürümü bu commit'leri içerir.
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.ui:ui-*:1.6.6 yayınlandı. 1.6.6 sürümü bu commit'leri içerir.
Hata düzeltmeleri
- Nadir görülen
BasicTextFieldkilitlenme sorunu düzeltildi.
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 commit'leri 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 commit'leri 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 commit'leri 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ü şu commit'leri içerir.
Sürüm 1.6.1
7 Şubat 2024'te
androidx.compose.ui:ui-*:1.6.1 yayınlandı. 1.6.1 sürümü şu commit'leri içerir.
Hata düzeltmeleri
SemanticsPropertyReceiver.performImeActionveSemanticsActions.PerformImeActionile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Ie0bb2, b/322269946)- Düzenler artık bir düzen anormal derecede büyük bir boyut döndürdüğünde ölçüm sırasında hata veriyor. Bu tür bir hata genellikle ölçüm,
Constraints.Infinityolup olmadığını kontrol etmeden doğrudan maksimum kısıtlamaları kullandığında oluşur. Bu kontrol, geliştiricilerin yanlış boyuta sahip düzenlerdeki sorunları, bu boyutu içeren düzenlerdeki sorunlardan daha kolay bulmasına yardımcı olur. (I339a9)
Sürüm 1.6.0
24 Ocak 2024
androidx.compose.ui:ui-*:1.6.0 yayınlandı. 1.6.0 sürümü şu commit'leri içerir.
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.ui:ui-*:1.6.0-rc01 yayınlandı. 1.6.0-rc01 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Ek yeniden oluşturmaları en aza indirerek performansı artırmak için optimize edilmiş vektör grafikleri uygulaması.
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.ui:ui-*:1.6.0-beta03 yayınlandı. 1.6.0-beta03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Artık bir
LayoutCoordinates, düğüm ayrılmadan ayrılabilir. Guard against that in the compose Layout Inspector (If693)
Hata düzeltmeleri
PlatformImeOptionsartık arayüz yerine somut bir sınıf. (If40a4)- Bir kök yeniden oluşturulduğunda
LocalSoftwareKeyboardControllerveLocalTextInputService'ye her seferinde yeni değerler sağlanmasından kaynaklanan ek aşağı akış yeniden oluşturma işlemleri düzeltildi. (I42190, b/310510985)
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta02 yayınlandı. 1.6.0-beta02 sürümü şu commit'leri içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.ui:ui-*:1.6.0-beta01 yayınlandı. 1.6.0-beta01 sürümü şu commit'leri içerir.
API değişiklikleri
DragAndDropTargetdeğiştiricisi artıkDragAndDropTargetöğesini açıkça alıyor ve sürükle bırak oturumunu etkinleştirmek için bir lambda'ya sahip. ArtıkDragAndDropModifierNodeiçin iki fabrika işlevi var. Biri transfer almak, diğeri veri aktarmak için (I69481)maximumFlingVelocity, Float olarak gösterilecek şekilde güncellendi.maximumFlingVelocitybirliği hakkında daha net bilgi vermek için dokümanlar güncellendi. (I8adc7)DragAndDropModifierNodefabrikasındakionDragAndDropStart,acceptDragAndDropTransferolarak yeniden adlandırıldı.Sürükle ve bırak oturumundan kabul etmek içinacceptsDragAndDropTransfer,dragAndDropTargetdeğiştiricisine eklendi. Bu lambda, sürükle ve bırakma oturumuyla ilgileniyorsanız geçerli birDragAndDropTargetdöndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'ların yerini bu lambda aldı. Sürükle ve bırak oturumlarından veri almak için birDragAndDropTargetfabrika işlevi eklendi (Iebf3a).DragAndDropInfotürü kaldırıldı.DragAndDropModifierNode.dragartıktransferData, dekorasyon boyutu ve sürükleme dekorasyonuDrawScopelambda'sı için parametreler alıyor.DragAndDropTarget, tek bir soyut yöntem olmak yerine belirli sürükle ve bırak etkinlikleri için yöntemlere sahiptir.DragAndDropModifierNodeiçin fabrika işlevindekionDragAndDropEvent,DragAndDropTargetöğesinin yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi belirtmek amacıylaonDragAndDropStartolarak yeniden adlandırıldı.DragAndDropEventTypekaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession,establishTextInputSessionolarak yeniden adlandırıldı. (I03cd0)Geçilebilir düğüm API adlarını daha anlaşılır hale getirmek için iyileştirir. (Ia4474)
OriginalTextyerineTextSubstitutionkoyun. (Ifa5a8)PlatformTextInputModifierNode.textInputSession,runTextInputSessionolarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere saklanan
SubcomposeLayoutöğesinin alt öğeleri (ve buna dayalıLazyColumngibi düzenler) devre dışı olarak kabul edilir. Bu tür düğümleri test etmek için yeni birassertIsDeactivated()test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)FocusDirection.InveFocusDirection.Outkaldırıldı. Bunun yerineFocusDirection.EnterveFocusDirection.Exitkullanın (I2f660)Materyal
SwipeToRevealAPI'leri (kartlar ve çip için) artık bu yuvaları oluşturmak üzere veri sınıfına dayalı örnekler yerine yuva tabanlı bir API'ye (Compose tarafından önerildiği gibi) dayanıyor. Bu, uyumluluğu bozan bir değişikliktir. Lütfen yeni API'nin nasıl kullanılacağına dair örnekler için demoya ve örnek koda bakın. (Ia8943)FontStyle(int)oluşturucusunun desteği sonlandırıldı. Bunun yerineFontStyle.NormalveyaFontStyle.Italickullanın. (I66610)FontScalablearayüzüFontScalingolarak yeniden adlandırıldı (Ie804a)
Hata düzeltmeleri
SoftwareKeyboardController.show(), metin düzenleyiciye odaklanılmadığında artık yazılım klavyesini göstermeyecek. (I2165a, b/301477279)- Aynı ComposeView'da Down etkinliği almamış tuşlar için donanım tuşu Up etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
ArcLine'da Sweep Gradient için oluşturucu desteği eklendi. (I4d5bb)PageSize.Fixediçin equals ve hashcode yöntemlerini uygulayın. (Ie3ede, b/300134276)- Pencere iç kenarı değişikliğiyle ilgili ikili uyumluluk sorununu düzeltme (Iee695)
- Mikro karşılaştırmalar, Material3 Chip/Button için materyal çekirdek katmanının kaldırıldığında daha iyi performans gösterdiğini ortaya koyduğundan bu katmanı kaldırın. (I55555)
- Test oluşturmak ve saatleri çerçevelemek için artık Compose testlerine
effectContextolarak iletilenTestDispatcherkullanılacak. (Ia7178)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha08 yayınlandı. 1.6.0-alpha08 sürümü şu commit'leri içerir.
API değişiklikleri
Modifier.dragAndDrawSourceişlevindekionDrawDragShadowlambda'sıdrawDragDecorationolarak,DragAndDropInfoişlevindeki boyut parametresi isedragDecorationSizeolarak yeniden adlandırıldı. (Id0e30, b/303904810)- Eşleşen bir düğümün görünür olup olmadığını kontrol etmek için
SemanticsNodeInteraction.isDisplayed()veSemanticsNodeInteraction.isNotDisplayed()işlevlerini kullanın. Bu işlevler, düğümün görünürlüğünü onaylamaz. (I2c196, b/302100809) nullyerineParagraphTextStyleöğesininTextAlign,TextDirection,HyphensveLineBreakalanları için özel birUnspecifieddeğeri kullanıma sunuldu. Bu sınıflar satır içi sınıflar olduğundan, null değer atanabilir yerine Unspecified değerini kullanarak temel tür kutulamayı önleriz.TextStyleve Paragraph stilindeki oluşturucular, alıcılar ve diğer yöntemler, belirtilen parametreleri boş olmayan türler olarak kabul edecek şekilde güncellendi. (I4197e, b/299490814)- XML'den
GoogleFontokumak içinGoogleFontaşırı yüklemesi ekleyin. (If8f59) LoremIpsumPreviewParameterProvideraçık sınıf haline getirildi. (I41bf5, b/266918816, b/300116360)
Hata düzeltmeleri
FontFamilyResolverartık önbellek yönetimi eş yordamları içinDispatchers.Mainkullanıyor. (Ie8dd9)AndroidViewBindingartıkcommitNowkullanarak (öncekicommityerine)onReleasekapsamında düzeninizeFragmentContainerVieweklenerek şişirilmişFragmentörneklerini eşzamanlı olarak kaldırıyor. Böylece, Live Edit'in değişiklikler üzerine kompozisyonu değiştirme yöntemiyle ilgili sorunlar düzeltiliyor. (I58fbf)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.ui:ui-*:1.6.0-alpha07 yayınlandı. 1.6.0-alpha07 sürümü şu commit'leri içerir.
API değişiklikleri
- Özel metin düzenleyiciler için yazma testlerinde
PlatformTextInputMethodTestOverridekullanıma sunuldu. (Id159b) - Sürükle ve bırakma oturumlarını başlatmak için
dragAndDropSourcedeğiştiricisi ve sürükle ve bırakma oturumlarından almak içindragAndDropTargetdeğiştiricisi eklendi. (Ib7828, b/286038936) - Tahsisleri önleyen
ColorListveColorSetkoleksiyonları eklendi. (I744bd) - Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için
DisableNonLinearFontScalingInComposegeçici işareti eklendi. Temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = truesimgesini ayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacak. (Ic9486)
Hata düzeltmeleri
- Optimize edilmiş XML vektör çizilebilir öğe ayrıştırması. (Ibb015)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha06 yayınlandı. 1.6.0-alpha06 sürümü şu commit'leri içerir.
API değişiklikleri
- Materyal simgelerinde ek optimizasyonlar yapıldı. (I3e08d)
- Benzer düğümleri bulmak için değiştirici ağacında yukarı/aşağı hareket etme özelliği ekler. (I2d234)
focusRestorer()değiştiricisineonRestoreFailed()geri çağırma işlevi eklendi (Ie1d43)ColorInt,FloatRange,IntRange,Sizeve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (Id65c8, b/290950582)showSystemUi=trueifadesiniPreviewScreenSizestanımına ekleme (Ib61d3)
Davranış Değişiklikleri
- Compose artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirme kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinlerin boyutu yalnızca biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yüksekliğe orantılı kalacak şekilde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar'a (I11518) bakın.
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha05 yayınlandı. 1.6.0-alpha05 sürümü şu commit'leri içerir.
API değişiklikleri
AndroidComposeViewAccessibilityDelegateCompat'da içerik yakalamayı etkinleştirin. (Ib2969)ScrollViewveRecyclerViewgibi View bileşenlerindeki hızlı kaydırma hızlarıViewConfiguration.ScaledMaximumFlingVelocityile sınırlandırılır. Oluşturma özelliği artıkmaximumFlingVelocity'ın kendi sürümünü içeriyor ve bu sürümDraggableiçin geçerli. (Ibf974)- Platform sürükle ve bırak API'lerini desteklemek için ilk iskele eklendi. (If84ce)
deviceIdöğesiniRotaryScrollEventiçine ekleyin (Iba3bf)- Daha yeni cihazları (Ib25b4) içerecek şekilde
ui-toolingDevices API güncellendi.
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.ui:ui-*:1.6.0-alpha04 yayınlandı. 1.6.0-alpha04 sürümü şu commit'leri içerir.
API değişiklikleri
ReusableComposition'ı devre dışı bırakmak için bir yöntem eklendi. Bu yöntem, gözlemleri kaldırır ancak düğümleri yerinde tutar. Devre dışı bırakılan beste,setContentaranarak tekrar etkinleştirilebilir. (Ib7f31)- Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için
ReusableCompositionarayüzü eklendi. (I812d1, b/252846775) Modifier.focusGroup, kararlı API'lere yükseltildi. (I7ffa3)ColorInt,FloatRange,IntRange,Sizeve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (I70487, b/290950582)- Parametrelerin daha iyi incelenebilmesi için
ColorFilterAPI'si, somut alt sınıf türlerine sahip olacak şekilde güncellendi. (I5fe29) - Kullanıcı arayüzü önizlemeleri için kullanılabilecek geçerli Wear cihazlarını listelemek üzere wear-tooling-preview kitaplığını kullanıma sunma (Ib036e)
- Yoğunluk arayüzünün yazı tipi ölçeklendirme bölümünü işlemek için
FontScalablearayü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ı. 1.6.0-alpha03 sürümü şu commit'leri içerir.
API değişiklikleri
- Giriş ve çıkış animasyonu sırasında içeriği, animasyonlu kapsayıcının boyutuna göre ölçeklendiren yeni bir giriş/çıkış geçişi türü.
LookaheadScopeComposable işlevi ve arayüzü artık kararlı. (Ifb2ce) privateImeOptions(Idb772) yapılandırma desteği eklendi.
Hata düzeltmeleri
PopupPositionProvider.calculatePosition, hesaplamada okunan durum değiştiğinde artık pop-up'ın konumunu otomatik olarak güncelleyecek. (I676a1, b/292257547)readOnlydoğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanılmış durumdaykenreadOnlydeğeri true'dan false'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)- Kullanıcı arayüzü testinde genel onaylamaların kapsamı genişletildi. (I1f90d)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.ui:ui-*:1.6.0-alpha02 yayınlandı. 1.6.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
- Composition'ı uygulayanlar tarafından uygulanabilen bir hizmet bulucu arayüzü eklendi. Bu arayüz, Composition'ın başka bir Composition temsilcisine temsilci atayan bir uygulamasının, hizmet aramalarını orijinal Composition'a atamasına olanak tanır. Bu işlev doğrudan çağrılmamalıdır ve UI modülünün yaptığı gibi, Composer'ın sarmalanmış sürümlerinde bulunabilen, çalışma zamanında deneysel API'ler oluşturmayı etkinleştirmek için kullanılır. (I296b9)
PlatformTextInput*API tamamen yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)SoftwareKeyboardControllerveLocalSoftwareKeyboardControllerartık deneysel değil.LocalSoftwareKeyboardControllerartık uygun birCompositionLocal. (I4c364)LookaheadLayoutveLookaheadLayoutScopebirkaç sürüm boyunca kullanımdan kaldırılmıştı ve artık tamamen kaldırıldı. Yerine kullanılan API'ler, herhangi bir düzenle çalışabilenLookaheadScope'dir. (I12ac3)- Testlerde odaklanma isteğinde bulunmanın daha kolay ve bulunabilir bir yolu olarak
SemanticsNodeInteraction.requestFocuseklendi. (Ie8722) - Gelecekte test çerçeveleri tarafından kullanılmak üzere genel onayları kaydetmek için deneysel API'ler eklendi. (I12d77)
Hata düzeltmeleri
AndroidView'nınupdategeri çağırmasının ilk çağrılması artıkAndroidView'yı tanıtan kompozisyon uygulandığında çalışmak yerine görünüm eklenene kadar ertelenecek. Bu düzeltme, okuduğu bir durum bir efekt tarafından hemen değiştirilirseupdategeri çağırmasının geçersiz kılınmadığı bir hatayı düzeltir. (Ie9438, b/291094055)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.ui:ui-*:1.6.0-alpha01 yayınlandı. 1.6.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
LazyList'da ileriye bakma özelliği desteklenir. Bu, ileriye bakma geçişindekiLazyListöğesinin tüm animasyonları (ör.öğe yerleştirme animasyonu,AnimatedVisibilityvb.) atlamasına ve tüm alt öğeler için ileriye bakma boyutunu ve konumunu hesaplamasına olanak tanır. Önceden bakma pasından sonraLazyListçocukları, önceden bakma pasında görüldüğü gibi gerçekliğe göre bağımsız olarak animasyon yapabilir.
Davranış değişikliği: includeFontPadding artık Compose'da varsayılan olarak false değerini alıyor
Compose'da includeFontPadding artık varsayılan olarak false değerini alır (21d806).
includeFontPadding, metin taban çizgilerinin üstüne veya altına uzayabilecek karakterleri barındırmak için metnin ilk ve son satırına ek dolgu eklenip eklenmeyeceğini kontrol eden eski bir özelliktir.
Bu Compose sürümünü güncellemek, gösterdiğiniz her metnin ilk ve son satırının üzerindeki ekstra dolguyu kaldırarak kullanıcı arayüzünüzde tüm metinlerin oluşturulma şeklini değiştirir.
Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak değişiklikler minimum düzeyde olmalıdır. Ancak aşağıdaki gibi engelleyici durumlarla karşılaşabilirsiniz: - Bozuk ekran görüntüsü testleri. Gerekirse kullanıcı arayüzünü düzeltin ve referans resimleri yeniden oluşturun. - Metin biraz yanlış hizalanmış. Özel negatif dolguları kaldırın veya gerekirse dolgu ekleyin.
Her metin için PlatformTextStyle kullanarak includeFontPadding özelliğini etkinleştirebilirsiniz:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
Materyal stillerinizi yapılandırarak tüm metinlerinizde includeFontPadding özelliğini etkinleştirebilirsiniz. Parametre adlarının M2 ile M3 arasında farklılık göstereceğini unutmayın.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
Compose includeFontPadding hakkında daha fazla bilgiyi geliştirici belgelerinde ve bu blog yayınında bulabilirsiniz.
Bu değişiklikle ilgili sorunlar/hatalarla karşılaşırsanız sorun izleyiciyi kullanarak hata kaydı oluşturun.
API değişiklikleri
InputConnection#requestCursorUpdatesdesteği (I0c69b)FocusRequester.saveFocusedChildveFocusRequester.restoreFocusedChildeklendi (Ic557e, b/272302679, b/275157318)- Yüklenemeyen öğe yolunun açıklamasıyla birlikte, bit eşlem öğeleri yüklemeye çalışırken oluşturulan hata nesnelerini sarmak için
ResourceResolutionExceptiontü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 yapı özellikleri ve işlemler eklendi. (I4a6bc)
- Mevcut ölçüm kartının gelecekteki bir etkinlik için mi olduğunu belirtmek üzere
IntrinsincMeasureScopeiçindeki yeni mülk ve uygulamaları (ör.MeasureScope). (I7a812) DrawScopeAPI'si, alternatif yoğunluk/düzen yönü ve boyutuyla farklı bir tuvalde yeniden hedefleme oluşturma özelliğini kullanıma sunmak için güncellendi.DrawContext, yoğunluk ve düzen yönünün yapılandırılmasını destekleyecek şekilde güncellendi. Ayrıca tuval yapılandırılabilir hale getirildi. (Ie1f9b, b/225408150)- Karakter sınırlayıcı kutularını hesaplamak için
Paragraph#fillBoundingBoxeseklendi. (If30ee) - Bir dizi ortak
MultiPreviews(Ia5a27) eklendi.
Hata düzeltmeleri
- Özel
FocusTargetoluşturmak için kullanılabilecekFocusTargetModifierNodearayüzü eklendi. (I9790e) fallback*parametreleri,TextMeasureroluşturucusundadefault*olarak yeniden adlandırıldı. (I940a5)SemanticsPropertyReceiver.performImeAction,onImeActionolarak,SemanticsActions.PerformImeActioniseOnImeActionolarak yeniden adlandırıldı. (I8e841)- İç içe kaydırmada (özellikle
NestedScrollConnectioniçinde) fareyle kaydırma ve sürükleme işlemlerini ayırt etmek için tekerlek eklenir. (Ie57e4) - Döndürülen nesne orijinal
android.graphics.Paintöğesini sardığı içintoComposePaintyerineasComposePaintAPI'si eklendi (I22b4c). SemanticsProperties.imeActionişlevini kullanımdan kaldırın veSemanticsActions.performImeActioniçin yeni bir parametreyle değiştirin. (I4a587)- Fareyle seçim desteği eklendi. Dokunmaya dayalı seçim, kelime bazında genişler ve karakter bazında daralır. (Ic0c6c, b/180639271)
- Sınırların dışındaki ofsetler için
AssertionErrorhata verenParagraphyöntemleri artıkMultiParagraphgibiIllegalArgumentExceptionhata veriyor. (I549d3, b/243338896)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.ui:ui-*:1.5.4 yayınlandı. 1.5.4 sürümü şu commit'leri 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ü şu commit'leri içerir.
Hata düzeltmeleri
- (b/301209788)
TextField, odaklanma ve Korece giriş yapma sırasında bazen önceki komutları yanlış uygulayarak karakter kaybına neden oluyordu.
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.ui:ui-*:1.5.2 yayınlandı. 1.5.2 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Erişilebilirlik kaydırma API'sine arka plan iş parçacığından erişildiğinde yaşanan kilitlenmeler için geçici çözüm eklendi.
- Semantik ağaca eklenen bağlantısız düğümler düzeltildi.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.ui:ui-*:1.5.1 yayınlandı. 1.5.1 sürümü şu commit'leri içerir.
Hata düzeltmeleri
readOnlydoğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanma sırasındareadOnlydeğeri doğru'dan yanlış'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.ui:ui-*:1.5.0 yayınlandı. 1.5.0 sürümü şu commit'leri içerir.
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.ui:ui-*:1.5.0-rc01 yayınlandı. 1.5.0-rc01 sürümü şu commit'leri içerir.
Hata düzeltmeleri
SubcomposeLayout,movableContentOf()içinde kullanıldığında meydana gelen kilitlenme sorunu düzeltildi.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta03 yayınlandı. 1.5.0-beta03 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Özel bir FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (Ifb1d6)
usePlatformDefaultWidth=trueolduğunda alt pencerenin beklendiği gibi yeniden boyutlandırılmamasına neden olabilen Dialog ve Popup composable'larıyla ilgili sorun düzeltildi. (I112ee)
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.ui:ui-*:1.5.0-beta02 yayınlandı. 1.5.0-beta02 sürümü şu commit'leri içerir.
API değişiklikleri
- Compose'da kullanılacak bir
android.graphics.Paintörneğinin tüketilmesini sağlamak içinasComposePaintAPI'si eklendi.
Hata düzeltmeleri
- Döndürülen nesne orijinal
android.graphics.Paintöğesini sardığı içintoComposePaintyerineasComposePaintAPI'si 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ü şu commit'leri içerir.
API değişiklikleri
- Yeniden oluşturma, renk animasyonları ve
AndroidComposeView(Ib2bfa) işlemlerinde tahsisler kaldırıldı. - Yetki vermeye izin vermek için yardımcı işlevi
CacheDrawModifierNode()ekleniyor (Icf8f9) isLookingAheadözelliğini kullanıma sunuyoruz. Bu özelliğeMeasureScopeüzerinden erişerek ileriye dönük sonuçları gözlemleyebilir ve isterseniz ana geçişi etkileyebilirsiniz. (Ibf4c3)traversalIndexadlı yeni anlamsal yapı özelliği.TalkBackgeçişinde düğümleri yeniden sıralamak için kullanılan bir kayan sayıdır (daha düşük değerler önce gelir). (I9a81b, b/186443263)- Anlamsal yapı özelliği
isContainer,isTraversalGroupolarak yeniden adlandırılıyor (I121f6) ColorProducerartıkproduceyerineoperator fun invokekullanıyor (I4a9a2)- Yol nesnelerine çeviri/ölçeklendirme/döndürme dönüşümleri uygulamak için
Pathtransform API'yi ekleyin. (I23434, b/233772232) ColorProduceryöntemineproduceadı verilir. (I78bde)toFrameworkColorSpacedosyasınıtoAndroidColorSpaceolarak yeniden adlandırın (I4f547)ColorLambdafiltresiniColorProducerolarak yeniden adlandırın. (I73b1a)- Android ve Compose renk alanı türleri arasında dönüştürme yapmak için API'ler kullanıma sunuldu. (Ie7db4, b/279979665)
- Metin renginin verimli bir şekilde animasyonlandırılmasına veya ayarlanmasına olanak tanımak için
BasicTextöğesine bir renk parametresi eklendi. (Iffd88, b/246961787) TextRange.constrain,TextRange.coerceInolarak yeniden adlandırıldı. (I31be2)- Tam parametre listesiyle optimize edilmiş
TextStyle.merge(...)eklendi. (Iad234, b/246961787) Brush,DrawStyle,TextMotion,DrawScope.drawText,Paragraph.paint(Brush),MultiParagraph.paint(Brush)gibi birçok metin API'si kararlılık kazandı. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPaddingdesteği yeniden etkinleştirildi. İlk amacımız alanı kaldırmaktı ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, alanın (I98e96, b/277703184) kullanımdan kaldırılması iptal edildi.- Herkese açık
TextRange.constrainyöntemi eklendi. (I97912) AnnotatedStringiçindekiUrlAnnotationlar artıkTalkBackgibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursorsemantik işlemi eklendi. (I11ed5) LineHeightStyle.Alignment(topRatio)oluşturucu, kararlı API'ye yükseltildi. (I79c32, b/261565383)TextMeasurerve ilgili API'ler artık deneysel değildir. (I74647, b/261581753)- Metin düzenleyici düğümlerinde IME işlemini çağırmak için
PerformImeActionanlamsal yapı işlemi eklendi. (Ic606f, b/269633506) PlatformTextInputAPI'ler artık Android'de deneysel değildir. (I668eb)Enum.valueOfiçin değer parametresi adı değiştirildi (Ia9b89)- enum valueOf'tan (I818fe) daha fazla oluşturulan istisna
- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni bir düşük düzey
PlatformTextInputAdapterAPI'si kullanıma sunuldu. (I58df4) - Canvas'a metin çizilirken farklı karıştırma algoritmalarını desteklemek için
DrawScope.drawText,Paragraph.paintveMultiParagraph.paintyöntemlerineBlendModeparametresi eklendi. (I57508) Font.MaximumAsyncTimeoutfiltresiniFont.MaximumAsyncTimeoutMillisolarak yeniden adlandırın. Yalnızca yeniden adlandırma. (I07af5)@Previewreferans cihazlarının güncellenen DPI değerleri (Id6151, b/254528382)- Metin fırçasının verimli bir şekilde animasyonlandırılmasına veya ayarlanmasına olanak tanımak için
BasicText'yebrush,alphaparametrelerini ekleyin. - :ui:ui-unit içinde Float, Double, Long, Int, Short için kutusuz lambda türlerini tanımlayın (I6f18d, b/246961787)
Hata düzeltmeleri
- İşaretçi hızı izlemede birden fazla ayırma kaldırıldı (I26bae)
- Düzen ve işaretçi girişi yönetiminde azaltılmış ayırmalar (I5333a)
- Vektör bellek kullanımını ve ilk karelerin oluşturulmasını optimize etme (I2f3c6)
- Canvas ile çizgi ve nokta çizilirken tahsisler kaldırıldı (I9f535)
AndroidFont.fontVariationSettingsiçin doküman ekleme (I7d9e2)
Harici Katkı
- Performans iyileştirildi ve Vector API'lerindeki (I906cb) ayırmalar azaltıldı.
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.ui:ui-*:1.5.0-alpha04 yayınlandı. 1.5.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
Modifier.NodeYetki verme ile ilgili iyileştirmeler BirDelegatingNodeörneğinden diğerModifier.Nodeörneklerine yetki verme özelliği geliştirildi. Bu işlem,delegateveundelegateAPI'leri ile 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,DelegatingNodeaçıkça geçersiz kılmadığı sürece düğüm arayüzleri örtülü olarak devredilir. (67352bc)
API değişiklikleri
- Yetki verilebilecek bir
NestedScroll Modifier.NodeolanNestedScrollModifierNode'ı kullanıma sunun. (I69513) onResetveonReleaseparametreleriAndroidViewBindingcomposable'ına eklendi. Bu parametreler,AndroidViewcomposable'ı yansıtıyor veViewBindingile görünümün yeniden kullanılmasına olanak tanıyor. (I00b1e, b/276802519)- Sık kullanılan yol manipülasyonu kullanım alanlarını daha hızlı yeniden kullanmayı desteklemek için geri sarma işlemlerini destekleyecek şekilde Compose Path API güncellendi. (I7b797)
- Tam parametre listesiyle optimize edilmiş
TextStyle.merge(...)eklendi. (Iad234, b/246961787) Brush,DrawStyle,TextMotion,DrawScope.drawText,Paragraph.paint(Brush),MultiParagraph.paint(Brush)gibi birçok metin API'si kararlılık kazandı. (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPaddingdesteği yeniden etkinleştirildi. İlk amacımız alanı kaldırmaktı ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, alanın (I98e96, b/277703184) kullanımdan kaldırılması iptal edildi.
Hata düzeltmeleri
Dialogcomposable'ı tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan regresyon düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha03 yayınlandı. 1.5.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
LookaheadScope'dekiSubcomposeLayoutiçin yeni varsayılan davranış: Koşullu alanlara (ör.TabRow,Scaffold,BoxWithConstraintsvb.) sahip olmayanSubcomposeLayoutsartık ileriye bakma animasyonlarıyla sorunsuz bir şekilde çalışıyor.
API değişiklikleri
- Yeni varsayılan
intermediateMeasurePolicy, ileriye dönük geçişteki ölçüm politikasını yeniden kullanır. Bu sayedeScaffold,TabRowveBoxWithConstraintsgibi koşullu alanlar içermeyenSubcomposeLayoutalt türlerinin varsayılan olarak ileriye dönük geçişle çalışmasına olanak tanır. (Id84c8) - Android penceresi için oluşturulan yeniden oluşturucu, artık
ON_STOPbildirimi aldığında tüm bileşim yerine yalnızcawithFrameNanosile ilgili çağrıları engeller. Bu durumda, durdurulan etkinliklerle ilişkili pencereler veri değişiklikleri için yeniden oluşturulmaya devam eder ancak animasyonlar veyawithFrameNanos'nın diğer tüm çağrıları engellenir. (Id9e7f, b/240975572) - Kararlı sürüme
motionEventSpygeçiş yapıldı. (Ic5ec4, b/261560988) - Herkese açık
TextRange.constrainyöntemi eklendi. (I97912) - Geliştiricileri
includeFontPaddingayarını false olarak değiştirmek ve test etmek için bu uyumluluk API'sini kullanmaya teşvik etmek amacıylaPlatformTextStyle.includeFontPaddingartık kullanımdan kaldırılmıyor. (I98e96, b/277703184)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.ui:ui-*:1.5.0-alpha02 yayınlandı. 1.5.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
- Yeni
SubcomposeLayoutAPI, ileriye bakmaya dayalı animasyonlar sırasında ölçü/düzen mantığını işlemek için ek bir ara ölçü politikası uygular. (I017d3) - PointerInput artık geç yükleniyor ve daha iyi performans için Modifier.Node kullanıyor (küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
- Önemli etkinliklerle deneysel API'leri kararlı hale getirir. (I9c7d8, b/261566839, b/261567368)
PointerInputChangeiçinde deneysel API'leri kararlı hale getirir. (I1b543, b/261560988, b/261565762, b/261565749)- Daha karmaşık
Modifier.Nodeuygulamaları içinSuspendingPointerInputModifierNodeoluşturma yöntemi ekler. (Ic4933) AnnotatedStringiçindekiUrlAnnotationlar artıkTalkBackgibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)- Donanım tuşları sanal klavyeye gönderilmeden önce bunları yakalamak için bir API eklendi (I4f4c6, b/186800395).
- Metin alanları için
InsertTextAtCursorsemantik işlemi eklendi. (I11ed5) - Metinle ilgili test işlemleri (ör.
performTextInput) artık alana tıklamak yerine semantik işlem kullanılarak doğrudan odaklanma isteğinde bulunacak. (I6ed05)
Hata düzeltmeleri
- Metin testi işlemlerinde 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ı. 1.5.0-alpha01 sürümü şu commit'leri içerir.
API değişiklikleri
- Modifier.intermediateLayout artık açık bir LookaheadScope gerektirmiyor. intermediateLayout'taki ölçü bloğu, alıcı olarak IntermediateMeasureScope'a sahiptir. Bu, uygun CoroutineScope, LookaheadScope ve MeasureScope sağlar.(Ibe2e5)
- LookaheadLayout, artık bir Layout olmayan LookaheadScope ile değiştirildi. Bu sayede, LookaheadScope'taki alt içerikler doğrudan üst öğenin MeasurePolicy'si tarafından kontrol edilebilir. (Ibe2e5)
- Modifier.Nodes'un eş yordam başlatmasına izin vermek için
Modifier.Node#coroutineScopeeklendi. (I76ef9) - CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes'un CompositionLocals'ı okumasına izin verin. (Ib44df)
- @Deprecated sınıfının özelliğe yayılması. (I882d1)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.ui:ui-*:1.4.3 yayınlandı. 1.4.3 sürümü şu commit'leri içerir.
Hata düzeltmeleri
AndroidViewsimgesinin belirli değiştiricilerle kullanıldığında doğru şekilde yerleştirilmemesine neden olan sorun düzeltildi. (I4dc77, b/274797771)- 2D odak aramasında
DropDownmenülerini (b/276811828) etkileyen bir hata düzeltildi. - Lambda ilk kez çağrıldığında yalnızca giriş/çıkış bloğunu çalıştıran özel odak giriş/çıkış özelliklerindeki hata düzeltildi (b/277234245).
- Odak sisteminde,
focusPropertiesokunurken kilitlenmeye neden olan gerileme 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ü şu commit'leri içerir.
Hata düzeltmeleri
AndroidViewöğesinin değiştiricilerini doğru şekilde yeniden kullanmamasına ve bu nedenle beklenmedik davranışlara ve kilitlenmelere neden olabilen sorun düzeltildi. (Ib67ee, b/275919849)Dialogcomposable'ı tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesiyle ilgili gerileme düzeltildi (I82551, b/262140644).
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.ui:ui-*:1.4.1 yayınlandı. 1.4.1 sürümü şu commit'leri içerir.
Hata düzeltmeleri
ParentDataModifieröğesininAndroidViewöğesini etkilememesiyle ilgili sorun düzeltildi (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ü şu commit'leri içerir.
1.3.0 sürümünden beri yapılan önemli değişiklikler
- Lazy list öğelerinin sabitlenmesine olanak tanıyan yeni bir
PinnableContainerAPI eklendi. Böylece, öğeler sınırların dışına kaydırıldığında kaldırılmıyor. Örneğin,Modifier.focusable(), şu anda odaklanılan öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010) - Odak sistemi, yeni deneysel
Modifier.NodeAPI'ler kullanılarak yeniden yazıldı. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - Yüzeylerde
IsContaineranlamsal yapı özelliği eklendi. Bu özellik, yüzeyler gibi öğelerin semantik anlamına göre geçiş sırasını belirleyen sonraki bir değişiklikte kullanılacaktır. (I63379) - Yeni bir erişilebilirlik rolü
DropdownListeklendi. Bu,android.widget.SpinnerodaklanırkenTalkBack'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 artık boşta kalma durumuna geçmek için kareleri yürütürken (ör.
waitForIdlearacılığıyla) her kare için düzen geçişleri çalıştıracak. Bu durum, düzen animasyonlarının tek tek kareleri üzerinde onaylama yapan testleri etkileyebilir. (I8ea08, b/222093277) - Metnin
Static(default)veya animasyonlu olmasını tanımlamak içinTextMotiondeneysel özelliğiTextStyleöğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animatedkullanı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ü şu commit'leri içerir.
API değişiklikleri
onResetparametresini kabul edenAndroidViewcomposable işlevinin aşırı yüklenmesi eklendi. Bu, görünüm örneklerinin, kompozisyondaki düğümleri atıldığında ve uyumlu bir şekilde yeniden kullanıldığında yeniden kullanılmasını sağlar. Bu özellik, özellikleLazyRowsveLazyColumnsiçin yararlıdır. (I3f10d, b/230099236)- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni bir düşük düzey
PlatformTextInputAdapterAPI'si kullanıma sunuldu. (I58df4)
Hata düzeltmeleri
BasicTextField'nınSetTextanlamsal yapı işlemi artık metin arabelleğini IME güncellemeleri ve test fonksiyonlarıyla (ör.performTextReplacement) aynı kod yolunu kullanarak güncelleyecek.performTextClearance,performTextReplacementveperformTextSelectionmetin testi işlevleri artıkSemanticsActionskullanı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ü şu commit'leri içerir.
API değişiklikleri
modifierElementOf()API'si kaldırıldı. Lütfen bunun yerine doğrudanModifierNodeElementüzerinden uzatın. (I2256b)Layoutöğesinin yeniden kullanılacağı (ör.LazyColumnöğesi olarak) durumu düzgün şekilde işlemek için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni birModifier.Node.onReset()geri çağırma işlevi eklendi. Odaklanmış durumu düzgün şekilde sıfırlamak içinFocusTargetModifierNodedüzeltildi. (I65495, b/265201972)- Canvas'a metin çizilirken farklı karıştırma algoritmalarını desteklemek için
DrawScope.drawText,Paragraph.paintveMultiParagraph.paintyöntemlerineBlendModeparametresi eklendi. (I57508)
Hata düzeltmeleri
- Erişilebilirlik odak sırası algoritması iyileştirildi. Örneğin, üst/alt çubuklar sırasıyla daha sık olarak önce/sonra okunuyor (74e9c5)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.ui:ui-*:1.4.0-beta01 yayınlandı. 1.4.0-beta01 sürümü şu commit'leri içerir.
API değişiklikleri
PinnableContainer.PinnedHandle.unpin(),release()olarak yeniden adlandırıldı (I4667a)waitUntilNodeCount,waitUntilAtLeastOneExists,waitUntilExactlyOneExistsvewaitUntilDoesNotExist,ComposeTestRule'e deneysel API olarak eklendi. BöylecewaitUntilAPI, herhangi bir eşleştiriciyi ve herhangi bir sayıda düğümü kabul edecek şekilde genişletildi. Daha fazla doküman içinComposeTestRulesayfasına bakın. (Ifa1b9, b/226934294)Font.MaximumAsyncTimeoutfiltresiniFont.MaximumAsyncTimeoutMillisolarak yeniden adlandırın. (I07af5)GoogleFont.Provider.AllFontsListUrikaldırıldı ve bunun yerine ktdoc'ta bağlantı oluşturuldu. (I16f29)
Hata düzeltmeleri
AndroidFont.fontVariationSettingsiçin doküman ekleme (I7d9e2)
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha05 yayınlandı. 1.4.0-alpha05 sürümü şu commit'leri içerir.
API değişiklikleri
runComposeUiTestişlevi veCoroutineContextparametrelerini kabul edencreate*ComposeRuleişlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tümLaunchedEffectverememberCoroutineScope()çağrıları için kullanılır. (I10614, b/265177763)- 1 boyutlu hızı izlemek için yeni bir API ekleyin (If5a82).
FocusRequesterartık@Stableolarak işaretlendi. (I580ee)usePlatformDefaultWidthparametresi alanDialogPropertiesoluşturucusundan deneysel bir ek açıklamayı kaldırın. (Ic4048)- Yolda belirli bir mesafedeki konumu ve teğeti hesaplama işlevi eklendi.
PathMeasure.getPosition()vePathMeasure.getTangent()ile (I3b47c) PlatformParagraphStyleüzerinde yanlışlıkla herkese açık hale getirilen setter kaldırıldı. (I07f47)- Satır içi/desteği sonlandırılan-gizli işlevlerin türü/null değer alabilme durumu (I24f91)
- Sıfır tahsisli ek açıklamaları sorgulamak için
AnnotatedString.hasStringAnnotationsekleyin. (I94dfe, b/246960758) TextMeasurer.measureişlevi için, metin olarakStringalan yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)- TextStyle'daki
LineBreakveHyphensAPI'leri kararlı sürüme yükseltildi. (Ic1e1d)
Harici Katkı
TextInputSessionveTextInputServiceiçindekinotifyFocusedRectyöntemlerinin desteği tekrar sonlandırılmıyor. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.ui:ui-*:1.4.0-alpha04 yayınlandı. 1.4.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
- Lazy list öğelerinin sabitlenmesine olanak tanıyan yeni bir
PinnableContainerAPI eklendi. Böylece, öğeler sınırların dışına kaydırıldığında kaldırılmıyor. Örneğin,Modifier.focusable(), şu anda odaklanılan öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010) - Odak sistemi, yeni deneysel
Modifier.NodeAPI'ler kullanılarak yeniden yazıldı. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - Yüzeylerde
IsContaineranlamsal yapı özelliği eklendi. Bu özellik, yüzeyler gibi öğelerin semantik anlamına göre geçiş sırasını belirleyen sonraki bir değişiklikte kullanılacaktır. (I63379) - Yeni erişilebilirlik rolü
DropdownListeklendi. Bu,android.widget.SpinnerodaklanırkenTalkBack'sdavranışı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 artık boşta kalma durumuna geçmek için kareleri yürütürken (ör.
waitForIdlearacılığıyla) her kare için düzen geçişleri çalıştıracak. Bu durum, düzen animasyonlarının tek tek kareleri üzerinde onaylama yapan testleri etkileyebilir. (I8ea08, b/222093277) - Metnin
Static(default)veya animasyonlu olmasını tanımlamak içinTextMotiondeneysel özelliğiTextStyleöğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animatedkullanın. (I24dd7)
API değişiklikleri
- Diğer
DrawScopeişlevleriyle tutarlı olması içindrawTextişlevindekimaxSize: IntSizebağımsız değişkenisize: Sizeile değiştirildi.size, varsayılan olarakSize.Unspecifieddeğerine ayarlanır. Bu değer, önceki varsayılan davranışı değiştirmemelidir. (Icd27d) - Desteği sonlandırılan deneysel yazı tipi oluşturucu kaldırıldı. (I8a724, b/261435386)
- Kullanıcı arayüzü araçları veri sınıfı
Groupartık grubun satır içi composable işlev çağrısı için olup olmadığını belirten birisInlinealanına sahip.isInlinetrueise çağrı, satır içi composable işlevine yapılır. Ancak, satır içi işlev bilgilerini oluşturmayan bir Compose derleyici eklentisi sürümüyle derlenen modüllerden gelen satır içi composable işlevlere yapılan çağrılarda değer 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)
FontVariationAPI artık kararlı (I8779f, b/241016309)- Tüm
Font()oluşturucular artık kararlı API'dir (I5948b, b/261435386) DeviceFontFamilyNameartık kararlı (I8b640, b/261435386)AndroidFontoluşturucusuvariationSettingsile birlikte artık kararlı bir API'dir ve yeni yazı tipi tanımlayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)createFontFamilyResolverAPI artık kararlı sürümde. Bu, eş zamansız yazı tipi yükleme sırasında yakalanmamış istisnaları yakalamak için kullanılabilir. (Ibb481, b/261435386)Font.loadingStrategyAPI artık kararlı sürümde. (I5937c, b/261435386)GoogleFontAPI artık kararlı sürümde. (Ic90b0, b/261435386)TextUnit(float, TextUnitType)artık kararlı API. (I90c84, b/261561612)pluralStringResourceartı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ı. 1.4.0-alpha03 sürümü şu commit'leri içerir.
API değişiklikleri
ExperimentalComposeUiApi,PointerIconcihazından kaldırılıyor (I23af8)- Sayfa erişilebilirlik işlemlerini kullanıma sunma:
PageUp,PageDown,PageLeft,PageRight. Bunların yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab) rememberNestedScrollConnectionparametre görünümü, kök görünümden ana makine görünümüne güncellendi. (Ia5200)- Üst öğelerin kaydırma bilgilerini sorgulamak için bir Modifier API eklendi. (I2ba9d, b/203141462)
- Hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için
Clickableiçinde kullanılır. Clickablesöğesi,Scrollable ViewGroupiçinde kullanıldığında dalgalanmaları doğru şekilde geciktirmiyordu. Bu sorun düzeltildi.- Hareketlerin kaydırma etkinliği olabileceği durumlarda basma işlemlerinin doğru şekilde geciktirilmesi için çekmeceler ve sayfalar güncellendi.
CompositingStrategy.Always,Offscreenolarak yeniden adlandırıldı. Bu değişiklik,graphicsLayeröğesinin her zaman ara arabelleğe (I47dc1) işleneceğini belirtir.- Birden fazla içerik alanıyla aşırı yüklenen düzen artık kararlı (I10566, b/248294649)
- Testin bir parçası olarak Perfetto izlerini (Sistem İzleri olarak da bilinir) yakalamak, test davranışını ve performansını incelemek için deneysel yeni API'ler
PerfettoTrace.record {}vePerfettoTraceRuleeklendi. (I3ba16) - Compose kuralı kullanılan kullanıcı arayüzü testlerinde,
withFrameNanosgeri çağırmaları sırasında devam ettirilen devamlılıklar, tüm çerçeve geri çağırmaları çalışmayı bitirene kadar gönderilmez. Bu, normal şekilde çalıştırıldığında oluşturma davranışıyla eşleşir. Ancak eski davranışa dayalı testler başarısız olabilir. Bu durum yalnızca doğrudanwithFrameNanosveyawithFrameMillisişlevlerini çağıran ve bu işlevlere iletilen geri çağırmaların dışında, geri çağırmaların içine taşınması gerekebilecek mantığa sahip kodları etkilemelidir. Örnekler için bu CL'deki animasyon testi değişikliklerine bakın. onPerformTraversals: (Long) -> Unitparametresi,TestMonotonicFrameClockoluşturucusuna ve fabrika işlevine isteğe bağlı olarak eklendi. Bu parametre,withFrameNanosgeri çağırmalarından sonra ancak arayanların eşzamanlı rutinleri devam ettirilmeden önce kod çalıştırmak için kullanılır. (Idb413, b/254115946, b/222093277, b/255802670)- EmojiCompat, Compose'a eklendi (Ibf6f9, b/139326806)
- Dinamik renk desteği için
@Preview'ye yeni duvar kağıdı parametresi eklendi (I9f512)
Hata düzeltmeleri
- Anlık görüntü uygulama bildirimleri artık
Recomposerdeğişiklikleri uyguladıktan sonra gönderiliyor. (Iad6c0, b/222093277) captureToImage'da, çok pencereli ekran görüntülerinin alınmasına olanak tanıyan değişiklikler yapıldı. Bu, Compose PopUp'ları kullanan ekran görüntüsü testleri için yararlıdır. (I169c5)
Bağımlılık Güncellemeleri
- Compose UI ve Compose Material artık Lifecycle 2.5.1'e bağlı. (I05ab0, b/258038814)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.ui:ui-*:1.4.0-alpha02 yayınlandı. 1.4.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
GraphicsLayerScope,graphicsLayeröğesinin mevcut boyutunu gösterecek şekilde güncellendi. Bu,graphicsLayerdönüşümlerini Composable boyutunun bir fonksiyonu olarak hesaplamak için kullanışlıdır. (If8c43,b/181387080)graphicsLayeriçeriğinin oluşturulması için ne zaman ekran dışı bir birleştirme katmanından yararlanılacağını belirlemek üzereCompositingStrategytanıtıldı. Otomatik, alfa uygulanırsa veyaRenderEffect/Overscrollvarsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Always, her zaman ekran dışı bir arabellek kullanır.ModulateAlphaise ekran dışı arabellek kullanmaktan kaçınır ve bunun yerinegraphicsLayeriçindeki kaydedilmiş çizim talimatlarının her birini düzenler.ModulateAlphakullanımı,RenderEffect/Overscrollkullanımları için ekran dışı bir arabellekten yararlanmaya devam eder (I25e82, b/256382834)invalidateSubtree(), düzen ve çizim için tüm hiyerarşilerin geçersiz kılınmasına izin vermek üzereModifier.Node'ye eklendi. (I4bd90)rememberNestedScrollInteropConnectionsürümünü kararlı sürüme yükseltin.rememberNestedScrollInteropConnection'ya kök görünüm geçirme özelliği kullanıma sunuldu. Bu, özel görünümün kaydırma kısıtlamalarına, özellikle standart olmayan görünümlerde (ör.ModalBottomSheetDialog) daha iyi tepki vermesine yardımcı olabilir. (I9e107)- Daha önce okudukları bir değer değiştiğinde bildirim alması gereken
Modifier.Nodeuygulamaları tarafından kullanılabilecekObserverNodearayüzü eklendi (I5728b, b/247716483). Paintöğesine, yerelandroid.graphics.Paintöğesini kabul eden yeni bir oluşturucu eklendi. Ayrıca, mevcut bir doğal Paint nesnesini Compose Paint'e dönüştüren bir uzantı işlevitoComposePaint()eklendi. (Ica91b)- Android'de kullanılmak üzere yeni
FontFamily.Resolver.resolveAsTypefaceekleyin. (I8950b) - Araçların Composable'ın dahili durumlarını değiştirmesine izin vermek için
ToolingStateekleyin (Ie6614). - Yeni eklenen animasyonlar için daha iyi destek sağlamak üzere araçları yeniden düzenleme (I8677b)
- Materyal ve Material3 Text,
TextFieldveOutlinedTextFieldbileşenlerineminLinesparametresi eklendi. Bu parametre, bileşenin minimum yüksekliğinin satır sayısı cinsinden ayarlanmasına olanak tanır (I4af1d).
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.ui:ui-*:1.4.0-alpha01 yayınlandı. 1.4.0-alpha01 sürümü şu commit'leri içerir.
API değişiklikleri
- Hareket algılayıcılar için yeni bir yöntem (
awaitEachGesture()) eklendi.forEachGesture()ile benzer şekilde çalışır ancak hareketler üzerindeki döngü tamamenAwaitPointerEventScopeiçinde gerçekleştiğinden yinelemeler arasında etkinlik kaybolmaz. forEachGesture(), hareketler arasında etkinliklerin kaybolmasına izin verdiği içinawaitEachGesture()lehine kullanımdan kaldırıldı. (Iffc3f, b/251260206)- androidx'te erişilebilirlik nesnelerinin geri dönüştürülmesinin desteği sonlandırılıyor. Performans değişikliklerinin, desteklenen en eski sürümlerde bile ihmal edilebilir düzeyde olduğunu tespit ettik. (I0a961)
DrawStyle,TextStyleveSpanStyle'ye deneysel özellik olarak eklendi. Bu sayede, ana hatları çizilmiş metinler oluşturulabilir. (If24b8, b/155421273)AnnotatedString.Builderartıkkotlin.text.Appendablekullanıyor. (I1a061, b/231030444)AnnotatedString.BuilderartıkAnnotatedStringve kesişen stillerin alt dizesini eklemek içinappend(AnnotatedString, start: Int, end: Int)yöntemine sahip.ParagraphveMultiParagraphboyama işlevlerine, ana hatlı metin çizilmesini sağlayanDrawStyleparametresi eklendi. (Ic8102, b/155421273)
Harici Katkı
- Thanks for
vighneshfor adding TV Devices to Previews (Ie15cd)
Sürüm 1.3
Sürüm 1.3.3
11 Ocak 2023
androidx.compose.ui:ui-*:1.3.3 yayınlandı. 1.3.3 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Android 9'da bazen Activity, Compose View'un durumunu kaydederken meydana gelen kilitlenme sorunu düzeltildi. (I0b755, b/260322832)
Sürüm 1.3.2
7 Aralık 2022
androidx.compose.ui:ui-*:1.3.2 yayınlandı. 1.3.2 sürümü şu commit'leri içerir.
Hata düzeltmeleri
protobuf-javalite:3.19.4(CVE-2022-3171) güvenlik uyarısını önleyen Profobuf 3.21.8 sürümüne güncellendi (b/255545055).
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ü şu commit'leri 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ü şu commit'leri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
- Yeni deneysel API paketi
LookaheadLayout(daha önce mümkün olmayan animasyon davranışlarını etkinleştirir) - Yeni deneysel API paketi
Modifier.Node(Modifier.composed'ye kıyasla daha yüksek performanslı bir alternatif) - Pencere iç kenarları için destek iyileştirildi.
- LazyList'lerde D-Pad'ler ve donanım klavyesi için odak desteği.
- İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü (bazı özelleştirilmiş tasarım sistemleri için davranış değişikliği – beta01 sürüm notlarındaki gerekçe)
- Birçok küçük, API'de bozulmaya yol açmayan iyileştirme
- Birçok hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.ui:ui-*:1.3.0-rc01 yayınlandı. 1.3.0-rc01 sürümü şu commit'leri içerir.
API değişiklikleri
- Metinde otomatik tireleme özelliğini desteklemek için yeni deneysel API Hyphens eklendi (Iaa869).
Hata düzeltmeleri
DeviceFontFamilyNameyazı tipleri,wghtveitalvaryasyon ayarlarını varsayılan olarak yapılandırmaz. Bunun yerine, yüklenenTypefaceiçin platform ayarını kullanır. (Ia7a6d, b/246989332)LazyColumnbellek 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ü şu commit'leri içerir.
API değişiklikleri
- Metinde satır sonunu özelleştirme seçenekleri ekleyin. (I86907)
- Minimum genişlik kısıtlamalarını desteklemek için
TextMeasurer.measureyöntemindesize:IntSizebağımsız değişkeniconstraints: Constraintsile değiştirildi. (I37530, b/242707525)
Hata düzeltmeleri
- AndroidX Activity'nin
BackHandlerAPI'si artıkDialogcomposable'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ü şu commit'leri içerir.
API değişiklikleri
- Layout için, birden fazla composable içerik lambdasının listesini kabul eden deneysel bir aşırı yükleme eklendi. Bu, farklı içerik lambdalarına yerleştirilen ölçülebilir öğelerin farklı şekilde ele alınmasına olanak tanır (Ic1b4e).
Deneysel Focus API'lerinde yapılan değişiklikler:
FocusDirection.InveFocusDirection.Outdesteği sonlandırıldı ve yeriniFocusDirection.EnterileFocusDirection.Exitaldı. (Ia4262, b/183746982)FocusManager.moveFocus(Enter)veFocusManager.moveFocus(Exit)için özel bir davranış belirtmek üzere iki yeni odak özelliği (enter ve exit) eklendi. (I5f3f9, b/183746982)- Artık odaklanma hareketini iptal etmek için
FocusRequester.Cancelkullanabilirsiniz.FocusRequester.Cancel, aşağıdaki odak özelliklerinin herhangi birinde kullanılabilir: up, down, left, right, next, previous, start, end, enter ve exit. (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ü şu commit'leri içerir.
Değiştirici Düğüm Yeniden Düzenleme
Modifier/Modifier.Element örneklerini işleyen ve LayoutNodes üzerinde davranışlarını koordine eden katman büyük ölçüde yeniden düzenlendi. Bu, Compose'daki birçok değiştiricinin genel API'sini etkilemeyen bir yeniden düzenleme olup yalnızca uygulamayla ilgili bir değişiklik olarak değerlendirilebilir. Buna rağmen, bu değişiklik çeşitli nedenlerle önemlidir. (Ie4313)
Değişiklik Özeti
Eklenen deneysel Modifier.Node API'leri, düzen düğümünün yaşam döngüsüyle birlikte korunacak bir örnekte durumun korunmasına olanak tanıyan ve bunu üreten ilgili Modifier.Element'nin düzen düğümü başına ve kullanım başına ayrılacak bir soyutlama sağlar.
Genel olarak bu soyutlama, Modifier.composed API'sinin mekanizmalarına dayanmadan durum bilgisi olan değiştiriciler oluşturmak için alternatif bir mekanizma sağlar.
Risk
Bu değişiklik, önceki sürümlerle kesinlikle ikili uyumludur ve gözlemlenebilir davranış açısından mümkün olduğunca pratik ve makul bir şekilde geriye dönük uyumlu olması amaçlanmıştır. Bununla birlikte, bu yeniden düzenlemenin dokunmadığı birkaç Compose alt sistemi vardır ve testlerimizde ele alınmayan, henüz bulunup düzeltilmeyen davranış değişiklikleri olması muhtemeldir.
Lütfen bu sürüme dikkatli bir şekilde yükseltin. Bu değişikliğin sizin için bir soruna yol açtığını düşünüyorsanız lütfen bize bildirin.
Deneysel API'ler
"Değiştirici Düğüm" adlı yeni kavramla ilgili çeşitli deneysel API'ler eklendi. Modifier.Node'lar,
fun modifierElementOf(…): Modifierabstract class ModifierNodeElementabstract class Modifier.Nodeabstract class DelegatingNodeinterface LayoutModifierNodeinterface DrawModifierNodeinterface SemanticsNodeinterface PointerInputNodeinterface ModifierLocalNodeinterface ParentDataModifierNodeinterface LayoutAwareModifierNodeinterface GlobalPositionAwareModifierNodeinterface IntermediateLayoutModifierNode
Davranış değişikliği (Behavior breaking change)
İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
Oluşturma iletişim kutuları ve pop-up'lar için desteklenen maksimum yükseklik 30 dp'den 8 dp'ye düşürüldü. Bu değişiklik hem materyal hem de kullanıcı arayüzü özel iletişim kutularını ve pop-up'ları etkiler. Bu değişiklik, Android'in S sürümünden önceki sürümlerinde erişilebilirlikle ilgili bir hatayı azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up içindeki içerikle etkileşime geçebilmesini sağlamak için yapılmıştır.
Bu değişiklikten yalnızca, yüksekliği 8 dp'den daha yüksek seviyelere ayarlanmış özel bir iletişim kutusu veya pop-up uygulaması oluşturuyorsanız etkilenirsiniz. İletişim kutunuzun veya pop-up'ınızın yüksekliğini azaltmayı deneyin. Bu yeni davranışı devre dışı bırakmanız gerekiyorsa istediğiniz yükseltme ayarıyla kendi iletişim kutunuzu veya pop-up'ınızı oluşturmayı düşünebilirsiniz. Erişilebilirlik olumsuz etkilenebileceğinden ve iletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından okunabilir ve etkileşim kurulabilir olmasını sağlamak geliştiricinin sorumluluğunda olduğundan bu yöntem önerilmez.
API değişiklikleri
painterResourcedeğerinin yapılandırma değişikliklerinde güncellenmemesi sorunu düzeltildi (I58e73, b/228862715).rememberTextMeasurerartıkFontFamily.Resolver,DensityveyaLayoutDirectionparametrelerini kullanmıyor. Lütfen bu parametreler için özel değerler sağlamak üzereTextMeasureroluşturucusunu kullanın. (Ia1da3)- İletişim kutularının
WindowInsets'ı desteklemesine olanak tanımak içinDialogProperties.decorFitsSystemWindowsözelliği eklendi. (I57742, b/229378542) - İkili uyumluluğu korumak için taşınan yazı tipi oluşturucular orijinal Kotlin dosyasına geri taşındı. Son kararlı sürümden bu yana değişiklik yok. (Ieb2f3)
- Çeşitli eşittir tanımlarından gereksiz operatör kaldırıldı. Bunun herhangi bir etkisi yoktur. (I6c309)
FontVariation.Setting, gelecekteki sabitleme API'lerine izin vermek için kapalı bir arayüzdür. (I11021, b/143703328)CompositionGroup.findParametersöğesiniSlotTree.ktöğesine ekleyin. Bu sayede araçlar, tüm yuva tablosunu ayrıştırmak zorunda kalmadan birCompositionGroupiçin parametreleri alabilir. (I124fe)
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.ui:ui-*:1.3.0-alpha03 yayınlandı. 1.3.0-alpha03 sürümü şu commit'leri içerir.
API değişiklikleri
LayoutCoordinates.findRootCoordinates()artık herkese açık (I7fa37, b/204723384)LayoutCoordinatesiçindePlacementScopealmak için deneysel API eklendi. Bu, geliştiricilerin mevcut düzenin nerede olduğunu bilmesini ve alt öğeleri konumuna göre yerleştirmesini sağlar. (I5482b, b/238632578)- Bir
LayoutCoordinatesöğesinden diğerine matris dönüşümü elde etmek içinLayoutCoordinates.transformFromeklendi. (Ic5ab1, b/238632578) SemanticsModifier.iddesteği sonlandırıldı ve bunun yerine semantik kimlikLayoutInfo.semanticsIdolarak değiştirildi. (Iac808, b/203559524)- Kaynak yazı tipleri artık yazı tipi varyasyonu ayarlarının (API 26+) belirlenmesini destekliyor. (I900dd, b/143703328)
DeviceFontFamilyNameFont'da değişken yazı tipi desteği (Ic1279, b/143703328)- Yazı tipi oluşturucular artık O+ cihazlarda değişken yazı tiplerini yapılandırmak için
FontVariation.Settinglistesini kabul ediyor. (I11a9d, b/143703328) - Değişken yazı tiplerini tanımlamak ve kullanmak için
FontVariationAPI'si eklendi. (I3c40c, b/143703328) LineHeightStyle.Alignmentoluşturucu artık herkese açık (deneysel) (I4bbbe, b/235876330)- Paragraf artık Android ve masaüstü için expect|actual olarak tanımlanıyor. (Id387e, b/239962983)
- Interface Paragraph artık sealed interface Paragarph. Alt sınıflandırma paragrafı için herhangi bir kullanım alanı yoktur. Bu değişiklik sizi etkilerse bizimle iletişime geçmenizi öneririz. (If5247, b/239962983)
PlatformTextStyleveLineHeightStyleöğelerinden deneysel ek açıklamayı kaldırdı. (I64bef)TextInputService.show|hideSoftwareKeyboarddesteğini sonlandırma Lütfen uygulama kodundaSoftwareKeyboardController, IME yönetimi kodunda iseTextInputSessionkullanı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_NOTIFICATIONSizninin verilmesini gerektiren API'lere@RequiresPermissioneklendi. (Ie542e, b/238790278)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.ui:ui-*:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
- Basıncı almak için yeni bir özellik
PointerInputChange#pressureeklendi. (I45a5e, b/205164819) - Birleştirmede
TextMeasurerörneklerini kolayca oluşturup hatırlamak içinrememberTextMeasurereklendi. (I8d66e) Rect,RoundRectveMutableRectartıkcontainsişlevini çağırmak için Kotlininsöz dizimini destekliyor. (Ie42b0, b/238642990)- API'nin daha basit bölümleriyle kolayca uygulanabildikleri için
KeyInjectionScope'dan gereksiz işlevleri kaldırın. Kaldırılan işlevler arasındapressKeys,keysDownvekeysUpyer alıyor. (I81d77) KeyInjectionScopeiçindeki sabit ve parametre adları, birimleri milisaniye olan sabit ve parametrelerde "Millis" sonekini içerecek şekilde yeniden düzenlendi. (Iabef5)- Metin düzenleme sorunlarını gidermeye yardımcı olması için
toStringForLog()yöntemiEditCommand'e eklendi. (I53354, b/228862731) drawTextuzantı işlevi,DrawScopeüzerindeCanvasvedrawBehindgibiDrawScopeüzerinde çalışan composable'lar ve değiştiriciler üzerinde çok stilli metin çizmenin bir yolunu sağlamak için eklendi. (I16a62, b/190787898)TextMeasureradlı yeni bir deneysel API'yi kullanıma sunuyoruz. Bu API, Compose çalışma zamanından bağımsız olarakBasicTextile aynı sonuçları veren rastgele metin düzeni hesaplaması yapılmasına olanak tanır. (I17101)mapTreeöğesiniSlotTree.ktöğesine ekleyin. Bu sayede araçlar,SlotTreeöğesini incelemek için önce asTree'nin yaptığı gibi bellek içi bir kopya oluşturmak zorunda kalmaz. Düzen inceleyici için bu, yaklaşık 10 kat performans artışı sağlar. (I5e113)- Geliştiricilerin kitaplıklardan
MultiPreviewek açıklamalarını yazıp yeniden kullanabilmesi için Compose Preview'in ikili çıkış dosyalarında saklanması sağlandı. (I85699, b/233511976)
Hata düzeltmeleri
InputEventChangeetkinlikleriVelocityİzleyici'ye eklerken artık konumlar yerine delta değerlerini dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanması sağlanacak (Icea9d, b/216582726, b/223440806, b/227709803).- Ek açıklamalar mevcutken
AnnotatedString.toUpperCasenedeniyle oluşan NPE düzeltildi. (I0aca2, b/210899140)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.ui:ui-*:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü şu commit'leri içerir.
API değişiklikleri
- Gerçek ölçüm/düzen öncesinde ileriye bakma geçişini destekleyen yeni
LookaheadLayout. Bu sayede, düzen değiştiğinde önceden hesaplama yapılabilir. Ayrıca, hedefteki boyut ve konumları canlandırmak için önceden hesaplanmış boyut/konum kullanılarak sonradan bakma ölçüsü/düzeni kullanılabilir.SubcomposeLayoutshenüz desteklenmemektedir ancak gelecek bir sürümde desteklenecektir. (I477f5) - Tüm
Textöğesinin opaklığını değiştirmek içinTextStyleveSpanStyleöğesinin fırça türüne isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635) UrlAnnotationaçıklama türü veAnnotatedString'lerdeTalkBackbağlantı desteğini sağlayan ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)- Yardımcı program işlevlerinin çalışma zamanına taşınması (I4f729)
Hata düzeltmeleri
TextLayoutResult.getLineForOffsethata vermiyor. (Idc5d6, b/235876324)
Harici Katkı
- Durumunu composable işlevlerde veya snapshotFlow aracılığıyla gözlemlemek için yeni bir API
WindowInfo.keyboardModifierseklendi (Icdb8a).
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ü şu commit'leri içerir.
Hata düzeltmeleri
- Denetleyicideki nullpointer hatası düzeltildi (b/237987764).
- İnceleme sırasında hatırlama işlemi yapılırken oluşan sınıf yayınlama istisnası düzeltildi (b/235526153).
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.ui:ui-*:1.2.0 yayınlandı. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
Odak geçişinde iyileştirmeler:
- Lazy listelerin odaklanmaya dayalı kaydırılması artık yeni
BeyondBoundsLayoutCore API kullanılarak çalışıyor. FocusOrderveFocusProperties'de yeni davranış özelleştirme API'leri- Fiziksel klavye veya TV uzaktan kumandasıyla daha iyi davranış
- Lazy listelerin odaklanmaya dayalı kaydırılması artık yeni
Aşağıdakiler için yeni API'ler:
- Pencere ekleri
- Hareket odaklı, sonsuz ve düzen animasyonları için temel öğeler
GraphicsLayerözellikleri (RenderEffectdahil)
Birçok hata düzeltmesi ve performans iyileştirmesi
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc03 yayınlandı. 1.2.0-rc03 sürümü şu commit'leri içerir.
- 1.2.0-rc02 sürümünden bu yana değişiklik yapılmadı.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc02 yayınlandı. 1.2.0-rc02 sürümü şu commit'leri içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü şu commit'leri içerir.
API değişiklikleri
- Compose kitaplıklarındaki arayüzler artık JDK8 varsayılan arayüz yöntemleri kullanılarak oluşturuluyor (I5bcf1).
- Diğer tuşlar basılı tutulurken veya açılıp kapatılırken tuş basma işlemlerini eklemek için
KeyInjectionScope'ya yüksek sıralı işlevler eklendi. Bu işlevler arasındawithKeysDownvewithKeysToggledgibi işlevler yer alır. Ayrıca, belirli bir meta anahtarının basılı olup olmadığını kontrol etmek için özellikler de eklenmiştir. Örneğin, kontrol tuşlarından birinin basılı olup olmadığını kontrol etmek içinisCtrlDownişlevi kullanılır. Her işlevle ilgili dokümanlar içinKeyInjectionScopeadresine bakın. (I9f6cd, b/229831515) Modifier.scrollableaşırı kaydırma efektlerine izin vermek için deneysel birOverscrollEffecttanıtıldı.- Deneysel
LocalOverScrollConfiguration,foundation.gesturepaketinden temel pakete taşındı veLocalOverscrollConfigurationolarak yeniden adlandırıldı (If19fb, b/204650733) runComposeUiTestWithoutActivity {}dosyasınıcreateEmptyComposeRule()ile uyumlu olacak şekilderunEmptyComposeUiTest {}olarak yeniden adlandırın (I6fed7)
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.ui:ui-*:1.2.0-beta03 yayınlandı. 1.2.0-beta03 sürümü şu commit'leri içerir.
API değişiklikleri
pressKeyTimesile birlikteisCapsLockOnve arkadaşlarıKeyInjectionScopealbümüne eklendi. Ayrıca API artık meta tuşu basılıyken fare düğmesine tıklama gibi fare ve klavye kombinasyonuyla ekleme kalıplarını destekliyor. (I4c8da, b/229831515)- Önemli etkinlikleri yerleştirme için deneysel destek eklendi. Önemli etkinlikleri göndermek için
performKeyInputöğesini kullanın veyaperformMultiModalInputile çok formatlı giriş hareketi sırasındaMultiModalInjectionScopeöğesininkeyözelliği üzerinden gönderin. API'nin dokümanları içinKeyInjectionScopeadresine bakın. (Ic5000, b/229831515) - Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni
GoogleFont.Provider.AllFontsListUriekleyin. - GoogleFonts, Compose'da yüklenemediğinde yeniden oluşturulan hata mesajlarını iyileştirin. (I0416c)
Hata düzeltmeleri
- Velocity Tracker'a
InputEventChangeetkinlikleri eklerken artık konumlar yerine delta değerlerini dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanması sağlanacak (I51ec3, b/216582726, b/223440806, b/227709803). Show Layout Boundsayarı, artık hızlı ayarlar kutusundan geçiş yapıldıktan hemen sonra, etkinlikten çıkıp yeniden girmeye gerek kalmadan composable'lara uygulanacak. (I843d5, b/225937688)- Erişilebilirlik dizesi araması, yazı tipi yüklemeyi tetiklemez. Daha önce,
StyleSpansiçin yazı tiplerini yüklemeye çalışıyordu. Bu durum,FontFamily.Resolverüzerine yazılmışsa kilitlenmelere neden oluyordu. (I4609d) - İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme sorunu yaşanmayacak.
DeleteSurroundingTextCommandveDeleteSurroundingTextInCodePointsCommandartık oluşturucu bağımsız değişkenlerinin negatif olmamasını gerektiriyor. (Ica8e6, b/199919707)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.ui:ui-*:1.2.0-beta02 yayınlandı. 1.2.0-beta02 sürümü şu commit'leri içerir.
API değişiklikleri
- Diğer önizleme türlerinde işlevlerin yeniden kullanılması (I19f39)
Hata düzeltmeleri
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer, elden çıkarma işlemleri gerçekleştiğinde (yalnızca gerçekleşmediğinde değil) daha iyi yansıtacak şekildeDisposeOnDetachedFromWindowOrReleasedFromPoololarak 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ü şu commit'leri 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 ötesinde yerleştirdiklerinde
LazyList'nin özel uygulamaları tarafından kullanılabilecek deneyselBeyondBoundsIntervaleklendi (Ifabfb, b/184670295). Modifier.composeduygulamasının anahtarlı sürümleri artık kararlı API (Ie65e4, b/229988420)- Mevcut görünüm bilgilerini edinmek için
rememberNestedScrollConnectionAPI'si, kompozisyon yerellerini kullanacak şekilde basitleştirildi (I67ca7). @ComposableTargetnotu ve@ComposableTargetMarkerile işaretlenen notlar artık@fileöneki kullanılarak dosya kapsamında kullanılabilir. Dosya kapsamındaki bir hedef ek açıklama kullanıldığında derleyici, dosyadaki tüm composable işlevlerin ilişkili uygulayıcıyı hedeflemesi gerektiğini varsayar. Örneğin,@file:UiComposablekullanıldığında tüm@Composableişlevlerinin Compose UI uygulayıcısını hedeflediği belirtilir. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)Yeni deneysel, platformdan bağımsız test API'si kullanıma sunuldu:
interface ComposeUiTestvefun runComposeUiTest(block: ComposeUiTest.() -> Unit). Bu API'ler,TestRuleolmadan Compose kullanıcı arayüzü testlerini çalıştırmak için kullanılabilir.ComposeTestRuleolmadan test çalıştırmak için testirunComposeUiTest'ye lambda olarak iletin ve alıcı kapsamındaki yöntemleri ve üyeleri (ComposeUiTest) kullanın. BunlarComposeContentTestRule'daki yöntemler ve üyelerle aynıdır.Android'e özel
interface AndroidComposeUiTestvefun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit),AndroidComposeTestRule'ye benzer şekilde temel etkinliğe erişim sağlamak için eklenir. Daha fazla kontrol içinclass AndroidComposeUiTestEnvironmentöğesini kendiniz oluşturabilirsiniz.Masaüstü uygulaması
class DesktopComposeUiTestancak şu anda masaüstüne özel çalıştırma işlevleri sunulmamaktadır.Bir testi
ComposeTestRule'danComposeUiTest'e taşıma işlemi şu şekilde yapılabilir (Android örneği). Gönderen:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }Alıcı:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }Şu anda
ComposeContentTestRuleveComposeTestRule,ComposeUiTest'den genişletilmiyor. Bu nedenle,ComposeUiTest'deki uzantı işlevleri henüzTestRulearayüzünde çağrılamıyor.ComposeUiTestkararlı API'ye geçtiğindeComposeContentTestRuleveComposeTestRule,ComposeUiTest'dan genişletilecek şekilde değiştirilecek. (Ib4e90)LineHeightBehavior,LineHeightStyleolarak yeniden adlandırıldıLineVerticalAlignment,LineHeightStyle.Alignmentolarak yeniden adlandırıldıYeniden adlandırılan
LineHeightTrim,LineHeightStyle.Trimolarak yeniden adlandırıldıLineHeightStyleiçindeki varsayılan oluşturucu değerleri kaldırıldı (I582bf, b/181155707)Gradyan renkli metin çizme imkanı sunmak için
Brush,TextStyleveSpanStyleeklendi. (I53869, b/187839528)trimFirstLineTop,trimLastLineBottomözellikleriLineHeightBehaviortek bir enum olarak değiştirildi:LineHeightTrim.LineHeightTrim, iki Boole değeriyle tanımlanan 4 durum değerine sahiptir:FirstLineTop,LastLineBottom, Both ve None (Ifc6a5, b/181155707)LineHeightBehavior,TextStyleveParagraphStyleuygulamalarına eklendi.LineHeightBehavior, satır yüksekliğinin ilk satırın üst kısmına ve son satırın alt kısmına uygulanıp uygulanmayacağını kontrol eder. Ayrıca,TextStyle(lineHeight)tarafından sağlanan alanda satırın hizalamasını da tanımlar.Örneğin, CSS'nin
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)aracılığıyla tanımladığına benzer bir davranış elde edilebilir.trimFirstLineTop,trimLastLineBottomyapılandırmaları yalnızcaincludeFontPaddingdeğeri yanlış olduğunda doğru şekilde çalışır. (I97332, b/181155707)PlatformParagraphStyle.lerpvePlatformSpanStyle.lerpişlevleri üst düzey işlevler olarak değiştirildi (I9a268).
Hata düzeltmeleri
PointerInputChange::copybelgelerinde artık bunun yüzeysel bir kopya olduğu doğru şekilde belirtiliyor. (I182f5)- Yükseklik sınırlı olduğunda ve tüm metin satırlarına sığmadığında üç nokta desteği (Ie528c, b/168720622)
- Varsayılan olarak etkinleştirilir
includeFontPadding.TextStyle.platformTextStyleözelliğiniincludeFontPaddingözelliğiyle devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz ancak o zamana kadar bu değişiklik, satır yüksekliğiyle ilgili iyileştirmeleri (aosp/2058653) daha iyi entegre etmemize veTextFieldkırpma sorunlarını çözmemize olanak tanır. (I01423, b/171394808)
Harici Katkı
MouseInjectionScope.scroll(delta = someDelta)artık Android'de dikey olarak kaydırıldığında tersine çevriliyor (someDelta pozitifse aşağı kaydırılır) (Ifb697, b/224992993)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha08 yayınlandı. 1.2.0-alpha08 sürümü şu commit'leri içerir.
API değişiklikleri
pluralStringResourceişlevleri, gelecekte daha iyi uluslararasılaştırma desteği sunmak için deneysel olarak işaretlendi. (If24e4)- Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor.
Constraints.maxHeightşu anda herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre üç nokta ekleme gibi bazı hesaplamalar yapılmasına olanak tanır. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()artık yeni öğelerin eklenmesine izin vermeyen, MutableSet benzeri özel bir sınıfı kabul ediyor. (Icd314)- PointerIcon artık bir
@Stablearayüzü (I9dafe) - Kısmi tüketim (aşağı veya konum)
PointerInputChange'da kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()kullanabilirsiniz. Başka bir kullanıcının değişikliği daha önce kullanıp kullanmadığını belirlemek içinisConsumedsimgesini kullanabilirsiniz. PointerInputChange::copy()artık her zaman yüzeysel bir kopya oluşturur. Bu, kopyalardan biri kullanıldığındaPointerInputChangekopyalarının da kullanılacağı anlamına gelir. Sınırsız birPointerInputChangeoluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)- Compose ve View arasında Compose > View yönünde iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, bir oluşturma üst öğesinin, 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 tasarlanmış UIAutomator testlerine uygun hale getirilmesinde kullanılabilecek yeni
SemanticsProperty testTagsAsResourceId. (I39c20) FontFamily.SansSerifkullanılırken Android'deki sistem yazı tiplerinin tüm mevcut ağırlıklarını gösterir. Bu, API 21-28'de sans-serif-medium gibi yedek yazı tipi adlarını dahili olarak kullanır. Bu, bir davranış değişikliğidir. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları destekleniyordu. (I380fe, b/156048036, b/226441992)- Paragraph ve Multiparagraph talimatlarında, konum bağımsız değişkenleri isteğe bağlı bağımsız değişkenlerden önce gelecek şekilde yeniden sıralandı. (Idafaa)
AndroidFontartık oluşturucu parametresi olarak typefaceLoader'ı kullanıyor. (I2c971)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha07 yayınlandı. 1.2.0-alpha07 sürümü şu commit'leri içerir.
API değişiklikleri
- Yeni işlev
Snapshot.withoutReadObservation { ... }eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan iletilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak istediğiniz ancak gereksiz yeniden oluşturma veya yeniden ölçme işlemine neden olmadan değeri okumak istediğiniz kullanım alanlarında bu işlevden yararlanabilirsiniz. (I9f365, b/214054486) ComposeView,consumeWindowInsetsuzantı özelliği sayesinde geliştiriciler AndroidWindowInsetstüketimini devre dışı bırakabilir. Bu sayede hiyerarşideki ayrıComposeViews, birbirine müdahale etmedenWindowInsetsuygulanabilir. (I0ef08, b/220943142)- Özellikle IME'de ondalık ayırıcıyı dahil etmek için
Keyboard.Number'ye alternatif olarakKeyboardType.Decimaleklendi. (Iec4c8, b/209835363) PointerEventType.ScrollvePointerEvent.scrollDeltaartık kararlı API'lerdir (I574c5, b/225669674)- İşbirliği yapan View sınıfları için View ve Compose arasında iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, Compose'un artık kaydırma farklarını (işbirliği yapan) bir View üst öğesine gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
- Sisteme genel kalın metin erişilebilirlik ayarını (I6c1e7) entegre etmek için
FontFamily.Resolvergüncellendi. Font(AssetManager, String, ...)desteği sonlandırıldı veFont(String, AssetManager, ...)ile değiştirildi. Bu deneysel bir API'dir. (I1c7a4)- Yazı tipi geri dönüşüm zincirleri sırasında isteğe bağlı olarak sisteme yüklenen yazı tiplerini aramak için yeni yazı tipi tanımlayıcısı
Font(DeviceFontFamilyName)eklendi. (I30468, b/219754572) - TextStyle/ParagraphStyle'da
includeFontPaddingiçin geçici uyumluluk yapılandırması eklendi.includeFontPadding,TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))üzerinden değiştirilebilir. Bu, taşımayı etkinleştirmek için geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808) - Hata ayıklama konusunda yardım almak için
GoogleFont.Provider.isAvailableOnDeviceuzantısını ekleyin. (I64e31) @ArrayResile kullanılmak üzereGoogleFont.Provideroluşturucu ekleyin (Ic5ee1, b/225984280)Compose GoogleFontartıkFont(GoogleFont)olarak adlandırılıyor. API, bunun dışında kararlı kalmaya devam ediyor. (I125f2)
Hata düzeltmeleri
- İç dolgunun kullanıldığından emin olmak için material/Scaffold'a lint kontrolü eklendi (Ifb111).
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha06 yayınlandı. 1.2.0-alpha06 sürümü şu commit'leri içerir.
API değişiklikleri
- Odaklanılabilir hedefe odaklanma isteğine
RequestFocusanlamsal yapı işlemi eklendi. (I17b71) - Mevcut düzen yönü sağdan sola ise
VectorPainteriçeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırılması güncellendi. (I79cd9, b/185760237) API uyumluluğu için gölge/ortam renkleri,
Modifier.graphicsLayerparametrelerinin sonuna eklenecek şekilde güncellendi (I3f864, b/160665122)API'de değişiklik yapılmaması için
GraphicsLayerScopeüzerindeki gölge/ortam rengine varsayılan uygulamalar eklendi.RSB etkinliklerine etkinlik zamanı eklendi (Ief8ae)
FocusOrder,FocusPropertiesile birleştirildi.focusProperties()artıkfocusOrder()'ün tüm özelliklerine sahip.FocusOrdervefocusOrder()desteği sonlandırıldı.focusRequesterkabul edenfocusOrder(),focusProperties()ile birlikte kullanılan birfocusRequester()değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler, endişeleri daha net bir şekilde ayırabilir. (I601b7)Hem
RecyclerViewhem deComposeyükseltildiğinde, artık alt öğe olarak Compose görünümlerine sahip RecyclerView'larda çok daha iyi kaydırma performansı elde edilecek.Yerleşik varsayılan stratejiyi almak için
ViewCompositionStrategy.Defaultekleyin.Yeni varsayılan strateji olan ve RecyclerView gibi havuz oluşturma kapsayıcılarını düzgün şekilde işleyen
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContaineröğesini ekleyin. (If7282)Çoklu önizleme özelliğini eklemenin ilk adımı olarak, notlandırma sınıflarını @Preview ile notlandırma desteği eklendi. Bu tür ek açıklamalar, Composable yöntemlerine veya diğer ek açıklama sınıflarına ek açıklama eklemek için kullanılabilir. Bu yöntemler ve sınıflar daha sonra verilen @Preview ile dolaylı olarak ek açıklama eklenmiş olarak kabul edilebilir. (I12eff)
@Preview için Cihazlar listesine eklenen referans cihazlar (I071c9)
Hata düzeltmeleri
- Vektörel grafik API'leri, @UiComposable yerine uygun birleştirilebilir ek açıklama @VectorComposable'ı kullanacak şekilde güncellendi (I942bc).
AnnotatedString.Builder.withStyle(If84d5) öğesinden crossinline'ı kaldırın.
Harici Katkı
- compose-ui:
ambientShadowColorvespotShadowColorözellikleriniGraphicsLayerScopeöğesine ekleyin (I1ba1a, b/160665122) - Çoğul kaynaklar artık
pluralStringResourceişlevleri aracılığıyla destekleniyor. (Ib2f23, b/191375123)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.ui:ui-*:1.2.0-alpha05 yayınlandı. 1.2.0-alpha05 sürümü şu commit'leri içerir.
API değişiklikleri
TextToolbarartıkActionCallbackyerine lambda bağımsız değişkenleri alıyor. (Ib2eb9, b/197950089)- Çekirdek ve appcompat'teki nullability, Tiramisu DP2 ile eşleşecek şekilde güncellendi (I0cbb7).
- Ölçülen arayüz artık parentData özelliğini kullanıma sunuyor (I3313f)
Modifier.onPlacedveOnPlacedModifierarayüzü artık kararlı sürümde. (Ib5482)- Yaşasın! Compose Animation artık Geliştirici Seçenekleri'ndeki "Animator duration scale" ayarını destekliyor. (I5a4fc, b/161675988)
BeyondBoundsLayoutdeğiştiricisi yerel eklendi (If8b51, b/184670295)- Metin: includeFontPadding artık varsayılan olarak devre dışıdır.
includeFontPadding=falsenedeniyle oluşan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmaması sağlandı. (I31c84, b/171394808)
Hata düzeltmeleri
ComposeContentTestRule.setContent, içerik ayarlanmışken içerik ayarlamaya çalıştığınızda artıkIllegalStateExceptionhatası verecek. (I888a5, b/199631334)- Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
- RSB kaydırma örneklerini iyileştirin. (I6a596)
Harici Katkı
- Kotlinx coroutines 1.6.0 kullanacak şekilde güncellendi (I3366d)
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha04 yayınlandı. 1.2.0-alpha04 sürümü şu commit'leri içerir.
API değişiklikleri
ComposableTarget,ComposableTargetMarkerveComposableOpenTargetişlevleri eklendi. Bu işlevler, bir composable işlevin, kullanılması için tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.Çoğu durumda, ek açıklamalar derleme derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Çıkarılamayan durumlar arasında özel uygulayıcı oluşturma ve kullanma, soyut composable işlevler (arayüz yöntemleri gibi), composable lambda'lar olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler çıkarılır) ya da
ComposeNodeveya ilgili composable işlevleri kullanma yer alır.Özel uygulayıcılar için
ComposeNodeveyaReusableComposeNodeçağıran composable işlevlerin, işlev ve composable lambda parametre türleri içinComposableTargetek açıklaması eklemesi gerekir. Ancak,ComposableTargetMarkerile açıklama eklenmiş bir açıklama oluşturmanız ve ardından doğrudanComposableTargetyerine işaretlenmiş açıklamanın kullanılması önerilir.ComposableTargetMarkerile işaretlenmiş bir composable ek açıklama, uygulayıcı parametresi olarak özelliğin sınıfının tam nitelikli adını içeren birComposbleTargetile eşdeğerdir.ComposableTargetMarkerkullanımına ilişkin örnek içinanroidx.compose.ui.UiComposablebölümüne bakın. (I38f11)Font(resId, ...)artık kararlı API'de loadingStrategy'yi kullanıyor. (Ief3d2)FontLoadingStrategyartık kararlı API. (I1ee35, b/174162090)Metin'de asenkron yazı tipi yüklemeyi destekleme (I77057, b/214587005)
Özel
Font.ResourceLoaderöğesiniFontFamily.Resolveröğesine dönüştürmek için köprü API'si ekleyin. (Ia0060)
Hata düzeltmeleri
- Sağlanan
FontFamily.Resolver, Popup gibi alt bileşenlere aktarılır. - Sağlanan
Font.ResourceLoader, Popup gibi alt bileşenlere aktarılır. (I48fa5)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha03 yayınlandı. 1.2.0-alpha03 sürümü şu commit'leri içerir.
API değişiklikleri
TextInputSessionveTextInputService'dekinotifyFocusedRectyöntemlerinin desteği sonlandırıldı ve bu yöntemler artık çağrılmayacak. Bunun yerineBringIntoViewRequesterkullanın. (Ia4302, b/192043120, b/216842427, b/178211874)RenderNodekaba kod sınıfındadestroyDisplayListDatayöntemi kullanıma sunuldu (I1e659, b/216660268)SubcomposeLayoutönceden oluşturduğunuz çocukların önceden ölçülmesine olanak tanıyan yeni bir API eklendi. (I857ea)Bir composable lambda'yı, durumunu ve ilgili düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren
movableContentOfeklendi. Önceki görüşme kompozisyondan ayrıldığında durum geçici olarak korunur. Lambda'ya yeni bir görüşme kompozisyona girdiğinde ise durum ve ilişkili düğümler yeni görüşmenin konumuna taşınır. Yeni bir arama eklenmezse durum kalıcı olarak kaldırılır ve hatırlatma gözlemcilerine bildirim gönderilir.Aynı kompozisyonda bir
movableContentOflambda birden fazla kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Çağrılar kompozisyondan ayrılıp yeni çağrılar girerken durum, çağrılma sırasına göre ilk ayrılan çağrılardan giren çağrılara taşınır. Yeni aramalar tarafından talep edilmeyen tüm durum kalıcı olarak kaldırılır. (Ib4850)FontFamilyResolverartıkLocalFontFamilyResolver.currentüzerinden kullanılabilirCompose kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için
createFontFamilyResolver(context)vecreateFontFamilyResolver(context, coroutineScope)eklendi.Paragraf ve Çok Paragraf artık
FontFamily.ResolveralıyorTextLayoutResult.layoutInput.fontFamilyResolverartık bu düzen için kullanılan çözümleyiciyi içeriyor.TextLayoutResult.layoutInput.resourceLoaderartık kullanılmadığı için kullanımdan kaldırıldı. (Id5a45, b/174162090)Geri dönüş davranışıyla birlikte eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text ve TextField tarafından kullanılır ve FontFamilyResolver aracılığıyla kullanıma sunulur.
FontFamilyResolver.preloadüzerinden yazı tiplerini önceden yükleme desteğiFontFamilyResolver.setAsyncLoadContext, eşzamansız yazı tiplerini yüklemek için kullanılan genel coroutine bağlamının ayarlanmasına olanak tanır. (I87fe8, b/174162090)Android'de yeni türde yazı tipi kaynak tanımlayıcıları sağlamak için yeni bir düşük düzeyli API olan
AndroidFonteklendi. Örneğin, yazı tiplerini uygulamaya özel bir arka uçtan yükleme, önceden yüklenmiş yazı tiplerini cihaz üzerinde isteğe bağlı olarak bulma veya yazı tiplerini mevcut Font fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için
Font.ResourceLoadedAPI genişletildi. Uygulama geliştiricilerin bu API'yi doğrudan kullanması önerilmez. Yeni yazı tipi türleri eklemek içinAndroidFontbölümüne bakın.Font.AndroidResourceLoaderuzantı işlevi, kompozisyon dışındaFont.ResourceLoaderoluşturulmasına olanak tanır.Kaynak tabanlı yazı tiplerine
loadingStrategyparametresi eklendi. Bu sayede, kaynak yazı tipi indirilebilir yazı tiplerinin XML'sine referans verdiğinde eş zamansız yükleme yapılabilecek. (Ie5aea, b/174162090)Typeface(FontFamily)oluşturucusunun desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye sürebilir. İndirilebilir yazı tiplerinde bu çağrı 10 saniye boyunca engellenebilir. Bunun yerineFontFamilyResolver.preloadkullanın.fontResource(FontFamily): Typefacekullanımdan kaldırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye sürebilir. Bunun yerineFontFamilyResolver.preload(If8e7c, b/174162090) kullanın.maxSlotsToRetainForReuseSubcomposeLayoutStateoluşturucusu artık kullanımdan kaldırıldı. Bunun yerine, gelecekte yeniden kullanmak üzere hangi yuvaların korunması gerektiği konusunda daha ayrıntılı kontrol sağlayan yeni bir arayüz olanSubcomposeSlotReusePolicykabul eden yeni bir oluşturucu vardır. (I52c4d)Coloriçindeki HSV ve HSL işlevini deneysel olmayan API olarak kullanıma sunar. Oklab renk uzayı artık genel API olarak kullanılabilir. (I08fb6, b/180731008)Herkese açık API'de olması amaçlanmayan ve zaten sizin için hiçbir işe yaramayan
AndroidComposeTestRule.AndroidComposeStatementkullanımdan kaldırıldı. (Ibc46b)Dahili olarak oluşturulan kt sınıfını yeniden adlandırma (Ia0b9e, b/174162090)
FontLoadingStrategy.valueskaldırıldı (I42a9d, b/174162090)Global yazı tipi yükleyicinin adı
FontFamilyResolverolarak değişti. (I4f773, b/174162090)Masaüstü için yeni yazı tipi yükleme sistemini kullanın. (I9ce5c, b/174162090)
FontFamily.Resolver.resolveiadeleriState<Any>(I4406c, b/174162090)
Hata düzeltmeleri
- TextField'lar artık odaklandıklarında ve klavye gösterildiğinde klavyenin üzerinde tutulacak. Bu işlem, yumuşak giriş modu
ADJUST_PANolduğunda gerçekleşecek. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolveriçin yerel birleştirme kullanır. - Masaüstü
FontLoaderdesteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolverfabrikası (I6bbbb, b/174162090) - Metin alanları arasında odak değiştirilirken artık sanal klavye giriş türü titremez. (I1bf50, b/187746439)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
- Döner yan düğmeli giyilebilir cihazlar için
Modifier.onRotaryScrollEvent()veModifier.onPreRotaryScrollEvent()eklendi (I18bf5, b/210748686) - Deneysel uzantı
View.createLifecycleAwareRecomposer(I0cde6) ekleme
Harici Katkı
PointerEvent.scrollDelta.yartık Android'de ters çevriliyor (fare tekerleğini sağa eğdiğimizde artık -1 yerine 1 döndürüyor) (Ia9811)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha01 yayınlandı. 1.2.0-alpha01 sürümü şu commit'leri içerir.
API değişiklikleri
FontFamily.canLoadSynchronouslydesteği sonlandırıldı. Bu özelliğin semantik anlamı yoktur. (Ica5ef)- Düzen denetleyicisinde değişmez kimlikler oluşturmak için
CompositionDataöğesine kimlik alanı eklendi. (Ic116e) - Önizleme cihazları listesine Wear OS cihaz kimlikleri eklendi (I93232)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10sürümüne bağlıdır.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.ui:ui-*:1.1.1 yayınlandı. 1.1.1 sürümü şu commit'leri içerir.
Hata düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList'daNullPointerExceptionile ilgili sorun düzeltildi (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
LazyVerticalGrid'da sağdan sola dil desteğiyle ilgili sorun düzeltildi (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ü şu commit'leri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
- Android 12'deki Aşırı kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmasında yapılan iyileştirmeler
- Compose 1.0 ile ilgili olarak, Material bileşenlerinin dokunma hedefi boyutu için Material erişilebilirlik yönergelerine uyacak şekilde düzen alanını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişletilir. Bu, Compose Material'ı Materyal Tasarım Bileşenleri'nin davranışıyla aynı hale getirerek Görünümler ve Compose'u karıştırdığınızda tutarlı bir davranış sağlar. Bu değişiklik, Compose Material bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda dokunma hedefi erişilebilirliği için minimum şartların karşılanmasını da sağlar.
- Gezinme sütunu için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir.
- Kotlin'in yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.ui:ui-*:1.1.0-rc03 yayınlandı. 1.1.0-rc03 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Compose Material 1.1.0-rc03'ü destekleyecek şekilde güncellendi
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-rc01 yayınlandı. 1.1.0-rc01 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan hata düzeltildi (I7cbfb).
SemanticsNodeInteraction.captureToImage()artıkHardwareRenderer.isDrawingEnabled()falseolduğunda da çalışacak. Bunun için görüşme süresinceSemanticsNodeInteraction.captureToImage()'ı etkinleştirmeniz gerekir (Idf3d0).
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ü şu commit'leri içerir.
Yeni Özellikler
- Kotlin
1.6.0ile uyumlu olacak şekilde güncellendi.
API değişiklikleri
androidx.core.viewiçinde nullability temizlendi (I7078a, b/204917439)- Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya kullanılıp kullanılmadığını kontrol etmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
- Kullanıcı arayüzü katmanında fare kaydırma tekerleği etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
- Eşitlik için karşılaştırılacak anahtarları kabul eden ve atlama optimizasyonlarına uygun deneysel
Modifier.composedaşırı yüklemeleri ekleyin. (Ice799, b/205851704) ComposeNotIdleExceptionartık doğrudanThrowableyerineException'den başlıyor. Bu nedenle, daha önceExceptionyakalayan catch ifadelerinin artıkComposeNotIdleExceptionyakalayabileceğini unutmayın. (I9c217)
Hata düzeltmeleri
- IME görünürlüğü değiştiğinde metin tutma noktalarının hareket etmemesi sorunu düzeltildi. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta03 yayınlandı. 1.1.0-beta03 sürümü şu commit'leri içerir.
API değişiklikleri
- Yerleştirme değişikliğinin gözlemlenmesine olanak tanımak için yeni değiştirici Modifier.onPlaced eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine göre alt değiştiricinin ofsetinde ek değişiklikler yapılabilir. (I558fd)
InjectionScope.flush()veInjectionScope.dispose()kaldırıldı. Tüm etkinliklerin temizlenmesi ve kapsamın kaldırılması, daha önce olduğu gibi çağrılan perform*Input() yönteminin sonunda gerçekleşir. (I2bed8)MultiModalInjectionScope.TouchveMultiModalInjectionScope.Mousekaldırıldı. Çok formatlı hareketler için dokunma ve fare etkinlikleri yerleştirmek üzere artıkMultiModalInjectionScope.touch()veMultiModalInjectionScope.mouse()kullanabilirsiniz. Bu iki işlev de ilgili modalitenin alıcı kapsamına sahip bir lambda'yı kabul eder. (Idde18)
Hata düzeltmeleri
TouchInjectionScope.swipeWithVelocityiçindekidurationMillisiçin varsayılan değer artık kaydırmanın mümkün olacağı şekilde hesaplanıyor. (I19deb)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü şu commit'leri içerir.
API değişiklikleri
- Öğeleri görüntülemek için kaydırma işlemi yapmaları amacıyla ebeveynlere istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459).
- Araçları desteklemek için yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler'de incelemesine olanak tanır. (I4116e)
Harici Katkı
- Modifier.pointerHoverIcon (I95f01) eklendi.
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ü şu commit'leri içerir.
API değişiklikleri
- Ebeveynlere istek göndermenize olanak tanıyan deneysel
BringIntoViewAPI'si eklendi. Böylece ebeveynler, öğeyi görüntülemek için ekranı kaydırabilir (Ib918d, b/195353459). - Araçları desteklemek için yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler'de incelemesine olanak tanır. (I4116e)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-alpha06 yayınlandı. 1.1.0-alpha06 sürümü şu commit'leri içerir.
API değişiklikleri
ExperimentalComposeUiApicihazınıViewRootForInspectorveLayoutInfo.ownerViewIdcihazından kaldırma (I5c2e3)- Daha iyi verimlilik için Layout'a çocuksuz bir aşırı yükleme eklendi (Ib0d9a).
- Modüller arası çağrılması gereken Composer yöntemlerinden
InternalCompilerApikaldırıldı (I1aa0b) SemanticsNodeInteraction.performSemanticsActionartık işlevin çağrıldığıSemanticsNodeInteractiondeğerini döndürüyor. (I9e5db)- Dokunma Modu/Dokunma Olmayan Mod'u algılamak için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
- Tüketicilerin uzun basma zaman aşımı gibi işlemler için doğru değeri almasına olanak tanımak amacıyla
viewConfiguration: ViewConfiguration,LayoutInfoöğesine eklendi. (I76ca6)- Testlerin, uzun basma zaman aşımı veya dokunma eğimi gibi faktörlere göre giriş yerleştirmeyi ayarlamasına olanak tanımak için
viewConfiguration: ViewConfiguration,InjectionScope'ye eklendi. - Hem dokunma hem de fare girişi için uzun basma ve çift dokunmanın varsayılan süresi,
InjectionScope.viewConfigurationiçindeki değerlere göre değiştirildi.
- Testlerin, uzun basma zaman aşımı veya dokunma eğimi gibi faktörlere göre giriş yerleştirmeyi ayarlamasına olanak tanımak için
- İçinde TextField ve DropdownMenu bulunan ExposedDropdownMenuBox'a dayalı ExposedDropdownMenu uygulaması (If60b2)
- dismissOnOutsideClick, PopupProperties'e eklendi ve kullanımdan kaldırılan dismissOnClickOutside'ın yerini aldı. Yeni özellik, tıklama konumunu ve sabitleme sınırlarını alır. Böylece, onDismissRequest'in çağrılıp çağrılmaması üzerinde daha hassas bir kontrol sağlanır. Örneğin, bu ayar, dokunulduğunda sabitleme işleminin kapatılmasını önlemek için yararlı olabilir.
- PopupProperties'e updateAndroidWindowManagerFlags eklendi. Bu sayede, pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde düşük düzeyde kontrol sağlanıyor. Lambda'nın parametresi, PopupProperties değerlerinden hesaplanan ve WindowManager işaretleriyle sonuçlanan işaretler olur (ör. odaklanılabilir). Lambda'nın sonucu, Android WindowManager'a iletilecek nihai işaretler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmeden bırakır. Bu API dikkatli bir şekilde ve yalnızca pop-up'ın çok özel davranış koşullarına sahip olduğu durumlarda kullanılmalıdır. (I6e9f9)
Recomposer.state, türünü StateFlow olarak değiştirmek için kullanımdan kaldırıldı veRecomposer.currentStateile değiştirildi (Ic2ab3, b/197773820).InjectionScopeiçinflush()vedispose()eklendi. Sıraya alınmış tüm etkinlikleri hemen boşaltmak ve kapsamı kaldırmak istediğinizde sırasıyla bu yöntemleri kullanın. (Ifb73a)- Kaydırılabilir bir kapsayıcıyı, verilen eşleştirici tarafından eşleştirilen içeriğe kaydıran
performScrollToNode(matcher: SemanticsMatcher)işlevi eklendi. (Ic1cb8) InjectionScopeartıkDensityözelliğini uyguluyor. Bu sayedeperformTouchInputve arkadaşlarınızla kolayca piksel ile dp arasında dönüşüm yapabilirsiniz. (I8fe1f)
Hata düzeltmeleri
- AndroidView artık ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner aracılığıyla LocalLifecycleOwner ve LocalSavedStateRegistryOwner'ı görünümüne yayıyor. (I38f96, b/179708470)
- WearOS'te SwipeToDismissBox'ın bazen kaydırmaları işlememesi 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ş hareketleri gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha05 yayınlandı. 1.1.0-alpha05 sürümü şu commit'leri içerir.
API değişiklikleri
- Değiştiriciler arası iletişim için destek eklendi (Id5467, b/198826874)
- PointerEventChange'e deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
LayoutInfoiçindensity: DensityvelayoutDirection: LayoutDirectioneklendi. Bu sayedeLayoutInfotüketicileri,LayoutInfoiçinde gösterilen boyutları ve konumu doğru şekilde yorumlayabilir. (I002f1)- Fare etkinliklerini yerleştirme için deneysel destek eklendi. Fare etkinliklerini göndermeye başlamak için
performMouseInputişlevini kullanın veyaperformMultiModalInputile çok formatlı giriş hareketi sırasındaMultiModalInjectionScopeöğesininMouseözelliği aracılığıyla fare etkinlikleri gönderin. Kullanılabilir API'nin dokümanları içinMouseInjectionScopeadresine bakın. (Iaa4a8, b/190493367)
Hata düzeltmeleri
- Kaydırma açısından kaydırılabilir öğeler (hem geç hem de geç olmayan) için erişilebilirlik desteği düzeltildi (I6cdb0).
- İyileştirilmiş
TouchInjectionScope.swipeWithVelocity. Artık daha geniş bir giriş değişkeni aralığını kabul ediyor ve kaydırma oluşturulamıyorsa girişte değişiklikler öneriyor (I40fbe, b/182477143).
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha04 yayınlandı. 1.1.0-alpha04 sürümü şu commit'leri içerir.
API değişiklikleri
PointerEventartık fareyle üzerine gelme etkinliklerini desteklemek içinPointerEventTypeözelliğine sahip. (I091fa)- Çocukların, ebeveynin işaretçi girişi sınırları dışında işaretçi girişini kabul etmesine izin verin. Ebeveynler, PointerInputScope.alwaysInterceptChildEvents özelliğiyle bu aramaları engelleyebilir (I9eae3, b/192479655).
performTouchInputveTouchInjectionScopeile değiştirilenperformGestureveGestureScopekullanımdan kaldırıldı. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için
touchBoundsInRoot'ya minimum dokunma hedefi boyutunu içerenSemanticsNodeeklendi. (I2e14b, b/197751214) - İncelenebilir özelliğinin yeniden uygulanması (I927bc, b/191017532)
- İncelenebilir öğenin parametre adı, oluşturulan öğeyle eşleşecek şekilde değiştirildi (I3a482, b/191017532)
performTouchInputveTouchInjectionScope'nin yerineperformTouchInputveTouchInjectionScope'yi kullanıma sunduk. Böylece diğer yöntemlerin (ör. fare) önünü açtık.TouchInjectionScope,GestureScopeile aynı yöntemlere sahiptir.movePointerTovemovePointerByyöntemleri iseupdatePointerToveupdatePointerByolarak yeniden adlandırılmıştır. Diğer tüm yöntemler aynıdır.TouchInjectionScope'nın davranışı,GestureScope'nın davranışıyla neredeyse aynıdır. Aralarında iki küçük fark vardır:- İşaretçiler, taşıma etkinliği gönderilmeden taşındığında (diğer bir deyişle
updatePointerTo()kullanılmış ancakmove()kullanılmamış ve ardındandown()çağrılmış) bir aşağı etkinliği gönderilirken önceki uygulama, etkinlik süresini ilerletir ve aşağı etkinliğini göndermeden önce bir taşıma etkinliği gönderirdi. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu özel senaryoda etkinlik zamanını ilerletmez. - İşaretçiler, hareket etkinliği gönderilmeden hareket ettirilirken bir yukarı etkinliği gönderildiğinde (yukarıdakine benzer şekilde), önceki uygulama etkinlik süresini ilerletir ve yukarı etkinliğini göndermeden önce bir hareket etkinliği gönderirdi. Yeni uygulama ise bu iki işlemi de yapmaz: İşaretçilerin yeni konumları yalnızca yukarı etkinlik aracılığıyla yansıtılır.
Son olarak,
TouchInjectionScope, belirli bir işaretçinin mevcut konumunu almak için yeni bir yöntemcurrentPosition(pointerId: Int)sunar. (If1191, b/190493367)- İşaretçiler, taşıma etkinliği gönderilmeden taşındığında (diğer bir deyişle
Hata düzeltmeleri
- Minimum dokunma hedefi amacıyla, kırpmanın dokunma hedefi sınırlarını kırpma bölgesinin ötesine genişletmesine izin verin. (I43e10, b/171509422)
- Android 12 cihazlarda kaydırma sonu 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ı. 1.1.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Compose
1.1.0-alpha03, Kotlin1.5.30'e bağlı olacak şekilde güncellendi. (I74545)
API değişiklikleri
- Diğer değiştiricileri sarmak için
Modifier.inspectableeklendi. (I1909b, b/191017532) - Klip işaretleri ve TileMode'ların en çok tercih edilen kombinasyonları için bulanıklaştırma kullanım alanlarını basitleştirmek amacıyla
BlurredEdgeTreatmentAPI'si eklendi. Çoğu kullanım alanında, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına ve bu sınırların dışındaki bölgelerin şeffaf siyahla bulanıklaştırılmasına ya da içeriğin, içerik sınırlarının dışına çıkan bulanıklaştırma çekirdekleri için en yakın kenarı örnekleyerek içerik sınırlarına kırpılmasına izin verilir. (I6b4b7, b/166927547) - Compose Desktop'ta RenderEffect desteği eklendi. Bulanıklık görsel efektlerini kompozisyon hiyerarşisinin bir bölümüne eklemenin basit bir yolu olarak bulanıklık değiştiricinin yanı sıra OffsetEffect de kullanıma sunuldu. (I0f6aa, b/166927547)
- RenderEffect API'yi kullanıma sunduk.
Bu API, katmanın içeriğini değiştirmek için
Modifier.graphicsLayerüzerinde isteğe bağlı olarak yapılandırılabilir. Bu, bir composable'ın ve kompozisyon hiyerarşisindeki alt composable'ların içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547) - AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() işlevlerine sahip (I507f0, b/179239764, b/182397793)
- Erişilebilirliği sağlamak için anlamsal yapıda ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
- Bulanıklık tabanlı RenderEffect'ler için kenar davranışını tanımlamada yararlı olan TileMode.Decal desteği eklendi. (I7e8ed, b/166927547)
performScrollToIndex,performScrollToKey,hasScrollToIndexActionvehasScrollToKeyActionartık kararlı API'dir (I142ae, b/178483889).- Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)
Hata düzeltmeleri
- Şekil parametresinin null olup olmadığını açıkça kontrol etmek için BlurredEdgeTreatment'taki isBounded yöntemi kaldırıldı. (I85d68)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha02 yayınlandı. 1.1.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
- PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
- Yerleştirilen hareketler artık zamanın doğruluk kaynağı olarak MainTestClock'un zamanını kullanıyor.
performGestureiçine yerleştirilen etkinliklerin geçerli zamanı, MainTestClock'un geçerli zamanı olarak başlatılır. (Ifb364, b/192064452) DpRect(DpOffset, DpSize)oluşturucu eklendi (I2cf16, b/194219828)- DpSize sınıfı eklendi (I7abb1, b/194219828)
Hata düzeltmeleri
- ColorStateLists'i VectorDrawable'larda kök renk tonu özellikleri olarak desteklemek için güncellenmiş vektör grafikleri XML ayrıştırması. (I86915, b/195668138)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü şu commit'leri içerir.
API değişiklikleri
RelocationRequester.bringIntoViewartık parametre olarak dikdörtgen kabul ediyor. Bu sayede, bir composable'ın bir bölümünü görünüme getirebiliyoruz (Ice2c5, b/194330245).AnimatedImageVectorve ilgili API'ler artık yeniandroidx.compose.animation:animation-graphicsmodülünde. (I60873)- Taşınma isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
ColorPainter'a benzer şekilde, Painter içinde rastgele bir fırçayla çizim yapmayı desteklemek için BrushPainter API'si kullanıma sunuldu.
BrushPainter içinde sorgulanan doğal boyut parametresine sahip olacak şekilde Brush API güncellendi (Ia2752, b/189466433)
İsteğe bağlı bir FilterQuality parametresini kullanmak için kaynak ve hedef dikdörtgenleri kullanan DrawScope#drawImage yöntemi güncellendi. Bu, piksel tabanlı sanat için büyütüldüğünde pikselli olması amaçlanan piksel sanat için kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)
Bir hareketteki etkinliklerin zamanlaması üzerinde daha fazla kontrol sağlamak için
GestureScope.advanceEventTimeyöntemi eklendi (Ibf3e2)
Hata düzeltmeleri
- Çizim değiştiricilerin zincirlenmesini daha iyi desteklemek için Modifier.paint uygulamasının drawsContent'i çağırdığından emin olun.
Daha önce Modifier.paint'in Modifier zincirinde bir yaprak düğüm olması bekleniyordu. Ancak bu şekilde, bir composable kapsayıcıda (ör. kutu) yapılandırılması veya üzerine
Modifier.paint().border()gibi ek süslemeler eklenmesi engelleniyordu. Modifier.paint'in, verilen painter'ın içeriklerini çizdikten sonra drawContent'i çağırmasını sağlayarak değiştirici kalıbıyla davranış tutarlılığını daha iyi hale getirdik. (Ibb2a7, b/178201337, b/186213275) - İletişim kutuları artık platformun boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidthözelliğini yanlış olarak ayarlayın. (Iffaed, b/192682388) InfiniteAnimationPolicy, :compose:ui'ye taşındı (I5eb09, b/160602714)- Lazy listeler ve normal kaydırma bileşenleri için semantik işlemler aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.ui:ui-*:1.0.5 yayınlandı. 1.0.5 sürümü şu commit'leri içerir.
Hata düzeltmeleri
- Türetilmiş durum örneklerinin izlenmesi sırasında yaşanan kilitlenme sorunu düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.ui:ui-*:1.0.4 yayınlandı. 1.0.4 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31sürümüne bağımlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.ui:ui-*:1.0.3 yayınlandı. 1.0.3 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30sürümüne bağımlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.ui:ui-*:1.0.2 yayınlandı. 1.0.2 sürümü şu commit'leri içerir.
Compose 1.0.2 sürümünü destekleyecek şekilde güncellendi. Compose 1.0.2, Kotlin 1.5.21 ile uyumluluğunu sürdürüyor.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.ui:ui-*:1.0.1 yayınlandı. 1.0.1 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21sürümüne bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0 yayınlandı. 1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümünün temel özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Release blogunu inceleyin.
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04/7.1.0-alpha05kullanıyorsanız aşağıdaki kilitlenmeyle karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"Bu sorunu düzeltmek için
build.gradledosyanızda minSdkVersion'ı geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin7.1bir 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ü şu commit'leri içerir.
Hata düzeltmeleri
- İletişim kutuları artık platformun boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidthözelliğini 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ü şu commit'leri içerir.
Yeni Özellikler
- Split ui-tooling module into
ui-toolingandui-tooling-preview(Iefa28, b/190649014)
API değişiklikleri
- Desteği sonlandırılan deneysel
FocusManager#moveFocusInveFocusManager#moveFocusOutkaldırıldı (I227d7, b/170154986, b/186567354, b/168510304) - Canvas artık erişilebilirlik için contentDescription parametresini destekliyor. (Ib547c)
PopupPropertiesiçindekiuseDefaultMaxWidth,usePlatformDefaultWidtholarak yeniden adlandırıldı. (I05710)- İletişim kutuları artık ekran genişliğinin tamamını kullanabilir. (I83929, b/190810877)
- HSV ve HSL renk gösterimleri için deneysel destek eklendi. (Id7cf8, b/180731008)
Davranış Değişiklikleri
- Compose
@PreviewartıkLocalActivityResultRegistryOwnersunuyor. Bu sayede,rememberLauncherForActivityResult()gibi API'leri kullanan ve bu API'lerin sahibinin varlığına bağlı olan Composables'ı önizleyebilirsiniz. (Ib13d1, b/185693006) - Compose
@PreviewartıkBackHandlergibi API'leri kullanan Composables'ı önizlemenize olanak tanıyan birLocalOnBackPressedDispatcherOwnersunuyor. (Ia1c05, b/185693006)
Hata düzeltmeleri
InfiniteAnimationPolicy,androidx.compose.ui:ui'e taşındı (I5eb09, b/160602714)- Modül yapısını değiştirmek için AnimatedImageVector 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ü şu commit'leri içerir.
API değişiklikleri
- Enum Role ve LiveRegionMode'u özel oluşturucuya (Id1890) sahip satır içi sınıflara dönüştürün.
- KeyboardCapitalization, satır içi sınıfa dönüştürülür. (Id5a1c)
- HapticFeedbackType'ı satır içi sınıfa değiştirin. (I255ec)
- Modifier.pointerInteropFilter is @ExperimentalComposeUiApi. (Iede6c)
- TextAlign, FontSynthesis ve TextDirection artık satır içi sınıflar. (I212fe)
- TextOverflow, satır içi sınıfa dönüştürüldü. (I433af)
- FontStyle artık satır içi bir sınıf. (I9e48b)
Hata düzeltmeleri
- Şimdilik temel sabitler @ExperimentalComposeUiApi'dir. Kodu kullananlar, kararlılık öncesinde özel sabitler bildirebilir. (Ia5d48)
- Compose testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tespit edildi:
- Yerel bit eşlem olmadığından
ImageBitmap(), NullPointerException'a neden olur. - Çekiliş yapılmadığı için
captureToImage()süresiz olarak bir sonraki çekiliş geçişini bekler (yani kilitlenir). - Yüklenen yazı tipi olmadığından tüm metinler yanlış ölçülür. Tüm karakterlerin yüksekliği yaklaşık 20 piksel, genişliği ise 1 pikseldir.
ComposeTestRule.waitUntil {}beklerken ana iş parçacığını çalıştırmaz. Bu nedenle,ComposeTestRule.mainClock.advanceTimeUntil {}ile aynı işlevi görür. Gelecekte daha fazla sınırlama belirlenmesi beklenmektedir. (I284fa)
- Yerel bit eşlem olmadığından
Eklenen profil kuralları
Bu sürüm, aşağıdaki Compose modüllerine profil kuralları ekler (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığın profil kuralları,
src/mainveya eşdeğer dizinde bulunan bir metin dosyasındabaseline-prof.txtbelirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşme için kullanılan bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...kullanılırken kullanılan okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.Yöntem kuralı aşağıdaki kalıba sahip olur:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>Sınıf kuralı ise aşağıdaki kalıba sahip olur:
<CLASS_DESCRIPTOR>Burada
<FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için kullanılanH,SvePkarakterlerinden bir veya daha fazlasıdır.<CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin,androidx.compose.runtime.SlotTablesınıfının tanımlayıcısıLandroidx/compose/runtime/SlotTable;olur.<METHOD_SIGNATURE>, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin,LayoutNodeüzerindekifun isPlaced(): Booleanyönteminin imzasıisPlaced()Z'dir.Bu kalıplar, tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için joker karakterler (
**,*ve?) içerebilir.
Kurallar ne işe yarar?
Hişaretine sahip bir yöntem, bu yöntemin "sık kullanılan" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.Sişaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir. Başlangıçta yöntemin derlenmesi ve yorumlanması maliyetini önlemek için önceden derlenmelidir.Pişaretine sahip bir yöntem, başlatma işleminden sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığında önceden ayrılması gerektiğini gösterir.
Nasıl çalışır?
- Kitaplıklar, AAR yapıtlarında paketlenecek bu kuralları tanımlayabilir. Bu yapıtları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özel kompakt bir ikili ART profili oluşturmak için kullanılır. ART, uygulama cihazlara yüklendiğinde bu profilden yararlanarak uygulamanın belirli bir alt kümesini önceden derleyebilir. Bu sayede uygulamanın performansını, özellikle de ilk çalıştırma performansını artırabilir. Bunun, hata ayıklanabilir uygulamaları etkilemeyeceğini 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ü şu commit'leri içerir.
API değişiklikleri
NestedScrollSourceenum'unun yerini satır içi sınıf aldı. (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true),FocusManager.clearFocus(force = true)olarak yeniden adlandırıldı (Ia0c41)- Yeni enum değerleri eklendiğinde kapsamlı when ifadeleriyle ilgili sorunları önlemek için enum kullanımları satır içi sınıflara yeniden düzenlendi. (I2b5eb)
@ExperimentalComposeUiApi,PopupPropertieshesabından kaldırılsın mı? (I01fa6)PointerType, enum'dan satır içi sınıfa (If5058) değiştirildi.- ContentDescription ve Text anlamsal yapı özellikleri artık tek değer değil, liste olarak kullanılıyor. Bu, birleştirme yerine olduğu gibi birleştirilmelerini sağlar. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850).
Modifier.focusModifier()desteği sonlandırıldı veModifier.focusTarget()(I6c860) ile değiştirildi.Modifier.onSizeChanged()veModifier.onGloballyPositioned()artık satır içi işlevler değil (I727f6, b/186109675)KeyboardTypeenum'unun yerini satır içi sınıf aldı. (I73045, b/187055290)FocusStatenumaralandırması,FocusStatearayüzüyle (Iccc1a, b/187055290) değiştirildi.- ImeAction enum'unun yerini satır içi sınıf aldı. (I18be5, b/187055290)
PlaceholderVerticalAlign, satır içi sınıfa dönüştürülür. (If6290)- TextUnitType artık satır içi bir sınıftır. (I4cba9)
AnnotatedString.withAnnotationişlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak kullanılıyor. (I0cd0a)- TextUnitType ile TextUnit oluşturucusu artık ExperimentalComposeApi yerine ExperimentalTextApi'dir.
Hata düzeltmeleri
- beta07'de kullanıma sunulan ve LazyColumn/Row öğelerinin kaydırmadan sonra kısmen gösterilmesine neden olan hata düzeltildi (I8c9ac, b/188566058).
- Artık
detectDragGesures,detectVerticalGesturesvedetectHorizontalGestureskonum değişikliğini otomatik olarak kullanacak. onDrag geri çağırma işlevlerinde change.consumePositionChange'i çağırmanıza gerek yok (I42fc4, b/185096350, b/187320697). - Hizalama çizgileri sağlayan LayoutModifier'lar düzeltildi. Alt öğelerin hizalama çizgileri değiştiğinde üst öğenin yeniden ölçülmemesine neden olan hata düzeltildi. (I4401f, b/174315652)
Modifier.onGloballyPositioned(), tüm değiştiriciler uygulandıktan sonraki düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını raporlayacak şekilde değiştirildi. Bu nedenle, artık değiştiricilerin sırası hangi koordinatların raporlanacağını etkiliyor. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta07 yayınlandı. 1.0.0-beta07 sürümü şu commit'leri içerir.
API değişiklikleri
- İnceleyicide kullanılmak üzere
ViewRootForInspectorarayüzü eklendi (Ib70df) SubcomposeLayoutStateartık yeniden kullanılabilir yer sayısını ayarlamayı destekliyor. Düzen, bir sonraki sefer yeni bir aralığa ihtiyaç duyduğumuzda yeniden kullanmak üzere aralıkları silmek yerine bu sayıya kadar aralığı etkin tutar (Ieb981).- KeyEventType enum'unun yerini satır içi sınıf aldı. (Id670a, b/187055290)
FocusDirectionenum'unun yerini satır içi sınıf aldı. (Ib6d03, b/187055290, b/184086802)- SubcomposeLayout durumunu yükseltme özelliği eklenir. Bu özellik, içeriği gerekli bir slotId'ye önceden oluşturmanıza olanak tanır. Böylece, bir sonraki ölçüm geçişi daha hızlı olur. Çünkü bir sonraki seferde, verilen slotId ile alt bileşen oluşturmaya çalıştığımızda bileşen oluşturmaya gerek kalmaz. (I42580, b/184940225)
- Klip Seçim Kolu eklendi (Iff80d, b/183408447)
- LayoutInspector desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)
Hata düzeltmeleri
- LazyColumn/Row, kaydırılarak görünürlükten çıkmış olsalar bile daha önce görünür olan 2 öğeyi etkin (kaldırılmamış) tutar. Bu sayede, yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt bileşenleri yeniden kullanmasına olanak tanınır ve kaydırma performansı iyileştirilir. (Ie5555)
AnnotatedStringüzerindekiTextGeomerticTransformveTextDecoration, belirtildiği şekilde uygulanır. (I61900, b/184760917)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta06 yayınlandı. 1.0.0-beta06 sürümü şu commit'leri içerir.
API değişiklikleri
- Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
@ComposeCompilerApiartık@RequiresOptIn(Iab690)- Koleksiyonu ve öğelerini erişilebilirlik hizmetleri için işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017).
- Dizinlenmiş öğeler içeren bir listede belirli bir dizine sahip öğeye gitmek için
SemanticsActions.ScrollToIndex, anahtarlı öğeler içeren bir listedeki öğenin dizinini almak içinSemanticsProperties.IndexForKeyeklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirli bir dizine kaydıran
SemanticsNodeInteraction.performScrollToIndexve bir listeyi belirli bir anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKeyişlevi eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirli bir dizine kaydıran
- GraphicLayerInfo'ya ownerViewId eklendi (I19f62)
- Yazı tiplerini öğelerden, File ve FileDescriptor'dan yüklemek için Font() aşırı yüklemeleri eklendi (I5d382).
- Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan erişilebilirlik API'si
erroreklendi (I12997, b/180584804, b/182142737). - Yazı tiplerini öğelerden, File ve FileDescriptor'dan yüklemek için
Font()aşırı yükleme eklendi (I43007). - AnnotatedString'i
TextFieldValue.Saver'e kaydetme desteği.addTtsAnnotationve withAnnotation yardımcı işlevleriAnnotatedString.Builder'ye eklendi (I8cbdc, b/178446304) - TextUnit oluşturucu işlevi eklendi.
TextUnit(value: Float, type: TextUnitType)(I7ecce, b/178446304)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta05 yayınlandı. 1.0.0-beta05 sürümü şu commit'leri içerir.
API değişiklikleri
- Deneysel
FocusManager.moveFocus(In)veFocusManager.moveFocus(Out)özellikleri eklendi (Ic5534, b/183746743) - Deneysel
performTextInputSelectionAPI'si eklendi (I2dcbb, b/178510628) InputEventCallbackarayüzünün desteği sonlandırıldı. Arayüzün herhangi bir genel API'de kullanılması mümkün değildi ve kodda da kullanılmıyordu. (I34a02, b/184003208)- Desteği sonlandırılan
TextLayoutResult/createTextLayoutResultişlevi. Bu, test için eklenmiş ve kullanılmayan bir herkese açık işlevdir. Bu işlev, Compose Text API'leri için kullanılabilir bir işlem yapmaz. Bu işlevin desteği sonlandırılmış olup daha sonra kaldırılacaktır. (I80413)
Hata düzeltmeleri
ACTION_SCROLL_FORWARD,ACTION_SCROLL_BACKWARD,accessibilityActionScrollLeft,accessibilityActionScrollUp,accessibilityActionScrollRightveaccessibilityActionScrollDownerişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir alanın sonuna kadar kaydırmak yerine, artık belirtilen yönde bir ekran kaydırılacak. (Ieccb0)- ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumlu (I6f9de, b/184718994)
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta04 yayınlandı. 1.0.0-beta04 sürümü şu commit'leri içerir.
API değişiklikleri
hideSoftwareKeyboardveshowSoftwareKeyboardöğeleriniSoftwareKeyboardControllerüzerinde sırasıylahide()veshow()olarak yeniden adlandırın.- LocalSoftwareKeyboardController için tam CompositionLocal arayüzünü sağlayarak ayarlanmasına olanak tanır (özellikle testlerde kullanışlıdır) (I579a6)
- LiveRegion erişilebilirlik API'si eklendi. Düğüm canlı bölge olarak işaretlenirse erişilebilirlik hizmetleri, değişiklikler hakkında kullanıcıyı otomatik olarak bilgilendirir (Idcf6f, b/172590946).
- TextOverflow.Visible özelliği kullanıma sunuldu. (Ic8f89)
Hata düzeltmeleri
- Kenarlarda bulunan
LazyColumn/LazyRowöğelerinin hızlı kaydırma sonrasında yanlış konumlandırılması sorunu düzeltildi (Ie4d13, b/183877420). AndroidViewBindingartıkAndroidViewBinding, oluşturma hiyerarşisinden kaldırıldığındaFragmentContainerViewaracılığıyla şişirilmiş parçaları düzgün şekilde kaldırıyor. (Ib0248, b/179915946)AndroidViewBindingartıkComposeViewöğeniz birFragmentiçinde olduğundaFragmentContainerViewaracılığıyla şişirilen parçaları doğru şekilde yerleştiriyor. Böylece, bu parçaların durumunu kaydetme ve geri yükleme ile ilgili sorunlar düzeltiliyor. (I70eb0, b/179915946)- Compose ViewBinding artık Fragment
1.3.2'a bağlıdır ve yapılandırma değişikliklerinden sonraFragmentContainerViewaracılığıyla şişirilmiş parçaları tutarlı bir şekilde gösterir. (I0743d, b/179915946)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta03 yayınlandı. 1.0.0-beta03 sürümü şu commit'leri içerir.
API değişiklikleri
- ComposeView'in ViewTree bağımlılıkları için ertelenmiş kontrol (I8dbbf, b/182466548)
GestureScopeiçindekiswipeUp/swipeDown/swipeLeft/swipeRightişlevlerine isteğe bağlıstartX/endXvestartY/endYparametreleri 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ü şu commit'leri içerir.
API değişiklikleri
- TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardControllercomposition local API'si eklendi. (I5951e, b/168778053) - TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardControllercomposition local API'si eklendi. (I84472, b/168778053) - Aşağıdaki
SemanticsMatcherkaldı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öğeleri @ExperimentalTestApi olarak işaretlendi:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)hasBottomPosition(bottom, tolerance)(Ia600c)
- Aşağıdaki
SemanticsMatcher'lar eklendi:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)hasBottomPosition(bottom, tolerance)(I2f502)
Hata düzeltmeleri
- Deneysel API'lerin herkese açık kullanımına kısıtlamalar getirme (I6aa29, b/174531520)
androidx.compose.ui:uiartık AppCompat veya Fragment'e bağlı değil. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3+ / Fragment 1.3+ sürümlerini kullandığınızdan emin olun. Bu sürümler, ComposeView için gereken yaşam döngüsü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak için gereklidir. (I1d6fa, b/161814404)- Navigation-compose hedefinde kullanıldığında
rememberSaveable { mutableStateOf(0) }simgesinin bozulması sorunu düzeltildi. (I1312b, b/180042685, b/180701630) - TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardControllercomposition local API'si eklendi. (I658b6, b/168778053) ComposeRootRegistry'nıntearDownRegistry()(Iddce1) içinde nadir görülen NoSuchElementException hatası düzeltildi.
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü şu commit'leri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API değişiklikleri
detectDragGestures'ya onStart geri çağırması eklendi (I67269, b/179995594)- Boyutlandırma için doğal boyut değiştiriciler artık deneysel değildir. (I15744)
- MeasureBlocks, MeasurePolicy olarak yeniden adlandırıldı ve eğlenceli bir arayüze dönüştürüldü. Düzen API'leri, MeasurePolicy'yi kullanacak şekilde güncellendi / basitleştirildi. (Icab48, b/167662468, b/156751158)
InteractionState,[Mutable]InteractionSourceile değiştirildi.- Arayüzler, etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
interactionState = remember { InteractionState() }değeriniButtonveModifier.clickable()gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }kullanın.Interaction.Pressed in interactionStateyerine InteractionSource.collectIsPressedAsState() gibi InteractionSource'taki uzantı işlevlerini kullanmanız gerekir.- Karmaşık kullanım alanlarında, Etkileşimler akışını gözlemlemek için InteractionSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için InteractionSource dokümanlarına ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'a AccessibilityMananger arayüzü ve LocalAccessibilityMananger ekleyin (I53520).
- Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için özellik yerine işlev kullanın (I580ed, b/169874631, b/175142755).
- Tür adları, temel türlerle değiştirildi:
ColorStopadlı bankanın yeni adıPair<Float, Color>SpanStyleRangeartık `AnnotatedString.RangeParagraphStyleRangeadlı bankanın yeni adıAnnotatedString.Range<ParagraphStyle>StringAnnotationadlı bankanın yeni adıAnnotatedString.Range<String>- (I8dd1a)
- CoreTextField gibi düşük seviyeli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Placeable artık, alt düzenin ölçtüğü boyutu temsil eden measuredSize'ı kullanıma sunuyor. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Sekme veya radyo düğmesi koleksiyonunun erişilebilirlik amacıyla işaretlenmesine olanak tanıyan selectionGroup değiştiricisini ekleyin (Ie5c29).
compositionLocalOfvestaticCompositionLocalOfiçindefaultFactoryartık isteğe bağlı değil, zorunlu.Bu değişiklik, varsayılan fabrika sağlanmayan, boş değer atanamayan türlerdeki olası bir tür hatasını ortadan kaldırır. Daha önce bu, boş değer atanamayan bir tür için boş referans sağlıyordu.
Boş değer atanabilir türler için varsayılan fabrika olarak
{ null }değerini sağlamayı düşünebilirsiniz.Anlamlı bir varsayılan değer sağlanmadığı sürece, null değer atanamayan türlerle yerel değişkenlerin kullanılması önerilmez. Mantıklı bir varsayılan değer yoksa
defaultFactorylambda bir istisna oluşturmalıdır. Ancak bir istisna oluşturmak, yerel tüketicilerin, tür sistemi tarafından zorunlu kılınmayan bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Arayüz modüllerindeki desteği sonlandırılan yöntemler kaldırıldı (I646f6).
Boyut değiştiricilerin adı değiştirildi. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
Modifier.tapGestureFilterkaldırıldı. Bunun yerineModifier.pointerInput { detectTapGestures(...) }politikasını kullanın. (I266ed, b/175294473)Kısmi tüketim, işaretçi giriş sisteminden kaldırıldı. Kısmi tüketimi koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)
Yönlendirme, temel pakete 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 yardımcı sınıflarında uzantı işlevleridir.
load{Image,Vector,Font}Resourceişlev silindi. (I89130)AnimationClockObservable ve alt sınıfları kaldırıldı. AnimatedFloat kaldırıldı. (Icde52, b/177457083)
Providers, CompositionLocalProvider olarak yeniden adlandırıldı.
- Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı.
- ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri yok.
- ComposableLambdaN, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri yok.
- snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
- En üst düzeydeki @TestOnly clearRoots işlevi kaldırıldı. Artık gerekli değildir.
- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değildir.
- isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
- Çeşitli üst düzey API'ler farklı dosyalara taşındı ve yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu değişiklik, ikili uyumluluğu bozacak ancak kaynak uyumluluğunu bozmayacak. Bu nedenle, çoğu kullanıcı için sorun teşkil etmeyecek.
- (I99b7d, b/177245490)
ComponentActivity.setContent(), compose:ui'den kaldırıldı.androidx.activity:activity-compose:1.3.0-alpha01adresinden gelen kodu kullanın.viewModel()veLocalViewModelStoreOwner, compose:ui'den kaldırıldı.androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01'daki (I6f36b) öğeleri kullanın.Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanılıyor (I4f5a5, b/174485541, b/175294473)
PointerInputModifier'daki CustomEvens desteği kaldırıldı (I02707, b/175294473)
SnapshotStateObserver artık deneysel değil (Id2e6a)
Daha önce desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932).
longPressGestureFilter ve doubleClickGestureFilter kaldırıldı. detectTapGestures gibi yardımcı işlevlerle Modifier.pointerInput'u kullanın (I2fedf, b/175294473).
String.format API'si kaldırıldı. Çeşitli toString yöntemlerindeki kullanımlar, String.format'ten yararlanmayacak şekilde yeniden düzenlendi. (Id1290)
Kaldırılan dp onayları (I798d2)
androidx.compose.runtime:runtime-dispatch kaldırıldı (I55feb)
Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
runBlockingWithManualClockkaldırıldı (I15cdc, b/179664814)Modifier.verticalScroll()/horizontalScroll() içindeki kaydırma konumu artık Ints ile temsil ediliyor (I81298).
FlingConfig'in adı FlingBehavior olarak değiştirildi. Artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)
Tüm ImeAction geri çağırmaları için aynı işlemi ayarlamaya yardımcı olan bir yardımcı işlev eklendi (I63447, b/179226323).
Yakında yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma işlevi tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
FontSpan ve FontWeightStyleSpan artık kullanılmıyor ve kaldırıldı. (Ie5b56, b/177423444)
Material API'de aşağıdaki değişiklikler yapıldı:
- Varsayılan dolguyu özelleştirmeye olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
- Gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesiyle ilgili API yönergelerine uymak için BackdropScaffold'daki parametreler yeniden sıralandı.
- BottomNavigationItem'daki
iconparametresi,selectedveonClicksonrasına taşındı. - BottomNavigationItem'daki
alwaysShowLabelsparametresialwaysShowLabelolarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContentparametrelericontentolarak yeniden adlandırıldı. ButtonDefaults.buttonColors()içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediğinden bu durumun kodunuzda hataya neden olmayacağını lütfen unutmayın. Kodunuzun daha önce olduğu gibi çalışmaya devam etmesi için lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun.secondaryVariantparametresidarkColors()öğesine eklendi. Bu renk genellikle koyu temadakisecondaryile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.- Yaygın olarak kullanılmadıkları / faydalı olmadıkları için ElevationDefaults ve animateElevation() işlevleri herkese açık API yüzeyinden kaldırıldı.
SlideriçindekionValueChangeEnd,onValueChangeFinishedolarak yeniden adlandırıldı ve boş değer atanabilir hale getirildi.- Tutarlılık için
Snackbariçindekitextparametresinin adıcontentolarak değiştirildi. - Varsayılan dolguyu özelleştirmeye olanak tanımak için
DropdownMenuItemöğesinecontentPaddingparametresi eklendi vecontent,RowScopeöğesinin uzantısı haline getirildi. ModalDrawerLayout,ModalDrawerolarak yeniden adlandırıldı.BottomDrawerLayout,BottomDrawerolarak yeniden adlandırıldı.- (I1cc66)
Hata düzeltmeleri
- Compose'da AnimatedVectorDrawable kaynaklarını kullanmak için API eklendi.
<animated-vector>XML'yi AnimatedImageVector olarak yüklemek ve painterFor ile animasyonunu yapmak için animatedVectorResource'u kullanın (I8ea91). - TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController kompozisyon yereli 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ü şu commit'leri içerir.
API değişiklikleri
- ViewGroups desteği UiApplier'dan kaldırıldı. Kullanımdan kaldırılan emitView composable'ları kaldırıldı. (Ifb214)
- Modifier.pointerInput artık işaretçi girişi algılama eş yordamının yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek üzere remember anahtarları gerektiriyor. (I849cd)
- CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
- Bounds, DpRect (I4b32a) olarak yeniden adlandırıldı.
- Test güncellemesi: hasText(), metin alanındaki hem giriş hem de etiket/ipucu/yer tutucu metinleri kontrol edecek (Iab803)
- viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose'a taşındı. Artık bunu kullanmak için ayrı bir androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 bağımlılığı eklemeniz gerekecek. (I7a374)
- AccessibilityAction'da null değer atanabilir işleme izin verin, AccessibilityAction ve CustomAccessibilityAction'daki işlem etiketini CharSequence'dan String'e değiştirin (I0dc82)
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Alt dizeyi artık bağımsız değişken olarak kullanan daha iyi alt dize testi API'leri (Icbe78)
- Özel odak sırası belirtmeden FocusRequester'ı kabul eden bir
Modifier.focusOrder()eklendi. Bu, yalnızca bir referans belirtmemiz gerektiğinde ancak bir composable için özel odak sırası belirtmemiz gerekmediğinde kullanışlıdır (I4f52a, b/179180978). - ComponentActivity.setContent, androidx.activity:activity-compose modülünde androidx.activity.compose.setContent'e taşındı. (Icf416)
- Nadiren kullanıldıkları için bazı sınıflardan yapı bozma ve copy() yöntemleri kaldırıldı. (I26702, b/178659281)
- Pop-up'ın platforma özel olması için taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve
isFocusable,PopupProperties(Ieeea5) içindefocusableparametresine taşındı. - İletişim kutusu platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
- LayoutNode dahili hale getirildi (I8a7b1, b/175103944)
- Constraints.enforce, Constraints.constrain ile değiştirildi. (I8b8ea)
- loadFontResource desteği sonlandırıldı. Bunun yerine fontResource'u kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource işlevlerinin desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
- Performans nedeniyle, ScrollAxisRange semantiği artık doğrudan Float değerleri yerine Float değerleri döndüren lambda'ları alıyor. (If4a35, b/178657186)
- Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantiği ve semantiği kontrol etmek için ilgili test yöntemleri eklendi (I8e07a).
- OwnerLayer/OwnerScope/OwnerSnapshotObserver dahili hale getirildi (I4ffaf, b/175103944)
- toIntPx() işlevinin adı roundToPx() olarak değiştirildi. (I9b7e4, b/173502290)
- IntBounds, IntRect olarak yeniden adlandırıldı ve API geliştirildi. (I1f6ff)
- Snapshot API, API yönergesiyle daha tutarlı olacak şekilde güncellendi ve dahili uygulama sınıfları genel API'den gizlendi. (Id9e32)
- Genişletme ve daraltma semantik işlemleri eklendi. ModalBottomSheetState'e expand ve halfExpand eklendi (Ib5064)
- Modifier.dragGestureFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}kullanın. Alternatif olarak, tek eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473) - Ambients, Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Ambients, AmbientFoo olarak adlandırılırdı. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
- Desteği sonlandırılan BaseTextField kaldırıldı. Bunun yerine BasicTextField kullanın. (I71368)
- Seçim, temel katmana taşındı. (I7892b)
- Daha önce
state { 0 }composable'ı kaldırıpremember { mutableStateOf(0) }gibi kullanımları teşvik ettiğimiz gibi,savedInstanceState { 0 }composable'ı da kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }kullanmalısınız. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa bu tür otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir kaydedici nesne iletiyorsanız artıkstateSaverparametresine sahip yeni bir rememberSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şu şekilde görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26, b/177338004) - Erişilebilirlik için şifre semantiği eklendi (I231ce)
- Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05).
emptyContent()ve(@Composable () -> Unit).orEmpty()yardımcı programlarının artık olumlu bir performans etkisi veya değeri olmadığından desteği sonlandırıldı (I0484d).snapshotFlowvewithMutableSnapshotartık deneysel değil (I6a45f)- Yeniden oluşturucular artık kapatılabilir. Kapalı yeniden oluşturucular, alt bileşen eş yordamları tamamlanana kadar yeniden oluşturmaya devam eder. Recomposer.shutDown, kapatma işlemiyle karşılaştırmak için iptal olarak yeniden adlandırıldı. (Ib6d76)
- UiSavedStateRegistry, SaveableStateRegistry olarak, AmbientUiSavedStateRegistry ise AmbientSaveableStateRegistry olarak yeniden adlandırıldı ve her ikisi de androidx.compose.runtime.saveable paketine taşındı. (I30224)
- Artefact androidx:compose:runtime:runtime-saved-instance-state, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac).
- ui paketinde desteği uzun süredir sonlandırılmış birçok API silindi. (I2f2dc)
- compose:runtime-dispatch yapısı artık kullanımdan kaldırıldı. MonotonicFrameClock artık compose:runtime içinde, AndroidUiDispatcher ise compose:ui içinde bulunabilir. (Ib5c36)
- Outline.* sınıfları artık veri sınıfları değil (I4879e, b/178001427)
view.captureToImage(), yerine başka bir karakter eklenmeden kaldırıldı. (I7fcd2)- Kaynak içeriğin RGB değerlerini değiştirmek için kullanılan ColorMatrix API'si kullanıma sunuldu. ColorFilter API, arayüz olacak ve PathEffect'in uygulanmasıyla eşleşecek şekilde yeniden düzenlendi. (Ica1e8)
- Şeklin createOutline işlevine layoutDirection parametresini ekleyin. Bu sayede, düzen yönüne duyarlı şekiller oluşturabilirsiniz. (I57c20, b/152756983)
- onImeActionPerformed kullanımdan kaldırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
- Sonsuz animasyonlarda uygulanacak bir
InfiniteAnimationPolicycoroutine bağlamı öğesi eklendi.ComposeTestRuleile testler çalıştırılmadığı sürece varsayılan olarak politika yüklenmez. (I50ec4, b/151940543) - canDrag, Modifier.scrollable öğesinden kaldırıldı. (Id66e7, b/175294473)
- Yeni bir parentCoordinates özelliği için LayoutCoordinates.parentCoordinates, LayoutCoordinates.parentLayoutCoordinates olarak yeniden adlandırıldı. parentCoordinates özelliği artık üst değiştiricinin LayoutCoordinates'ini sunuyor. Bu, onSizeChanged() ve onGloballyPositioned() için daha eksiksiz kullanım alanları sağlayacaktır (Idfbfd, b/177926591).
- tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.clickable veya Modifier.pointerInput ile detectTapGestures işlevini kullanın. (I6baf9, b/175294473)
- SaveableStateRegistry'nin unregisterProvider'ı kaldırıldı. Bunun yerine, artık registerProvider() işlevi, kaydı silmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739).
- rememberSavedInstanceState() işlevi, rememberSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
- CoreText ve CoreTextField, genel API'den kaldırıldı.
- Kullanımdan kaldırılan SelectionContainer aşırı yüklemesi kaldırıldı.
- (I99c19)
- Compose'un doğrudan WindowManager'a eklenen/kaldırılan hiyerarşilerde kullanıldığı testler artık daha kararlı. (Ie81ed, b/175765614)
- Recomposer.current() kaldırıldı. [Abstract]ComposeView artık pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, pencere kapsamlı ve geç oluşturulan Recomposer'ları varsayılan olarak kullanıyor. Ana makine yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon işaretleri duraklatılır. (I38e11)
- Recomposer.runningRecomposers artık süreçteki devam eden kompozisyon durumunu gözlemlemek için salt okunur RecomposerInfo'nun genel bir StateFlow'unu sunuyor. Bu API'yi, desteği sonlandırılan Recomposer.current() yerine kullanın. (If8ebe)
- Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate'ten androidx.compose.runtime.saveable'a taşındı (I77fe6).
- EditCommands, AnnotatedString'i kabul eder. Ancak bu değişiklik yalnızca API'de geçerlidir ve çok stilli metin düzenleme henüz uygulanmamıştır. (I4c3ea)
- Çalışma süresi ve süre kaldırıldı. (Ib9bf4, b/177420019)
- CompositionData.asTree() ve ilgili API'ler ayrı bir ui-tooling-data modülüne taşındı ve deneysel olarak işaretlendi (Ic95b8)
- RounderCornerShape, CutCornerShape ve CornerBasedShape üzerindeki parametreler, şeklin sağdan sola yönünde otomatik olarak yansıtılmasını desteklemek için soldan/sağdan başlayarak/biterek olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlarda AbsoluteRounderCornerShape ve AbsoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüzde artık tür parametresi de kullanılmıyor.
Bu, kaynak kodu uyumluluğunu etkilememesi gereken ancak ikili uyumluluğu bozan bir dahili değişikliktir. (I3b922, b/169406779)
Yanlışlıkla herkese açık hale getirilen StringBuilder.deleteAt işlevini kaldırın (Id6ed9)
Hata düzeltmeleri
- Başka bir kompozisyonun alt öğesi olan görünüm hiyerarşilerine yerleştirilen ComposeView'lar artık atalarının alt öğe kompozisyonlarını barındırıyor (I92883).
- ImageBitmap nesneleri yüklenirken kaynak çizilebilir öğe önbelleğini yeniden kullanmak için Compose'un imageFromResource API'si güncellendi. (If3627, b/178751994)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha11 yayınlandı. 1.0.0-alpha11 sürümü şu commit'leri içerir.
API değişiklikleri
- WithConstraints, BoxWithConstraints olarak yeniden düzenlendi ve foundation.layout'a taşındı. (I9420b, b/173387208)
- Key.DPadUp desteği sonlandırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
- Sahip arayüzü artık dahili. (If8e35)
- Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
- PopupPositionProvider, genel koordinatlar yerine pencereye göre koordinatlar kullanacak şekilde değiştirildi. parentGlobalBounds'u anchorBounds olarak yeniden adlandırır ve windowGlobalBounds'u windowSize: IntSize olarak değiştirir (I2994a).
- Süre ve Çalışma Süresi, uzun milisaniye ile değiştirilecek ve bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldıracak. (Ia33b2, b/175142755, b/177420019)
- AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365).
- Vektör grafik API'si, vektör grafiklerin köküne uygulanan renk tonunun ayrıştırılmasını destekleyecek şekilde güncellendi. (Id9d53, b/177210509)
- Cihazları ayırt etmek için PointerInputChange'e toolType eklendi (Iac787, b/175142755)
- AmbientWindowManager, AmbientWindowInfo olarak yeniden adlandırıldı (I2686a, b/177084714, b/177084983)
- Genel koordinat yöntemlerinin desteği sonlandırıldı ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)
- İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsLayer eklendi. (I315df)
- FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretleniyor. (I2d898, b/177000821)
- SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, horizontalScrollAxisRange olarak yeniden adlandırıldı. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
- PointerInputData kaldırıldı ve PointerInputChange, PointerInputData'nın tüm alanlarını içerecek şekilde değiştirildi. PointerInputEvent ve PointerInputEventData, herhangi bir genel API'de kullanılmadığı için dahili hale getirildi. (Ifff97, b/175142755)
- dp'nin ham piksellere dönüştürülmesini desteklemek için GraphicsLayerScope uygulamasında yoğunluk güncellendi. (Ied528, b/176819695)
- Satır ağırlıklı sıralamayı takip etmek ve farklı matris gösterimleri arasında dönüşüm yapmaya yardımcı olmak için dizin sabitleri sağlamak üzere matris API'si güncellendi. Bu sayede, SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığı dahili olarak eşleştirilir. (I432e6)
- Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
- String.fintPrecedingBreak ve String.fingFollowingBreak'i InternalTextApi'ye taşıyın. (I657c4)
- androidx.compose.ui.util.isSurrogatePair, genel API'den kaldırıldı. (Ia9494)
- TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı.
- TransformedText artık bir veri sınıfı değil (Ie672a)
data class, aşağıdaki sınıflardan kaldırıldı:- InlineTextContent
- LocaleList (I605c7)
- Aşağıdaki sınıflar artık veri sınıfları değildir:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
- VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4).
- İşlev referansı parametre türü (I5e1bd) eklendi.
- Dönüştürülmüş sınırları InspectorNode'a ekleme (Ice42f)
Hata düzeltmeleri
- onCommit, onDispose ve onActive, SideEffect ve DisposableEffect API'leri lehine desteği sonlandırıldı (If760e).
Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- İlk harfleri küçük olan önceki fabrika işlevlerinin desteği sonlandırıldı
- Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürür.
- Alt sınıfların oluşturucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulabilmelerini sağlayın.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7).
ComposeContentTestRuleeklendi. Bu parametre,ComposeTestRuleöğesini genişletir veComposeTestRuleöğesinden kaldırılansetContentöğesini tanımlar.createEmptyComposeRule()döndüren ve sizin için bir Etkinlik başlatmayan bir fabrika yöntemiComposeTestRuleeklendi. Testiniz sırasında etkinliğinizi başlatmak istediğinizde bu yöntemi kullanın. Örneğin,ActivityScenario.launch(I9d782, b/174472899) kullanmaanimateAsState artık animateFooAsState olarak adlandırılıyor. Burada Foo, animasyon uygulanan değişkenin türünü (ör. Float, Dp, Offset vb.) ifade ediyor (Ie7e25).
Resim ve simgeye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c).
displaySize, kaçınılması gereken bir parametre olduğundan kaldırın. Genellikle en azından onRoot() veya pencere boyutunu kullanmak daha iyidir. (I62db4)
OnSizeChanged, düzenin içeriklerinin boyutunu bildiriyordu. Artık değiştirici zincirindeki konumunda boyutu bildiriyor. (I36b78, b/177562900)
emit() API'si ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler aynıdır. Yalnızca Compose'un adlandırma kurallarına (I4137b) uymak için farklı bir ad kullanılmıştır.
TextFieldValue, AnnotatedString'i kabul eder. Ancak bu değişiklik yalnızca API'de geçerlidir ve çok stilli metin düzenleme henüz uygulanmamıştır.
initial, EditingBuffer oluşturucu parametrelerinden kaldırıldı. (I326d5)
invalidate ve compositionReference() işlevlerinin desteği, sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri lehine sonlandırıldı. (I583a8)
AnnotatedString, kotlin.CharSequence'den genişletilecek şekilde değiştirildi. Bu nedenle, length ve subSequence artık örnek işlevler, uzantı işlevleri ise kaldırıldı. (Iaf429)
RememberObserver, CompositionLifecycleObserver'ın yerini alır ve CompositionLifecycleObserver artık kullanımdan kaldırılmıştır.
RememberObserver, değiştirilmiş anlamsal yapı ve yeniden adlandırılmış yöntemlerleCompositionLifecycleObserveryerine kullanılan bir API'dir. Yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bu, önerilen uygulama olmaya devam etmektedir. Ancak bir kompozisyonda bir referans birden fazla kez hatırlanırsaonRemembered, yalnızca bir kez çağrılanonEnteryerine her referans için çağrılır.onEnterNesne,WithConstraintsveScaffoldgibi alt bileşimlerde kullanılıyorsa birden fazla kez çağrılıyordu. Bu durum, tekonEnterçağrısı garantisini güvenilmez hale getiriyordu veRememberObserveriçin kaldırıldı.RememberObserver,remember'ye iletilen geri çağırma işlemindenRememberObserverörneği döndürülürse ancak beste durumunda hatırlanmazsa çağrılanonAbandonedişlevini ekler ve bu nedenleonRememberedişlevi hiçbir zaman çağrılmaz. Bu durum, bir istisna nedeniyle kompozisyon tamamlanmadan önce sonlandırılırsa veya kompozisyon, durum artık geçerli olmadığı ya da başka bir nedenle artık gerekli olmadığı için atılırsa oluşabilir. Yukarıdaki tek referans önerisini izleyenRememberObserverörneği harici bir kaynağı izliyorsa hemonForgottenhem deonAbandoned, kaynağın artık gerekli olmadığını gösterir. Nesne,onRememberediçinde başlatılan işi veya ayrılan kaynakları izliyorsaonRememberedçağrıldığındaonAbandonedçağrılmayacağından yoksayılabilir. (I02c36)2 veya daha fazla TextUnit arasında kullanımdan kaldırılan aritmetik işlemler. Int.sp ve Int.em gibi uzantı işlevleri yerine TextUnit.Sp ve TextUnit.Em işlevlerinin kullanımı sonlandırıldı. (I48369)
Herkese açık kaynakları açıkça belirtilmemiş (ör. public.xml aracılığıyla) kütüphanelerdeki kaynaklar artık varsayılan olarak özeldir. (Ia1dcc, b/170882230)
ScrollableColumn/Row desteği sonlandırıldı. Kaydırılabilir içeriğiniz büyük olduğunda ScrollableColumn kullanmak LazyColumn'a kıyasla daha az verimlidir. Bunun nedeni, LazyColumn ile yalnızca görünür öğeleri oluşturabilir/ölçebilir/çizebiliriz. 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 lazy davranışına ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)fabrika yöntemi.items(items: List)veitemsIndexed(items: List)artık uzantı işlevleri olduğundan kullanıldıklarında manuel olarak içe aktarılmaları gerekir. Diziler için yeni uzantı aşırı yüklemeleri:items(items: Array)veitemsIndexed(Array)(I803fc, b/175562574)Lütfen ImeAction.NoAction yerine ImeAction.None kullanın.
- Lütfen ImeAction.Unspecified yerine ImeAction.Default kullanın (Ie1bcc).
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
TextInputService.onStateUpdated, updateState olarak yeniden adlandırıldı (Id4853)
TransitionDefinition tabanlı geçiş kullanımdan kaldırıldı (I0ac57)
TextUnitType.Inherit kaldırıldı. Lütfen bunun yerine TextUnitType.Unspecified kullanın. (I9ff64)
Sürüm 1.0.0-alpha10
13 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha10 yayınlandı. 1.0.0-alpha10 sürümü şu commit'leri içerir.
Zarar Veren Değişiklik (Breaking Change)
Dahili derleyici API'sinin yeniden yapılandırılması, tüm
@Composableişlevleri tamamlandıktan sonra, bileşim sonucunda oluşturulan düğümlerdeki değişikliklerin bileşimin "değişiklikleri uygula" aşamasında toplu olarak işlenmesine olanak tanır.Bu, davranışla ilgili bir hataya neden olan değişikliktir. Değişiklikler uygulanana kadar düğümler artık dahili ve deneysel API'lerden kullanılamayacağından uygulama kodunu etkileyebilir. Bu sorun genellikle, kodu düğümler oluşturulup başlatılana kadar yürütmeyi ertelemek için bu tür bağımlılıkları olan kodu
SideEffectcomposable'ın içine alarak çözülebilir. (I018da)
API değişiklikleri
- Özel odak geçişi sırası belirtmek için kullanılabilecek Modifier.focusOrder() işlevi eklendi (I90cf5, b/175899543, b/170155556, b/170155429).
- Desteği sonlandırılan focusObserver kullanımı kaldırıldı. Bunun yerine onFocusChanged veya onFocusEvent kullanılacak (I3ecb9, b/175156387).
- EditOperations API'deki Değişiklikler
- EditOperation, EditCommand olarak yeniden adlandırıldı.
- EditOperation somut uygulamaları için Command soneki eklendi
- EditCommand'ler artık veri sınıfları değil
- EditOperation.process işlevi applyTo olarak yeniden adlandırıldı
- InputEventListener, InputEventCallback olarak yeniden adlandırıldı.
- (I0a366)
- Kullanılmayan PxSquared, PxCubed ve PxInverse kaldırıldı. Size.center() işlevi, özellik olarak değiştirildi. (I973f7)
- ui-test modülü artık test edilen kullanıcı arayüzleri için yeniden oluşturucuların oluşturulmasını yapılandırabilecek (Ibebd8)
- Bileşen parçaları ve matematiksel işlemler içerecek şekilde Velocity değiştirildi. (Ib0447)
- Benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olması için
@ExperimentalTesting,@ExperimentalTestApiolarak yeniden adlandırıldı. - Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5).
- Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- LayoutNode sınırları değiştiğinde Sahibi bilgilendirmek için geri çağırma ekleyin. (I72fd1)
- Belirtilmemiş sabiti olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
Compose tabanlı görünümlerin geri dönüştürülmesine, kompozisyonlarının daha sonra yeniden oluşturulmak üzere kaldırılmasına olanak tanımak için [Abstract]ComposeView API'lerini genişletin. Pencere kapsamlı yeniden oluşturucuları yüklemek ve keşfetmek için API'ler ekleyin. Ayrıca, alt kompozisyonlar oluşturmak için CompositionReference'lar ekleyin.
[Abstract]ComposeViews'in bileşim imha stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış, pencere ayrıldığında imha etmektir. (I860ab)
Any.identityHashCode() herkese açık API'si kaldırıldı (I025d7)
Doğrudan String.format kullanmak için toStringAsFixed API'si kaldırıldı. (Iaba6b)
Toggle'ı foundation Strings.kt dosyasına ekleyin (I4a5b7, b/172366489).
nativeClass, ui modülüne taşındı ve dahili hale getirildi. equals uygulamalarındaki nativeClass kullanımları, bunun yerine "is MyClass" kullanacak şekilde güncellendi. (I4f734)
Modifier.focus() ve Modifier.focusRequester() desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
SelectionRegistrar.notifySelectableChange işlevi kullanıma sunuldu. Bu işlev, SelectionManager'a Selectable güncellemelerini bildirir. (I6ff30, b/173215242)
Çeşitli ana hat uygulamaları için sınırlayıcı dikdörtgeni elde etmek üzere Outline.bounds özelliğini kullanıma sunduk. (I16e74, b/175093504)
TestUiDispatcher'ın desteği sonlandırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
ImeOptions ve KeyboardOptions artık veri sınıfı değil (I3c898, b/168684531)
VisualTransformation API'deki Değişiklikler
- OffsetMap, OffsetMapping olarak yeniden adlandırıldı.
- OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı.
- PasswordTransformation artık veri sınıfı değil
- OffsetMapping kendi dosyasına taşındı
- (I0bdf3)
Konum, DpOffset olarak yeniden adlandırıldı ve getDistance() kaldırıldı (Ib2dfd)
Changed fun Dp.isFinite() to a val Dp.isFinite (I50e00)
Hata düzeltmeleri
- Recomposer artık mevcut durumunun bir akışını göstererek etkinliğinin ve ilişkili efektlerin etkinliğinin izlenmesine olanak tanıyor. (Ifb2b9)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden erişilebilir (I87c57, b/173086397).
animate()artıkanimateAsState()ile değiştirildi. Bu işlev,TyerineState<T>döndürür. Bu sayede, geçersiz kılma kapsamı State değerinin okunduğu yerle sınırlandırılabildiğinden daha iyi performans elde edilir. (Ib179e)- Semantics role API'yi ekleyin ve Role'ü tıklanabilir, seçilebilir ve açılıp kapatılabilir SemanticsModifier'a parametre olarak ekleyin. Slider'ın da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
- Animasyonları arasında karşılıklı dışlama sağlayan yeni eş yordama dayalı API
Animatable.- Çok boyutlu azalma animasyonunu desteklemek için yeni DecayAnimationSpec
- (I820f2, b/168014930)
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha09 yayınlandı. 1.0.0-alpha09 sürümü şu commit'leri içerir.
API değişiklikleri
- Desteği sonlandırılan KeyEvent.Alt kaldırıldı. Bunun yerine KeyEvent.isAltPressed'i kullanın. (Idd695)
- Modifier.keyInputFilter ve Modifier.previewKeyInputFilter kullanımdan kaldırıldı. Bunun yerine Modifier.onKeyEvent ve Modifier.onPreviewKeyEvent kullanın (Idbf1b, b/175156384).
- Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
- İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope, AwaitPointerEventScope olarak, handlePointerInput() ise awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)
- Otomatik Doldurma API'si artık deneysel bir API ve etkinleştirme gerektiriyor (I0a1ec)
- FocuSRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
- accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
- Özel etkinlikler, işaretçi girişini askıya alma API'sinden (Ia54d5, b/175142755) kaldırıldı.
- SelectionRegistrar'da çeşitli yeni işlevler kullanıma sunuldu ve onPositionChange işlevi notifyPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
- Dahili olarak işaretlediğimiz LayoutNode üyelerinin sayısı artırıldı (I443c6).
- LayoutInfo, araçlar ve testler tarafından kullanılmak üzere kullanıma sunuldu (I9b190).
- AndroidOwner made internal (Ibcad0, b/170296980)
- Removed ExperimentalPointerInput annotation (Ia7a24)
- İç içe yerleştirilmiş kaydırma sistemi eklendi. Daha fazla bilgi için Modifier.nestedScroll'a bakın (I36e15, b/162408885).
- subcomposeInto(LayoutNode) dahili hale getirildi (Id724a)
Applierarayüzü, ağaçları yukarıdan aşağıya değil aşağıdan yukarıya doğru oluşturmayı kolaylaştıracak şekilde değiştirildi.insert()yöntemi,insertTopDown()olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()) eklendi.Bir uygulayıcı, hangi yöntemin daha iyi performans gösterdiğine bağlı olarak
insertTopDown()veyainsertBottomUp()kullanarak düzenlediği ağaca düğümler ekler.LayoutNodeveViewgibi bazı ağaçlar, yukarıdan aşağıya yerine aşağıdan yukarıya doğru inşa edildiğinde çok daha verimli olur. Bu değişiklikten önce, aşağıdan yukarıya doğru oluşturma işlemini uygulamak için bir ekleme yığını gerekiyordu. Bu yığın, performans için aşağıdan yukarıya doğru oluşturma işleminin gerekli olduğu her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte, ağacı aşağıdan yukarıya doğru oluşturmak içinApplierinsertBottomUp(), ağacı yukarıdan aşağıya doğru oluşturmak için iseinsertTopDown()kullanılır. (Icbdc2)AndroidDialogProperties'e dismissOnBackPress ve dismissOnClickOutside özellikleri eklendi. Bunlar, iletişim kutusunun onDismissRequest lambda'sının ne zaman çağrılacağını yapılandırmaya olanak tanır. (If5e17)
Rasterleştirilmiş öğe biçimlerinden (ör. PNG'ler) veya VectorDrawable'lardan Painter nesnelerinin opak şekilde yüklenmesini sağlamak için painterResource API'si eklendi. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Bu yöntemi çağırarak Image composable'larında veya painter değiştiricilerinde kullanılacak bir Painter nesnesi alabilirler. (I2c703, b/173818471)
Alt öğelerin semantiğini temizlemek ve yeni semantikler ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
ContentDrawScope, DrawScope ile birlikte olması için ui-graphics modülüne taşındı. (Iee043, b/173832789)
Çizilen şekillere farklı desenler sağlamak için PathEffect grafik API'si kullanıma sunuldu. PathEffect'in expect/actual uygulaması yerine NativePathEffect'in desteği sonlandırıldı. (I5e976, b/171072166)
Espresso'nun boşta kalma kaynaklarının Compose'da desteklenen bir varyantı olarak Compose'a IdlingResource arayüzleri eklendi. ComposeTestRule (I433f3) aracılığıyla kaydedilebilir ve kaydı silinebilir.
ComposeIdlingResource'un genel (kayıt) kaydı ve saatlerin ComposeIdlingResource'a genel (kayıt) kaydı kaldırıldı (I32660).
Hata düzeltmeleri
- Ofset değiştiricilerdeki lambda'lar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader ve SlotWriter, genel API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık oluşturma modülünün içinde yer alıyorlar.
Bileşen bilgilerini ayıklamak için kullanılan ui-tooling API'nin yerine CompositionData ve CompositionGroup eklendi. Bunlar herkese açık olsa da ui-tooling API'nin yorumladığı ham bilgileri sağladıkları için ui-tooling API dışında kullanılmak üzere tasarlanmamıştır (I31a9c).
Çizim ortamının boyutlandırma bilgileri kullanılabilir olduğunda gölgelendirici örneğini geç oluşturmak için ShaderBrush yeniden düzenlendi. Bu, özel DrawModifier uygulamaları kullanmak zorunda kalmadan, kompozisyon sırasında bir composable'ın tam çizim sınırlarını kaplayan gradyanlar tanımlamak için kullanışlıdır.
Gradient nesnesindeki fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed kullanımdan kaldırıldı. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)
BuildCompat.isAtLeastR kullanımdan kaldırıldı (Idb37e)
AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Desteği sonlandırılan annotatedString builder işlevi. (Idfe0b)
Değerleri radyana dönüştürmek için Float ve Double'daki uzantı yöntemleri kaldırıldı. Yalnızca kullanıldığı yer olan PathParser uygulamasında özel bir işlev olarak taşındı (I25f52).
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü şu commit'leri içerir.
API değişiklikleri
- Anlamsal yapı eylemi olan Kapat'ı ekleme (I2b706)
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılmış API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemleri içeren DrawModifierDeprecated.kt dosyasını oluşturdu. (Id6044, b/173834241)
- Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca, API geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
- Özel düzenlerin ve düzen değiştiricilerin, çizim için grafik katmanı oluşturmadan alt öğe yerleştirmesine olanak tanıyan yeni placeable.placeWithLayer() ve placeable.placeRelativeWithLayer() yöntemleri eklendi. Bu sayede, önce yeniden çizimleri optimize edebiliriz. Böylece bir alt öğeyi taşımamız gerektiğinde içeriğini yeniden çizmemiz gerekmez. İkinci olarak, bir alt öğe için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831).
<T>, SubcomposeLayout bildiriminden kaldırıldı. Artık tür belirtmeden kullanabilirsiniz. (Ib60c8)- drawLayer için kolaylık olarak Modifier.scale/rotate API'leri eklendi.
Modifier.drawOpacity,Modifier.alphaolarak yeniden adlandırıldıModifier.drawShadow,Modifier.shadowolarak yeniden adlandırıldı (I264ca, b/173208140)
- PointerInputData'nın çalışma süresi ve konum alanları null yapılamaz hale getirildi. (Id468a)
- MaterialTheme artık seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Materyal olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Ana pencerenin ön planda olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
pivotFractionXvepivotFractionYdeğerlerinicomponent1vecomponent2olarak döndürmek için TransformOrigin API'yi yapı bozma söz dizimiyle güncelledik (If43c4, b/173586560).- Compose yönergeleriyle tutarlılığı kontrol etmek için composable lambda parametre adlandırma ve konumuna yönelik lint kontrolü eklendi.
Ayrıca, lint kontrolü ve yönergelere göre, sondaki lambda'ları için ad olarak
childrenkullanan bazı API'lericontentolarak değiştirdik. (Iec48e) - Bir tuş olayı gönderildiğinde Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol etmek için API eklendi. (I50ed9)
- Yeni bir
Modifier.drawLayer()aşırı yüklemesi eklendi. Durum değişikliği gerçekleştiğinde yeniden oluşturma ve yeniden düzenleme işlemlerinin atlanmasına olanak tanıyan bir şekilde katman parametrelerini tanımladığınız yeni bir GraphicsLayerScope üzerinde lambda bloğu alır. DrawLayerModifier, mantığını LayoutModifier'ın placeable.placeWithLayer() yöntemine taşımaya hazırlanmak için artık dahili olarak kullanılıyor (I15e9f, b/173030831). - Son eklerinde
Ambientbulunan, desteği sonlandırılmış Ambients'ları diğer Ambients ve Compose API yönergelerine uygun şekilde Ambient önekiyle başlayan yeni özelliklerle değiştirdik. (I33440) androidx.compose.ui.text.Typeface,androidx.compose.ui.text.font.Typefacekonumuna taşındı (Ic2b81)- Semantics bağımsız değişkeni mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Yön kilitleme de dahil olmak üzere işaretçi girişi API'sini askıya alan yeni sürükleme hareketi algılayıcısı. (Icef25)
- VectorAsset, ImageVector olarak yeniden adlandırıldı. VectorAsset, API yönergelerine uygun şekilde ImageVector'ın iç sınıfı olacak şekilde Builder olarak taşındı ve yeniden adlandırıldı. Uyumluluk için VectorAssetBuilder'ın ImageVector.Builder'a bağlantı oluşturacak typealias'ı eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- PlacementScope'un place() işlevi için zIndex parametresi eklendi. Böylece Modifier.zIndex() artık LayoutModifier olarak çalışıyor ve tüm özel düzenler, yerleştirme bloğunda (I711f7, b/171493718) alt öğeleri için zIndex'leri ayarlayabiliyor.
- Temel anlamsal yapı özellikleri kullanıcı arayüzüne taşındı (I6f05c).
- place(Offset) ve placeRelative(Offset) işlevleri kullanımdan kaldırıldı. Bunun yerine int ofsetlerle aşırı yüklemeleri kullanın (I4c5e7)
- Daha önce desteği sonlandırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı. Bunun yerine Modifier.onGloballyPositioned kullanılmalıdır. Modifier.onDraw kaldırıldı, Modifier.onDrawBehind kullanılmalıdır. Modifier.plus kaldırıldı, Modifier.then kullanılmalıdır. Color.Unset kaldırıldı. Color.Unspecified kullanılmalıdır. PxBounds sınıfı kaldırıldı. Bunun yerine Rect sınıfını kullanın. (Ie9d02, b/172562222)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
- Yeni askıya alma işaretçisi girişi kullanılarak dokunma, çift dokunma, uzun basma ve basma göstergesi için hareket algılayıcı eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmasını kolaylaştırmak için birkaç yardımcı program da eklendi. (I00807)
id,LayoutIdParentDataiçinlayoutIdolarak yeniden adlandırıldı.Measurable.id,Measurable.layoutIdolarak yeniden adlandırıldı. (Iadbcb, b/172449643)- Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan işlevler de dahil olmak üzere yeni çoklu dokunma hareketi algılayıcı. (Ic459d)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521).
Coroutine tabanlı kaydırma API'leri ekleyin:
LazyListState.snapToItem ve LazyListState.smoothScrollBy'ı ve kaydırma kontrolü için daha düşük düzeyli API'leri ekler. Bu API'ler, kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, kaydırma işlemi tamamlanana kadar bekler ve ardından geri döner. (Ie5642)
Modifier.focusable, foundation'a eklendi. Bu işlevi, doğru anlamsal yapı ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için kullanın. (I41eb9, b/152525426, b/162865824)
clocköğesine (I7ea3d, b/173399709) devredilebilen AnimationClockTestRule'daki yöntemlerin ve özelliklerin varsayılan uygulamalarını sağlayın.AndroidComposeTestRule artık özel etkinlik başlatıcılarını kabul edebilir (Ib8288, b/153623653, b/154135019)
TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. TextLayoutResult.getLineEnd, yeni bir parametre olan visibleEnd ile değiştirildi. (I73282)
TextFieldValue API güncellendi
- TextFieldValue.composition salt okunur hale getirildi
- Geçersiz seçim aralığı için kaldırılan istisna oluşturuldu (I4a675, b/172239032)
Metin okuma motoru için TtsAnnotation'ı destekleyin. (I54cc6)
Coroutine'lerde animasyon çalıştırmak için yeni API'ler (Ied662)
Hata düzeltmeleri
- Kutu'nun hizalama parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricilerinin adı offset olarak değiştirildi. Artık State yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
- TextInputService#onStateUpdated'e resetInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
- Composable işlevlerindeki Modifier parametreleri için lint denetimi eklendi. Bu lint kontrolü, Compose yönergeleriyle tutarlılık için parametrenin adlandırmasını, dönüş türünü, varsayılan değerini ve sırasını kontrol eder. (If493b)
- TestAnimationClock'un MonotonicFrameClock tarafından çalıştırılmasına izin veren bir seçenek geçici olarak eklendi (I1403b, b/173402197)
- Android Typeface sarmalayıcısı eklendi.
typefaceişleviyle Android Typeface yükleyebilirsiniz. Örneğin:typeface(Typeface.DEFAULT). AyrıcatypefaceFromFontFamily()adlı kullanıcının adınıtypeface()olarak değiştirdi (I52ab7) - Değiştirici fabrika işlevlerinin, Değiştirici üzerinde uzantı olarak tanımlandığını kontrol etmek için lint kontrolü eklendi. Böylece, bu işlevler akıcı bir şekilde birbirine bağlanabilir. (I07981)
- Eski ui-test modülünü ve saplarını kaldırma (I3a7cb)
- Recomposer artık EmbeddingContext'i kabul etmiyor. Gerekli planlama bağımlılıkları, effectCoroutineContext'ten alınıyor. FrameManager'ın desteği sonlandırıldı. Platform entegrasyonları kendi genel anlık görüntü işlemelerini başlatmalıdır. (I02369)
- Stil bilgilerini erişilebilirlik düğümüne aktarın. (If5e8d)
- TextUnit.Inherit, diğer birimlerle tutarlılık sağlamak için TextUnit.Unspecified olarak yeniden adlandırıldı. (Ifce19)
Compose UI 1.0.0-alpha07 sürümü
11 Kasım 2020
androidx.compose.ui:ui-*:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü şu commit'leri içerir.
API değişiklikleri
- Tekdüze olmayan ölçeklendirme kullanım alanlarını desteklemek için yatay ve dikey eksenlerin ölçeklendirme faktörlerini birbirinden bağımsız olarak temsil eden ScaleFactor
inline sınıfı kullanıma sunuldu.
- ContentScale'e computeScaleFactor yöntemi eklendi.
- Kaynak sınırlarını hedefi tamamen kaplayacak şekilde genişletmek için ContentScale.FillBounds eklendi.
- ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- Hizalamalar oluşturmak için BiasAlignment ve BiasAbsoluteAlignment fabrikaları eklendi. (Iac836, b/169406772)
- Bir geliştiricinin odağı zorla temizlemesine izin verin. (I90372)
- Compose'daki görünümler için yükseltmenin çizilmemesine neden olan hata düzeltildi. (If7782)
- Adlandırma kuralının Modifier.drawBehind ile eşleşmesi için ContentDrawScope içinde onDrawBehind API'si oluşturuldu. (I4fc3a, b/171955269)
- Katman API'lerinde 3D dönüşümleri (rotationX/rotationY) tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
- Geri çağırma olmadan SelectionContainer eklendi (Ibfadb)
- ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad).
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7).
- Kafası karıştırıcı olduğu için drawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
- MeasureResult, MeasureScope'un dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)
- Kullanımdan kaldırılan FocusState2 kaldırıldı (I686cb, b/168686446)
- ZIndexModifier artık dahili (I1808b, b/171493718)
- Gereksiz kutulama işlemlerini önlemek için lerp yönteminin boyut parametrelerindeki dönüş türü, boş olmayan bir boyut döndürecek şekilde güncellendi. (Ib0044)
- kotlinx-coroutines-test'in runBlockingTest işlevini kullanarak kompozisyon çerçevesi etkinliklerinin beklenmesi için Compose'un MonotonicFrameClock işlevini kullanan kodu test etmek üzere TestMonotonicFrameClock eklendi (I4402f).
- Removed GestureScope.localToGlobal (I15299, b/171462785)
onAllNodesWithSubstringbulucu eklendi (I81dd7, b/171462889)- androidx.ui.test modülünün desteği sonlandırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4'e geçin (I452e8).
Hata düzeltmeleri
- captureToBitmap, captureToImage olarak değiştirildi. (I86385)
- foundation.Text desteği sonlandırıldı ve yerine material.Text kullanıma sunuldu. Bir temadan değer kullanmayan temel ve tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
- TextField'ları KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
- KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
- KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
- provideDefault, ortamlar sağlamak için alternatif olarak eklendi ve yalnızca önceden ortam değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
- BaseTextField kullanımdan kaldırıldı. Bunun yerine BasicTextField kullanın. (I896eb)
- ui-test-junit4 modülünü kullanıma sunma (Ib91f8)
relativePaddingFrom,paddingFromolarak yeniden adlandırıldı. Düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtme kolaylığı içinpaddingFromBaselinedeğiştiricisi eklendi. (I0440a, b/170633813)- LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için LaunchedEffect'in konu parametreleri olmadan kullanılmasına izin verilmez. (Ifd3d4)
- Yapılandırma güncellendiğinde yeniden oluşturulan composable kaynakları kullanıma sunuldu. (I6387c, b/167352819)
- Recomposer artık oluşturma sırasında bir CoroutineContext gerektiriyor (Ic4610)
- Birden fazla
Modifier.zIndex()uygulandığındazIndexdeğerlerini toplar. Daha önce ilk teklif kazanıyordu. (Ic514c, b/170623936) - Herkese açık API'yi etkilememesi gereken dahili SlotTable uygulamasında yapılan değişiklikler. (If9828)
- Klavyede otomatik düzeltme IME seçeneği eklendi (I57b8d)
- androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb).
- KeyboardOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)
Harici Katkı
- androidx.compose.ui:ui-text-android (Ib93fa) adlı dahili yapının yayınlanması devre dışı bırakıldı.
Sürüm 1.0.0-alpha06
28 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü şu commit'leri içerir.
API değişiklikleri
- Recomposer artık bir CompositionReference ve geçerli bir kompozisyon üst öğesidir. Açıkça yeniden oluşturma özelliği artık daha az yerde zorunlu. (I4036f)
- VectorPainter'ı, composable API'nin kompozisyonlar arasında verileri kalıcı hale getirmek için dahili olarak "remember"dan yararlandığını daha iyi belirtmek amacıyla rememberVectorPainter lehine kullanımdan kaldırın. (Ifda43)
- Çizim komutlarını yeniden sıralama olanağı sağlamak için Modifier.drawWithCache API'si, DrawScope yerine ContentDrawScope'u alıcı kapsamı olarak gösterecek şekilde güncellendi. Bu, içerik piksellerinin karşılık gelen karıştırma modu algoritmasının düzgün şekilde uygulanması için önce oluşturulması gereken karıştırma/renk tonu kullanım alanlarında faydalıdır. (Ie7ec8)
- SimpleContainer'ı PopupTestUtils.kt'ye taşıma (I78c57)
- ConsumedData artık bir veri sınıfı değil. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 adresine göz atın (I1737f).
- Sağdan sola dil için tutma yerinin konumunu düzeltin. (I6e1e0)
- DrawScope ve ContentDrawScope, soyut sınıflar yerine arayüzler olacak şekilde yeniden düzenlendi.
- DrawScope'un CanvasDrawScope uygulamasını oluşturdu
- DrawScope'un uygulamaları, CanvasScope kullanacak şekilde yeniden düzenlendi.
- DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu.
- DrawScope'ta desteği sonlandırılan yöntemler kaldırıldı (I56f5e)
- Önemli değişiklik:
PointerInputFilter.onPointerEvent(...)işlevinden dönüş değeri kaldırıldı. Bunun nedeni, işaretçi etkinliklerinde değiştirilebilecek tek değerin tüketim verileri olmasıdır.PointerInputFilter.onPointerEvent(...)'dan veri döndürmek yerine artık yalnızca iletilen PointerEvents'in tüketim verilerini değiştirebilirsiniz. (I6acd0) - MeasureScope ve IntrinsicMeasureScope arayüz haline getirildi. (I1a087, b/170461665)
- AlignmentLine için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
- Birleştirilmiş değiştiricide inceleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569).
- Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
- DrawTransform.rotate işlevi, dokümanlarla eşleşmesi için varsayılan pivot parametresi olarak merkez alacak şekilde güncellendi.
- Diğer dönüştürme yöntemleriyle eşleşmesi için DrawScope.rotateRad, pivot noktası için bir Offset kullanacak şekilde güncellendi.
- Pivotun x ve y koordinatı için kayan nokta değerleri kullanan, DrawScope.rotateRad aşırı yüklemesi kullanımdan kaldırıldı.
- (Iffcbb, b/170434992)
Hata düzeltmeleri
- androidx için MissingGetterMatchingBuilder ile ilgili API lint kontrolü etkinleştirildi (I4bbea, b/138602561)
- Test ekleyin. (I6b8ae)
- ComposeTestRule'da geçişleri etkinleştirin; yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)
- KeyboardCapitalization IME seçeneği eklendi (I8ac38)
- CoreTextField'e tek satırlık klavye seçeneği eklendi (I72e6d)
- SimpleContainer'ı PopupTestUtils.kt'ye taşıma (I65c3e)
- Radius API'nin adı, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirten doküman güncellendi. (I130c7, b/168762961)
ACTION_DOWNdışındaki tüm işlemler için onTouchEvent'te false döndüren alt Android görünümlerine MotionEvent'leri göndermeye devam ederek Android birlikte çalışabilirliği iyileştirildi (I94c5a, b/170320973).- Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)
Harici Katkı
AnnotatedString.capitalizeveAnnotatedString.decapitalizeiç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ü şu commit'leri içerir.
API değişiklikleri
- Müfettiş bilgilerini belirtmek için DSL ekleyin (Ic9a22)
- LongPress'i metne taşıyın. (Iff2bc)
- Deneysel Modifier.pointerInput, giriş değiştiriciyi askıya alıyor (Ia77d2)
- Kopyalama/yapıştırma/kesme erişilebilirlik işlemleri eklendi (I6db4f).
- AndroidOwner için herkese açık oluşturucu kaldırıldı (Iacaef)
- Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE'u devralıyor. Bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149).
Tüketim verileri artık değiştirilebilir. Ayrıca, tüketim yapan uzantı işlevlerine yapılan çağrılar artık yeni bir PointerInputChange döndürmüyor, bunun yerine sağlanan PointerInputChange'i değiştiriyor.
Bu, PointerEvent verilerini değiştirilebilir hale getirmek için 2 adımlı sürecin ilk adımıdır. Böylece diğer işaretçi verileri kullanıcı koduyla düzenlenemez. İkinci adımda,
List<PointerInputChange>dönüş türüPointerInputFilter.onPointerEvent(...)öğesinden kaldırılacak. (Id067e)Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)
Made onGloballyPositioned an inline function (I15830)
OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() ise onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)
Sahip'e, Sahip'in bekleyen düzen çalışması olup olmadığını belirten hasPendingMeasureOrLayout özelliği eklendi. (I3d9f8, b/169038599)
Odaklanmayı programatik olarak temizlemek için API eklendi (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)kaldırıldı.PointerInputFilter.onPointerEvent(...)kullanılmalıdır. (I6f04a)Boyutla İlgili Değişiklikler
- Size.getFlipped kaldırıldı
- Size.rem kaldırıldı
- Size.truncDiv kaldırıldı (Ief44d, b/169790720)
Satır içi sınıflar için sentinel değerlerinin standartlaştırılması kapsamında, diğer satır içi sınıflarla tutarlılık sağlamak amacıyla Color.Unset'in adını Color.Unspecified olarak değiştirin (I97611, b/169797763).
TextOverflow.None kullanıma sunuldu. Taşma None olduğunda Text, taşmayı artık işlemeyecek ve gerçek boyutunu LayoutNode'a bildirecek. (I175c9, b/158830170)
AnnotatedString.Builder.addStringAnnotation içindeki kapsam parametresi, API tutarlılığı için etiket olarak yeniden adlandırıldı. (I7c8cb)
Hata düzeltmeleri
- LazyColumn/Row'un kaydırma performansı, her kaydırmada alt bileşen oluşturma işleminde daha az iş yapılarak iyileştirilir. Composition sınıfı için yeni hasInvalidations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi hasInvalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371).
- Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, sonlu olmayan boyutların yanı sıra Size.Unspecified'a karşı da kontrol edecek şekilde güncellendi. (I95a7e)
- Özel düzenlerdeki place() çağrılarının sırası artık alt öğelerin çizim sırasını tanımlıyor (Ibc9f6).
- Erişilebilirlik için AnnotatedString'i SpannableString'e dönüştürme desteği eklendi. (Ief907)
- Mümkün olduğunda yansıtma kullanımını önlemek için daha eski platformlardaki Android sınıfları için taslaklar eklendi. (Ia1790)
- Düzeltilen hata: Yazılım klavyesinin gösterilmesi uygulamayı çeviri yapmaya yönlendirdiğinde işaretçi giriş koordinatları yanlış hale geliyordu. (Ic4cec, b/163077821)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü şu commit'leri içerir.
API değişiklikleri
- Geçerliliğini yitirdikten sonra düzen ve çizim gözlem kapsamlarının toplanmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
- İçerik düzeni yeniden ölçüldüğünde ve boyut değiştiğinde geri çağırma almak için sırasıyla OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
- Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
- FocusManager, özel 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öntemlerle ilgili dokümanlar güncellendi (Ibd166)
Nesne oluşturmayı önlemek için TextRange'i satır içi yapın. (Id034b)
PlacementScope#parentWidth ve PlacementScope#parentLayoutDirection artık özel bir düzenin yerleşim bloğundan okunamıyor. (Icc1ae, b/168295623)
Semantik özelliklere AccessibilityScrollState ekleyin. (Ifeda9)
Boyut/durum bilgilerine bağlı bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache işlevi kullanıma sunuldu (I376dc).
ParagraphConstraints kaldırıldı. Genişlik artık doğrudan paragrafa aktarılıyor. (Ica712)
Hata düzeltmeleri
- Birçok grafik API'si güncellendi
- Çizim Kapsamı ve Çizim Dönüşümü'ndeki x/y koordinatları için ayrı kayan nokta parametreleri yerine, ölçek ve döndürme dönüştürme API'leri, pivot koordinatını temsil etmek üzere tek bir Ofset parametresini kullanacak şekilde güncellendi.
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı.
- Yarıçap belgeleri, elipsin yanı sıra oval olarak da belirtilecek şekilde güncellendi.
- Satır içi Radius sınıfının herkese açık oluşturucusunun doğrudan çağrılmaması, bunun yerine Radius nesnelerinin işlev oluşturucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi.
- RoundRect API'leri kaldırıldı. Bu API'ler, topRight, bottomRight, bottomCenter vb. sorgulamak için kullanılıyordu.
- Rect.shift, Rect.translate lehine kullanımdan kaldırıldı
- RoundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı.
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı.
- RoundRect.center işlevi, özellik olarak değiştirildi.
- RoundRect oluşturucusu, x/y yarıçap değerleri için ayrı parametreler yerine Yarıçap özelliklerini kullanacak şekilde güncellendi.
- Kaynak noktası 0,0 olan bir dikdörtgen olduğu varsayılan boyut API'leri kaldırıldı.
- Radius'a bir yıkıcı API eklendi.
- Çeşitli RoundRect uzantısı işlevleri, özellikler olarak taşındı.
- (I8f5c7, b/168762961)
- foundation.Box desteği sonlandırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
- Stack'in adı Box olarak değiştirildi. Daha önce mevcut olan Box, compose.foundation.layout içindeki yeni Box lehine kullanımdan kaldırılacak. Yeni kutunun davranışı, birden fazla alt öğe içerdiğinde alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki kutudan farklıdır. (I94893, b/167680279)
- Kutu dekorasyonu parametrelerinin desteği sonlandırıldı. Kutunuzda süslemeler/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) kullanın (Ibae92, b/167680279).
- Birçok grafik API'si güncellendi
- Dönüşümün yalnızca geri çağırma işlevi içinde uygulandığını ve geri çağırma işlevi çağrıldıktan sonra kaldırıldığını belirtmek için kapsamlı dönüştürme yöntemleriyle DrawScope API'leri güncellendi.
- clipPath belgeleri, yuvarlak dikdörtgen yerine Path'e referans verecek şekilde güncellendi.
- clipPath'teki sağ parametre için dokümanlardaki boşluk sorunu düzeltildi.
- DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı.
- İç kısım yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı.
- 4 sınıra da aynı içe yerleştirme değerini sağlayan içe yerleştirme aşırı yüklemesi eklendi.
- İç kısma yerleştirme yönteminin tüm 4 tarafa uygulanacağını belirten belgeler kaldırıldı.
- Rect sınıfıyla ilgili dokümanlar güncellendi
- Rect parametreleriyle ilgili yorumlar, kdoc stiline uygun şekilde güncellendi.
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yükleme oluşturuldu ve Rect.shift kullanımdan kaldırıldı
- (If086a, b/167737376)
- Annotated rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @VisibleForTesting, bunları dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
- Varsayılan seçimi devre dışı bırakmak ve beklenmedik davranışları önlemek için SelectionContainer'ı üst kısımdan kaldırın. Bunun yerine, özellikle seçilebilir olması gereken içeriği sarmak için SelectionContainer kullanılabilir. (I8dfe0, b/158459594)
Sürüm 1.0.0-alpha03
16 Eylül 2020
androidx.compose.ui:ui-*:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü şu commit'leri içerir.
API değişiklikleri
- İleri/geri kaydırma semantik işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
onInvalidate(),Owneradlı alandan kaldırıldı.OwnedLayergeçersiz kılma işlemlerini yönetir. (Ica72b, b/162061312)Offset parametrelerini kullanan Size API'deki operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu net değildir ve sonuç türü beklenmediktir. Örn. boyut - fark döndürmeli mi? Farklı bir sonuç mu döndürmeli?
Ayrıca, Size sınıfındaki desteği sonlandırılan yöntemler de kaldırıldı. (Iec902, b/166514214)
Hata düzeltmeleri
- LazyColumn öğelerinin bazen yanlış çizilmesine neden olan hata düzeltildi. Bu durum bazı koşullarda kilitlenmelere de yol açıyordu. (Ibcf17, b/163066980, b/165921895)
- DpConstraints ve bunu kullanan API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
createAndroidComposeRuleveAndroidInputDispatcher,androidx.ui.test.androidkonumundanandroidx.ui.testkonumuna taşındı (Idef08, b/164060572)- Düzen API'lerinde yer çekimi kullanımları, hizalama veya hizalama ile eşleşecek şekilde tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut global yöntemler kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer global 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ı. 1.0.0-alpha02 sürümü şu commit'leri içerir.
API değişiklikleri
- remove callback to notify Owner when layoutnode bounds change. (If654e, b/166106882)
- filltype parametreleri için destek eklendi. Bu parametreler, şekillerin evenOdd veya NonZero yol dolgusu kurallarına göre kesilmesini sağlamak için vektör grafik yollarında kullanılır. (I43dd2)
- Çalışma süresi ve hız artık satır içi sınıflar (I48f4a)
- Süre artık satır içi bir sınıftır (I565eb).
- LayoutNode sınırları değiştiğinde Sahibi bilgilendirmek için geri çağırma ekleyin. (Ic40b3)
Offset ve yarıçap ile Rect işlevi oluşturucusunun, Rect'i sol, üst, sağ, alt yerine sol, sağ, üst, alt sırasıyla oluşturmasına neden olan sorun düzeltildi.
İşlev oluşturucular lehine, Rect'teki desteği sonlandırılan yardımcı yöntemler kaldırıldı.
Rect.kt dosyasındaki yöntemleri doğrulamak için testler eklendi (I08460, b/165822356)
Hata düzeltmeleri
- Değiştirilebilen bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
- Matrix4, Matrix ile değiştirildi. Vectormath paketinin diğer tüm bölümleri kaldırıldı. (Ibd665, b/160140398)
Birleştirilebilir işlevlerin çağrı kuralı değişti. Bu, ikili uyumluluğu bozan bir değişikliktir. Tüm kitaplıklar, Compose derleyici eklentisinin bu sürümüyle çalışmak için yeniden derlenmelidir.
Bu değişiklik, yalnızca açıkça etkinleştirilen derleyici API'leri değiştiğinden kaynak düzeyinde bir hataya neden olmaz. (I7afd2, b/158123185)
Bir PointerInputFilter'a gönderme yapıldığında PointerInputFilter'ın eşzamanlı olarak kaldırılmasına neden olabilecek kilitlenme 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ü şu commit'leri içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev17 yayınlandı. 0.1.0-dev17 sürümü şu commit'leri içerir.
API değişiklikleri
emitViewdesteği sonlandırıldı. Compose'da View'lar yayınlamak için mümkünseAndroidViewkullanın. Görünümlerin ve ViewGroup'ların doğrudan oluşturulmasının, kompozisyon ağacında yaprak olmadığı sürece gelecekte desteklenmeyeceğini unutmayın. Bu durumda, AndroidView kullanılarak bu işlem gerçekleştirilebilir. (I29b1e, b/163871221)FocusState2kullanımdan kaldırıldı veFocusStateile değiştirildi (Ia8b79, b/160822876, b/160923332)- Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
- Özel yayınlar artık ayarlayıcılarından bir veya daha fazlasının atlanabileceğini ve yayından bağımsız olarak yeniden oluşturulabileceğini belirtebilir. (Ibbd13)
Aynı nesne örneği kompozisyon için kullanıldığından, Vector sınıfları artık veri sınıfları olmayacak şekilde değiştirildi.
VectorPainter için mutableStateOf işareti eklendi. Vektörün içeriği değişirse koşullu olarak yeniden çizim yapılır.
VectorComponent örneği, kompozisyonlarda yeniden kullanıldığından VectorPainter'ın parçası olacak şekilde yeniden düzenlendi.
GroupComponent ve PathComponent'ın ad alanlarının değiştirilebilir olması için güncellendi (Ieae45, b/151378808)
onChildPositionedveOnChildPositionedModifierkaldırıldı. Geliştiriciler bunun yerine çocuk düzenindeonPositionedveOnPositionedModifierkullanmalıdır. (I4522e, b/162109766)Offset, satır içi sınıf (Iaec70) haline geldi.
SelectionContainer'a değiştirici parametresi eklendi (I4aada, b/161487952)
Kullanımdan kaldırılan FocusModifier kaldırıldı (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)
mergePolicylambda'sıSemanticsPropertyKey'ye eklendi. Bu, mergeAllDescendants anlamsal yapısı birleştirme için özel bir politika tanımlamak üzere kullanılabilir. Varsayılan politika, üst değer zaten mevcutsa onu, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)Constraints artık satır içi bir sınıf (I88736)
Ortak odak mantığını AndroidComposeView'dan kaldıran FocusManager eklendi (I528ef, b/161487952, b/162206799).
Alfa sürümü için PointerEventPass adları güncellendi. (Ifda6f)
IntOffset artık satır içi bir sınıf (Iac0bf)
IntSize artık satır içi bir sınıf (I2bf42)
PlacementScope.placeAbsolute(),PlacementScope.place()olarak yeniden adlandırıldı ve öncekiPlacementScope.place(),PlacementScope.placeRelative()olarak yeniden adlandırıldı. Bu nedenle,PlacementScope.place()yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmayacak. Bu isteniyorsa bunun yerinePlacementScope.placeRelative()politikasını kullanın. (I873ac, b/162916675)AlertDialog artık düğmeler için FlowRow kullanıyor (I00ec1, b/161809319, �b/143682374)
Bazı test yardımcı programlarını, ait oldukları yerde olmadıkları için herkese açık olmaktan çıkardık. Gelecekte herkese açık hale getirilecek. (I32ab1)
İşaretçi girişi kodunun yeniden düzenlenmesi. (Ie3f45)
Rect lehine PxBounds desteği sonlandırıldı. PxBounds'un tüm kullanımları rect ile güncellendi ve geçişe yardımcı olmak için uygun kullanımdan kaldırma/değiştirme notları eklendi. (I37038, b/162627058)
Kullanımdan kaldırılan KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)
KeyEvent, belirtilen tuş ve meta tuş durumu kombinasyonu (If3afc) tarafından oluşturulan Unicode karakterini almak için kullanılabilecek bir Unicode özelliğine sahiptir.
DelayUp özel etkinliğini ve ilgili sınıfları, değiştirilme olasılığı çok yüksek olduğundan etkinleştirme API'si haline getirdik. (I56d6f)
Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I3dd9d)
Paragraph.paint işlevine renk, gölge ve TextDecoration parametrelerini ekleyin. Bu işlev, gereksiz Paragraph yeniden oluşturma işlemlerini önlemek için kullanışlıdır. (I81689)
Hata düzeltmeleri
- TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Border veri sınıfının yerini BorderStroke aldı (I4257d, b/158160576)
Desteği sonlandırılan FrameManager çağrıları kaldırıldı.
Dahili Compose API'leri,
mutableStateof()gibi durum nesnelerini izlemek için gereken ek yük miktarını azaltacak şekilde değiştirildi (I80ba6).VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Modifier.drawBackground kaldırıldı. Modifier.background kullanma (I73b0d, b/163019183)
Durumu kaydeden bir şey for döngüsünde kullanıldığında kilitlenme sorunu düzeltildi. Artık savedInstanceState() içinde aynı anahtarın bulunmasına izin veriliyor. UiSavedStateRegistry API'si bu yeni koşula göre ayarlandı (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561).
state { ... }composable'ı artık netlik içinremember { mutableStateOf(...) }'e yapılan açık çağrılar yerine kullanımdan kaldırıldı. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf özelliği temsilcisi içinby mutableStateOf()kalıbıyla eşleşir. (Ia5727)Compose adlandırma kalıplarına daha iyi uyması için RRect, RoundRect olarak yeniden adlandırıldı. RRect'e benzer işlev oluşturucular oluşturuldu ve RRect işlev oluşturucularının desteği sonlandırıldı (I5d325).
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ü şu commit'leri içerir.
API değişiklikleri
- OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned kullanın. (I87f95, b/162109766)
- setViewContent desteği sonlandırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
- ViewBinding'e dayalı olarak düzen kaynaklarını genişletmek ve oluşturmak için AndroidViewBinding API'si eklendi. (I081c6)
- KeyEvent2, KeyEvent ile değiştirildi (I2d770, b/162097585)
- Alt donanım anahtarı (I9036b) için destek eklendi.
- FocusManager desteği sonlandırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() kullanın. (I74ae4, b/162211322)
- loadVectorResource, trimPath özelliklerini destekler (I808fe)
- İletişim kutusunu kullanıcı arayüzüne taşıma (I47fa6)
- Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I33ca7)
- MotionEvent'ları alma ve Compose ile Android View'un bir uygulamasıymış gibi etkileşim kurma olanağı sağlayan PointerInteropModifier uygulandı. (Ieb08c)
- Desteği sonlandırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId kullanın. (Idaa05, b/162023919)
- Sağdan sola dil desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
- Vektörel grafiklerde yol kırpma desteği (Ie16c9, b/158188351)
- Özel bir düzen değiştiriciyi kolayca oluşturmaya olanak tanıyan Modifier.layout() işlevi eklendi (I73b69, b/161355194).
- Yeni bir AndroidView API eklendi ve mevcut olanlar kullanımdan kaldırıldı. (I5bcfd)
- Modifier.plus kullanımdan kaldırıldı. Bunun yerine Modifier.then kullanın. "Sonra" kelimesi, sıralama konusunda daha güçlü bir sinyal verirken
Modifier.padding().background() + anotherModifieryazılmasını da engeller. Bu, zinciri kırar ve okunmasını zorlaştırır (Iedd58, b/161529964). - [Abstract]ComposeView, Görünüm hiyerarşisinde Compose içeriğini barındırmak için View alt sınıfları ekler. (I46357)
RowveColumnartık satır içi işlevler olduğundan kullanımları önemli ölçüde kolaylaştı. (I75c10)- SubcomposeLayout eklendi. Bu, alt ağaç kompozisyonu için ölçüm sırasında yalnızca daha sonra kullanılabilen bazı değerleri kullanmak istersek ölçüm sırasında alt öğeleri oluşturmamıza olanak tanıyan düşük seviyeli bir öğedir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
- Compose hiyerarşisinin köküne göre SemanticsNode'un konumunu almak için
SemanticsNode.positionInRooteklendi (Icdf26, b/161336532) - MotionEvents, Android'den Compose'a ve tekrar Android'e kadar tüm yolu geçer. (I14be8, b/158034713)
- dropdownPopup kaldırıldı. (I00430)
- Kesik ekranlarda pop-up konumunun sabitlenmesi (Idd7dd)
- TextLayoutResult'u almak için erişilebilirlik işlemi ekleyin (I9d6e6)
- RemeasurementModifier eklendi. Bu değiştirici, düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Genel olarak yeniden ölçme/yeniden düzenleme otomatik olarak yapıldığından bu parametreye hiçbir zaman ihtiyacınız olmaz ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
- getLineEllipsisOffset/getLineEllipsisCount işlevlerini kaldırın. Bunun yerine getLineVisibleEnd/getLineEnd/isLineEllipsized'i kullanın. (I85aa2)
- En iyi uygulama olarak bazı işaretler/açıklamalar ekleyin. (I66b20)
- TextLayoutResult'ta daha fazla satır API'si kullanıma sunulur. (I79bd2)
- Yerleşik birimleri dönüştürmek için yerleşik vektör dönüştürücülere artık Foo.VectorConverter üzerinden erişilebilir. Örneğin, Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273)
Hata düzeltmeleri
- Geniş kapsamlı API düzeltmeleri (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve IntOffset sınıflarını tutarlı bir API yüzeyine sahip olacak şekilde hizalama
- Offset API ile tutarlı olması için IntOffset.Origin'i IntOffset.Zero olarak yeniden adlandırın.
- Tüketicilerin kendi Canvas örneklerini oluşturabilmesi için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı.
- DrawScope'u lateinit yerine boş olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş olmamasını sağlamak için boş EmptyCanvas sınıfı oluşturuldu.
- ClipOp numaralandırmaları Pascal Case olarak yeniden adlandırıldı.
- FilterQuality enum'ları Pascal Case olarak yeniden adlandırıldı.
- StrokeJoin numaralandırmaları Pascal Case olarak yeniden adlandırıldı.
- PointMode enum'ları Pascal Case olarak yeniden adlandırıldı.
- Renamed PaintingStyle enums to be Pascal Case
- PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı.
- StrokeCap enum'ları Pascal Case olacak şekilde yeniden adlandırıldı.
- DrawCache uygulaması, geç başlatılan parametreleri kullanmayacak şekilde güncellendi.
- DrawScope, fillPaint ve strokePaint dahili parametreleri için artık geç temsilci kullanmayacak şekilde güncellendi.
- Daha az ek yük için Box kullanımını önlemek üzere Image composable'ı güncelledi.
- Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi.
- Her yol talimatı için @Immutable ek açıklamaları içerecek şekilde PathNode güncellendi.
- Compose bu kontrolleri zaten işlediğinden, eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere Vector alt bileşimi güncellendi.
- İşlev oluşturucular lehine, desteği sonlandırılan Rect yardımcı oluşturucu yöntemleri
- @Immutable ve @Stable API'leri ile güncellenen Brush sınıfları ve işlev oluşturucuları
- VertexMode enum'ı PascalCase olacak şekilde güncellendi
- DrawScope'un selectPaint yöntemi, değişmişse boyadaki kontur parametrelerini koşullu olarak üzerine yazacak şekilde güncellendi.
- Yapı bozma API'si eklemek, UnspecifiedSize'ı Unspecified olarak yeniden adlandırmak ve kullanılmayan yöntemleri kaldırmak için boyut güncellendi
- Android çerçevesi BlendMode'ları ile PorterDuff modları arasında API düzeyine bağlı olarak doğru şekilde eşleme yapmak için BlendMode API kullanımını güncelledi. BlendMode#isSupported API'yi, BlendMode'un kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için bir capability sorgusu olarak kullanılmak üzere kullanıma sunduk. (I0ef42)
- LazyItemScope, Lazy listelerinin itemContent parametresi için eklendi. Öğenin, görüntü alanını doldurması gerektiğinde ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() işe yaramadığında kullanım alanını çözen, üst öğenin maksimum boyutunu dolduracak değiştiriciler sağlar. (Ibd3b2, b/162248854)
SemanticsNodeInteraction.performPartialGesturekaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesturekullanın. (Id9b62)LazyColumnItems,LazyColumnForolarak yeniden adlandırıldı.LazyRowItems,LazyRowForolarak yeniden adlandırıldı (I84f84)foundation.shape.cornerpaketifoundation.shareolarak düzleştirildi (I46491, b/161887429)AndroidComposeTestRule,createAndroidComposeRuleolarak yeniden adlandırıldı. (I70aaf)TextLayoutResult'ya daha fazla API eklendi. (Id7e04)- İstenen en basit API'nin kolayca bulunup kullanılabilmesi için Materyal
FilledTextField,TextFieldolarak, temelTextFieldiseBaseTextFieldolarak 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ü şu commit'leri içerir.
Bağımlılıkları Güncelleme
- Compose'un
0.1.0-dev15sürümünü kullanmak için bağımlılıklarınızı Bağımlılıkları bildirme bölümünde yukarıda gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API değişiklikleri
- FocusModifier, Modifier.focus, Modifier.focusRequester ve Modifier.focusObserver lehine kullanımdan kaldırıldı. FocusState ve FocusDetailedState, FocusState2 lehine kullanımdan kaldırıldı (I46919, b/160822875, b/160922136)
- Odak durumu değişikliğini gözlemlemek için değiştirici eklendi. (I05866, b/160924455, b/160923326)
- Odak değişiklikleri isteğine değiştirici eklendi (I8dd73, b/161182057, b/160924778)
- Kopyalama, kesme ve yapıştırma işlemlerinin düzgün şekilde gösterilmesi için araç çubuğu menüsünü ayarlayın. (Id3955)
- Tek değerli anlamsal yapı özellikleri artık bir çağırma stili kullanıyor.
Örneğin, "semantics { hidden = true }" artık şu şekilde yazılıyor:
semantics { hidden() }. (Ic1afd, b/145951226, b/145955412) - FocusModifier'ın yerini alan Modifier.focus eklendi. (Ib852a, b/160924778)
- TextField seçimi için FloatingToolbar eklendi. (Ie8b07)
- Tuş girişiyle ilgili API için deneysel bir API açıklaması eklendi (I53c0a).
- Tüm odaklanmayla ilgili API'ler için deneysel bir API ek açıklaması eklendi (I53b24, b/160903352).
- FocusDetailedState'in yerini alacak FocusState2 eklendi (I0a3ba, b/160822595)
- Focus API için @OptIn ek açıklaması olan ExperimentalFocus eklendi. (I1544b, b/160820961)
- Düzenin tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider'ın API'si, bu işlevi kullanacak şekilde güncellendi. (I0d8d0, b/159596546)
- Applier artık kompozisyonları silmek için clear() yöntemi gerektiriyor (Ibe697).
- KeyEvent desteği sonlandırıldı ve KeyEvent2 ile değiştirildi (I68730)
- Test bulucularına isteğe bağlı yeni bir işaret olan useUnmergedTree eklendi. (I2ce48)
- LayoutNode deneysel API'si oluşturuldu (I4f2e9)
Aşağıdakiler dahil olmak üzere çeşitli satır içi sınıf türlerine kopyalama yöntemleri eklendi:
- Ofset
- Boyut
- Yarıçap
- Hareket
TransformOrigin
Örnek kopyalama yöntemi (Ife290, b/159905651) yerine kullanımdan kaldırılan Size.copy yardımcı nesne yöntemi
Pop-up'lar, iletişim kutuları ve menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)
TextDirection, ResolvedTextDirection olarak yeniden adlandırıldı (I3ff38).
Layout() işlevinin ölçü bloğundan düzen yönü parametresi kaldırıldı. Ancak düzen yönü, geri çağırma işlevi içinde ölçü kapsamı nesnesi (Ic7d9d) aracılığıyla kullanılabilir.
Yeniden kullanmak için SelectionHandles'ı yeniden düzenleyin. (I420e0)
Tıklanabilir özelliği kaldırıldı. Modifier.clickable (I84bdf) kullanın.
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics kullanın (I15ff0, b/158841414)
Bu değişiklikten önce, bir @Composable işlevinin içinde oluşturuculara yapılan çağrılar, (I5205a, b/158123804) varsa Compose derleyici eklentisi tarafından önemsiz olmayan bir şekilde engelleniyordu.
Modifier.tag, Modifier.testTag ile karışıklığı önlemek için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi Int konumları artık boş değer içermiyor. Sorgulanan hizalama çizgisi eksikse AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)
AndroidView composable'a bir değiştirici parametre eklendi. (I48a88, b/158746303)
Semantics() desteği sonlandırıldı. Bunun yerine Modifier.semantics() kullanın. (I72407, b/158841414)
Activity veya Fragment'te olduğu gibi ViewModel oluşturmaya ya da önceden oluşturulmuş ViewModel'i almaya olanak tanıyan viewModel() composable'ı eklendi (I5fdd1).
IntPx kullanımı Int ile değiştirildi. IntPxPosition kullanımı IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Boyutlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Boyut sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kayan sayılar olarak temsil etmek için 2 kayan sayı değerini paketlemek üzere uzun bir satır içi sınıfın avantajlarını sağlar. (Ic0191)
Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, x ve y kaymalarını temsil eden iki kayan nokta değerini paketlemek için uzun bir değerden yararlanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasını sağlamak amacıyla büyük bir yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I086f4).
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Id3434).
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a).
TestTag desteği sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
ParentDataModifier#modifyParentData'nın varsayılan, işlem yapmayan uygulaması kaldırıldı. Bu uygulama, arayüzün hiç uygulanmamasına eşdeğerdi. (I0deaa)
Daha önce kullanımdan kaldırılan ScaleFit, kaldırıldı. Bunun yerine ContentScale kullanın. (Ifbc5b)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I19d02).
Materyal Tasarım menü uygulaması olan ui-material'a DropdownMenu bileşeni eklendi. (I9bb3d)
Desteği sonlandırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() kullanın. Desteği sonlandırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() kullanın. (If8044)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I57bff).
Yüksek düzeyli bileşenlerin kullanımına izin vermek için Modifier.semantics'in desteği yeniden etkinleştirildi. (I4cfdc)
CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. DrawScope, Density arayüzünü uygulayacak ve LayoutDirection sağlayacak şekilde güncellendi. ContentDrawScope'taki silinen DrawScope alt sınıfı Painter ve PainterModifier, DrawScope bunu zaten sağladığı için artık RTL özelliğini kendileri korumayacak şekilde güncellendi (I1798e).
DoubleTapGestureFilter artık ağaçta SingleTapGestureFilter'ı ayırt ediyor. (If92b1)
Alignment API güncellendi ve mutlak hizalama (RTL bağlamında otomatik olarak yansıtılmayan) desteği eklendi (I38cd3).
DrawLayer değiştiricileri API'si değiştirildi: outlineShape, shape olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip olup artık null değer içermiyor; clipToOutline, clip olarak yeniden adlandırıldı; clipToBounds, RectangleShape ile clip == true ile aynı olduğundan kaldırıldı (I7ef11, b/155075735)
Tuval yerine CanvasScope'u kullanıma sunan, daha üst düzeydeki Compose API'leri güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini korumasına gerek kalmaz. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, temel Canvas ile çizim komutları vermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
WithConstraints sondaki lambda API değiştirildi. Artık iki parametre yerine, kısıtlamalara ve layoutDirection'a ek olarak Dp cinsinden minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702).
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Desteği sonlandırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Layout ve LayoutModifier2'deki doğal ölçüm işlevleri artık doğal ölçüm sorgu API'sini örtülü olarak yayılmış düzen yönüyle sağlayan bir IntrinsicMeasureScope alıcısına sahip. (Id9945)
Layout ve LayoutModifier alt öğeleri farklı bir düzen yönüyle ölçülebilir. (Ibd731)
Aynı üst düzen içindeki alt öğelerin çizim sırasını kontrol etmek için yeni Modifier.zIndex() işlevi eklendi. DrawLayerModifier üzerindeki elevation özelliği, shadowElevation olarak yeniden adlandırıldı ve artık çizim sırasını kontrol etmiyor. DrawShadow için parametre sırası değiştirildi: Yükseklik artık ilk parametre, şekil ise RectangleShape varsayılanıyla ikinci parametre. (I20150, b/152417501)
Owner'da onSizeChange ve onPositionChange kaldırıldı. (I5c718)
Constraints2 eklendi. Bu, Constraints'in bir kopyasıdır ve yalnızca IntPx yerine Int kısıtlama değerlerini destekler. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android'deki gibi piksel olduğu varsayılır.
- IntPxSize'ın yerini alacak olan IntSize da eklendi. (I4b43a)
Alignment, rastgele değerlerle örneklenebilir hale getirildi. 1D hizalamalar eklendi. (Ia0c05)
alignToSiblings artık Placeable yerine Measured kabul ediyor. (I5788d)
-
- ScaleFit'in adı ContentScale olarak değiştirildi.
- ContentScale, Alignment API ile aynı modülde bulunması için ui-graphics'ten ui-core modülüne taşındı.
- FillMaxDimension, Crop olarak yeniden adlandırıldı.
- FillMinDimension, Fit olarak yeniden adlandırıldı.
- Daha iyi eşleşme için "İçine Sığdır" olarak yeniden adlandırıldı
- ImageView.ScaleType eşdeğerleri
- Kırpma ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu verdiği, Alignment.Center ile kullanılan Fit'in ImageView.ScaleType.FIT_CENTER ile aynı sonucu verdiği ve Alignment.Center ile kullanılan Inside'ın ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu verdiği belirtilen belgeler eklendi.
Çizim değiştiriciler için sağdan sola dil desteği. (I0aaf9)
Android Görünümlerini XML'den genişletmek için API yayınlandı. Daha fazla bilgi için ViewInCompose demosuna bakın. (I42916)
DrawModifier API'yi iyileştirme:
- draw() ContentDrawScope için alıcı kapsamı oluşturuldu.
- draw() işlevindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
- ContentDrawScope'un drawContent() yöntemi var (Ibaced, b/152919067)
LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
DrawLayerModifier ve drawLayer() artık varsayılan olarak clipToBounds ve clipToOutline'ı false olarak ayarlar. (I0eb8b, b/152810850)
LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi. LayoutModifier (If32ac) desteği sonlandırıldı.
Değiştirici artı operatör, fabrika uzantısı işlevleriyle (I225e4) değiştirildi.
Belirli bir katman için çizim komutlarının görüntüleme listesini kaydırmayı desteklemek üzere translationX/Y özellikleri eklendi. Bu, animasyonlara veya dokunma etkinliklerine yanıt olarak içeriği taşımak için kullanışlıdır. (I8641c)
Bir katmanda belirli bir nokta etrafında döndürme ve ölçeklendirmeyi desteklemek için Katman API'lerine pivotX, pivotY parametreleri eklendi (Icf7c3).
OnPositioned ve OnChildPositioned composable işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)
Düzen için RenderNode eklemeye olanak tanıyan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçekleme ve gölge ayarlarına izin verir. Bu, RepaintBoundary'nin yerini alacak. (I7100d, b/150774014)
Yerleşim yönünün üst yerleşim düğümünden alt öğelere yayılması sağlandı. Düzen yönü değiştiricisi eklendi. (I3d955)
Stack bileşeni, sağdan sola yönü destekler (Ic9e00).
Compose düzeninde sağdan sola dil desteği (Ia5519)
Yoğunluk ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current kullanabilirsiniz. withDensity(density) yerine yalnızca with(density) kullanılmalıdır (I11cb1).
LayoutCoordinates, sağlananAlignmentLines'ı Map yerine Set olarak kullanacak ve değer almak için get() operatörünü uygulayacak şekilde değiştirildi. Bu sayede, her değiştirici için yeni bir koleksiyon oluşturmaya gerek kalmadan değiştiricilerin, kümenin bir veya daha fazla değerini değiştirmesi kolaylaşır. (I0245a)
LayoutCoordinates artık bir konum özelliğine sahip değil. LayoutModifiers, döndürme veya ölçekleme göz önünde bulundurulduğunda konum özelliği anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'den diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() kullanmalıdır.
LayoutCoordinates, boyut özelliği için PxSize yerine IntPxSize kullanıyor. Düzenlerde tam sayı piksel boyutları kullanılır. Bu nedenle, tüm düzen boyutlarında kayan nokta değerleri değil, tam sayılar kullanılmalıdır. (I9367b)
Kısıtlamaların API yüzeyinde iyileştirmeler (I0fd15)
Durum bilgisi içermeyen, bildirim temelli bir çizim API yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API'si oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır ve boyutlandırma bilgileri de ilgili iç sınırlarla sınırlandırılır. Çizim işlemlerini yapılandırmak için tüketicinin kendi Paint durumu nesnesini korumasını gerektirmez.
- CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli grafikler demosunu (Ifd86d) içerecek şekilde güncellendi.
Sınırlı kullanımı olduğu ve çoğu kullanım alanında donanım hızlandırma için optimize edilmediği için kullanılmayan MaskFilter API kaldırıldı (I54f76).
RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics.* konumuna taşındı. (Ia74d5, b/154507984)
API'deki tüm boş değer atanabilir Color kullanımları, boş değer atanabilir olmayanlarla değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7).
Temel ImageAsset'in bir alt bölümünün çizilmesini desteklemek için ImagePainter'a ek isteğe bağlı rect parametresi ekleyin (I0ea9e).
Renkleri kutuya almadan ayarlanmamış bir değeri temsil etmek için "Rengi Kaldır" seçeneği eklendi. (If901a)
Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak üzere Canvas.rotate ve Canvas.scale uzantı yöntemleri eklendi. Bu öğeler, mevcut tuval çevirisinin sol üst köşesinde varsayılan olarak yer alır.
Ayrıca, tutarlılık için Canvas.rotateRad'ı uzantı yöntemi olarak taşıdı (Ibaca6).
ImageAsset'ten piksel bilgisi sorgulamayı desteklemek için PixelMap API'si oluşturuldu. (I69ad6)
Compose ile Android çerçeve API'leri arasındaki nesne dönüşümlerinde adlandırma kuralına uymak için toFrameworkRect/toFrameworkRectF, toAndroidRect/toAndroidRectF olarak yeniden adlandırıldı. Ayrıca bu API'lerle ilgili dokümanlar da güncellendi (I86337).
Vektör grafikler için mevcut alt bileşim API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine VectorPainter nesnesidir. VectorPainter lehine önceki DrawVector composables'ın desteği sonlandırıldı.
Image(Painter) API'sinin adı PaintBox(Painter) olarak değiştirildi. ImageAsset yerine VectorAsset ile Image composable gibi davranan Vector composable oluşturuldu (I9af9a, b/149030271).
Resim verileri ile düzene katılmak ve içerik çizmek için kullanılan, yakında kullanıma sunulacak Image composable arasındaki farkı daha iyi ayırt etmek için Image, ImageAsset olarak yeniden adlandırıldı. _Body:android.graphics.Bitmap üzerinde, geleneksel Android uygulama geliştirme ile Compose çerçevesini birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere Bitmap.asImageAsset() adlı bir uzantı yöntemi oluşturuldu (Id5bbd).
TextDirection.Content eklendi (I48f36)
TextDecoration.plus operatörü eklendi (I0ad1a)
Force, TextDirectionAlgorithm enum değerlerinden (Icc944) kaldırıldı.TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)
TextField seçimi için LongPressAndDrag'i uygular. (I17919)
Aralıktaki tüm ek açıklamaları döndüren AnnotatedString.getStringAnnotations eklendi. (I1fa00)
Locale ve LocaleList için paket adı androidx.ui.text'ten androidx.ui.intl olarak değiştirildi (I8132c).
TextField'ın imleci yanıp sönme animasyonuna sahip (Id10a7)
API değişikliği: AnnotatedString(builder: Builder), annotatedString(builder: Builder) olarak yeniden adlandırıldı. (Ia6377)
API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)
AnnotatedString.Builder.addAnnotationString'i addStringAnnotation olarak yeniden adlandırın. (I5059e)
Artık onTextInputStarted geri çağırma işlevi (I8dc44, b/151860051) tarafından sağlanan SoftwareKeyboardController kullanılarak yazılım klavyesi gizlenebilir/gösterilebilir.
(Text/Paragraph/Span)Style için merge() işlevine devreden artı operatörü eklendi. (Ia1add)
FontWeight.lerp artık tutturmuyor. Bu, hâlâ bir veri sınıfıdır. (I521c2)
FontWeight oluşturucusu artık herkese açık ve veri sınıfı değil. (Id6b1f)
getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount işlevlerini TextLayoutResult'a ekleyin (Ibc801)
ui-text modülünün adı ui-text-core olarak değiştirildi (I57dec).
Kullanılmayan Size sınıfı, kullanılan ui-geometry modülünde kopya Size sınıfı olduğu için kaldırıldı. (I1b602)
Yalnızca görünür öğeleri oluşturan ve yerleştiren kaydırma listesi bileşeni AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan değişikliklerin tümünü tam olarak ele almaması yer almaktadır. (Ib351b)
Kutuya dolgu, kenarlık, şekil ve arka plan parametreleri ekleme (I05027, b/148147281)
Hata düzeltmeleri
- Metin alanlarındaki onFocusChange geri çağırma işlevi onFocusChanged olarak yeniden adlandırıldı (Ida4a1).
- VerticalScroller ve HoriziontalScroller desteği sonlandırıldı. Column/Row davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u veya kendi öğenizde Modifier.verticalScroll ve Modifier.horizontalScroll'u kullanın. Benzer şekilde, ScrollerPosition, ScrollState' (I400ce, b/157225838, b/149460415, b/154105299) lehine kullanımdan kaldırıldı.
runOnIdleCompose,runOnIdleolarak yeniden adlandırıldı (I83607)- Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
- Compose kullanıcı arayüzü artık yeni bir kompozisyon gerektirmeden ViewGroup'lar içinde oluşturulabilir. Örnek için ViewInteropDemo'ya bakın. (I9ab0b, b/160455080)
- MutableVector'a sortWith ve removeRange eklendi (Icccf7)
- TextField için seçimi değiştirmek üzere sürükleyerek seçim tutma yerlerini uygulayın. (I27032)
- NativeShader sınıfını sarmalayan Shader inline sınıfı kaldırıldı. NativeShader, Shader olarak yeniden adlandırıldı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklemedi ve satır içi bir sınıftı. Bu nedenle, NativeShader sınıfını doğrudan kullanın. (I25e4d)
PainterModifier, verilen kısıtlamalara ve ContentScale parametresine göre ölçeklendirme sağlamayacak şekilde yeniden düzenlendi. Painter uygulamaları, çizim içeriklerini, çizim yaptıkları DrawScope'un verilen boyutuna göre kendileri ölçeklendirmelidir.
VectorPainter'ın önbellek bit eşleminin, içine çizim yapılacak boyuta göre değil varsayılan boyuta göre boyutlandırılması sorunu düzeltildi.
İçeriğini ölçeklendirmek için PainterModifier'a güvenmek yerine ImagePainter'ı güncelledi. (I6ba90)
Animasyon zamanlaması için withFrameNanos işlevini üst düzeye ekleme (Ie34c5)
@Untracked notu kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'larının desteği de sonlandırıldı. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005).
Gönderim sırasında PointerInputFilters, alt bileşen oluşturma yoluyla kaldırılırsa işaretçi girişi gönderme işleminin kilitlenmeye neden olduğu sorun düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)
Gönderim sırasında PointerInputFilters, alt bileşen oluşturma yoluyla kaldırılırsa işaretçi girişi gönderme işleminin kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)
Radius sınıfı, satır içi sınıf olarak yeniden düzenlendi. Yarıçapın y ekseni boyunca zorunlu x ekseni yarıçap parametresine uyması için, varsayılan parametreye sahip işlev oluşturucu lehine tamamlayıcı oluşturma yöntemleri kaldırıldı.
DrawScope.drawRoundRect, x ve y eksenleri boyunca yarıçap için 2 ayrı kayan nokta değeri yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi (I46d1b).
Recompose composable'ı artık yararlı bir soyutlama değildir. Yeniden oluşturma işlemlerinin çoğu, MutableState atamaları sonucunda gerçekleşmelidir. Bunun ötesinde bir durum için, mevcut kapsamın yeniden oluşturulmasını tetiklemek üzere
invalidateişlevini kullanmanız önerilir. (Ifc992)Piksel parametreleri için yalnızca Dp ve temel türlerin kullanıldığı büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b).
Compose derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, derleme derleyicisi, composable işlevlere yapılan çağrıları dönüştürüyordu. Bu değişiklikle birlikte artık composable işlevin gövdesini dönüştürüyor ve çağrı sitesini (çoğunlukla) değiştirmeden bırakıyoruz.
Bu, Compose çalışma zamanıyla iletişim kuran mantığın çoğunun, işlev gövdesinin başında gerçekleştiği anlamına gelir.
Bu, Compose'un tüm kullanımları için kaynakla uyumlu bir değişiklik olmalıdır. Compose'u kullanan çoğu kullanıcının bu değişiklik nedeniyle herhangi bir kodu güncellemesi gerekmez.
Bu çalışmayı desteklemek için tüm composable işlevlerin JVM imzası değiştirildi. Tek bir parametreyi kabul eden bir Composable işlevi, 3 parametreyi kabul eden bir işlev haline dönüştürülür. Ek parametreler Composer, "anahtar" tam sayısı ve meta verileri çağrılar aracılığıyla yaymak için kullanılan bir bit maskesi tam sayısıdır.
Compose artık varsayılan bağımsız değişkenleri de composable işlevine dönüştürüyor. Bu işlem, işlevin kendisinde ek bir sentetik varsayılan aşırı yükleme oluşturmadan yapılır. Bu nedenle, bu değişiklik daha az işlevin tanımlanmasına neden olur.
Bu durumdan kaynaklanan bilinen ve kasıtlı davranış değişiklikleri:
- Bazı aramalar, daha önce atlanmayacakları yerlerde atlanacak.
- Varsayılan bağımsız değişken ifadelerindeki birleştirilebilir ifadeler artık doğru şekilde abone olunuyor ve işleniyor
Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer birleştirilebilir işlevlere yayılır. Bu, çalışma zamanında daha az karşılaştırma yapılmasına, yuva tablosu boyutunun küçülmesine ve daha önce atlanmayan composable işlevlerin daha fazla atlanmasına neden olur. 2. Derleme süresinde "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Bu, karşılaştırma sayısını ve yuva tablosu boyutunu azaltır. 3. Oluşturulan grup sayısını en aza indirmek için işlev gövdesinin kontrol akışı yapısı kullanılır. Bu, yuva tablosu boyutunu küçültür ve çalışma zamanı için daha az iş yükü anlamına gelir. İşlevlere gönderilen ve işlev gövdesinde kullanılmayan kullanılmamış gönderim ve alıcı parametreleri, işlevin atlanabilirliğini belirlemede dikkate alınmaz.
Çoğu önemli değişiklik, derleyicinin doğrudan hedeflediği API'lerle ilgiliydi ve Compose'un tipik kullanımı etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı. 3. Composer::call kullanımdan kaldırıldı. 4.
keyişlevinin değişken sayıda bağımsız değişken içermeyen aşırı yüklemeleri kaldırıldı. Bundan sonravarargsürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı.keyyerine kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine Function3 bekleyecek şekilde değiştirildi. 7. restartableFunction ve restartableFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi. (I60756, b/143464846)Desteği sonlandırılan LayoutAlign değiştiricileri kaldırıldı. (I10877)
DrawLayerModifier lehine RepaintBoundary kaldırıldı (I00aa4)
Button, FloatingActionButton ve Clickable artık ayrı bir
enabledparametresine sahip. Düğmedeki bazı parametreler yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)ButtonStyle, ayrı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenen örneklere bakın. (If63ab, b/146478620, b/146482131)
ambients API'de zarar veren değişiklikler yapıldı. Ayrıntılar için günlük ve
Ambient<T>belgelerine bakın (I4c7ee, b/143769776)Varsayılan TextDirection davranışının LayoutDirection tarafından belirlenmesi sağlandı. Örneğin, LayoutDirection RTL ise varsayılan TextDirection RTL olur. Daha önce TextDirection.ContentOrLtr/Rtl (I4e803) idi.
Hata düzeltildi: Yazı tipi ağırlığı ve yazı tipi stili bir AnnotatedString üzerinde iç içe yerleştirildiğinde metin doğru şekilde oluşturulmuyor. (I77a9d)
Sık kullanılan parametreleri Text() işlevine ekler. Şu anda Text(style = TextStyle(textAlign = TextAlign.Center)) gibi bu parametrelerden az sayıda iletmek için yerel bir metin stili oluşturuyorsanız artık parametreleri doğrudan sağlayabilirsiniz: Text(textAlign = TextAlign.Center) (I82768)
ui-android-text modülünün adı ui-text-android olarak değiştirildi (I68cbe).