Compose kullanıcı arayüzü

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.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta sürümü Alfa Sürümü
9 Eylül 2026 1.12.1 - - 1.13.0-alpha03

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.

GrupAçıklama
compose.animationKullanı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.foundationKullanı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.materialKullanı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.material3Materyal 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üyle uyumlu olacak şekilde tasarlanmıştır.
compose.runtimeCompose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedefleyeceği temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken Compose kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları bildirme

Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu 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. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Sürüm 1.13

Sürüm 1.13.0-alpha03

9 Eylül 2026

androidx.compose.ui:ui-*:1.13.0-alpha03 iptal edilir. 1.13.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • value, onValueChange parametrelerini kabul eden Material 2 metin alanı aşırı yüklemelerinin desteği sonlandırıldı. Lütfen durumunu yükseltmek için TextFieldState kullanan 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. Ortak ComposeView.disableWindowInsetsRulers() (Iadc8f) lehine yalnızca Android'i kullanımdan kaldırma WindowInsetsRulers.disable()
  • Poligon şekillerini dönüştürmek ve sığdırmak için Compose Foundation'da PolygonShape.transformed ve PolygonShape.scaledToFit uzantı işlevlerini ekler. (I3f327)
  • Değiştirici, LineHeight.Trim.isTrimLastLineBottom() işlevinin adını LineHeight.Trim.trimsLastLineBottom, LineHeight.Trim.isTrimFirstLineTop işlevinin adını ise LineHeight.Trim.trimsFirstLineTop olarak değiştirdi (I02211)
  • ComposeUiTestConfig.platform bölümündeki PlatformTestConfig altına boundsAssertionTolerance eklendi. Bu sayede testler, varsayılan sınır onaylama toleransını ortam/kural düzeyinde yapılandırabilir. (I7819d, b/545673912)
  • value, onValueChange parametrelerini kabul eden BasicTextField aşırı yüklemelerinin desteği sonlandırıldı. Lütfen durumunu yükseltmek için TextFieldState kullanan BasicTextField aşırı yüküne geçin. (I636bf, b/552879150)
  • BasicTextField(value, onValueChange) ile birlikte VisualTransformation da kullanımdan kaldırılmıştır. Bunun nedeni, yalnızca bu TextField varyantı üzerinden kullanıma sunulmasıdır. Mevcut dönüşümler OutputTransformation'e taşınmalıdır. (I636bf, b/552879150)
  • Satır yüksekliğini her satır için ayrı ayrı hesaplamak üzere LineHeightStyle.Mode.PerLine eklendi. Böylece aynı paragrafta farklı yazı tipi boyutları desteklenerek çakışma önleniyor. (I41738)
  • LazyLayoutCacheWindow ve LazyListPrefetchStrategy değerlerinin LazyListState üzerinden sağlanması, birleştirilebilir işlev için LazyLayoutCacheWindow sağlanması lehine kullanımdan kaldırıldı. (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 WindowInfo'a isCrossWindowBlurEnabled uzantı özelliği eklendi. (If38e2, b/538405295)
  • Mevcut android.view.Window nesnesinin alınmasına olanak tanıyan LocalWindow CompositionLocal eklendi. Böylece, pencere düzeyindeki API'leri Composables içinden kontrol etmek kolaylaştı. (I4d4ff, b/221889664)

Hata Düzeltmeleri

  • Varsayılan olarak isMinimalistLocalsEnabled etkindir. (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).
  • compileSdk için Compose kitaplıkları 37.1 sürümüne güncellendi. Bu işlem, Compose kullanan tüm uygulamalar ve kitaplıklar için compileSdk öğesinin geçişli olarak güncellenmesini gerektirir. (I05b0f)
  • Tahmin edilen geri gitme sırasında WindowInsetsRulers IME eklerinin animasyonlu olarak işaretlenmemesi ve odak metin alanları arasında değiştirildiğinde imePadding öğesinin güncellenmemesi sorunu düzeltildi. (Id4562, b/537386261, b/539686000)
  • ComposeView, standart bir Android ViewGroup iç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ı (External Contribution)

  • Tek bir kare içinde bir ComposeView ayrılıp yeniden eklendiğinde (ör. removeView ve addView ile 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 iptal edilir. 1.13.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Modifier.background için yeni bir anlamsal özellik BackgroundColor eklendi (I7eec3, b/518049030)
  • Artık mevcut temel dizilerden Vertices oluşturabilirsiniz. (Ifaba8, b/496412761)
  • VectorPainter artı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 kullanan listeler gibi senaryolarda performans artırılır. Bu optimizasyon ComposeUiFlags.isVectorDrawCacheSharingEnabled üzerinden devre dışı bırakılabilir. (I35639, b/331283180)
  • requestFocusForChildInLocalBounds yardımcı işlevini ekleyin (Ib1a48)

Sürüm 1.13.0-alpha01

12 Ağustos 2026

androidx.compose.ui:ui-*:1.13.0-alpha01 iptal edilir. 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 ExperimentalVelocityTrackerApi ek açıklama sınıfı kaldırıldı. (I6f9c6, b/483449576)
  • isClearNestedScrollCoroutineScopeFixEnabled işaretini kaldırın (Iedfd7, b/506963276)
  • TextFieldState artık metin stili bilgilerini kaydedip geri yükleyebiliyor. AnnotatedString.Annotation.Saver artık AnnotatedString.Annotation nesnelerinin 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'da TestFailurePolicy ve TestFailureHandler kullanı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-junit4 v2 paketinde, tek tek parametre alan createComposeRule, createAndroidComposeRule ve createEmptyComposeRule aşırı yüklemelerinin desteği sonlandırıldı. ComposeUiTestConfig kabul eden aşırı yüklemeleri veya varsayılan ComposeUiTestConfig kullanan parametresiz aşırı yüklemeleri kullanın. Varsayılan bir ComposeUiTestConfig, her testin başında ilk giriş modunu InputMode.Touch olarak ayarlar. Bu durum, klavye modunu (InputMode.Keyboard) bekleyen mevcut testlerin başarısız olmasına neden olabilir. Etkilenen testleri düzeltmek için ComposeUiTestConfig(inputMode = InputMode.Keyboard) açıkça iletin ve giriş modları için 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çin AndroidComposeUiTestFlags.isInputModeSetForDeviceTests = false değerini ayarlayabilirsiniz. Bu işaret gelecekte kaldırılacak. Bu nedenle, yalnızca az sayıda test başarısız olursa yapılandırmalarını değiştirerek testleri doğrudan çözmeniz önerilir. (Idfb86, b/504195741)
  • createComposeRule ve createAndroidComposeRule için bağımsız değişken içermeyen çağrılar (ör.createComposeRule() veya createAndroidComposeRule<MyActivity>()) artık varsayılan bir ComposeUiTestConfig kullanıyor. Bu, her testin başında ilk giriş modunu InputMode.Touch olarak 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çin ComposeUiTestConfig(inputMode = InputMode.Keyboard) açıkça iletin ve giriş modları için 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çin AndroidComposeUiTestFlags.isInputModeSetForDeviceTests = false değerini ayarlayabilirsiniz. Bu işaret gelecekte kaldırılacak. Bu nedenle, yalnızca az sayıda test başarısız olursa yapılandırmalarını değiştirerek testleri doğrudan çö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 @EmptySuper ile Compose'da açıklama ekleyin. (Id407b)
  • ExposedDropdownMenu artık üye işlevi yerine ExposedDropdownMenuBoxScope üzerinde bir uzantı işlevidir. Kodunuzu yeni bir içe aktarma işlemiyle güncellemeniz gerekebilir. (Ie8a65, b/356452026)
  • DialogProperties öğesine blurBehindRadius, backgroundBlurRadius, scrimAlpha ve windowShape özelliklerini, PopupProperties öğesine ise blurBehindRadius ve scrimAlpha ö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. windowShape ayarı, 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ı: Fareyle üzerine gelme etkinlikleri doğru şekilde işlenmiş olarak işaretlendiğinden, Dokunarak Keşfet etkin olduğunda Oluştur düğmeleri artık 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 variationSettings özelliği kullanıma sunuldu. Varsayılan olarak yeni FontVariation.Empty kullanılır. Dizi kopyası ayırmalarını önlemek için FontVariation.Settings vararg oluşturucusu asList() 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çin NestedScrollDispatcher.coroutineScope özelliği güncellendi. (I9b112, b/535290281)
  • Ayrı effectContext, runTestContext ve testTimeout parametrelerini alan runComposeUiTest, runAndroidComposeUiTest ve AndroidComposeUiTestEnvironment aşırı yüklemeleri kullanımdan kaldırıldı. ComposeUiTestConfig kabul eden aşırı yüklemeleri veya varsayılan ComposeUiTestConfig kullanan parametresiz aşırı yüklemeleri kullanın. Varsayılan bir ComposeUiTestConfig, her testin başında ilk giriş modunu InputMode.Touch olarak ayarlar. Bu durum, klavye modu (InputMode.Keyboard) bekleyen mevcut testlerin başarısız olmasına neden olabilir. Etkilenen testleri düzeltmek için ComposeUiTestConfig(inputMode = InputMode.Keyboard) açıkça iletin ve giriş modları için 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çin AndroidComposeUiTestFlags.isInputModeSetForDeviceTests = false değ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, runAndroidComposeUiTest ve AndroidComposeUiTestEnvironment çağrıları artık varsayılan bir ComposeUiTestConfig kullanıyor. Bu işlev, her testin başında ilk giriş modunu InputMode.Touch olarak 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çin ComposeUiTestConfig(inputMode = InputMode.Keyboard) açıkça iletin ve giriş modları için 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çin AndroidComposeUiTestFlags.isInputModeSetForDeviceTests = false değerini ayarlayabilirsiniz. Bu işaret gelecekte kaldırılacak. Bu nedenle, yalnızca az sayıda test başarısız olursa yapılandırmalarını değiştirerek testleri doğrudan çözmeniz önerilir. (I8c85d, b/504195741)
  • Geliştiricilerin bunları yanlışlıkla onaylama API'leri yerine kullanması durumunda testlerin sessizce başarısız olmasını önlemek için SemanticsNodeInteraction.isDisplayed() ve isNotDisplayed() işlevlerine @CheckResult eklendi. (I1b447, b/508178494)
  • AndroidComposeUiFlag.isDelayAndroidViewsHandlerCreationEnabled işaretinin kullanılması, AndroidView içeren ViewGroup öğesinin yalnızca AndroidView içermeyen ComposeView öğelerinin performansını artırmak için AndroidView eklendiğinde oluşturulmasına neden olur. İşaret devre dışı bırakıldığında, kapsayan ViewGroup, ComposeView pencereye eklendiğinde oluşturulur ve eklenir. (I306a3, b/524283041)
  • Görev dağıtıcının üst eş yordam kapsamına erişmek için alternatif bir API olan coroutineScopeOrNull()'yı NestedScrollDispatcher'da kullanıma sunduk. (I18c0f)
  • Temizleme işlemlerinin her zaman yürütüldüğünden emin olmak için clearCallbacks değerini runAndClearCallbacks olarak değiştirin. (If4720, b/526700075)
  • ComposeTestConfig, ComposeUiTestConfig olarak yeniden adlandırıldı ve v2 paketinden üst androidx.compose.ui.test paketine taşındı. (I1d2a1, b/504195741)
  • Yeniden çizim geçişlerinin beklenmesi sırasında özel bir zaman aşımı yapılandırmasına izin vermek için SemanticsNodeInteraction.captureToImage() işlevine bir timeoutMillis parametresi (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 hintText anlamsal özelliği eklendi. Bu özellik, AccessibilityNodeInfo ile eşleme yaparak erişilebilirlik desteğini iyileştirir.hintText. (Ib65da, b/448376876)
  • LocalOwner ve LocalAndroidComposeView'den isteğe bağlı olarak dinamik bir şekilde çözülerek CompositionLocal çözünürlüğü optimize edildi. Bu özellik, ComposeUiFlags.isMinimalistLocalsEnabled kullanılarak açılıp kapatılabilir. (I2bf6d)
  • androidx.benchmark artık 24 minSdk sahibi. (Ic2a85)
  • hideFromAccessibility öğesinin birleştirme alt öğelerine yayılmasını kontrol etmek için AndroidComposeUiFlags öğesine deneysel bir işaret isPropagateHideFromAccessibilityToMergingChildrenEnabled eklendi. (Ie41ff, b/483506400)
  • Deneysel olan Promoted ComposeUiTest ve ilgili test API'leri (ComposeTestRule ve waitUntil varyantları dahil) kararlı sürüme geçirildi. (Iaec77, b/471148519, b/485124363)
  • Birleştirilmiş geçiş gruplarında TalkBack gezinme sırası düzeltildi. Gerekirse AndroidComposeUiFlags.isTraversalGroupSortingEnabled devre dışı bırakılarak bu değişiklik geri alınabilir. (I5ae09, b/285043826)
  • Deneysel ve eski IndirectPointerEvent yardı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, waitUntilExactlyOneExists ve waitUntilDoesNotExist yardımcı API'lerinin desteği sonlandırıldı. Bu API'ler useUnmergedTree kabul etmiyordu. Birleştirilmemiş anlamsal yapı ağacındaki düğümlerin beklenmesini desteklemek için useUnmergedTree kabul 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 SemanticsNodeInteraction boyut ve konum onaylarına (assertWidthIsEqualTo, assertHeightIsEqualTo, assertTouchWidthIsEqualTo, assertTouchHeightIsEqualTo, assertPositionInRootIsEqualTo, assertTopPositionInRootIsEqualTo, assertLeftPositionInRootIsEqualTo) tolerance parametresi 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() ve runOnIdle()) 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. ComposeTestConfig aracı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*ComposeUiTest ve create*ComposeRule için ComposeTestConfig nesnesini kabul eden yeni aşırı yüklemeler eklendi. (Ia3da9, b/267253920, b/504195741)
  • Temel temsilleri String'den Int'ye değiştirilerek, PreviewParameterProvider ile medya sorgusu özellikleri (Posture, PointerPrecision vb.) kullanılırken Oluşturma Önizlemesi'ndeki kilitlenme düzeltildi. (Ic8f92, b/489939558)
  • Görsel metnin yanı sıra ham giriş metninde tam eşleşmeyi etkinleştirmek için hasTextExactly ve assertTextEquals'ye includeInputText parametresi eklendi. (Iee329, b/519026043)

Hata Düzeltmeleri

  • SaveableStateRegistry.performSave() tahsisleri önlemek HashMap için optimize edildi. Şirket içinde ScatterMap kullanı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şmenin null döndürmek yerine IllegalStateException oluş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-unit değer sınıflarının (TextUnit) optimize edilmiş yardımcı nesne başlatması. (If4a99)
  • Dinamik alıcılar kullanarak ui-graphics değer sınıflarının (BlendMode, Color vb.) optimize edilmiş yardımcı nesne başlatması. (Iaa86a)
  • Dinamik alıcıları kullanarak compose:ui:ui değer sınıflarının (Key, CompositingStrategy vb.) optimize edilmiş yardımcı nesne başlatması. (I1a340)
  • Dinamik alıcılar kullanarak compose:ui metin değeri sınıflarının (TextAlign, TextOverflow, ImeAction vb.) optimize edilmiş yardımcı nesne başlatması. (I776e0)
  • Dinamik alıcılar kullanarak compose:ui araç 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:ui birim değeri sınıflarının (Dp, DpOffset, TextUnitType vb.) optimize edilmiş yardımcı nesne başlatması. (If5eb5)
  • Dinamik alıcılar kullanarak compose:ui geometri değeri sınıflarının (Offset, Size, CornerRadius) optimize edilmiş yardımcı nesne başlatması. (I3b110)
  • Dinamik alıcılar kullanarak compose:ui değer sınıflarının (Role, FocusDirection, PointerEventType vb.) optimize edilmiş yardımcı nesne başlatması. (Ie35dd)
  • Gereksiz yavaş düzen geçişlerini önlemek için BaselineShift.None, BaselineShift.Unspecified ve BaselineShift(0f) öğelerini doğru şekilde işleyin. (I4350c)
  • Negatif sıfır (-0,0) içeren Dp değerlerinin, karşılaştırmalarda veya eşitlik kontrollerinde kayan nokta karşılaştırmalarından ya da eşitlik kontrollerinden farklı şekilde davranmasına neden olan sorun düzeltildi. (I7dbcf, b/525506543)
  • API bilgilerini temizler (Ia8066)

Harici Katkı (External Contribution)

  • Alignment.topRatio, Trim.isTrimFirstLineTop() ve Trim.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 iptal edilir. 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 iptal edilir. 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)                                                                                                                                                                                     
            )                                                                                                                                                                                                               
        )                                                                                                                                                                                                                   
    )
──────                                                                                                                                                                                                                  

### Wide Color Gamut (WCG) Support (ui-graphics)

WCG'nin korunması: * Paint veya Gölgelendirici'de ayarlanan sRGB olmayan renk uzayları (ör. AdobeRgb, DisplayP3) API düzeyi 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ırlayı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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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ğı ComposeUiFlags eklendi.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).
  • Yumuşak kaydırma=yanlış olan bir metin için satır yüksekliği ayarlamanın artık daha iyi bir şekilde hesaplandığı BasicText ve BasicTextField öğelerine optimizasyon eklendi (I2150a).

Hata Düzeltmeleri

  • Gereksiz kullanıcı arayüzü yeniden oluşturmasını önlemek için optimize edilmiş kaydırma yakalama durumu alt bileşenler arasında yayılır. (I05830)
  • Deneysel özellik bayrağı ComposeUiFlags etkinleştirildi.isTrackpadPinchReinterpretationEnabled olarak 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)
  • AndroidComposeTestRule içinde standart JUnit 4 test yeniden deneme kuralları için destek eklendi. Bu destek, yürütme denemeleri arasında dahili test ortamı ve coroutine kapsamı yeniden oluşturularak sağlanır. (Iafaa7, b/235383900)

Harici Katkı (External Contribution)

  • Pano uygulamasını taklit etmenin bir yolunu sağlamak için test amacıyla AndroidClipboard arayüzünü kullanıma sunma (Ie4d72, b/512924975)
  • TextAttribute commitText() ve 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 iptal edilir. 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 credentialRequest Semantics özelliği ve CredentialRequestData yardımcı eklendi. (Ida2bf, b/488446455)
  • Diğerlerinin yanı sıra ParagraphIntrinsics softWrap bağımsız değişkenini alan bir fabrika işlevi eklendi. Şirket içinde, metnin tek bir satır olarak oluşturulduğunu belirten 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 SoundEffectOnInteraction Composable eklendi. Bu değişiklik sonucunda semantik tıklama işleyicilerinin artık ana ileti dizisinden çağrılması gerektiğini ve bunun az sayıda test senaryosunu etkileyebileceğini unutmayın. (I78f65)
  • Font fabrika işlevi variationSettings ile sabitlendi. (I183f2)
  • ResourceFont loadingStrategy özelliği ve copy yöntemi sabitlendi. (I40d84)
  • InterceptPlatformTextInput ve PlatformTextInputInterceptor API'leri kararlı hale getirildi. (Id2784)
  • Platform ayrımını iyileştirmek için registerIdlingResource ve unregisterIdlingResource uzantı işlevlerine taşındı. İçe aktarma işlemlerinizi güncellemeniz gerekebilir. (I21d3d, b/471148519)
  • Devlet denetimi sırasında test performansını artırmak için runWithoutImplicitWait ile ComposeTestRule ve ComposeUiTest tanıtıldı. 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)
  • @PreviewWrapper ek açıklaması artık MultiPreview ek açıklaması sınıflarına uygulanabiliyor. Böylece geliştiriciler, yeniden kullanılabilir ve önceden sarmalanmış önizleme yapılandırmaları oluşturabiliyor. (I8ae66, b/511170361)
  • Mesh gradyanları oluşturmak için MeshGradientPainter özelliği kullanıma sunuldu.Modifier.meshGradient özelliği kaldırıldı. Bunun yerine Modifier.paint ile birlikte MeshGradientPainter özelliğini kullanın. MeshGradientRenderer artı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. isRulerProvided lambda'sı gözlemlenmez ve bir değerin sağlanıp sağlanamayacağı konusunda iyimser olmalıdır. rulerProvider lambda'sı gözlemlenir. Böylece herhangi bir değer değiştiğinde cetvel değeri ve cetvelin tüm okuyucuları güncellenir. (Ie9089)
  • Deneysel Stil API'sinde, özel stil kapsamlarına sahip olabilen özel stil türleri oluşturma desteği eklendi. Bu sayede, bir stil tarafından ayarlanabilen özelliklerin alt kümesi oluşturulabilir (ör. grafik katmanı veya metin özellikleri tamamen kaldırılabilir) ve kapsamın diğer stillerden bağımsız olarak genişletilmesine olanak tanınır (ör. MediaPlayer composable'da yalnızca playing { } söz dizimi desteklenir). Bu değişiklik, ikili ve kaynak uyumluluğunu bozuyor. Kaynak uyumluluğunu bozan temel değişiklik, StyleScope iç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)
  • DeferredTargetAnimation artık deneysel değil. Lütfen etkinleştirme işlemini kaldırın." mesajını androidx-main'e taşıyın.
  • Düzeltmeyi kontrol etmek için isClearNestedScrollCoroutineScopeFixEnabled işareti eklendi. (Ibd394, b/505343254)
  • DeferredTargetAnimation artık deneysel bir özellik değil. Lütfen etkinleştirme işlemini 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 de setContent() aranmadan ö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 oluyordu. Bu değişiklik, performans sorununu yeniden ortaya çıkarmadan bu işleme izin veriyor. (I9b2c5, b/508650647)
  • ComposeViewContext daha hızlı erişimi desteklemek için artık ComposeViewContext değ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şlemleri için desteklenmeyen (ör. CIE XYZ, CIE Lab, OkLab) veya mevcut API düzeyinde kullanılamayan renk uzayları, güvenli bir şekilde sRGB renk uzayına geri döner. (I3efb5, b/388511109)

Harici Katkı (External Contribution)

  • androidx.compose.ui.platform.NativeClipboard typealias desteği sonlandırıldı. Bunun yerine doğrudan android.content.ClipboardManager kullanın (Ibc611).
  • Platform türünün typealias üzerinden commonMain kaynak kümesine gösterilmesini önlemek için Clipboard.nativeClipboard mülkünü Clipboard.nativeClipboardManager uzantı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 iptal edilir. 1.12.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • MeshGradient Değ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 oturum açılarak da kullanılabilir. (I631c7, b/502279690)
  • İndirilebilir yazı tipleri için varyasyon ayarlarını destekleme (Ic25c7, b/496278020)
  • mediaQuery ve derivedMediaQuery, Boolean yerine 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 iptal edilir. 1.12.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeUiFlags.isIndirectPointerNavigationGestureDetectorEnabled özellik bayrağını kaldırır (I82be3, b/455601135)
  • Satır içi işlev mediaQuery oluşturuldu (Ie9457, b/498698350)
  • ComposeViewContext deneysel aşamadan çıktı ve ExperimentalComposeViewContextApi ek açıklaması kaldırıldı (I32eca)
  • ComposeView.disableWindowInsetsRulers() artık deneysel değil (Ia81a5)
  • Compose kullanıcı arayüzünde şu anda bekleyen bir çalışma olup olmadığını pasif olarak kontrol etmeye olanak tanıyan hasPendingWork() API'si eklendi. Bu API, bekleme tetiklemez veya saati ilerletmez. 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 KeyboardType seçenekleri ekler. (I3713e, b/202353328)
  • AndroidComposeUiFlags.isSharedHapticsEnabled işareti kaldırıldı (I6a1d4, b/479895628)
  • AndroidComposeUiFlags.isSharedClipboardManagerEnabled işareti kaldırıldı (I41e3c, b/479895130)
  • AndroidComposeUiFlags.isSharedViewConfigurationEnabled iş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.isSharedWindowInfoEnabled işaretini kaldırın (Ife9a9, b/479837249)
  • AndroidComposeUiFlags.isSharedComposeViewContextEnabled iş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)
  • isTraversableDelegatesFixEnabled işaretini kaldırın (Ia7dfe, b/485962494)
  • Test performansını ve durum kararlılığını artırmak için ComposeTestRule ve ComposeUiTest'de runWhenIdle ve askıya alma varyantı awaitAndRunWhenIdle kullanıma sunuldu. Bu API'ler kullanıcı arayüzünü bir kez senkronize eder, 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, GraphicsLayer ve Modifier.graphicsLayer öğelerini ekler. Bu, katman bir ekran dışı arabelleğe yükseltildiğinde örtülü clipToBounds davranışı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.setAutofillDebugEnabled aranarak etkinleştirilebilir. (I5b430, b/487947860)
  • VelocityTracker, Android Framework tarafından sağlanan uygulamayı kullanacak şekilde değiştirildi (AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled ile yapılandırılabilir). (Ibc7e2, b/359962905)
  • AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnabled doğ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)
  • isGraphicsLayerShapeSemanticsEnabled bayrağı temizlendi. (I44be0, b/455600081)
  • Yazı tipi sertifikalarını kod tabanına eklemek için manuel bir adım gerektirmeden indirilebilir yazı tiplerini kullanmak üzere 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 onRootWithViewInteraction eklendi . Bu, üretim kodunda benzersiz test etiketleri gerektirmeden RecyclerViews gibi 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.None ayarlandığında artık otomatik doldurma etkinliklerinin Compose tarafından gönderilmesi önleniyor. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 1.11.0-beta02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Tutarlılık için PreviewWrapper API'sini yeniden adlandırın (I62659, b/490085948)
  • ComposeViewContext, ComposeView öğesinin görünüm hiyerarşisine eklenmeden oluşturulmasına olanak tanır. ComposeView eklenmeden beste yapmaya başlamak için AbstractComposeView.createComposition(composeViewContext) simgesini kullanın. (I46e6f)
  • delayMillis, panEnd ve scaleEnd (If80fe) için dokunmatik yüzey testi API'lerine eklendi.

Hata Düzeltmeleri

  • Clipboard ve ClipboardManager artı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 = false ile açılan pop-up'ta artık uçtan uca 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 iptal edilir. 1.11.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Jetpack Compose Dialog'a (Ic7728) özel windowToken desteği eklendi.
  • Jetpack Compose Popups'a özel windowToken ve windowType desteği eklendi. (I0a04f)
  • PreviewWrapper arayü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.isSharedFontEnabled doğru olduğunda, FontLoader ve FontFamilyResolver gibi yazı tipiyle ilgili nesne örnekleri, ComposeViewContext içindeki ComposeView örnekleri arasında paylaşılabilir. (I403e8)
  • Compose semantik işlemcileri, mainLooper yerine view.handler'ı kullanır. Böylece, ana olmayan işleyicileri kullanan görünümlerde kilitlenme önlenir. (I671c3, b/486235925)
  • TalkBack'nin dokunarak keşfetme özelliğini etkileyen, anlamsal yapı isabet testiyle ilgili bir hata düzeltmesini koruyan isSkipNonImportantSemanticsNodesHitTestEnabled işareti eklendi. (I2933f, b/481011169, b/454377558, b/461360154)
  • Android Hizmetleri'nden Jetpack Compose Dialog'ları görüntüleme desteği eklendi. Geliştiriciler, DialogProperties içindeki yeni windowType parametresi 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 PointerInputChange ve HistoricalChange özelliklerini yeniden adlandırır. (I989a8, b/481333653)
  • Trackpad testi API'lerine, trackpad hareketleri için farklı eğrileri ve girişleri simüle etmeye yönelik daha fazla işlev eklendi. (I290fb, b/473603145, b/479213358)
  • Yeni PointerEventType.Pan ve PointerEventType.PanStart, PointerEventType.PanMove ve PointerEventType.PanEnd olarak ayrılıyor. Benzer şekilde, PointerEventType.Scale, PointerEventType.ScaleStart, PointerEventType.ScaleChange ve PointerEventType.ScaleEnd olarak ayrılmıştır. Bu bölme, platform tarafından yorumlanan kaydırma ve ölçeklendirme hareketlerinin başlangıcı ve bitişiyle 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.isSharedHapticsEnabled doğru olduğunda ComposeViewContext, 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,derivedMediaQuery ve UiMediaScope API'leri (@ExperimentalMediaQueryApi olarak işaretlenmiş) kullanıma sunuldu. (I2d21e, b/479800750)

Hata Düzeltmeleri

  • Şekil parametresi dinamik olarak değiştirildiğinde blok kapsamlı Modifier.dropShadow ve Modifier.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)
  • Parça geçişinde ComposeView kullanıldığında istisna oluşturulmasına neden olan hata düzeltildi. (Ia425f, b/484100557)

Harici Katkı (External Contribution)

  • Metin değiştirme önerileri kullanılabilir olduğunda çeviri yazım girişinin bulunabileceği farklı durumların belirlenmesine yardımcı olmak için InputTextSuggestionState özelliği ekleyin. Ayrıca, mevcut çeviri yazısı metin kompozisyonu aralığını izlemek için TextCompositionRange ö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 iptal edilir. 1.11.0-alpha06 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeUiFlags.areWindowInsetsRulersEnabled iş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 eklendi.
  • 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.isSharedClipboardManagerEnabled doğru olduğunda, pano ile ilgili örnekler ComposeViewContext kullanılarak ComposeViews genelinde paylaşılabilir (I65e2c).
  • ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabled kaldırıldı (I6e14a, b/455601894)

Sürüm 1.11.0-alpha05

11 Şubat 2026

androidx.compose.ui:ui-*:1.11.0-alpha05 iptal edilir. 1.11.0-alpha05 sürümü bu commit'leri içerir.

API Değişiklikleri

  • AndroidComposeUiFlags.isSharedWindowInfoEnabled, WindowInfo bilgilerini ComposeViewContext konumuna taşır. İşaret devre dışı bırakıldığında WindowInfo, AndroidComposeView tarafından kontrol edilir (I3b364).
  • ComposeView içindeki ortak yapılar, ortak ComposeViewContext'a taşınır. Bu, CoroutineContext'ı ComposeViewContext'e taşıyan ilk değişikliktir. AndroidComposeUiFlags.isSharedComposeViewContextEnabled doğ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 bulunan ek bilgilerle birlikte bildirilir. Bu değerlerin ayarlanacağını belirten yeni bir PointerEventType.Pan ve PointerEventType.Scale eklenir (Id071a, b/315527861, b/459831570).

Hata Düzeltmeleri

Harici Katkı (External Contribution)

  • androidx.compose.ui.graphics.NativePaint typealias kullanımdan kaldırıldı. Bunun yerine doğrudan android.graphics.Paint kullanın (I6303c, b/477394763).
  • Platform türünün typealias aracılığıyla commonMain kaynak kümesine aktarılmasını önlemek için Paint.asFrameworkPaint() uzantısını Paint.nativePaint ile değiştirin (I6303c, b/477394763).
  • NumPad hareket tuşları (I1ff12) için destek ekleyin.

Sürüm 1.11.0-alpha04

28 Ocak 2026

