Compose kullanıcı arayüzü

Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken temel Compose kullanıcı arayüzü 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 Group kimliğinin birleşimidir. Her grup, kendi sürüm notları kümesine sahip, hedeflenen bir işlevsellik alt kümesini içerir.

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, Compose'un daha üst düzey giriş noktasıdır ve www.material.io adresinde açıklanan bileşenlerle eşleşen bileşenler sağlamak üzere tasarlanmıştı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şenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içerir. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzü ile uyumlu olacak şekilde tasarlanmıştır.
compose.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 temel Compose kullanıcı arayüzü bileşenleri.

Bağımlılıkları bildirme

Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanız 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.11.4"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.ui:ui:1.11.4")
}

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. Yalnızca Android'e özel ComposeView.disableWindowInsetsRulers() yerine ortak WindowInsetsRulers.disable() (Iadc8f) kullanılacak.
  • 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 altında boundsAssertionTolerance, PlatformTestConfig'ye eklendi. Bu sayede testler, varsayılan sınır onaylama toleransını ortam/kural düzeyinde yapılandırabilir. (I7819d, b/545673912)
  • BasicTextField aşırı yüklemeleri, value, onValueChange parametrelerini kabul etmez ve desteği sonlandırılmıştır. Lütfen durumunu yükseltmek için TextFieldState kullanan BasicTextField aşırı yüklemesine geçin. (I636bf, b/552879150)
  • BasicTextField(value, onValueChange) ile birlikte VisualTransformation da yalnızca bu TextField aroması üzerinden kullanıma sunulduğu için desteği sonlandırılmıştır. Mevcut dönüşümler OutputTransformation'e taşınmalıdır. (I636bf, b/552879150)
  • Her satır için satır yüksekliğini bağımsız olarak hesaplamak üzere LineHeightStyle.Mode.PerLine eklendi. Böylece aynı paragrafta farklı yazı tipi boyutları desteklenerek çakışma önlenir. (I41738)
  • LazyListState üzerinden LazyLayoutCacheWindow ve LazyListPrefetchStrategy sağlamak, composable işlevine LazyLayoutCacheWindow sağlamak 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 üzerinde 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'lerin Composables içinden kontrol edilmesi kolaylaştı. (I4d4ff, b/221889664)

Hata Düzeltmeleri

  • Varsayılan olarak isMinimalistLocalsEnabled etkindir. (Ibb4eb, b/523295932)
  • Tek satır yüksekliği optimizasyonu varsayılan olarak etkinleştirildi. Yükseklik veya seçim yolu gibi bazı metin metriklerinde birkaç piksel farkına 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 sorunu ve metin alanları arasında odak değiştirilirken 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)

  • Bir ComposeView tek bir kare içinde 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 semantik ö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 simgelerin kullanıldığı 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, AnnotatedString.Annotation nesnelerinin kaydedilmesine ve geri yüklenmesine olanak tanımak için artık herkese açık. (I8b533, b/135556699)
  • Compose kullanıcı arayüzü testlerinde özel hata etkinlik işleyicilerini ve hata yapay nesne 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 parametreler 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 modu (InputMode.Keyboard) bekleyen mevcut testlerin başarısız olmasına neden olabilir. Etkilenen testleri düzeltmek için ComposeUiTestConfig(inputMode = InputMode.Keyboard) değerini açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak iç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. (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) değerini açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak iç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. (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 yerine ExposedDropdownMenuBoxScope'de bir uzantı işlevi. 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 ekledi. 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ıklaştırmalarının yuvarlatılmış köşelerle sınırlandırılmasına olanak tanır. (I5d437)
  • Özellik bayrağı kaldırıldı. Artık fareyle üzerine gelme etkinlikleri doğru şekilde işlenmiş olarak işaretlendiğinden, Dokunarak Keşfet özelliği etkin olduğunda Compose düğmeleri erişilebilirlik odağını doğru şekilde koruyor ve titreme yapmıyor. (Ib1c80)
  • Diğer ayar koleksiyonlarını birleştirmek veya ayarları satır içi olarak geçersiz kılmak için FontVariation.Settings'ya birleştirme aşırı yüklemeleri eklendi. (I6340c)
  • Yazı tipi arayüzünde variationSettings seçeneği kullanıma sunuldu. Varsayılan olarak yeni FontVariation.Empty kullanılır. Dizi kopyalama 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) değerini açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak iç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 işlevlerine yapılan çağrılarda artık varsayılan bir ComposeUiTestConfig işlevi kullanılı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) değerini açıkça iletin ve giriş modlarıyla ilgili tüm manuel kurulum mantığını kaldırın. Alternatif olarak, her testin başında varsayılan giriş modunun ayarlanmasını geçici olarak devre dışı bırakmak ve testlerinizi taşırken eski davranışı korumak iç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. (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şareti, 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öndericinin üst coroutine kapsamına erişmek için alternatif bir API olan NestedScrollDispatcher'de coroutineScopeOrNull()'ı kullanıma sunuyoruz. (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şleri beklenirken ö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)
  • AccessibilityNodeInfo ile eşleme yaparak erişilebilirlik desteğini iyileştiren, metin alanlarındaki ipucu metnini temsil etmek için yeni bir hintText anlamsal özelliği eklendi.hintText. (Ib65da, b/448376876)
  • CompositionLocal çözünürlük, LocalOwner ve LocalAndroidComposeView üzerinden isteğe bağlı olarak dinamik şekilde çözülerek optimize edilir. Bu özellik, ComposeUiFlags.isMinimalistLocalsEnabled kullanılarak etkinleştirilebilir veya devre dışı bırakılabilir. (I2bf6d)
  • androidx.benchmark artık 24 minSdk puanına sahip. (Ic2a85)
  • hideFromAccessibility öğesinin birleştirme işleminde alt öğelere 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)
  • Daha katı izleme garantileri olan @RestrictTo API'si ile deneysel @AnimationToolingApi'yi 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 sorunu 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() tahsislerini önlemek için HashMap 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ü ayırma sırasında 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 kullanarak 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ı 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)                                                                                                                                                                                     
            )                                                                                                                                                                                                               
        )                                                                                                                                                                                                                   
    )
──────                                                                                                                                                                                                                  

### Geniş renk gamı (WCG) desteği (ui-graphics)

WCG'nin korunması: * Paint veya Shader'da ayarlanan sRGB olmayan renk alanları (ör. AdobeRgb, DisplayP3) API 29 ve sonraki sürümlerde korunur. * Daha eski API düzeylerinde sRGB'ye geri döner.

    import androidx.compose.ui.graphics.Color                                                                                                                                                                               
    import androidx.compose.ui.graphics.Paint                                                                                                                                                                               
    import androidx.compose.ui.graphics.colorspace.ColorSpaces                                                                                                                                                              
                                                                                                                                                                                                                            
    val wcgColor = Color(0.9f, 0.5f, 0.1f, colorSpace = ColorSpaces.AdobeRgb)                                                                                                                                               
    val paint = Paint().apply {                                                                                                                                                                                             
        color = wcgColor // Preserved on API 29+                                                                                                                                                                            
    }
──────                                                                                                                                                                                                                  

### Donanım hızlandırmalı örgü gradyanları (ui)

• Painter API: Modifier.meshGradient, donanım hızlandırmalı Canvas.drawMesh 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 ile 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 için Espresso Entegrasyonu (ui-test)
Compose etkileşimlerini, Espresso ViewInteraction tarafından eşleştirilen Görünüm hiyerarşisiyle sınırlandırın.

    import androidx.compose.ui.test.junit4.onRootWithViewInteraction                                                                                                                                                        
    import androidx.test.espresso.Espresso.onView                                                                                                                                                                           
                                                                                                                                                                                                                            
    // Match RecyclerView row using Espresso                                                                                                                                                                                
    val specificRow = onView(allOf(withId(R.id.row), hasDescendant(withText("Item #5"))))                                                                                                                                   
                                                                                                                                                                                                                            
    // Scope Compose interactions to that row                                                                                                                                                                               
    composeTestRule.onRootWithViewInteraction(specificRow)                                                                                                                                                                  
        .onNodeWithTag("fav_icon")                                                                                                                                                                                          
        .performClick()

Sürüm 1.12.0-rc01

29 Temmuz 2026

androidx.compose.ui:ui-*:1.12.0-rc01 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

  • Geçerli değil (dahili geliştirici özellik bayrağını taşıma) (Iaf2c4, b/368702588)
  • Geçerli değil: 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. (Id3477, b/478053727)
  • Dolaylı işaretçi etkinliklerini tetiklemek için test işlevini yeniden adlandırır (I3ee35, b/509618414).
  • Artık softwrap=false olan bir metin için satır yüksekliği ayarlanırken daha iyi bir hesaplama yapılıyor. Bu nedenle, BasicText ve BasicTextField öğelerine optimizasyon eklendi (I2150a).

Hata Düzeltmeleri

  • Gereksiz kullanıcı arayüzü yeniden oluşturmasını önlemek için alt bileşenler arasında optimize edilmiş kaydırma yakalama durumu yayılımı. (I05830)
  • ComposeUiFlags deneysel özellik bayrağı etkinleştirildi.Varsayılan olarak isTrackpadPinchReinterpretationEnabled. (I35ab8, b/478053727)
  • Vektör çizilebilir kaynak ayrıştırmasında, üst <clip-path> öğeleri iç içe yerleştirilmiş <group> öğeleri içerdiğinde yoksayılması sorunu düzeltildi. (Id4ea9, b/474530439)
  • Yürütme denemeleri arasında dahili test ortamını ve coroutine kapsamını yeniden oluşturarak AndroidComposeTestRule'da standart JUnit 4 test yeniden deneme kuralları için destek eklendi. (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 softWrap bağımsız değişkenini alan bir ParagraphIntrinsics fabrika işlevi eklendi. Dahili olarak, metnin tek bir satır halinde 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. Kapsam dışında kalmaya 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)
  • FontFabrika işlevi almavariationSettings kararlılığı iyileştirildi. (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)
  • Durum denetimi sırasında test performansını artırmak için runWithoutImplicitWait ile ComposeTestRule ve ComposeUiTest kullanıma sunuldu. Bu API, örtülü senkronizasyon devre dışı bırakılarak bir kod bloğunun yürütülmesine olanak tanır ve her düğüm sorgusu için tekrarlanan senkronizasyonların ek yükünü önler. Bu, özellikle animasyon testi gibi kareler arasında manuel olarak ilerleyen ve birden fazla özelliği örnekleyen testlerde test işleminin hızını önemli ölçüde artırır. (Ie00e9, b/490270394)
  • @PreviewWrapper ek açıklaması artık MultiPreview ek açıklama sınıflarına uygulanabiliyor. Böylece geliştiriciler, yeniden kullanılabilir ve önceden sarmalanmış önizleme yapılandırmaları oluşturabiliyor. (I8ae66, b/511170361)
  • Mesh renk geçişlerini oluşturmak için MeshGradientPainter özelliği kullanıma sunuldu. Modifier.meshGradient özelliği kaldırıldı. Bunun yerine MeshGradientPainter özelliğini Modifier.paint ile birlikte kullanın. MeshGradientRenderer artık dahili. (I2d170, b/508110246)
  • Artık, cetvelin sağlanıp sağlanamayacağını belirten bir lambda ve cetvelin değerini sağlayan ayrı bir lambda gönderilerek cetveller 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 Style API'de, özel stil kapsamlarına sahip olabilen özel stil türleri oluşturma desteği eklendi. Bu, bir stil tarafından ayarlanabilen özelliklerin alt kümesini oluşturmaya (ör. grafik katmanını veya metin özelliklerini tamamen kaldırma) ve kapsamın diğer stillerden bağımsız olarak genişletilmesine (ör. MediaPlayer composable'da yalnızca playing { } söz dizimini destekleme) olanak tanır. Bu değişiklik, ikili ve kaynak uyumluluğunu bozuyor. Kaynak uyumluluğunu bozan temel değişiklik, StyleScope içindeki yardımcı işlevlerin uzantı işlevlerine (ör. fun contentProperty(all: Dp) artık bir uzantı işlevidir) taşınmasıdır. Gerekli uzantı işlevlerini veya androidx.compose.foundation.styles'daki 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ğildir. Lütfen etkinleştirmeyi kaldırın. (I1e4ae, b/500030165)
  • ui-tooling'de tetikleyicileri desteklemek için yeni enum (I6e198, b/478807872)
  • ComposeViewContext, referans görünümü eklenmeden oluşturulabilir. Yine de setContent() çağrılmadan önce referans görünümünün eklenmesi gerekir. (Id0952)

Hata Düzeltmeleri

  • Aynı düzen için birden fazla kaydetme çağrısı yapıldığında focusRestorer öğesinin odağı düzgün şekilde geri yüklememesi sorunu düzeltildi (I10277, b/505371994).
  • Önceki bir performans iyileştirmesi, eklenmemiş ComposeViews öğelerinin ölçülmesine izin vermeme gibi bir yan etkiye neden olmuştu. Bu değişiklik, performans sorununu yeniden ortaya çıkarmadan buna izin veriyor. (I9b2c5, b/508650647)
  • Beste, ComposeViewContext değişikliğinde artık yeniden oluşturuluyor. Böylece ComposeViewContext daha hızlı erişilebiliyor. (I3b3a8, b/487364963)
  • Android'de Compose'un boya ve gölgelendiricide sRGB olmayan renkler ayarlamasına izin vererek Compose renk alanlarını platformdaki eşdeğerleriyle doğru şekilde eşleyerek geniş renk gamını korur. Platform oluşturma işlemlerinde (ör. CIE XYZ, CIE Lab, OkLab) desteklenmeyen veya mevcut API düzeyinde kullanılamayan renk 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. Bu sayede, 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 adlı özellik bayrağını kaldırır (I82be3, b/455601135)
  • mediaQuery işlevi satır içi işlev haline getirildi (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 iş 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 yapılan 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)
  • Tarih, saat, tarih saat, işaretli ondalık gibi seçenekler de dahil olmak üzere Android'de desteklenen klavye seçenekleri grubunu tamamlamak için 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)
  • İşareti kaldır isTraversableDelegatesFixEnabled (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 numarası 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ümlerin düzeni, düzen geçişi sırasında ölçümden sonra her zaman çağrılır. 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'e ekleniyor (I3e5cd, b/494243978)
  • isGraphicsLayerShapeSemanticsEnabled işaretini temizledik. (I44be0, b/455600081)
  • Yazı tipi sertifikalarını kod tabanına manuel olarak ekleme adımı olmadan indirilebilir yazı tiplerini kullanmak için yeni bir Font API eklendi. (I30b86, b/479454159)
  • Compose semantik aramalarının kapsamını belirli Android görünümleriyle sınırlamak için 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 Oluşturma tarafından otomatik doldurma etkinlikleri gönderilmez. Bu, otomatik doldurma hizmetleri isteğinde bulunmayla 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 bağlı olmadan oluşturulmasına olanak tanır. ComposeView eklenmeden bestelemeye başlamak için AbstractComposeView.createComposition(composeViewContext) simgesini kullanın. (I46e6f)
  • panEnd ve scaleEnd için dokunmatik yüzey testi API'lerine delayMillis eklendi (If80fe)

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 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, artık uçtan uca görüntülemek için pencere sınırlarını doğru şekilde kullanı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 not sağlayıcıyı 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 kilitlenmeler önlenir. (I671c3, b/486235925)
  • isSkipNonImportantSemanticsNodesHitTestEnabled adlı bir işaret eklendi. Bu işaret, TalkBack'nin dokunarak keşfetme özelliğini etkileyen, anlamsal yapı isabet testiyle ilgili bir hata düzeltmesini korur. (I2933f, b/481011169, b/454377558, b/461360154)
  • Android Hizmetleri'nden Jetpack Compose Dialog'ları 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)
  • Dokunmatik yüzey hareketleri için farklı eğrileri ve girişleri simüle etmek amacıyla dokunmatik yüzey testi API'lerine daha fazla işlev eklendi. (I290fb, b/473603145, b/479213358)
  • Yeni PointerEventType.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ılı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 kontrolcü ö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 etkinleştirmek 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 çizilmemesi sorunu 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ı belirlemeye yardımcı olması için InputTextSuggestionState özelliği ekleyin. Ayrıca, mevcut çeviri yazısı metin bileşimi aralığını izlemek için TextCompositionRange özelliğini kullanıma sunar. Boş değer, bileşimin 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) desteği 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 (I65e2c) kullanılarak ComposeViews genelinde paylaşılabilir.
  • 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, paylaşılan ComposeViewContext'a taşınacak. Bu, CoroutineContextComposeViewContext'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 ek bilgilerle birlikte bildirilir. Bu değerlerin ayarlanacağını belirten yeni bir PointerEventType.Pan ve PointerEventType.Scale bulunur (Id071a, b/315527861, b/459831570).

Hata Düzeltmeleri