androidx.compose.ui:ui-*:1.11.0-alpha04 iptal edilir. 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.accessibilityActionShowOnScreen isteğ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 iptal edilir. 1.11.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeUiTestFlags.isStandardTestDispatcherSupportEnabled bayrağı kaldırıldı. v2 run*ComposeUiTest ve create*ComposeRule API'leri artık varsayılan olarak StandardTestDispatcher kullanıyor. UnconfinedTestDispatcher kullanmaya devam etmek için desteği sonlandırılmış API varyantlarını kullanabilirsiniz. Ancak eş yordam yürütme üzerinde daha iyi kontrol için v2 API'lerine taşımanızı önemle tavsiye ederiz. (Iecc9c, b/455601592)
  • androidx.compose.ui.test.junit4.v2.create*ComposeRule API'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 olarak StandardTestDispatcher kullanır. Daha fazla bilgi için taşıma rehberini inceleyin. (I1870e, b/254115946)
  • androidx.compose.ui.test.v2.run*ComposeUiTest API'leri kullanıma sunuldu. Bu yeni API'ler, eş yordamların hemen yürütülmek yerine sıraya alındığı üretim davranışını daha iyi simüle etmek için varsayılan olarak StandardTestDispatcher kullanır. Daha fazla bilgi için taşıma rehberini inceleyin. (I4f782, b/254115946)
  • ComposeView içindeki ortak yapılar artık paylaşılabilir. ComposeUiFlags.isSharedComposeViewContextEnabled doğ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

  • ComposeView simgesinden tüm içeriklerin kaldırılması durumunda çizilen içeriğin kaldırılmaması hatası düzeltildi. (I8b382, b/299503084)
  • LookaheadScope ile animasyon oluşturulduğunda 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/yerden kaldırma desteği ekler. (d0742b0, b/BUD_ID)
  • Jetpack Compose'da Popup, PopupPositionProvider öğesine sabit koordinatlar 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 iptal edilir. 1.11.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • MultiModalInjectionScope API'leri artık kararlı sürümde. performKeyInput ve performRotaryScrollInput ile 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 izleme dörtgeninin davranışını taklit eden etkinlikler ekler. Birincil giriş noktaları SemanticsNodeInteraction.performTrackpadInput ve MultiModalInjectionScope.trackpad'dir (I2ce67), b/432326139.

Hata Düzeltmeleri

  • Fare tekerleğiyle 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 iptal edilir. 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 isSemanticAutofillEnabled kullanıcı arayüzü işaretini kaldırır. (I849cf, b/455587954)
  • Geçilebilir yöntemlerin, alakalı düğümleri bulma şekli değiştirildi. findNearestAncestor Artık aynı türdeki (NodeKind) temsilciler geçiş sırasında görünür. Bu değişiklik, isTraversableDelegatesFixEnabled işaretiyle korunur. (Ia3165, b/280804097)
  • ANI#isTextEntryKey için TextEntryKey eş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, kaydırma işleminden sonra bu öğe her görünür hale geldiğinde çağrılır. Bu adla değiştiriciyi kullananlar, bu sonucu beklememiş olabilir. Bunun yerine Modifier.onVisibilityChanged() kullanılması ve düzenin daha önce görünür olup olmadığının belirli kullanım alanının gereksinimine göre manuel olarak izlenmesi önerilir. (Ia7095, b/447601783)
  • onRemeasured() geri araması gerektiğinde kullanılan MeasuredSizeAwareModifierNode özelliği kullanıma sunuldu. Lütfen diğer geri çağırmalara ihtiyacınız olmadığında daha genel LayoutAwareModifierNode kullanmak 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 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 iptal edilir. 1.10.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LookaheadScope ile animasyon oluşturulduğunda duraklatılabilir kompozisyonun kilitlenmesi sorunu düzeltildi (I7e649, b/469669851).
  • Jetpack Compose Popup'da, PopupPositionProvider'a sabitleme sınırlarının mutlak koordinatlarının iletilmesine ve bunun sonucunda 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 iptal edilir. 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 iptal edilir. 1.10.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • visibilityChanged geri çağırmalarını, minDurationMs sı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 onVisibilityChanged geri ç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 iptal edilir. 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 iptal edilir. 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 = false ile devre dışı bırakılabilir (I919fb, b/449228515)
  • Tüm dolaylı dokunma API'lerini, işaretçi giriş API'leriyle eşleşmesi için dolaylı işaretçi API'leri adını kullanacak şekilde günceller. (I238ce, b/451607214)
  • TextDirection, TextAlign, Hyphens, FontSynthesis valueOf işlevleri artık bilinmeyen bir değer aldıklarında IllegalArgumentException hatası veriyor. (I07c67)
  • Sarmalayıcı işlev yerine varsayılan değerleri iletmek için CompositionDataTree.makeTree öğesini güncelleyin. (Id64a6, b/445229688)
  • effectContext parametresini kabul eden test kuralı API'leri createComposeRule, createAndroidComposeRule ve createEmptyComposeRule kararlıdır ve parametre varsayılan olarak EmptyCoroutineContext değerini alır. (If400c, b/450540702)
  • UnplacedStateAwareModifierNode, UnplacedAwareModifierNode olarak 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 yerine RectManager içinde önbelleğe alınmış olan uzaklıkları kullanmasını sağlayarak performans optimizasyonunu mümkün kıldı. (Ieaadc)

Hata Düzeltmeleri

  • PlaceholderSpan artı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 ViewCompat kullanı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 iptal edilir. 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ü ile temel modüller arasındaki otomatik doldurma kaynaklarının ad çakışması düzeltildi (I5da5a).

Harici Katkı (External Contribution)

  • UiModes nesnesi, 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 iptal edilir. 1.10.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • CoroutineContext parametresini 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.isRectTrackingEnabled kaldırıldı. Bu mantık her zaman etkin değildir. (Id78df)
  • Updater#set için satır içi aşırı yükleme, sağlanan değeri çok fazla kez kutuladığı için kullanımdan kaldırıldı (Id679e).
  • onAutofillText semantik özelliğini desteği sonlandırılmış olarak işaretleyin. (I6f81c)
  • UnplacedStateAwareModifierNode kullanı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.onRetained ile ilgili doküman düzeltildi ve RememberObserver.onAbandoned ile aynı işlevi gören RetainObserver.onUnused eklendi. (Ia6fc5)
  • onVisibilityChangedNode() eklendi. Bu, Modifier.onVisibilityChanged() tarafından yetki devri yoluyla kullanılan bir Modifier.Node üretiyor. Bu sayede, özel Modifier.Node'nizdeki bu işlevin kapsamını genişletebilirsiniz. (I70d84, b/443001320)

Hata Düzeltmeleri

  • Satır içi içeriğin, çok satırlı kısaltılmış metnin son satırına yerleştirildiğinde 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 iptal edilir. 1.10.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • DelegatableNode.invalidateLayoutForSubtree öğesini DelegatableNode.invalidateMeasurementForSubtree olarak yeniden adlandırır. (I94257, b/430106107)
  • Gereksiz isInHiddenAccessibilitySubtree eşleştiricisi kaldırıldı. (I4476c, b/443792965)
  • Tüm küçültülmüş uygulamalarda 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.skipToLookaheadSize artık Modifier.skipToLookaheadPosition ile aynı şekilde, yalnızca paylaşılan geçiş etkin olduğunda boyut atlamayı etkinleştiren varsayılan etkin bir lambda kullanıyor. (Ibe0f5, b/432485585)
  • ComposeUiFlags.isOutOfFrameDeactivationEnabled kaldı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östermek üzere BeyondBoundsLayoutModifierNode yeni 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ık FocusRequester.requestFocus() ve FocusRequesterModifierNode.requestFocus() ile tutarlıdır. Bu davranışa ihtiyacınız yoksa uygulamanızda ComposeUiFlags.isRequestFocusOnNonFocusableFocusTargetEnabled işaretini false olarak ayarlayın. (Icca5c, b/436863604)
  • WindowInfo içinde DP tabanlı pencere boyutu sağlayın (I9322b, b/424442112)
  • isNestedScrollDispatcherNodeFixEnabled işareti kaldırıldı. (If451a)
  • FillableData API'sinde otomatik doldurma özelliğinde tarih değerleri için destek eklendi. Tarih bilgilerini almak için val dateMillisValue: Long, tarih tabanlı FillableData örnekleri oluşturmak için de ilgili FillableData(dateMillisValue: Long) oluşturucu eklendi. (Id072a)

Harici Katkı (External Contribution)

  • UiModes nesnesi, UiMode ek açıklaması için kullanılan sabitleri bildirmek üzere kullanıma sunuldu (I03cb8).

Sürüm 1.10.0-alpha02

27 Ağustos 2025

androidx.compose.ui:ui-*:1.10.0-alpha02 iptal edilir. 1.10.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • FillableData içindeki Boole ve tam sayı değerleri ile platformun AutofillValue'ına çevrilen FillableData'nın Boole 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 şekilde FillableData'yı 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.isInitialFocusOnFocusableAvailable etkinleştirilerek kullanılabilir. (Ib9178)
  • isPointerInteropFilterDispatchingFixEnabled işareti kaldırıldı. (Iaa589)
  • isNestedScrollInteropPostFlingFixEnabled işareti kaldırıldı. (I2a756)
  • isHiddenFromAccessibility() ve isInHiddenAccessibilitySubtree() 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 StandardTestDispatcher üzerinde testlerin çalıştırılmasını desteklemek için kullanılır. Bir test, StandardTestDispatcher kullanacak şekilde ayarlanabilir. Bunun için ComposeTestRule oluşturulur ve StandardTestDispatcher bu composable'a iletilir. Testler varsayılan olarak UnconfinedTestDispatcher üzerinde çalıştırılır. Bu durumda runCurrent() 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 bir UnconfinedTestDispatcher kullanılarak oluşturuluyordu (ve hâlâ da bu şekilde oluşturuluyor). Artık kendi StandardTestDispatcher öğenizi oluşturup ComposeTestRule öğenizi oluştururken (veya runComposeUiTest işlevini çağırırken) effectContext öğesine ekleyerek bu kurulumu değiştirebilirsiniz. (I334d0, b/254115946)
  • SlotTree kaynağından 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ı RetainScopes yükler. Varsayılan davranış artık yapılandırma değişikliklerinde retain değerlerini koruyacak. (Id4a09, b/177562901)

Harici Katkı (External Contribution)

  • 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 iptal edilir. 1.10.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeView iç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 bir AbstractComposeView.isClearFocusOnPointerDownEnabled API ile devre dışı bırakılabilir. (I6322b, b/282963174)
  • Metne ek olarak çeşitli otomatik doldurma bileşen türlerini desteklemek için FillableData arayü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 öğesinin LayoutCoordinates değ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 isNestedScrollInteropIntegerPropagationEnabled işaretini kullanıma sunuyoruz. (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, isNestedScrollDispatcherNodeFixEnabled işaretleri kaldırıldı (I36c18)
  • Döndürülen değerlerin kullanımını zorunlu kılmak için SemanticsNode bulucu ve seçici işlevlerine @CheckResult notu 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 CompositionLocal simgesini 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 kompozisyon türlerinde kullanılır ancak harici olarak da kullanılabilir. (I58eab)
  • Artık Scrollable, 2 boyutlu fare tekerleği kaydırma etkinliklerini daha iyi destekliyor. MouseInjectionScope kullanım alanlarını test etmeye yardımcı olacak yeni bir test API'si kullanıma sunuldu. Ayrıca, MouseInjectionScope içinde kaydırma yöntemleri için yeni bir aşırı yükleme ve isMouseWheel1DAxisLockingEnabled (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 DeviceConfigurationOverrides ekleyin (I282f0).
  • Tight adlı yeni bir LineHeightStyle.Mode eklendi. Bu mod, daha uzun glifleri kesebilse bile daha küçük satır yüksekliklerinin uygulanmasına yardımcı olur. (Id3849)
  • BaselineShift artık kutulamayı önlemek için Belirtilmemiş değerine sahip. BaselineShift, Hyphens, LineBreak, TextAlign ve TextDirection artık isSpecified yardımcı işlevlerine sahip. Hyphens, TextAlign, TextDecoration ve TextDirection artık verimli serileştirme/serileştirmeyi kaldırma sağlayan valueOf() ve değer yöntemlerine sahip. (I8d44c)
  • Önizleme parametre örnekleri için özel görünen adlara izin vermek üzere yeni bir getDisplayName yöntemi 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.isDpCompareToChanged iş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ş ile compareTo(), 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 AndroidComposeViews oluşturulmasını engelleyen sorun düzeltildi. (I2e23e, b/340894487, b/287484338)
  • Tek renk kullanan ve fillColor öğesi tamamen opak veya tamamen şeffaf olmayan bir drawable vektör 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)
  • onFillData ve fillableData anlamlarını tanıtma (I45d9e)
  • Platforma özgü durum kodlama artık StateRestorationTester'da her zaman etkin. 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 iptal edilir. 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 iptal edilir. 1.9.4 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Satır içi içerik, üç nokta ile kısaltılmış bölgede olmamasına rağmen çok satırlı ve üç nokta ile kısaltılmış 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)
  • debounceMillis sıfır olmadığında onLayoutRectChanged değ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 iptal edilir. 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/onLayoutRectChanged değ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 iptal edilir. 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() ve onLayoutRectChanged() artık çocukları yerleştirmek için placeWithLayer() kullanan üst düzenleri düzgün şekilde işliyor. (Ia05ac9)
  • Modifier.onVisibilityChanged() ve onLayoutRectChanged() 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 iptal edilir. 1.9.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Tek renk kullanan ve fillColor öğesi tamamen opak veya tamamen şeffaf olmayan bir drawable vektör 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 iptal edilir. 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 gradle.properties dosyanızda android.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: graphicsLayer değiştirici düğümleri artık SemanticsModifierNode'yi uyguluyor. Bu durum, anlamsal yapı ağacına yeni SemanticsNodes eklenmesine 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, onSibling ve 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üğüme bir testTag eklemektir. Bir diğer yaklaşım ise onNode(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 iptal edilir. 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 onLayoutRectChanged değ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 onLayoutRectChanged değiştiricilerinin yanlış koordinatlarla çağrılması sorunu düzeltildi (ibd4cd), (lddc57)
  • onLayoutRectChanged değiştiricileri tarafından yanlış koordinatlar alan döndürülmüş/eğri düzenlerle ilgili düzeltme (lddc57, b/426750475)

Harici Katkı (External Contribution)

  • LazyList içindeki dragAndDropSource öğ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 iptal edilir. 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 iptal edilir. 1.9.0-beta02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Sınıfla eşleşmesi için yardımcı nesneyi deneysel olarak değiştirir. (I8452a)
  • isTrackFocusEnabled deneysel işareti (I003fd) kaldırıldı

Hata Düzeltmeleri

  • WindowInsets, ComposeView içeriğini ihlal etmediğinde WindowInsetsRulers değerleri sağlanmaz. (I71221)

Sürüm 1.9.0-beta01

18 Haziran 2025

androidx.compose.ui:ui-*:1.9.0-beta01 iptal edilir. 1.9.0-beta01 sürümü bu commit'leri içerir.

Zarar Veren Değişiklikler (Breaking Changes)

  • graphicsLayer değiştirici düğümleri artık SemanticsModifierNode'yi uyguluyor. Bu durum, anlamsal yapı ağacına yeni SemanticsNodes eklenmesine 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, onSibling ve benzeri yöntemleri kullanarak onaylamalar yapan testler, mevcut düğüm ile hedef düğüm arasına yeni bir düğüm eklenirse başarısız olabilir. Bu hataları düzeltmenin tercih edilen yolu, doğrudan hedef düğüme bir testTag eklemektir. Bir diğer yaklaşım ise onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")) gibi daha esnek bir eşleştirici kullanmaktır. (I638b5)

API Değişiklikleri

  • ShadowContext, kapalı arayüz olarak değiştirildi (I3ce40).
  • Dolaylı dokunma etkinliği oluşturmak için modüller arası bir yöntem (test için) eklendi (I22e4c).
  • IndirectTouchEvent.nativeEvent deneysel hale getirir. (I6fda5)
  • API konseyi geri bildirimlerine göre API yüzeyini düzeltir. (Ibf378)
  • FrameRateCategory.NoPreference sabitini kaldırın. Modifier.requestedFrameRate filtresini Modifier.preferredFrameRate olarak yeniden adlandırın. (I2f976)
  • WindowInsetsRulers: rulersIgnoringVisibility değeri maksimuma çıkarıldı. getDisplayCutoutBounds(), PlacementScope'nin uzantı işlevi olarak değiştirildi. WindowInsetsAnimationProperties, WindowInsetsAnimation olarak, getAnimationProperties() ise getAnimation() olarak değiştirildi. (I3816f)
  • ShadowParams sınıfı Shadow olarak değiştirildi (I11cca)
  • Kare hızı API'sinin paketini androidx.compose.ui.uiandroidx.compose.ui olarak değiştirin (I8994e)
  • InsetsRulers, WindowInsetsRulers adıyla ortak kodda olacak şekilde değiştirildi. API'yi basitleştirerek tüm iç kısımların WindowInsetsRulers olmasını sağladık. Cetvel dışı animasyon özellikleri AnimationProperties sınıfına çıkarıldı. WindowInsetsRulers.innermostOf(), birden fazla WindowInsetsRulers'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 isGetFocusedRectReturnEmptyEnabled ile ilgili işaret kaldırıldı. (Ife722)
  • performScrollToNode içinde, bazı durumlarda hedef düğüme ulaşmayan bir hata düzeltildi. Bu düzeltmeyle, söz konusu durumlarda hedef düğüme her zaman ulaşılması sağlanır. Bu değişikliğin yan etkisi olarak, işlemin sonunda kaydırma konumunun tam olarak aynı olmaması nedeniyle ekran görüntüsü testleri ve kaydırma konumunun tam olarak aynı olduğu varsayımına dayalı testler etkilenir. (I2c8a1)

Sürüm 1.9.0-alpha04

4 Haziran 2025

androidx.compose.ui:ui-*:1.9.0-alpha04 iptal edilir. 1.9.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Özelleştirilebilir gölgeler için değiştirici API'leri eklendi. (I2058d, b/160665122)
  • Sınırlar hesaplanırken düğümün dikkate alınıp alınmayacağını belirleyen bir SemanticsModifierNode.isImportantForBounds özelliği ekleyin. Özellik varsayılan olarak doğrudur ve düğümün sınırlarda dikkate alınmaması gerektiğini belirtmek için yanlış olarak ayarlanabilir. (I7ebec)
  • SemanticsPropertyKey aracılığıyla kullanıma sunulan erişilebilirlik ekstraları olarak kullanıma sunulan Android'e özgü anlamsal yapı özelliklerini bildirmek için AccessibilityNodeInfo.getExtras fabrika işlevi ekleyin. (I2ed51)
  • ComposeUiFlags.isRemoveFocusedViewFixEnabled kullanımı kaldırıldı ve işaretin desteği sonlandırıldı. (I50328)
  • Yeni özelleştirilebilir gölge çerçevesi kullanıma sunuldu. DropShadowPainter ve InnerShadowPainter ile DropShadow/InnerShadow bağımlılıkları bu kapsamda yer alır. Gölge altyapısı, oluşturulan gölgelerin n kez yeniden oluşturulmasına gerek kalmadan birden fazla çağrı merkezinde paylaşılabilmesi için paylaşılır. (I24f7a, b/160665122)
  • İki gölgelendirici arasında birleştirilmiş sonuç oluşturan CompositeShader ve CompositeShaderBrush işlevleri kullanıma sunuldu. Ayrıca, gölgelendirici için bir dönüşüm matrisi ayarlamak üzere ShaderBrush#transform ekleyin. (I2621a, b/160665122)

Hata Düzeltmeleri

  • NestedScrollInteropConnection iç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, decorFitsSystemWindows = false ve usePlatformDefaultWidth = false içeren iletişim kutularının ekran kesimi bölgesini kullanabilmesi için düzeltildi. (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 iptal edilir. 1.9.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled işareti, ComposeView içinde odaklanılabilir 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 durum, özellikle bir IME'nin ComposeView ve requestFocus() başarısız olabilecek şekilde odaklanmaya çalışabileceği bir SONRAKİ seçeneği olduğunda önemlidir. (Ibd0e2, b/369256395)
  • İşaretleme özelliğini tanıtın isNestedScrollDispatcherNodeFixEnabled. (I0d24a)
  • DialogProperties' dialogContentTitle filtresini windowTitle olarak yeniden adlandırın (Ibd27b)
  • Modifier.onFirstVisible ve Modifier.onVisibilityChanged değ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, videoları otomatik oynatma gibi birçok yaygın uygulama koşulunu 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çin RelativeLayoutBounds ek API'ler de eklenmiştir. (I759b8)
  • Bu özelliğin gelecekteki geliştirme sürecini hesaba katmak için setDiagnosticStackTraceEnabled değerini deneysel olarak değiştirin. (I11db3)
  • Durum oluşturma için Modifier.scrollable2D, Scrollable2DState ve tamamlayıcı API'leri kullanıma sunun. Ayrıca, yaygın kaydırma uzantısı işlevleri de 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 ColorLongs ile karşılaştırılamaz. Android renk alanlarına dönüştürme ve bu alanlardan dönüştürme için iki yeni API eklendi: toColorLong() ve fromColorLong(). (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 iptal edilir. 1.9.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • İçerik penceresi başlığını ayarlayan dialogContentTitle ile DialogProperties'yı 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şindeki değişikliklerin VelocityTracker içinde DragGestureNode öğesine eklenme şekli düzeltildi. Bu işlem, yeni isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled işaretiyle kontrol edilebilir.254ddb

Sürüm 1.9.0-alpha01

23 Nisan 2025

androidx.compose.ui:ui-*:1.9.0-alpha01 iptal edilir. 1.9.0-alpha01 sürümü bu commit'leri içerir.

Davranış Değişiklikleri

  • Compose ile birlikte gelen hata analizi kontrolleri artık minimum 8.8.2 AGP sürümü gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine gradle.properties dosyanızda android.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)
  • InnerRectRulers ve OuterRectRules, yöntem olarak değiştirildi. RectRulers genel API'sinden ad parametresi kaldırıldı. DerivedRulers artık dikey ve yatay cetveller için bir oluşturucu seçeneği. Örnek oluşturmak için MergedHorizontalRulers ve MergedVerticalRulers yöntemlerinin yerini minOf ve maxOf yöntemleri aldı. (Iee89f, b/408192133)
  • androidx.compose.ui.LocalSavedStateRegistryOwner yerine androidx.savedstate.compose.LocalSavedStateRegistryOwner kullanılacak. (I5439f, b/377946781)
  • Ekranda içerik gösterilirken ekranın uyku moduna geçmemesi için Modifier.keepScreenOn ekleyin (Ib5af4, b/408284174)
  • Yeni bir anlamsal özellik Shape ekleyin.Bu özellik, kullanıcı arayüzü öğesinin şekli sınırlayıcı dikdörtgeninden farklı olduğunda (ör. yuvarlak köşeli dikdörtgen) ayarlanabilir. (I1376f)
  • AndroidViews içinde işaretçi etkinliği göndermeyle ilgili sorun düzeltildi ve değişiklikleri korumak için isPointerInteropFilterDispatchingFixEnabled işareti eklendi. (I0e272, b/372055500, b/408002332)
  • FocusRestorer artık daha önce odaklanılan öğeyi sabitlemiyor. Kullanıcılar, odağın başarılı bir şekilde geri yüklenmesi için daha önce odaklanılan öğenin aynı bileşim karmasına sahip olmasını sağlamak üzere bir anahtar kullanmalıdır. (I4203b, b/330696779)
  • Oluşturma özelliğinin ViewTreeObserver.OnScrollChanged tetiklemesine izin verin. Bu davranış, isOnScrollChangedCallbackEnabled işaretiyle kullanıma sunulur. Ayrıca DelegatableNode dispatchOnScrollChanged'nın bir uzantı işlevini de kullanıma sunduk. (I34b9d, b/238109286)
  • currentCompositeKeyHash desteği sonlandırıldı. Bunun yerine currentCompositeKeyHashCode politikası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)
  • FocusRequester öğesinin kompozisyon içinde hatırlanmasını sağlamak için lint kontrolü desteği eklendi (I6bf91).
  • Composable'ın oluşturulacağı tercih edilen kare hızını veya kare hızı kategorisini ayarlama özelliği eklendi (Ie5201).
  • Android'de yerel MotionEvent yayınlayın. (I17286)
  • getChecked() + setChecked(int) ekleyin, isChecked + setChecked(boolean) desteğini sonlandırın (Iaac9d)
  • graphicsLayer değiştiricisi artık blendMode ve colorFilter (Iab0e6) değerlerini kabul ediyor.
  • Kaynakları sorgulamak için LocalResources composition local eklendi. Yapılandırma değiştiğinde LocalResources.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 yakalanmamış bir istisna, test çalıştırıcısının kilitlenmesine ve test paketinin erken sonlandırılmasına neden oluyordu. Bu istisnalar artık test paketi sonlandırılmadan daha sorunsuz bir şekilde bildirilebilir. (I9928b, b/314128080)
  • Deneysel GlobalAssertions API'nin desteği sonlandırıldı. Bu özelliğin amacı, erişilebilirlik kontrolleri yapmaktı. Bunun yerine enableAccessibilityChecks() özelliğini kullanabilirsiniz. (I50aa5)
  • SemanticsNodeInteraction.performTextInputSelection artı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 bir relativeToOriginal parametresini destekler. (I3a905, b/261561038, b/277018945)
  • AnnotatedString aracılığıyla özel madde işaretli listeler oluşturmak için API'yi kullanıma sunma (I1d066, b/383269496, b/139326648)
  • runWithTimingDisabled yerine, davranışı daha net bir şekilde açıklayan runWithMeasurementDisabled'yi kullanın. Bu durumda tüm metrikler duraklatılır. Ayrıca, runWithMeasurementDisabled işlevi satır içi olduğundan erişimi açmak için yeniden tanımlamak mümkün olmadığından MicrobenchmarkScope ü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 zamanda izlemeyi değerlerle işaretlemek/günlüğe kaydetmek için izleme değeri API'sini kullanıma sunma. İzleme değerleri, Prefetto'da bir izlemenin zaman çizelgesi üzerinden görülebilen yeni bir şerit olarak gösterilir. Android'de Trace.setCounter kullanılarak uygulanır. (Idcf48)

Hata Düzeltmeleri

  • Pausable composition'da remember gözlemcilerinin gönderilmesini düzeltin. Böylece, aynı uygulama içinde hatırlanan/unutulan öğeler gönderilmez (I570b2, b/404645679, b/407931790).
  • android:dialogTheme artık decorFitsSystemWindows yanlış olduğunda iletişim kutusu özelliklerini kontrol etmek için 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 AGP sürümü 8.8.2 ve IDE desteği için en az Android Studio Ladybug gerektiriyor. AGP'nin eski bir sürümünü kullanıyorsanız Lint sürümünü AGP'yi etkilemeden yükseltmek için gradle.properties dosyasında android.experimental.lint.version=8.8.2 değerini ayarlayabilirsiniz. (I6f2a8)
  • Çıkış dönüşümü uygulanmadan önce textfield değerini yakalayan yeni bir semantik özellik InputText eklendi. (Iae46a, b/395911609, b/176949051)
  • Android'de erişilebilirlik kontrollerini etkinleştiren enableAccessibilityChecks() API'si, TestRule üzerinde çağrısı yaparken TestRule ve compose:ui:ui-test-junit4-accessibility kullanmıyorsanız compose:ui:ui-test-accessibility olan ayrı paketlere taşındı (I3c318, b/391560768).
  • LaunchedEffect ve rememberCoroutineScope'de yığın izlemeleri oluşturma desteği eklendi (I705c0, b/354163858)

Harici Katkı (External Contribution)

  • Deneysel runComposeUiTest işlevini, askıya alma engellemesini kabul edecek şekilde değiştirme. Ayrıca, ikili uyumluluk için desteği sonlandırılmış bir işlev runComposeUiTest eklendi (I3b88c, b/361577328)

Sürüm 1.8

Sürüm 1.8.3

18 Haziran 2025

androidx.compose.ui:ui-*:1.8.3 iptal edilir. 1.8.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Özellik tamamen doğrulandığından isGetFocusedRectReturnEmptyEnabled ile ilgili işaret kaldırıldı. (Ife722)
  • ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled işareti, ComposeView içinde odaklanılabilir 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 durum, özellikle bir IME'nin ComposeView ve requestFocus() başarısız olmaya ç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 iptal edilir. 1.8.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • İletişim kutusunda etkin etkinlik akışı sırasında iletişim kutusu kaldırılırken oluşan NPE düzeltildi (6a7e7f).
  • Yalnızca çizim güncellemeleri gerçekleştiğinde onLayoutRectChange düzeltmesinin, sınırlı zaman çizelgesine göre güncellenmemesi sorunu düzeltildi. (03b82d)

Sürüm 1.8.1

7 Mayıs 2025

androidx.compose.ui:ui-*:1.8.1 iptal edilir. 1.8.1 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • onLayoutRectChanged ve LazyLayout ile 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 iptal edilir. 1.8.0 sürümü bu commit'leri içerir.

1.7.0 sürümünden beri yapılan önemli değişiklikler

  • Compose 1.8, anlamsal otomatik doldurma için yeni eklenen desteği içerir. Metin bileşenleri için otomatik doldurma özelliğinin kullanılabilmesi için her iki modülün de en yeni sürümleri gerekir. Bu nedenle, kullandığınız UI ve Foundation sürümlerinin 1.8 veya daha yeni bir sürüm olduğundan emin olun. API kullanımı ve örnekleri 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ğe LocalHapticFeedback üzerinden erişilebilir. Android'de ise Vibrator API, dokunsal geri bildirimin desteklendiğini belirttiğinde bu özellik varsayılan olarak kullanılabilir.
  • Modifier.focusRestorer(), onEnter ve onExit FocusProperties (I6e667) dahil olmak üzere birden fazla Focus API artık kararlı sürümde. Artık requestFocus işlevini çağırırken FocusDirection belirtebilirsiniz. Belirli bir yönde odaklanmaya olanak tanımak için hem focusRequester hem de FocusTargetModifierNode'ye requestFocus(FocusDirection) API'si ekledik. (I5d9ec][https://android-review.googlesource.com/#/q/I5d9eca3a2cd283c1b84ad6b77d929ef9a49ce4cc], b/245755256)

Sürüm 1.8.0-rc03

9 Nisan 2025

androidx.compose.ui:ui-*:1.8.0-rc03 iptal edilir. 1.8.0-rc03 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

Sürüm 1.8.0-rc02

26 Mart 2025

androidx.compose.ui:ui-*:1.8.0-rc02 iptal edilir. 1.8.0-rc02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Compose hiyerarşisine yerleştirilmiş 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 iptal edilir. 1.8.0-rc01 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Odaklanmış bir AndroidView, sanal klavye etkinken kaldırıldığında yaşanan kilitlenme sorunu düzeltildi. (Ic725a)
  • Yeni odak durumu işleme uygulamasındaki birkaç sorun düzeltildi. (b/395895685)
  • LaunchedEffect tuş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 iptal edilir. 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ız compose:ui:ui-test-accessibility, TestRule çağrılırken ise compose:ui:ui-test-junit4-accessibility olan ayrı paketlere taşındı (I547ef, b/391560768).
  • Çıkış dönüşümü uygulanmadan önce bir metin alanının değerini yakalayan yeni bir semantik özellik InputText eklendi. (Iae46a)

Hata Düzeltmeleri

  • Otomatik doldurma hizmetlerinin giriş metni yerine dönüştürülmüş çıkış metnini kaydetmesine neden olan sorun düzeltildi. (Iae46a, b/395911609, b/176949051)

Sürüm 1.8.0-beta02

12 Şubat 2025

androidx.compose.ui:ui-*:1.8.0-beta02 iptal edilir. 1.8.0-beta02 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Configuration#screenWidth/heightDp çağrılarına karşı uyarı veren bir lint kontrolü eklendi. Mevcut pencere boyutunu almak için bunun yerine LocalWindowInfo.current.containerSize kullanılabilir.

Sürüm 1.8.0-beta01

29 Ocak 2025

androidx.compose.ui:ui-*:1.8.0-beta01 iptal edilir. 1.8.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ContextualFlowRow ve ContextualFlowColumn, 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.
    • FlowRow ve FlowColumn, 1.7 sürümünde kullanıma sunulan ve overflow parametresini 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.
    • ContextualFlowRow için birçok kullanım alanı FlowRow kullanılarak gerçekleştirilebilir ancak bunun her durumda geçerli olmadığını kabul ediyoruz. ContextualFlowRow, kullanıcı alanında tamamen uygulanabilir ve istenirse uygulaması kopyalanıp uyarlanabilir. Gelecekte bu kullanım alanlarını farklı bir şekilde çözmeyi umuyoruz. (Ibafec)
  • SemanticsNodeInteraction.semanticsId() kaldırıldı. Bunun yerine SemanticsNodeInteraction.fetchSemanticsNode().id politikasını kullanın. (Ie397a)
  • Eski otomatik doldurma API'lerinin desteği sonlandırıldı. Bunun yerine yeni anlamsal API'yi kullanın. (I943ff)
  • Otomatik doldurma yöneticisinin dışında bulunacak şekilde requestAutofill API'yi yeniden yazın. (Id1929)

Hata Düzeltmeleri

  • Anlamsız bir previouslyFocusedRect parametresi (odak yönüyle ilgili) içeren requestFocus() öğesinin ComposeView öğ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() bu şekilde kaydediyorsanız DrawScope içinde GraphicsLayer#record uzantı işlevini kullandığınızdan emin olun. GraphicsLayer üzerinde üye işlevini kullanmayın. (I75fc0, b/389046242)
  • Üç nokta içeren metin düzeninin, animasyonlar sırasında bazen yanlış çevrilmesi sorunu düzeltildi. Daha fazla bilgi için b/389707025 adresini inceleyin (Ie55b1, b/389707025).

Sürüm 1.8.0-alpha08

15 Ocak 2025

androidx.compose.ui:ui-*:1.8.0-alpha08 iptal edilir. 1.8.0-alpha08 sürümü bu commit'leri içerir.

API Değişiklikleri

  • AutofillManager öğesini soyut sınıf yapma. (I0a3b0)
  • IME'nin odaklanılabilir öğeler olmadan ComposeView öğesine odaklanmaya çalıştığında kilitlenme, alt AndroidViews öğesinde odak değişikliği ve odaklanma isteğinin AndroidView öğesini bırakması gibi odaklanmayla ilgili çeşitli sorunlar düzeltildi. (Ia03c3, b/369256395, b/378570682, b/376142752)
  • FocusEnterExitScope.cancelFocus() kelimesini cancelFocusChange() 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.setContent kullanılırken test edilen composable'ın ana öğesi olarak kullanılan etkinlik, artık SDK 35'i hedeflerken ActionBar öğesinin test içeriğiyle çakışmasını önlemek için Theme.Material.Light.NoActionBar temasını kullanıyor. Bu davranışı devre dışı bırakmak için ui-test-manifest bağımlılığını kaldırabilir ve test uygulamanızın AndroidManifest.xml dosyasına, istediğiniz temayla birlikte ComponentActivity için bir etkinlik girişi ekleyebilirsiniz. (I7ae1b, b/383368165)
  • Aynı varyasyon ayarlarına sahip kaynak yazı tipleri artık yanlış varyasyon ayarlarının uygulanmasına neden olan aşırı önbelleğe almayı önleyecek. (If3dff, b/372044241)
  • AnnotatedString.fromHtml artık <ul>/<li> etiketlerini destekliyor. (I7c2fe, b/299662276, b/139326648)

Harici Katkı (External Contribution)

  • Yeni bir pano arayüzü ve bunun için bir kompozisyon yereli eklendi. (I80809)

Sürüm 1.8.0-alpha07

11 Aralık 2024

androidx.compose.ui:ui-*:1.8.0-alpha07 iptal edilir. 1.8.0-alpha07 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Araçlar için LayoutNode alanından sahibi gösterildi. (I26f7f)
  • LocalAutofillHighlightColor kompozisyonunun yerel kullanımında renk türü kullanılıyor. (I0e05b)
  • Desteği sonlandırılan UrlAnnotation ve yöntemleri deneysel olarak işaretlenmeye devam eder. (Ic0021)

Hata Düzeltmeleri

  • BasicText veya Text composable içinde LinkAnnotation kullanılırken IndexOutOfBoundsException kilitlenmesi sorunu düzeltildi (be7605, b/374115892).
  • Özel şekilli doldurulmuş metin alanlarının gösterge çizgisini kırpmaması sorunu düzeltildi. (I4f87f, b/380704151)
  • Uzun ekran görüntülerinde eksik arka planlar düzeltildi. (I4d57a)
  • Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için ş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ş gamut ve HDR renkleri için Compose desteği güncellendi. (Icd8be, b/379135036)
  • Yüklenemeyen kaynak yazı tipleri, artık ölçüde istisna oluşturmak yerine varsayılan yazı tipine sessizce geri dönecek. (Ib6a49)
  • AndroidView ayrı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ı (External Contribution)

  • Görünüme Getir işlevini uygulamak için yeni bir yol sunan ve platform düzeyinde uygulamaya olanak tanıyan BringIntoViewResponderModifierNode öğesini kullanıcı arayüzüne ekleyin. (Ia6dd8)

Sürüm 1.8.0-alpha06

13 Kasım 2024

androidx.compose.ui:ui-*:1.8.0-alpha06 iptal edilir. 1.8.0-alpha06 sürümü bu commit'leri içerir.

API Değişiklikleri

  • stylusHoverIcon değiştiricisini ekler. (Iff20a, b/331289114)
  • Otomatik doldurma yöneticisini arayüz olarak değiştirir. (I84914, b/376080755)
  • Belirli bir yöne odaklanmaya olanak tanımak için hem focusRequester hem de FocusTargetModifierNode öğesine requestFocus(FocusDirection) eklendi. (I5d9ec, b/245755256)
  • FocusProperties.enter ve FocusProperties.exit, FocusDirection parametresi yerine alıcı kapsamı kullanan onEnter ve onExit ile değiştirildi. (I6e667)
  • Metin araç çubuğuna otomatik doldurma desteği eklendi. (Ie6a4c)
  • Modifier.focusRestorer() ile ilgili API değişiklikleri (I99c03):
    • parametre adı "fallback" olarak değiştirildi
    • parametresi artık lambda değil, FocusRequester
    • parametresi artık varsayılan değer olarak Default ile NULL olmayan bir değerdir.
  • Otomatik doldurma yöneticisi arayüzünden @Experimental ek 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.
  • LocalHapticFeedback artık Vibrator API, dokunma teknolojisinin desteklendiğini belirttiğinde varsayılan bir HapticFeedback uygulaması sunuyor. Aşağıdakiler HapticFeedbackType - Confirm, ContextClick, GestureEnd, GestureThresholdActivate, Reject, SegmentFrequentTick, SegmentTick, ToggleOn, ToggleOff, VirtualKey adresine eklendi. Wear Compose'daki Button, IconButton, TextButton ve Card gibi uzun tıklanabilir bileşenler, uzun tıklama işleyici sağlandığında artık LONG_PRESS dokunsal geri bildirimini veriyor. (I5083d)
  • Varsayılan kaydırma sonu uygulamasının bir örneğini oluşturmak veya parametrelerini özelleştirmek için OverscrollConfiguration ve LocalOverscrollConfiguration kaldırılır, rememberPlatformOverscrollFactory eklenir. Aşırı kaydırmayı devre dışı bırakmak için LocalOverscrollConfiguration provides null yerine LocalOverscrollFactory provides null kullanın. Işıma rengini / dolgusunu değiştirmek için LocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding) yerine LocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding) kullanın. (Ie71f9, b/255554340, b/234451516)
  • Deneysel GlobalAssertions API'si kaldırıldı. Bu özellik, erişilebilirlik kontrolleri yapmak için tasarlanmıştır. Bunun yerine enableAccessibilityChecks() özelliğini kullanın. (I59322)

Sürüm 1.8.0-alpha05

30 Ekim 2024

androidx.compose.ui:ui-*:1.8.0-alpha05 iptal edilir. 1.8.0-alpha05 sürümü bu commit'leri içerir.

Yeni Özellikler

Otomatik doldurma, bu sürümde bir özellik bayrağının arkasında kullanıma sunulur. 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 onCreate içinde ComposeUiFlags.isSemanticAutofillEnabled değ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 doldurmayı da destekler. Otomatik doldurma işlemi tamamlandığında bileşen vurgulanır.

API Değişiklikleri

  • Otomatik doldurma arayüzünü expect/actual yapısına uygun şekilde değiştirin. (I22dce)
  • Otomatik doldurma özelliğinin başarılı doldurma vurgusunun tonunu değiştirmek için kullanılabilecek CompositionLocal simgesini kullanıma sunduk. (I32092)
  • Modifier.onRectChanged API'si eklendi. Bu API, LayoutNode öğesinin kök/pencere/ekrana göre konumuna ve boyutuna abone olmaya olanak tanır. API, mevcut onGloballyPositioned değiştiricisinin çö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() ve cancel() API'lerini içerecek şekilde genişletir. (I2da00)
  • Kullanıcıların otomatik doldurma yolculuğuna ince ayar yapmak için kullanılabilecek yeni bir AutofillManager arayüzü ve otomatik doldurmanın bu yeni sürümünü etkinleştirmek için bir isSemanticAutofillEnabled işareti sunar. (I9d484)
  • Modifier.onRectChanged API'si eklendi. Bu API, bir LayoutNode öğesinin kök/pencere/ekrana göre konumuna ve boyutuna abone olmaya olanak tanır. API, mevcut onGloballyPositioned değiştiricinin çözdüğü birçok kullanım alanını çözer ancak bunu çok daha az ek yükle yapar ve API, kullanım alanının gerektirdiği şekilde geri çağırmayı sekmeyi kaldırma ve kısıtlama olanaklarıyla birlikte gelir. (I3c8fa)
  • Genişletilmiş otomatik doldurma desteği için anlamsal özellikler ve veri türleri ekleyin. (I52c7d)
  • AnnotatedString oluşturucudaki tüm yöntemler artık deneysel değildir (Ia89c8, b/261561823)

Hata Düzeltmeleri

  • Oluşturma işlemine yerleştirilen görünümler 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).
  • API 35 ve sonraki sürümlerin hedeflenmesi artık iletişim kutularında decorFitsSystemWindows değ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 iptal edilir. 1.8.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • DelegatableNode#onDensityChange ve DelegatableNode#onLayoutDirectionChange geri ç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#containerSize ekler. Bu bilgi, LocalWindowInfo kullanı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 onPostFling etkinliğini doğru şekilde gönderecek. Ayrıca, gerileme durumunda davranışı kontrol etmek için NewNestedScrollFlingDispatchingEnabled işaretini de 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ştiricinin dokunma sınırlarını büyütmek için kullanılabilecek PointerInputModifierNode#touchBoundsExpansion işareti eklendi. (Iccf02, b/335339283)
  • Geçerli pencerenin içerik kapsayıcı boyutunu sağlamak için WindowInfo#containerSize ekler. Bu bilgi, LocalWindowInfo kullanılarak alınabilir. (I27767, b/369334429, b/360343819)
  • Kararlı temel sürümüne sabitlemek için readOnly'yı TextFields'den kaldırın. (I3aaba)
  • Paragraph ve ParagraphIntrinsics artık AnnotatedString öğesine uygulanan tüm ek açıklamaların listesini alıyor. Daha önce yalnızca SpanStyles listesi vardı (I12f80).

Hata Düzeltmeleri

  • AnnotatedString içinde paragrafların işlenme şekli güncellendi. Daha önce yalnızca çakışmayan paragraflar oluşturabiliyordunuz. Artık AnnotatedString, 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).
  • AnnotatedString dosyasındaki kilitlenmeyi sıfır uzunluklu LinkAnnotation ile düzeltin. (89aac6)

Sürüm 1.8.0-alpha03

2 Ekim 2024

androidx.compose.ui:ui-*:1.8.0-alpha03 iptal edilir. 1.8.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Kotlin sürümü 1.9'a 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() filtresini hideFromAccessibility olarak yeniden adlandırın. İşlevi aynıdır. Daha fazla bilgi için dokümanlara bakın. (Ib43a3)

Hata Düzeltmeleri

  • SensitiveContent değ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'de clearFocus(), varsayılan View'un odaklanmasına neden olabilir.
  • Farklı düzen geçişleri için alt bileşen yönetimini ayırarak LazyList içinde yerleşimin ayrılmış düğümlerde gerçekleşmesine neden olan sorun düzeltildi.
  • Odak TextField'dan EditText'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, ayrıldıktan sonra artık onPostFling etkinliklerini doğru şekilde gönderiyor.
  • Genel performans iyileştirmeleri

Sürüm 1.8.0-alpha02

18 Eylül 2024

androidx.compose.ui:ui-*:1.8.0-alpha02 iptal edilir. 1.8.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • TextOverflow.StartEllipsis ve TextOverflow.MiddleEllipsis artı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 dismissOnClickoutside ile ilgili sorunları düzeltin (39a3d, b/364508685)
  • İletişim kutusu içeriğinin gölgelerini kırpmayın (e8e2f, b/363027803)
  • Odak arama, Oluştur ve Görünüm arasında hareket ederken oluşan hatalı davranış düzeltildi (58377, b/350534714).

Harici Katkı (External Contribution)

  • AlignmentLines Map artık VerticalAlignmentLine veya HorizontalAlignmentLine beton türlerini kabul ediyor. (I02912)
  • Yeni ortak ByteArray.decodeToImageBitmap(): ImageBitmap yöntemi. (I83c21)

Sürüm 1.8.0-alpha01

4 Eylül 2024

androidx.compose.ui:ui-*:1.8.0-alpha01 iptal edilir. 1.8.0-alpha01 sürümü bu commit'leri içerir.

Sürüm 1.7

Sürüm 1.7.8

12 Şubat 2025

androidx.compose.ui:ui-*:1.7.8 iptal edilir. 1.7.8 sürümü bu commit'leri içerir.

Sürüm 1.7.7

29 Ocak 2025

androidx.compose.ui:ui-*:1.7.7 iptal edilir. 1.7.7 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • LinkAnnotation ile AnnotatedString öğesini Text composable'a aktarırken IndexOutOfBoundsException sorunu düzeltildi. (Ic96d2)
  • AnnotatedString içinde LinkAnnotation kullanı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 iptal edilir. 1.7.6 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Daha önce, odak sisteminde bekleyen geçersiz kılma işlemleri olduğunda önemli bir etkinlikle karşılaştığımızda hata veriyorduk. Artık bunun yerine bir hata kaydediyoruz (I7ea0, b/346370327).
  • SemanticsPropertyReceiver.invisibleToUser() öğesinden deneysel ek açıklama kaldırıldı. Bu işlev, 1.8 sürümünde kullanımdan kaldırılacak ve yerine SemanticsPropertyReceiver.hideFromAccessibility() işlevi eklenecek. (I448f0, b/376479686)
  • Belirli eski Sony cihazlarda POBox Japonca klavyesi kullanılırken TextField'nın düzgün çalışmasını engelleyen sorun düzeltildi. (I94e0e, b/373743376)
  • BasicText öğesinin inlineContent'inin TalkBack tarafından duyurulmamasına neden olan erişilebilirlik sorunu düzeltildi. (I67bcb, b/376479686)

Sürüm 1.7.5

30 Ekim 2024

androidx.compose.ui:ui-*:1.7.5 iptal edilir. 1.7.5 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Ö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 LinkAnnotation ile oluşan metin kilitlenmesi düzeltildi. (Ic1e2e)
  • Tıklanabilir bir Text composable olarak oluşturulduğunda düğmenin Talkback bölümündeki duyuruyu düzeltir. (I1f588)

Sürüm 1.7.4

16 Ekim 2024

androidx.compose.ui:ui-*:1.7.4 iptal edilir. 1.7.4 sürümü bu commit'leri içerir.

Sürüm 1.7.3

2 Ekim 2024

androidx.compose.ui:ui-*:1.7.3 iptal edilir. 1.7.3 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Genel bir ana hat klibi belirtmenin, belirli Android sürümlerinde boş bir klip sınırına yol açmasıyla ilgili sorun düzeltildi.
  • IME, harici bir görünümde etkinken ve ComposeView üzerinde odaklanmak için Sonraki işlemi kullanıldığında oluşan istisna düzeltildi. clearFocus() davranışı, API < 28'deki View davranışı ile uyumludur. Bu API'de clearFocus(), varsayılan View'un odaklanmasına neden olabilir.
  • İleriye dönük geçersiz kılma için yanlış placeOrder kullanı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 iptal edilir. 1.7.2 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Ayrıntılı izleme kaldırıldığından erişilebilirlik düğümü bilgisi ve semantik etkinliklerinin performansı iyileştirildi. (I89156, b/362530618)
  • ComposeView, çok büyük bir ölçüm boyutu (da5db, b/347036173) iletildiğinde artık kilitlenmeyecek.
  • Erişilebilirlik ekran okuyucusuyla ilgili, düğmelerdeki LiveRegion duyurularının yapılmamasına neden olan sorun düzeltildi. (f66fa7, b/348590026)

Sürüm 1.7.1

10 Eylül 2024

  • Android yapıları değiştirilmez. -desktop yapı kaldırıldı, -jvmStubs ve -linuxx64Stubs yapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar.

Sürüm 1.7.0

4 Eylül 2024

androidx.compose.ui:ui-*:1.7.0 iptal edilir.

1.6.0 sürümünden beri yapılan önemli değişiklikler

1.7.0 sürümündeki önemli değişiklikler bu blog yayınında ele alınmıştır.

Sürüm 1.7.0-rc01

21 Ağustos 2024

androidx.compose.ui:ui-*:1.7.0-rc01 iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.

Önemli değişiklikler

  • ui:ui modülü artık foundation:foundation'ın en az 1.7.0-rc01 veya daha yeni bir sürümünü gerektiriyor. Bu, 1.7.0-alpha01 sürümünün başlarında yapılan NestedScrollSource değişiklikleriyle ilgili olarak kullanıcı arayüzü 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 iptal edilir. 1.7.0-beta07 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Metin girişiyle ilgili SemanticsNodeInteraction, performTextReplacement, performTextInput ve performTextClearance işlevleri artık salt okunur TextFields üzerinde çağrıldığında onaylama hataları verecek. (I4ae8f)

Sürüm 1.7.0-beta06

24 Temmuz 2024

androidx.compose.ui:ui-*:1.7.0-beta06 iptal edilir. 1.7.0-beta06 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta05

10 Temmuz 2024

androidx.compose.ui:ui-*:1.7.0-beta05 iptal edilir. 1.7.0-beta05 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Yazılım klavyesinin değiştirilmesinin, odak kaybedilip yeniden kazanılana kadar TextField öğesinin yeni klavyeden giriş kabul etmemesine neden olan hata düzeltildi.
  • Katman içeriklerini kalıcı hale getirme girişimlerinin, SurfaceView iç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 iptal edilir. 1.7.0-beta04 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Çok büyük metin satırları (ör. 10.000 karakter) ölçülürken kilitlenmelerin önüne geçildi (8157ab).
  • GraphicsLayer API'si için yazılım oluşturma desteğini devre dışı bırakın. (35ddd8)
  • Katman kalıcılığı mantığındaki kilitlenme düzeltildi. (70b13e)
  • Katman nesnelerini yeniden kullanma optimizasyonu, oluşturma sorunlarına neden olduğu için geri alındı. (70b13e)

Sürüm 1.7.0-beta03

12 Haziran 2024

androidx.compose.ui:ui-*:1.7.0-beta03 iptal edilir. 1.7.0-beta03 sürümü bu commit'leri içerir.

Sürüm 1.7.0-beta02

29 Mayıs 2024

androidx.compose.ui:ui-*:1.7.0-beta02 iptal edilir. 1.7.0-beta02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • SemanticsProperties.Editable, IsEditable olarak yeniden adlandırıldı ve SemanticsPropertyReceiver.editable, isEditable olarak değiştirildi. Özellik artık bir Boole değeridir ve her zaman metin alanlarıyla belirtilir. (I8acd8)
  • Erişilebilirlik karşılaştırması parametresini yeniden adlandırın. (I3d440)
  • Bağlantıları stilize etmek için API güncellendi: TextLinkStyles artık LinkAnnotation oluşturucusunun ve AnnotatedString.fromHtml yönteminin (I90b2b) bir parçası. Ayrıca TextDefaults, materyalden (I5477b) kaldırıldı.

Hata Düzeltmeleri

  • Amacını daha iyi yansıtması için LayoutCoordinates.introducesFrameOfReference, LayoutCoordinates.introducesMotionFrameOfReference olarak 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 iptal edilir. 1.7.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • performCustomAccessibilityActionLabelled, performCustomAccessibilityActionWithLabel olarak, performCustomAccessibilityActionWhere ise performCustomAccessibilityActionWithLabelMatching olarak yeniden adlandırıldı. (I5387f)
  • AnnotatedString.hasEqualsAnnotations artık hasEqualAnnotations (I685c0)
  • Metinde Material temalı bağlantıları alma API'si güncellendi. Özellikle, temalı LinkAnnotations oluşturmak ve temalı bağlantılarla HTML ayrıştırmak için TextDefaults yöntemleri kaldırıldı. Bunun yerine, bağlantıları Text composable'a parametre olarak stilize etmeye olanak tanıyan bir TextLinkStyles sı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 iptal edilir. 1.7.0-alpha08 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Değiştirilebilir şekil uygulamaları için destek eklenir. Shape#createOutline artık grafik katmanlarında gözlemleniyor. Bu nedenle, durum değiştiğinde içindeki durum değerlerinin okunması geçersiz kılmaya neden olacak ve daha iyi performans gösteren şekil animasyonlarına olanak tanıyacak. (Id1629, b/326070216)
  • isPositionedByParentWithDirectManipulation, introducesFrameOfReference olarak yeniden adlandırıldı. Bu ayarın artık ters etki gösterdiğini unutmayın. Yani varsayılan olarak çoğu LayoutCoordinates, bir referans çerçevesi sunar ve yalnızca doğrudan manipülasyon altında yerleştirildiğinde özellik yanlış olur. Yalnızca referans çerçevesi sunanlarla konum sorgulamak için positionInLocalFrameOfReference(...) kullanın. Veya LookaheadScope positionInLocalLookaheadFrameOfReference. (Ifc5f7)
  • LookaheadScope API'ler kararlı hale getirildi (I21507)
  • API konseyinin geri bildirimine göre getScrollViewportLength için işlem lambda'sını değiştirin. (Ibc74a)
  • GraphicsLayer Ana hat API'leri, int yerine kayan nokta parametrelerini kullanacak şekilde güncellendi. Kayan nokta tabanlı Offset ve Size satır içi sınıflarında (I2fb03, b/333863462) zaten mevcut olan Belirtilmemiş sabitler lehine UnsetOffset/UnsetSize IntSize sentinel değerleri kaldırıldı.
  • Testler sırasında fare girişi yerleştirilirken MouseInjectionScope.click(), MouseInjectionScope.doubleClick(), MouseInjectionScope.tripleClick(), MouseInjectionScope.longClick() artık daha evrensel olarak uygulanabilir hale getirmek için button: MouseButton parametresini kabul ediyor. Tüm yöntemler için varsayılan değer MouseButton.Primary'dır. (I31a23, b/190493367, b/261439695)
  • LinkInteractionListener içinde onClicked, onClick olarak yeniden adlandırıldı. (Iaa35c)
  • TextInclusionStrategy.isInside filtresini isIncluded olarak yeniden adlandırın. Paragraph/MultiParagraph#getRangeForRect() dönüş türünü null yapılamaz hale getirin. (I51f26)

Hata Düzeltmeleri

  • reverseScrolling=true içeren kaydırma kapsayıcıları için uzun ekran görüntüsü alma sorunu düzeltildi. (I7c59c)

Harici Katkı (External Contribution)

  • İç içe yerleştirilmiş LazyLists öğelerinin (ör. iç içe yerleştirilmiş LazyRows öğelerini oluşturmak için kullanılan LazyColumn) önceden getirilmesi için destek eklendi. Bu değişikliğin, bu LazyLists öğ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ış, yeni LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) ve LazyListPrefetchStrategy#onNestedPrefetch API'leri ile kontrol edilebilir. (I51952)

Sürüm 1.7.0-alpha07

17 Nisan 2024

androidx.compose.ui:ui-*:1.7.0-alpha07 iptal edilir. 1.7.0-alpha07 sürümü bu commit'leri içerir.

API Değişiklikleri

  • ClickableText desteği sonlandırıldı olarak işaretlenir. Metne bağlantı eklemek için bağlantınıza karşılık gelen bir LinkAnnotation ile AnnotatedString oluşturun ve bu AnnotatedString öğesini Text composable'a iletin. (I34d4b, b/323346994)
  • El yazısı hareketleri için ViewConfiguration.HandwritingGestureLineMargin özelliğini kullanıma sunuyoruz. BasicTextField için JoinOrSplit hareketini destekleme (Ie6e13, b/325660505)
  • FocusProperties.enter ve FocusProperties.exit artık deneysel değil. FocusDirection.Enter ve FocusDirection.Exit artık deneysel değil. FocusRequester.Cancel artık deneysel değil (I461a1, b/261564106)
  • Düzen koordinatlarını sorgularken artık excludeDirectManipulationOffset bağımsız değişkenini kullanarak, çocuklarını Placeable.PlacementScope.withDirectManipulationPlacement ile yerleştiren üst düzenler tarafından belirlenen ofseti hariç tutabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir düzen artık bunları withDirectManipulationPlacement kullanarak yerleştirebilir (ör. varsayılan olarak uygulanan kaydırma). Bu sayede, approachLayout tabanlı animasyonlar daha sezgisel hale gelir. Artık animasyon oluşturulacak ofseti ve yaklaşımına animasyon eklemeye karar verirken doğrudan uygulanacak öğeyi ayırt etme fırsatı sunulur. (I60ec7)
  • Uzun ekran görüntüleri için özellik bayrağı kaldırıldı. (I28648, b/329128246)
  • LazyColumn artık uzun ekran görüntülerinde sabit başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)
  • NestedScroll kaynakları, animasyonları (Side Effect) ve fare tekerleği ile klavyeyi (UserInput) de içerecek şekilde genişletilen bu kaynakların tanımına uyum sağlamak için UserInput ve SideEffect ile değiştiriliyor. (I40579)
  • ApproachLayoutModifierNode ve Modifier.approachLayout artık kararlı sürümde. Eski isMeasurementApproachComplete() ve isPlacementApproachComplete() sırasıyla yeni isMeasurementApproachInProgress() ve isPlacementApproachInProgress() ile değiştirildi.
  • Kullanımdan kaldırılan intermediateLayout değiştiricisi kaldırıldı. (I3e91c)
  • RenderNode ve Picture gibi Displaylist destekli API'lerin begin/endRecording yöntemlerini yansıtmak için GraphicsLayer#buildLayer öğesini record olarak yeniden adlandırın.
  • rememberGraphicsLayer, rememberObserver'dan yararlanacak şekilde güncellendi. (I312c1, b/288494724, b/330758155)
  • UrlAnnotation desteği sonlandırıldı. Bunun yerine LinkAnnotation.Url kullanın. Material temalandırma kullanıyorsanız Material temalandırmanın uygulandığı ek açıklamayı oluşturmak için TextDefaults nesnesini kullanın (I8d180, b/323346545).
  • Metin bağlantıları, normal stilin yanı sıra basılı durum stili seçeneğine, fareyle üzerine gelme ve odaklanma seçeneklerine de sahip oldu (I5f864, b/139312671).
  • String.parseAsHtml, AnnotatedString.Companion.fromHtml olarak yeniden adlandırıldı. (I43dcd)
  • parseAsHtml yöntemine stil oluşturma bağımsız değişkenleri (linkStyle, focusedLinkStyle, hoveredLinkStyle) ve bir bağlantı etkileşimi dinleyicisi eklendi. HTML etiketli dizeyi <a> etiketleriyle ayrıştırırken yöntem, bu tür her etiket için bir LinkAnnotation.Url oluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her bir ek açıklamaya iletir. (I7c977)
  • LinkAnnotation artık duruma dayalı stil oluşturma bağımsız değişkenlerini ve bir LinkInteractionListener alır. Köprü almak için bu ek açıklamayı AnnotatedString öğesine ekleyin. focusedState ve/veya hoveredState parametrelerini ileterek bağlantılar odaklandığında ve/veya üzerine gelindiğinde bağlantıların görsel configuration özelliğini tanımlayabilirsiniz. (I81ce4, b/139312671)
  • ImeOptions.hintLocales artık boş değer içerebilir değil. Boş bir yerel ayar listesi iletmek istiyorsanız lütfen LocaleList.Empty kullanı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 ayrılma arasında) başka bir işaretçi girişi değiştiriciden önce dinamik olarak bir işaretçi girişi değiştirici eklendiğinde beklenmeyen işaretçi etkinlikleri düzeltilir.

Sürüm 1.7.0-alpha06

3 Nisan 2024

androidx.compose.ui:ui-*:1.7.0-alpha06 iptal edilir. 1.7.0-alpha06 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Stil verilmiş dizeler için parseAsHtml yöntemi eklendi: Bu yöntem, HTML etiketleriyle işaretlenmiş bir dizeyi AnnotatedString biçimine dönüştürmeye olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde işaretli listeleri görüntüleyemezsiniz. (I84d3d, I30626, b/139326648)
  • Resmi Android API'si kullanılarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı (ScrollCaptureCallback). Bu özellik deneyseldir ve şu anda tüm durumları doğru şekilde ele almayabilir. Bu nedenle, bu özellik şu anda varsayılan olarak devre dışıdır. Bu özelliği etkinleştirmek için ComposeFeatureFlag_LongScreenshotsEnabled bayrağını true olarak ayarlayın. (I2b055, b/329296471)