Harici Katkı (External Contribution)

  • androidx.compose.ui.graphics.NativePaint typealias desteği sonlandı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 anahtarları (I1ff12) için destek ekleme

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ırma işlemlerinde 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 işareti 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. Bununla birlikte, eş yordam yürütme üzerinde daha iyi kontrol sağlamak için v2 API'lerine geçmenizi önemle tavsiye ederiz. (Iecc9c, b/455601592)
  • androidx.compose.ui.test.junit4.v2.create*ComposeRule 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 kılavuzuna bakın. (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 kılavuzuna bakın. (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çeriğin kaldırılması durumunda çizilen içeriğin kaldırılmaması hatası düzeltildi. (I8b382, b/299503084)
  • LookaheadScope ile animasyon oluşturulurken duraklatılabilir birleştirme ile ilgili kilitlenme sorunu düzeltildi. (I7e649, b/469669851)
  • Otomatik doldurma hizmetine aşırı uzun dizeler iletmenin kilitlenmeye neden olduğu sorun çözüldü. Bunu önlemek için metinler artık gönderilmeden önce otomatik olarak geçerli bir uzunluğa kısaltılıyor.
  • Fareyle üzerine gelme çıkışının çok özel koşullarda tıklamaya neden olabildiği hata düzeltildi (a3d5a0f).
  • Testler için ekran kalemiyle üzerine gelme etkinliği gönderme sorunu düzeltildi ve yeni ekran kalemi testleri için fare testleri hazırlandı. (9ca9bc9)
  • İşaretçi girişiyle kullanıcı arayüzü öğelerini yerleştirme/yerden kaldırma desteği ekler. (d0742b0, b/BUD_ID)
  • Jetpack Compose'daki Popup, PopupPositionProvider'a sabitlenmiş sınırlara ait mutlak koordinatların iletilmesine ve pop-up'ların yanlış yerleştirilmesine neden olan hata düzeltildi. Pop-up konumlandırma hesaplamalarında artık doğru göreli koordinatlar kullanılıyor.(1f7edf,b/469940907)

Sürüm 1.11.0-alpha02

17 Aralık 2025

androidx.compose.ui:ui-*:1.11.0-alpha02 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 (I2ce67), b/432326139'dur.

Hata Düzeltmeleri

  • Fare tekerleğiyle kaydırma girişinin birlikte çalışabilirliği, yalnızca Compose'da kullanılıyorsa kullanılacak şekilde düzeltildi. Compose'da gönderildiyse kullanılmayacak. (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şareti kaldırıldı. (I849cf, b/455587954)
  • Geçilebilir yöntemlerin findNearestAncestor alakalı düğümleri bulma şekli değiştirildi. Artık aynı türdeki (NodeKind) temsilciler geçiş sırasında görünür. 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, öğe kaydırma işleminden sonra her görünür hale geldiğinde çağrılır. Bu, bu ada sahip değiştiricinin kullanıcılarının beklediği bir durum değildir. Bunun yerine Modifier.onVisibilityChanged() kullanılması ve belirli kullanım alanının gereksinimine göre düzenin daha önce görünür olup olmadığının 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'daki Popup, PopupPositionProvider'a sabitlenmiş sınırlara ait mutlak koordinatların iletilmesine ve pop-up'ların yanlış yerleştirilmesine neden olan hata düzeltildi. Pop-up konumlandırma hesaplamalarında artık doğru göreli koordinatlar kullanılıyor.(1f7edf,b/469940907)

Sürüm 1.10.0

3 Aralık 2025

androidx.compose.ui:ui-*:1.10.0 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

  • minDurationMs sıfır değilse visibilityChanged geri çağırmalarını yanlış değerle doğru şekilde gönderin. (2ac08b8, b/456384555)
  • Düğüm başlangıçta görünür olmadığında onVisibilityChanged geri çağırmasını ç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şi API'leriyle eşleşecek şekilde 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ığı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)
  • createComposeRule, createAndroidComposeRule ve createEmptyComposeRule test kuralı API'leri kararlıdır ve effectContext parametresini kabul eder. Bu parametrenin varsayılan değeri EmptyCoroutineContext'dir. (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 ofsetleri 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ümlerde odak sarmalama ile ilgili sorun düzeltildi. (I95223, b/446028624)
  • Kotlin 2.2.20 tarafından oluşturulan lambda'larda denetçide satır içi parametrelerin eksik olduğu alanlar düzeltildi (I9855d, b/447110005).
  • Kullanıcı arayüzü ve temel modüller arasında otomatik doldurma kaynaklarının adının gölgelenmesi 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 yetkilendirme yoluyla kullanılan bir Modifier.Node oluşturur. 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 oluşturulamamasına neden olan sorun düzeltildi. Bu sorun, yer tutucu kısaltılmış bölgeden önce gelmesine rağmen yaşanıyordu. (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 izlemeleri sunulur. 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 olarak 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 kullanılan fabrika işlevlerini yardımcı nesneye taşıyın. FillableData(value) yöntemini çağırmak yerine yeni fabrika yöntemlerini (FillableData.createFrom(value)) kullanın. (I2e200, b/441719650)
  • Odak araması için sınırlı düzenin ötesinde performans gösterecek BeyondBoundsLayoutModifierNode yeni bir Değiştirici düğümü kullanıma sunuldu. (I39be1, b/416133658)
  • FocusTargetModifierNode.requestFocus() Odaklanılabilir durumda değilken odaklanmayı alt öğelerinden birine gönderir. Bu artık FocusRequester.requestFocus() ve FocusRequesterModifierNode.requestFocus() ile tutarlı. Bu davranışa ihtiyacınız yoksa uygulamanızda ComposeUiFlags.isRequestFocusOnNonFocusableFocusTargetEnabled işaretini false olarak ayarlayın. (Icca5c, b/436863604)
  • WindowInfo konumunda DP tabanlı pencere boyutu sağlama (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 karşılık gelen bir 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 sunulur (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'yı, anahtarlar ve listeler gibi metin olmayan bileşenleri destekleyecek şekilde güncelleyin. Bu bileşenler, FillableData içindeki boole ve tam sayı değerlerinin yanı sıra platformun AutofillValue'ına çevrilen FillableData'nın boole ve liste örneklerini oluşturmak için fabrika oluşturucularını içerir. İ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 eklenmiştir 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 yapı eşleştiricileri eklendi. (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 yapılır. Bir test, StandardTestDispatcher kullanacak şekilde ayarlanabilir. Bunun için oluşturulur ve StandardTestDispatcher bu ComposeTestRule'ye 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 ayarlanıyordu (ve hâlâ da bu şekilde ayarlanmaktadır). 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ünden haberdar 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 öğesinin, platforma özgü davranışları kullanarak izlenen işaretçi etkinliklerine göre işaretçinin hızını hesaplamasına olanak tanır. (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ü şu 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, devam eden bir paylaşılan öğe geçişinin olup olmadığını da hesaba katan yeni API. 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 interop'a doğru tam sayıların gönderilmesi denemesini kontrol etmek için isNestedScrollInteropIntegerPropagationEnabled işaretini kullanıma sunun. (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 @CheckResult bulucu ve seçici işlevlerine SemanticsNode ek açıklaması 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 beste 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 içindeki 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 kesebilecek olsa bile daha küçük satır yüksekliklerinin uygulanmasına yardımcı olur. (Id3849)
  • BaselineShift artık kutulama işlemini ö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 işlemlerini sağlayan valueOf() ve değer yöntemlerine sahip. (I8d44c)
  • Önizleme parametresi ö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 özel renklerle painterResource üzerinden yüklenen simgelerin tema değişikliklerinde güncellenmemesi sorunu düzeltildi. (I85ea0, b/424416571)
  • onFillData ve fillableData anlamlarını tanıtma (I45d9e)
  • Platforma özgü durum kodlama artık StateRestorationTester'da her zaman etkindir. Bu, test davranışını gerçek uygulama durumu geri yükleme ile uyumlu hale getirir (ör. Android'de paketleme). (I38211, b/408154192, b/382294247)
  • Odaklanma isteğinde bulunurken zaman zaman yaşanan kilitlenme sorunları düzeltildi. (57b31a11, b/431111149)

Sürüm 1.9

Sürüm 1.9.5

19 Kasım 2025

androidx.compose.ui:ui-*:1.9.5 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

  • onVisibilityChanged/onFirstVisible/onLayoutRectChanged değiştiricilerinin, taşınan düzende 170'ten fazla alt öğe varsa 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 alt öğeleri 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 köşe durumlarında 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 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.
  • Ö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 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 özel 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)
  • Yanlış geçersiz kılınan bir ofset önbelleğinin, onLayoutRectChanged değiştiricilerinin yanlış koordinatlarla çağrılmasına neden olması 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

  • İç gölgelerin, eşit şekilde bulanıklaştırıldığında ofsetle birlikte 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ğine müdahale 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

  • 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 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 deneyseldir. (I6fda5)
  • API konseyi geri bildirimlerine göre API yüzeyini revize eder. (Ibf378)
  • FrameRateCategory.NoPreference sabitini kaldırın. Modifier.requestedFrameRate öğesini Modifier.preferredFrameRate olarak yeniden adlandırın. (I2f976)
  • WindowInsetsRulers: rulersIgnoringVisibility, maksimum olarak değiştirildi. 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.ui değerinden androidx.compose.ui değerine değiştirin (I8994e).
  • InsetsRulers, WindowInsetsRulers adıyla ortak kodda olacak şekilde değiştirildi. API'yi basitleştirerek tüm eklerin 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 tam olarak doğrulandığından isGetFocusedRectReturnEmptyEnabled ile ilgili işaret kaldırıldı. (Ife722)
  • Bazı durumlarda hedef düğüme ulaşmayan performScrollToNode ile ilgili hata düzeltildi. Bu düzeltmeyle, söz konusu durumlarda her zaman hedef düğüme ulaşılması sağlanır. Bu değişikliğin yan etkisi olarak, işlemin sonunda tam kaydırma konumu artık farklı olabilir. Bu durum, ekran görüntüsü testlerini ve tam kaydırma konumuyla ilgili varsayımlarda bulunan testleri etkiler. (I2c8a1)

Sürüm 1.9.0-alpha04

4 Haziran 2025

androidx.compose.ui:ui-*:1.9.0-alpha04 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)
  • Düğümün sınırları hesaplarken dikkate alınıp alınmayacağını belirleyen bir SemanticsModifierNode.isImportantForBounds özelliği ekleyin. Bu özellik varsayılan olarak doğrudur ve düğümün sınırlarda dikkate alınmaması gerektiğini belirtmek için yanlış olarak ayarlanabilir. (I7ebec)
  • SemanticsPropertyKey aracılığıyla sunulan erişilebilirlik ekstraları olarak kullanıma sunulan Android'e özgü anlamsal yapı özelliklerini tanımlamak için AccessibilityNodeInfo.getExtras fabrika işlevi ekleyin. (I2ed51)
  • ComposeUiFlags.isRemoveFocusedViewFixEnabled kullanımları kaldırıldı ve işaret kullanımdan kaldırıldı. (I50328)
  • Yeni özelleştirilebilir gölge çerçevesi kullanıma sunuldu. DropShadowPainter ve InnerShadowPainter ile DropShadow/InnerShadow bağımlılıkları bu kapsamdadır. Gölge altyapısı, aynı oluşturulan gölgelerin n kez yeniden oluşturulmasına gerek kalmadan birden fazla çağrı merkezinde paylaşılabilmesi için paylaşılır. (I24f7a, b/160665122)
  • İki gölgelendirici arasında birleştirilmiş sonuç oluşturan CompositeShader ve CompositeShaderBrush işlevlerini kullanıma sunduk. Ayrıca, gölgelendirici için bir dönüşüm matrisi ayarlamak üzere ShaderBrush#transform ekleyin. (I2621a, b/160665122)

Hata Düzeltmeleri

  • NestedScrollInteropConnection'da, 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)
  • Compose uygulaması arka plandayken TalkBack'nın yeşil odak göstergesinin 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 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 öğesine odaklanmaya çalışabileceği bir SONRAKİ seçeneği olduğunda ve requestFocus() başarısız olduğunda önemlidir. (Ibd0e2, b/369256395)
  • İşaretleme özelliğini isNestedScrollDispatcherNodeFixEnabled kullanıma sunuyoruz. (I0d24a)
  • DialogProperties' dialogContentTitle filtresini windowTitle olarak yeniden adlandırın (Ibd27b)
  • Modifier.onFirstVisible ve Modifier.onVisibilityChanged değiştiricileri kullanıma sunuldu. Bunlar, Modifier.onLayoutRectChanged üzerine inşa edilmiş üst düzey değiştiricilerdir. Bu değiştiriciler, özellikle gösterimleri kaydetme ve videoları otomatik oynatma gibi birçok yaygın uygulama gereksinimini karşılamak için tasarlanmıştır. Kaydırma performansından ödün verme riski olmadan kritik liste tabanlı senaryolarda kullanılabilmeleri için performans göz önünde bulundurularak geliştirilmiştir. Bu değiştirici API'lerine ek olarak, bu kullanım alanlarını desteklemek ve geliştiricilerin kullanım alanlarına tam olarak uyan benzer özel değiştiricileri kolayca oluşturmasını sağlamak için RelativeLayoutBounds ek API'ler de eklenmiştir. (I759b8)
  • Bu özelliğin gelecekteki gelişimini 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 sunuyoruz. Ayrıca, yaygın kaydırma uzantısı işlevleri de kullanıma sunuldu. (Ic61c8, b/214410040)
  • Bazı renk alanlarında renk alanı kimlikleri sıralı olmadığından Compose 64 bit renk değerleri doğrudan Android ColorLongs ile karşılaştırılamaz. Android renk alanlarına ve bu alanlardan dönüştürme yapmak 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 kullanıma sunuldu. (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 öğesini DialogProperties öğesine ekleyin. bf9d670

Hata Düzeltmeleri

  • Dahili testler düzeltilirken pencere yerleştirme cetvelleri geçici olarak devre dışı bırakıldı. 8d1402
  • İşaretçi girişi değişikliklerinin VelocityTracker içinde DragGestureNode'ye eklenme şekli düzeltildi. Bu, 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ğidir. MergedHorizontalRulers ve MergedVerticalRulers, örnek oluşturmak için minOf ve maxOf yöntemleriyle değiştirildi. (Iee89f, b/408192133)
  • androidx.compose.ui.LocalSavedStateRegistryOwner yerine androidx.savedstate.compose.LocalSavedStateRegistryOwner desteği sonlandırıldı. (I5439f, b/377946781)
  • Ekranda içerik gösterilirken 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 artık kullanımdan kaldırıldı. Bunun yerine currentCompositeKeyHashCode politikasını kullanın. Yeni API, aynı karmayı daha fazla bit ile kodlar. Bu da, kompozisyon hiyerarşisinde rastgele ve alakasız iki 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) ekle, isChecked + setChecked(boolean) desteğini sonlandır (Iaac9d)
  • graphicsLayer değiştiricisi artık blendMode ve colorFilter (Iab0e6) değerlerini kabul ediyor.
  • Sorgu kaynaklarına LocalResources composition local eklendi. LocalResources.current çağrısı, yapılandırma değiştiğinde 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çeriklerinizin 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'sinin desteği sonlandırıldı. Bu özelliğin amacı erişilebilirlik kontrolleri yapmaktı. Bunun yerine enableAccessibilityChecks() özelliğini kullanın. (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)
  • Davranışı daha net bir şekilde açıklayan runWithMeasurementDisabled lehine runWithTimingDisabled desteği sonlandırıldı. Tüm metrikler duraklatıldı. 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 Portre boyutunu ekleyin (Ia1976).
  • Belirli bir zamanda izleri değerlerle işaretlemek/günlüğe kaydetmek için iz değeri API'si kullanıma sunuldu. İ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 (I7922f, b/246909281) iletişim kutusu özelliklerini kontrol etmek için ayarlanabilir.
  • İ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'yi 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ü yükseltmek için gradle.properties dosyasında android.experimental.lint.version=8.8.2 değerini ayarlayabilirsiniz. Bu işlem AGP'yi etkilemez. (I6f2a8)
  • Çıkış dönüşümü uygulanmadan önce textfield değerini yakalayan yeni bir semantik özellik InputText eklendi. (Iae46a, b/395911609, b/176949051)
  • enableAccessibilityChecks() API'si, TestRule üzerinde çağrı yaparken TestRule ve compose:ui:ui-test-junit4-accessibility kullanmıyorsanız Android'de erişilebilirlik kontrollerini etkinleştiren ayrı paketlere compose:ui:ui-test-accessibility 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 kullanımdan kaldırılan 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 tam olarak doğrulandığından isGetFocusedRectReturnEmptyEnabled ile ilgili işaret kaldırıldı. (Ife722)
  • ComposeUiFlags.isGetFocusedRectReturnEmptyEnabled işareti, ComposeView içinde odaklanılabilir 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 NEXT seçeneği olduğunda ve ComposeView ile requestFocus() öğelerine odaklanmaya çalıştığında başarısız olması durumunda ö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ıldığında oluşan NPE hatası düzeltildi (6a7e7f).
  • Yalnızca çizim güncellemeleri gerçekleştiğinde onLayoutRectChange'nın, 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çme isteklerini atlayın. Bu hata, bazı durumlarda önceden getirme işlemi verimli çalışmadığı ve ölçüm çerçeve içinde yapıldığı 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 belgelerini inceleyin. 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, dokunma teknolojisinin desteklendiğini gösterdiğ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'ı aradığınızda 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ş odaklanmış görünümlerin, odaklanmış 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

  • Odaklanılmış 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 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

  • enableAccessibilityChecks() API'si, TestRule kullanılmıyorsa 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ı kullanımdan kaldı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 tamamen kullanıcı alanında 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 yapıya dayalı API'yi kullanın. (I943ff)
  • requestAutofill API'yi otomatik doldurma yöneticisinin dışında olacak şekilde 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) sorunu düzeltildi. drawContent() kaydı yapıyorsanız DrawScope içinde GraphicsLayer#record uzantı işlevini kullandığınızdan emin olun. GraphicsLayer üzerinde üye işlevini kullanmayın. (I75fc0, b/389046242)
  • Animasyonlar sırasında bazen yanlış çevrilen üç nokta içeren metin düzenini düzeltme. Daha fazla bilgi için b/389707025 başlıklı makaleyi 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 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'da, genel düzen değişiklikleri için bir dinleyici kaydetmeye yönelik uzantı işlevi eklendi. (I68b59)

Hata Düzeltmeleri

  • ComposeContentTestRule.setContent kullanılırken test edilen composable'ın ana makinesi olarak kullanılan etkinlik, artık ActionBar'nin SDK 35 hedeflenirken 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 kuruluş birimindeki sahibi gösterir. (I26f7f)
  • LocalAutofillHighlightColor kompozisyonu, yerel kullanımda renk türünü kullanıyor. (I0e05b)
  • Desteği sonlandırılan UrlAnnotation ve yöntemleri deneysel olarak işaretlenmeye devam edecek. (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 olan arka planlar düzeltildi. (I4d57a)
  • Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için şu derleyici bağımsız değişkenini kullanmalıdır: -Xjspecify-annotations=strict (Bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Idfef8, b/326456246)
  • Android Q+ üzerinde çalışırken geniş renk gamı ve HDR renkleri için Compose desteğini güncelleyin. (Icd8be, b/379135036)
  • Yüklenemeyen kaynak yazı tipleri, ölçümde istisna oluşturma şeklindeki önceki davranış yerine artık varsayılan yazı tipine sessizce geri dönecek. (Ib6a49)
  • AndroidView ayrılıp takıldığında odak kaybı sorununu düzeltir. (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önde 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() (I99c03) ile ilgili API değişiklikleri:
    • parametre adı "fallback" olarak değiştirildi
    • parametresi artık lambda değil, FocusRequester
    • parametresi artık varsayılan değer olarak Default ile NULL olmayan bir değerdir.
  • Otomatik doldurma yöneticisi arayüzünden @Experimental ek açıklamasını kaldırma. Bu özellik, bu sürümde kullanıma sunulmak üzere geliştirilmeye devam ediyor 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ı sağlar. Aşağıdakiler HapticFeedbackType - Confirm, ContextClick, GestureEnd, GestureThresholdActivate, Reject, SegmentFrequentTick, SegmentTick, ToggleOn, ToggleOff, VirtualKey. Button, IconButton, TextButton ve Card gibi uzun tıklanabilir Wear Compose bileşenleri, uzun tıklama işleyicisi 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) simgesini 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. Bu amaçla kullanmak için enableAccessibilityChecks() bölümüne bakın. (I59322)

Sürüm 1.8.0-alpha05

30 Ekim 2024

androidx.compose.ui:ui-*:1.8.0-alpha05 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 sunulmuştur. Performansı artırmak için çalışıyoruz ve API'lerle ilgili erken geri bildirimler arıyoruz. API'lerin, geri bildirimlere göre kararlı sürümden önce geliştirilmesi beklenmektedir.

  • Otomatik doldurmayı etkinleştirmek için onCreate içinde ComposeUiFlags.isSemanticAutofillEnabled değerini true olarak ayarlayın ve en son Anlık Görüntü Oluşturma özelliğini kullanın.
  • Otomatik Doldurma'nın bu sürümü, kimlik bilgilerinin manuel olarak, Güçlü Şifre Öner özelliğiyle ve gezinme yoluyla kaydedilmesini destekler. Ayrıca, otomatik doldurulabilir bir alan odaklandığında veya otomatik doldurma, metin bileşenlerindeki metin araç çubuğu üzerinden tetiklendiğinde de doldurmayı destekler. Otomatik doldurma işlemi tamamlandığında bileşen vurgulanır.

API Değişiklikleri

  • Otomatik doldurma arayüzünü expect/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 seçeneği eklendi. (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ştiricinin çözdüğü birçok kullanım alanını çözer ancak bunu çok daha az ek yükle yapar ve API, kullanım alanının gerektirdiği şekilde geri çağırmayı sekmeyi kaldırma ve kısıtlama olanaklarıyla birlikte gelir. (Id28c7, b/372765423, b/372757007, b/372994338)
  • Otomatik Doldurma Yöneticisi'ni, kullanıcılara yeni girilen kimlik bilgilerini kaydetmede yardımcı olan commit() 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, 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 alabilir (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 uygulamasının düzgün çalışmasını engelleyen sorun giderildi. (Ia9b99, b/373743376)
  • İletişim kutularının ortalanmak yerine ekranın alt kısmında gösterilmesiyle ilgili sorun düzeltildi (Ia2ec, b/373093006)
  • 35 ve sonraki API sürümlerini hedefleme artık iletişim kutularının decorFitsSystemWindows değerini false olarak ayarlamayı 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ü şu commit'leri içerir.

API Değişiklikleri

  • DelegatableNode#onDensityChange ve DelegatableNode#onLayoutDirectionChange geri çağırmalarını ekleyerek bunlar değiştiğinde düğüm durumunun güncellenmesine olanak tanır (I04f3e, b/340662451).
  • Geçerli pencerenin içerik kapsayıcısının boyutunu sağlamak için WindowInfo#containerSize ekler. Bu bilgiler 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 uygulandı. Artık bu düğümler, kaydırma işlemini 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ştiricisinin dokunma sınırlarını büyütmek için kullanılabilecek PointerInputModifierNode#touchBoundsExpansion simgesi eklendi. (Iccf02, b/335339283)
  • Geçerli pencerenin içerik kapsayıcısının boyutunu sağlamak için WindowInfo#containerSize ekler. Bu bilgiler 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 alıyordu (I12f80).

Hata Düzeltmeleri

  • AnnotatedString'da 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 geçmiş paragraflara izin veriyor (Ic9554).
  • AnnotatedString içinde sıfır uzunluklu LinkAnnotation ile kilitlenmeyi 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() öğesini hideFromAccessibility olarak yeniden adlandırın. İşlevi aynı kalır. Daha fazla ayrıntı için belgelere bakın. (Ib43a3)

Hata Düzeltmeleri

  • SensitiveContent değiştiricisiyle ilgili 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 klipsi belirtildiğinde boş klipslerin uygulanması sorunu 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'da yerleşimin ayrılmış düğümlerde gerçekleşmesine neden olan sorun düzeltildi.
  • Odaklanma TextField'dan EditText'ye veya başka bir Görünüm tabanlı düzenleyiciye geçtiğinde yazılım klavyesinin titremesine neden olan sorun düzeltildi.
  • İç içe yerleştirilmiş kaydırma düğümleri artık ayrıldıktan sonra 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

  • Tek satırlık metin satırının başına veya ortasına üç nokta yerleştirmenize olanak tanıyan TextOverflow.StartEllipsis ve TextOverflow.MiddleEllipsis artık kullanılabilir. (I38913, b/185418980)

Hata Düzeltmeleri

  • Dalog dismissOnClickoutside ile ilgili sorunu 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 hatalı davranış düzeltildi (58377, b/350534714)

Harici Katkı (External Contribution)

  • AlignmentLines Map artık VerticalAlignmentLine veya HorizontalAlignmentLine 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 öğesi Text composable'a geçirilirken IndexOutOfBoundsException sorunu düzeltildi. (Ic96d2)
  • AnnotatedString içinde LinkAnnotation kullanıldığında bazı 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. Şimdi 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 işlevinin 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

  • Yükseklik ve özel ana hatlarla 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 duyuru düzeltildi. (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ış bir 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 etkinliklerin performansı iyileştirildi. (I89156, b/362530618)
  • ComposeView, olağanüstü büyük bir ölçüm boyutu (da5db, b/347036173) iletildiğinde artık kilitlenmeyecek.
  • Düğmelerdeki LiveRegion duyurularının yapılmamasına neden olan erişilebilirlik ekran okuyucu sorunu düzeltildi. (f66fa7, b/348590026)

Sürüm 1.7.1

10 Eylül 2024

  • Android yapıları değiştirilmez. -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 modülünün minimum sürümünün en az 1.7.0-rc01 veya daha yeni olmasını zorunlu kılıyor. Bu, 1.7.0-alpha01 sürümünün başlarında yapılan 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ştirilmesi durumunda odak kaybedilip yeniden kazanılana kadar TextField uygulamasının yeni klavyeden giriş kabul etmemesine neden olan hata düzeltildi.
  • Katman içeriklerini kalıcı hale getirme girişimlerinin, SurfaceView içeriklerle oluşturma sırasında istenmeyen yan etkilere neden olması sorunu 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ğundan 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 değerine 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ı. TextDefaults da materyalden (I5477b) kaldırıldı.

Hata Düzeltmeleri

  • Amacını daha iyi yansıtmak için LayoutCoordinates.introducesFrameOfReference, LayoutCoordinates.introducesMotionFrameOfReference olarak yeniden adlandırıldı. İlgili işlev, koordinatları bu işarete göre hesaplayacak şekilde yeniden adlandırıldı. (I3a330)

Sürüm 1.7.0-beta01

14 Mayıs 2024

androidx.compose.ui:ui-*:1.7.0-beta01 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ının içinde gözlemleniyor. Bu nedenle, durum değiştiğinde içindeki durum değerlerinin okunması geçersiz kılmalara neden olarak daha iyi performans gösteren şekil animasyonlarına olanak tanır. (Id1629, b/326070216)
  • isPositionedByParentWithDirectManipulation, introducesFrameOfReference olarak yeniden adlandırıldı. Bu ayarın artık ters etki gösterdiğini, yani varsayılan olarak çoğu LayoutCoordinates'nın bir referans çerçevesi oluşturduğunu ve özelliğin yalnızca doğrudan manipülasyon altında yerleştirildiğinde yanlış olacağını unutmayın. Konumu yalnızca referans çerçevesi sunanlarla 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) mevcut olan Unspecified sabitleri 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 öğesini 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 önceden getirilmesi için destek eklendi (ör. iç içe yerleştirilmiş LazyRows öğelerini oluşturmak için kullanılan LazyColumn). 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 yerleştirilmiş öğ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 onayları içerir.

API Değişiklikleri

  • ClickableText, desteği sonlandırılmış olarak işaretlendi. Metne bağlantı eklemek için bağlantınıza karşılık gelen bir AnnotatedString ile LinkAnnotation 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, yaklaşımını canlandırmaya karar verirken hangi ofsetin canlandırılacağını ve hangi ofsetin doğrudan uygulanacağını ayırt etme fırsatı sunar. (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'den yararlanacak şekilde güncellendi. (I312c1, b/288494724, b/330758155)
  • UrlAnnotation kullanımdan kaldırıldı, bunun yerine LinkAnnotation.Url kullanın. Material teması kullanıyorsanız Material teması uygulanmış bir ek açıklama 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ği, fareyle üzerine gelme ve odaklanma stillerini de destekliyor (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 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 özelliklerini 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

  • Kötü/bozuk geçmiş giriş etkinliği verilerini düzgün ş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 (ScrollCaptureCallback) kullanılarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumları doğru şekilde ele almayabilir. Bu nedenle, 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() simgesini kullanın. 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ğerini 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).
  • Bitmap içeriklerinin GraphicsLayer olarak oluşturulmasını desteklemek için GraphicsLayer#toImageBitmap askıya alma yöntemi eklendi. Bu, API düzeyi 22 ve sonraki sürümlerde (dahil) donanım hızlandırmalı bir oluşturma işlemidir ve tüm Android cihazların% 99'undan fazlasını destekler. Android API düzeyi 21'de bu, yazılım oluşturmaya geri döner. (I9e114)
  • Android RectF öğ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 özelliğinin adı autoCorrectEnabled olarak değiştirildi ve özellik boş değer atanabilir hale getirildi. Boş değer, herhangi bir değer 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 sunar. Bu, karmaşık bir sahneyi daha küçük parçalara bölmek için bir izolasyon sınırı sağlar. Böylece, sahnenin tamamını yeniden oluşturmadan parçaları birbirinden bağımsız olarak güncelleyebilirsiniz. Bir 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 ayrıldı (I6d7fd)
  • Android L kullanımına yönelik HardwareCanvas kaba kod tanıtıldı (I1c3b5, b/288494724)
  • Compose çerçevesini, Owner'ı güncellemenin yanı sıra GraphicsContext kompozisyon yerelini gösterecek şekilde güncelleyin. DelegateableNode ve drawWithCache Modifier uygulamalarını, kapsamlı erişim için GraphicsContext erişimini gösterecek şekilde güncelleyin. Bu erişim, Modifier'lar kaldırıldığında GraphicsLayer örneklerini otomatik olarak temizler. (I64a2f, b/288494724)
  • Alt düzey IME ile ilgili testler ve diğer alt düzey 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 kaplı metin aralığını döndüren Paragraph#getRangeForRect işlevini kullanıma sunuyoruz. (Iee516, b/325660505)
  • BasicText işlevinin 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üştürmelerle yakalanmasını ve yeniden oynatılmasını desteklemek için GraphicsLayer expect/actual API tanımı eklendi. GraphicsContext arayüzüyle GraphicsLayer örneklerinin oluşturulması ve yönetilmesi de dahil olmak üzere grafik bağımlılıklarını kullanıma sunun. (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 odaklanma aramasıyla 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 kalemle el yazısı özelliğini destekler. (I002e4)
  • Bu CL'de, Compose'da kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için GetScrollViewportLength semantik işlemini ekliyoruz. Bu değişiklik listesi, 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 yerelini okumadan 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 eklenerek TextFields'ye belirli yerel ayarlara sahip IME'lere ipucu verme ve tercih edilen bir dili önceden ayarlama özelliği kazandırıldı.
  • Temel 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 sayısı ve taşma özellikleriyle ContextualFlowRow ve gelişmiş FlowRow/Column ile tanışın. Deneysel FlowRow ve FlowColumn özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artık maxLines ve overflow desteği sunuyor. Ayrıca ContextualFlowRow ve ContextualFlowColumn özelliklerini de kullanıma sunuyoruz. 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 maksimum değerine 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ı kullanımdan kaldırıldı. Bu API, değiştiricinizde gerekenden daha fazla geçersiz kılma işlemi oluşturacağından artık kullanılması önerilmemektedir. Değiştirici özelliklerini araçlara göstermek isteyen geliştiricilerin inspectableProperties() yöntemini ModifierNodeElement üzerinde uygulamaları önerilir. (Ib3236)
  • PopupProperties için yeni oluşturucu. Bu oluşturucu, WindowManager.LayoutParams işaretleri üzerinde tam kontrol sağlar. (Ibb33e, b/312485503)
  • DelegatableNode.requireLayoutCoordinates(), Modifier.Node'nin mevcut LayoutCoordinates'sini almak için onPlaced'yi geçersiz kılmaya ve koordinatları bir mülkte kendiniz saklamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak sunuldu. (Ia8657)
  • DelegatableNode.currentLayoutCoordinates, Modifier.Node'nin mevcut LayoutCoordinates'sini almak için onPlaced'yi geçersiz kılmaya ve koordinatları bir mülkte kendiniz saklamaya gerek kalmadan kullanabileceğiniz bir yöntem olarak 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'si eklendi. Ayrıca, oluşturma sırasında hedefi bilinmeyen animasyonlar için yeni bir deneysel DeferredTargetAnimation API'si eklendi. (I60745)
  • Path yönünü sorgulamak ve Path konturlarını çıkarmak için yeni API'ler. (I63d04)
  • PathHitTest ve Path.contains(Offset) işlevleri, Path öğesinin belirli bir noktayı içerip içermediğini kontrol etmek için 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 temel çizgisi okunabilir. (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 parametresini alan usePlatformDefaultWidth oluşturucusu artık deneysel değildir. (I8f8d2)
  • Zaman aşımı mesajına dahil edilecek koşulun dize açıklamasını alan ComposeTestRule.waitUntil aşırı yüklemesi eklendi. (I9413e)
  • Aynı değiştirici zincirine eklenen anlamsal yapı özelliklerinin kaldırılması için yeni anlamsal yapı API unset(). Yeni anlamsal yapı özelliği isOpaque. (I8c583, b/317966058, b/246056649)
  • originalEventPosition, PointerInputChange genel API'sindeki kopyalama yönteminden 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 sorunu 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 boyutu, yerel ayarı, düzen yönünü, yazı tipi ölçeğini veya temayı belirtmek için) olanak tanımak üzere 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 kilitlenme sorunu 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 ölçüm sırasında bir düzen anormal derecede büyük bir boyut döndürdüğünde hata veriyor. Bu tür bir hata genellikle ölçüm, Constraints.Infinity kontrolü yapmadan doğrudan maksimum kısıtlamaları kullandığında ortaya çıkar. 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. Compose Layout Inspector'da (If693) buna karşı önlem alın.

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 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 verecek şekilde 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 işlev 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 dekorasyon sürükleme DrawScope lambda'sı için parametreler alıyor.

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

    onDragAndDropEvent, DragAndDropModifierNode için fabrika işlevinde onDragAndDropStart olarak yeniden adlandırıldı. Böylece, sağlanan DragAndDropTarget öğesinin yalnızca belirli bir sürükle ve bırakma oturumu için geçerli olduğu daha iyi anlaşılacak.

    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)

  • Materyal SwipeToReveal API'leri (kartlar ve çiplar 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 demoyu ve örnek kodu inceleyin. (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üzenleyici odaklanmamışsa artık yazılım klavyesini göstermez. (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 İçine Yerleştirme 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 koyuyor. (I55555)
  • TestDispatchers, Compose testlerine effectContext olarak iletildiğinde artık testi ve çerçeve saatlerini oluşturmak için kullanılacak. (Ia7178)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.ui:ui-*:1.6.0-alpha08 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. (I2c196, b/302100809)
  • null yerine ParagraphTextStyle alanının TextAlign, TextDirection, Hyphens ve LineBreak alanları için ö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 olanı Unspecified ile değiştirerek temel tür kutulamayı ö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 sınıfını açık sınıf yaptı. (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) düzeninize FragmentContainerView eklenerek şişirilmiş Fragment örneklerini onRelease kapsamında eşzamanlı olarak kaldırıyor. Böylece, Canlı Düzenleme'nin değişiklikler üzerine kompozisyonu değiştirme yöntemiyle ilgili sorunlar düzeltiliyor. (I58fbf)

Sürüm 1.6.0-alpha07

4 Ekim 2023

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

API Değişiklikleri

  • Özel metin düzenleyiciler için test yazmaya yönelik PlatformTextInputMethodTestOverride işlevi kullanıma sunuldu. (Id159b)
  • Sürükle ve bırak oturumlarını başlatmak için dragAndDropSource değiştiricisi ve sürükle ve bırak 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 ayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)

Hata Düzeltmeleri

  • Optimize edilmiş XML vektör çekilebilir öğ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 öğesini 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 büyür ancak zaten büyük olan metinlerin boyutu yalnızca biraz büyür. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yüksekliğe orantılı kalacak şekilde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar'a bakın. (I11518)

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ırlanır. Compose 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ırakma API'lerini desteklemek için ilk iskele oluşturma işlevini ekler. (If84ce)
  • RotaryScrollEvent uygulamasına deviceId ekleyin (Iba3bf)
  • Daha yeni cihazları (Ib25b4) içerecek şekilde güncellenen ui-tooling Devices API

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 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 bölümü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 yapılandırma desteği eklendi (Idb772)

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 doğru'dan yanlış'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 temsilci atayan bir uygulamasının, hizmet aramalarını orijinal Composition'a temsilci atamasına 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 CompositionLocal olarak da kullanılabiliyor. (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üzenle çalışabilen LookaheadScope API'leridir. (I12ac3)
  • Testlerde odaklanma isteğinde bulunmanın daha kolay ve bulunabilir bir yolu 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, okuduğu bir durum bir efekt tarafından hemen değiştirilirse update geri çağırmasının geçersiz kılınmadığı bir hatayı düzeltir. (Ie9438, b/291094055)

Sürüm 1.6.0-alpha01

21 Haziran 2023

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

Yeni Özellikler

  • LazyList'da ileri bakma desteği. Bu, ileriye bakma geçişindeki LazyList öğesinin tüm animasyonları (ör.öğe yerleştirme animasyonu, AnimatedVisibility vb.) atlamasına ve tüm alt öğeler için ileriye bakma boyutunu ve konumunu hesaplamasına olanak tanır. Önceden izleme geçişinden sonra, LazyList yaşındaki çocuklar, önceden izleme geçişinde görüldüğü gibi gerçekliğe göre bağımsız olarak animasyon yapabilir.

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

Oluşturma'da includeFontPadding artık varsayılan olarak false değerini alıyor (21d806).

includeFontPadding, metin taban çizgilerinin üstüne veya altına uzayabilecek karakterleri barındırmak için metnin ilk satırının ve son satırının üstüne ek dolgu eklenip eklenmeyeceğini kontrol eden eski bir özelliktir.

Bu Compose sürümünü güncellemek, gösterdiğiniz her metnin ilk ve son satırının üzerindeki ekstra dolguyu kaldırarak kullanıcı arayüzünüzdeki tüm metinlerin oluşturulma şeklini değiştirir.

Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak değişiklikler en az düzeyde olmalıdır. Ancak aşağıdaki gibi engelleyici durumlarla karşılaşabilirsiniz: - Bozuk ekran görüntüsü testleri. Gerekirse kullanıcı arayüzünü düzeltin ve referans resimleri yeniden oluşturun. - Metin biraz yanlış hizalanmış. Özel negatif dolguları kaldırın veya gerekirse dolgu ekleyin.

Her metin için PlatformTextStyle kullanarak includeFontPadding özelliğini etkinleştirebilirsiniz:

Text(
 text = myText,
 style = TextStyle(
   lineHeight = 2.5.em,
   platformStyle = PlatformTextStyle(
     includeFontPadding = true/false
   )
   /* … */
  )
)

Materyal stillerinizi yapılandırarak tüm metinlerinizde includeFontPadding özelliğini etkinleştirebilirsiniz. Parametre adlarının M2 ile M3 arasında farklılık göstereceğini unutmayın.

val Typography = Typography(
   body1 = TextStyle(
       fontFamily =    /* … */,
       fontSize =    /**/,
       platformStyle = PlatformTextStyle(
           includeFontPadding = false
       )
   /**/
   )
)

MaterialTheme(
   typography = Typography,
   /* … */
)

Compose includeFontPadding hakkında daha fazla bilgiyi geliştirici belgelerinde ve bu blog yayınında bulabilirsiniz.

Bu değişiklikle ilgili sorunlar/hatalarla karşılaşırsanız sorun izleyiciyi kullanarak hata bildirin.

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ü ekleyin. (I19f44, b/230166331, b/278424788)
  • Performans ve bellek ayırmaları için optimize edilmiş erişilebilirlik. (Iede48)
  • Metin çevirisini desteklemek için anlamsal yapı özellikleri ve işlemler eklendi. (I4a6bc)
  • Mevcut ölçüm kartının gelecekteki bir etkinlik için geçerli olup olmadığını belirtmek üzere IntrinsincMeasureScope ve uygulamalarındaki (ör. MeasureScope) yeni özellik. (I7a812)
  • DrawScope API'si, alternatif yoğunluk/düzen yönü ve boyuta sahip farklı bir kanvasa yeniden hedefleme oluşturma özelliğini 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 tuvalin yapılandırılması da sağlandı. (Ie1f9b, b/225408150)
  • Karakter sınırlayıcı kutularını hesaplamak için Paragraph#fillBoundingBoxes eklendi. (If30ee)
  • Bir dizi ortak MultiPreviews eklendi (Ia5a27)

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 içinde) 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ırların dışındaki ofsetler için AssertionError istisnası oluşturan Paragraph yöntemleri artık MultiParagraph gibi IllegalArgumentException istisnası oluşturuyor. (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.
  • Bağlı olmayan düğümlerin anlamsal yapı ağacına eklenmesi sorunu 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, odaklanılmış durumdayken readOnly değeri doğru'dan yanlış'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.ui:ui-*:1.5.0 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 yaşanan 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 tuşuna basıldığında 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şlemlerinde tahsisler kaldırıldı.
  • Yetki vermeye izin vermek için yardımcı işlevi CacheDrawModifierNode() ekleniyor (Icf8f9)
  • isLookingAhead özelliğini kullanıma sunuyoruz. Bu özelliğe MeasureScope üzerinden erişerek ileriye dönük sonuçları gözlemleyebilir ve isterseniz ana geçişi etkileyebilirsiniz. (Ibf4c3)
  • Yeni anlamsal yapı özelliği traversalIndex, TalkBack geçişinde düğümleri yeniden sıralamak için kullanılan bir kayan noktalı sayıdır (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 (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 dosyasını toAndroidColorSpace olarak yeniden adlandırma (I4f547)
  • ColorLambda öğesini 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) gibi birçok metin API'si kararlı hale getirildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırılmadı. Başlangıçta bu alanı kaldırmak istiyorduk ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, alanın (I98e96, b/277703184) kullanımdan kaldırılması kaldırılıyor.
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • AnnotatedString içindeki UrlAnnotationlar 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şturucusu 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 öğesini 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ı verimli bir şekilde canlandırmak veya ayarlamak 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 çok ayırma işlemi 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 tahsisler kaldırıldı (I9f535)
  • AndroidFont.fontVariationSettings için doküman ekleme (I7d9e2)

Harici Katkı (External Contribution)

  • İyileştirilmiş performans ve Vector API'lerinde daha az yer ayırma (I906cb)

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 Temsilci atama ile ilgili iyileştirmeler Bir DelegatingNode örneğinden diğer Modifier.Node örneklerine temsilci atama ö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 bunları açıkça geçersiz kılmadığı sürece düğüm arayüzleri dolaylı olarak devredilecektir. (67352bc)

API Değişiklikleri

  • Yetki verilebilecek bir NestedScroll Modifier.Node olan NestedScrollModifierNode'ı kullanıma sunuyoruz. (I69513)
  • onReset ve onRelease parametreleri, AndroidViewBinding composable'a 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 sık yol manipülasyonu yapılan kullanım alanlarında daha hızlı yeniden kullanım için geri sarma işlemlerini desteklemek üzere Compose Path API güncellendi. (I7b797)
  • Tam parametre listesiyle optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) gibi birçok metin API'si kararlı hale getirildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırılmadı. Başlangıçta bu alanı kaldırmak istiyorduk ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, alanın (I98e96, b/277703184) kullanımdan kaldırılması 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, ON_STOP bildirimi aldığında artık 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 sürümünü kararlı sürüme değiştirme (Ic5ec4, b/261560988)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • Geliştiricileri includeFontPadding ayarını false olarak değiştirmeye ve test etmeye teşvik etmek için 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: Lookahead 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)
  • Deneysel API'leri önemli etkinliklerle birlikte 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 UrlAnnotationlar 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şlemleri için artık metin alanlarının etkinleştirilmesi gerekiyor. (Iab328)

Sürüm 1.5.0-alpha01

22 Mart 2023

androidx.compose.ui:ui-*:1.5.0-alpha01 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çü birimi bloğunun alıcısı olarak IntermediateMeasureScope vardır. Bu kapsam, uygun CoroutineScope, LookaheadScope ve MeasureScope sağlar.(Ibe2e5)
  • LookaheadLayout, artık Layout olmayan LookaheadScope ile değiştirildi. Bu sayede, LookaheadScope'taki alt içeriklerin doğrudan üst öğenin MeasurePolicy'si tarafından kontrol edilmesine olanak tanınır. (Ibe2e5)
  • Modifier.Nodes'un eş yordam başlatmasına izin vermek için Modifier.Node#coroutineScope eklenir. (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 Arama'da DropDown Menüler'i (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österilmemesine neden olan regresyon düzeltildi (I82551, b/262140644).

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.ui:ui-*:1.4.1 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

  • Liste öğelerinin, sınırların dışına kaydırıldığında kaldırılmaması için bu öğelerin sabitlenmesine olanak tanıyan yeni bir PinnableContainer API eklendi. Ö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.Node API'leri kullanılarak yeniden yazıldı. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)
  • Yüzeylerde IsContainer anlamsal yapı özelliği eklendi. Bu özellik, daha sonraki bir değişiklikte, yüzeyler gibi öğelerin semantik anlamına göre geçiş sırasını belirlemek için 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 olarak tanımlanması için TextMotion deneysel özelliği TextStyle öğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated simgesini 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üklemesi eklendi. Bu sayede, görünüm örneklerinin kompozisyondaki düğümleri atıldığında ve uyumlu bir şekilde yeniden kullanıldığında 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.
  • Metin testi işlevleri performTextClearance, performTextReplacement ve performTextSelection 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'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)

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. Daha fazla doküman için ComposeTestRule adresini ziyaret edin. (Ifa1b9, b/226934294)
  • Font.MaximumAsyncTimeout öğesini 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 parametresini 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 tarihinde yanlışlıkla herkese açık hale getirilen setter kaldırıldı. (I07f47)
  • Satır içi/desteği sonlandırılan-gizli işlevlerin türü/null değer alabilme özelliğiyle 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

  • Liste öğelerinin, sınırların dışına kaydırıldığında kaldırılmaması için bu öğelerin sabitlenmesine olanak tanıyan yeni bir PinnableContainer API eklendi. Ö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.Node API'leri kullanılarak yeniden yazıldı. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)
  • Yüzeylerde IsContainer anlamsal yapı özelliği eklendi. Bu özellik, daha sonraki bir değişiklikte, yüzeyler gibi öğelerin semantik anlamına göre geçiş sırasını belirlemek için 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 simgesini kullanın. (I24dd7)

API Değişiklikleri

  • Diğer DrawScope işlevleriyle uyumlu 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, önceki varsayılan davranışı değiştirmemelidir. (Icd27d)
  • Desteği sonlandırılan deneysel yazı tipi oluşturucu kaldırıldı. (I8a724, b/261435386)
  • UI 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 alan (isInline) içeriyor. 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şlevlerine 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 ile variationSettings oluşturucu 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 yakalanmayan 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 dosyası PointerIcon klasöründen 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)
  • Hareketler kaydırma etkinliğine dönüşebildiğinde basma etkileşimlerini doğru şekilde geciktirmek için Clickable içinde kullanılır.
  • Clickables öğesinin, Scrollable ViewGroup içinde kullanıldığında dalgalanmaları doğru şekilde geciktirmemesi sorunu düzeltildi.
  • Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda basma işlemlerinin doğru şekilde geciktirilmesi için çekmeceler ve sayfalar güncellendi.
  • CompositingStrategy.Always, graphicsLayer öğesinin her zaman ara arabelleğe (I47dc1) dönüştürüleceğini belirtmek için Offscreen olarak yeniden adlandırıldı.
  • Birden fazla içerik yuvası içeren düzen aşırı yüklenmesi 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ışırken oluşturma davranışıyla eşleşir. 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ğırmaların dışında, geri çağırmaların içine taşınması gerekebilecek mantık içeren kodları etkilemelidir. Örnekler için bu CL'deki animasyon testi değişikliklerine bakın.
  • onPerformTraversals: (Long) -> Unit parametresi, TestMonotonicFrameClock oluşturucu 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)
  • Compose'a EmojiCompat eklendi (Ibf6f9, b/139326806)
  • Dinamik renk desteği için @Preview öğesine yeni duvar kağıdı parametresi eklendi (I9f512).

Hata Düzeltmeleri

  • Anlık görüntü uygulama bildirimleri artık Recomposer değişiklikleri uygulamayı tamamladıktan sonra gönderiliyor. (Iad6c0, b/222093277)
  • captureToImage'da çoklu pencere ekran görüntülerinin alınmasına olanak tanıyan değişiklikler yapıldı. Bu, Compose PopUp'larını kullanan ekran görüntüsü testleri için yararlıdır. (I169c5)

Bağımlılık Güncellemeleri

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

Sürüm 1.4.0-alpha02

9 Kasım 2022

androidx.compose.ui:ui-*:1.4.0-alpha02 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ışı bir arabellekten yararlanmaya devam eder (I25e82, b/256382834).
  • invalidateSubtree(), düzen ve çizim için tüm hiyerarşilerin geçersiz kılınmasına olanak tanımak üzere Modifier.Node'ye eklendi. (I4bd90)
  • rememberNestedScrollInteropConnection sürümünü kararlı sürüme yükseltin. rememberNestedScrollInteropConnection öğesine kök görünüm geçirme özelliği kullanıma sunuldu. Bu, özel görünümün özellikle standart olmayan görünümlerde (ör. ModalBottomSheetDialog) kaydırma kısıtlamalarına daha iyi tepki vermesine yardımcı olabilir. (I9e107)
  • Daha önce 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 dahili durumlarını değiştirmesine izin vermek için ToolingState ekleyin (Ie6614)
  • Yeni eklenen animasyonlar için daha iyi destek sağlamak üzere araçları yeniden düzenleme (I8677b)
  • Materyal ve Material3 metnine, bileşenin minimum yüksekliğinin satır sayısı cinsinden ayarlanmasına olanak tanıyan minLines, TextField ve OutlinedTextField parametreleri eklendi (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ği için yinelemeler arasında etkinlik kaybolmaz.
  • 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ülmesi 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 görünümünün 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 (CVE-2022-3171) içinde güvenlik uyarısını önleyen Profobuf 3.21.8'i kullanacak şekilde güncellendi (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 gelişmiş destek.
  • LazyLists'te 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
  • Pek ç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 sonlarını özelleştirme seçenekleri ekleyin. (I86907)
  • Minimum genişlik kısıtlamalarını desteklemek için TextMeasurer.measure yöntemindeki 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'da ç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ı 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 tuşunu 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 LayoutNodes üzerinde davranışlarını koordine eden katman büyük ölçüde yeniden düzenlendi. Bu, Compose'daki birçok değiştiricinin genel API'sini etkilemeyen bir yeniden düzenleme olduğundan yalnızca uygulamayla ilgili bir değişiklik olarak değerlendirilebilir. Bununla birlikte, bu değişiklik çeşitli nedenlerle önemlidir. (Ie4313)

Değişiklik Özeti

Eklenen deneysel Modifier.Node API'leri, düzen düğümünün yaşam döngüsüyle birlikte korunacak bir örnekte durumun korunmasına olanak tanıyan ve bunu üreten ilgili Modifier.Element'nin düzen düğümü başına ve kullanım başına ayrılacak bir soyutlama sağlar.

Genel olarak bu soyutlama, Modifier.composed API'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 pratik ve makul olduğu ölçüde geriye dönük uyumlu olması amaçlanmıştır. Bununla birlikte, bu yeniden düzenlemenin etkilemediği 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 şu işlemler sonucunda oluşturulur:

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

Davranış 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 malzeme 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şilebilirlikle ilgili bir hatayı azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusunun veya pop-up'ın içindeki içerikle etkileşime geçebilmesini sağlamak için yapılmıştır.

Bu değişiklikten yalnızca, yüksekliği 8 dp'den daha yüksek seviyelere ayarlanmış özel bir iletişim kutusu veya pop-up uygulaması oluşturuyorsanız etkilenirsiniz. İletişim kutunuzun veya pop-up'ınızın yüksekliğini azaltmayı deneyin. Bu yeni davranışı devre dışı bırakmanız gerekiyorsa istediğiniz yükseltme ayarıyla kendi iletişim kutunuzu veya pop-up'ınızı oluşturmayı düşünebilirsiniz. Erişilebilirlik olumsuz etkilenebileceği ve iletiş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ğunda olduğundan bu durum önerilmez.

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 kabul etmiyor. Lütfen bu parametreler için özel değerler sağlamak üzere TextMeasurer oluşturucusunu kullanın. (Ia1da3)
  • İletişim kutularının WindowInsets'ı 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ümde 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çindeki PlacementScope değerini almak için deneysel API eklendi. Bu, geliştiricilerin mevcut düzenin nerede olduğunu ve alt öğeleri konumuna göre nereye yerleştireceklerini bilmelerini sağlar. (I5482b, b/238632578)
  • Bir LayoutCoordinates değerinden 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'ye taşındı. (Iac808, b/203559524)
  • Kaynak yazı tipleri artık yazı tipi varyasyon 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çıklamalar kaldırıldı. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard desteğini sonlandırın. 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 bölümleriyle 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'e eklendi. (I53354, b/228862731)
  • Canvas ve drawBehind gibi DrawScope üzerinde çalışan composable'lar ve değiştiricilerde çok stilli metin çizmenin bir yolunu sağlamak için DrawScope üzerinde drawText uzantı işlevi 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 asTree gibi önce bellekte bir kopya oluşturmadan inceleyebilir. 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 değişimleri 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çü/düzen öncesinde ileriye dönük geçişi destekleyen yeni LookaheadLayout. Bu sayede, düzen değiştiğinde önceden hesaplama yapılabilir. Ayrıca, hedefteki boyut ve konumları canlandırmak için önceden hesaplanmış boyut/konum kullanılarak sonradan bakma ölçüsü/düzeni kullanılabilir. 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ğlamak için 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 aracında hatırlatma sırasında 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 işlevleri (RenderEffect dahil)
  • Pek ç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şlemini gerçekleştirmek için KeyInjectionScope'ya yüksek sıralı işlevler eklendi. Bu işlevler arasında withKeysDown ve withKeysToggled gibi işlevler yer alır. Ayrıca, belirli bir meta anahtarının basılı olup olmadığını kontrol etmek için özellikler de eklenmiştir. Örneğin, kontrol tuşlarından birinin basılı olup olmadığını kontrol etmek için isCtrlDown işlevi kullanılabilir. Her işlevle ilgili dokümanlar için KeyInjectionScope adresine bakın. (I9f6cd, b/229831515)
  • 'ı kabul eden Modifier.scrollable aşırı kaydırma efektlerinin yanı sıra özel 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

  • KeyInjectionScope listesine pressKeyTimes, isCapsLockOn ve arkadaşları eklendi. Ayrıca API artık meta tuşu basılıyken fare düğmesini 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'yı kullanın veya performMultiModalInput ile çok formatlı giriş hareketi sırasında MultiModalInjectionScope'nin 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, hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanmasını sağlayacak (I51ec3, b/216582726, b/223440806, b/227709803).
  • Artık Show Layout Bounds ayarı, hızlı ayarlar kutusundan geçiş yapıldıktan hemen sonra, etkinlikten çıkıp yeniden girmenize 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şmediğinde değil, gerçekleştiğinde de geçerli olduğunu daha iyi yansıtmak 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 sürümünün ilk beta sürümüdür.

API Değişiklikleri

  • Öğeleri görünür sınırların ötesinde yerleştirdiklerinde LazyList öğesinin özel uygulamaları tarafından kullanılabilecek deneysel BeyondBoundsInterval eklendi (Ifabfb, b/184670295).
  • Modifier.composed'nın anahtarlı sürümleri artık kararlı API (Ie65e4, b/229988420)
  • Mevcut görünüm bilgilerini edinmek için rememberNestedScrollConnection API'si, kompozisyon yerellerini kullanacak şekilde basitleştirildi (I67ca7).
  • @ComposableTarget ek açıklaması ve @ComposableTargetMarker ile işaretlenmiş ek açıklamalar 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şaretleyici 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). Bu API'ler, TestRule olmadan Compose kullanıcı arayüzü 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 platformundan ComposeUiTest platformuna 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çiş yaptığında ComposeContentTestRule ve ComposeTestRule, ComposeUiTest'dan genişletilecek ş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ılır.

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

  • Gradyan renkli metin çizme imkanı sunmak için TextStyle ve SpanStyle'ye Brush 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, Both ve None (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, CSS'nin LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) aracılığıyla 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 olarak değiştirildi (I9a268).

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 desteği (Ie528c, b/168720622)
  • Varsayılan olarak açıktır includeFontPadding. includeFontPadding özelliği, TextStyle.platformTextStyle özelliği kullanılarak devre dışı bırakılabilir. Yakın gelecekte varsayılan davranışı değiştireceğiz ancak o zamana kadar bu değişiklik, satır yüksekliğiyle ilgili iyileştirmeleri (aosp/2058653) daha iyi entegre etmemize 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. Şu anda Constraints.maxHeight iletmek 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 sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak için consume() öğesini 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 > View yönünde Compose ve View arasında iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, bir Compose üst öğesinin iç içe yerleştirilmiş 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 bir davranış değişikliğidir. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları destekleniyordu. (I380fe, b/156048036, b/226441992)
  • Paragraph ve Multiparagraph eğitmenleri, konumsal bağımsız değişkenleri isteğe bağlı bağımsız değişkenlerden önce gelecek şekilde yeniden sıraladı. (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 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ı özel olarak eklemek 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 deltaları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 sisteme yüklenen yazı tiplerini isteğe bağlı olarak aramak için yeni yazı tipi tanımlayıcısı Font(DeviceFontFamilyName) ekleyin. (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 yardımı için GoogleFont.Provider.isAvailableOnDevice uzantısını ekleyin. (I64e31)
  • @ArrayRes ile kullanılmak üzere GoogleFont.Provider oluşturucusu ekleyin (Ic5ee1, b/225984280)
  • Compose GoogleFont artık Font(GoogleFont) olarak adlandırılıyor. API'nin diğer özellikleri değişmedi. (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ğinde bulunmak için 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 öğelerinin ayrıştırılması güncellendi. (I79cd9, b/185760237)
  • API uyumluluğu için gölge/ortam renkleri, Modifier.graphicsLayer parametrelerinin izleyen parametreleri olarak güncellendi (I3f864, b/160665122)

  • API'de değişiklik yapılmaması için GraphicsLayerScope üzerindeki gölge/ortam rengine varsayılan uygulamalar eklendi.

  • RSB etkinliklerine etkinlik saati eklendi (Ief8ae)

  • FocusOrder artık FocusProperties ile birleştirildi ve focusProperties(), 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ştiricisiyle 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ör grafikleri API'leri, @UiComposable yerine uygun composable ek açıklama @VectorComposable'ı kullanacak şekilde güncellendi (I942bc).
  • AnnotatedString.Builder.withStyle öğesinden crossinline'ı kaldırın (If84d5)

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 "Animator duration scale" ayarını destekliyor. (I5a4fc, b/161675988)
  • BeyondBoundsLayout değiştiricisi yerel olarak 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 zaten varken 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 eş yordamları 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, kullanılması için tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.

    Çoğu durumda, ek açıklamalar compose derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Çıkarım yapılamayan durumlar arasında özel bir uygulayıcı oluşturma ve kullanma, soyut composable işlevler (ör. arayüz yöntemleri), 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şlevlerin kullanılması yer alır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran birleştirilebilir işlevlerin, işlev ve birleştirilebilir 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 doğrudan ComposableTarget yerine işaretlenmiş açıklamanın kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir birleştirilebilir 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 bir ö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 eşzamansız 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 içindeki 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 kaba kod sınıfında destroyDisplayListData yöntemi kullanıma sunuldu (I1e659, b/216660268)
  • SubcomposeLayout önceden oluşturduğunuz çocukların ön ölçüsünü almanıza 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 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ırlatma gözlemcilerine bildirim gönderilir.

    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.

  • Paragraph ve MultiParagraph 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 desteği sonlandı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, isteğe bağlı olarak cihaz üzerinde önceden yüklenmiş yazı tiplerini 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'si 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 tabanlı yazı tiplerine loadingStrategy parametresi eklendi. Bu parametre, kaynak yazı tipi indirilebilir yazı tipleri XML'sine referans verdiğinde eş zamansız yüklemeye olanak tanır. (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 kadar sürebilir. İndirilebilir yazı tipleriyle bu çağrı 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 kadar sürebilir. Bunun yerine FontFamilyResolver.preload (If8e7c, b/174162090) kullanın.

  • maxSlotsToRetainForReuse kabul eden SubcomposeLayoutState oluşturucunun desteği sonlandı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 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 alanı artık genel API olarak kullanılabilir. (I08fb6, b/180731008)

  • Herkese açık API'de olması amaçlanmayan ve zaten sizin için herhangi bir işlevi olmayan 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 iadeler State<Any> (I4406c, b/174162090)

Hata Düzeltmeleri

  • Artık TextField'lar odaklandığı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 kompozisyonu 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ı ekleyin (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

  • 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

  • NullPointerException ile ilgili sorun androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList tarihinde 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ği 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 kurallarına uyacak şekilde düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişletilir. Bu, Compose Material'ı Materyal Tasarım Bileşenleri'nin davranışıyla aynı hale getirerek Görünümler ve Compose'u karıştırdığınızda tutarlı 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(), görüşme süresince etkinleştirilerek (Idf3d0) HardwareRenderer.isDrawingEnabled() false olduğunda da çalışır.

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-beta04 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 nullability temizlendi (I7078a, b/204917439)
  • Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya kullanılıp kullanılmadığını kontrol etmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
  • Kullanıcı arayüzü katmanında fare tekerleği etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
  • Eşitlik için karşılaştırılacak anahtarları kabul eden ve atlama optimizasyonlarına uygun olan deneysel Modifier.composed aşırı yüklemeleri ekleyin. (Ice799, b/205851704)
  • ComposeNotIdleException artık doğrudan Throwable yerine Exception'den başlıyor. Bu değişikliğin, daha önce Exception yakalayan catch ifadelerinin artık ComposeNotIdleException yakalayabileceği anlamına geldiğ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 çağrılan perform*Input() yönteminin sonunda gerçekleşir. (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() işlevlerini kullanabilirsiniz. Bu işlevlerin her ikisi de ilgili formatın alıcı kapsamına sahip bir lambda'yı kabul eder. (Idde18)

Hata Düzeltmeleri

  • durationMillis içinde TouchInjectionScope.swipeWithVelocity 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. Böylece ebeveynler, öğeyi 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. 1.1.0-alpha06 sürümü şu commit'leri içerir.

API Değişiklikleri

  • ExperimentalComposeUiApi öğesini ViewRootForInspector ve LayoutInfo.ownerViewId öğesinden kaldırın (I5c2e3)
  • Daha verimli olan, Layout için çocuksuz 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, InjectionScope'ye 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.
  • TextField ve DropdownMenu'nun içinde 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ı alır. Bu sayede, onDismissRequest'in çağrılıp çağrılmayacağı konusunda daha ayrıntılı kontrol sağlanır. Örneğin, bu özellik, 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ı olduğu durumlarda kullanılmalıdır. (I6e9f9)
  • Recomposer.state, türünü StateFlow olarak değiştirmek için desteği sonlandırıldı ve Recomposer.currentState ile değiştirildi (Ic2ab3, b/197773820)
  • InjectionScope listesine flush() ve dispose() 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'yi uyguluyor. Bu sayede performTouchInput ve arkadaşlarınızda piksel ile dp arasında kolayca dönüşüm yapabilirsiniz. (I8fe1f)

Hata Düzeltmeleri

  • AndroidView artık ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner aracılığıyla LocalLifecycleOwner ve LocalSavedStateRegistryOwner'ı görünümüne yayıyor. (I38f96, b/179708470)
  • WearOS'te SwipeToDismissBox'ın bazen kaydırmaları işlememesine neden olan sorun düzeltildi. (I9387e)
  • Yerleştirilen giriş etkinlikleri arasındaki varsayılan süre 10 ms'den 16 ms'ye değiştirildi. Bu, 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 desteği eklendi (Id5467, b/198826874)
  • PointerEventChange'e deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
  • LayoutInfo listesine 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 etkinliklerini yerleştirme 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 üzerinden fare etkinlikleri gönderin. Kullanılabilir API'nin dokümanları için MouseInjectionScope adresini ziyaret edin. (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 özelliğine sahip. (I091fa)
  • Çocukların, ana öğenin 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 çağrıları engelleyebilir (I9eae3, b/192479655).
  • performGesture ve GestureScope kullanımdan kaldırıldı. Bu işlevlerin yerini performTouchInput ve TouchInjectionScope aldı. (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 ile SemanticsNode arasındaki fark eklendi. (I2e14b, b/197751214)
  • İncelenebilir özelliğinin yeniden uygulanması (I927bc, b/191017532)
  • İncelenebilir öğesinin değiştirilen parametre adı, oluşturulan öğeyle eşleşecek şekilde değiştirildi (I3a482, b/191017532).
  • performTouchInput ve TouchInjectionScope yerine performTouchInput ve TouchInjectionScope'ı kullanıma sunduk. Böylece diğer yöntemlerin (ör. fare) önü açıldı.

    TouchInjectionScope, GestureScope ile aynı yöntemlere sahiptir. movePointerTo ve movePointerBy yöntemleri ise updatePointerTo ve updatePointerBy olarak yeniden adlandırılmıştır. Diğer tüm yöntemler aynıdır.

    TouchInjectionScope davranışının GestureScope davranışıyla neredeyse aynı olduğu iki küçük ayrıntı 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, move 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ıdakiyle 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, dokunma hedefi sınırlarının klip bölgesinin ötesine geçmesine 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ında bulanıklık kullanım alanlarını basitleştirmek için 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 veya içeriğin, içerik sınırlarının dışına çıkan bulanıklaştırma çekirdekleri için en yakın kenarı örnekleyen içerik sınırlarına kırpılmasına izin verilir. (I6b4b7, b/166927547)
  • Compose Desktop'ta RenderEffect desteği eklendi. Bulanıklaştırma görsel efektlerini kompozisyon hiyerarşisinin bir bölümüne eklemenin basit bir yolu olarak OffsetEffect'in yanı sıra bulanıklaştırma değiştiricisini de kullanıma sunduk. (I0f6aa, b/166927547)
  • Katmanın içeriğini değiştirmek için Modifier.graphicsLayer üzerinde isteğe bağlı olarak yapılandırılabilen RenderEffect API'si kullanıma sunuldu. 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 semantikte ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
  • Bulanıklığa dayalı RenderEffect'ler için 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 için bilgi 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 vektör grafikleri XML ayrıştırması güncellendi. (I86915, b/195668138)

Sürüm 1.1.0-alpha01

4 Ağustos 2021

androidx.compose.ui:ui-*:1.1.0-alpha01 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 büyütüldüğünde pikselli olması amaçlanan piksel sanat için kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)

  • Bir hareketteki etkinliklerin zamanlaması üzerinde daha fazla kontrol sağlamak için GestureScope.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 Modifier zincirinde bir yaprak düğüm olması bekleniyordu. Ancak bu şekilde, bir composable container'da (ör. box) yapılandırılması veya üzerine Modifier.paint().border() gibi ek süslemeler eklenmesi engelleniyordu. Modifier.paint'in, verilen painter'ın içeriklerini çizdikten sonra drawContent'i çağırmasını sağlayarak değiştirici kalıbıyla davranış tutarlılığını daha iyi hale getiriyoruz. (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)
  • Temel anlam bilgisi işlemleriyle kaydırma (geç yüklenen listeler ve normal kaydırma bileşenleri için) 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

  • 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

  • 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

  • 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 kilitlenme hatasıyla karşılaşabilirsiniz:

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

    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 bir sonraki sürümünde düzeltilecektir. (b/194289155)

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0-rc02 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

  • Split ui-tooling module into ui-tooling and ui-tooling-preview (Iefa28, b/190649014)

API Değişiklikleri

  • Kullanımdan kaldırılan deneysel FocusManager#moveFocusIn ve FocusManager#moveFocusOut özellikleri kaldırıldı (I227d7, b/170154986, b/186567354, b/168510304)
  • Canvas artık erişilebilirlik için contentDescription parametresini destekliyor. (Ib547c)
  • PopupProperties içindeki 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 sahibinin varlığına bağlı olan Composables'ları önizlemenize olanak tanıyan bir LocalActivityResultRegistryOwner sunuyor. (Ib13d1, b/185693006)
  • Compose @Preview artık BackHandler gibi API'leri kullanan 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)
  • AnimatedImageVector, modül yapısını değiştirmek için geçici olarak kaldırıldı. (I41906, b/160602714)

Sürüm 1.0.0-beta09

16 Haziran 2021

androidx.compose.ui:ui-*:1.0.0-beta09 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.
    • Çizim olmadığından captureToImage(), bir sonraki çizim geçişini süresiz olarak 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 baseline-prof.txt adlı bir metin dosyasında belirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşme için kullanılan bir kalıptır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

  • Bir 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 "sık kullanılan" 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. Bu yöntemin, başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.

  • 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şlangıç sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığında önceden ayrılması gerektiğini gösterir.

Nasıl çalışır?

  • Kitaplıklar, AAR yapı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 özgü kompakt bir ikili ART profili oluşturmak için kullanılır. ART, uygulama cihazlara yüklendiğinde bu profilden yararlanarak uygulamanın belirli bir alt kümesini önceden derleyebilir. Bu sayede uygulamanın performansını, özellikle de ilk çalıştırma performansını artırabilir. Bunun hata ayıklanabilir uygulamalar üzerinde hiçbir etkisi olmayacağını 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 alıyor. (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, birleştirme yerine olduğu gibi birleştirilmelerini sağlar. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850).
  • Modifier.focusModifier() desteği sonlandırıldı 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 alıyor. (I73045, b/187055290)
  • FocusState numaralandırması 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 olarak kullanılıyor.

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şlemlerinde change.consumePositionChange'i çağırmanıza gerek kalmayacak (I42fc4, b/185096350, b/187320697).
  • Hizalama çizgileri sağlayan LayoutModifiers düzeltildi. Çocukların 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, bu değiştiricinin değiştirici zincirindeki koordinatlarını raporlayacak şekilde değiştirildi. Bu nedenle, artık değiştiricilerin sıralaması 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 yuva sayısını ayarlamayı destekliyor. Düzen, bir sonraki yeni slota ihtiyaç duyduğumuzda yeniden kullanmak için slotları silmek yerine bu sayıya kadar olan slotları 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 alıyor. (Ib6d03, b/187055290, b/184086802)
  • SubcomposeLayout durumunu yükseltme özelliği eklenmiştir. Bu özellik, içeriği önceden gerekli bir slotId'ye yerleştirmenize 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çimi tutma kolu eklendi (Iff80d, b/183408447)
  • LayoutInspector desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)

Hata Düzeltmeleri

  • LazyColumn/Row, kaydırılarak görünürlükten çıkmış olsalar bile daha önce görünür olan 2 öğeyi etkin (kaldırılmamış) tutar. Bu sayede, yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt bileşenleri yeniden kullanmasına olanak tanınır ve kaydırma performansı iyileştirilir. (Ie5555)
  • AnnotatedString ü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 listede öğ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, File ve FileDescriptor'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ü kullanımdan kaldırıldı. Arayüz herhangi bir genel API'de kullanılamıyordu ve kodda da kullanılmıyordu. (I34a02, b/184003208)
  • Desteği sonlandırılan TextLayoutResult/createTextLayoutResult işlevi. Bu, test için eklenmiş, kullanılmayan bir genel işlevdir. İşlev, Compose metin API'leri için kullanılabilir bir işlem yapmıyor. Bu işlevin desteği sonlandırıldı ve daha sonra kaldırılacak. (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 olanak tanır (özellikle testlerde kullanışlıdır) (I579a6)
  • LiveRegion erişilebilirlik API'si eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri, değişiklikler hakkında kullanıcıyı otomatik olarak bilgilendirir (Idcf6f, b/172590946).
  • TextOverflow.Visible kullanıma sunuldu. (Ic8f89)

Hata Düzeltmeleri

  • Kenarlarda bulunan LazyColumn/LazyRow öğelerinin hızlı kaydırma sonrasında yanlış konumlandırılması sorunu düzeltildi (Ie4d13, b/183877420).
  • AndroidViewBinding artık AndroidViewBinding, Compose 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 öğeniz bir 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ı ve yapılandırma değişikliklerinden sonra FragmentContainerView aracılığıyla şişirilmiş parçaları tutarlı bir şekilde gösteriyor. (I0743d, b/179915946)

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.ui:ui-*:1.0.0-beta03 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 yerini alacak yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I5951e, b/168778053)
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I84472, b/168778053)
  • Aşağıdaki SemanticsMatcher'ler kaldırıldı:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • Aşağıdaki SemanticsMatchers, @ExperimentalTestApi olarak işaretlendi:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (Ia600c)
  • Aşağıdaki SemanticsMatcher'ler eklendi:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (I2f502)

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımı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 yerini alacak 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ü. 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.
    • Button ve Modifier.clickable() gibi bileşenlere interactionState = remember { InteractionState() } 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 belgelerine 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" oldu.
    • ParagraphStyleRange adlı bankanın yeni adı AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation adlı bankanın yeni adı AnnotatedString.Range<String>
    • (I8dd1a)
  • CoreTextField gibi düşük düzeyli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
  • Yerleştirilebilir öğe artık, alt düzenin ölçtüğü boyutu temsil eden measuredSize'ı kullanıma sunuyor. Bu boyut, ölçüm kısıtlamalarına uymuyor olabilir. (Ib2729, b/172560206, b/172338608)
  • Erişilebilirlik amacıyla Sekmeler veya Radyo Düğmeleri koleksiyonunun 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ı ortadan kaldırır. Daha önce bu, boş değer atanamayan bir tür için boş referans sağlıyordu.

    Boş değer atanabilir türler için varsayılan fabrika olarak { null } değerini sağlamayı düşünebilirsiniz.

    Anlamlı bir varsayılan değer sağlanmadığı sürece, null değer içermeyen türlerle yerel ayarların kullanılmasını önermiyoruz. Mantıklı bir varsayılan değer yoksa defaultFactory lambda bir istisna oluşturmalıdır. Ancak bir istisna oluşturmak, yerel ayarın tüketicilerinin, 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önlendirme, 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şlev silindi. (I89130)

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

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

    • Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı.
    • ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri 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ğil.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
    • Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
    • isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
    • Çeşitli üst düzey API'ler farklı dosyalara taşındı ve yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu durum, ikili uyumluluğu bozacak ancak kaynak uyumluluğunu bozmayacaktır. Bu nedenle, çoğu kullanıcı için sorun teşkil etmez.
    • (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 (I6f36b) adresinden alınanları kullanın.

  • Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanılıyor (I4f5a5, b/174485541, b/175294473).

  • PointerInputModifier'daki CustomEvens desteği kaldırıldı (I02707, b/175294473)

  • SnapshotStateObserver artık deneysel değil (Id2e6a)

  • Daha önce desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932).

  • longPressGestureFilter ve doubleClickGestureFilter kaldırıldı. detectTapGestures gibi yardımcı işlevlerle Modifier.pointerInput'u kullanın (I2fedf, b/175294473).

  • String.format API'si kaldırıldı. Çeşitli toString yöntemlerindeki kullanımlar, dahili olarak String.format'ten yararlanmayacak şekilde yeniden düzenlendi. (Id1290)

  • Kaldırılan dp onayları (I798d2)

  • androidx.compose.runtime:runtime-dispatch kaldırıldı (I55feb)

  • Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)

  • Kaldırıldı runBlockingWithManualClock (I15cdc, b/179664814)

  • Modifier.verticalScroll()/horizontalScroll() içindeki kaydırma konumu artık Int'lerle 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 parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • 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 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 temada 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 hâle 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 contentPadding parametresi DropdownMenuItem'ye eklendi ve content, RowScope'ün uzantısı olarak ayarlandı.
    • ModalDrawerLayout, ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout, BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Hata Düzeltmeleri

  • Compose'da AnimatedVectorDrawable kaynaklarını kullanmak için API eklendi. <animated-vector> XML'yi AnimatedImageVector olarak yüklemek ve painterFor (I8ea91) ile animasyon eklemek için animatedVectorResource'u kullanın.
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController composition local 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 hatırlama anahtarları gerektiriyor. (I849cd)
  • CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
  • Bounds, DpRect (I4b32a) olarak yeniden adlandırıldı.
  • Test güncellemesi: hasText(), metin alanındaki hem giriş hem de etiket/ipucu/yer tutucu metinleri kontrol edecek (Iab803)
  • viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose'a taşındı. Artık 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 odaklanma sırası belirtmeden FocusRequester'ı kabul eden bir Modifier.focusOrder() ekledi. Bu, bir composable için yalnızca bir referans belirtmemiz gerektiğinde ancak özel bir odaklanma 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)
  • Destructuring ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
  • Pop-up'ın platforma özel olması sağlandı. 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)
  • Made LayoutNode internal (I8a7b1, b/175103944)
  • Constraints.enforce, Constraints.constrain ile değiştirildi. (I8b8ea)
  • loadFontResource kullanımdan kaldırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
  • Performans nedenleriyle, 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 kullanımdan kaldırıldı. Bunun yerine Modifier.pointerInput { detectDragGestures (...)} kullanın. Alternatif olarak, tek eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473)
  • Ambients, Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Ambients, AmbientFoo olarak adlandırılırdı. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
  • Desteği sonlandırılan BaseTextField kaldırıldı. Bunun yerine BasicTextField'ı kullanın. (I71368)
  • Seçim, temel katmana taşındı. (I7892b)
  • Daha önce state { 0 } composable'ı kaldırıp remember { mutableStateOf(0) } gibi kullanımları desteklediğimiz gibi, savedInstanceState { 0 } composable'ı da kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmanız gerekir. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa bu tür otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir kaydedici nesne iletiyorsanız artık stateSaver parametresine sahip yeni bir rememberSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şu şekilde görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Erişilebilirlik için şifre semantiği eklendi (I231ce)
  • Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05)
  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programlarının artık olumlu bir performans etkisi veya değeri olmadığından desteği sonlandırıldı (I0484d)
  • snapshotFlow ve withMutableSnapshot artık deneysel değil (I6a45f)
  • Yeniden oluşturucular artık kapatılabilir. Kapalı yeniden oluşturucular, alt bileşen oluşturma işlemleri tamamlanana kadar yeniden oluşturmaya 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)
  • androidx:compose:runtime:runtime-saved-instance-state yapısı, 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 eş yordam bağlamı öğesi kullanıma sunuldu. ComposeTestRule ile testler çalıştırılmadığı sürece varsayılan olarak politika yüklenmez. (I50ec4, b/151940543)
  • canDrag, Modifier.scrollable'dan 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 değişiklik, 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() işlevinin adı rememberSaveable() olarak değiştirildi 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ır. 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. Şu anda desteği sonlandırılmış olan 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şlayacak şekilde 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 programı bozan bir değişikliktir. (I3b922, b/169406779)

  • Yanlışlıkla herkese açık hale getirilen StringBuilder.deleteAt işlevini kaldırın (Id6ed9)

Hata Düzeltmeleri

  • Başka bir kompozisyonun alt öğ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 kullanımdan kaldırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
  • Sahip arayüzü artık dahili. (If8e35)
  • Odağı programlı olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
  • PopupPositionProvider, genel koordinatlar yerine pencereye göre koordinatlar kullanacak şekilde değiştirildi. parentGlobalBounds'u anchorBounds olarak yeniden adlandırır ve windowGlobalBounds'u windowSize: IntSize olarak değiştirir (I2994a).
  • Süre ve Çalışma Süresi, uzun milisaniye ile değiştirilecek ve bu adım, işaretçi girişinin bu sınıflara bağımlılığını kaldıracak. (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365).
  • Vektör grafiklerinin köküne uygulanan renklendirme ayrıştırması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 uygulamasında yoğunluk güncellendi. (Ied528, b/176819695)
  • Satır ağırlıklı sıralamayı takip etmek ve farklı matris gösterimleri arasında dönüşüm yapmaya yardımcı olmak için dizin sabitleri sağlamak üzere matris API'si güncellendi. Bu sayede, SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığı dahili olarak eşleştirilir. (I432e6)
  • Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
  • String.fintPrecedingBreak ve String.fingFollowingBreak'i InternalTextApi'ye taşıyın. (I657c4)
  • androidx.compose.ui.util.isSurrogatePair, genel API'den kaldırıldı. (Ia9494)
  • TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı.
    • TransformedText artık bir veri sınıfı değil (Ie672a)
  • data class 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ü eklendi (I5e1bd)
  • Dönüştürülmüş sınırları InspectorNode'a (Ice42f) ekleyin.

Hata Düzeltmeleri

  • onCommit, onDispose ve onActive, SideEffect ve DisposableEffect API'leri lehine kullanımdan kaldı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şturulmalarını sağlayın.
    • Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7).
  • ComposeContentTestRule tanıtıldı. Bu parametre, 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 bunu 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, kaçınılması gerektiğinden kaldırılmalıdır. 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 uymak için farklı bir ad kullanılmıştır (I4137b).

  • 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.

    • EditingBuffer oluşturucu parametrelerinden initial kaldırıldı. (I326d5)
  • invalidate ve compositionReference() işlevlerinin desteği, sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri lehine sonlandırıldı. (I583a8)

  • AnnotatedString, kotlin.CharSequence'den genişletilecek şekilde değiştirildi. Bu nedenle, length ve subSequence artık örnek işlevler, uzantı işlevleri ise kaldırıldı. (Iaf429)

  • RememberObserver, CompositionLifecycleObserver'ın yerini alır ve CompositionLifecycleObserver artık kullanımdan kaldırılmıştır.

    RememberObserver, değiştirilmiş anlamsal yapıya ve yeniden adlandırılmış yöntemlere sahip CompositionLifecycleObserver yerine kullanılır. Yeni API'ye geçiş, yalnızca bir kez hatırlanan nesneler için mekanik olarak yapılabilir. Bu, önerilen uygulamadır ve olmaya devam edecektir. Ancak bir kompozisyonda bir referans birden fazla kez hatırlanırsa onRemembered, onEnter yalnızca bir kez çağrılırken 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, remember'ye iletilen geri çağırmadan RememberObserver örneği döndürülürse ancak beste durumunda hatırlanmazsa çağrılan onAbandoned'ı ekler ve bu nedenle hiçbir zaman onRemembered çağrılmaz. Bu durum, bir istisna beste tamamlanmadan önce sonlandırırsa veya beste, durum artık geçerli olmadığı ya da başka bir nedenle artık gerekli olmadığı için atılırsa oluşabilir. Yukarıdaki tek referans önerisini 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 çalışmaları veya ayrılan kaynakları izliyorsa onRemembered çağrıldığında çağrılmayacağından onAbandoned yoksayılabilir. (I02c36)

  • 2 veya daha fazla TextUnit arasında kullanımdan kaldırılan aritmetik işlemler. Int.sp ve Int.em gibi uzantı işlevleri yerine TextUnit.Sp ve TextUnit.Em işlevlerinin kullanımı sonlandırıldı. (I48369)

  • Herkese açık kaynakları açıkça belirtilmemiş (ör. public.xml aracılığıyla) kitaplıklardaki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)

  • ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz/çizebildiğimiz için, kaydırılabilir içeriğiniz büyük olduğunda ScrollableColumn kullanmak LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanı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 (Ie1bcc) yerine ImeAction.Default'u kullanın.
  • Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)

  • TextInputService.onStateUpdated, updateState olarak yeniden adlandırıldı (Id4853)

  • TransitionDefinition tabanlı geçiş desteği sonlandı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ışsal bir değişikliktir ve değişiklikler uygulanana kadar düğümler dahili ve deneysel API'lerden kullanılamayacağından uygulama kodunu etkileyebilir. Bu sorun genellikle, düğümler oluşturulup başlatılana kadar kodun yürütülmesini ertelemek için bu tür bağımlılıkları olan kodu SideEffect composable'ına alarak çözülebilir. (I018da)