API Değişiklikleri

  • fun ClipEntry.getMetadata(), val ClipEntry.clipMetadata olarak değiştirildi. (I50155)
  • ClipboardManager.getClipMetadata ve ClipboardManager.hasClip işlevleri kaldırıldı. Lütfen mevcut klip girişinin meta verilerini okumak için clipEntry.getMetadata() kullanın. Ayrıca, panoda geçerli bir klip olup olmadığını anlamak için ClipboardManager.getClip sonucunun boş olup olmadığını da kontrol edin. (I50498)
  • Artık GraphicsLayer nesnelerini placeable.placeWithLayer() işlevlerine iletebilirsiniz (I1b22f)
  • ClipboardManager.setClip artı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#toImageBitmap askıya alma yöntemi eklendi. Bu yöntem, bit eşlem içeriklerinin GraphicsLayer içine işlenmesini destekler. 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 öğesini ComposeRect öğesine dönüştürmek için yardımcı yöntem (I39925, b/325660505)
  • Tüm KeyboardOptions parametreleri artık varsayılan olarak belirtilmemiş bir değere sahip. KeyboardOptions.merge yöntemi eklendi.
  • KeyboardOptions.autoCorrect, autoCorrectEnabled olarak 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ı ve BasicSecureTextField, artık yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için KeyboardActions yerine KeyboardActionHandler kullanıyor. (I58dda)

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.ui:ui-*:1.7.0-alpha05 iptal edilir. 1.7.0-alpha05 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Çizim komutlarını bir görüntüleme listesine kaydetmek için yeni bir GraphicsLayer API'nin yanı sıra görüntüleme listesinin oluşturulmasını etkileyen ek özellikleri kullanıma sunuyoruz. Bu, karmaşık bir sahneyi daha küçük parçalara bölmek için bir izolasyon sınırı sağlar. Bu parçalar, sahnenin tamamı yeniden oluşturulmadan birbirinden bağımsız olarak güncellenebilir. GraphicsLayer üzerinde yapılan dönüşümler, görüntüleme listesi yeniden kaydedilmeden gerçekleştirilebilir. Modifier.graphicsLayer'dan farklı olarak GraphicsLayer, 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 yerine DrawScope.drawLayer(GraphicsLayer) uzantı işlevini kullanın. (I7a7c0)
  • restrictedConstraints(), fitPrioritizingWidth() ve fitPrioritizingHeight() olmak üzere iki yönteme bölündü (I6d7fd)
  • Android L kullanımına yönelik HardwareCanvas kaba kodu kullanıma sunuldu (I1c3b5, b/288494724)
  • Compose çerçevesini, GraphicsContext kompozisyon yerelini gösterecek şekilde güncelleyin. Ayrıca, Owner, DelegateableNode ve drawWithCache Modifier uygulamalarını, kapsamlı erişim için GraphicsContext erişimini gösterecek şekilde güncelleyin. Bu sayede, Modifier'lar kaldırıldığında GraphicsLayer ö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 InterceptPlatformTextInput tanıtıldı. PlatformTextInputTestOverride desteği sonlandırıldı. (I862ed, b/322680547)
  • GraphicsLayer.setOutline(Outline) uzantı işlevi eklendi. (Ib81f4)
  • GraphicsLayer örnekleri oluşturmak için fabrika oluşturmak üzere GraphicsContext işlev oluşturucusunu kullanıma sunma (Ib98d6, b/288494724)
  • Çizim komutlarını yakalamada geliştirici tanımlı esneklik sağlamak için GraphicsLayer API'si kullanıma sunuldu. Bu komutlar başka yerlerde çizim yapmak ve sonuca farklı görsel efektler uygulamak için kullanılabilir. (I80245, b/288494724)
  • Belirli bir dikdörtgen alanla kaplanan metin aralığını döndüren Paragraph#getRangeForRect işlevini kullanıma sunuyoruz. (Iee516, b/325660505)
  • BasicText bağımsız değişkeninin onLinkClicked bağı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 GraphicsLayer expect/actual API tanımı eklendi. GraphicsContext arayüzünü kullanıma sunarak GraphicsLayer örneklerinin oluşturulması ve yönetilmesi de dahil olmak üzere grafik bağımlılıklarını yönetin. (I4a8d6, b/288494724)
  • Odaklanmanın diğer görünümlerin arasına yerleştirilmiş bir ComposeView içinde takılı kalmasına neden olan 1D odak aramayla ilgili birlikte çalışabilirlik sorunu düzeltildi. (I08fd4)

Harici Katkı (External Contribution)

  • LocalLifecycleOwner, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzü dışında kullanılabilmesi için Compose kullanıcı arayüzünden lifecycle-runtime-compose'e 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ıma sunun. (I69f0f, b/328088992)

Sürüm 1.7.0-alpha04

6 Mart 2024

androidx.compose.ui:ui-*:1.7.0-alpha04 iptal edilir. 1.7.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Android U sürümünden sonraki cihazlarda BasicTextField2 için ekran kalemiyle el yazısı özelliğini destekleyin. (I002e4)
  • Bu CL'de, Compose'da kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için GetScrollViewportLength semantik işlemini ekliyoruz. Bu CL, söz konusu özelliğin Foundation Scrollable Lists'te kullanımını da uygular. (Ic5fa2)
  • FocusRequester.createRefs artık kararlı (I4d92c, b/261436820)
  • Değiştirici düğümlerin, kompozisyon yereli okunmadan mevcut Android View sürümünü almasına olanak tanıyan DelegatableNode.requireView() işlevi kullanıma sunuldu. (I40768)
  • Bir yolun yönünü tersine çevirmek için yeni API Path.reverse() (I36348)
  • hintLocales, KeyboardOptions'ye olarak eklendi. Böylece TextFields, belirli yerel ayarlara sahip IME'lere ipucu vererek önceden tercih edilen bir dil ayarlayabilir.
  • Temel alınan platform nesnesini (ör. java.util.Locale) döndüren Locale öğesinden platformLocale özelliğini kullanıma sunun. (I921c6)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.ui:ui-*:1.7.0-alpha03 iptal edilir. 1.7.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Maksimum Satır ve Taşma ile ContextualFlowRow ve Gelişmiş FlowRow/Column ile tanışın. FlowRow ve FlowColumn deneysel özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artık maxLines ve taşma desteğinin yanı sıra ContextualFlowRow ve ContextualFlowColumn özelliklerini de içeriyor. Bu güncelleme, performansı en iyi hale getiren bileşenler sunmak için tasarlanmıştır. ContextualFlow*, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmeleri kullanan çok sayıda öğe için idealdir. FlowRow ve FlowColumn ise 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ğu FlowRow veya FlowColumn'daki mevcut davranışı korumak için başlatma sırasında overflow değerini FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin nasıl kullanıldığına dair örnekler için ContextualFlowRowSample ve FlowRowSample sayfalarını inceleyin. (Ib9135, b/293577082)
  • İzin verilen maksimum karakter sayısını filtreleyen metin alanlarında ayarlanması gereken maxTextLength semantik özelliğini ekleyin. (I24d9f, b/170648072)
  • Modifier.inspectable sarmalayıcısının desteği sonlandırıldı. Bu API, değiştiricinizin gereğinden fazla geçersiz kılınmasına neden olacağından artık kullanılması önerilmemektedir. Değiştirici özelliklerini araçlara göstermek isteyen geliştiricilerin ModifierNodeElement üzerinde inspectableProperties() yöntemini uygulamaları önerilir. (Ib3236)
  • WindowManager.LayoutParams işaretleri üzerinde tam kontrol sağlayan PopupProperties için yeni oluşturucu. (Ibb33e, b/312485503)
  • DelegatableNode.requireLayoutCoordinates(), Modifier.Node'nin mevcut LayoutCoordinates değerini almak için onPlaced'yi geçersiz kılmaya ve koordinatları bir mülkte saklamaya gerek kalmadan kullanılabilecek bir yöntem olarak sunuldu. (Ia8657)
  • DelegatableNode.currentLayoutCoordinates, Modifier.Node'nin mevcut LayoutCoordinates değerini almak için onPlaced değerini geçersiz kılmaya ve koordinatları bir mülkte kendiniz depolamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak kullanıma sunuldu. (Iaebaa)
  • BasicTextField2 ve androidx.compose.foundation.text2 paketi altındaki ilgili API'ler androidx.compose.foundation.text paketine taşınıyor. (I9f635)
  • Açık bir değiştirici düğümünde özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir ApproachLayoutModifierNode API eklendi. Ayrıca, örnekleme sırasında hedefi bilinmeyen animasyonlar için yeni bir deneysel DeferredTargetAnimation API'si eklendi. (I60745)
  • Bir yolun yönünü sorgulamak ve bir Path'dan konturları çıkarmak için yeni Path API'leri. (I63d04)
  • Path öğesinin belirli bir nokta içerip içermediğini kontrol etmek için PathHitTest ve Path.contains(Offset) işlevleri eklendi. (I3b218)
  • TextLayoutResult artık getLineBaseline(lineIndex) yöntemini kullanıma sunuyor. Bu sayede, mevcut kolaylık özellikleri firstBaseline ve lastBaseline'ye ek olarak metnin rastgele bir satırının temelini okuyabilirsiniz. (Ide4e8, b/237428541)
  • Yalnızca iki AnnotatedStrings öğesinin ek açıklamalarını karşılaştırma yöntemi eklendi. (I32659)

Hata Düzeltmeleri

  • SemanticsPropertyReceiver.performImeAction ve SemanticsActions.PerformImeAction ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Id0528, b/322269946)

Sürüm 1.7.0-alpha02

7 Şubat 2024

androidx.compose.ui:ui-*:1.7.0-alpha02 iptal edilir. 1.7.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • SemanticsPropertyReceiver.performImeAction ile ilgili ikili uyumluluk sorunu düzeltildi. (I65865, b/322269946)
  • PopupProperties parametresi alan usePlatformDefaultWidth oluşturucusu artık deneysel değildir. (I8f8d2)
  • Zaman aşımı mesajına dahil edilecek koşulun dize açıklamasını alan bir ComposeTestRule.waitUntil aşı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ği isOpaque. (I8c583, b/317966058, b/246056649)
  • PointerInputChange genel API'sindeki kopyalama yönteminden originalEventPosition kaldırıldı. (I7bead)

Hata Düzeltmeleri

  • Sekme olmayan ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanabilmesine neden olan erişilebilirlik hatası düzeltildi. (I2181c)
  • VelocityTracker artık varsayılan olarak puan ekleme düzeltmesine sahip olacak. Sorun olması durumunda VelocityTrackerAddPointsFix değeri false olarak ayarlanarak düzeltme devre dışı bırakılabilir. (Ib3877, b/269487059)
  • TextStyle ve ParagraphStyle'de geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)

Harici Katkı (External Contribution)

  • Platforma özgü parametreler içermeyen yeni bir DialogProperties oluşturucu eklendi. (I45829)
  • Platforma özgü parametreler içermeyen yeni bir PopupProperties oluşturucu eklendi. (I9a038)

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.ui:ui-*:1.7.0-alpha01 iptal edilir. 1.7.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Resim gibi rastgele içerikleri desteklemek için ClipEntry ve ClipMetadata eklenerek ClipboardManager geniş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 DeviceConfigurationOverride API'sini ui-test'ye ekler.

Sürüm 1.6

Sürüm 1.6.8

12 Haziran 2024

androidx.compose.ui:ui-*:1.6.8 iptal edilir. 1.6.8 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Yazı tipi ölçeği, tanımlanan en düşük tablodan küçük olduğunda yazı tipi ölçeklendirmesindeki tutarsızlıklar düzeltildi. Bu durumda, yazı tipi boyutunun ölçekler arttıkça monoton bir şekilde artması için artık 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 iptal edilir. 1.6.7 sürümü bu commit'leri içerir.

Sürüm 1.6.6

17 Nisan 2024

androidx.compose.ui:ui-*:1.6.6 iptal edilir. 1.6.6 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Nadir görülen BasicTextField kilitlenmesi düzeltildi.

Sürüm 1.6.5

3 Nisan 2024

androidx.compose.ui:ui-*:1.6.5 iptal edilir. 1.6.5 sürümü bu commit'leri içerir.

Sürüm 1.6.4

20 Mart 2024

androidx.compose.ui:ui-*:1.6.4 iptal edilir. 1.6.4 sürümü bu commit'leri içerir.

Sürüm 1.6.3

6 Mart 2024

androidx.compose.ui:ui-*:1.6.3 iptal edilir. 1.6.3 sürümü bu commit'leri içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.ui:ui-*:1.6.2 iptal edilir. 1.6.2 sürümü şu commit'leri içerir.

Sürüm 1.6.1

7 Şubat 2024'te androidx.compose.ui:ui-*:1.6.1 yayınlandı. 1.6.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • SemanticsPropertyReceiver.performImeAction ve SemanticsActions.PerformImeAction ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Ie0bb2, b/322269946)
  • Düzenler artık bir düzen anormal derecede büyük bir boyut döndürdüğünde ölçüm sırasında hata veriyor. Bu tür bir hata genellikle ölçüm, Constraints.Infinity kontrolü yapmadan doğrudan maksimum kısıtlamaları kullandığında oluşur. Bu kontrol, geliştiricilerin yanlış boyuta sahip düzenlerdeki sorunları, bu boyutu içeren düzenlerdeki sorunlardan daha kolay bulmasına yardımcı olur. (I339a9)

Sürüm 1.6.0

24 Ocak 2024

androidx.compose.ui:ui-*:1.6.0 iptal edilir. 1.6.0 sürümü şu commit'leri içerir.

Sürüm 1.6.0-rc01

10 Ocak 2024

androidx.compose.ui:ui-*:1.6.0-rc01 iptal edilir. 1.6.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Ek yeniden oluşturmaları en aza indirerek performansı artırmak için optimize edilmiş vektör grafik uygulaması.

Sürüm 1.6.0-beta03

13 Aralık 2023

androidx.compose.ui:ui-*:1.6.0-beta03 iptal edilir. 1.6.0-beta03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Artık bir LayoutCoordinates, düğüm ayrılmadan ayrılabilir. Guard against that in the compose Layout Inspector (If693)

Hata Düzeltmeleri

  • PlatformImeOptions artık arayüz yerine somut bir sınıf. (If40a4)
  • Bir kök yeniden oluşturulduğunda LocalSoftwareKeyboardController ve LocalTextInputService'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 iptal edilir. 1.6.0-beta02 sürümü şu commit'leri içerir.

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.ui:ui-*:1.6.0-beta01 iptal edilir. 1.6.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alma DragAndDropTarget öğesini açıkça alıyor ve sürükle bırak oturumunu etkinleştirmek için bir lambda'ya sahip. Artık DragAndDropModifierNode için iki fabrika işlevi var. Biri transfer almak, diğeri veri aktarmak için (I69481)
  • maximumFlingVelocity, Float olarak gösterilecek şekilde güncellendi. maximumFlingVelocity birliği hakkında daha net bilgi vermek için dokümanlar güncellendi. (I8adc7)
  • DragAndDropModifierNode fabrikasındaki onDragAndDropStart, acceptDragAndDropTransfer olarak yeniden adlandırıldı.Sürükle ve bırak oturumundan kabul etmek için acceptsDragAndDropTransfer, dragAndDropTarget değiştiricisine eklendi. Bu lambda, sürükle ve bırakma oturumuyla ilgileniyorsanız geçerli bir DragAndDropTarget dö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 bir DragAndDropTarget fabrika işlevi eklendi (Iebf3a).
  • DragAndDropInfo türü kaldırıldı. DragAndDropModifierNode.drag artık transferData, dekorasyon boyutu ve sürükleme dekorasyonu DrawScope lambda'sı için parametreler alıyor.

    DragAndDropTarget, tek bir soyut yöntem olmak yerine belirli sürükle ve bırakma etkinlikleri için yöntemlere sahiptir.

    DragAndDropModifierNode için fabrika işlevindeki onDragAndDropEvent, DragAndDropTarget değerinin yalnızca belirli bir sürükle ve bırakma oturumu için geçerli olduğunu daha iyi belirtmek amacıyla onDragAndDropStart olarak yeniden adlandırıldı.

    DragAndDropEventType kaldırıldı (I645b1)

  • PlatformTextInputModifierNode.runTextInputSession, establishTextInputSession olarak yeniden adlandırıldı. (I03cd0)

  • Geçilebilir düğüm API adlarını daha anlaşılır hale getirmek için iyileştirir. (Ia4474)

  • OriginalText yerine TextSubstitution koyun. (Ifa5a8)

  • PlatformTextInputModifierNode.textInputSession, runTextInputSession olarak yeniden adlandırıldı. (Ie9c6b)

  • Gelecekte yeniden kullanılmak üzere saklanan SubcomposeLayout öğesinin alt öğeleri (ve buna dayalı LazyColumn gibi düzenler) devre dışı olarak kabul edilir. Bu tür düğümleri test etmek için yeni bir assertIsDeactivated() test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)

  • FocusDirection.In ve FocusDirection.Out kaldırıldı. Bunun yerine FocusDirection.Enter ve FocusDirection.Exit kullanın (I2f660)

  • Material SwipeToReveal API'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 yerine FontStyle.Normal veya FontStyle.Italic kullanın. (I66610)

  • FontScalable arayüzü FontScaling olarak yeniden adlandırıldı (Ie804a)

Hata Düzeltmeleri

  • SoftwareKeyboardController.show(), metin düzenleyiciye odaklanılmadığında artık yazılım klavyesini göstermeyecek. (I2165a, b/301477279)
  • Aynı Compose View'da Down etkinliği almamış tuşlar için donanım tuşu Up etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
  • ArcLine'da Sweep Gradient için oluşturucu desteği eklendi. (I4d5bb)
  • PageSize.Fixed için equals ve hashcode yöntemlerini uygulayın. (Ie3ede, b/300134276)
  • Pencere iç kenarı değişikliğiyle ilgili ikili uyumluluk sorununu düzeltme (Iee695)
  • Mikro karşılaştırmalar, Material3 Chip/Button için materyal çekirdek katmanının kaldırıldığında daha iyi performans gösterdiğini ortaya koyduğundan bu katmanı kaldırın. (I55555)
  • Test oluşturmak ve saatleri çerçevelemek için artık Compose testlerine effectContext olarak iletilen TestDispatcher kullanılacak. (Ia7178)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.ui:ui-*:1.6.0-alpha08 iptal edilir. 1.6.0-alpha08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Modifier.dragAndDrawSource işlevindeki onDrawDragShadow lambda'sının adı drawDragDecoration olarak, DragAndDropInfo işlevindeki boyut parametresinin adı ise dragDecorationSize olarak değiştirildi. (Id0e30, b/303904810)
  • Eşleşen bir düğümün görünür olup olmadığını kontrol etmek için SemanticsNodeInteraction.isDisplayed() ve SemanticsNodeInteraction.isNotDisplayed() işlevlerini kullanın. Bu işlevler, düğümün görünürlüğünü onaylamaz. (I2c196, b/302100809)
  • ParagraphTextStyle alanının TextAlign, TextDirection, Hyphens ve LineBreak alanları için null yerine kullanılacak özel bir Unspecified değ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 kutulamasını önleriz. TextStyle ve Paragraph stilindeki oluşturucular, alıcılar ve diğer yöntemler, belirtilen parametreleri null olmayan türler olarak kabul edecek şekilde güncellendi. (I4197e, b/299490814)
  • XML'den GoogleFont okumak için GoogleFont aşırı yüklemesi ekleyin. (If8f59)
  • LoremIpsum PreviewParameterProvider açık sınıf haline getirildi. (I41bf5, b/266918816, b/300116360)

Hata Düzeltmeleri

  • FontFamilyResolver artık önbellek yönetimi eş yordamları için Dispatchers.Main kullanıyor. (Ie8dd9)
  • AndroidViewBinding artık commitNow kullanarak (önceki commit yerine) onRelease kapsamında düzeninize FragmentContainerView eklenerek şişirilmiş Fragment örneklerini eşzamanlı olarak kaldırıyor. Böylece, Live Edit'in kompozisyonu değişiklikler üzerine değiştirme yöntemiyle ilgili sorunlar düzeltiliyor. (I58fbf)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.ui:ui-*:1.6.0-alpha07 iptal edilir. 1.6.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Özel metin düzenleyiciler için yazma testleri için PlatformTextInputMethodTestOverride özelliğini kullanıma sundu. (Id159b)
  • Sürükle ve bırakma oturumlarını başlatmak için dragAndDropSource değiştiricisi ve sürükle ve bırakma oturumlarından almak için dragAndDropTarget değiştiricisi eklendi. (Ib7828, b/286038936)
  • Tahsislerden kaçınan ColorList ve ColorSet koleksiyonları eklendi. (I744bd)
  • Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için DisableNonLinearFontScalingInCompose geçici işareti eklendi. Temizlemek için zamana ihtiyacınız varsa testlerinizde DisableNonLinearFontScalingInCompose = true simgesini 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 öğeleri ayrıştırması. (Ibb015)

Sürüm 1.6.0-alpha06

20 Eylül 2023

androidx.compose.ui:ui-*:1.6.0-alpha06 iptal edilir. 1.6.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Material Icons'da ek optimizasyonlar yapıldı. (I3e08d)
  • Benzer düğümleri bulmak için değiştirici ağacında yukarı/aşağı hareket etme özelliği eklenir. (I2d234)
  • focusRestorer() değiştiricisine onRestoreFailed() geri çağırma işlevi eklendi (Ie1d43)
  • ColorInt, FloatRange, IntRange, Size ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (Id65c8, b/290950582)
  • showSystemUi=true ifadesini PreviewScreenSizes tanı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ükseklikle 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 iptal edilir. 1.6.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • AndroidComposeViewAccessibilityDelegateCompat'da içerik yakalamayı etkinleştirin. (Ib2969)
  • ScrollView ve RecyclerView gibi View bileşenlerindeki hızlı kaydırma hızları ViewConfiguration.ScaledMaximumFlingVelocity ile sınırlandırılır. Oluşturma özelliği artık maximumFlingVelocity'ın kendi sürümünü içeriyor ve bu sürüm Draggable için geçerli. (Ibf974)
  • Platform sürükle ve bırak API'lerini desteklemek için ilk iskele eklenir. (If84ce)
  • deviceId öğesini RotaryScrollEvent içine ekleyin (Iba3bf)
  • Daha yeni cihazları içerecek şekilde ui-tooling Devices API güncellendi (Ib25b4)

Sürüm 1.6.0-alpha04

23 Ağustos 2023

androidx.compose.ui:ui-*:1.6.0-alpha04 iptal edilir. 1.6.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ReusableComposition'ı devre dışı bı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, setContent numarası aranarak tekrar etkinleştirilebilir. (Ib7f31)
  • Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için ReusableComposition arayüzü eklendi. (I812d1, b/252846775)
  • Modifier.focusGroup, kararlı API'lere yükseltildi. (I7ffa3)
  • ColorInt, FloatRange, IntRange, Size ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (I70487, b/290950582)
  • Parametrelerin daha iyi incelenebilmesi için ColorFilter API'si somut alt sınıf türlerine sahip olacak şekilde güncellendi. (I5fe29)
  • Kullanıcı arayüzü önizlemeleri için kullanılabilecek geçerli Wear cihazlarını listelemek üzere wear-tooling-preview kitaplığını kullanıma sunma (Ib036e)
  • Yoğunluk arayüzünün yazı tipi ölçeklendirme kısmını işlemek için FontScalable arayüzü oluşturuldu. (I2cf3f)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

androidx.compose.ui:ui-*:1.6.0-alpha03 iptal edilir. 1.6.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Giriş ve çıkış animasyonu sırasında içeriği, animasyonlu kapsayıcının boyutuna göre ölçeklendiren yeni bir giriş/çıkış geçişi türü. LookaheadScope Composable işlevi ve arayüzü artık kararlı. (Ifb2ce)
  • privateImeOptions (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)
  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanılmış durumdayken readOnly değ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 iptal edilir. 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 devreden bir uygulamasının, Composition temsilcisi hizmet aramalarını orijinal Composition'a devretmesine olanak tanır. Bu işlev doğrudan çağrılmamalıdır ve UI modülünün yaptığı gibi, bestecinin 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)
  • SoftwareKeyboardController ve LocalSoftwareKeyboardController artık deneysel değil. LocalSoftwareKeyboardController artık uygun bir CompositionLocal. (I4c364)
  • LookaheadLayout ve LookaheadLayoutScope birkaç sürüm boyunca desteği sonlandırılmıştı ve artık kaldırıldı. Yerine kullanılan API'ler, herhangi bir düzende çalışabilen LookaheadScope API'leridir. (I12ac3)
  • Testlerde odaklanma isteğinde bulunmak için daha kolay ve bulunabilir bir yöntem olarak SemanticsNodeInteraction.requestFocus eklendi. (Ie8722)
  • Gelecekte test çerçeveleri tarafından kullanılmak üzere genel onayları kaydetmek için deneysel API'ler eklendi. (I12d77)

Hata Düzeltmeleri

  • AndroidView'nın update geri çağırmasının ilk çağrılması artık AndroidView'yı tanıtan kompozisyon uygulandığında çalışmak yerine görünüm eklenene kadar ertelenecek. Bu düzeltme, okunan bir durum efekt tarafından hemen değiştirilirse update geri araması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 iptal edilir. 1.6.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • LazyList'da ileriye bakma özelliği desteklenir. Bu, ileriye dönük geçişteki LazyList öğesinin tüm animasyonları (ör.öğe yerleştirme animasyonu, AnimatedVisibility vb.) atlamasına ve tüm alt öğeler için ileriye dönük boyut ve konumu hesaplamasına olanak tanır. Önceden bakma pasından sonra LazyList çocukları, önceden bakma pasında görüldüğü gibi gerçekliğe göre bağımsız olarak canlandırılabilir.

Davranış değişikliği: includeFontPadding artık Compose'da varsayılan olarak false değerini alıyor

Oluşturma'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 satırına 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 tüm metinlerin kullanıcı arayüzünüzde nasıl oluşturulduğunu 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 hafifçe 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#requestCursorUpdates desteği (I0c69b)
  • FocusRequester.saveFocusedChild ve FocusRequester.restoreFocusedChild eklendi (Ic557e, b/272302679, b/275157318)
  • Yüklenemeyen öğe yolunun açıklamasıyla birlikte, bit eşlem öğeleri yüklemeye çalışırken oluşturulan hata nesnelerini sarmak için ResourceResolutionException türü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 etkinliğe ait olup olmadığını belirtmek için IntrinsincMeasureScope içindeki yeni özellik ve uygulamaları (ör. MeasureScope). (I7a812)
  • DrawScope API'si, alternatif yoğunluk/düzen yönü ve boyutuyla farklı bir kanvasta 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#fillBoundingBoxes eklendi. (If30ee)
  • Bir dizi ortak MultiPreviews (Ia5a27) eklendi.

Hata Düzeltmeleri

  • Özel FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (I9790e)
  • fallback* parametreleri, TextMeasurer oluşturucusunda default* olarak yeniden adlandırıldı. (I940a5)
  • SemanticsPropertyReceiver.performImeAction, onImeAction olarak, SemanticsActions.PerformImeAction ise OnImeAction olarak yeniden adlandırıldı. (I8e841)
  • İç içe kaydırmada (özellikle NestedScrollConnection) fare kaydırması ile sürükleme arasında ayrım yapmak için tekerlek eklenir. (Ie57e4)
  • Döndürülen nesne orijinal android.graphics.Paint öğesini sardığı için toComposePaint yerine asComposePaint API'si eklendi (I22b4c).
  • SemanticsProperties.imeAction işlevini kullanımdan kaldırın ve SemanticsActions.performImeAction için yeni bir parametreyle değiştirin. (I4a587)
  • Fareyle seçim desteği eklendi. Dokunmaya dayalı seçim, kelime bazında genişler ve karakter bazında daralır. (Ic0c6c, b/180639271)
  • Sınır dışı ofsetler için AssertionError hata veren Paragraph yöntemleri artık MultiParagraph gibi IllegalArgumentException hata 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 iptal edilir. 1.5.4 sürümü şu commit'leri içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.ui:ui-*:1.5.3 iptal edilir. 1.5.3 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • (b/301209788) TextField, odaklanma ve Korece giriş yapma sırasında bazen önceki komutları yanlış uygulayarak karakter kaybına neden oluyordu.

Sürüm 1.5.2

27 Eylül 2023

androidx.compose.ui:ui-*:1.5.2 iptal edilir. 1.5.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma API'sine arka plan iş parçacığından erişildiğinde yaşanan kilitlenmeler için geçici çözüm eklendi.
  • 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 iptal edilir. 1.5.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilen metin alanları düzeltildi. Ayrıca, odaklanma sırasında readOnly değeri true'dan false'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.ui:ui-*:1.5.0 iptal edilir. 1.5.0 sürümü şu commit'leri içerir.

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.ui:ui-*:1.5.0-rc01 iptal edilir. 1.5.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • SubcomposeLayout, movableContentOf() içinde kullanıldığında meydana gelen kilitlenme sorunu düzeltildi.

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.ui:ui-*:1.5.0-beta03 iptal edilir. 1.5.0-beta03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Özel bir FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (Ifb1d6)
  • usePlatformDefaultWidth=true olduğ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 iptal edilir. 1.5.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • asComposePaint API'si, Compose'da kullanılacak bir android.graphics.Paint örneğinin tüketilmesini sağlamak için eklendi.

Hata Düzeltmeleri

  • Döndürülen nesne orijinal android.graphics.Paint öğesini sardığı için toComposePaint yerine asComposePaint API'si eklendi (I22b4c).

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.ui:ui-*:1.5.0-beta01 iptal edilir. 1.5.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeniden oluşturma, renk animasyonları ve AndroidComposeView (Ib2bfa) içinde kaldırılan ayırmalar
  • Yetki devrine izin vermek için yardımcı işlevi CacheDrawModifierNode() eklendi (Icf8f9).
  • isLookingAhead özelliğini kullanıma sunuyoruz. Bu özelliğe MeasureScope üzerinden erişerek ileriye dönük sonuçları gözlemleyebilir ve isterseniz ana geçişi etkileyebilirsiniz. (Ibf4c3)
  • traversalIndex adlı yeni anlamsal yapı özelliği. TalkBack geçişinde düğümleri yeniden sıralamak için kullanılan bir kayan sayıdır (daha düşük değerler önce gelir). (I9a81b, b/186443263)
  • Anlamsal yapı özelliği isContainer, isTraversalGroup olarak yeniden adlandırılıyor (I121f6)
  • ColorProducer artık produce yerine operator fun invoke kullanıyor (I4a9a2)
  • Yol nesnelerine çeviri/ölçeklendirme/döndürme dönüşümleri uygulamak için Path transform API'yi ekleyin. (I23434, b/233772232)
  • ColorProducer yöntemine produce adı verilir. (I78bde)
  • toFrameworkColorSpace adlı öğeyi toAndroidColorSpace olarak yeniden adlandırın (I4f547)
  • ColorLambda filtresini ColorProducer olarak yeniden adlandırın. (I73b1a)
  • Android ve Compose renk alanı türleri arasında dönüştürme yapmak için API'ler kullanıma sunuldu. (Ie7db4, b/279979665)
  • Metin renginin verimli bir şekilde animasyonlandırılmasına veya ayarlanmasına olanak tanımak için BasicText öğesine bir renk parametresi eklendi. (Iffd88, b/246961787)
  • TextRange.constrain, TextRange.coerceIn olarak yeniden adlandırıldı. (I31be2)
  • Tam parametre listesiyle optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) dahil olmak üzere birçok Text API'si kararlı hale getirildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği yeniden etkinleştirildi. Başlangıçta bu alanı kaldırmayı planlamıştık ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, alanın kullanımdan kaldırılması kaldırılıyor (I98e96, b/277703184).
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • AnnotatedString içindeki UrlAnnotation artık TalkBack gibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • LineHeightStyle.Alignment(topRatio) oluşturucu, kararlı API'ye yükseltildi. (I79c32, b/261565383)
  • TextMeasurer ve ilgili API'ler artık deneysel değildir. (I74647, b/261581753)
  • Metin düzenleyici düğümlerinde IME işlemini çağırmak için PerformImeAction anlamsal yapı işlemi eklendi. (Ic606f, b/269633506)
  • PlatformTextInput API'ler artık Android'de deneysel değildir. (I668eb)
  • Enum.valueOf iç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üzeyli PlatformTextInputAdapter API'si kullanıma sunuldu. (I58df4)
  • Canvas'a metin çizilirken farklı karıştırma algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)
  • Font.MaximumAsyncTimeout filtresini Font.MaximumAsyncTimeoutMillis olarak yeniden adlandırın. Yalnızca yeniden adlandırma. (I07af5)
  • @Preview referans cihazlarının güncellenen DPI değerleri (Id6151, b/254528382)
  • Metin fırçasının verimli bir şekilde animasyonlandırılmasına veya ayarlanmasına olanak tanımak için BasicText'ye brush, alpha parametrelerini ekleyin.
  • :ui:ui-unit içinde Float, Double, Long, Int, Short için kutusuz lambda türlerini tanımlayın (I6f18d, b/246961787)

Hata Düzeltmeleri

  • İşaretçi hızı izlemede birden fazla ayırma kaldırıldı (I26bae)
  • Düzen ve işaretçi girişi yönetiminde azaltılmış ayırmalar (I5333a)
  • Vektör bellek kullanımını ve ilk karelerin oluşturulmasını optimize etme (I2f3c6)
  • Canvas ile çizgi ve nokta çizerken kaldırılan tahsisler (I9f535)
  • AndroidFont.fontVariationSettings için doküman ekleme (I7d9e2)

Harici Katkı (External Contribution)

  • 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 iptal edilir. 1.5.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Modifier.Node Yetki verme ile ilgili iyileştirmeler DelegatingNode üzerinden diğer Modifier.Node örneklerine yetki verme özelliği geliştirildi. Bu işlem, delegate ve undelegate API'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, DelegatingNode açı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.Node olan NestedScrollModifierNode'ı kullanıma sunuyoruz. (I69513)
  • onReset ve onRelease parametreleri AndroidViewBinding composable'ına eklendi. Bu parametreler, AndroidView composable'ı yansıtıyor ve ViewBinding ile 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) dahil olmak üzere birçok Text API'si kararlı hale getirildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği yeniden etkinleştirildi. Başlangıçta bu alanı kaldırmayı planlamıştık ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, alandaki (I98e96, b/277703184) desteği sonlandırma işlemi kaldırılıyor.

Hata Düzeltmeleri

  • Dialog composable'ı 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 iptal edilir. 1.5.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • LookaheadScope'deki SubcomposeLayout için yeni varsayılan davranış: Koşullu alanlara (ör.TabRow, Scaffold, BoxWithConstraints vb.) sahip olmayan SubcomposeLayouts artık ileriye bakma animasyonlarıyla sorunsuz çalışıyor.

API Değişiklikleri

  • Yeni varsayılan intermediateMeasurePolicy, ileriye dönük geçişteki ölçüm politikasını yeniden kullanarak Scaffold, TabRow ve BoxWithConstraints gibi koşullu yuvalar içermeyen SubcomposeLayout alt türlerinin varsayılan olarak ileriye dönük geçişle çalışmasına olanak tanır. (Id84c8)
  • Android penceresi için oluşturulan yeniden oluşturucu, artık ON_STOP bildirimi aldığında tüm kompozisyon yerine yalnızca withFrameNanos'ya yapılan aramaları engelleyecek. Bu durumda, durdurulan etkinliklerle ilişkili pencereler veri değişiklikleri için yeniden oluşturulmaya devam eder ancak animasyonlar veya withFrameNanos'nın diğer tüm çağrıları engellenir. (Id9e7f, b/240975572)
  • motionEventSpy kararlı sürüme geçildi. (Ic5ec4, b/261560988)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • Geliştiricileri includeFontPadding ayarını false olarak değiştirmek ve test etmek için bu uyumluluk API'sini kullanmaya teşvik etmek amacıyla PlatformTextStyle.includeFontPadding artık kullanımdan kaldırılmıyor. (I98e96, b/277703184)

Sürüm 1.5.0-alpha02

5 Nisan 2023

androidx.compose.ui:ui-*:1.5.0-alpha02 iptal edilir. 1.5.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeni SubcomposeLayout API, ileriye bakma tabanlı animasyonlar sırasında ölçü/düzen mantığını işlemek için ek bir ara ölçü politikası kullanır. (I017d3)
  • PointerInput artık geç yükleniyor ve daha iyi performans için Modifier.Node kullanıyor (küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
  • Önemli etkinliklerle deneysel API'leri kararlı hale getirir. (I9c7d8, b/261566839, b/261567368)
  • PointerInputChange içinde deneysel API'leri kararlı hale getirir. (I1b543, b/261560988, b/261565762, b/261565749)
  • Daha karmaşık Modifier.Node uygulamaları için SuspendingPointerInputModifierNode oluşturma yöntemi ekler. (Ic4933)
  • AnnotatedString içindeki UrlAnnotation artık TalkBack gibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)
  • Donanım tuşları sanal klavyeye gönderilmeden önce bunları yakalamak için bir API eklendi (I4f4c6, b/186800395).
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • Metinle ilgili test işlemleri (ör. performTextInput), artık alana tıklamak yerine semantik işlem kullanılarak doğrudan odaklanma isteğinde bulunacak. (I6ed05)

Hata Düzeltmeleri

  • Metin testi iş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 iptal edilir. 1.5.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Modifier.intermediateLayout artık açık bir LookaheadScope gerektirmiyor. intermediateLayout'taki ölçü bloğunun alıcısı IntermediateMeasureScope'tur. Bu alıcı, uygun CoroutineScope, LookaheadScope ve MeasureScope sağlar.(Ibe2e5)
  • LookaheadLayout'un yerini LookaheadScope aldı. LookaheadScope artık bir Layout değil. 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#coroutineScope eklendi. (I76ef9)
  • CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes'un CompositionLocals'ı okumasına izin verin. (Ib44df)
  • @Deprecated sınıfının özelliğe yayılması. (I882d1)

Sürüm 1.4

Sürüm 1.4.3

3 Mayıs 2023

androidx.compose.ui:ui-*:1.4.3 iptal edilir. 1.4.3 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • AndroidView simgesinin belirli değiştiricilerle kullanıldığında doğru şekilde yerleştirilmemesine neden olan sorun düzeltildi. (I4dc77, b/274797771)
  • 2D odak aramasında DropDown menülerini (b/276811828) etkileyen bir hata düzeltildi.
  • Lambda ilk kez çağrıldığında yalnızca giriş/çıkış bloğunu çalıştıran özel odak giriş/çıkış özelliklerindeki hata düzeltildi (b/277234245).
  • Odak sisteminde focusProperties okunurken 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 iptal edilir. 1.4.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • AndroidView'nın değiştiricilerini doğru şekilde yeniden kullanmamasına ve bunun sonucunda beklenmeyen davranışlar ile kilitlenmeler yaşanmasına neden olan sorun düzeltildi. (Ib67ee, b/275919849)
  • Dialog composable tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesiyle ilgili regresyon düzeltildi (I82551, b/262140644).

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.ui:ui-*:1.4.1 iptal edilir. 1.4.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • ParentDataModifier öğesinin AndroidView öğesini etkilememesiyle ilgili sorun düzeltildi (b/274797771).

Sürüm 1.4.0

22 Mart 2023

androidx.compose.ui:ui-*:1.4.0 iptal edilir. 1.4.0 sürümü şu commit'leri içerir.

1.3.0 sürümünden beri yapılan önemli değişiklikler

  • Lazy list öğelerinin sabitlenmesine olanak tanıyan yeni bir PinnableContainer API eklendi. Böylece, öğeler sınırların dışına kaydırıldığında kaldırı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üzeyler'de IsContainer anlamsal 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ü DropdownList eklendi. Bu, android.widget.Spinner odaklanırken TalkBack'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 kareler yürütülürken (ör. waitForIdle aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu durum, düzen animasyonlarının tek tek kareleri üzerinde onaylama yapan testleri etkileyebilir. (I8ea08, b/222093277)
  • Metnin Static(default) veya animasyonlu olmasını tanımlamak için TextMotion deneysel özelliği TextStyle öğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated kullanın. (I24dd7)

Sürüm 1.4.0-rc01

8 Mart 2023

androidx.compose.ui:ui-*:1.4.0-rc01 iptal edilir. 1.4.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • onReset parametresini kabul eden AndroidView composable işlevinin aşırı yüklenmesi eklendi. Bu sayede, kompozisyondaki düğümleri atıldığında ve uyumlu bir şekilde yeniden kullanıldığında View örneklerinin yeniden kullanılmasına olanak tanır. Bu özellik özellikle LazyRows ve LazyColumns görüntüleme sayısı için yararlıdır. (I3f10d, b/230099236)
  • Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni bir düşük düzeyli PlatformTextInputAdapter API'si kullanıma sunuldu. (I58df4)

Hata Düzeltmeleri

  • BasicTextField'nın SetText anlamsal yapı işlemi artık metin arabelleğini IME güncellemeleri ve test fonksiyonlarıyla (ör. performTextReplacement) aynı kod yolunu kullanarak güncelleyecek.
  • performTextClearance, performTextReplacement ve performTextSelection metin testi işlevleri artık SemanticsActions kullanıyor. (I0807d, b/269633168, b/269624358)

Sürüm 1.4.0-beta02

22 Şubat 2023

androidx.compose.ui:ui-*:1.4.0-beta02 iptal edilir. 1.4.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • modifierElementOf() API'si kaldırıldı. Lütfen bunun yerine doğrudan ModifierNodeElement üzerinden uzatın. (I2256b)
  • Layout öğesinin yeniden kullanılacağı (ör. LazyColumn öğesi olarak) durumun düzgün şekilde ele alınması için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni bir Modifier.Node.onReset() geri çağırma işlevi eklendi. Odaklanmış durumun düzgün şekilde sıfırlanması için FocusTargetModifierNode düzeltildi. (I65495, b/265201972)
  • Canvas'ta metin çizerken farklı karıştırma algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)

Hata Düzeltmeleri

  • Erişilebilirlik odak sırası algoritması iyileştirildi. Örneğin, üst/alt çubuklar sırasıyla daha sık olarak önce/sonra okunuyor (74e9c5)

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.ui:ui-*:1.4.0-beta01 iptal edilir. 1.4.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • PinnableContainer.PinnedHandle.unpin(), release() olarak yeniden adlandırıldı (I4667a)
  • waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExists ve waitUntilDoesNotExist, ComposeTestRule'e deneysel API olarak eklendi. Böylece waitUntil API, herhangi bir eşleştiriciyi ve herhangi bir sayıda düğümü kabul edecek şekilde genişletildi. Diğer belgeler için ComposeTestRule sayfasına bakın. (Ifa1b9, b/226934294)
  • Font.MaximumAsyncTimeout filtresini Font.MaximumAsyncTimeoutMillis olarak yeniden adlandırın. (I07af5)
  • GoogleFont.Provider.AllFontsListUri kaldırıldı ve bunun yerine ktdoc'ta bağlantı oluşturuldu. (I16f29)

Hata Düzeltmeleri

  • AndroidFont.fontVariationSettings için doküman ekleme (I7d9e2)

Sürüm 1.4.0-alpha05

25 Ocak 2023

androidx.compose.ui:ui-*:1.4.0-alpha05 iptal edilir. 1.4.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • runComposeUiTest işlevi ve CoroutineContext parametrelerini kabul eden create*ComposeRule işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tüm LaunchedEffect ve rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)
  • 1 boyutlu hızı izlemek için yeni bir API ekleyin (If5a82).
  • FocusRequester artık @Stable olarak işaretleniyor. (I580ee)
  • usePlatformDefaultWidth parametresi alan DialogProperties oluşturucusundan deneysel bir ek açıklamayı kaldırın. (Ic4048)
  • PathMeasure.getPosition() ve PathMeasure.getTangent() ile bir yolda belirli bir mesafedeki konumu ve teğeti hesaplama işlevi eklendi (I3b47c).
  • PlatformParagraphStyle üzerinde yanlışlıkla herkese açık hale getirilen setter kaldırıldı. (I07f47)
  • Satır içi/kullanımdan kaldırılmış-gizli işlevlerin türü/null değer alabilme durumuyla ilgili daha fazla bilgi (I24f91)
  • Sıfır tahsisli ek açıklamaları sorgulamak için AnnotatedString.hasStringAnnotations ekleyin. (I94dfe, b/246960758)
  • TextMeasurer.measure işlevi için, metin olarak String alan yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)
  • TextStyle'daki LineBreak ve Hyphens API'leri kararlı sürüme yükseltildi. (Ic1e1d)

Harici Katkı (External Contribution)

  • TextInputSession ve TextInputService içindeki notifyFocusedRect yö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 iptal edilir. 1.4.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Lazy list öğelerinin sabitlenmesine olanak tanıyan yeni bir PinnableContainer API eklendi. Böylece, öğeler sınırların dışına kaydırıldığında kaldırı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üzeyler'de IsContainer anlamsal 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ü DropdownList eklendi. Bu, android.widget.Spinner odaklanırken TalkBack's davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001)
  • Artık PlatformTextStyle(emojiSupportMatch) kullanarak tek bir paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakabilirsiniz. (Ia7100, b/139326806)
  • Android Compose kullanıcı arayüzü testleri artık boşta kalma durumuna geçmek için kareler yürütülürken (ör. waitForIdle aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu durum, düzen animasyonlarının tek tek kareleri üzerinde onaylama yapan testleri etkileyebilir. (I8ea08, b/222093277)
  • Metnin Static(default) veya animasyonlu olmasını tanımlamak için TextMotion deneysel özelliği TextStyle öğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated kullanın. (I24dd7)

API Değişiklikleri

  • Diğer DrawScope işlevleriyle tutarlı olması için drawText işlevindeki maxSize: IntSize bağımsız değişkeni size: Size ile değiştirildi. size, varsayılan olarak Size.Unspecified olarak ayarlanır. Bu ayar, ö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ı Group artık grubun satır içi composable işlev çağrısı için olup olmadığını belirten bir isInline alanına sahip. isInline true ise ç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.
  • Döner kaydırma etkinliği API'si artık kararlı (I42ad3, b/261561229)
  • FontVariation API artık kararlı (I8779f, b/241016309)
  • Tüm Font() oluşturucular artık kararlı API'dir (I5948b, b/261435386)
  • DeviceFontFamilyName artık kararlı (I8b640, b/261435386)
  • AndroidFont oluşturucusu variationSettings ile 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)
  • createFontFamilyResolver API 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.loadingStrategy API artık kararlı sürümde. (I5937c, b/261435386)
  • GoogleFont API artık kararlı sürümde. (Ic90b0, b/261435386)
  • TextUnit(float, TextUnitType) artık kararlı API. (I90c84, b/261561612)
  • pluralStringResource artık kararlı API. (I09849, b/261439703)

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.ui:ui-*:1.4.0-alpha03 iptal edilir. 1.4.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ExperimentalComposeUiApi, PointerIcon cihazından kaldırılıyor (I23af8)
  • Sayfa erişilebilirlik işlemleri: PageUp, PageDown, PageLeft, PageRight. Bunların yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab)
  • rememberNestedScrollConnection parametre görünümü, kök görünümden ana makine görünümüne güncellendi. (Ia5200)
  • Üst öğelerin kaydırma bilgilerini sorgulamak için bir Modifier API eklendi. (I2ba9d, b/203141462)
  • Hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için Clickable içinde kullanılır.
  • Scrollable ViewGroup içinde kullanıldığında Clickables öğesinin dalgalanmaları doğru şekilde geciktirmemesi sorunu düzeltildi.
  • Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda basma işlemlerini doğru şekilde geciktirmek için çekmeceler ve sayfalar güncellendi.
  • CompositingStrategy.Always, graphicsLayer öğesinin her zaman ara arabelleğe (I47dc1) işleneceğini belirtmek için Offscreen olarak yeniden adlandırıldı.
  • 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 {} ve PerfettoTraceRule eklendi. (I3ba16)
  • Compose kuralı kullanılan kullanıcı arayüzü testlerinde, withFrameNanos geri çağırmaları sırasında devam ettirilen devamlılıklar, tüm çerçeve geri çağırmaları çalışmayı bitirene kadar gönderilmez. Bu, normal şekilde çalıştırıldığında oluşturma davranışıyla aynıdır. Ancak eski davranışa dayalı testler başarısız olabilir. Bu durum yalnızca doğrudan withFrameNanos veya withFrameMillis işlevlerini çağıran ve bu işlevlere iletilen geri çağırma işlevlerinin dışında mantığı olan, geri çağırma işlevlerinin içine taşınması gerekebilecek kodları etkilemelidir. Örnekler için bu CL'deki animasyon testi değişikliklerine bakın.
  • onPerformTraversals: (Long) -> Unit parametresi, TestMonotonicFrameClock oluşturucuya ve fabrika işlevine isteğe bağlı olarak eklendi. Bu parametre, withFrameNanos geri çağırmalarından sonra ancak arayanların eş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 Recomposer değişiklikleri uygulamayı bitirdikten 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 (Dependency Updates)

  • Compose UI ve Compose Material artık Lifecycle 2.5.1'e bağlı. (I05ab0, b/258038814)

Sürüm 1.4.0-alpha02

9 Kasım 2022

androidx.compose.ui:ui-*:1.4.0-alpha02 iptal edilir. 1.4.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • GraphicsLayerScope, graphicsLayer öğesinin mevcut boyutunu gösterecek şekilde güncellendi. Bu, graphicsLayer dönüşümlerini Composable boyutunun bir işlevi olarak hesaplamak için kullanışlıdır. (If8c43,b/181387080)
  • graphicsLayer içeriğinin oluşturulması için ne zaman ekran dışı bir birleştirme katmanından yararlanılacağını belirlemek üzere CompositingStrategy tanıtıldı. Otomatik, alfa uygulanırsa veya RenderEffect/Overscroll varsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Always, her zaman ekran dışı bir arabellek kullanır. ModulateAlpha ise ekran dışı arabellek kullanmaktan kaçınır ve bunun yerine graphicsLayer içindeki kaydedilmiş çizim talimatlarının her birini düzenler. ModulateAlpha kullanımı, RenderEffect/Overscroll kullanımları için ekran dışı 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 üzere Modifier.Node'ye eklendi. (I4bd90)
  • rememberNestedScrollInteropConnection sürümünü kararlı sürüme yükseltin. rememberNestedScrollInteropConnection'ya kök görünüm geçirme özelliği kullanıma sunuldu. Bu, özel görünümün 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.Node uygulamaları tarafından kullanılabilecek ObserverNode arayüzü eklendi (I5728b, b/247716483).
  • Paint öğesine, yerel android.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şlevi toComposePaint() eklendi. (Ica91b)
  • Android'de kullanılmak üzere yeni FontFamily.Resolver.resolveAsTypeface ekleyin. (I8950b)
  • Araçların Composable'ın (Ie6614) dahili durumlarını değiştirmesine izin vermek için ToolingState ekleyin.
  • Yeni eklenen animasyonlar için daha iyi destek sağlamak üzere araçları yeniden düzenleme (I8677b)
  • Materyal ve Material3 Text, TextField ve OutlinedTextField bileşenlerine minLines parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğinin satır sayısı cinsinden ayarlanmasına olanak tanır (I4af1d).

Sürüm 1.4.0-alpha01

24 Ekim 2022

androidx.compose.ui:ui-*:1.4.0-alpha01 iptal edilir. 1.4.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Hareket algılayıcılar için yeni bir yöntem (awaitEachGesture()) eklendi. forEachGesture() ile benzer şekilde çalışır ancak hareketler üzerindeki döngü tamamen AwaitPointerEventScope içinde gerçekleştiğinden yinelemeler arasında etkinlik kaybı yaşanmaz.
  • forEachGesture(), hareketler arasında etkinliklerin kaybolmasına izin verdiği için awaitEachGesture() 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)
  • Anahatlı metin çizimini etkinleştirmek için DrawStyle, TextStyle ve SpanStyle'ye deneysel özellik olarak eklendi. (If24b8, b/155421273)
  • AnnotatedString.Builder artık kotlin.text.Appendable kullanıyor. (I1a061, b/231030444)
  • AnnotatedString.Builder artık AnnotatedString ve kesişen stillerin alt dizesini eklemek için append(AnnotatedString, start: Int, end: Int) yöntemine sahip.
  • Paragraph ve MultiParagraph boyama işlevlerine, ana hatlı metin çizilmesini sağlayan DrawStyle parametresi eklendi. (Ic8102, b/155421273)

Harici Katkı (External Contribution)

  • Thanks for vighnesh for adding TV Devices to Previews (Ie15cd)

Sürüm 1.3

Sürüm 1.3.3

11 Ocak 2023

androidx.compose.ui:ui-*:1.3.3 iptal edilir. 1.3.3 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Android 9'da Activity, Compose View'un durumunu kaydederken bazen meydana gelen kilitlenme sorunu düzeltildi. (I0b755, b/260322832)

Sürüm 1.3.2

7 Aralık 2022

androidx.compose.ui:ui-*:1.3.2 iptal edilir. 1.3.2 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • protobuf-javalite:3.19.4'da güvenlik uyarısını önleyen Profobuf 3.21.8 sürümüne güncellendi (CVE-2022-3171) (b/255545055)

Sürüm 1.3.1

9 Kasım 2022

androidx.compose.ui:ui-*:1.3.1 iptal edilir. 1.3.1 sürümü şu commit'leri içerir.

Sürüm 1.3.0

24 Ekim 2022

androidx.compose.ui:ui-*:1.3.0 iptal edilir. 1.3.0 sürümü şu commit'leri içerir.

1.2.0 sürümünden beri yapılan önemli değişiklikler

  • Yeni deneysel API paketi LookaheadLayout (daha önce mümkün olmayan animasyon davranışlarını etkinleştirir)
  • Yeni deneysel API paketi Modifier.Node (Modifier.composed'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 iptal edilir. 1.3.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Metinde otomatik tireleme özelliğini desteklemek için yeni deneysel API Hyphens eklendi (Iaa869).

Hata Düzeltmeleri

  • DeviceFontFamilyName yazı tipleri, wght ve ital varyasyon ayarlarını varsayılan olarak yapılandırmaz. Bunun yerine, yüklenen Typeface için platform ayarını kullanır. (Ia7a6d, b/246989332)
  • LazyColumn bellek sızıntısı düzeltildi: Değiştiriciler yeniden kullanıldığında onModifierLocalsUpdated, varsayılan değerle çağrılmıyordu (b/230168389).

Sürüm 1.3.0-beta03

21 Eylül 2022

androidx.compose.ui:ui-*:1.3.0-beta03 iptal edilir. 1.3.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Metinde satır sonunu özelleştirme seçenekleri ekleyin. (I86907)
  • Minimum genişlik kısıtlamalarını desteklemek için TextMeasurer.measure yönteminde size:IntSize bağımsız değişkeni constraints: Constraints ile değiştirildi. (I37530, b/242707525)

Hata Düzeltmeleri

  • AndroidX Activity'nin BackHandler API'si artık Dialog composable içinde çalışıyor. (I35342)

Sürüm 1.3.0-beta02

7 Eylül 2022

androidx.compose.ui:ui-*:1.3.0-beta02 iptal edilir. 1.3.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Layout için, birden fazla composable içerik lambdasının listesini kabul eden deneysel bir aşırı yükleme eklendi. Bu, farklı içerik lambdalarına yerleştirilen ölçülebilir öğelerin farklı şekilde ele alınmasına olanak tanır (Ic1b4e).

Deneysel Focus API'lerinde yapılan değişiklikler:

  • FocusDirection.In ve FocusDirection.Out desteği sonlandırıldı ve yerini FocusDirection.Enter ile FocusDirection.Exit aldı. (Ia4262, b/183746982)
  • FocusManager.moveFocus(Enter) ve FocusManager.moveFocus(Exit) için özel bir davranış belirtmek üzere iki yeni odak özelliği (enter ve exit) eklendi. (I5f3f9, b/183746982)
  • Artık odak hareketini iptal etmek için FocusRequester.Cancel kullanabilirsiniz. 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 iptal edilir. 1.3.0-beta01 sürümü şu commit'leri içerir.

Modifier Node Refactor

Modifier/Modifier.Element örneklerini işleyen ve bunların LayoutNodes üzerindeki 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 olduğundan 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 bir soyutlama sağlar. Bu soyutlama, düzen düğümü başına ve bunu üreten ilgili Modifier.Element'nin kullanım başına ayrılır.

Genel olarak bu soyutlama, Modifier.composed API'nin mekanizmalarına dayanmadan durum bilgisi olan değiştiriciler oluşturmak için alternatif bir mekanizma sağlar.

Risk

Bu değişiklik, önceki sürümlerle kesinlikle ikili uyumludur ve gözlemlenebilir davranış açısından 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ç alt sistem var ve davranışın, testlerimizde ele alınmayan ve henüz bulunup düzeltilmeyen şekillerde değişmiş olması muhtemeldir.

Lütfen bu sürüme dikkatli bir şekilde yükseltin. Bu durumun sizin için bir soruna yol açtığını düşünüyorsanız lütfen bize bildirin.

Deneysel API'ler

"Değiştirici Düğüm" adlı yeni kavramla ilgili çeşitli deneysel API'ler eklendi. Modifier.Node'lar,

  • fun modifierElementOf(…): Modifier
  • abstract class ModifierNodeElement
  • abstract class Modifier.Node
  • abstract class DelegatingNode
  • interface LayoutModifierNode
  • interface DrawModifierNode
  • interface SemanticsNode
  • interface PointerInputNode
  • interface ModifierLocalNode
  • interface ParentDataModifierNode
  • interface LayoutAwareModifierNode
  • interface GlobalPositionAwareModifierNode
  • interface IntermediateLayoutModifierNode

Davranış değişikliği

İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.

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, S sürümünden önceki Android sürümlerinde erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up içindeki içerikle etkileşime girebilmesini 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 bu durum önerilmez. İletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından etkileşime girilebilir ve okunabilir olmasını sağlamak geliştiricinin sorumluluğundadır.

API Değişiklikleri

  • Yapılandırma değişikliklerinde painterResource öğesinin güncellenmemesine neden olan sorun düzeltildi (I58e73, b/228862715).
  • rememberTextMeasurer artık FontFamily.Resolver, Density veya LayoutDirection parametrelerini kullanmıyor. Lütfen bu parametreler için özel değerler sağlamak üzere TextMeasurer oluşturucusunu kullanın. (Ia1da3)
  • İletişim kutularının WindowInsets özelliğini desteklemesine olanak tanımak için DialogProperties.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 sınırlama API'lerine izin vermek için kapalı bir arayüzdür. (I11021, b/143703328)
  • CompositionGroup.findParameters öğesini SlotTree.kt öğesine ekleyin. Bu sayede araçlar, tüm yuva tablosunu ayrıştırmak zorunda kalmadan bir CompositionGroup için parametreleri alabilir. (I124fe)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.ui:ui-*:1.3.0-alpha03 iptal edilir. 1.3.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • LayoutCoordinates.findRootCoordinates() artık herkese açık (I7fa37, b/204723384)
  • LayoutCoordinates içinde PlacementScope almak 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çin LayoutCoordinates.transformFrom eklendi. (Ic5ab1, b/238632578)
  • SemanticsModifier.id desteği sonlandırıldı ve bunun yerine semantik kimlik LayoutInfo.semanticsId olarak 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.Setting listesini kabul ediyor. (I11a9d, b/143703328)
  • Değişken yazı tiplerini tanımlamak ve kullanmak için FontVariation API'si eklendi. (I3c40c, b/143703328)
  • LineHeightStyle.Alignment oluş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)
  • PlatformTextStyle ve LineHeightStyle öğelerinden deneysel ek açıklamayı kaldırdı. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard desteğini sonlandırma Lütfen uygulama kodunda SoftwareKeyboardController, IME yönetimi kodunda ise TextInputSession kullanın. (I14e4c, b/183448615)
  • Mevcut animasyon türleri için yeni API ekleme (I26179)

Hata Düzeltmeleri

  • SDK 33 ve sonraki sürümlerde POST_NOTIFICATIONS izninin verilmesini gerektiren API'lere @RequiresPermission eklendi. (Ie542e, b/238790278)

Sürüm 1.3.0-alpha02

27 Temmuz 2022

androidx.compose.ui:ui-*:1.3.0-alpha02 iptal edilir. 1.3.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Basıncı almak için yeni bir özellik PointerInputChange#pressure eklendi. (I45a5e, b/205164819)
  • Birleştirmede TextMeasurer örneklerini kolayca oluşturup hatırlamak için rememberTextMeasurer eklendi. (I8d66e)
  • Rect, RoundRect ve MutableRect artık contains işlevini çağırmak için Kotlin in söz dizimini destekliyor. (Ie42b0, b/238642990)
  • API'nin daha basit kısımlarıyla kolayca uygulanabildikleri için KeyInjectionScope'dan gereksiz işlevleri kaldırın. Kaldırılan işlevler arasında pressKeys, keysDown ve keysUp yer alıyor. (I81d77)
  • KeyInjectionScope içindeki sabit ve parametre adları, bu sabitlerin ve parametrelerin birimleri milisaniye olduğunda "Millis" sonekini içerecek şekilde yeniden düzenlendi. (Iabef5)
  • Metin düzenleme sorunlarını gidermeye yardımcı olması için toStringForLog() yöntemi EditCommand'ye eklendi. (I53354, b/228862731)
  • drawText uzantı işlevi, DrawScope üzerinde Canvas ve drawBehind gibi DrawScope üzerinde çalışan composable'lar ve değiştiriciler üzerinde çok stilli metin çizmenin bir yolunu sağlamak için eklendi. (I16a62, b/190787898)
  • TextMeasurer adlı yeni bir deneysel API'yi kullanıma sunuyoruz. Bu API, Compose çalışma zamanından bağımsız olarak BasicText ile aynı sonuçları veren rastgele metin düzeni hesaplaması yapılmasına olanak tanır. (I17101)
  • mapTree öğesini SlotTree.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 MultiPreview ek açıklamalarını yazıp yeniden kullanabilmesi için Oluşturma Önizlemesi'nin ikili çıkış dosyalarında saklanması sağlandı. (I85699, b/233511976)

Hata Düzeltmeleri

  • InputEventChange etkinliklerini Velocity İzleyici'ye eklerken artık konumlar yerine deltaları 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.toUpperCase nedeniyle oluşan NPE düzeltildi. (I0aca2, b/210899140)