API Değişiklikleri

  • Özel odak geçişi sırası belirtmek için kullanılabilecek Modifier.focusOrder() işlevi eklendi (I90cf5, b/175899543, b/170155556, b/170155429).
  • Kullanımdan kaldırılan focusObserver yerine onFocusChanged veya onFocusEvent kullanıldı (I3ecb9, b/175156387)
  • EditOperations API'sindeki Değişiklikler
    • EditOperation, EditCommand olarak yeniden adlandırıldı.
    • EditOperation somut uygulamaları için Command soneki eklendi
    • EditCommand'ler artık veri sınıfları değil
    • EditOperation.process işlevi applyTo olarak yeniden adlandırıldı
    • InputEventListener, InputEventCallback olarak yeniden adlandırıldı.
    • (I0a366)
  • Kullanılmayan PxSquared, PxCubed ve PxInverse kaldırıldı. Size.center() işlevi, özellik olarak değiştirildi. (I973f7)
  • ui-test modülü artık test edilen kullanıcı arayüzleri için yeniden oluşturucuların oluşturulmasını yapılandırabilecek (Ibebd8)
  • Hız, bileşen parçaları ve matematiksel işlemler içerecek şekilde değiştirildi. (Ib0447)
  • Benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olması için @ExperimentalTesting, @ExperimentalTestApi olarak yeniden adlandırıldı.
  • Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5).
  • Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
  • Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
  • Layoutnode sınırları değiştiğinde Sahibi bilgilendirmek için geri çağırma ekleyin. (I72fd1)
  • Belirtilmemiş sabiti olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
  • [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ükleme ve keşfetme ile alt bileşimler oluşturmak için CompositionReference'ları keşfetme API'leri eklendi.

    [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() genel API'si kaldırıldı (I025d7)

  • Doğrudan String.format kullanmak için toStringAsFixed API'si kaldırıldı. (Iaba6b)

  • Toggle'ı foundation Strings.kt dosyasına ekleyin (I4a5b7, b/172366489)

  • nativeClass, ui modülüne taşındı ve dahili hale getirildi. equals uygulamalarındaki nativeClass kullanımları, bunun yerine "is MyClass" kullanacak şekilde güncellendi. (I4f734)

  • Modifier.focus() ve Modifier.focusRequester() kullanımdan kaldı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 sundu. (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).

  • fun Dp.isFinite() işlevi, val Dp.isFinite olarak değiştirildi (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 T yerine State<T> döndüren animateAsState() ile değiştirildi. Bu sayede, geçersiz kılma kapsamı State değerinin okunduğu yerle sınırlandırılabildiğinden daha iyi performans elde edilebilir. (Ib179e)
  • Semantics role API'yi ekleyin ve Role'ü tıklanabilir, seçilebilir ve açılıp kapatılabilir SemanticsModifier'a parametre olarak ekleyin. Kaydırma çubuğunun da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
  • Animasyonları arasında karşılıklı dışlama 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, askıya alma işaretçi girişi 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 üyesini dahili olarak işaretledik (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şturmayı yukarıdan aşağıya yerine aşağıdan yukarıya doğru basitleştirecek şekilde değiştirildi.

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

    insertBottomUp() adlı yeni bir yöntem 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 oluşturulduğunda çok daha verimli olur. Bu değişiklikten önce, alttan üste doğru yapıyı uygulamak için bir ekleme yığını gerekiyordu. Bu yığının, performans için alttan üste doğru yapıya ihtiyaç duyan 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, ağacı yukarıdan aşağıya doğru oluşturmak için insertTopDown() kullanılır.insertBottomUp() (Icbdc2)

  • AndroidDialogProperties'e dismissOnBackPress ve dismissOnClickOutside özellikleri eklendi. Bunlar, iletişim kutusunun onDismissRequest lambda'sının ne zaman çağrılacağını yapılandırmaya olanak tanır. (If5e17)

  • Rasterleştirilmiş öğe biçimlerinden (ör. PNG'ler) veya VectorDrawable'lardan Painter nesnelerinin opak şekilde yüklenmesini işlemek 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 yenilerini 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 küresel olarak kaydı kaldırıldı ve saatlerin ComposeIdlingResource'a küresel olarak kaydı kaldırıldı (I32660).

Hata Düzeltmeleri

  • Kaydırma değiştiricilerindeki 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 bu seçenekler, e-posta oluşturma modülünde yer alıyor.

    Bileşen bilgilerini ayıklamak için kullanılan ui-tooling API'nin yerine CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak kullanıcı arayüzü araçları API'sinin yorumladığı ham bilgileri sağladıkları için (I31a9c) kullanıcı arayüzü araçları API'si dışında kullanılmak üzere tasarlanmamıştır.

  • Ç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.

    Gradyan nesnesindeki fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed kullanımdan kaldırıldı. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)

  • BuildCompat.isAtLeastR kullanımdan kaldırıldı (Idb37e)

  • AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Desteği sonlandırılan annotatedString builder işlevi. (Idfe0b)

  • Değerleri radyana dönüştürmek için Float ve Double'daki uzantı yöntemleri kaldırıldı. Yalnızca kullanıldığı yer olan PathParser uygulamasında özel bir işlev olarak taşındı (I25f52).

Sürüm 1.0.0-alpha08

2 Aralık 2020

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

API Değişiklikleri

  • Anlamsal işlem olarak Kapat'ı ekleyin (I2b706)
  • DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılmış API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemleri içeren DrawModifierDeprecated.kt dosyasını oluşturdu. (Id6044, b/173834241)
  • Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca, API geri bildirimlerine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
  • placeable.placeWithLayer() ve placeable.placeRelativeWithLayer() adlı yeni yöntemler 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 sağlayan 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 değer içermeyecek şekilde değiştirildi. (Id468a)
  • MaterialTheme artık seçim tutamaçları 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 makine penceresinin ö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'yi yapı bozma söz dizimiyle güncelledik (If43c4, b/173586560).
  • Composable lambda parametre adlandırma ve konumlandırması için lint kontrolü eklendi. Bu kontrol, Compose yönergeleriyle tutarlılığı kontrol eder. Ayrıca, lint kontrolü ve yönergelere göre, sondaki lambda'ları için ad olarak children kullanan bazı API'ler content olarak taşındı. (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 olduğunda yeniden oluşturma ve yeniden düzenlemeyi atlamaya 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, kullanımdan kaldırılan Ambients'leri, diğer Ambients'ler ve Compose API yönergelerine uygun olarak Ambient ile başlayan yeni özelliklerle değiştirdi. (I33440)
  • androidx.compose.ui.text.Typeface, androidx.compose.ui.text.font.Typeface (Ic2b81) kuruluş birimine taşındı
  • Semantics bağımsız değişkeni mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Yön kilitleme de dahil olmak üzere işaretçi giriş 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 tür takma adı eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • PlacementScope'un place() işlevi için zIndex parametresini ekleyin. Böylece Modifier.zIndex() artık LayoutModifier olarak çalışır ve tüm özel düzenler, yerleştirme bloğunda alt öğelerinin zIndex'lerini ayarlayabilir (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 ofsetleriyle 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ılacak. Modifier.onDraw kaldırıldı, Modifier.onDrawBehind kullanılmalıdır. Modifier.plus kaldırıldı, Modifier.then kullanın. 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'ın yanı sıra kaydırma kontrolü için daha düşük düzeyde API'ler ekler. Bu API'ler, kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, geri dönmeden önce kaydırmanın tamamlanmasını bekler. (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ı kabul edebilir (Ib8288, b/153623653, b/154135019)

  • TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. TextLayoutResult.getLineEnd artık yeni bir parametre olan visibleEnd'e sahip. (I73282)

  • TextFieldValue API güncellendi

    • TextFieldValue.composition salt okunur hale getirildi
    • Geçersiz seçim aralığı için kaldırılan istisna oluşturuldu (I4a675, b/172239032)
  • Metin okuma motoru için TtsAnnotation'ı destekleyin. (I54cc6)

  • Coroutine'lerde animasyon çalıştırmak için yeni API'ler (Ied662)

Hata Düzeltmeleri

  • Kutunun 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 kontrolü eklendi. Bu lint kontrolü, parametrenin adlandırmasını, dönüş türünü, varsayılan değerini ve sırasını Compose yönergeleriyle tutarlılık açısından 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 Typeface yükleyebilirsiniz. Örneğin: typeface(Typeface.DEFAULT). Ayrıca typefaceFromFontFamily() olan eski aile yerinin adını typeface() olarak değiştirdi (I52ab7)
  • Değiştirici fabrika işlevlerinin, Değiştirici üzerinde uzantı olarak tanımlanıp tanımlanmadığı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ırın (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

  • Ölçeklendirme faktörlerini temsil etmek için ScaleFactor inline sınıfı kullanıma sunuldu. Bu sınıf, yatay ve dikey eksenlerdeki ölçeklendirme faktörlerini birbirinden bağımsız olarak temsil eder. Böylece, tek tip olmayan ölçeklendirme kullanım alanları desteklenir.
    • ContentScale'e computeScaleFactor yöntemi eklendi.
    • Kaynak sınırlarını hedefi tamamen kaplayacak şekilde genişletmek için ContentScale.FillBounds eklendi.
    • ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
    • (Ic96a6, b/172291582)
  • Hizalamalar oluşturmak için BiasAlignment ve BiasAbsoluteAlignment fabrikaları eklendi. (Iac836, b/169406772)
  • Bir geliştiricinin odağı zorla temizlemesine izin verin. (I90372)
  • Compose'daki Görünümler için yükseltmenin çizilmemesine neden olan hata düzeltildi. (If7782)
  • Adlandırma kuralının Modifier.drawBehind ile eşleşmesi için ContentDrawScope içinde onDrawBehind API'si oluşturuldu. (I4fc3a, b/171955269)
  • Katman API'lerinde 3D dönüşümleri (rotationX/rotationY) tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
  • Geri çağırma olmadan SelectionContainer eklendi (Ibfadb)
  • ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad).
  • FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7).
  • Kafası karıştırıcı olduğu için drawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
  • MeasureResult, MeasureScope'un dışına taşındı. (Ibf96d, b/171184002)
  • Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)
  • Kullanımdan kaldırılan FocusState2 kaldırıldı (I686cb, b/168686446)
  • ZIndexModifier artık dahili (I1808b, b/171493718)
  • Gereksiz kutulama işlemlerini önlemek için lerp yönteminin Size parametrelerindeki döndürme türü, null olmayan bir Size döndürecek şekilde güncellendi. (Ib0044)
  • kotlinx-coroutines-test'in runBlockingTest işlevini kullanarak kompozisyon çerçevesi etkinliklerinin beklenmesi için Compose'un MonotonicFrameClock işlevini kullanan kodu test etmek üzere TestMonotonicFrameClock eklendi (I4402f).
  • Removed GestureScope.localToGlobal (I15299, b/171462785)
  • onAllNodesWithSubstring bulucu eklendi (I81dd7, b/171462889)
  • androidx.ui.test modülünün desteği sonlandırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4'e (I452e8) geçiş yapın.

Hata Düzeltmeleri

  • captureToBitmap, captureToImage'a taşındı. (I86385)
  • foundation.Text artık kullanılmıyor ve yerine material.Text kullanılıyor. 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üncelleyin (Ida7f3)
  • KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
  • KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce).
  • provideDefault, ambiyans sağlama için alternatif olarak eklendi ve yalnızca önceden ambiyans değeri sağlanmadığında ayarlanacak ambiyans değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'ı 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 belirtme kolaylığı 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 konu parametreleri olmayan LaunchedEffect'e izin verilmez. (Ifd3d4)
  • Yapılandırma güncellendiğinde yeniden oluşturulan composable kaynakları kullanıma sunuldu. (I6387c, b/167352819)
  • Recomposer artık oluşturma sırasında 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 artık daha az yerde zorunlu. (I4036f)
  • Composable API'nin, kompozisyonlar arasında verileri kalıcı hale getirmek için dahili olarak "remember" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı rememberVectorPainter lehine kullanımdan kaldırın. (Ifda43)
  • Çizim komutlarını yeniden sıralama imkanı sunmak için Modifier.drawWithCache API'si, DrawScope yerine ContentDrawScope'u alıcı kapsamı olarak gösterecek şekilde güncellendi. Bu, içerik piksellerinin önce oluşturulması gerektiği, karıştırma/renk tonu kullanım alanlarında, ilgili karıştırma modu algoritmasının düzgün şekilde uygulanması için 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 adresini ziyaret edin (I1737f).
  • Sağdan sola dil tutma yeri konumunu düzeltin. (I6e1e0)
  • DrawScope ve ContentDrawScope, soyut sınıflar yerine arayüzler olacak şekilde yeniden düzenlendi.
    • DrawScope'un CanvasDrawScope uygulamasını oluşturdu
    • DrawScope'un CanvasScope'u kullanacak şekilde yeniden düzenlenmiş uygulamaları
    • 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: PointerInputFilter.onPointerEvent(...) işlevinden dönüş değeri kaldırıldı. Çünkü işaretçi etkinliklerinde değiştirilebilecek tek değer tüketim verileridir. 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.
    • Pivotun x ve y koordinatı için kayan sayılar kullanan, DrawScope.rotateRad aşırı yüklemesi kullanımdan kaldırıldı.
    • (Iffcbb, b/170434992)

Hata Düzeltmeleri

  • androidx için MissingGetterMatchingBuilder ile ilgili API lint kontrolü etkinleştirildi (I4bbea, b/138602561)
  • Test ekleyin. (I6b8ae)
  • ComposeTestRule'da geçişleri etkinleştirin. Yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)
  • KeyboardCapitalization IME seçeneği eklendi (I8ac38)
  • CoreTextField'e tek satırlık klavye seçeneği eklendi (I72e6d)
  • 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 yanlış değer 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 bir DSL ekleyin (Ic9a22)
  • LongPress'i Text'e taşıyın. (Iff2bc)
  • Deneysel Modifier.pointerInput giriş değiştiriciyi askıya alıyor (Ia77d2)
  • Kopyalama/yapıştırma/kesme erişilebilirlik işlemleri eklendi (I6db4f)
  • AndroidOwner için herkese açık oluşturucu kaldırıldı (Iacaef)
  • Pop-up'lar ve iletişim kutuları artık FLAG_SECURE'u üst pencereden 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(...)'den 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ığını belirtir. (I3d9f8, b/169038599)

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

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

  • Boyutla İlgili Değişiklikler

    • Size.getFlipped kaldırıldı
    • Size.rem kaldırıldı
    • Removed Size.truncDiv (Ief44d, b/169790720)
  • Satır içi sınıflar için sentinel değerlerinin standartlaştırılması kapsamında, diğer satır içi sınıflarla tutarlılık sağlamak amacıyla Color.Unset'in adını Color.Unspecified olarak değiştirin (I97611, b/169797763).

  • TextOverflow.None kullanıma sunuldu. Taşma None olduğunda, Text artık taşmayı 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 saplamalar 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ı olan bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache işlevi kullanıma sunuldu (I376dc).

  • ParagraphConstraints kaldırıldı. Genişlik artık doğrudan paragrafa aktarılıyor. (Ica712)

Hata Düzeltmeleri

  • Birçok grafik API'si güncellendi.
    • Çizim kapsamı ve çizim dönüşümünde x/y koordinatları için ayrı kayan parametreler yerine, ölçek ve döndürme dönüşümü API'leri, pivot koordinatını temsil etmek için tek bir ofset parametresi kullanacak şekilde güncellendi.
    • Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı.
    • Yarıçap belgeleri, elipsin yanı sıra oval olarak da belirtilecek şekilde güncellendi.
    • Satır içi Radius sınıfının herkese açık oluşturucusunun doğrudan çağrılmaması, bunun yerine Radius nesnelerinin işlev oluşturucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi.
    • RoundRect API'leri, topRight, bottomRight, bottomCenter vb. sorgulamak için kaldırıldı.
    • Rect.shift yerine Rect.translate kullanılması önerilir
    • 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 Radius ö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 içindeki yeni Box lehine kullanımdan kaldırılacak. Yeni kutunun davranışı, birden fazla alt öğe içerdiğinde alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki kutudan farklıdır. (I94893, b/167680279)
  • Kutu dekorasyonu parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) kullanın (Ibae92, b/167680279).
  • Birçok grafik API'si güncellendi.
    • Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için kapsamlı dönüştürme yöntemleriyle güncellenen DrawScope API'leri
    • clipPath dokümanı, yuvarlatılmış dikdörtgen yerine Path'e referans verecek şekilde güncellendi.
    • clipPath'teki right parametresi için dokümanlardaki boşluk 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 da aynı içe yerleştirme değerini sağlayan içe yerleştirme aşırı yüklemesi eklendi.
    • İç kısım 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'ı en üstten 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 semantiği işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
  • onInvalidate(), Owner listesinden 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, farkı mı yoksa farkı içeren bir boyut sonucunu mu döndürmelidir?

    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 ve bazı durumlarda kilitlenmelere yol açan sorun düzeltildi. (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 kuruluş biriminden androidx.ui.test kuruluş birimine taşındı (Idef08, b/164060572)
  • Yer çekimi kullanımları, düzen API'lerinde hizalama veya hizalama ile eşleşecek şekilde tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
  • Mevcut global yöntemler kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer global yöntemler eklendi. (Ieae36)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.ui:ui-*:1.0.0-alpha02 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ıflardır (I48f4a).
  • Süre artık satır içi bir sınıftır (I565eb).
  • Layoutnode sınırları değiştiğinde Sahibi bilgilendirmek için geri çağırma ekleyin. (Ic40b3)
  • Offset ve yarıçap ile Rect işlevi oluşturucusunun, Rect'i sol, üst, sağ, alt sırasıyla değil sol, sağ, üst, alt sırasıyla oluşturduğu 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 bir zarar veren 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)

  • Bir PointerInputFilter'a gönderme yapıldığında PointerInputFilter'ın eşzamanlı olarak kaldırılmasına neden olabilecek kilitlenme sorunu düzeltildi. (I58f25)

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.ui:ui-*:1.0.0-alpha01 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. 0.1.0-dev17 sürümü şu commit'leri içerir.

API Değişiklikleri

  • emitView desteği sonlandırıldı. Compose'da Görünümler yayınlamak için mümkünse AndroidView kullanın. Görünümlerin ve ViewGroup'ların doğrudan oluşturulmasının, oluşturma 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 atlanabileceğini ve yayından bağımsız olarak yeniden oluşturulabileceğini belirtebilir. (Ibbd13)
  • Aynı nesne örneği kompozisyon için kullanıldığından, Vector sınıfları artık veri sınıfları olmayacak şekilde değiştirildi.

    VectorPainter için mutableStateOf işareti eklendi. Bu işaret, vektörün içeriği değiştiğinde koşullu olarak yeniden çizim yapmak için kullanılır.

    Bestelerde yeniden kullanıldığı için VectorComponent örneği, VectorPainter'ın bir parçası olacak şekilde yeniden düzenlendi.

    GroupComponent ve PathComponent, 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)

  • SemanticsPropertyKey listesine mergePolicy lambda'sı eklendi. Bu, mergeAllDescendants birleştirme anlamsal yapısı için özel bir politika tanımlamak üzere kullanılabilir. Varsayılan politika, üst değer varsa onu, yoksa alt değeri kullanmaktır. (Iaf6c4, b/161979921)

  • Constraints artık satır içi bir sınıftır (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ı. Sonuç olarak, 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ı. Gelecekte herkese açık hale getirilecektir. (I32ab1)

  • İşaretçi girişi kodunun yeniden düzenlenmesi. (Ie3f45)

  • Rect lehine PxBounds kullanımdan kaldırıldı. PxBounds'un tüm kullanımları rect ile güncellendi ve geçişe yardımcı olmak için uygun kullanımdan kaldırma/değiştirme notları eklendi. (I37038, b/162627058)

  • Kullanımdan kaldırılan KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)

  • KeyEvent, belirtilen tuş ve meta tuş durumu kombinasyonu (If3afc) tarafından oluşturulan Unicode karakterini almak için kullanılabilecek bir Unicode özelliğine sahiptir.

  • DelayUp özel etkinliğini ve ilgili sınıfları, değiştirilme olasılığı çok yüksek olduğundan etkinleştirme API'si haline getirdik. (I56d6f)

  • Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I3dd9d)

  • Paragraph.paint işlevine renk, gölge ve TextDecoration parametrelerini ekleyin. Bu işlev, gereksiz Paragraph yeniden oluşturma işlemlerini önlemek için kullanışlıdır. (I81689)

Hata Düzeltmeleri

  • TextField'dan 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ü 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'u 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. Bu nedenle, UiSavedStateRegistry'nin API'si bu yeni koşula göre ayarlandı (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561).

  • state { ... } composable'ı, netlik için artık 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() modeliyle eşleşir. (Ia5727)

  • RRect'i, Compose adlandırma kalıplarına daha iyi uyacak şekilde RoundRect olarak yeniden adlandırdı. RRect'e benzer işlev oluşturucular oluşturdu ve RRect işlev oluşturucularının desteğini sonlandırdı (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 PointerEventPasses kaldırıldı. (I33ca7)
  • PointerInteropModifier uygulandı. Bu değiştirici, MotionEvent'leri alma ve Compose ile etkileşim kurma olanağı sağlar. Bu etkileşim, Android View'un uygulanmasıyla aynı şekilde gerçekleşir. (Ieb08c)
  • Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId kullanın. (Idaa05, b/162023919)
  • Sağdan sola dil desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient özelliği eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
  • Vektörel grafiklerde yol kırpma desteği eklendi (Ie16c9, b/158188351)
  • Özel 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" sıralama sinyali daha güçlüdür ve Modifier.padding().background() + anotherModifier yazılmasını da engeller. Bu da zinciri bozar ve okunmasını zorlaştırır (Iedd58, b/161529964).
  • [Abstract]ComposeView: Görünüm hiyerarşisinde Compose içeriğini barındırmak için View alt sınıfları ekleyin. (I46357)
  • Row ve Column artık satır içi işlevler olduğundan bu işlevlerin kullanımıyla ilgili ek yük önemli ölçüde azaltıldı. (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 öğelerin oluşturulmasına olanak tanıyan düşük seviyeli bir temeldir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
  • Compose hiyerarşisinin köküne göre SemanticsNode'un konumunu almak için SemanticsNode.positionInRoot eklendi (Icdf26, b/161336532)
  • MotionEvents, Android'den Compose'a ve tekrar Android'e kadar tüm süreçte iletilir. (I14be8, b/158034713)
  • dropdownPopup kaldırıldı. (I00430)
  • Kesik ekranlarda pop-up'ın sabit 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 otomatik olarak yapıldığından bu işleme hiç 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 aracılığıyla erişilebilir. Örneğin, Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273)

Hata Düzeltmeleri

  • Kapsamlı API düzeltmelerini ele alma (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırın
    2. Offset ve IntOffset sınıflarını tutarlı bir API yüzeyine sahip olacak şekilde 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şturmalarını desteklemek 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 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. Renamed PointMode enums to be Pascal Case
    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, eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere Vector alt bileşimi güncellendi.
    19. İşlev oluşturucular lehine, desteği sonlandırılan Rect yardımcı oluşturucu yöntemleri kaldırıldı.
    20. Fırça sınıfları ve işlev oluşturucuları, @Immutable ve @Stable API'lerle güncellendi
    21. VertexMode enum'ı PascalCase olarak 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 API düzeyine bağlı olarak PorterDuff modları arasında doğru şekilde eşleme yapmak için Compose BlendMode API tüketimi güncellendi. BlendMode#isSupported API'yi, BlendMode'un kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için özellik sorgusu olarak kullanılmak üzere kullanıma sundu. (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 bu kullanım alanını çözen, üst maksimum boyutu 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 listesine daha fazla API eklendi. (Id7e04)
  • İstenen API'nin en basit şekilde bulunup kullanılabilmesi için Material 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ınızı Bağımlılıkları bildirme bölümünde yukarıda gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.

API Değişiklikleri

  • FocusModifier, Modifier.focus, Modifier.focusRequester, Modifier.focusObserver lehine kullanımdan kaldırıldı. FocusState ve FocusDetailedState, FocusState2 lehine kullanımdan kaldırıldı (I46919, b/160822875, b/160922136)
  • Odak durumu değişikliğini gözlemlemek için değiştirici eklendi. (I05866, b/160924455, b/160923326)
  • Odak değişiklikleri istemek için değiştirici eklendi (I8dd73, b/161182057, b/160924778)
  • Araç çubuğu menüsünü kopyalama, kesme ve yapıştırma işlemlerini düzgün şekilde gösterecek şekilde ayarlayın. (Id3955)
  • Tek değerli anlamsal özellikler 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üzenden gelen tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'si, bu işlevi kullanacak şekilde güncellendi. (I0d8d0, b/159596546)
  • Applier artık kompozisyonları silmek için clear() yöntemini gerektiriyor (Ibe697)
  • KeyEvent desteği sonlandırıldı ve KeyEvent2 ile değiştirildi (I68730)
  • Test bulucularına yeni bir isteğe bağlı 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) lehine, Size.copy yardımcı nesne yöntemi kullanımdan kaldırıldı.

  • Pop-up'lar, iletişim kutuları ve menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)

  • TextDirection, ResolvedTextDirection olarak yeniden adlandırıldı (I3ff38).

  • Layout() işlevinin ölçü bloğundan düzen yönü parametresi kaldırıldı. Ancak düzen yönü, geri çağırma işlevi içinde ölçü kapsamı nesnesi (Ic7d9d) aracılığıyla kullanılabilir.

  • Yeniden kullanmak için SelectionHandles'ı yeniden düzenleyin. (I420e0)

  • Tıklanabilir özelliği kaldırıldı. Modifier.clickable (I84bdf) öğesini kullanın.

  • TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics kullanın (I15ff0, b/158841414)

  • Bu değişiklikten önce, bir @Composable işlevinin içinde oluşturuculara yapılan çağrılar, (I5205a, b/158123804) varsa önemsiz olmayan bir şekilde Compose derleyici eklentisi tarafından 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'ı ekleyin (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 nokta olarak temsil etmek için iki kayan nokta değerini paketlemek üzere uzun bir değerden yararlanmak için 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, kaydırma sınıfının avantajlarını sunarak x ve y kaymalarını temsil eden iki kayan nokta değerini paketlemek için uzun bir değerden yararlanmanızı sağlar. (I3ad98)

  • 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. 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).

  • Büyük yeniden düzenleme çalışması kapsamında, piksel parametreleri için yalnızca Dp ve temel türlerin kullanılması amacıyla ç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).

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

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

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

  • Yüksek düzeyli bileşenlerin kullanımına izin vermek için Modifier.semantics'in kullanım dışı bırakılması 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 manuel olarak sağlamadan sağladığı için artık RTL özelliğini korumayacak şekilde güncellendi (I1798e).

  • DoubleTapGestureFilter artık ağaçta SingleTapGestureFilter'ı netleştiriyor. (If92b1)

  • Alignment API güncellendi ve mutlak hizalama (Rtl bağlamında otomatik olarak yansıtılmaz) 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 boş değer atanamıyor; 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 doğal ölçüm işlevleri artık doğal ölçüm sorgu API'sini örtülü olarak yayılmış düzen yönüyle sağlayan bir IntrinsicMeasureScope alıcısına sahip. (Id9945)

  • Layout ve LayoutModifier alt öğeleri farklı bir düzen yönüyle ölçülebilir. (Ibd731)

  • Aynı üst düzendeki alt öğelerin çizim sırasını kontrol etmek için yeni Modifier.zIndex() işlevi eklendi. DrawLayerModifier üzerindeki elevation özelliği, shadowElevation olarak yeniden adlandırıldı ve artık çizim sırasını kontrol etmiyor. DrawShadow'un 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ılacak ve tüm tam sayı kısıtlamalarının Android'deki gibi piksel olduğu varsayılacak.

    • IntPxSize'ın yerini alacak olan IntSize da eklendi. (I4b43a)
  • Hizalama, rastgele değerlerle oluşturulabilir 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'ta 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 değerlerini 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ştirilen 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)

  • Katman API'lerine, katmandaki belirli bir nokta etrafında döndürme ve ölçeklendirmeyi desteklemek için pivotX, pivotY parametreleri eklendi (Icf7c3).

  • OnPositioned ve OnChildPositioned composable işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)

  • Düzen için RenderNode eklemeye olanak tanıyan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçekleme ve gölge 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 sadece with(density) kullanılmalıdır (I11cb1).

  • LayoutCoordinates, sağlananAlignmentLines'ı Map yerine Set olacak şekilde değiştirildi ve değer almak için get() operatörünü uygulayacak şekilde düzenlendi. Bu sayede, her değiştirici için yeni bir koleksiyon oluşturmaya gerek kalmadan değiştiricilerin, kümenin bir veya daha fazla değerini değiştirmesi kolaylaşır. (I0245a)

  • LayoutCoordinates artık bir konum özelliğine sahip değil. LayoutModifiers, döndürme veya ölçekleme göz önünde bulundurulduğunda konum özelliği anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'den diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() kullanmalıdır.

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

  • Kısıtlamaların API yüzeyinde yapılan 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ırlanı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 (I0ea9e) bir alt bölümünün çizilmesini desteklemek için ImagePainter'a ek isteğe bağlı rect parametresi eklendi.

  • Renkleri kutuya almadan ayarlanmamış bir değeri temsil etmek için "Ayarlanmamış Renk" eklendi. (If901a)

  • Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak üzere Canvas.rotate ve Canvas.scale uzantı yöntemleri eklendi. Bu değerler, mevcut tuval çevirisinin sol üst köşesine varsayılan olarak ayarlanı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)

  • Compose ile Android çerçeve API'leri arasında nesne dönüştürme için adlandırma kuralına uymak üzere toFrameworkRect/toFrameworkRectF, toAndroidRect/toAndroidRectF olarak yeniden adlandırıldı. Bu API'lerle ilgili dokümanlar da güncellendi (I86337).

  • Vektör grafikler için mevcut alt bileşim API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine VectorPainter nesnesidir. VectorPainter lehine önceki DrawVector composables işlevinin desteği sonlandırıldı.

    Image(Painter) API'sinin adı PaintBox(Painter) olarak değiştirildi. Image composable'a benzer şekilde davranan Vector composable oluşturuldu. Ancak ImageAsset yerine VectorAsset kullanılıyor (I9af9a, b/149030271).

  • Image verileri ile düzen oluşturmak ve içerik çizmek için kullanılan, yakında kullanıma sunulacak Image composable arasındaki farkı daha iyi ayırt etmek için Image, ImageAsset olarak yeniden adlandırıldı. _Body:android.graphics.Bitmap üzerinde, geleneksel Android uygulama geliştirmeyi Compose çerçevesiyle birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere Bitmap.asImageAsset() adlı bir uzantı yöntemi oluşturuldu (Id5bbd).

  • Added TextDirection.Content (I48f36)

  • TextDecoration.plus operatörü eklendi (I0ad1a)

  • Force, TextDirectionAlgorithm enum değerlerinden (Icc944) kaldırıldı.

  • TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)

  • TextField Seçimi için LongPressAndDrag'i uygular. (I17919)

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

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

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

  • API değişikliği: AnnotatedString(builder: Builder) 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şlevini addStringAnnotation olarak yeniden adlandırın. (I5059e)

  • Artık onTextInputStarted geri çağırma işlevi (I8dc44, b/151860051) tarafından sağlanan SoftwareKeyboardController kullanılarak yazılım klavyesi gizlenebilir/gösterilebilir.

  • (Text/Paragraph/Span)Style için merge() işlevine devreden artı operatörü eklendi. (Ia1add)

  • FontWeight.lerp artık tutturmuyor. Bu, hâlâ bir veri sınıfıdır. (I521c2)

  • FontWeight oluşturucusu artık herkese açık ve veri sınıfı değil. (Id6b1f)

  • getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount'u TextLayoutResult'a ekleyin (Ibc801)

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

  • Kullanılmayan Size sınıfı, kullanılan ui-geometry modülünde yinelenen bir Size sınıfı olduğu için kaldırıldı. (I1b602)

  • Yalnızca görünür öğeleri oluşturan ve yerleştiren kaydırma listesi bileşeni AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan değişikliklerin tümünü tam olarak ele almaması yer almaktadır. (Ib351b)

  • Kutuya dolgu, kenarlık, şekil ve arka plan parametresi ekleyin (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 ya da kendi öğenizde Modifier.verticalScroll ve Modifier.horizontalScroll'u kullanın. Benzer şekilde, ScrollerPosition, ScrollState'in (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 sınıf olduğundan NativeShader sınıfını doğrudan kullanın. (I25e4d)
  • PainterModifier, verilen kısıtlamalara ve ContentScale parametresine göre ölçeklendirme sağlamayacak şekilde yeniden düzenlendi. Painter uygulamaları, çizim içeriklerini, çizim yaptıkları DrawScope'un verilen boyutuna göre kendileri ölçeklendirmelidir.

    VectorPainter'ın önbellek bit eşleminin, içine çizim yapılacak boyuta göre değil, varsayılan boyutuna göre boyutlandırılması sorunu düzeltildi.

    ImagePainter, içeriğini ölçeklemek için PainterModifier'a güvenmek yerine kendi başına ölçekleme yapacak şekilde güncellendi. (I6ba90)

  • Animasyon zamanlaması için üst düzey withFrameNanos işlevi ekleyin (Ie34c5).

  • @Untracked notu kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)

  • androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'larının desteği de sonlandırıldı. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)

  • Gönderim sırasında PointerInputFilters, alt bileşen oluşturma yoluyla kaldırılırsa işaretçi girişi gönderme işleminin kilitlenmeye neden olduğu sorun düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)

  • Gönderim sırasında PointerInputFilters alt bileşen oluşturma yoluyla kaldırılırsa işaretçi girişi gö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 arkadaş oluşturma yöntemleri kaldırıldı.

    Yarıçap için x ve y eksenleri boyunca 2 ayrı kayan nokta değeri yerine tek bir Radius parametresi kullanmak üzere DrawScope.drawRoundRect 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ı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 (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, 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, bir "anahtar" 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 durumdan kaynaklanan bilinen kasıtlı 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 birleştirilebilir işlevlere yayılır. Bu, çalışma zamanında daha az karşılaştırma yapılmasına, yuva tablosu boyutunun küçülmesine ve daha önce atlanmayan composable işlevlerin daha fazla atlanmasına neden olur. 2. Derleme süresinde "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Bu, karşılaştırma sayısını ve yer tablosu boyutunu azaltır. 3. Oluşturulan grup sayısını en aza indirmek için işlevlerin 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ılmayan parametreler, 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 süresi parametreleri içerecek şekilde güncellendi (I60756, b/143464846)

  • Kullanımdan kaldı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. Button'daki 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 yapılan, geriye dönük uyumluluğu bozan değişiklikler. 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, 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 olanı (ö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).