Sürüm 1.3.0-alpha01

29 Haziran 2022

androidx.compose.ui:ui-*:1.3.0-alpha01 iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Gerçek ölçüm/düzen öncesinde ileriye bakma geçişini destekleyen yeni LookaheadLayout. Bu, düzen değiştiğinde önceden hesaplama yapılmasına olanak tanırken, hedefteki boyuta ve konumlara doğru animasyon yapmak için önceden hesaplanmış boyutun/konumun kullanılmasını sağlar. SubcomposeLayouts henüz desteklenmemektedir ancak ileride yayınlanacak bir sürümde desteklenecektir. (I477f5)
  • Tüm Text öğesinin opaklığını değiştirmek için TextStyle ve SpanStyle öğesinin fırça türüne isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635)
  • UrlAnnotation açıklama türü ve AnnotatedString'lerde TalkBack bağlantı desteğini sağlayan ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)
  • Yardımcı işlevlerin çalışma zamanına taşınması (I4f729)

Hata Düzeltmeleri

Harici Katkı (External Contribution)

  • Durumunu composable işlevlerde veya snapshotFlow aracılığıyla gözlemlemek için yeni bir API WindowInfo.keyboardModifiers eklendi (Icdb8a).

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

androidx.compose.ui:ui-*:1.2.1 iptal edilir. 1.2.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Denetleyicideki nullpointer hatası düzeltildi (b/237987764).
  • İnceleme sırasında hatırlatma 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 iptal edilir. 1.2.0 sürümü şu commit'leri içerir.

1.1.0 sürümünden beri yapılan önemli değişiklikler

  • Odak geçişinde iyileştirmeler:

    • Lazy listelerin odaklanmaya dayalı kaydırma özelliği artık yeni BeyondBoundsLayout Core API kullanılarak çalışıyor.
    • FocusOrder ve FocusProperties'de yeni davranış özelleştirme API'leri
    • Fiziksel klavye veya TV uzaktan kumandasıyla daha iyi davranış
  • Aşağıdakiler için yeni API'ler:

    • Pencere ekleri
    • Hareket odaklı, sonsuz ve düzen animasyonları için temel öğeler
    • GraphicsLayer özellikleri (RenderEffect dahil)
  • 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 iptal edilir. 1.2.0-rc03 sürümü şu commit'leri içerir.

  • 1.2.0-rc02 sürümünden bu yana değişiklik yapılmadı.

Sürüm 1.2.0-rc02

22 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc02 iptal edilir. 1.2.0-rc02 sürümü şu commit'leri içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc01 iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Compose kitaplıklarındaki arayüzler artık JDK8 varsayılan arayüz yöntemleri kullanılarak oluşturuluyor (I5bcf1).
  • Diğer tuşlar basılı tutulurken veya açılıp kapatılırken tuş basma işlemlerini eklemek için KeyInjectionScope'ya yüksek sıralı işlevler eklendi. Bu işlevler arasında withKeysDown, withKeysToggled vb. yer alır. Ayrıca, belirli bir meta anahtarının basılı olup olmadığını kontrol etmek için özellikler de eklendi. Örneğin, kontrol tuşlarından birinin basılı olup olmadığını kontrol etmek için isCtrlDown işlevi kullanılabilir. Her işlevle ilgili dokümanlar için KeyInjectionScope adresine bakın. (I9f6cd, b/229831515)
  • Modifier.scrollable aşırı kaydırma efektlerine izin vermek için deneysel bir OverscrollEffect tanıtıldı.
  • Deneysel LocalOverScrollConfiguration, foundation.gesture paketinden temel pakete taşındı ve LocalOverscrollConfiguration olarak yeniden adlandırıldı (If19fb, b/204650733)
  • runComposeUiTestWithoutActivity {} dosyasını, createEmptyComposeRule() ile uyumlu olacak şekilde runEmptyComposeUiTest {} olarak yeniden adlandırın (I6fed7).

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-beta03 iptal edilir. 1.2.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • pressKeyTimes ile birlikte isCapsLockOn ve arkadaşları KeyInjectionScope albü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 veya performMultiModalInput ile çok formatlı giriş hareketi sırasında MultiModalInjectionScope öğesinin key özelliği üzerinden gönderin. API dokümanları için KeyInjectionScope adresine bakın. (Ic5000, b/229831515)
  • Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni GoogleFont.Provider.AllFontsListUri ekleyin.
  • GoogleFonts, Compose'da yüklenemediğinde yeniden oluşturulan hata mesajları iyileştirildi. (I0416c)

Hata Düzeltmeleri

  • Velocity Tracker'a InputEventChange etkinlikleri eklerken artık konumlar yerine delta değerlerini dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanması sağlanacak (I51ec3, b/216582726, b/223440806, b/227709803).
  • Show Layout Bounds ayarı, 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, StyleSpans için yazı tiplerini yüklemeye çalışıyordu. Bu durum, FontFamily.Resolver üzerine yazılmışsa kilitlenmelere neden oluyordu. (I4609d)
  • İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme sorunu yaşanmayacak.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand artık oluşturucu bağımsız değişkenlerinin negatif olmamasını gerektiriyor. (Ica8e6, b/199919707)

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.ui:ui-*:1.2.0-beta02 iptal edilir. 1.2.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Diğer önizleme türlerinde iş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) durumu daha iyi yansıtması için DisposeOnDetachedFromWindowOrReleasedFromPool olarak yeniden adlandırıldı. (If15ca)

Sürüm 1.2.0-beta01

11 Mayıs 2022

androidx.compose.ui:ui-*:1.2.0-beta01 iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Bu, 1.2'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 öğesinin özel uygulamaları tarafından kullanılabilecek deneysel BeyondBoundsInterval eklendi (Ifabfb, b/184670295).
  • Modifier.composed uygulamasının anahtarlı sürümleri artık kararlı API'dir (Ie65e4, b/229988420)
  • Mevcut görünüm bilgilerini edinmek için rememberNestedScrollConnection API'si, kompozisyon yerellerini kullanacak şekilde basitleştirildi (I67ca7).
  • @ComposableTarget notu ve @ComposableTargetMarker ile işaretlenen notlar artık @file öneki kullanılarak dosya kapsamında kullanılabilir. Dosya kapsamındaki bir hedef ek açıklamasının kullanılması, derleyicinin dosyadaki tüm composable işlevlerin ilişkili uygulayıcıyı hedeflemesi gerektiğini varsaymasına neden olur. Örneğin, @file:UiComposable kullanıldığında tüm @Composable işlevlerinin Compose UI uygulayıcısını hedeflediği belirtilir. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef iş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 ComposeUiTest ve fun runComposeUiTest(block: ComposeUiTest.() -> Unit), TestRule olmadan Compose Ui testlerini çalıştırmak için kullanılabilir. ComposeTestRule olmadan test çalıştırmak için testi runComposeUiTest öğesine lambda olarak iletin ve alıcı kapsamındaki yöntemleri ve üyeleri ComposeUiTest kullanın. Bunlar ComposeContentTestRule ile aynıdır.

    Android'e özel interface AndroidComposeUiTest ve fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit), AndroidComposeTestRule'ye benzer şekilde temel etkinliğe erişim sağlamak için eklenir. Daha fazla kontrol için class AndroidComposeUiTestEnvironment öğesini kendiniz oluşturabilirsiniz.

    Masaüstü uygulaması class DesktopComposeUiTest'dır ancak şu anda masaüstüne özel çalıştırma işlevleri sunulmamaktadır.

    Bir testi ComposeTestRule'dan ComposeUiTest'ye 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 ComposeContentTestRule ve ComposeTestRule, ComposeUiTest'den genişletilmiyor. Bu nedenle, ComposeUiTest'deki uzantı işlevleri henüz TestRule arayüzünde çağrılamıyor. ComposeUiTest kararlı API'ye geçtiğinde ComposeContentTestRule ve ComposeTestRule, ComposeUiTest'dan genişleyecek şekilde değiştirilecek. (Ib4e90)

  • LineHeightBehavior, LineHeightStyle olarak yeniden adlandırıldı

  • LineVerticalAlignment, LineHeightStyle.Alignment olarak yeniden adlandırıldı

  • Yeniden adlandırılan LineHeightTrim, LineHeightStyle.Trim olarak yeniden adlandırıldı

  • LineHeightStyle içindeki varsayılan oluşturucu değerleri kaldırıldı (I582bf, b/181155707)

  • Gradyan renkli metin çizme imkanı sunmak için Brush, TextStyle ve SpanStyle eklendi. (I53869, b/187839528)

  • trimFirstLineTop, trimLastLineBottom özellikleri LineHeightBehavior tek bir enum olarak değiştirildi: LineHeightTrim. LineHeightTrim, iki Boole değeriyle tanımlanan 4 durum değerine sahiptir: FirstLineTop, LastLineBottom, Her İkisi ve Hiçbiri (Ifc6a5, b/181155707)

  • LineHeightBehavior, TextStyle ve ParagraphStyle uygulamaları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, LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) aracılığıyla CSS'nin tanımladığına benzer bir davranış elde edilebilir.

  • trimFirstLineTop, trimLastLineBottom yapılandırmaları yalnızca includeFontPadding değeri yanlış olduğunda doğru şekilde çalışır. (I97332, b/181155707)

  • PlatformParagraphStyle.lerp ve PlatformSpanStyle.lerp işlevleri, üst düzey işlevler (I9a268) olarak değiştirildi.

Hata Düzeltmeleri

  • PointerInputChange::copy belgelerinde artık bunun yüzeysel bir kopya olduğu doğru şekilde belirtiliyor. (I182f5)
  • Yükseklik sınırlı olduğunda ve tüm metin satırlarına sığmadığında üç nokta desteklenir (Ie528c, b/168720622).
  • Varsayılan olarak etkinleştirilir includeFontPadding. TextStyle.platformTextStyle özelliğini kullanarak includeFontPadding özelliğini 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ği iyileştirmelerini (aosp/2058653) daha iyi entegre etmemize ve TextField kırpma sorunlarını çözmemize olanak tanır. (I01423, b/171394808)

Harici Katkı (External Contribution)

  • Dikey olarak kaydırdığımızda MouseInjectionScope.scroll(delta = someDelta) artık Android'de ters çevriliyor (someDelta pozitifse aşağı kaydırılır) (Ifb697, b/224992993)

Sürüm 1.2.0-alpha08

20 Nisan 2022

androidx.compose.ui:ui-*:1.2.0-alpha08 iptal edilir. 1.2.0-alpha08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • pluralStringResource işlevleri, gelecekte daha iyi uluslararasılaştırma desteği sunmak için deneysel olarak işaretlendi. (If24e4)
  • Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor. Constraints.maxHeight iletme işlemi ş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 @Stable arayüzü (I9dafe)
  • Kısmi tüketim (aşağı veya konum) PointerInputChange'da kullanımdan kaldırıldı. Değişikliği tamamen kullanmak için consume() kullanabilirsiniz. Başka bir kullanıcının değişikliği daha önce kullanıp kullanmadığını belirlemek için isConsumed simgesini kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturur. Bu, kopyalardan biri kullanıldığında PointerInputChange kopyalarının da kullanılacağı anlamına gelir. Sınırsız bir PointerInputChange oluş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 üst composable'ın 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)
  • Yeni SemanticsProperty testTagsAsResourceId, Compose'un View sistemi için tasarlanmış UIAutomator testlerine uygun hale getirilmesinde kullanılabilir. (I39c20)
  • FontFamily.SansSerif kullanılırken Android'deki sistem yazı tiplerinin tüm ağırlıklarını gösterir. Bu, API 21-28'de sans-serif-medium gibi yedek yazı tipi adlarını dahili olarak kullanır. Bu, 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, konumsal bağımsız değişkenler isteğe bağlı bağımsız değişkenlerden önce gelecek şekilde yeniden sıralandı. (Idafaa)
  • AndroidFont artık TypefaceLoader'ı oluşturucu parametresi olarak alıyor. (I2c971)

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.ui:ui-*:1.2.0-alpha07 iptal edilir. 1.2.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yeni işlev Snapshot.withoutReadObservation { ... } eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan iletilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak istediğiniz ancak gereksiz yeniden oluşturma veya yeniden ölçme işlemlerine neden olmadan değeri okumak istediğiniz kullanım alanlarında bu işlevden yararlanabilirsiniz. (I9f365, b/214054486)
  • ComposeView uzantı özelliği olan consumeWindowInsets, geliştiricilerin Android WindowInsets tüketimini devre dışı bırakmasına olanak tanır. Bu sayede hiyerarşideki ayrı ComposeViews, birbirine müdahale etmeden her biri WindowInsets uygulayabilir. (I0ef08, b/220943142)
  • IME'de ondalık ayırıcıyı dahil etmek için Keyboard.Number'ye alternatif olarak KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'lerdir (I574c5, b/225669674)
  • İşbirliği yapan View sınıfları için View ve Compose arasında iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, Compose'un artık kaydırma 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.Resolver güncellendi.
  • Font(AssetManager, String, ...) desteği sonlandırıldı ve Font(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 includeFontPadding iç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.isAvailableOnDevice uzantısını ekleyin. (I64e31)
  • @ArrayRes ile kullanılmak üzere GoogleFont.Provider oluşturucu ekleyin (Ic5ee1, b/225984280)
  • Compose GoogleFont artık Font(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 iptal edilir. 1.2.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Odaklanılabilir hedefe odaklanma isteğine RequestFocus anlamsal yapı işlemi eklendi. (I17b71)
  • Mevcut düzen yönü sağdan sola ise VectorPainter içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırılması güncellendi. (I79cd9, b/185760237)
  • API uyumluluğu için gölge/ortam renkleri, Modifier.graphicsLayer'nın sondaki parametreleri olarak güncellendi (I3f864, b/160665122)

  • API'de değişiklik yapılmasını önlemek için GraphicsLayerScope üzerinde gölge/ortam rengi için varsayılan uygulamalar eklendi.

  • RSB etkinliklerine etkinlik saati eklendi (Ief8ae)

  • FocusOrder, FocusProperties ile birleştirildi. focusProperties() artık focusOrder()'ün tüm özelliklerine sahip. FocusOrder ve focusOrder() desteği sonlandırıldı. focusRequester kabul eden focusOrder(), focusProperties() ile birlikte kullanılan bir focusRequester() değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler, endişeleri daha net bir şekilde ayırabilir. (I601b7)

  • Hem RecyclerView hem de Compose yükseltildiğinde, alt öğe olarak Compose görünümlerine sahip RecyclerView'larda artık çok daha iyi kaydırma performansı elde edilecek.

  • Yerleşik varsayılan stratejiyi almak için ViewCompositionStrategy.Default ekleyin.

  • Yeni varsayılan strateji olan ve RecyclerView gibi havuz oluşturma kapsayıcılarını düzgün şekilde işleyen ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer'yı 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 composable ek açıklama @VectorComposable'ı kullanacak şekilde güncellendi (I942bc).
  • AnnotatedString.Builder.withStyle (If84d5) öğesinden crossinline'ı kaldırın.

Harici Katkı (External Contribution)

  • compose-ui: ambientShadowColor ve spotShadowColor özelliklerini GraphicsLayerScope öğesine ekleyin (I1ba1a, b/160665122)
  • Çoğul kaynaklar artık pluralStringResource işlevleri aracılığıyla destekleniyor. (Ib2f23, b/191375123)

Sürüm 1.2.0-alpha05

9 Mart 2022

androidx.compose.ui:ui-*:1.2.0-alpha05 iptal edilir. 1.2.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • TextToolbar artık ActionCallback yerine lambda bağımsız değişkenleri alıyor. (Ib2eb9, b/197950089)
  • Çekirdek ve appcompat'teki nullability, Tiramisu DP2 ile eşleşecek şekilde güncellendi (I0cbb7).
  • Ölçülen arayüz artık parentData özelliğini kullanıma sunuyor (I3313f)
  • Modifier.onPlaced ve OnPlacedModifier arayüzü artık kararlı sürümde. (Ib5482)
  • Yaşasın! Compose Animation artık Geliştirici Seçenekleri'ndeki "Animatör süre ölçeği" ayarını destekliyor. (I5a4fc, b/161675988)
  • BeyondBoundsLayout değiştiricisi yerel eklendi (If8b51, b/184670295)
  • Metin: includeFontPadding artık varsayılan olarak devre dışıdır. includeFontPadding=false nedeniyle 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ışırsanız artık IllegalStateException hatası verir. (I888a5, b/199631334)
  • Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
  • RSB kaydırma örneklerini iyileştirin. (I6a596)

Harici Katkı (External Contribution)

  • Kotlinx coroutines 1.6.0 kullanacak şekilde güncellendi (I3366d)

Sürüm 1.2.0-alpha04

23 Şubat 2022

androidx.compose.ui:ui-*:1.2.0-alpha04 iptal edilir. 1.2.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget işlevleri eklendi. Bu işlevler, bir composable işlevin, tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.

    Çoğu durumda, ek açıklamalar compose 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 ComposeNode veya ilgili composable işlevleri kullanma yer alır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran composable işlevlerin, işlev ve composable lambda parametre türleri için ComposableTarget ek açıklaması eklemesi gerekir. Ancak, ComposableTargetMarker ile açıklama eklenmiş bir açıklama oluşturmanız ve ardından ComposableTarget yerine işaretlenmiş açıklamanın kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir composable ek açıklama, uygulayıcı parametresi olarak özelliğin sınıfının tam nitelikli adını içeren bir ComposbleTarget ile eşdeğerdir. ComposableTargetMarker kullanımına ilişkin örnek için anroidx.compose.ui.UiComposable bölümüne bakın. (I38f11)

  • Font(resId, ...) artık kararlı API'de loadingStrategy'yi kullanıyor. (Ief3d2)

  • FontLoadingStrategy artık kararlı API. (I1ee35, b/174162090)

  • Metin'de asenkron yazı tipi yüklemeyi destekleme (I77057, b/214587005)

  • Özel Font.ResourceLoader değerlerini FontFamily.Resolver değerlerine dönüştürmek için köprü API'si ekleyin. (Ia0060)

Hata Düzeltmeleri

  • Sağlanan FontFamily.Resolver, Popup gibi alt bileşenlere aktarılır.
  • Sağlanan Font.ResourceLoader, Popup gibi alt bileşenlere aktarılır. (I48fa5)

Sürüm 1.2.0-alpha03

9 Şubat 2022

androidx.compose.ui:ui-*:1.2.0-alpha03 iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • TextInputSession ve TextInputService'deki notifyFocusedRect yöntemlerinin desteği sonlandırıldı ve bu yöntemler çağrılmayacak. Bunun yerine BringIntoViewRequester kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)
  • RenderNode sap sınıfında destroyDisplayListData yöntemi kullanıma sunuldu (I1e659, b/216660268)
  • SubcomposeLayout önceden oluşturduğunuz çocukların önceden ölçülmesine olanak tanıyan yeni bir API eklendi. (I857ea)
  • Bir composable lambda'yı, durumunu ve ilgili düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren movableContentOf işlevi eklendi. Önceki görüşme kompozisyondan ayrıldığında durum geçici olarak korunur. Lambda'ya yeni bir görüşme kompozisyona girdiğinde ise durum ve ilişkili düğümler yeni görüşmenin konumuna taşınır. Yeni bir arama eklenmezse durum kalıcı olarak kaldırılır ve hatırlatıcılar bilgilendirilir.

    Aynı kompozisyonda bir movableContentOf lambda birden fazla kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Çağrılar kompozisyondan ayrılıp yeni çağrılar girerken durum, çağrılma sırasına göre ilk ayrılan çağrılardan giren çağrılara taşınır. Yeni aramalar tarafından talep edilmeyen tüm durum kalıcı olarak kaldırılır. (Ib4850)

  • FontFamilyResolver artık LocalFontFamilyResolver.current üzerinden kullanılabilir

  • Compose kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için createFontFamilyResolver(context) ve createFontFamilyResolver(context, coroutineScope) eklendi.

  • Paragraf ve Çok Paragraf artık FontFamily.Resolver alıyor

  • TextLayoutResult.layoutInput.fontFamilyResolver artık bu düzen için kullanılan çözümleyiciyi içeriyor. TextLayoutResult.layoutInput.resourceLoader artık kullanılmadığı için kullanımdan kaldırıldı. (Id5a45, b/174162090)

  • Geri dönüş davranışıyla birlikte eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text ve TextField tarafından kullanılır ve FontFamilyResolver aracılığıyla kullanıma sunulur.

  • FontFamilyResolver.preload aracılığıyla yazı tiplerini önceden yükleme desteği

  • FontFamilyResolver.setAsyncLoadContext, eşzamansız yazı tiplerini yüklemek için kullanılan genel coroutine bağlamının ayarlanmasına olanak tanır. (I87fe8, b/174162090)

  • Android'de yeni türde yazı tipi kaynak tanımlayıcıları sağlamak için yeni bir düşük düzeyli API olan AndroidFont eklendi. Örneğin, yazı tiplerini uygulamaya özel bir arka uçtan yükleme, önceden yüklenmiş yazı tiplerini cihaz üzerinde isteğe bağlı olarak bulma veya yazı tipini mevcut Font fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.

  • İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için Font.ResourceLoaded API genişletildi. Uygulama geliştiricilerin bu API'yi doğrudan kullanması önerilmez. Yeni yazı tipi türleri eklemek için AndroidFont bölümüne bakın.

  • Font.AndroidResourceLoader uzantı işlevi, kompozisyon dışında Font.ResourceLoader oluşturulmasına olanak tanır.

  • Kaynak yazı tipi, indirilebilir yazı tipleri XML'sine referans verdiğinde eş zamansız yüklemeye izin vermek için kaynak tabanlı yazı tiplerine loadingStrategy parametresi eklendi. (Ie5aea, b/174162090)

  • Typeface(FontFamily) oluş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ı tipleriyle bu arama 10 saniye boyunca engellenebilir. Bunun yerine FontFamilyResolver.preload kullanın.

  • fontResource(FontFamily): Typeface kullanı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 yerine FontFamilyResolver.preload (If8e7c, b/174162090) kullanın.

  • SubcomposeLayoutState oluşturucusu maxSlotsToRetainForReuse kabul etme özelliği artık kullanımdan kaldırıldı. Bunun yerine, gelecekte yeniden kullanılmak üzere hangi yuvaların korunması gerektiği konusunda daha ayrıntılı kontrol sağlayan yeni bir arayüz olan SubcomposeSlotReusePolicy'yı kabul eden yeni bir oluşturucu vardır. (I52c4d)

  • Color içindeki HSV ve HSL işlevini deneysel olmayan API olarak kullanıma sunar. Oklab renk uzayı artık genel API'dir. (I08fb6, b/180731008)

  • Herkese açık API'de olması amaçlanmayan ve zaten sizin için hiçbir işe yaramayan AndroidComposeTestRule.AndroidComposeStatement kullanımdan kaldırıldı. (Ibc46b)

  • Dahili olarak oluşturulan kt sınıfı yeniden adlandırma (Ia0b9e, b/174162090)

  • FontLoadingStrategy.values kaldırıldı (I42a9d, b/174162090)

  • Global yazı tipi yükleyicinin adı FontFamilyResolver olarak değişti. (I4f773, b/174162090)

  • Masaüstü için yeni yazı tipi yükleme sistemini kullanın. (I9ce5c, b/174162090)

  • FontFamily.Resolver.resolve iadeleri State<Any> (I4406c, b/174162090)

Hata Düzeltmeleri

  • TextField'lar artık odaklandıklarında ve klavye gösterildiğinde klavyenin üzerinde tutulacak. Bu durum, sanal giriş modu ADJUST_PAN olduğunda geçerli olacak. (I8eaeb, b/190539358, b/192043120)
  • Masaüstü, FontFamily.Resolver için yerel birleştirme kullanır.
  • Masaüstü FontLoader desteği sonlandırıldı
  • Masaüstünde yeni createFontFamilyResolver fabrikası (I6bbbb, b/174162090)
  • Yazılım klavyesi giriş türü, metin alanları arasında odak değiştirilirken artık titreme yapmıyor. (I1bf50, b/187746439)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.compose.ui:ui-*:1.2.0-alpha02 iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Döner yan düğmeli giyilebilir cihazlar için Modifier.onRotaryScrollEvent() ve Modifier.onPreRotaryScrollEvent() eklendi (I18bf5, b/210748686)
  • Deneysel View.createLifecycleAwareRecomposer uzantısı ekleme (I0cde6)

Harici Katkı (External Contribution)

  • PointerEvent.scrollDelta.y artık Android'de ters çevriliyor (fare tekerleğini sağa eğdiğimizde artık -1 yerine 1 döndürüyor) (Ia9811)

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.ui:ui-*:1.2.0-alpha01 iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • FontFamily.canLoadSynchronously desteğ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 (Dependency Updates)

  • Artık Kotlin 1.6.10 sü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 iptal edilir. 1.1.1 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList'da NullPointerException ile 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 iptal edilir. 1.1.0 sürümü şu commit'leri içerir.

1.0.0 sürümünden beri yapılan önemli değişiklikler

  • Android 12'deki Aşırı kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmasında yapılan iyileştirmeler
    • Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerine uyacak şekilde düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğmenin 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 iptal edilir. 1.1.0-rc03 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Compose Material 1.1.0-rc03'ü destekleyecek şekilde güncellendi

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-rc01 iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan hata düzeltildi (I7cbfb).
  • SemanticsNodeInteraction.captureToImage() artık HardwareRenderer.isDrawingEnabled() false olduğunda da çalışacak. Bunun için görüşme süresince 'ı etkinleştirmeniz gerekir (Idf3d0).

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-beta04 iptal edilir. 1.1.0-beta04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi.

API Değişiklikleri

  • androidx.core.view içinde boş değerlere izin verme özelliği temizlendi (I7078a, b/204917439)
  • Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya kullanılıp kullanılmadığını kontrol etmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
  • Kullanıcı arayüzü katmanında fare tekerleği kaydırma etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
  • Eşitlik için karşılaştırılacak ve optimizasyonların atlanmasına uygun olacak anahtarları kabul eden deneysel Modifier.composed aşırı yüklemeleri ekleyin. (Ice799, b/205851704)
  • ComposeNotIdleException artık doğrudan Throwable yerine Exception'den başlıyor. Bu nedenle, daha önce Exception yakalayan catch ifadelerinin artık ComposeNotIdleException yakalayabileceğini unutmayın. (I9c217)

Hata Düzeltmeleri

  • IME görünürlüğü değiştiğinde metin tutamaçlarının hareket etmemesi sorunu düzeltildi. (I25f2e)

Sürüm 1.1.0-beta03

17 Kasım 2021

androidx.compose.ui:ui-*:1.1.0-beta03 iptal edilir. 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() ve InjectionScope.dispose() kaldırıldı. Tüm etkinliklerin temizlenmesi ve kapsamın kaldırılması, daha önce olduğu gibi artık çağrılan perform*Input() yönteminin sonunda gerçekleşiyor. (I2bed8)
  • MultiModalInjectionScope.Touch ve MultiModalInjectionScope.Mouse kaldırıldı. Çok formatlı hareketler için dokunma ve fare etkinlikleri yerleştirmek üzere artık MultiModalInjectionScope.touch() ve MultiModalInjectionScope.mouse() kullanabilirsiniz. Bu iki işlev de ilgili modalitenin alıcı kapsamına sahip bir lambda'yı kabul eder. (Idde18)

Hata Düzeltmeleri

  • TouchInjectionScope.swipeWithVelocity içindeki durationMillis için varsayılan değer artık kaydırmanın mümkün olacağı şekilde hesaplanıyor. (I19deb)

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.compose.ui:ui-*:1.1.0-beta02 iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Öğeleri görüntülemek için kaydırma yapmaları amacıyla ebeveynlere istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459).
  • Destek araçları için yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler'de incelemesine olanak tanır. (I4116e)

Harici Katkı (External Contribution)

  • Modifier.pointerHoverIcon (I95f01) eklendi.

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.ui:ui-*:1.1.0-beta01 iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Ebeveynlere istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi. Bu API sayesinde ebeveynler, öğeleri görüntülemek için ekranı kaydırabilir (Ib918d, b/195353459).
  • Destek araçları için yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler'de incelemesine olanak tanır. (I4116e)

Sürüm 1.1.0-alpha06

13 Ekim 2021

androidx.compose.ui:ui-*:1.1.0-alpha06 iptal edilir. Version 1.1.0-alpha06 contains these commits.

API Değişiklikleri

  • ExperimentalComposeUiApi cihazını ViewRootForInspector ve LayoutInfo.ownerViewId cihazından kaldırma (I5c2e3)
  • Daha verimli bir şekilde çalışmak için Layout'a alt öğesi olmayan bir aşırı yükleme eklendi (Ib0d9a).
  • Modüller arası çağrılması gereken Composer yöntemlerinden InternalCompilerApi kaldırıldı (I1aa0b)
  • SemanticsNodeInteraction.performSemanticsAction artık işlevin çağrıldığı SemanticsNodeInteraction değerini döndürü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 öğesi InjectionScope öğesine eklendi.
    • Hem dokunma hem de fare girişi için uzun basma ve çift dokunmanın varsayılan süresi, InjectionScope.viewConfiguration içindeki değerlere göre değiştirildi.
  • İçinde TextField ve DropdownMenu bulunan ExposedDropdownMenuBox'a dayalı ExposedDropdownMenu'nun uygulanması (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ı alarak onDismissRequest'in çağrılıp çağrılmaması üzerinde daha hassas kontrol sağlar. Ö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ı ve Recomposer.currentState ile değiştirildi (Ic2ab3, b/197773820).
  • flush() ve dispose(), InjectionScope öğesine 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)
  • InjectionScope artık Density uyguluyor. Bu sayede performTouchInput ve arkadaşlarında piksel ile dp arasında kolayca dönüştürme 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 iptal edilir. 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)
  • LayoutInfo için density: Density ve layoutDirection: LayoutDirection eklendi. Bu sayede LayoutInfo tüketicileri, LayoutInfo içinde gösterilen boyutları ve konumu doğru şekilde yorumlayabilir. (I002f1)
  • Fare etkinlikleri ekleme için deneysel destek eklendi. Fare etkinliklerini göndermeye başlamak için performMouseInput işlevini kullanın veya performMultiModalInput ile çok formatlı giriş hareketi sırasında MultiModalInjectionScope öğesinin Mouse özelliği aracılığıyla fare etkinlikleri gönderin. Kullanılabilir API'nin dokümanları için MouseInjectionScope adresine 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 iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • PointerEvent artık fareyle üzerine gelme etkinliklerini desteklemek için PointerEventType içeriyor. (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).
  • performTouchInput ve TouchInjectionScope ile değiştirilen performGesture ve GestureScope kullanımdan kaldırıldı. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için minimum dokunma hedefi boyutunu içeren touchBoundsInRoot, SemanticsNode'a eklendi. (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).
  • performTouchInput ve TouchInjectionScope'ı performTouchInput ve TouchInjectionScope'ın yerine kullanıma sunarak diğer yöntemlerin (ör. fare) önünü açtık.

    TouchInjectionScope, GestureScope ile aynı yöntemlere sahiptir. movePointerTo ve movePointerBy yöntemleri updatePointerTo ve updatePointerBy olarak 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. Arada iki küçük fark vardır:

    1. İşaretçiler, taşıma etkinliği gönderilmeden taşındığında (diğer bir deyişle updatePointerTo() kullanılmış ancak move() kullanılmamış ve ardından down() ç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.
    2. İş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öntem currentPosition(pointerId: Int) sunuyor. (If1191, b/190493367)

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 iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Compose 1.1.0-alpha03, Kotlin 1.5.30'e bağlı olacak şekilde güncellendi. (I74545)

API Değişiklikleri

  • Diğer değiştiricileri sarmak için Modifier.inspectable eklendi. (I1909b, b/191017532)
  • Klip işaretleri ve TileMode'ların en çok tercih edilen kombinasyonları için bulanıklaştırma kullanım alanlarını basitleştirmek amacıyla BlurredEdgeTreatment API'si eklendi. Çoğu kullanım alanında, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına ve bu sınırların dışındaki bölgelerin şeffaf siyahla bulanıklaştırılmasına ya da 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 OffsetEffect ve bulanıklık değiştiriciyi kullanıma sunduk. (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'lerin kenar davranışını tanımlamada yararlı olan TileMode.Decal desteği eklendi. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction ve hasScrollToKeyAction artık kararlı API'dir (I142ae, b/178483889).
  • Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)

Hata Düzeltmeleri

  • Şekil parametresinin null olup olmadığını açıkça kontrol etmek için BlurredEdgeTreatment'taki isBounded yöntemi kaldırıldı. (I85d68)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.ui:ui-*:1.1.0-alpha02 iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
  • Yerleştirilen hareketler artık zamanın doğruluk kaynağı olarak MainTestClock'un zamanını kullanıyor. performGesture içine yerleştirilen etkinliklerin geçerli zamanı, MainTestClock'un geçerli zamanı olarak başlatılır. (Ifb364, b/192064452)
  • DpRect(DpOffset, DpSize) oluşturucu eklendi (I2cf16, b/194219828)
  • DpSize sınıfı eklendi (I7abb1, b/194219828)

Hata Düzeltmeleri

  • VectorDrawable'larda ColorStateList'leri kök renk tonu özellikleri olarak desteklemek için 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 iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • RelocationRequester.bringIntoView artık parametre olarak dikdörtgen kabul ediyor. Bu sayede, bir composable'ın bir bölümünü görünüme getirebiliyoruz (Ice2c5, b/194330245).
  • AnimatedImageVector ve ilgili API'ler artık yeni androidx.compose.animation:animation-graphics modü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.

    Brush API, BrushPainter içinde sorgulanan doğal bir boyut parametresine sahip olacak şekilde güncellendi (Ia2752, b/189466433).

  • Kaynak ve hedef dikdörtgenleri kullanan DrawScope#drawImage yöntemi, isteğe bağlı bir FilterQuality parametresini kullanacak şekilde güncellendi. Bu, piksel tabanlı sanat için ölçeklendirildiğinde pikselli olması amaçlanan piksel sanat için kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)

  • Bir hareketteki etkinliklerin zamanlaması üzerinde daha fazla kontrol sağlamak için GestureScope.advanceEventTime yöntemi eklendi (Ibf3e2).

Hata Düzeltmeleri

  • Çizim değiştiricilerin zincirlenmesini daha iyi desteklemek için Modifier.paint uygulamasının drawsContent'i çağırdığından emin olun. Daha önce Modifier.paint'in Değiştiriciler zincirinde bir yaprak düğüm olması bekleniyordu. Ancak bu şekilde, bir composable kapsayıcıda (ör. kutu) yapılandırılması veya üzerine Modifier.paint().border() gibi ek süslemeler eklenmesi engelleniyordu. Modifier.paint'in, verilen painter'ın içeriklerini çizdikten sonra drawContent'i çağırmasını sağlayarak değiştirici kalıbıyla davranışta daha iyi bir tutarlılık elde ederiz. (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 iptal edilir. 1.0.5 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • Türetilmiş durum örneklerinin izlenmesi sırasında yaşanan kilitlenme sorunu düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

androidx.compose.ui:ui-*:1.0.4 iptal edilir. 1.0.4 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

  • Kotlin 1.5.31 sü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 iptal edilir. 1.0.3 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

  • Kotlin 1.5.30 sü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 iptal edilir. 1.0.2 sürümü şu commit'leri içerir.

Compose 1.0.2 sürümünü destekleyecek şekilde güncellendi. Compose 1.0.2, Kotlin 1.5.21 ile uyumluluğunu sürdürüyor.

Sürüm 1.0.1

4 Ağustos 2021

androidx.compose.ui:ui-*:1.0.1 iptal edilir. 1.0.1 sürümü şu commit'leri içerir.

Bağımlılık Güncellemeleri (Dependency Updates)

  • Kotlin 1.5.21 sürümüne bağlı olacak şekilde güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0 iptal edilir. 1.0.0 sürümü şu commit'leri içerir.

1.0.0 sürümünün temel özellikleri

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Release bloguna göz atın.

Bilinen Sorunlar

  • Android Studio Bumblebee Canary 4 veya AGP 7.1.0-alpha04/7.1.0-alpha05 kullanıyorsanız aşağıdaki kilitlenmeyle karşılaşabilirsiniz:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Bu sorunu düzeltmek için build.gradle dosyanızda minSdkVersion'ı geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin 7.1 sonraki sürümünde düzeltilecektir. (b/194289155)

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0-rc02 iptal edilir. 1.0.0-rc02 sürümü şu commit'leri içerir.

Hata Düzeltmeleri

  • İletişim kutuları artık platformun boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth ö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 iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • ui-tooling modülünü ui-tooling ve ui-tooling-preview olarak ayırın (Iefa28, b/190649014)

API Değişiklikleri

  • Kullanımdan kaldırılan deneysel FocusManager#moveFocusIn ve FocusManager#moveFocusOut kaldırıldı (I227d7, b/170154986, b/186567354, b/168510304)
  • Canvas artık erişilebilirlik için contentDescription parametresini destekliyor. (Ib547c)
  • PopupProperties klasöründeki useDefaultMaxWidth, usePlatformDefaultWidth olarak yeniden adlandırıldı. (I05710)
  • İletişim kutuları artık ekran genişliğinin tamamını kullanabilir. (I83929, b/190810877)
  • HSV ve HSL renk gösterimleri için deneysel destek eklendi. (Id7cf8, b/180731008)

Davranış Değişiklikleri

  • Compose @Preview artık rememberLauncherForActivityResult() gibi API'leri kullanan ve bu API'lerin çalışması için LocalActivityResultRegistryOwner'in varlığına bağlı olan Composables'ı önizlemenize olanak tanıyan bir rememberLauncherForActivityResult() sunuyor. (Ib13d1, b/185693006)
  • Compose @Preview artık BackHandler gibi API'leri kullanan ve bu API'lerin sahibinin varlığına bağlı olan Composables'ı önizlemenize olanak tanıyan bir LocalOnBackPressedDispatcherOwner sunuyor. (Ia1c05, b/185693006)

Hata Düzeltmeleri

  • InfiniteAnimationPolicy, androidx.compose.ui:ui'ye 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 iptal edilir. 1.0.0-beta09 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Enum Role ve LiveRegionMode'u özel oluşturucuya (Id1890) sahip satır içi sınıflara dönüştürün.
  • KeyboardCapitalization, satır içi sınıfa dönüştürülür. (Id5a1c)
  • HapticFeedbackType'ı satır içi sınıfa değiştirin. (I255ec)
  • Modifier.pointerInteropFilter is @ExperimentalComposeUiApi. (Iede6c)
  • TextAlign, FontSynthesis ve TextDirection artık satır içi sınıflar. (I212fe)
  • TextOverflow, satır içi sınıfa dönüştürüldü. (I433af)
  • FontStyle artık satır içi bir sınıf. (I9e48b)

Hata Düzeltmeleri

  • Şimdilik temel sabitler @ExperimentalComposeUiApi'dir. Kod tüketenler, sabitlemeden önce ö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)

Eklenen profil kuralları

Bu sürüm, aşağıdaki Compose modüllerine profil kuralları ekler (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Profil kuralları nedir?

  • Bir kitaplığın profil kuralları, src/main veya eşdeğer dizinde bulunan bir metin dosyasında baseline-prof.txt belirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşecek 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ılan H, S ve P karakterlerinden bir veya daha fazlasıdır.

  • <CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin, androidx.compose.runtime.SlotTable sınıfının tanımlayıcısı Landroidx/compose/runtime/SlotTable; olur.

  • <METHOD_SIGNATURE>, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin, LayoutNode üzerindeki fun isPlaced(): Boolean yönteminin imzası isPlaced()Z'dir.

  • Bu kalıplar, tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için joker karakterler (**, * ve ?) içerebilir.

Kurallar ne işe yarar?

  • H işaretine sahip bir yöntem, bu yöntemin "popüler" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.

  • S işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve başlangıçta yöntemin derlenmesi ve yorumlanması maliyetini önlemek için önceden derlenmelidir.

  • P işaretine sahip bir yöntem, başlatma işleminden sonra çağrılan bir yöntem olduğunu gösterir.

  • Bu dosyada bulunan bir sınıf, başlatma 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ıları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, uygulamanın performansını (özellikle ilk çalıştırma) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek üzere uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. 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 iptal edilir. 1.0.0-beta08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • NestedScrollSource enum'unun yerini satır içi sınıf 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, PopupProperties hesabından kaldırılsın mı? (I01fa6)
  • PointerType, enum'dan satır içi sınıfa (If5058) değiştirildi.
  • ContentDescription ve Text anlamsal yapı özellikleri artık tek değer değil, liste olarak kullanılıyor. Bu sayede, birleştirme işlemi yerine olduğu gibi birleştirme yapılabilir. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850).
  • Modifier.focusModifier() desteği sonlandırıldı ve Modifier.focusTarget() (I6c860) ile değiştirildi.
  • Modifier.onSizeChanged() ve Modifier.onGloballyPositioned() artık satır içi işlevler değil (I727f6, b/186109675)
  • KeyboardType enum'unun yerini satır içi sınıf aldı. (I73045, b/187055290)
  • FocusState enum'ı FocusState arayü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.withAnnotation iş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, detectVerticalGestures ve detectHorizontalGestures konum değişikliğini otomatik olarak kullanacak. onDrag geri çağırma işlevlerinde change.consumePositionChange'i çağırmanıza gerek kalmayacak (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 iptal edilir. 1.0.0-beta07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • İnceleyicide kullanılmak üzere ViewRootForInspector arayüzü eklendi (Ib70df)
  • SubcomposeLayoutState artık yeniden kullanılabilir yer sayısını ayarlamayı destekliyor. Düzen, bir sonraki sefer yeni bir aralığa ihtiyaç duyduğumuzda yeniden kullanmak için aralıkları silmek yerine bu sayıya kadar etkin tutar (Ieb981).
  • KeyEventType enum'unun yerini satır içi sınıf aldı. (Id670a, b/187055290)
  • FocusDirection enum'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, artık daha önce görünür olan 2 öğeyi, kaydırılarak görünürlükten çıkmış olsalar bile etkin (kaldırılmamış) tutar. Bu sayede, yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt bileşimleri yeniden kullanmasına olanak tanınır. Bu da kaydırma performansını artırır. (Ie5555)
  • AnnotatedString üzerindeki TextGeomerticTransform ve TextDecoration, belirtildiği şekilde uygulanır. (I61900, b/184760917)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.ui:ui-*:1.0.0-beta06 iptal edilir. 1.0.0-beta06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
  • @ComposeCompilerApi artık @RequiresOptIn değil (Iab690)
  • Koleksiyonu ve öğelerini erişilebilirlik hizmetleri için işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017).
  • 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çin SemanticsProperties.IndexForKey eklendi. Her iki işlem de LazyList tarafından uygulanır.
    • Bir listeyi belirli bir dizine kaydıran SemanticsNodeInteraction.performScrollToIndex ve bir listeyi belirli bir anahtara sahip öğeye kaydıran SemanticsNodeInteraction.performScrollToKey işlevi eklendi. (I4fe63, b/178483889, b/161584524)
  • GraphicLayerInfo'ya ownerViewId eklendi (I19f62)
  • Yazı tiplerini öğelerden, File ve FileDescriptor'dan yüklemek için Font() aşırı yüklemeleri eklendi (I5d382).
  • Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan erişilebilirlik API'si error eklendi (I12997, b/180584804, b/182142737).
  • Yazı tiplerini öğelerden, Dosya ve Dosya Tanımlayıcı'dan yüklemek için Font() aşırı yükleme eklendi (I43007).
  • AnnotatedString'in TextFieldValue.Saver'e kaydedilmesi desteklenir. addTtsAnnotation ve withAnnotation yardımcı işlevleri AnnotatedString.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 iptal edilir. 1.0.0-beta05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Deneysel FocusManager.moveFocus(In) ve FocusManager.moveFocus(Out) özellikleri eklendi (Ic5534, b/183746743)
  • Deneysel performTextInputSelection API'si eklendi (I2dcbb, b/178510628)
  • InputEventCallback arayü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)
  • Kullanımdan kaldırılan TextLayoutResult/createTextLayoutResult işlevi. Bu, test için eklenmiş ve kullanılmayan bir herkese açık işlevdir. Bu işlev, Compose metin API'leri için kullanılabilecek bir işlem yapmaz. Bu işlevin desteği sonlandırılmış olup daha sonra kaldırılacaktır. (I80413)

Hata Düzeltmeleri

  • ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown eriş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 iptal edilir. 1.0.0-beta04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • SoftwareKeyboardController üzerindeki hideSoftwareKeyboard ve showSoftwareKeyboard öğelerini sırasıyla hide() ve show() olarak yeniden adlandırın.
    • LocalSoftwareKeyboardController için tam CompositionLocal arayüzünü sağlayarak ayarlanmasına izin verin (özellikle testlerde kullanışlıdır) (I579a6)
  • LiveRegion erişilebilirlik API'si eklendi. Düğüm canlı bölge olarak işaretlenirse erişilebilirlik hizmetleri, kullanıcılara değişiklikler hakkında otomatik olarak bildirim gönderir (Idcf6f, b/172590946).
  • TextOverflow.Visible özelliği kullanıma sunuldu. (Ic8f89)

Hata Düzeltmeleri

  • Kenarlarda bulunan LazyColumn/LazyRow öğelerinin hızlı kaydırma işleminden sonra yanlış konumlandırılması sorunu düzeltildi (Ie4d13, b/183877420).
  • AndroidViewBinding artık AndroidViewBinding, oluşturma hiyerarşisinden kaldırıldığında FragmentContainerView aracılığıyla şişirilmiş parçaları düzgün şekilde kaldırıyor. (Ib0248, b/179915946)
  • AndroidViewBinding artık ComposeView, Fragment içinde olduğunda FragmentContainerView aracı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 sonra FragmentContainerView aracı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 iptal edilir. 1.0.0-beta03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ComposeView'un ViewTree bağımlılıkları için ertelenmiş kontrol (I8dbbf, b/182466548)
  • GestureScope içindeki swipeUp/swipeDown/swipeLeft/swipeRight işlevlerine isteğe bağlı startX/endX ve startY/endY parametreleri eklendi. (I49e2d, b/182063305)

Sürüm 1.0.0-beta02

10 Mart 2021

androidx.compose.ui:ui-*:1.0.0-beta02 iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I5951e, b/168778053)
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I84472, b/168778053)
  • Aşağıdaki SemanticsMatcher kaldırıldı:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • Aşağıdaki SemanticsMatchers öğ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:ui artık AppCompat veya Fragment'e bağlı değil. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3+ / Fragment 1.3+ sürümlerini kullandığınızdan emin olun. Bu sürümler, ComposeView için gereken yaşam döngüsü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak için gereklidir. (I1d6fa, b/161814404)
  • navigation-compose hedefinde kullanıldığında bozuk olan rememberSaveable { mutableStateOf(0) } düzeltildi. (I1312b, b/180042685, b/180701630)
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I658b6, b/168778053)
  • ComposeRootRegistry'nın tearDownRegistry() bölümünde nadir görülen NoSuchElementException hatası düzeltildi (Iddce1).

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.ui:ui-*:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.

Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.

API Değişiklikleri

  • onStart geri çağırması detectDragGestures'ya eklendi (I67269, b/179995594)
  • İçerik boyutlandırma değiştiricileri artık deneysel değildir. (I15744)
  • MeasureBlocks, MeasurePolicy olarak yeniden adlandırıldı ve eğlenceli bir arayüze dönüştürüldü. Düzen API'leri, MeasurePolicy'yi kullanacak şekilde güncellendi / basitleştirildi. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi.
    • Arayüzler, etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
    • interactionState = remember { InteractionState() } değerini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } kullanın.
    • Interaction.Pressed in interactionState yerine InteractionSource.collectIsPressedAsState() gibi InteractionSource'taki uzantı işlevlerini kullanmanız gerekir.
    • Karmaşık kullanım alanlarında, Etkileşimler akışını gözlemlemek için InteractionSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için InteractionSource 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).
  • Typealias'ler temel türlerle değiştirildi:
    • ColorStop adlı bankanın yeni adı Pair<Float, Color>
    • SpanStyleRange artık `AnnotatedString.Range
    • ParagraphStyleRange adlı bankanın yeni adı AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation adlı 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).
  • compositionLocalOf ve staticCompositionLocalOf için defaultFactory artık isteğe bağlı değil, zorunlu.

    Bu değişiklik, varsayılan fabrika sağlanmayan, boş değer atanamayan türlerdeki olası bir tür hatasını giderir. 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 defaultFactory lambda 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.tapGestureFilter kaldırıldı. Bunun yerine Modifier.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ön, temel pakete taşındı. VelocityTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)

  • imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector yardımcı sınıflarında uzantı işlevleridir. load{Image,Vector,Font}Resource işlevi silindi. (I89130)

  • AnimationClockObservable ve alt sınıfları kaldırıldı. AnimatedFloat kaldırıldı. (Icde52, b/177457083)

  • Providers, CompositionLocalProvider olarak yeniden adlandırıldı.

    • Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı.
    • ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
    • ComposableLambdaN, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri yok.
    • snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değ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-alpha01 adresinden alınan kodu kullanın. viewModel() ve LocalViewModelStoreOwner, 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 yeniden düzenlenmiş kullanımlar, String.format'ı dahili olarak kullanmayacak şekilde değiştirildi. (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)

  • runBlockingWithManualClock kaldı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 icon parametresi, selected ve onClick sonrasına taşındı.
    • BottomNavigationItem'daki alwaysShowLabels parametresinin adı alwaysShowLabel olarak değiştirildi.
    • Birkaç bileşendeki bodyContent parametreleri content olarak 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. Adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde kodunuz eskisi gibi çalışmaz.
    • darkColors() listesine secondaryVariant parametresi eklendi. Bu renk genellikle koyu temadaki secondary ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.
    • Yaygın olarak kullanılmadıkları / faydalı olmadıkları için ElevationDefaults ve animateElevation() işlevleri herkese açık API yüzeyinden kaldırıldı.
    • Slider içindeki onValueChangeEnd, onValueChangeFinished olarak yeniden adlandırıldı ve boş değer atanabilir hale getirildi.
    • Tutarlılık için Snackbar içindeki text parametresi content olarak yeniden adlandırıldı.
    • Varsayılan dolguyu özelleştirmeye olanak tanımak için DropdownMenuItem öğesine contentPadding parametresi eklendi ve content, RowScope öğesinin uzantısı haline getirildi.
    • ModalDrawerLayout, ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout, BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Hata Düzeltmeleri

  • Compose'da AnimatedVectorDrawable kaynaklarını kullanmak için API eklendi. AnimatedImageVector olarak bir <animated-vector> XML'si yüklemek ve bunu painterFor ile (I8ea91) canlandırmak için animatedVectorResource'u kullanın.
  • 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 iptal edilir. 1.0.0-alpha12 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ViewGroups desteği UiApplier'dan kaldırıldı. Kullanımdan kaldırılan emitView composable'ları kaldırıldı. (Ifb214)
  • Modifier.pointerInput artık işaretçi girişi algılama 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 olarak yeniden adlandırıldı (I4b32a)
  • Test güncellemesi: hasText(), metin alanındaki hem giriş hem de etiket/ipucu/yer tutucu metinleri kontrol edecek (Iab803)
  • viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose'a taşındı. Artık bu işlevi kullanmak için ayrı bir bağımlılık olan androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01'i eklemeniz gerekecek. (I7a374)
  • AccessibilityAction'da null değer atanabilir işleme izin 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 destructuring 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çinde focusable parametresine taşındı.
  • İletişim kutusu platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
  • LayoutNode dahili hale getirildi (I8a7b1, b/175103944)
  • Constraints.enforce, Constraints.constrain ile değiştirildi. (I8b8ea)
  • loadFontResource desteği sonlandırıldı. Bunun yerine fontResource'u kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
  • Performans nedeniyle, ScrollAxisRange semantiği artık doğrudan Float değerleri yerine Float döndüren lambda'ları 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).
  • Made OwnerLayer/OwnerScope/OwnerSnapshotObserver internal (I4ffaf, b/175103944)
  • toIntPx() işlevinin adı roundToPx() olarak değiştirildi. (I9b7e4, b/173502290)
  • IntBounds, IntRect olarak yeniden adlandırıldı ve API 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)
  • Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşmesi için Ambients 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ıp remember { mutableStateOf(0) } gibi kullanımları desteklediğimiz gibi, savedInstanceState { 0 } composable'ı da kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmalısınız. Bu, MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa otomatik olarak kaydedip geri yükler. Daha önce özel bir kaydedici nesne iletiyorsanız artık stateSaver parametresine sahip yeni bir rememberSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şöyle görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Erişilebilirlik için şifre semantiği eklendi (I231ce)
  • Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05).
  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programlarının artık olumlu bir performans etkisi veya değeri olmadığından desteği sonlandırıldı (I0484d).
  • snapshotFlow ve withMutableSnapshot artık deneysel değil (I6a45f)
  • Yeniden oluşturucular artık kapatılabilir. Kapalı yeniden oluşturucular, alt coroutine'ler tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatma ile karşıtlık oluşturması için iptal olarak yeniden adlandırıldı. (Ib6d76)
  • UiSavedStateRegistry, SaveableStateRegistry olarak, AmbientUiSavedStateRegistry ise AmbientSaveableStateRegistry olarak yeniden adlandırıldı ve her ikisi de androidx.compose.runtime.saveable paketine taşındı. (I30224)
  • Artefact androidx:compose:runtime:runtime-saved-instance-state, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac).
  • ui 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 InfiniteAnimationPolicy coroutine bağlamı öğesi eklendi. ComposeTestRule ile 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ğlayacak (Idfbfd, b/177926591).
  • tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.clickable veya Modifier.pointerInput ile detectTapGestures işlevini kullanın. (I6baf9, b/175294473)
  • SaveableStateRegistry'nin unregisterProvider'ı kaldırıldı. Bunun yerine, artık registerProvider() işlevi, kaydı silmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739).
  • rememberSavedInstanceState(), 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)
  • Doğrudan WindowManager'a eklenen/kaldırılan hiyerarşilerde Compose'un kullanıldığı testler artık daha kararlı. (Ie81ed, b/175765614)
  • Recomposer.current() kaldırıldı. [Abstract]ComposeView artık pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, pencere kapsamlı ve geç oluşturulan Recomposer'ları varsayılan olarak kullanıyor. Ana makinenin yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon işaretleri duraklatılır. (I38e11)
  • Recomposer.runningRecomposers artık işlemdeki devam eden kompozisyon durumunu gözlemlemek için salt okunur RecomposerInfo'nun genel bir StateFlow'unu sunuyor. Artık desteği sonlandırılan Recomposer.current() yerine bu API'yi tercih edin. (If8ebe)
  • Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate'ten androidx.compose.runtime.saveable'a taşındı (I77fe6).
  • EditCommands, AnnotatedString'i kabul eder. Ancak bu değişiklik yalnızca API'de geçerlidir ve çok stilli metin düzenleme henüz uygulanmamıştır. (I4c3ea)
  • Çalışma süresi ve süre kaldırıldı. (Ib9bf4, b/177420019)
  • CompositionData.asTree() ve ilgili API'ler ayrı bir ui-tooling-data modülüne taşındı ve deneysel olarak işaretlendi (Ic95b8)
  • RounderCornerShape, CutCornerShape ve CornerBasedShape üzerindeki parametreler, şeklin rtl 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 gelen StringBuilder.deleteAt işlevini kaldırma (Id6ed9)

Hata Düzeltmeleri

  • Başka bir kompozisyonun alt öğeleri olan görünüm hiyerarşilerine yerleştirilen ComposeView'lar artık üst öğelerinin alt kompozisyonlarını barındırıyor (I92883).
  • ImageBitmap nesneleri yüklenirken kaynak çizilebilir öğ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 iptal edilir. 1.0.0-alpha11 sürümü şu commit'leri içerir.

API Değişiklikleri

  • WithConstraints, BoxWithConstraints olarak yeniden düzenlendi ve foundation.layout'a taşındı. (I9420b, b/173387208)
  • Key.DPadUp 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ştirilir. Bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldırır. (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365).
  • Vektör grafiklerinin köküne uygulanan renklendirmenin ayrıştırılmasını desteklemek için vektör grafikleri API'si güncellendi. (Id9d53, b/177210509)
  • Cihazları ayırt etmek için PointerInputChange'e toolType eklendi (Iac787, b/175142755)
  • AmbientWindowManager, AmbientWindowInfo olarak yeniden adlandırıldı (I2686a, b/177084714, b/177084983)
  • 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'un yoğunluğu uygulayan sürümü güncellendi. (Ied528, b/176819695)
  • Satır ağırlıklı sıralamayı takip etmek ve farklı matris temsilleri 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 adlı öğretmen aşağıdaki sınıflardan kaldırıldı:
    • InlineTextContent
    • LocaleList (I605c7)
  • Aşağıdaki sınıflar artık veri sınıfları değildir:
    • AnnotatedString
    • ParagraphStyle
    • SpanStyle
    • TextStyle
    • FontWeight
    • TextDecoration
    • TextGeometricTransform
    • TextIndex
    • TextLayoutResult
    • TextLayoutInput (Iaff99)
  • VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4).
  • İşlev referansı parametre türü (I5e1bd) eklendi.
  • Dönüştürülmüş sınırları InspectorNode'a ekleyin (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).
  • ComposeContentTestRule tanıtıldı. Bu, ComposeTestRule öğesini genişletir ve ComposeTestRule öğesinden kaldırılan setContent öğesini tanımlar. createEmptyComposeRule() döndüren ve sizin için bir Etkinlik başlatmayan bir fabrika yöntemi ComposeTestRule eklendi. Testiniz sırasında Etkinliğinizi başlatmak istediğinizde bu özelliği kullanın. Örneğin, ActivityScenario.launch (I9d782, b/174472899) kullanma

  • animateAsState artık animateFooAsState olarak adlandırılıyor. Burada Foo, animasyon uygulanan değişkenin türünü (ör. Float, Dp, Offset vb.) ifade ediyor (Ie7e25).

  • Resim ve simgeye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c).

  • displaySize, kullanılmaması gerektiğinden kaldırı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 bildirir. (I36b78, b/177562900)

  • emit() API'si ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler aynıdır. Yalnızca Compose'un adlandırma kurallarına (I4137b) uymak için farklı bir ada sahiptir.

  • 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 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ıya ve yeniden adlandırılmış yöntemlere sahip CompositionLifecycleObserver yerine kullanılan bir yöntemdir. 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ırsa onRemembered, yalnızca bir kez çağrılan onEnter yerine her referans için çağrılır. onEnter Nesne, WithConstraints ve Scaffold gibi alt bileşimlerde kullanılıyorsa birden çok kez çağrılıyordu. Bu durum, tek onEnter çağrısı garantisini güvenilmez hale getiriyordu ve RememberObserver için kaldırıldı.

    RememberObserver örneği, remember'ye iletilen geri çağırma işleminden döndürülürse ancak beste durumunda hatırlanmazsa RememberObserveronAbandoned eklenir ve bu nedenle onRemembered hiçbir zaman çağrılmaz. Bu durum, bir istisna nedeniyle kompozisyon tamamlanmadan sonlandırılırsa veya kompozisyon, durum artık geçerli olmadığı ya da başka bir nedenle gerekli olmadığı için atılırsa oluşabilir. Yukarıdaki tek referans önerisini izleyen RememberObserver örneği harici bir kaynağı izliyorsa hem onForgotten hem de onAbandoned, kaynağın artık gerekli olmadığını gösterir. Nesne, onRemembered içinde başlatılan işi veya ayrılan kaynakları izliyorsa onRemembered çağrıldığında onAbandoned ç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 belirtilmeyen (ör. public.xml aracılığıyla) kitaplıklardaki kaynaklar artık varsayılan olarak özeldir. (Ia1dcc, b/170882230)

  • ScrollableColumn/Row kullanımdan kaldırıldı. Kaydırılabilir çok sayıda içeriğiniz olduğunda ScrollableColumn kullanmak LazyColumn'a kıyasla daha az verimlidir. Bunun nedeni, LazyColumn ile yalnızca görünür öğeleri oluşturup ölçüp çizebilmemizdir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanılmasını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni items(count: Int) fabrika yöntemi. items(items: List) ve itemsIndexed(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) ve itemsIndexed(Array) (I803fc, b/175562574)

  • Lütfen ImeAction.NoAction yerine ImeAction.None kullanın.

    • Lütfen ImeAction.Unspecified yerine ImeAction.Default'u 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 iptal edilir. 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 @Composable işlevleri tamamlandıktan sonra, bileşim sonucunda oluşturulan düğümlerdeki değişikliklerin bileşimin "değişiklikleri uygula" aşamasında toplu olarak 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 SideEffect composable'a yerleştirerek çö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şlevinin adı applyTo olarak değiştirildi.
    • InputEventListener, InputEventCallback olarak yeniden adlandırıldı.
    • (I0a366)
  • Kullanılmayan PxSquared, PxCubed, 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)
  • @ExperimentalTesting, benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olması için @ExperimentalTestApi olarak yeniden adlandırıldı.
  • Color.useOrElse() işlevinin adı Color.takeOrElse() olarak değiştirildi (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)
  • [Abstract]ComposeView API'lerini, 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ıyacak şekilde 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ı, "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ık animateAsState() ile değiştirildi. Bu işlev, T yerine State<T> değerini 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ışlamayı sağlayan yeni coroutine tabanlı API Animatable.
    • Çok boyutlu azalma animasyonunu desteklemek için yeni DecayAnimationSpec
    • (I820f2, b/168014930)

Sürüm 1.0.0-alpha09

16 Aralık 2020

androidx.compose.ui:ui-*:1.0.0-alpha09 iptal edilir. 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 desteği sonlandırıldı. Bunun yerine Modifier.onKeyEvent ve Modifier.onPreviewKeyEvent kullanın (Idbf1b, b/175156384)
  • Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
  • İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope, AwaitPointerEventScope olarak, handlePointerInput() ise awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)
  • Otomatik Doldurma API'si artık deneysel bir API ve etkinleştirme gerektiriyor (I0a1ec)
  • FocuSRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
  • accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
  • Özel etkinlikler, 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)
  • Daha fazla LayoutNode üyesi dahili olarak işaretlendi (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 kaydırma sistemi eklendi. Daha fazla bilgi için Modifier.nestedScroll'a bakın (I36e15, b/162408885).
  • subcomposeInto(LayoutNode) dahili hale getirildi (Id724a)
  • Applier arayüzü, ağaç oluşturma sürecini yukarıdan aşağıya değil aşağıdan yukarıya doğru basitleştirecek şekilde değiştirildi.

    insert() yöntemi, insertTopDown() olarak yeniden adlandırıldı.

    Yeni bir yöntem (insertBottomUp()) eklendi.

    Bir uygulayıcı, hangi yöntemin daha iyi performans gösterdiğine bağlı olarak insertTopDown() veya insertBottomUp() kullanarak düzenlediği ağaca düğümler ekler.

    LayoutNode ve View gibi 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çin Applier , insertBottomUp()yukarıdan aşağıya doğru oluşturmak için ise insertTopDown() geçersiz kılını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)

  • Painter nesnelerinin, rasterleştirilmiş öğe biçimlerinden (ör. PNG'ler) veya VectorDrawable'lardan 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ı iptal edilebilir.

  • ComposeIdlingResource'un genel kaydı kaldırıldı ve saatlerin ComposeIdlingResource'a genel 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 nesnesinde fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed 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 iptal edilir. 1.0.0-alpha08 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Anlamsal işlem olarak Kapat'ı ekleme (I2b706)
  • DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılmış API'lerden mevcut API'lere geçişe yardımcı olmak için tür adları/yardımcı yöntemler 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)
  • Yeni yöntemler olan placeable.placeWithLayer() ve placeable.placeRelativeWithLayer() eklendi. Bu yöntemler, özel düzenlerin ve düzen değiştiricilerin, çizim için grafik katmanı oluşturarak alt öğe yerleştirmesine olanak tanır. Bu sayede, önce yeniden çizimleri optimize edebiliriz. Böylece, bir alt öğeyi taşımamız gerektiğinde içeriğini yeniden çizmemiz gerekmez. İkinci olarak, bir alt öğe için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831).
  • <T>, SubcomposeLayout bildiriminden kaldırıldı. Artık tür belirtmeden kullanabilirsiniz. (Ib60c8)
  • drawLayer için kolaylık olarak Modifier.scale/rotate API'leri eklendi.
    • Modifier.drawOpacity, Modifier.alpha olarak yeniden adlandırıldı
    • Modifier.drawShadow, Modifier.shadow olarak yeniden adlandırıldı (I264ca, b/173208140)
  • PointerInputData'nın çalışma süresi ve konum alanları null 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)
  • pivotFractionX ve pivotFractionY değerlerini component1 ve component2 olarak döndürmek için TransformOrigin API'si, yapı bozma söz dizimi içerecek şekilde güncellendi (If43c4, b/173586560).
  • Compose yönergeleriyle tutarlılığı kontrol etmek için composable lambda parametre adlandırma ve konumuyla ilgili lint kontrolü eklendi. Ayrıca, lint kontrolü ve yönergelere göre, sondaki lambda'ları için ad olarak children kullanan bazı API'leri content olarak taşıdı. (Iec48e)
  • Bir tuş olayı gönderildiğinde Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol etmek için API eklendi. (I50ed9)
  • Yeni bir Modifier.drawLayer() aşırı yü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).
  • Sona Ambient eklenerek adlandırılan ve desteği sonlandırılan Ambients'ı, diğer Ambients ve Compose API yönergelerine uygun olarak Ambient önekiyle başlayan yeni özelliklerle değiştirdik. (I33440)
  • androidx.compose.ui.text.Typeface, androidx.compose.ui.text.font.Typeface konumuna taşındı (Ic2b81)
  • Semantics bağımsız değişkeni mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Yön kilitleme dahil olmak üzere işaretçi girişi API'sini askıya alan yeni sürükleme hareketi algılayıcı. (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şlevine zIndex parametresi eklendi. Böylece Modifier.zIndex() artık LayoutModifier olarak çalışıyor ve tüm özel düzenler, yerleştirme bloğunda alt öğelerinin zIndex'lerini ayarlayabiliyor (I711f7, b/171493718).
  • 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ı, 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, LayoutIdParentData için layoutId olarak yeniden adlandırıldı. Measurable.id, Measurable.layoutId olarak yeniden adlandırıldı. (Iadbcb, b/172449643)
  • Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan özellikler de dahil olmak üzere yeni çoklu dokunma hareketi algılayıcı. (Ic459d)
  • SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
  • Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521).
  • Coroutine tabanlı kaydırma API'leri ekleyin:

    LazyListState.snapToItem ve LazyListState.smoothScrollBy'ı ve kaydırma kontrolü için daha düşük düzeyli API'leri ekler. Bu API'ler, kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, kaydırma işlemi tamamlanana kadar bekler ve ardından geri döner. (Ie5642)

  • Modifier.focusable, foundation'a eklendi. Bu özelliği, doğru anlamsal yapı ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için kullanın. (I41eb9, b/152525426, b/162865824)

  • AnimationClockTestRule'daki yöntemlerin ve özelliklerin, clock'ya (I7ea3d, b/173399709) devredilebilecek varsayılan uygulamalarını sağlayın.

  • AndroidComposeTestRule artık özel etkinlik başlatıcılarını kabul edebilir (Ib8288, b/153623653, b/154135019)

  • TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. TextLayoutResult.getLineEnd, 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 (I4a675, b/172239032)
  • Metin okuma motoru için TtsAnnotation'ı destekler. (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 olanak tanıyan bir seçenek geçici olarak eklendi (I1403b, b/173402197).
  • Android Typeface sarmalayıcısı eklendi. typeface işleviyle Android yazı tipi yükleyebilirsiniz (ör. typeface(Typeface.DEFAULT)). Ayrıca typefaceFromFontFamily() olan eski aile yerini typeface() olarak yeniden adlandırdı (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 iptal edilir. 1.0.0-alpha07 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Tekdüze olmayan ölçeklendirme kullanım alanlarını desteklemek için yatay ve dikey eksenlerin ölçeklendirme faktörlerini birbirinden bağımsız olarak temsil eden ScaleFactor inline sınıfı kullanıma sunuldu.
    • ContentScale'e computeScaleFactor yöntemi eklendi.
    • Kaynak sınırlarını, hedefi tamamen kaplayacak şekilde uzatmak için tek tip olmayan ölçeklendirme gerçekleştirmek üzere ContentScale.FillBounds eklendi.
    • ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
    • (Ic96a6, b/172291582)
  • Hizalamalar oluşturmak için BiasAlignment ve BiasAbsoluteAlignment fabrikaları eklendi. (Iac836, b/169406772)
  • 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üşümlerini (rotationX/rotationY) tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
  • Geri çağırma olmadan SelectionContainer eklendi (Ibfadb)
  • ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad).
  • FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7).
  • Kafa karıştırıcı olduğu için drawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
  • MeasureResult, MeasureScope'un dışına taşındı. (Ibf96d, b/171184002)
  • Düzenle ilgili çeşitli semboller androidx.compose.ui'dan androidx.compose.layout.ui'ya taşındı. (I0fa98, b/170475424)
  • Kullanımdan kaldırılan FocusState2 kaldırıldı (I686cb, b/168686446)
  • ZIndexModifier artık dahili (I1808b, b/171493718)
  • Gereksiz kutulama işlemlerini önlemek için lerp yönteminin boyut parametrelerindeki dönüş türü, boş olmayan bir boyut döndürecek şekilde güncellendi. (Ib0044)
  • kotlinx-coroutines-test'in runBlockingTest'ini kullanarak kompozisyon çerçevesi etkinliklerinin beklenmesi için Compose'un MonotonicFrameClock'una dayanan kodu test etmek üzere TestMonotonicFrameClock eklendi (I4402f).
  • Removed GestureScope.localToGlobal (I15299, b/171462785)
  • onAllNodesWithSubstring bulucu eklendi (I81dd7, b/171462889)
  • androidx.ui.test modülünün desteği sonlandırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4'e geçin (I452e8).

Hata Düzeltmeleri

  • captureToBitmap, captureToImage olarak değiştirildi. (I86385)
  • foundation.Text desteği sonlandırıldı ve yerine material.Text getirildi. 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)
  • Rename KeyboardOptions as ImeOptions (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 desteği sonlandırıldı. Bunun yerine BasicTextField'ı kullanın. (I896eb)
  • ui-test-junit4 modülünü kullanıma sunma (Ib91f8)
  • relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtmeyi kolaylaştırmak için paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
  • LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için LaunchedEffect'in konu parametreleri olmadan kullanılmasına izin verilmez. (Ifd3d4)
  • Yapılandırma güncellendiğinde yeniden oluşturulan birleştirilebilir kaynaklar kullanıma sunuldu. (I6387c, b/167352819)
  • Recomposer artık oluşturma sırasında CoroutineContext gerektiriyor (Ic4610)
  • Birden fazla Modifier.zIndex() uygulandığında zIndex değerlerini toplar. Daha önce ilk teklif kazanıyordu. (Ic514c, b/170623936)
  • Herkese açık API'yi etkilememesi gereken dahili SlotTable uygulamasında yapılan değişiklikler. (If9828)
  • Klavyede otomatik düzeltme IME seçeneği eklendi (I57b8d)
  • androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb).
  • KeyboardOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)

Harici Katkı (External Contribution)

  • androidx.compose.ui:ui-text-android (Ib93fa) adlı dahili yapının yayınlanması devre dışı bırakıldı.

Sürüm 1.0.0-alpha06

28 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha06 iptal edilir. 1.0.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Recomposer artık bir CompositionReference ve geçerli bir kompozisyon üst öğesidir. Açıkça yeniden oluşturma ö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)
  • Move SimpleContainer into PopupTestUtils.kt (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 olarak 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)
  • Kapsamlı değişiklik: Yalnızca tüketim verilerinin işaretçi etkinliklerinde değiştirilebilmesi gerektiğinden PointerInputFilter.onPointerEvent(...) öğesinden dönüş değeri kaldırıldı. 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 merkez pivot parametresini alacak şekilde güncellendi.
    • Diğer dönüştürme yöntemleriyle eşleşmesi için DrawScope.rotateRad, dönme noktası için bir Offset kullanacak şekilde güncellendi.
    • Pivot noktasının x ve y koordinatları için kayan nokta değerlerini kullanan, DrawScope.rotateRad aşırı yüklemesi kullanımdan kaldırıldı.
    • (Iffcbb, b/170434992)

Hata Düzeltmeleri

  • androidx için MissingGetterMatchingBuilder ile ilgili API lint kontrolü etkinleştirildi (I4bbea, b/138602561)
  • Test ekleyin. (I6b8ae)
  • ComposeTestRule'da geçişleri etkinleştirin. Yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)
  • Klavye Büyük Harf IME Seçeneği eklendi (I8ac38)
  • CoreTextField'e tek satırlık klavye seçeneği eklendi (I72e6d)
  • Move SimpleContainer into PopupTestUtils.kt (I65c3e)
  • Compose'da nasıl kullanıldığını daha iyi ifade etmek için Radius API'nin adı CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirten doküman güncellendi. (I130c7, b/168762961)
  • ACTION_DOWN dışındaki tüm işlemler için onTouchEvent'te false döndüren alt Android görünümlerine MotionEvent'ler göndermeye devam ederek Android birlikte çalışabilirliği iyileştirildi (I94c5a, b/170320973).
  • Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)

Harici Katkı (External Contribution)

  • AnnotatedString.capitalize ve AnnotatedString.decapitalize için farklı yerel ayarları destekleme (I4aa7f)

Sürüm 1.0.0-alpha05

14 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Müfettiş bilgilerini belirtmek için DSL ekleyin (Ic9a22)
  • LongPress'i Text'e taşıyın. (Iff2bc)
  • Deneysel değiştirici.pointerInput, giriş değiştiriciyi askıya alıyor (Ia77d2)
  • Kopyalama/yapıştırma/kesme erişilebilirlik işlemleri eklendi (I6db4f)
  • AndroidOwner için herkese açık oluşturucu kaldırıldı (Iacaef)
  • Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE'u devralıyor. Bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149).
  • Tüketim verileri artık değiştirilebilir. Ayrıca, tüketim yapan uzantı işlevlerine yapılan çağrılar artık yeni bir PointerInputChange döndürmüyor, bunun yerine sağlanan PointerInputChange'i değiştiriyor.

    Bu, PointerEvent verilerini değiştirilebilir hale getirmek için 2 adımlı sürecin ilk adımıdır. Böylece diğer işaretçi verileri kullanıcı koduyla düzenlenemez. İkinci adımda, List<PointerInputChange> dönüş türü PointerInputFilter.onPointerEvent(...) öğesinden kaldırılacak. (Id067e)

  • Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)

  • Made onGloballyPositioned an inline function (I15830)

  • OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() ise onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)

  • hasPendingMeasureOrLayout özelliği, Sahip'e eklenerek Sahip'in bekleyen düzen çalışması olup olmadığı belirtildi. (I3d9f8, b/169038599)

  • Odaklanmayı programatik olarak temizlemek için API eklendi (Ie1dc2, b/161487952)

  • PointerInputFilter.onPointerInput(...) kaldırıldı. PointerInputFilter.onPointerEvent(...) kullanılmalıdır. (I6f04a)

  • Boyutla ilgili 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'i Color.Unspecified olarak yeniden adlandırın (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 uygulamanın çeviri yapmasına neden oluyorsa işaretçi giriş koordinatları yanlış hale geliyordu. (Ic4cec, b/163077821)

Sürüm 1.0.0-alpha04

1 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Geçerliliğini 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.
    • DrawScope ve DrawTransform'taki x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresini kullanacak şekilde ölçek ve döndürme dönüştürme API'leri güncellendi
    • Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı.
    • Yarıçap 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 yerine Rect.translate kullanımdan kaldırıldı
    • RoundRect.grow ve Rect.shrink API'leri kaldırıldı
    • RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı.
    • RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
    • RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
    • RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı.
    • RoundRect.center işlevi, özellik olarak değiştirildi.
    • RoundRect oluşturucusu, x/y yarıçap değerleri için ayrı parametreler yerine 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ım API'si eklendi.
    • Çeşitli RoundRect uzantısı işlevleri, özellikler olarak taşındı.
    • (I8f5c7, b/168762961)
  • foundation.Box desteği sonlandırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
  • Stack'in adı Box olarak değiştirildi. Daha önce mevcut olan Box, compose.foundation.layout'taki yeni Box lehine kullanımdan kaldırılacak. Yeni kutunun davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, önceki kutunun davranışından farklıdır. Önceki kutu, sütuna benzer şekilde davranıyordu. (I94893, b/167680279)
  • Kutu dekorasyonu parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine değiştiricileri (Modifier.background, Modifier.border, Modifier.padding) kullanın (Ibae92, b/167680279).
  • Birçok grafik API'si güncellendi.
    • Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için kapsamlı dönüşüm yöntemleriyle DrawScope API'leri güncellendi.
    • clipPath belgeleri, yuvarlatılmış 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ı.
    • Inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı.
    • 4 sınıra aynı içe yerleştirme değerini sağlayan içe yerleştirme aşırı yüklemesi eklendi.
    • İç kısma yerleştirme yönteminin 4 tarafa da 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 beklenmeyen 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 iptal edilir. 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(), Owner adlı alandan kaldırıldı. OwnedLayer geçersiz kılma işlemlerini yönetir. (Ica72b, b/162061312)
  • Offset parametrelerini kullanan Size API'deki operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu net değildir ve sonuç türü beklenmediktir. Örn. boyut - fark döndürmeli mi? Farklı bir boyut sonucu 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)
  • createAndroidComposeRule ve AndroidInputDispatcher, androidx.ui.test.android konumundan androidx.ui.test konumuna taşındı (Idef08, b/164060572)
  • Düzen API'lerinde yer çekimi kullanımları, düzenle veya düzenleme olarak 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 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • remove callback to notify Owner when layoutnode bounds change. (If654e, b/166106882)
  • Şekillerin evenOdd veya NonZero yol dolgu kurallarına göre kesilmesini desteklemek için vektör grafik yollarında filltype parametreleri için destek eklendi. (I43dd2)
  • Çalışma süresi ve hız artık satır içi sınıflar (I48f4a)
  • Süre artık satır içi bir sınıftır (I565eb).
  • LayoutNode sınırları değiştiğinde Sahibi bilgilendirmek için geri çağırma ekleyin. (Ic40b3)
  • Offset ve yarıçap 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 tamamlayıcı 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ın, Compose derleyici eklentisinin bu sürümüyle çalışması için yeniden derlenmesi gerekir.

    Bu değişiklik, yalnızca açıkça etkinleştirilen derleyici API'leri değiştiği için kaynak düzeyinde bir hataya neden olmaz. (I7afd2, b/158123185)

  • 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 iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.

Sürüm 0.1.0-dev

Sürüm 0.1.0-dev17

19 Ağustos 2020

androidx.compose.ui:ui-*:0.1.0-dev17 iptal edilir. Version 0.1.0-dev17 contains these commits.

API Değişiklikleri

  • emitView desteği sonlandırıldı. Compose'da View'ları yayınlamak için mümkünse AndroidView kullanın. Görünümlerin ve ViewGroup'ların doğrudan oluşturulmasının, beste 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)
  • FocusState2 desteği sonlandırıldı ve FocusState ile değiştirildi (Ia8b79, b/160822876, b/160923332)
  • Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
  • Özel yayınlar artık ayarlayıcılarından bir veya daha fazlasının yayınlanmadan bağımsız olarak atlanabileceğini ve 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)

  • onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine çocuk düzeninde onPositioned ve OnPositionedModifier kullanmalı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)

  • mergePolicy lambda'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 önceki PlacementScope.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 yerine PlacementScope.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ı, ait oldukları yerde olmadıkları için herkese açık olmaktan çıkarıldı. İleride herkese açık hale getirilecektir. (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ği ve ilgili sınıflar, değiştirilme olasılığı çok yüksek olduğundan etkinleştirme API'si olarak ayarlandı. (I56d6f)

  • Artık gerekli olmayan 2 PointerEventPass 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'nin API'si bu yeni koşula göre ayarlandı (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561).

  • state { ... } composable'ı artık netlik için remember { mutableStateOf(...) }'e yapılan açık çağrılar lehine 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çin by 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 iptal edilir. 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 PointerEventPass 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 desteği sonlandırıldı. Bunun yerine Modifier.then kullanın. "Sonra" kelimesi, sıralama konusunda daha güçlü bir sinyal verirken Modifier.padding().background() + anotherModifier yazı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 Görünüm alt sınıfları ekler. (I46357)
  • Row ve Column artı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 temeldir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
  • Compose hiyerarşisinin köküne göre bir SemanticsNode'un konumunu almak için SemanticsNode.positionInRoot eklendi (Icdf26, b/161336532)
  • MotionEvents, Android'den Compose'a ve tekrar Android'e kadar tüm yolu geçer. (I14be8, b/158034713)
  • dropdownPopup kaldırıldı. (I00430)
  • Kesik ekranlarda sabit pop-up konumu. (Idd7dd)
  • TextLayoutResult'u almak için erişilebilirlik işlemi ekleyin (I9d6e6)
  • RemeasurementModifier eklendi. Bu değiştirici, düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Genel olarak, yeniden ölçme/yeniden düzenleme işlemi otomatik olarak yapıldığından bu işleme 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üzeltmelerini ele alma (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırın
    2. Tutarlı bir API yüzeyine sahip olmak için Offset ve IntOffset sınıflarını hizalama
    3. Offset API ile tutarlı olması için IntOffset.Origin'i IntOffset.Zero olarak yeniden adlandırın.
    4. Tüketicilerin kendi Canvas örneklerini oluşturabilmesi için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı.
    5. 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.
    6. ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı.
    7. FilterQuality enum'ları Pascal Case olarak yeniden adlandırıldı.
    8. StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı.
    9. PointMode enums, Pascal Case olacak şekilde yeniden adlandırıldı.
    10. Renamed PaintingStyle enums to be Pascal Case
    11. PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı.
    12. StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı.
    13. DrawCache uygulaması, lateinit parametrelerini kullanmayacak şekilde güncellendi.
    14. DrawScope, fillPaint ve strokePaint dahili parametreleri için artık geç yetkilendirme kullanmayacak şekilde güncellendi.
    15. Daha az ek yük için Box kullanımını önlemek üzere Image composable'ı güncelledi.
    16. Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi.
    17. Her yol talimatı için @Immutable ek açıklamaları içerecek şekilde PathNode güncellendi.
    18. Compose bu kontrolleri zaten işlediğinden, gereksiz eşitlik koşullu kontrollerini kaldırmak için Vector alt bileşimi güncellendi.
    19. İşlev oluşturucular lehine desteği sonlandırılan Rect yardımcı oluşturucu yöntemleri
    20. @Immutable ve @Stable API'lerle güncellenen Brush sınıfları ve işlev oluşturucuları
    21. VertexMode enum'ı PascalCase olacak şekilde güncellendi
    22. DrawScope selectPaint yöntemi, değişmişse boyadaki kontur parametrelerini koşullu olarak üzerine yazacak şekilde güncellendi.
    23. 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 doldurmak için değiştiriciler sağlar. (Ibd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture kaldırıldı. Bunun yerine SemanticsNodeInteraction.performGesture kullanın. (Id9b62)
  • LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor olarak yeniden adlandırıldı (I84f84)
  • foundation.shape.corner paketi foundation.share olarak düzleştirildi (I46491, b/161887429)
  • AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
  • TextLayoutResult'ya daha fazla API eklendi. (Id7e04)
  • İstenen API'nin en basit şekilde bulunup kullanılabilmesi için Materyal FilledTextField, TextField olarak, temel TextField ise BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676).
  • Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)

Sürüm 0.1.0-dev15

22 Temmuz 2020

androidx.compose.ui:ui-*:0.1.0-dev15 iptal edilir. 0.1.0-dev15 sürümü şu commit'leri içerir.

Bağımlılıkları Güncelleme

  • Compose'un 0.1.0-dev15 sürümünü kullanmak için Bağımlılıkları bildirme bölümünde yukarıda gösterilen yeni kod snippet'lerine göre bağımlılıklarınızı 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 (I46919, b/160822875, b/160922136) lehine kullanımdan kaldırıldı.
  • 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)
  • Anahtar girişiyle ilgili API için deneysel bir API açıklaması eklendi (I53c0a).
  • Tüm odaklanmayla ilgili API'ler için deneysel bir API ek açıklaması eklendi (I53b24, b/160903352).
  • FocusDetailedState'in yerini alacak FocusState2 eklendi (I0a3ba, b/160822595)
  • Focus API için @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 yapıldı (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 (I3ff38) olarak yeniden adlandırıldı.

  • 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çindeki 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, IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)

  • Boyutlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Size sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kayan 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, kayan değerler olarak temsil edilen x ve y uzaklıklarını temsil etmek için 2 kayan değer paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (I3ad98)

  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılması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ü hiç uygulamamaya eşdeğerdi. (I0deaa)

  • Daha önce kullanımdan kaldırılan ScaleFit, kaldırıldı. Bunun yerine ContentScale'i 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).

  • ui-material'da, Materyal Tasarım menü uygulaması olan DropdownMenu bileşeni eklendi. (I9bb3d)

  • Desteği sonlandırılan LayoutTag() kaldırıldı. Bunun yerine lütfen Modifier.tag() kullanın. Desteği sonlandırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() kullanın. (If8044)

  • Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I57bff).

  • Yüksek düzeyli bileşenlerin kullanılmasına izin vermek için Modifier.semantics kullanımdan kaldırılma işlemi geri alındı. (I4cfdc)

  • CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. Density arayüzünü uygulamak ve LayoutDirection sağlamak için DrawScope güncellendi. ContentDrawScope'taki silinen DrawScope alt sınıfı Painter ve PainterModifier, DrawScope bunu zaten sağladığı için artık RTL özelliğ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 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'si değiştirildi. Artık iki parametre yerine, kısıtlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702).

  • LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)

  • Desteği sonlandırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)

  • Layout ve LayoutModifier2'deki Intrinsic ölçüm işlevleri artık IntrinsicMeasureScope alıcısına sahip. Bu alıcı, örtülü olarak yayılmış düzen yönüyle Intrinsic sorgu API'si sağlar. (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() 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 adlı, Constraints'in bir kopyası olan ve yalnızca IntPx yerine Int kısıtlama değerlerini destekleyen bir sınıf eklendi. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android'deki gibi piksel olduğu varsayılır.

    • IntSize da eklendi. Bu özellik, IntPxSize'ın yerini alacak. (I4b43a)
  • Made Alignment, rastgele değerlerle örneklenebilir hale getirildi. 1D hizalamalar eklendi. (Ia0c05)

  • alignToSiblings artık Placeable yerine Measured kabul ediyor. (I5788d)

  • (I45f09, b/152842521)

    • 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çeklendirme ve gölge ayarlamaya olanak tanır. 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 olacak şekilde değiştirildi ve LayoutCoordinates'in değer almak için get() operatörünü uygulaması sağlandı. 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() işlevlerini kullanmalıdır.

    LayoutCoordinates, boyut özelliği için PxSize yerine IntPxSize kullanıyor. Düzenlerde tam sayı piksel boyutları kullanılır. Bu nedenle, tüm düzen boyutlarında kayan nokta değerleri değil, tam sayılar kullanılmalıdır. (I9367b)

  • Kısıtlamaların API yüzeyinde iyileştirmeler (I0fd15)

  • Durum bilgisi içermeyen, bildirim temelli bir çizim API'si yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API'si oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır ve boyutlandırma bilgileri de ilgili yerleştirme sınırlarıyla sınırlıdır. Çizim işlemlerini yapılandırmak için tüketicinin kendi Paint durumu nesnesini koruması gerekmez.

    • CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli grafikler demosunu (Ifd86d) içerecek şekilde güncellendi.
  • Sınırlı kullanımı olduğu ve çoğu kullanım alanında donanım hızlandırma için optimize edilmediği için kullanılmayan MaskFilter API kaldırıldı (I54f76).

  • RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics.* konumuna taşındı. (Ia74d5, b/154507984)

  • API'deki tüm null değer atanabilir Color kullanımları, null değer atanabilir olmayanlarla değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7).

  • Temel ImageAsset'in 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 Ayarlanmamış" 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 bilgileri sorgulamayı desteklemek için PixelMap API'si oluşturuldu. (I69ad6)

  • toFrameworkRect/toFrameworkRectF, adlandırma kuralına uygun olması için toAndroidRect/toAndroidRectF olarak yeniden adlandırıldı. Bu değişiklik, Compose ile üzerine kurulu Android çerçeve API'leri arasındaki nesne dönüşümlerini etkiler. Ayrıca bu API'lerle ilgili belgeler de güncellendi (I86337).

  • Vektör grafikler için mevcut alt bileşen 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:Geleneksel Android uygulama geliştirme ile Compose çerçevesini birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap üzerinde 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çiminde LongPressAndDrag'i uygular. (I17919)

  • Aralıktaki tüm ek açıklamaları döndüren AnnotatedString.getStringAnnotations eklendi. (I1fa00)

  • Locale ve LocaleList için paket adı androidx.ui.text'ten androidx.ui.intl olarak değiştirildi (I8132c).

  • TextField'ın imleci yanıp sönme animasyonuna sahip (Id10a7)

  • API değişikliği: AnnotatedString(builder: Builder) işlevi, annotatedString(builder: Builder) olarak yeniden adlandırıldı. (Ia6377)

  • API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)

  • AnnotatedString.Builder.addAnnotationString'i addStringAnnotation olarak yeniden adlandırın. (I5059e)

  • Artık onTextInputStarted geri çağırma iş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)

  • TextLayoutResult'a getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount işlevlerini ekleyin (Ibc801).

  • ui-text modülünün adı ui-text-core olarak değiştirildi (I57dec).

  • Kullanılmayan Size class, tüketilen ui-geometry modülünde kopya Size class 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 parametresi 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, runOnIdle olarak yeniden adlandırıldı (I83607)
  • Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
  • Compose kullanıcı arayüzü artık yeni bir kompozisyon gerektirmeden ViewGroup'lar içinde oluşturulabilir. Örnek için ViewInteropDemo'ya bakın. (I9ab0b, b/160455080)
  • MutableVector'a sortWith ve removeRange eklendi (Icccf7)
  • TextField için seçimi değiştirmek üzere sürükleyerek seçim tutma yerlerini uygulayın. (I27032)
  • NativeShader sınıfını sarmalayan Shader satır içi sınıfı kaldırıldı. NativeShader, Shader olarak yeniden adlandırıldı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklemedi ve satır içi 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 önbelleğe alınmış bit eşleminin, içine çizim yapılacak boyuta göre değil, varsayılan boyutuna göre ayarlanması 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ı da desteği sonlandırılmış olarak işaretlenir. 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öndermenin 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 olacak şekilde yeniden düzenlendi. Y ekseni boyunca yarıçapın zorunlu x ekseni yarıçap parametresine uyması için varsayılan parametreye sahip işlev oluşturucu lehine, eşlik eden öğe 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 invalidate iş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 bir composable işlevin gövdesini dönüştürüyor ve çağrı sitesini (çoğunlukla) değiştirmeden bırakıyoruz.

    Bu, oluşturma çalışma zamanıyla iletişim kuran mantığın çoğunun, çağrı sitesinde değil, 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, "key" tamsayısı ve meta verileri çağrılar aracılığıyla yaymak için kullanılan bir bit maskesi tamsayı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 değişiklikten kaynaklanan bilinen davranış değişiklikleri:

    1. Bazı aramalar, daha önce atlanmayacakları yerlerde atlanacak.
    2. Varsayılan bağımsız değişken ifadelerindeki birleştirilebilir ifadeler artık doğru şekilde abone olunuyor ve işleniyor

    Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer composable işlevlere yayılır. Bu, çalışma zamanında daha az karşılaştırma yapılmasına, yuva tablosu boyutunun küçülmesine ve daha önce atlanmayan composable işlevlerin daha fazla atlanmasına neden olur. 2. Derleme 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 normal kullanımı etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı. 3. Composer::call kullanımdan kaldırıldı. 4. key işlevinin değişken sayıda bağımsız değişken içermeyen aşırı yüklemeleri kaldırıldı. Bundan sonra vararg sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı. key yerine kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine Function3 bekleyecek şekilde değiştirildi. 7. restartableFunction ve restartableFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi. (I60756, b/143464846)

  • 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 enabled parametresine 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 için değiştirildi. Örneğin, LayoutDirection RTL ise varsayılan TextDirection RTL olur. Önceden 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 bu parametrelerden az sayıda olanları (ör. Text(style = TextStyle(textAlign = TextAlign.Center))) iletmek için yerel bir metin stili oluşturuyorsanız artık parametreleri doğrudan sağlayabilirsiniz: Text(textAlign = TextAlign.Center) (I82768)

  • ui-android-text modülünün adı ui-text-android olarak değiştirildi (I68cbe).