Kullanıcı arayüzü oluşturma

Düzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken kullanıcı arayüzünün temel bileşenleri.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
20 Mart 2024 1.6.4 - - 1.7.0-alpha05

Yapı

Oluşturma işlemi, androidx içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her biri kendi sürüm notlarına sahip olan hedeflenmiş bir işlev alt kümesi içerir.

Bu tabloda, gruplar ve her sürüm notları grubunun bağlantıları açıklanmaktadır.

GruplandırAçıklama
compose.animationKullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun.
compose.derleyici@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin.
compose.temelKullanı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 derleyin. Bu, Compose'un daha üst düzey giriş noktasıdır ve www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak için tasarlanmıştır.
compose.material3Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşenler ile Jetpack Compose kullanıcı arayüzleri derleyin. Material 3, güncellenmiş tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri içerir ve yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır.
compose.runtimeCompose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları bildirme

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

Uygulamanızın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

dependencies {
    implementation "androidx.compose.ui:ui:1.6.4"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme konusuna bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sayı oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.7

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.ui:ui-*:1.7.0-alpha05 yayınlandı. 1.7.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Bir görüntüleme listesinde çizim komutlarını kaydetmek ve görüntüleme listesinin oluşturulmasını etkileyen ek özellikleri kaydetmek için yeni GraphicsLayer API'sini kullanıma sunun. Bu, karmaşık bir sahneyi, tüm sahneyi yeniden oluşturmadan ayrı ayrı güncellenebilen daha küçük parçalara bölmek için bir yalıtım sınırı sağlar. GraphicsLayer öğesinde yapılan dönüştürme işlemleri, görüntüleme listesi yeniden kaydedilmeden yapılabilir. Modifier.graphicsLayer'den farklı olarak GraphicsLayer, başka bir yerde Oluşturulabilir içeriğin oluşturulmasına olanak tanır ve içeriğin farklı sahnelerde oluşturulmasının beklendiği animasyonlu kullanım alanlarında kullanışlıdır.

API Değişiklikleri

  • GraphicsLayer.draw(Canvas) artık herkese açık bir API değil. Katmanı çizmek için lütfen bunun yerine DrawScope.drawLayer(GraphicsLayer) uzantı işlevini kullanın. (I7a7c0)
  • restrictedConstraints() öğesini iki yönteme bölün: fitPrioritizingWidth() ve fitPrioritizingHeight() (I6d7fd)
  • Android L kullanımı için HardwareCanvas saplama kullanıma sunuldu (I1c3b5, b/288494724)
  • Düzenleme çerçevesini güncelleyerek Sahip, DelegateableNode ve drawWithCache Değiştirici uygulamalarının yanı sıra yerel olarak da bir GraphicsContext bestesi sunarak kapsamlı erişim için GraphicsContext erişimini açığa çıkarmak ve Değiştiriciler kullanımdan kaldırıldığında GraphicsLayer örneğini otomatik olarak temizleyeceksiniz. (I64a2f, b/288494724)
  • Alt düzey IME ile ilgili testlerin ve diğer düşük düzey IME kullanım alanlarının yazılmasına yardımcı olması için InterceptPlatformTextInput kullanıma sunuldu. PlatformTextInputTestOverride desteği sonlandırıldı. (I862ed, b/322680547)
  • GraphicsLayer.setOutline(Outline) uzantı işlevi eklendi. (Ib81f4)
  • GraphicsLayer örnekleri (Ib98d6, b/288494724) oluşturmak için fabrika oluşturmak üzere GraphicsContext işlev oluşturucusunu tanıtın
  • Çizim komutlarını yakalama konusunda geliştirici tarafından tanımlanan esneklik sağlamak için kullanıma sunulan GraphicsLayer API, başka bir yere çizim yapmak ve aynı zamanda farklı görsel efektler uygulamak için kullanılabilir. (I80245, b/288494724)
  • Belirli bir dikdörtgen alanın kapsadığı metin aralığını döndüren Paragraph#getRangeForRect özelliğini kullanın. (Iee516, b/325660505)
  • onLinkClicked bağımsız değişkeniyle yapılan BasicText deneme amaçlı geçersiz kılması kaldırıldı. Köprü desteği için ileride bunun yerine yeni bir API kullanıma sunulacaktır. (I107d5)

Hata Düzeltmeleri

  • İsteğe bağlı birleştirme görsel efektleri ve dönüşümleri içeren çizim komutlarının yakalanıp tekrar oynatılmasını desteklemek için GraphicsLayer beklenen/gerçek API tanımı eklendi. GraphicsLayer örneklerinin oluşturulması ve yönetilmesi de dahil olmak üzere grafik bağımlılıklarını içerecek şekilde GraphicsContext arayüzünü kullanın. (I4a8d6, b/288494724)
  • 1D odak aramasıyla ilgili, odağın diğer görünümlerin arasına yerleştirilmiş bir ComposeView içinde takılmasına neden olan birlikte çalışabilirlik sorunu düzeltildi. (I08fd4)

Harici Katkı

  • LocalLifecycleOwner, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzünün dışında kullanılabilmesi için Compose kullanıcı arayüzünden lifecycle-runtime-compose'ye taşındı. Katkılarından dolayı Jake Wharton'a teşekkür ederiz. (I6c41b, b/328263448)
  • Tüm önyargıya dayalı hizalama alt türlerinde önyargı kayma özelliklerini sürekli olarak gösterin. (I69f0f, b/328088992)

Sürüm 1.7.0-alpha04

6 Mart 2024

androidx.compose.ui:ui-*:1.7.0-alpha04 yayınlandı. 1.7.0-alpha04 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Android U'dan sonraki cihazlarda BasicTextField2 için ekran kalemi el yazısı özelliği desteklenir. (I002e4)
  • Bu CL'de, oluşturma sırasında kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için GetScrollViewportLength semantik işlemini ekliyoruz. Bu değişiklik belgesi, temel kaydırılabilir listelerde söz konusu mülkün kullanımını da uygular. (Ic5fa2)
  • FocusRequester.createRefs artık kararlı (I4d92c, b/261436820)
  • Değiştirici düğümlerin yerel bir beste okumadan geçerli Android View sürümünü almalarını sağlamak için DelegatableNode.requireView() kullanıma sunuldu. (I40768)
  • Bir yolun yönünü tersine çevirmek için yeni API Path.reverse() (I36348)
  • TextFields uygulamasının, tercih edilen bir dili ayarlamak üzere belirli yerel ayarlarla IME'lere ipucu vermesini sağlamak için hintLocales, KeyboardOptions içine eklendi.
  • 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 yayınlandı. Sürüm 1.7.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • MaxLines ve Overflow ile ContextualFlowRow ve Geliştirilmiş FlowRow/Column ile tanışın. Deneme amaçlı FlowRow ve FlowColumn için geliştirmeleri duyurmaktan mutluluk duyuyoruz. Bu geliştirmeler artık maxLines ve taşma desteğinin yanı sıra ContextualFlowRow ve ContextualFlowColumn özelliklerini de içeriyor. Bu güncelleme, en iyi performans bileşenleri sağlamak için tasarlanmıştır. ContextualFlow* küçük bir maxLines yapılandırmasından ve dinamik +N daha fazla düğmeden yararlanan çok sayıda öğe için, FlowRow ve FlowColumn ise 100'den az öğe içeren az sayıda öğe için idealdir. Önemli: Çapraz eksene uygun olup olmamalarından bağımsız olarak tüm öğelerin oluşturulduğu FlowRow veya FlowColumn ürününde mevcut davranışı korumak için başlatma sırasında overflow değerini FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin uygulamalı örneklerini görmek için ContextualFlowRowSample ve FlowRowSample özelliklerini keşfedin. (Ib9135, b/293577082)
  • İzin verilen maksimum karakter sayısını filtreleyen metin alanlarında ayarlanması gereken maxTextLength semantik özelliğini ekleyin. (I24d9f, b/170648072)
  • Modifier.inspectable sarmalayıcısı kullanımdan kaldırıldı. Bu API, değiştiricinizin gereğinden fazla geçersiz kılınmasına neden olur. Bu nedenle, bu API'nin kullanılması önerilmez. Değiştirici özellikleri araçlara sunmak isteyen geliştiricilerin, ModifierNodeElement sitesinde inspectableProperties() yöntemini uygulamaları önerilir. (Ib3236)
  • PopupProperties için WindowManager.LayoutParams işaretleri üzerinde tam kontrol sağlayan yeni oluşturucu. (Ibb33e, b/312485503)
  • onPlaced değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadan Modifier.Node adlı öğenin mevcut LayoutCoordinates değerini almanın bir yolu olarak DelegatableNode.requireLayoutCoordinates() kullanıma sunuldu. (Ia8657)
  • onPlaced değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadan Modifier.Node adlı öğenin mevcut LayoutCoordinates değerini almanın bir yolu olarak DelegatableNode.currentLayoutCoordinates kullanıma sunuldu. (Iaebaa)
  • BasicTextField2 ve androidx.compose.foundation.text2 paketi kapsamındaki ilgili API'ler androidx.compose.foundation.text kuruluş birimine taşındı. (I9f635)
  • Açık bir Değiştirici Düğümde özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir ApproachLayoutModifierNode API'si eklendi. Ayrıca, örneklendirme sırasında hedefi bilinmeyen animasyonlar için yeni bir deneysel DeferredTargetAnimation API'sı eklendi. (I60745)
  • Bir Yolun yönünü sorgulamak ve bir Path öğesinden kontur çıkarmak için yeni Path API'leri. (I63d04)
  • Path öğesinin belirli bir nokta içerip içermediğini kontrol etmek için PathHitTest ve Path.contains(Offset) eklendi. (I3b218)
  • TextLayoutResult artık getLineBaseline(lineIndex) yöntemini gösteriyor. Bu, mevcut kolaylık özellikleri firstBaseline ve lastBaseline özelliğine ek olarak metnin rastgele bir satırının referans çizgisini okumanıza olanak tanır. (Ide4e8, b/237428541)
  • Yalnızca iki AnnotatedStrings öğesinin ek açıklamalarını karşılaştırmak için bir yöntem eklendi. (I32659)

Hata Düzeltmeleri

  • SemanticsPropertyReceiver.performImeAction 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 yayınlandı. Sürüm 1.7.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • SemanticsPropertyReceiver.performImeAction ile ilgili ikili program uyumluluğu sorunu düzeltildi. (I65865, b/322269946)
  • usePlatformDefaultWidth parametresi alan PopupProperties oluşturucu artık deneysel değil. (I8f8d2)
  • Zaman aşımı mesajına eklemek üzere koşulun dize açıklamasını alan bir ComposeTestRule.waitUntil aşırı yükü eklendi. (I9413e)
  • Aynı değiştirici zincirine eklenen anlamsal özellikleri kaldırmak için yeni semantics API unset(). Yeni anlamsal özellik isOpaque. (I8c583, b/317966058, b/246056649)
  • PointerInputChange uygulamasının herkese açık API'sindeki kopyalama yönteminden originalEventPosition kaldırıldı. (I7bead)

Hata Düzeltmeleri

  • Sekme ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanabilir olmasına izin veren a11y hatası düzeltildi. (I2181c)
  • VelocityTracker artık varsayılan olarak nokta ekleme düzeltmesine sahip olacak. Herhangi bir sorun varsa VelocityTrackerAddPointsFix değeri false (yanlış) değerine ayarlanarak düzeltme devre dışı bırakılabilir. (Ib3877, b/269487059)
  • TextStyle ve ParagraphStyle sürümlerinde geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)

Harici Katkı

  • Platforma özgü parametreler olmadan yeni bir DialogProperties oluşturucusu eklendi. (I45829)
  • Platforma özgü parametreler olmadan yeni bir PopupProperties oluşturucusu eklendi. (I9a038)

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.ui:ui-*:1.7.0-alpha01 yayınlandı. Sürüm 1.7.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Resimler gibi rastgele içerikleri desteklemek için ClipEntry ve ClipMetadata eklenerek ClipboardManager genişletildi.
  • Test edilen içeriğin davranışını yerel olarak geçersiz kılmaya (ör. kullanılabilir bir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema belirtme) olanak tanımak için ui-test öğesine DeviceConfigurationOverride API ekler.

Sürüm 1.6

Sürüm 1.6.4

20 Mart 2024

androidx.compose.ui:ui-*:1.6.4 yayınlandı. 1.6.4 sürümü bu kayıtları içerir.

Sürüm 1.6.3

6 Mart 2024

androidx.compose.ui:ui-*:1.6.3 yayınlandı. 1.6.3 sürümü bu kayıtları içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.ui:ui-*:1.6.2 yayınlandı. 1.6.2 sürümü bu kayıtları içerir.

Sürüm 1.6.1

7 Şubat 2024 androidx.compose.ui:ui-*:1.6.1 yayınlandı. 1.6.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • SemanticsPropertyReceiver.performImeAction ve SemanticsActions.PerformImeAction ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Ie0bb2, b/322269946)
  • Düzenler artık anormal derecede büyük bir boyut döndürdüğünde ölçüm yaparken hata veriyor. Bu tür hatalar genellikle ölçümde Constraints.Infinity kontrol edilmeden doğrudan maksimum kısıtlamaları kullandığında ortaya çıkar. Bu denetim, geliştiricilerin, yanlış boyuta sahip düzende değil de yanlış boyuta sahip düzendeki sorunları bulmasına yardımcı olur. (I339a9)

Sürüm 1.6.0

24 Ocak 2024

androidx.compose.ui:ui-*:1.6.0 yayınlandı. 1.6.0 sürümü bu kayıtları içerir.

Sürüm 1.6.0-rc01

10 Ocak 2024

androidx.compose.ui:ui-*:1.6.0-rc01 yayınlandı. 1.6.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Ek yeniden kompozisyonları en aza indirerek performansı iyileştirmek için vektör grafikleri optimize edildi.

Sürüm 1.6.0-beta03

13 Aralık 2023

androidx.compose.ui:ui-*:1.6.0-beta03 yayınlandı. 1.6.0-beta03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Artık LayoutCoordinates, düğüm çıkarılmadan ayrılabilir. Oluşturma Düzen Denetleyicisi'nde (If693) buna karşı koruma sağlayın

Hata Düzeltmeleri

  • PlatformImeOptions artık bir arayüz değil, somut bir sınıf. (If40a4)
  • Her kök yeniden derlendiğinde LocalSoftwareKeyboardController ve LocalTextInputService değerlerinin yeni değerlerin sağlanmasından kaynaklanan ek aşağı akış yeniden oluşturmaları düzeltildi. (I42190, b/310510985)

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.ui:ui-*:1.6.0-beta02 yayınlandı. 1.6.0-beta02 sürümü bu kayıtları içerir.

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.ui:ui-*:1.6.0-beta01 yayınlandı. 1.6.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alıcı DragAndDropTarget öğesini açık bir şekilde üstlenir ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda'ya sahiptir. Şu anda DragAndDropModifierNode için iki fabrika işlevi mevcuttur. Biri aktarımları almak, diğeri veri aktarımı için kullanılır (I69481)
  • maximumFlingVelocity, Kayan öğe olarak gösterilecek şekilde güncellendi. Dokümanlar, maximumFlingVelocity birliği hakkında daha net bilgi verecek şekilde güncellendi. (I8adc7)
  • DragAndDropModifierNode fabrikasındaki onDragAndDropStart, acceptDragAndDropTransfer olarak yeniden adlandırıldı.acceptsDragAndDropTransfer, sürükle ve bırak oturumundan kabul etmesi için dragAndDropTarget Değiştirici'ye eklendi. Bu lambda, sürükle ve bırak 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 bu şekilde değiştirildi. Sürükle ve bırak oturumlarından veri almak için bir DragAndDropTarget fabrika işlevi eklendi (Iebf3a)
  • DragAndDropInfo, DragAndDropModifierNode.drag türü olarak kaldırıldı ve artık transferData, süsleme boyutu ve sürükleme dekorasyonu DrawScope lambda parametrelerini alıyor

    DragAndDropTarget, tek bir soyut yöntem yerine belirli sürükle ve bırak etkinlikleri için yöntemler içeriyor

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

    DragAndDropEventType kaldırıldı (I645b1)

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

  • Geçirilebilir düğüm API'sı adlarını iyileştirir ve bunları daha anlaşılır hale getirir. (Ia4474)

  • OriginalText yerine TextSubstitution kullanın. (Ifa5a8)

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

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

  • Kaldırılan FocusDirection.In ve FocusDirection.Out, bunun yerine FocusDirection.Enter ve FocusDirection.Exit öğelerini kullanıyor (I2f660)

  • Materyal SwipeToReveal API'leri (Kartlar ve Çipler için), artık bu slotları oluşturmak için veri sınıfı tabanlı örnekler yerine slot tabanlı API'leri (Compose tarafından önerildiği gibi) kullanmaktadır. Bu son derece önemli bir değişikliktir. Yeni API'nın nasıl kullanılacağıyla ilgili örnekler için lütfen demoyu ve örnek kodu inceleyin. (Ia8943)

  • FontStyle(int) oluşturucu kullanımdan kaldırıldı, bunun yerine FontStyle.Normal veya FontStyle.Italic kullanın. (I66610)

  • FontScalable arayüzünün adı FontScaling (Ie804a) olarak değiştirildi

Hata Düzeltmeleri

  • Hiçbir metin düzenleyiciye odaklanılmamışsa SoftwareKeyboardController.show() artık yazılım klavyesini göstermez. (I2165a, b/301477279)
  • Aynı Oluşturma Görünümü'nde Down etkinliği almayan anahtarlar için donanım tuşu Up etkinlikleri artık yoksayılacaktır. (Ib37b4, b/305518328)
  • ArcLine bölgesinde Gradyan Süpürme özelliği için oluşturucu desteği eklendi. (I4d5bb)
  • PageSize.Fixed için eşittir ve karma kodunu uygulayın. (Ie3ede, b/300134276)
  • Pencere Inset değişikliğiyle ikili program uyumluluğu sorununu düzeltme (Iee695)
  • Mikro karşılaştırmalar, bu olmadan daha iyi performans gösterdiğinden Material3 Çip/Düğmesi için malzeme temel katmanını kaldırın. (I55555)
  • Compose'a effectContext testlerinde iletilen TestDispatcher'ler artık test ve kare saatleri oluşturmak için kullanılır. (Ia7178)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.ui:ui-*:1.6.0-alpha08 yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.

API Değişiklikleri

  • Modifier.dragAndDrawSource, onDrawDragShadow lambda'yı drawDragDecoration olarak yeniden adlandırdı ve DragAndDropInfo adlı boyut parametresi dragDecorationSize olarak yeniden adlandırıldı. (Id0e30, b/303904810)
  • Eşleşen bir düğümün görünür olup olmadığını kontrol etmek için, üzerinde de iddiada bulunmadan, SemanticsNodeInteraction.isDisplayed() ve SemanticsNodeInteraction.isNotDisplayed() özelliklerini kullanın. (I2c196, b/302100809)
  • null öğesinin yerine kullanılacak ParagraphTextStyle öğesinin 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, nullable öğesi Belirtilmemiş değeriyle değiştirilerek temel tür kutulama işleminden kaçınılır. TextStyle ve Paragraf stilindeki oluşturucular, alıcılar ve diğer yöntemler, belirtilen parametreleri boş türler olarak kabul edecek şekilde güncellendi. (I4197e, b/299490814)
  • XML'den bir GoogleFont okumak için GoogleFont aşırı yükünü ekleyin. (If8f59)
  • LoremIpsum PreviewParameterProvider açık sınıf haline getirildi. (I41bf5, b/266918816, b/300116360)

Hata Düzeltmeleri

  • FontFamilyResolver, önbellek yönetimi eş yordamları için artık Dispatchers.Main kullanıyor. (Ie8dd9)
  • AndroidViewBinding, daha önce kullandığı commit yerine commitNow kullanarak düzeninize onRelease öğesinin parçası olarak bir FragmentContainerView ekleyerek şişirilen Fragment örneği artık eşzamanlı olarak kaldırıyor. Böylece, Canlı Düzenleme'nin yöntemdeki sorunları, değişiklikler sonrasında besteyi değiştirerek düzeltiyor. (I58fbf)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.ui:ui-*:1.6.0-alpha07 yayınlandı. Sürüm 1.6.0-alpha07 bu kayıtları içerir.

API Değişiklikleri

  • Özel metin düzenleyicilere yönelik yazma testleri için PlatformTextInputMethodTestOverride kullanıma sunuldu. (Id159b)
  • Sürükle ve bırak oturumlarını başlatmak için dragAndDropSource Değiştirici ve sürükle ve bırak oturumlarından almak için dragAndDropTarget Değiştirici ekler. (Ib7828, b/286038936)
  • Ayırmalardan kaçınan ColorList ve ColorSet koleksiyonları eklendi. (I744bd)
  • Doğrusal olmayan yazı tipi ölçeklendirmesini devre dışı bırakmak için DisableNonLinearFontScalingInCompose geçici işareti eklendi. Bunları temizlemek için zamana ihtiyacınız varsa testlerinizde DisableNonLinearFontScalingInCompose = true değerini ayarlayın. Bu bayrak, Compose 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)

Hata Düzeltmeleri

  • Optimize edilmiş XML vektör çekilebilirlerinin ayrıştırılması. (Ibb015)

Sürüm 1.6.0-alpha06

20 Eylül 2023

androidx.compose.ui:ui-*:1.6.0-alpha06 yayınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.

API Değişiklikleri

  • Materyal simgeleri için ek optimizasyonlar. (I3e08d)
  • Benzer düğümleri bulmak için değiştirici ağacı yukarı/aşağı çekme özelliği ekler. (I2d234)
  • focusRestorer() değiştiricisine (Ie1d43) onRestoreFailed() geri çağırma eklendi
  • 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 ekle (Ib61d3)

Davranış Değişiklikleri

  • Compose'da daha iyi okunabilirlik ve erişilebilirlik sağlamak için artık doğrusal olmayan yazı tipi ölçeklendirme kullanılıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda, küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinlerin boyutu biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğinde amaçlanan yükseklikle orantılı biçimde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar sayfasına bakın. (I11518)

Sürüm 1.6.0-alpha05

6 Eylül 2023

androidx.compose.ui:ui-*:1.6.0-alpha05 yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

  • AndroidComposeViewAccessibilityDelegateCompat uygulamasında içerik yakalamayı etkinleştir. (Ib2969)
  • ScrollView ve RecyclerView gibi View bileşenlerindeki fırlatma hızları ViewConfiguration.ScaledMaximumFlingVelocity ile sınırlıdır. Oluşturma işlemi artık Draggable için geçerli olan kendi maximumFlingVelocity sürümünü içeriyor. (Ibf974)
  • Platform sürükle ve bırak API'lerini desteklemek için başlangıç iskelesini ekler. (If84ce)
  • deviceId öğesini RotaryScrollEvent alanına (Iba3bf) ekleyin
  • ui-tooling Cihazlar API'si daha yeni cihazları içerecek şekilde güncellendi (Ib25b4)

Sürüm 1.6.0-alpha04

23 Ağustos 2023

androidx.compose.ui:ui-*:1.6.0-alpha04 yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • ReusableComposition devre dışı bırakılması için bir yöntem eklendi. Gözlemler kaldırıldı ancak düğümler yerinde tutuldu. Devre dışı bırakılan besteyi setContent çağrısı yapılarak tekrar etkinleştirilebilir. (Ib7f31)
  • Alt bestelerin yaşam döngüsünü yönetmek ve yeniden kullanmak için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)
  • Modifier.focusGroup sürümü, kararlı API'lere yükseltildi. (I7ffa3)
  • ColorInt, FloatRange, IntRange, Size ve daha fazlasını belirtmek için çeşitli grafik API'lerine Androidx ek açıklamaları eklendi. (I70487, b/290950582)
  • ColorFilter API, parametrelerin daha iyi denetlenmesi için somut alt sınıf türlerine sahip olacak şekilde güncellendi. (I5fe29)
  • Kullanıcı arayüzü önizlemelerinde kullanılabilecek geçerli Wear cihazlarını listelemek için Wear-araçları-önizleme kitaplığını sunun (Ib036e)
  • Yoğunluk arayüzünün yazı tipi ölçeklendirme kısmını işlemek için FontScalable arayüzü oluşturuldu. (I2cf3f)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

androidx.compose.ui:ui-*:1.6.0-alpha03 yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • İçeriği, giriş ve çıkış animasyonu sırasında animasyon kapsayıcısının boyutuna göre ölçeklendiren yeni giriş/çıkış geçişi türü. LookaheadScope Oluşturulabilir eğlence ve arayüz artık kararlı. (Ifb2ce)
  • privateImeOptions (Idb772) yapılandırması için destek eklendi

Hata Düzeltmeleri

  • PopupPositionProvider.calculatePosition artık hesaplamadaki okunma durumu değiştiğinde pop-up'ın konumunu otomatik olarak günceller. (I676a1, b/292257547)
  • Klavyeyi gösteren ve readOnly doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktayken readOnly ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)
  • Kullanıcı arayüzü testinde genel onayların uygulanması genişletildi. (I1f90d)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

androidx.compose.ui:ui-*:1.6.0-alpha02 yayınlandı. Sürüm 1.6.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • Besteyi uygulayan kişiler tarafından uygulanabilecek olan ve başka bir beste yetki hizmeti araması için orijinal Besteye yetki veren Beste uygulamasına olanak tanıyan bir hizmet konum belirleyici arayüzü eklendi. Bu, doğrudan olarak adlandırılmamalıdır ve kullanıcı arayüzü modülünde olduğu gibi oluşturucunun sarmalanmış sürümlerinden bulunabilen, çalışma zamanında deneysel API'lerin oluşturulmasını etkinleştirmek için kullanılır. (I296b9)
  • PlatformTextInput* API tümüyle yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController ve LocalSoftwareKeyboardController artık deneme aşamasında değil. LocalSoftwareKeyboardController artık uygun bir CompositionLocal. (I4c364)
  • LookaheadLayout ve LookaheadLayoutScope birkaç sürüm için kullanımdan kaldırıldı ve şimdi kaldırıldı. Yeni API'ler tüm Layout'larla çalışabilecek LookaheadScope API'leridir. (I12ac3)
  • SemanticsNodeInteraction.requestFocus, testlerde odaklanma isteğinde bulunmanın daha kolay ve bulunabilir bir yolu olarak eklendi. (Ie8722)
  • Gelecekte test çerçeveleri tarafından kullanılmak üzere global iddiaları kaydetmek için deneysel API'ler ekleyin. (I12d77)

Hata Düzeltmeleri

  • AndroidView adlı kullanıcıya ait update geri çağırma işleminin ilk çağrısı, AndroidView öğesini tanıtan beste uygulandığında çalıştırılmak yerine görünüm eklenene kadar ertelenir. Bu işlem, okuduğu bir durum bir efektle hemen değiştirilirse update geri çağırmanın geçersiz kılınmayacağı bir hatayı düzeltir. (Ie9438, b/291094055)

Sürüm 1.6.0-alpha01

21 Haziran 2023

androidx.compose.ui:ui-*:1.6.0-alpha01 yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • LazyList için ileriye dönük destek. Bu, ileri geçiş geçişindeki LazyList öğesinin tüm animasyonları (ör.öğe yerleşimi animasyonu, AnimatedVisibility vb.) atlamasına ve tüm alt öğeler için ileriye dönük boyutu ile konumunu hesaplamasına olanak tanır. LazyList çocukları, ileriye doğru geçişten sonra ileriye doğru geçişte görüldüğü gibi bağımsız olarak gerçeğe göre hareket edebilir.

Davranış Değişikliği: includeFontPadding, artık Compose'da varsayılan olarak yanlış

Oluşturma işleminde includeFontPadding artık varsayılan olarak false (21d806) değeridir.

includeFontPadding, metin referans değerlerinin üzerine veya altına uzayabilecek karakterleri yerleştirmek için metnin ilk satırının ve son satırının üstüne fazladan dolgu eklenip eklenmeyeceğini kontrol eden eski bir özelliktir.

Bu Oluştur sürümünü güncellediğinizde, görüntülediğiniz her metnin ilk satırının ve son satırının üstündeki fazladan dolguyu kaldırarak tüm metinlerin kullanıcı arayüzünüzde oluşturulma şeklini değiştirir.

Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak, minimum düzeyde değişiklik yapılmalıdır. Ancak, aşağıdakiler gibi engelleyicilerle karşılaşabilirsiniz: - Bozuk ekran görüntüsü testleri. Gerekirse kullanıcı arayüzünü düzeltin ve altın rengi resimleri yeniden oluşturun. - Metin biraz hatalı hizalanıyor. Özel negatif dolguları kaldırın veya gerekirse dolgu ekleyin.

Her metin için PlatformTextStyle kullanarak includeFontPadding hizmetine kaydolabilirsiniz:

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

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

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

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

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

Bu değişiklikle bağlantılı sorunlar veya hatalarla karşılaşırsanız sorun izleyiciyi kullanarak hata bildiriminde bulunun.

API Değişiklikleri

  • InputConnection#requestCursorUpdates (I0c69b) kanalını destekleyin
  • FocusRequester.saveFocusedChild ve FocusRequester.restoreFocusedChild eklendi (Ic557e, b/272302679, b/275157318)
  • Bit eşlem öğeleri yüklenmeye çalışılırken, yüklenemeyen öğe yolunun açıklamasına yer verilen atılabilir öğeleri sarmalamak için ResourceResolutionException türünü ekleyin. (I19f44, b/230166331, b/278424788)
  • Performans ve bellek ayırmaları için optimize edilmiş erişilebilirlik. (Iede48)
  • Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
  • Mevcut ölçüm geçişinin ileriye dönük geçiş olup olmadığını belirtmek için IntrinsincMeasureScope içinde ve uygulamalarında (ör. MeasureScope) yeni özellik. (I7a812)
  • Oluşturma işlemini alternatif yoğunluk/düzen yönü ve boyutla farklı bir tuvalde yeniden hedefleme özelliğini kullanıma sunmak için DrawScope API güncellendi.
  • Yoğunluk ve düzen yönü yapılandırmasını desteklemek ve kanvası yapılandırılabilir hale getirmek için DrawContext güncellendi. (Ie1f9b, b/225408150)
  • Karakter sınırlayıcı kutuları hesaplamak için Paragraph#fillBoundingBoxes eklendi. (If30ee)
  • Ortak MultiPreviews (Ia5a27) kümesi eklendi

Hata Düzeltmeleri

  • Özel bir FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (I9790e)
  • TextMeasurer oluşturucudaki fallback* parametreleri, default* olarak yeniden adlandırıldı. (I940a5)
  • SemanticsPropertyReceiver.performImeAction öğesinin adı onImeAction, SemanticsActions.PerformImeAction adı ise OnImeAction olarak değiştirildi. (I8e841)
  • İç içe kaydırmada fare kaydırmasını sürüklemeden ayırt etmek için Tekerlek ekler (özellikle NestedScrollConnection içinde). (Ie57e4)
  • Döndürülen nesne orijinal android.graphics.Paint öğesini sardığından toComposePaint öğesinin yerine kullanılacak asComposePaint API eklendi (I22b4c)
  • SemanticsProperties.imeAction öğesini kullanımdan kaldırın ve SemanticsActions.performImeAction için yeni bir parametreyle değiştirin. (I4a587)
  • Fareyle seçme desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişler ve karakter bazında küçülür. (Ic0c6c, b/180639271)
  • Daha önce AssertionError ofsetleri için AssertionError hatası veren Paragraph yöntemleri artık MultiParagraph gibi IllegalArgumentException hızına neden oluyor. (I549d3, b/243338896)

Sürüm 1.5

Sürüm 1.5.4

18 Ekim 2023

androidx.compose.ui:ui-*:1.5.4 yayınlandı. 1.5.4 sürümü bu kayıtları içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.ui:ui-*:1.5.3 yayınlandı. 1.5.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • (b/301209788) TextField bazen Korece girişe odaklanıp giriş yaparken önceki komutları yanlış bir şekilde uygulayıp karakterlerin kaybolmasına neden oluyordu.

Sürüm 1.5.2

27 Eylül 2023

androidx.compose.ui:ui-*:1.5.2 yayınlandı. 1.5.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Arka plan ileti dizisinden Accessibility Scroll API'ye erişildiğinde oluşan kilitlenmeler için geçici çözüm eklendi.
  • Anlambilim ağacına eklenen eklenmemiş düğümleri düzeltin.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.ui:ui-*:1.5.1 yayınlandı. Sürüm 1.5.1 bu kayıtları içerir.

Hata Düzeltmeleri

  • Klavyeyi gösteren ve readOnly doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktayken readOnly ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.ui:ui-*:1.5.0 yayınlandı. 1.5.0 sürümü bu kayıtları içerir.

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.ui:ui-*:1.5.0-rc01 yayınlandı. 1.5.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

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

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.ui:ui-*:1.5.0-beta03 yayınlandı. 1.5.0-beta03 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Özel bir FocusTarget hedefi oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (Ifb1d6)
  • İletişim Kutusu ve Pop-up composable'larında yaşanan, usePlatformDefaultWidth=true olduğunda alt pencerenin beklendiği gibi yeniden boyutlandırılmamasına neden olabilecek bir sorun düzeltildi. (I112ee)

Sürüm 1.5.0-beta02

7 Haziran 2023

androidx.compose.ui:ui-*:1.5.0-beta02 yayınlandı. 1.5.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Compose'da kullanılacak android.graphics.Paint örneğinin kullanımını etkinleştirmek için asComposePaint API'si eklendi

Hata Düzeltmeleri

  • Döndürülen nesne orijinal android.graphics.Paint öğesini sardığından toComposePaint öğesinin yerine kullanılacak asComposePaint API eklendi (I22b4c)

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.ui:ui-*:1.5.0-beta01 yayınlandı. 1.5.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Yeniden oluşturma, renk animasyonları ve AndroidComposeView (Ib2bfa) kapsamındaki ayırmalar kaldırıldı
  • Yetki vermek için CacheDrawModifierNode() yardımcı eğlencesini ekler (Icf8f9)
  • Önceden inceleme sonuçlarını gözlemlemek ve isterseniz ana geçişi etkilemek için MeasureScope üzerinden erişilebilen isLookingAhead özelliğini kullanıma sunuyoruz. (Ibf4c3)
  • TalkBack geçişindeki düğümleri yeniden sıralamak için kullanılan bir hareketli değer olan yeni anlamsal özellik traversalIndex (düşük değerler önce gelir). (I9a81b, b/186443263)
  • isContainer semantik mülkünü isTraversalGroup olarak yeniden adlandırma (I121f6)
  • ColorProducer artık produce yerine bir operator fun invoke özelliğine sahip (I4a9a2)
  • Yol nesnelerine çevirme/ölçek/döndürme dönüşümleri uygulamak için Path dönüşüm API'si ekleyin. (I23434, b/233772232)
  • ColorProducer yönteminin adı produce. (I78bde)
  • toFrameworkColorSpace alanının adını toAndroidColorSpace olarak değiştirin (I4f547)
  • ColorLambda alanının adını ColorProducer olarak değiştirin. (I73b1a)
  • Android ve Compose renk alanı türleri arasında dönüşüm yapmak için API'leri kullanmaya başlayın. (Ie7db4, b/279979665)
  • Metin renginin verimli bir şekilde animasyonunun ayarlanmasına veya ayarlanmasına olanak tanımak için BasicText öğesine bir renk parametresi eklendi. (Iffd88, b/246961787)
  • TextRange.constrain, TextRange.coerceIn olarak yeniden adlandırıldı. (I31be2)
  • Tam parametre listesine sahip, optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırıldı. Asıl amacımız alanı kaldırmak olsa da geri bildirimlere göre geliştiricilerin bu yapılandırma seçeneğine ihtiyacı var. Bu nedenle, desteğin sonlandırılması (I98e96, b/277703184)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • AnnotatedString içindeki UrlAnnotation dosyaları artık TalkBack gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • LineHeightStyle.Alignment(topRatio) oluşturucu, kararlı API sürümüne yükseltildi. (I79c32, b/261565383)
  • TextMeasurer ve ilgili API'ler artık deneysel değildir. (I74647, b/261581753)
  • Metin düzenleyici düğümlerinde IME işlemini çağırmak için PerformImeAction semantik işlemi eklendi. (Ic606f, b/269633506)
  • PlatformTextInput API'ler artık Android için deneysel değildir. (I668eb)
  • Enum.valueOf için değer parametresi adı değiştirildi (Ia9b89)
  • enum valueOf parametresinden (I818fe) daha fazla atılmış istisna
  • Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey PlatformTextInputAdapter API'si kullanıma sunuldu. (I58df4)
  • Tuval üzerinde metin çizerken farklı harmanlama algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)
  • Font.MaximumAsyncTimeout alanının adını Font.MaximumAsyncTimeoutMillis olarak değiştirin. Yalnızca yeniden adlandır'a dokunun. (I07af5)
  • @Preview referans cihazların (Id6151, b/254528382) güncellenmiş DPI değerleri
  • Metin fırçasını verimli bir şekilde canlandırmak veya ayarlamak için BasicText öğesine brush, alpha parametreleri ekleyin.
  • Kayan noktalı, Çift, Uzun, İnt, Kısa in :ui:ui-unit için kutusuz lambda türlerini tanımlama (I6f18d, b/246961787)

Hata Düzeltmeleri

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

Harici Katkı

  • Vektör API'lerinde (I906cb) gelişmiş performans ve ayırmaları azaltma

Sürüm 1.5.0-alpha04

10 Mayıs 2023

androidx.compose.ui:ui-*:1.5.0-alpha04 yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • Modifier.Node Yetki İyileştirmeleri Bir DelegatingNode öğesinden diğer Modifier.Node örneklerine yetki verme yeteneği eklendi. Bu işlem, delegate ve undelegate API'leriyle yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin, yetki verilen düğüme açıkça yetkilendirilmesi gerekiyordu. Bu değişiklikten sonra, DelegatingNode açıkça geçersiz kılmadığı sürece düğüm arayüzlerine dolaylı olarak yetki verilecek. (67352bc)

API Değişiklikleri

  • Yetki verilebilecek bir NestedScroll Modifier.Node olan NestedScrollModifierNode ile tanışın. (I69513)
  • onReset ve onRelease parametreleri AndroidViewBinding composable'ına eklendi. Böylece AndroidView composable yansıtıldı ve ViewBinding ile görüntülemenin yeniden kullanımı desteği etkinleştirildi. (I00b1e, b/276802519)
  • Compose Path API'si daha hızlı yeniden kullanımla sık kullanılan Yol işleme durumları için geri sarma işlemlerini destekleyecek şekilde güncellendi. (I7b797)
  • Tam parametre listesine sahip, optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırıldı. Asıl amacımız alanı kaldırmak olsa da geri bildirimlere göre geliştiricilerin bu yapılandırma seçeneğine ihtiyacı var. Bu nedenle, desteğin sonlandırılması (I98e96, b/277703184)

Hata Düzeltmeleri

  • Dialog composable tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmemesiyle ilgili regresyon düzeltildi. (I82551, b/262140644)

Sürüm 1.5.0-alpha03

19 Nisan 2023

androidx.compose.ui:ui-*:1.5.0-alpha03 yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • LookaheadScope ürününde SubcomposeLayout için yeni varsayılan davranış: Koşullu yuvaları (ör.TabRow, Scaffold, BoxWithConstraints vb.) olmayan SubcomposeLayouts artık ileri doğru animasyonlarla düzgün şekilde çalışıyor.

API Değişiklikleri

  • İleriye dönük geçişteki ölçüm politikasını yeniden kullanan yeni varsayılan intermediateMeasurePolicy, Scaffold, TabRow ve BoxWithConstraints gibi koşullu alanlar içermeyen SubcomposeLayout alt türünün varsayılan olarak ileri düzey öğeyle çalışmasına olanak tanır. (Id84c8)
  • Bir Android penceresi için oluşturulan yeniden düzenleyici, ON_STOP bildirimi aldığında tüm besteleri değil, yalnızca withFrameNanos çağrılarını engelleyecektir. Bu, durdurulan etkinliklerle ilişkili pencerelerin veri değişiklikleri için yeniden derlenmeye devam edeceği, ancak animasyonların veya withFrameNanos işleviyle ilişkili diğer tüm çağrıların engelleneceği anlamına gelir. (Id9e7f, b/240975572)
  • motionEventSpy adlı öğeyi kararlı olarak değiştirir. (Ic5ec4, b/261560988)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • Geliştiricileri, includeFontPadding false (yanlış) ayarını değiştirmek ve test etmek için bu uyumluluk API'sini kullanmaya teşvik etmek amacıyla PlatformTextStyle.includeFontPadding desteği sonlandırılmıştır. (I98e96, b/277703184)

Sürüm 1.5.0-alpha02

5 Nisan 2023

androidx.compose.ui:ui-*:1.5.0-alpha02 yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • İleriye dayalı animasyonlar sırasında ölçüm/düzen mantığını yönetmek için ek bir ara önlem politikası gerektiren yeni SubcomposeLayout API'si. (I017d3)
  • PointerInput artık geç değildir ve daha iyi performans için Modifier.Node'u kullanır (Küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
  • Deneysel API'leri Önemli etkinliklerle birlikte kararlı olarak değiştirir. (I9c7d8, b/261566839, b/261567368)
  • PointerInputChange ürününde deneysel API'leri kararlı olarak değiştirir. (I1b543, b/261560988, b/261565762, b/261565749)
  • Daha karmaşık Modifier.Node uygulamaları için SuspendingPointerInputModifierNode örnekleme yöntemi ekler. (Ic4933)
  • AnnotatedString içindeki UrlAnnotation dosyaları artık TalkBack gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)
  • Donanım tuşlarını, yazılım klavyesine gönderilmeden önce engellemek için bir API eklendi (I4f4c6, b/186800395)
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • Metinle ilgili test işlemleri (ör. performTextInput) artık alanı tıklamak yerine semantik işlemini kullanarak doğrudan odaklanma isteğinde bulunacak. (I6ed05)

Hata Düzeltmeleri

  • Metin testi işlemleri için artık metin alanlarının etkinleştirilmesi gerekiyor. (Iab328)

Sürüm 1.5.0-alpha01

22 Mart 2023

androidx.compose.ui:ui-*:1.5.0-alpha01 yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Modifier.intermediateLayout artık açık bir LookaheadScope gerektirmiyor. intermediateLayout'taki ölçüm bloğunun alıcısı olarak IntermediateMeasureScope yer alır. Bu blok, kullanışlı CoroutineScope, LookaheadScope ve MeasureScope özelliğini sağlar.(Ibe2e5)
  • LookaheadLayout'un yerini, artık bir Layout olmayan LookaheadScope aldı. Bu, LookaheadScope içindeki Chid içeriğinin doğrudan üst MeasurePolicy tarafından kontrol edilmesine olanak tanır. (Ibe2e5)
  • Modifier.Nodes'un eş yordamları başlatmasına izin vermek için Modifier.Node#coroutineScope ekler. (I76ef9)
  • CompositionLocalTüketiciModifierNode arayüzünü uygulayarak Modifier.Nodes'un CompositionLocals öğesini okumasına izin verin. (Ib44df)
  • @Kullanımdan kaldırılan sınıfın mülke çoğaltılması. (I882d1)

Sürüm 1.4

Sürüm 1.4.3

3 Mayıs 2023

androidx.compose.ui:ui-*:1.4.3 yayınlandı. 1.4.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Belirli Değiştiricilerle birlikte kullanıldığında AndroidView öğesinin doğru şekilde yerleştirilememesine neden olan sorun düzeltildi. (I4dc77, b/274797771)
  • 2D Odaklı Arama özelliğinde DropDown Menüleri etkileyen bir hata düzeltildi (b/276811828)
  • Özel odak giriş/çıkış özelliklerinde yalnızca lambda ilk kez çağrıldığında giriş/çıkış blokunu çalıştıran bir hata düzeltildi (b/277234245)
  • Odak sisteminde focusProperties okunurken kilitlenmeye neden olan bir regresyon düzeltildi. (b/271324781, b/274897776)

Sürüm 1.4.2

19 Nisan 2023

androidx.compose.ui:ui-*:1.4.2 yayınlandı. 1.4.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • AndroidView ürününün, değiştiricilerini doğru bir şekilde yeniden kullanamamasına, dolayısıyla beklenmedik davranışlara ve kilitlenmelere neden olabileceği bir sorun düzeltildi. (Ib67ee, b/275919849)
  • Dialog composable (I82551, b/262140644) tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesi sorunu düzeltildi.

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.ui:ui-*:1.4.1 yayınlandı. 1.4.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • AndroidView ürününü etkilemeyen ParentDataModifier ile ilgili sorunu düzeltir (b/274797771)

Sürüm 1.4.0

22 Mart 2023

androidx.compose.ui:ui-*:1.4.0 yayınlandı. 1.4.0 sürümü bu kayıtları içerir.

1.3.0'dan sonraki önemli değişiklikler

  • Geç liste öğelerinin sınırların dışına kaydırıldığında silinmemesi için sabitlenmesine olanak tanıyan yeni bir PinnableContainer API'si eklendi. Örneğin Modifier.focusable(), geçerli olarak odaklanılmış öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010)
  • Odak sistemi, yeni deneysel Modifier.Node API'leri kullanılarak yeniden yazılır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, {1214352203, b/29b}
  • Yüzeylere IsContainer semantik özelliğine eklendi. Bu özellik, geçiş sırasının yüzeyler gibi öğelerin anlamsal anlamına göre belirlendiği daha sonra yapılacak bir değişiklikte kullanılacaktır. (I63379)
  • Yeni DropdownList erişilebilirlik rolü eklendi. Bu, android.widget.Spinner ürününe odaklanırken TalkBack kullanıcısının davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001)
  • Artık tek bir Paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakmak üzere PlatformTextStyle(emojiSupportMatch) kullanabilirsiniz. (Ia7100, b/139326806)
  • Android Compose kullanıcı arayüzü testleri, boşta kalan kareler çalıştırılırken (ör. waitForIdle aracılığıyla) artık her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde uygulanan testleri etkileyebilir. (I8ea08, b/222093277)
  • Metni Static(default) veya Animasyonlu olarak tanımlamak için TextStyle öğesine deneme amaçlı TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated kullanın. (I24dd7)

Sürüm 1.4.0-rc01

8 Mart 2023

androidx.compose.ui:ui-*:1.4.0-rc01 yayınlandı. 1.4.0-rc01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • onReset parametresini kabul eden AndroidView composable işlevinin aşırı yüklenmesi eklendi. Bestedeki düğümleri silinip uyumlu bir şekilde yeniden kullanıldığında görüntüleme örneklerinin yeniden kullanılmasına olanak tanır. Bu özellikle Görünümlerin LazyRows ve LazyColumns kadarında faydalıdır. (I3f10d, b/230099236)
  • Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey PlatformTextInputAdapter API'si kullanıma sunuldu. (I58df4)

Hata Düzeltmeleri

  • BasicTextField adlı uygulamanın SetText semantik işlemi, metin arabelleğini IME güncellemeleriyle ve test işlevleriyle (ör. performTextReplacement) aynı kod yolunu kullanarak günceller.
  • Metin test işlevleri performTextClearance, performTextReplacement 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 yayınlandı. 1.4.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • modifierElementOf() API kaldırıldı. Bunun yerine lütfen doğrudan ModifierNodeElement üzerinden uzatın. (I2256b)
  • Layout yeniden kullanılacağında (örneğin, bir LazyColumn öğesi olarak) durumu düzgün bir şekilde ele almak için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni bir Modifier.Node.onReset() geri çağırma işlevi eklendi. Odaklanılan durumu düzgün bir şekilde sıfırlamak için FocusTargetModifierNode düzeltildi. (I65495, b/265201972)
  • Tuval üzerinde metin çizerken farklı harmanlama algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)

Hata Düzeltmeleri

  • Erişilebilirlik odağı sırası algoritması iyileştirildi. Örneğin, üst/alt çubuklar daha sık ilk/son olarak okunuyor (74e9c5)

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.ui:ui-*:1.4.0-beta01 yayınlandı. 1.4.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • PinnableContainer.PinnedHandle.unpin(), release() (I4667a) olarak yeniden adlandırıldı
  • waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExists ve waitUntilDoesNotExist, ComposeTestRule API'sine deneysel API olarak eklendi. Böylece waitUntil API, tüm eşleştiricileri ve tüm düğüm sayısını kabul edecek şekilde genişletildi. Diğer dokümanlar için ComposeTestRule sayfasına göz atın. (Ifa1b9, b/226934294)
  • Font.MaximumAsyncTimeout alanının adını Font.MaximumAsyncTimeoutMillis olarak değiştirin. (I07af5)
  • GoogleFont.Provider.AllFontsListUri dosyası kaldırıldı ve bu öğeye ktdoc'ta bağlandı. (I16f29)

Hata Düzeltmeleri

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

Sürüm 1.4.0-alpha05

25 Ocak 2023

androidx.compose.ui:ui-*:1.4.0-alpha05 yayınlandı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

  • runComposeUiTest işlevi ve CoroutineContext parametrelerini kabul eden create*ComposeRule işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test bestesi ve bestedeki tüm LaunchedEffect ile 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şaretlendi. (I580ee)
  • usePlatformDefaultWidth parametresini alan deneysel ek açıklamayı DialogProperties oluşturucudan kaldırın. (Ic4048)
  • PathMeasure.getPosition() ve PathMeasure.getTangent() (I3b47c) ile, yol üzerinde belirli bir mesafedeki hesaplama konumuna ve tanjanta işlev eklendi
  • PlatformParagraphStyle tarihinde yanlışlıkla açığa çıkan herkese açık ayarlayıcı kaldırıldı. (I07f47)
  • Satır içi/kullanımdan kaldırılan gizli işlevlerin daha fazla tür/boşluk değeri (I24f91)
  • Sıfır tahsisli ek açıklamaları sorgulamak için AnnotatedString.hasStringAnnotations ekleyin. (I94dfe, b/246960758)
  • String öğesini metin olarak alan TextMeasurer.measure işlevi için yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)
  • TextStyle'daki LineBreak ve Hyphens API'leri kararlı sürüme geçirildi. (Ic1e1d)

Harici Katkı

  • TextInputSession ve TextInputService uygulamalarındaki notifyFocusedRect yöntemlerinin desteği tekrar sonlandırılmadı. (I23a04, b/262648050)

Sürüm 1.4.0-alpha04

11 Ocak 2023

androidx.compose.ui:ui-*:1.4.0-alpha04 yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • Geç liste öğelerinin sınırların dışına kaydırıldığında silinmemesi için sabitlenmesine olanak tanıyan yeni bir PinnableContainer API'si eklendi. Örneğin Modifier.focusable(), geçerli olarak odaklanılmış öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010)
  • Odak sistemi, yeni deneysel Modifier.Node API'leri kullanılarak yeniden yazılır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, {1214352203, b/29b}
  • Yüzeylere IsContainer semantik özelliğine eklendi. Bu özellik, geçiş sırasının yüzeyler gibi öğelerin anlamsal anlamına göre belirlendiği daha sonra yapılacak bir değişiklikte kullanılacaktır. (I63379)
  • Yeni DropdownList erişilebilirlik rolü eklendi. Bu, android.widget.Spinner özelliğine odaklanırken TalkBack's davranışını tekrarlamak için kullanılabilir. (I177e5, b/236159001)
  • Artık tek bir Paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakmak üzere PlatformTextStyle(emojiSupportMatch) kullanabilirsiniz. (Ia7100, b/139326806)
  • Android Compose kullanıcı arayüzü testleri, boşta kalan kareler çalıştırılırken (ör. waitForIdle aracılığıyla) artık her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde uygulanan testleri etkileyebilir. (I8ea08, b/222093277)
  • Metni Static(default) veya Animasyonlu olarak tanımlamak için TextStyle öğesine deneme amaçlı TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated kullanın. (I24dd7)

API Değişiklikleri

  • drawText içindeki maxSize: IntSize bağımsız değişkeni, diğer DrawScope işlevleriyle satır içi olması için size: Size ile değiştirildi. size varsayılan olarak Size.Unspecified değerine ayarlanır. Bu ayar, önceki varsayılan davranışı değiştirmez. (Icd27d)
  • Kullanımdan kaldırılan deneysel yazı tipi oluşturucu kaldırıldı. (I8a724, b/261435386)
  • Group kullanıcı arayüzü araç veri sınıfının artık bir satır içi composable işleve çağrı için olup olmadığını gösteren isInline alanı var. isInline değeri true ise çağrı, bir satır içi composable işleve yapılır. Ancak bu değer, oluşturma derleyici eklentisinin satır içi işlev bilgilerini oluşturmayan bir sürümüyle derlenmiş modüllerden gelen satır içi composable işlevlere yapılan çağrılar için yanlış olabilir. (Idb846)
  • Daha önce deneysel olan bazı API'ler kararlı sürüme geçirildi
  • Rotary Scroll Event API artık kararlı (I42ad3, b/261561229)
  • FontVariation API artık kararlı (I8779f, b/241016309)
  • Tüm Font() oluşturucuları artık kararlı API'dir (I5948b, b/261435386)
  • DeviceFontFamilyName artık kararlı (I8b640, b/261435386)
  • variationSettings ile AndroidFont kurucusu artık kararlı bir API ve yeni yazı tipi açıklayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)
  • createFontFamilyResolver API artık kararlı. Bu, eşzamansız yazı tipi yükleme işlemi sırasında yakalanmamış istisnaları yakalamak için kullanılabilir. (Ibb481, b/261435386)
  • Font.loadingStrategy API artık kararlı. (I5937c, b/261435386)
  • GoogleFont API artık kararlı. (Ic90b0, b/261435386)
  • TextUnit(float, TextUnitType) artık kararlı API. (I90c84, b/261561612)
  • pluralStringResource artık kararlı API. (I09849, b/261439703)

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.ui:ui-*:1.4.0-alpha03 yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • ExperimentalComposeUiApi, PointerIcon klasöründen kaldırılıyor (I23af8)
  • Sayfa erişilebilirlik işlemlerini tanıtın: PageUp, PageDown, PageLeft, PageRight. Bunların yalnızca API 29'dan kullanılabildiğini unutmayın. (Ida4ab)
  • Kök görünümünden ana makine görünümüne rememberNestedScrollConnection parametre görünümü güncellendi. (Ia5200)
  • Üst öğelerin kaydırma bilgilerini sorgulamak için Değiştirici API'si eklendi. (I2ba9d, b/203141462)
  • Hareketler kaydırma etkinliğine dönüşebilirken basma etkileşimlerini doğru bir şekilde ertelemek için Clickable içinde kullanılır.
  • Clickables işlevinin, Scrollable ViewGroup içinde kullanıldığında dalgaları doğru şekilde geciktirmemesi düzeltildi.
  • Hareketlerin kaydırma etkinliklerine dönüşmesi ihtimaline karşı bastırmaları doğru bir şekilde geciktirecek Çekmeceler ve E-Tablolar güncellendi.
  • graphicsLayer öğesinin her zaman bir ara tampon (I47dc1) içinde oluşturulacağını belirtmek için CompositingStrategy.Always öğesi Offscreen olarak yeniden adlandırıldı
  • Birden fazla içerik alanıyla düzende aşırı yükleme artık kararlı (I10566, b/248294649)
  • Test davranışını ve performansını incelemek amacıyla test kapsamında Perfetto izlerini (Sistem İzleri olarak da bilinir) yakalamak için PerfettoTrace.record {} ve PerfettoTraceRule adlı deneysel yeni API'ler eklendi. (I3ba16)
  • Oluşturma kuralı kullanılan kullanıcı arayüzü testlerinde, withFrameNanos geri çağırmaları sırasında devam ettirilen devamlar, tüm çerçeve geri çağırma işlemlerinin çalışması bitene kadar dağıtılmaz. Bu, normal çalışırken oluşturma davranışıyla eşleşir. Ancak, eski davranışa dayanan testler başarısız olabilir. Bu, yalnızca doğrudan withFrameNanos veya withFrameMillis çağrısı yapan kodu etkilemelidir ve geri çağırma işlevinin içine taşınması gerekebilecek bu işlevlere aktarılan geri çağırma dışında bir mantığa sahiptir. Örnekler için bu EKL'deki animasyon testi değişikliklerine bakın.
  • withFrameNanos geri çağırmalarından sonra, ancak arayanların eş yordamlarını devam ettirmeden önce kodu çalıştırmak için TestMonotonicFrameClock oluşturucuya ve fabrika işlevine isteğe bağlı onPerformTraversals: (Long) -> Unit parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)
  • EmojiCompat, Oluşturma'ya eklendi (Ibf6f9, b/139326806)
  • Dinamik renk desteği için @Preview öğesine yeni duvar kağıdı parametresi eklendi (I9f512)

Hata Düzeltmeleri

  • Anlık görüntü uygulama bildirimleri, Recomposer değişiklikleri uygulamayı bitirdikten sonra gönderilir. (Iad6c0, b/222093277)
  • Çok pencereli ekran görüntülerinin yakalanmasını sağlamak için captureToImage uygulamasında değişiklikler yapıldı. Bu, Pop-Up oluşturma pop-up'larını kullanan ekran görüntüsü testleri için yararlıdır. (I169c5)

Bağımlılık Güncellemeleri

  • Compose Kullanıcı Arayüzü ve Compose Material artık Lifecycle 2.5.1'i kullanır. (I05ab0, b/258038814)

Sürüm 1.4.0-alpha02

9 Kasım 2022

androidx.compose.ui:ui-*:1.4.0-alpha02 yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • graphicsLayer öğesinin mevcut boyutunu göstermek için GraphicsLayerScope güncellendi. Bu özellik, Composable boyutunun işlevi olarak graphicsLayer dönüşümlerini hesaplamak için kullanışlıdır. (If8c43,b/181387080)
  • graphicsLayer içeriğini oluşturmak için ekran dışı birleştirme katmanından ne zaman yararlanacağınızı belirlemek için CompositingStrategy kullanıma sunuldu. Otomatik, alfa veya RenderEffect/Overscroll uygulanırsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. ModulateAlpha ürününün ekran dışı arabelleği kullanmaktan kaçınacağı ve bunun yerine graphicsLayer içindeki kaydedilen çizim talimatlarının her birini değiştireceği bir ekran dışı arabelleğe her zaman eklenir. ModulateAlpha kullanımı, RenderEffect/Overscroll kullanımları için ekran dışı arabelleğe alınmaya devam eder (I25e82, b/256382834)
  • Düzen ve çizim için bütün hiyerarşilerin geçersiz kılınmasına olanak tanımak amacıyla invalidateSubtree() Modifier.Node grubuna eklendi. (I4bd90)
  • rememberNestedScrollInteropConnection sürümünü kararlı sürüme yükseltin. rememberNestedScrollInteropConnection için kök görünümü iletme özelliği kullanıma sunuldu. Bu, özel görünümün, özellikle standart olmayan görünümlerde (ör. ModalBottomSheetDialog) kaydırma kısıtlamalarına daha iyi tepki vermesine yardımcı olabilir. (I9e107)
  • Daha önce okudukları bir değer değiştiğinde bildirim alması gereken Modifier.Node uygulamaları tarafından kullanılabilen ObserverNode arayüzü eklendi (I5728b, b/247716483)
  • Paint öğesine, yerel android.graphics.Paint kabul eden yeni bir oluşturucu eklendi. Ayrıca, mevcut bir yerel Paint nesnesini Compose Paint'e dönüştüren bir toComposePaint() uzantı işlevi de eklendi. (Ica91b)
  • Android'de kullanmak için yeni FontFamily.Resolver.resolveAsTypeface ekleyin. (I8950b)
  • Araçların Composable'ın (Ie6614) dahili durumlarını değiştirmesine izin vermek için ToolingState ekleyin
  • Eklenen yeni animasyonları daha iyi destekleyecek şekilde araçları yeniden düzenleme (I8677b)
  • Malzeme ve malzeme3 Metin, TextField ve OutlinedTextField öğelerine minLines parametresi eklendi. Bu parametre, satır sayısı (I4af1d) açısından bileşenin minimum yüksekliğinin ayarlanmasını sağlar.

Sürüm 1.4.0-alpha01

24 Ekim 2022

androidx.compose.ui:ui-*:1.4.0-alpha01 yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Hareket algılayıcıları için yeni bir yöntem (awaitEachGesture()) eklendi. forEachGesture() ile benzer şekilde çalışır, ancak hareketler üzerindeki döngü tamamen AwaitPointerEventScope içinde çalıştığından etkinlikler yinelemeler arasında kaybolmaz.
  • Hareketler arasında etkinliklerin kaybedilmesine izin verdiğinden forEachGesture() kullanımdan kaldırılmış ve yerine awaitEachGesture() getirilmiştir. (Iffc3f, b/251260206)
  • Androidx'te erişilebilirlik nesnelerinin geri dönüşümü kullanımdan kaldırılıyor. Desteklenen en eski sürümlerde bile performans değişikliklerinin göz ardı edilebilir olduğunu tespit ettik. (I0a961)
  • Ana hatlarıyla çizilen metni etkinleştirmek için DrawStyle, TextStyle ve SpanStyle öğelerine deneysel bir özellik olarak eklendi. (If24b8, b/155421273)
  • AnnotatedString.Builder artık kotlin.text.Appendable özelliğini uyguluyor. (I1a061, b/231030444)
  • AnnotatedString.Builder artık bir AnnotatedString alt dizesini ve kesişen stilleri eklemek için append(AnnotatedString, start: Int, end: Int) yöntemine sahip.
  • Paragraph ve MultiParagraph boyama işlevine, dış çizgili metnin çizilmesini sağlayan DrawStyle parametresi eklendi. (Ic8102, b/155421273)

Harici Katkı

  • TV Cihazlarını Önizlemelere (Ie15cd) eklediğiniz için vighnesh teşekkür ederiz

Sürüm 1.3

Sürüm 1.3.3

11 Ocak 2023

androidx.compose.ui:ui-*:1.3.3 yayınlandı. 1.3.3 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Android 9'da Etkinlik, Oluşturma Görünümü'nün durumunu kaydederken bazen oluşan kilitlenme için düzeltme. (I0b755, b/260322832)

Sürüm 1.3.2

7 Aralık 2022

androidx.compose.ui:ui-*:1.3.2 yayınlandı. 1.3.2 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • protobuf-javalite:3.19.4 (CVE-2022-3171) (b/255545055) kapsamındaki güvenlik uyarısını önleyen Profobuf 3.21.8 kullanılacak şekilde güncellendi

Sürüm 1.3.1

9 Kasım 2022

androidx.compose.ui:ui-*:1.3.1 yayınlandı. 1.3.1 sürümü bu kayıtları içerir.

Sürüm 1.3.0

24 Ekim 2022

androidx.compose.ui:ui-*:1.3.0 yayınlandı. 1.3.0 sürümü bu kayıtları içerir.

1.2.0'dan sonraki önemli değişiklikler

  • Yeni deneysel API paketi LookaheadLayout (önceden imkansız olan animasyon davranışlarını etkinleştirir)
  • Yeni deneysel API paketi Modifier.Node (Modifier.composed alternatifine daha yüksek performanslı alternatif)
  • İyileştirilmiş pencere ekleme desteği.
  • LazyList'lerdeki D-Pad'ler ve donanım klavyesi desteğine odaklanma.
  • İletişim kutuları ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü (bazı özel tasarım sistemleri için davranış bozucu davranış değişikliği - beta01 sürüm notlarında gerekçe)
  • Çok sayıda küçük ve sorunsuz API iyileştirmesi
  • Çok sayıda hata düzeltmesi ve performans iyileştirmesi

Sürüm 1.3.0-rc01

5 Ekim 2022

androidx.compose.ui:ui-*:1.3.0-rc01 yayınlandı. 1.3.0-rc01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Metinde otomatik kısa çizgiyi desteklemek için yeni deneysel API Kısa Çizgileri eklendi (Iaa869)

Hata Düzeltmeleri

  • DeviceFontFamilyName yazı tipleri, wght ve ital varyasyon ayarlarını varsayılan olarak yapılandırmaz. Bunun yerine, yüklenen Typeface için platform ayarı kullanılı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 yayınlandı. 1.3.0-beta03 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • AndroidX Activity'in 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 yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Birden fazla composable içerik lambdasından oluşan bir listeyi kabul eden ve farklı içerik lambdalarına farklı şekilde yerleştirilen ölçülebilir öğelerin tehdit edilmesine olanak tanıyan, Layout için deneysel bir aşırı yükleme eklendi (Ic1b4e)

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

  • FocusDirection.In ve FocusDirection.Out kullanımdan kaldırılıp FocusDirection.Enter ve FocusDirection.Exit ile değiştirilir. (Ia4262, b/183746982)
  • FocusManager.moveFocus(Enter) ve FocusManager.moveFocus(Exit) için özel davranış belirtmek üzere iki yeni odak özelliği giriş ve çıkış özelliği eklendi. (I5f3f9, b/183746982)
  • Artık odak taşıma işlemini iptal etmek için FocusRequester.Cancel öğesini kullanabilirsiniz. FocusRequester.Cancel, şu odak özelliklerinin herhangi birinde kullanılabilir: yukarı, aşağı, sol, sağ, sonraki, önceki, başlangıç, bitiş, giriş ve çıkış. (Ib300f)

Sürüm 1.3.0-beta01

24 Ağustos 2022

androidx.compose.ui:ui-*:1.3.0-beta01 yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.

Değiştirici Düğüm Yeniden Düzenleyen

Modifier/Modifier.Element örneği işleyen ve LayoutNodes üzerinde davranışlarını koordine eden katman büyük ölçüde yeniden düzenlendi. Bu yeni düzenleme işlemi, Compose'daki birçok değiştiriciden hiçbirinin herkese açık API'sini etkilemez. Bu değişiklik, yalnızca uygulamaya özel bir değişiklik olarak görülebilir. Bununla birlikte, bu değişiklik çeşitli nedenlerle önemli bir değişikliktir. (Ie4313)

Değişiklik Özeti

Eklenen deneysel Modifier.Node API'leri, düzen düğümünün yaşam döngüsüyle korunacak bir örnekte durumun korunmasına olanak tanıyan bir soyutlama sağlar. Bu API'ler, düzen düğümünün yaşam döngüsüyle korunacak olan örnekte durumun korunmasını sağlar ve bunu üreten ilgili Modifier.Element için düzen düğümü ve kullanımı başına ayrılır.

Genel olarak bu soyutlama, Modifier.composed API'nin mekaniğine gerek kalmadan durum bilgili değiştiriciler üretmek için alternatif bir mekanizma sağlar.

Risk

Bu değişiklik, önceki sürümlerle kesinlikle ikili programlarla uyumludur ve pratik ve makul olduğu kadar gözlemlenebilir davranış açısından geriye dönük olarak uyumlu olması amaçlanmıştır. Bununla birlikte, oluşturma işleminin bu yeniden düzenlemeyle ilgilenmeyen birkaç alt sistemi vardır ve davranış, büyük olasılıkla testlerimizin kapsamına girmeyen ve henüz bulunup düzeltilmemiş şekillerde değişmiştir.

Lütfen dikkatli bir şekilde bu sürüme yükseltin. Bu durumun sizin açınızdan sorun yarattığını düşünüyorsanız lütfen bize bildirin.

Deneysel API'ler

Tamamı yeni bir "Değiştirici Düğüm" konseptiyle ilgili olan çeşitli deneysel API'lar eklendi. Değiştirici.Node'lar,

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

Zarar veren davranış değişikliği

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

Oluştur iletişim kutuları ve pop-up'lar için desteklenen maksimum yükseklik 30 dp'den 8 dp'ye düşürüldü. Bu değişiklik, hem materyal hem de kullanıcı arayüzü özel iletişim kutularını ve pop-up'larını etkiler. Bu değişiklik, S altındaki Android sürümlerinde bir erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up içindeki içerikle etkileşimde bulunabilmesini sağlamak için yapılmıştır.

Bu değişiklikten yalnızca, yüksekliği 8 dp'den yüksek seviyelere ayarlanmış özel bir iletişim kutusu veya pop-up uygulaması oluşturuyorsanız etkilenir. İletişim kutusu veya pop-up'ınızın yüksekliğini düşürebilirsiniz. Bu yeni davranışı devre dışı bırakmanız gerekirse kendi iletişim kutunuzu veya pop-up'ınızı istediğiniz yükseklik grubuyla bölebilirsiniz. Erişilebilirlik olumsuz etkilenebileceğinden ve iletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından erişilebilir ve okunabilir olduğundan emin olmak geliştiriciye ait olduğundan bunun yapılması önerilmez.

API Değişiklikleri

  • painterResource ürününün yapılandırma değişikliklerinde güncellenmemesi sorunu giderildi (I58e73, b/228862715)
  • rememberTextMeasurer artık FontFamily.Resolver, Density veya LayoutDirection parametrelerini kabul etmiyor. Bu parametrelere özel değerler sağlamak için lütfen TextMeasurer oluşturucuyu kullanın. (Ia1da3)
  • İletişim Kutularının WindowInsets özelliğini desteklemesi için DialogProperties.decorFitsSystemWindows özelliği eklendi. (I57742, b/229378542)
  • İkili program uyumluluğunu korumak için yazı tipi oluşturucuları orijinal kotlin dosyasına geri taşındı. Son kararlı sürüme göre değişiklik yok. (Ieb2f3)
  • Birkaç eşittir tanımından gereksiz operatör kaldırıldı. Bunun bir etkisi olmadı. (I6c309)
  • FontVariation.Setting, gelecekteki sınırlama API'lerine olanak tanıyan kalıcı bir arayüzdür. (I11021, b/143703328)
  • CompositionGroup.findParameters adlı kişiyi SlotTree.kt alanına ekleyin. Bu sayede araçlar, slot tablosunun tamamını ayrıştırmak zorunda kalmadan CompositionGroup parametrelerini alabilir. (I124fe)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.ui:ui-*:1.3.0-alpha03 yayınlandı. Sürüm 1.3.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • LayoutCoordinates.findRootCoordinates() artık herkese açık (I7fa37, b/204723384)
  • PlacementScope içinde LayoutCoordinates öğesini almak için deneysel API eklendi. Geliştiriciler bu sayede, mevcut düzenin alt öğelerini konumuna göre nereye yerleştireceğini bilirler. (I5482b, b/238632578)
  • Bir LayoutCoordinates'den diğerine Matris dönüşümünü elde etmek için LayoutCoordinates.transformFrom eklendi. (Ic5ab1, b/238632578)
  • SemanticsModifier.id kullanımdan kaldırıldı ve semantik kimliği LayoutInfo.semanticsId konumuna taşındı. (Iac808, b/203559524)
  • Kaynak Yazı Tipleri artık yazı tipi varyasyonu ayarlarının belirlenmesini destekliyor (API 26+). (I900dd, b/143703328)
  • DeviceFontFamilyNameFont ürününde değişken yazı tipi desteği (Ic1279, b/143703328)
  • Yazı tipi oluşturucular artık O+ cihazlarda değişken yazı tiplerini yapılandırmak için FontVariation.Setting listesini kabul ediyor. (I11a9d, b/143703328)
  • Değişken yazı tiplerini tanımlamak ve kullanmak için FontVariation API'si ekleyin. (I3c40c, b/143703328)
  • LineHeightStyle.Alignment kurucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)
  • Paragraf artık Android ve Masaüstü için beklenen|gerçek ve tanımlı. (Id387e, b/239962983)
  • Arayüz Paragrafı artık Paragarph arayüzü için kapalı. Paragrafı alt sınıflandırma olarak kullanmak için herhangi bir kullanım alanı yoktur. Bu değişiklik sizi etkiliyorsa iletişime geçmenizi öneririz. (If5247, b/239962983)
  • PlatformTextStyle ve LineHeightStyle adlı uygulamalardan deneysel ek açıklama kaldırıldı. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard öğesini kullanımdan kaldırın. Bunun yerine lütfen uygulama kodunda SoftwareKeyboardController, IME yönetim 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 yayınlandı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • Baskıyı almak için yeni PointerInputChange#pressure özelliği eklendi. (I45a5e, b/205164819)
  • Kompozisyonda TextMeasurer örneği kolayca oluşturmak ve hatırlamak iç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 uygulanabildiğinden, gereksiz işlevleri KeyInjectionScope bölümünden kaldırın. Kaldırılan işlevler arasında pressKeys, keysDown ve keysUp bulunuyor. (I81d77)
  • KeyInjectionScope içinde, sabit değer ve parametre adları yeniden düzenleyerek "Millis" son ekini dahil etti. Burada söz konusu sabit değerler ve parametrelerin birimleri milisaniyedir. (Iabef5)
  • Metin düzenleme sorunlarının giderilmesine yardımcı olmak için EditCommand öğesine toStringForLog() yöntemi eklendi. (I53354, b/228862731)
  • Canvas ve drawBehind gibi DrawScope üzerinde çalışan composable'lar ve değiştiriciler üzerinde çok stilli metin çizmenin yolunu sağlamak için DrawScope öğesine drawText uzantı işlevi eklendi. (I16a62, b/190787898)
  • Compose çalışma zamanından bağımsız olarak BasicText ile aynı sonuçları oluşturan rastgele metin düzeni hesaplamasına olanak tanıyan TextMeasurer adlı yeni deneysel API'yi kullanıma sunun. (I17101)
  • mapTree adlı kişiyi SlotTree.kt alanına ekleyin. Bu, araçların asTree'de olduğu gibi bellekte kopya oluşturmadan SlotTree öğelerini incelemesine olanak tanır. Layout Inspector için bu, yaklaşık 10 faktörlü bir performans artışı sağlar. (I5e113)
  • Geliştiricilerin kitaplıklardaki MultiPreview ek açıklamalarını yazmasına ve yeniden kullanmasına olanak tanımak için Oluşturma Önizlemesi, ikili çıkış dosyalarında depolanacak şekilde değiştirildi. (I85699, b/233511976)

Hata Düzeltmeleri

  • Velocity İzleyici'ye InputEventChange etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede hedef öğe hareket etse bile hızın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (Icea9d, b/216582726, b/223440806, b/227709803)
  • Ek açıklamalar olduğunda AnnotatedString.toUpperCase işlevinin neden olduğu NPE'yi düzeltin. (I0aca2, b/210899140)

Sürüm 1.3.0-alpha01

29 Haziran 2022

androidx.compose.ui:ui-*:1.3.0-alpha01 yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • Gerçek ölçümden/düzenden önce ileriye dönük geçişi destekleyen yeni LookaheadLayout. Bu yöntem, değiştiğinde düzenin önceden hesaplanmasına olanak tanırken, aynı zamanda boyutu ve konumları hedefe doğru hareket ettirmek için önceden hesaplanmış boyutu/konumu kullanmasına da izin verir. SubcomposeLayouts henüz desteklenmiyor ancak yakın zamanda yayınlanacak bir sürümde desteklenecektir. (I477f5)
  • Text öğesinin tamamının opaklığını değiştirmek için TextStyle ve SpanStyle öğelerinin fırça çeşidine isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635)
  • AnnotatedString ürünlerinde TalkBack bağlantı desteğini desteklemek için UrlAnnotation ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)
  • Yardımcı program işlevlerini çalışma zamanına taşıma (I4f729)

Hata Düzeltmeleri

Harici Katkı

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

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

androidx.compose.ui:ui-*:1.2.1 yayınlandı. 1.2.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • İnceleyicideki boş işaretçi düzeltildi (b/237987764)
  • Denetleyicide anımsama sırasında sınıf yayınlama istisnası düzeltildi (b/235526153)

Sürüm 1.2.0

27 Temmuz 2022

androidx.compose.ui:ui-*:1.2.0 yayınlandı. 1.2.0 sürümü bu kayıtları içerir.

1.1.0'dan sonraki önemli değişiklikler

  • Odak geçişinde iyileştirmeler:

    • Geç listelerde odaklanma odaklı kaydırma artık yeni BeyondBoundsLayout temel API ile çalışıyor
    • FocusOrder ve FocusProperties için yeni davranış özelleştirme API'leri
    • Fiziksel klavye veya TV uzaktan kumandasıyla davranış iyileştirildi
  • Şu kullanıcılar için yeni API'ler:

    • Pencere iç kısımları
    • Harekete dayalı, sonsuz ve düzen animasyonları için temel temel öğeler
    • RenderEffect dahil GraphicsLayer özellik
  • Çok sayıda hata düzeltmesi ve performans iyileştirmesi

Sürüm 1.2.0-rc03

29 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc03 yayınlandı. 1.2.0-rc03 sürümü bu kayıtları içerir.

  • 1.2.0-rc02 sürümünden beri değişiklik yok.

Sürüm 1.2.0-rc02

22 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc02 yayınlandı. 1.2.0-rc02 sürümü bu kayıtları içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
  • Diğer tuşlar basılı tutulurken veya açıkken tuşlara basmak için KeyInjectionScope ürününe üst düzey işlevler eklendi. Bu işlevler, withKeysDown, withKeysToggled vb. içerir. Ayrıca, belirli bir meta tuşun devrede olup olmadığını kontrol etmeye yarayan özellikler de eklendi. Örneğin, kontrol tuşlarından herhangi birinin basılı olup olmadığını kontrol etmek için kullanılan isCtrlDown. Her işlevle ilgili dokümanlar için KeyInjectionScope sayfasına bakın. (I9f6cd, b/229831515)
  • Özel fazla kaydırma efektlerinin yanı sıra bunu kabul eden Modifier.scrollable aşırı yüklemeye izin veren deneysel bir OverscrollEffect kullanıma sunulmuştur.
  • Deneysel LocalOverScrollConfiguration, foundation.gesture paketinden temel paketine taşındı ve LocalOverscrollConfiguration olarak yeniden adlandırıldı (If19fb, b/204650733)
  • runComposeUiTestWithoutActivity {} adını runEmptyComposeUiTest {} olarak değiştirip createEmptyComposeRule() ile uyumlu hale getirin (I6fed7)

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-beta03 yayınlandı. 1.2.0-beta03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • pressKeyTimes, isCapsLockOn ve arkadaşları KeyInjectionScope koleksiyonuna eklendi. Buna ek olarak, API artık bir meta tuşu basılı tutarak fare düğmesini tıklama gibi fare ve klavye birleşik ekleme kalıplarını da destekliyor. (I4c8da, b/229831515)
  • Önemli etkinlik ekleme için deneysel destek eklendi. Önemli etkinlikleri göndermek için performKeyInput kullanın veya bu etkinlikleri performMultiModalInput ile bir çoklu modal giriş hareketi sırasında MultiModalInjectionScope öğesinin key özelliği aracılığıyla gönderin. API belgeleri için KeyInjectionScope sayfasına göz atın. (Ic5000, b/229831515)
  • Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni GoogleFont.Provider.AllFontsListUri ekleyin.
  • GoogleFonts, oluşturma sırasında yüklenemediğinde hata mesajlarının geri alınmasını iyileştirin. (I0416c)

Hata Düzeltmeleri

  • Hız İzleyici'ye InputEventChange etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede hedef öğe hareket etse bile hızın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (I51ec3, b/216582726, b/223440806, b/227709803)
  • Show Layout Bounds ayarı, composable'a Hızlı Ayarlar kutusundan kapatıldıktan hemen sonra uygulanır. Bu işlemden ayrılıp etkinliğe yeniden girmeniz gerekmez. (I843d5, b/225937688)
  • Erişilebilirlik dizesinin arama özelliği, yazı tipi yüklemesini tetiklemez. Önceden, StyleSpans için yazı tipleri yüklenmeye çalışılıyordu ve bu da FontFamily.Resolver öğesinin üzerine yazılması durumunda kilitlenmelere yol açıyordu. (I4609d)
  • İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand artık kurucu bağımsız değişkenlerinin negatif olmayan olmasını gerektiriyor. (Ica8e6, b/199919707)

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.ui:ui-*:1.2.0-beta02 yayınlandı. 1.2.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Diğer önizleme türlerinde işlevleri yeniden kullanma (I19f39)

Hata Düzeltmeleri

  • ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer, yalnızca imha işleminin gerçekleşmemesini değil, imha işleminin ne zaman gerçekleştiğini daha iyi yansıtmak iç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 yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Bu, 1.2'nin ilk beta sürümüdür!

API Değişiklikleri

  • Öğeleri görünür sınırların dışına yerleştirdiklerinde LazyList özel uygulamaları tarafından kullanılabilecek deneme amaçlı BeyondBoundsInterval eklendi (Ifabfb, b/184670295)
  • Modifier.composed işletim sisteminin anahtarlı sürümleri artık kararlı API'dir (Ie65e4, b/229988420)
  • Mevcut görünüm bilgilerini edinmek için beste yerellerini kullanmak üzere rememberNestedScrollConnection API basitleştirildi (I67ca7)
  • @ComposableTargetMarker tarafından işaretlenen @ComposableTarget ek açıklaması ve ek açıklamaları artık @file önekiyle dosya kapsamında kullanılabilir. Dosya kapsamında bir hedef ek açıklama kullanmak, derleyicinin dosyadaki tüm composable işlevlerin ilişkili uygulamayı hedeflemeyi amaçladığını varsaymasına neden olur. Örneğin, @file:UiComposable kullanıldığında tüm @Composable işlevlerinin Compose kullanıcı arayüzü uygulayıcısını hedeflediği bildirilir. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)
  • Platformdan bağımsız, deneysel, test API'si kullanıma sunuldu: interface ComposeUiTest ve fun runComposeUiTest(block: ComposeUiTest.() -> Unit). Bunlar, TestRule gerekmeden Compose kullanıcı arayüzü testleri çalıştırmak için kullanılabilir. ComposeTestRule olmadan test çalıştırmak için testi lambda olarak runComposeUiTest öğesine geçirin ve ComposeUiTest alıcı kapsamında bulunan (ComposeContentTestRule ile aynı olan yöntemleri ve üyeleri) kullanın.

    Android'e özgü interface AndroidComposeUiTest ve fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit), AndroidComposeTestRule'a benzer şekilde temel Etkinliğe erişim sağlamak için eklenir. Daha da fazla kontrol için kendiniz bir class AndroidComposeUiTestEnvironment örneği oluşturabilirsiniz.

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

    Bir ComposeTestRule testinden ComposeUiTest hedefine taşıma işlemi aşağıdaki gibi yapılabilir (Android örneği). Gönderen:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @get:Rule val rule = createComposeRule()
        @Test
        fun test() {
            rule.setContent {
                Text("Hello Compose!")
            }
            rule.onNodeWithText("Hello Compose!").assertExists()
        }
    }
    

    Şunları yapmak için:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @Test
        @OptIn(ExperimentalTestApi::class)
        fun test() = runComposeUiTest {
            setContent {
                Text("Hello Compose!")
            }
            onNodeWithText("Hello Compose!").assertExists()
        }
    }
    
  • Şimdilik ComposeContentTestRule ve ComposeTestRule ComposeUiTest dışında bir konumda değil. Bu nedenle, ComposeUiTest üzerindeki uzantı işlevleri henüz TestRule arayüzünde çağrılamaz. ComposeUiTest, kararlı API'ya geçiş yaptığında ComposeContentTestRule ve ComposeTestRule, ComposeUiTest yerine eklenecek. (Ib4e90)

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

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

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

  • LineHeightStyle öğesinden varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)

  • Gradyan renklerle metin çizebileceğiniz bir yöntem sağlamak için TextStyle ve SpanStyle öğelerine Brush eklendi. (I53869, b/187839528)

  • trimFirstLineTop, LineHeightBehavior öğesinin trimLastLineBottom özelliği tek bir numaralandırmaya dönüştürüldü: LineHeightTrim. LineHeightTrim, iki boole ile tanımlanan 4 durum değerine sahiptir: FirstLineTop, LastLineBottom, Her ikisi ve Yok (Ifc6a5, b/181155707)

  • LineHeightBehavior, TextStyle ve ParagraphStyle öğelerine eklendi. LineHeightBehavior, satır yüksekliğinin ilk satırın üstüne ve son satırın altına uygulanıp uygulanmayacağını kontrol eder. Ayrıca, TextStyle(lineHeight) tarafından sağlanan alandaki çizginin hizalamasını da tanımlar.

    Örneğin, CSS'nin LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) aracılığıyla tanımladığı duruma benzer bir davranış elde edilebilir.

  • trimFirstLineTop, trimLastLineBottom yapılandırmaları yalnızca includeFontPadding yanlış olduğunda düzgün çalışır. (I97332, b/181155707)

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

Hata Düzeltmeleri

  • PointerInputChange::copy dokümanlarında, bunun yüzeysel bir kopya olduğu artık doğru şekilde belirtiliyor. (I182f5)
  • Yükseklik sınırlı olduğunda ve tüm metin satırlarına uymadığında üç nokta desteği (Ie528c, b/168720622)
  • Varsayılan olarak includeFontPadding etkinleştirildi. TextStyle.platformTextStyle özelliğini kullanarak includeFontPadding öğesini devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak o zamana kadar, satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre etmemize ve TextField kırpma sorunlarını çözmemize olanak tanıyacağız. (I01423, b/171394808)

Harici Katkı

  • MouseInjectionScope.scroll(delta = someDelta), Android'de artık dikey olarak kaydırırsak ters çevrilmiş oluyor (someDelta pozitifse aşağı kaydırır) (Ifb697, b/224992993)

Sürüm 1.2.0-alpha08

20 Nisan 2022

androidx.compose.ui:ui-*:1.2.0-alpha08 yayınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.

API Değişiklikleri

  • pluralStringResource işlevleri, gelecekte daha iyi uluslararasılaştırmayı desteklemek üzere gelişmeye olanak tanımak için deneysel olarak işaretlenmişti. (If24e4)
  • Paragraf ve Çoklu Paragraf artık Kısıtlamalar parametresini kabul ediyor. Constraints.maxHeight öğesini geçirmek şu an için bir işlem değildir, ancak ileride yüksekliğe göre elipsleme gibi bazı hesaplamalar yapılabilir. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() artık yeni öğe eklemeye izin vermeyen özel MutableSet benzeri özel sınıfı kabul ediyor. (Icd314)
  • PointerIcon artık @Stable arayüzü (I9dafe) oldu
  • Kısmi tüketim (düşüş VEYA konum) PointerInputChange içinde kullanımdan kaldırıldı. Değişiklikten tamamen yararlanmak için consume() öğesini kullanabilirsiniz. Başka birinin değişikliği daha önce kullanıp kullanmadığını belirlemek için isConsumed kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturuyor. Bu, kopyalardan biri tüketildiğinde PointerInputChange kopyalarının kullanılacağı anlamına gelir. Bağlantısız bir PointerInputChange oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)
  • Oluştur ve Görünüm arasında, Oluştur > Görüntüle yönünde İç İçe Kaydırılan birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturan bir üst öğenin iç içe yerleştirilmiş bir kaydırma görünümünden iç içe yerleştirilmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
  • Compose'un View sistemi için tasarlanan UIAutomator testlerine uymasını sağlamak için kullanılabilecek yeni SemanticsProperty testTagsAsResourceId. (I39c20)
  • FontFamily.SansSerif özelliğini kullanırken Android'de sistem yazı tipleri için mevcut tüm ağırlıkları görüntüleyin. API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adları kullanılır. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları desteklendiğinden bu bir davranış değişikliğidir. (I380fe, b/156048036, b/226441992)
  • Paragraf ve Çok paragraflı eğitmenleri, konum bağımsız değişkenlerini isteğe bağlı bağımsız değişkenlerden önce olacak şekilde yeniden sıraladı. (Idafaa)
  • AndroidFont artık typefaceLoader'ı kurucu parametresi olarak kullanıyor. (I2c971)

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.ui:ui-*:1.2.0-alpha07 yayınlandı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.

API Değişiklikleri

  • Yeni Snapshot.withoutReadObservation { ... } işlevi eklendi. Kullanıcıların bu blok sırasında okunan durum değerlerinde yapılan değişikliklere abone olmadan geçirilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak, ancak gereksiz yeniden oluşturma veya yeniden ölçüme neden olmadan değeri okuyabilmek istediğiniz kullanım durumlarında bu özellikten yararlanabilirsiniz. (I9f365, b/214054486)
  • ComposeView öğesinin consumeWindowInsets uzantı özelliği, geliştiricilerin Android WindowInsets kullanımını devre dışı bırakmasına olanak tanır. Böylece, birbirine müdahale etmeden her birinin WindowInsets uygulamasına hiyerarşide ayrı ComposeViews erişimi sağlanır. (I0ef08, b/220943142)
  • IME'ye özellikle ondalık ayırıcı eklemek için Keyboard.Number yerine alternatif olarak KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'lerdir (I574c5, b/225669674)
  • Görünüm sınıflarında birlikte çalışmak için Görünüm ve Oluşturma arasında İç İçe Kaydırma birlikte çalışabilirliği etkinleştirilir. Bu, oluşturma işleminin artık kaydırma deltalarını (birlikte çalışan) View üst öğesine gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
  • FontFamily.Resolver, sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için güncellendi (I6c1e7)
  • Font(AssetManager, String, ...) desteği sonlandırıldı, yerine Font(String, AssetManager, ...) kullanılacak. Bu deneysel bir API'dir. (I1c7a4)
  • Yazı tipi yedek zincirleri sırasında isteğe bağlı olarak sistem tarafından yüklenen yazı tiplerini aramak için yeni yazı tipi açıklayıcısı Font(DeviceFontFamilyName) ekleyin. (I30468, b/219754572)
  • TextStyle/ParagrafStyle'da includeFontPadding için geçici uyumluluk yapılandırması eklendi. includeFontPadding, TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) aracılığıyla değiştirilebilir. Bu, taşımayı etkinleştirmek için kullanılan geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808)
  • Hata ayıklama yardımı için GoogleFont.Provider.isAvailableOnDevice uzantısı ekleyin. (I64e31)
  • @ArrayRes ile kullanmak için GoogleFont.Provider oluşturucusunu ekleyin (Ic5ee1, b/225984280)
  • Compose GoogleFont artık Font(GoogleFont) olarak adlandırılıyor ancak API, aksi takdirde kararlı kalmaya devam edecek. (I125f2)

Hata Düzeltmeleri

  • İç dolgunun kullanıldığından emin olmak için malzemeye/Yönlendirici'ye lint kontrolü eklendi (Ifb111)

Sürüm 1.2.0-alpha06

23 Mart 2022

androidx.compose.ui:ui-*:1.2.0-alpha06 yayınlandı. Sürüm 1.2.0-alpha06 bu kayıtları içerir.

API Değişiklikleri

  • Odaklanabilir hedefe odaklanma isteği için RequestFocus semantik işlemi eklendi. (I17b71)
  • Geçerli düzen yönü RTL olduğunda VectorPainter öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çekilebilirlerinin ayrıştırılması güncellendi. (I79cd9, b/185760237)
  • Gölge/ortam renkleri, API uyumluluğu için sondaki Modifier.graphicsLayer parametreleri olacak şekilde güncellendi (I3f864, b/160665122)

  • Kesintisiz API değişiklikleri sağlamak için GraphicsLayerScope tarihinde gölge/ortam rengine varsayılan uygulamalar eklendi

  • RSB etkinliklerine (Ief8ae) etkinlik zamanı eklendi

  • FocusOrder artık FocusProperties olarak birleştirildi ve focusProperties() artık focusOrder() uygulamasının tüm özelliklerine sahip. FocusOrder ve focusOrder() desteği sonlandırıldı. focusRequester kabul eden focusOrder(), focusProperties() ile birlikte focusRequester() değiştiriciyle değiştirilmelidir. Bu, değiştiricilerin endişeleri daha iyi ayırmasını sağlar. (I601b7)

  • Hem RecyclerView hem de Compose yeni sürüme geçirildiğinde, Compose görünümlerinin alt öğe olarak kullanıldığı RecyclerView'lar için kaydırma performansı çok daha iyi olacaktır.

  • Yerleşik varsayılan stratejiyi alma yöntemi olarak ViewCompositionStrategy.Default ekleme

  • Yeni varsayılan strateji olan ve RecyclerView gibi havuz kapsayıcılarını düzgün işleyen ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer ekleyin. (If7282)

  • Çoklu önizleme özelliğini eklemenin ilk adımı olarak @Preview ile ek açıklama sınıflarına ek açıklama ekleme desteği eklendi. Bu tür ek açıklamalar, Composable yöntemlere veya diğer ek açıklama sınıflarına ek açıklama eklemek için kullanılabilir. Böylece bu ek açıklama sınıfları, belirtilen @Preview ile dolaylı olarak açıklanmış olarak değerlendirilebilir. (I12eff)

  • @Preview için Cihazlar listesine eklenen referans cihazlar (I071c9)

Hata Düzeltmeleri

  • Vektör grafik API'ları, @UiComposable (I942bc) yerine uygun composable @VectorComposable ek açıklamasını kullanacak şekilde güncellendi
  • AnnotatedString.Builder.withStyle öğesinden çapraz satırı kaldır (If84d5)

Harici Katkı

  • create-ui: GraphicsLayerScope için ambientShadowColor ve spotShadowColor özelliklerini ekle (I1ba1a, b/160665122)
  • Çoğul kaynaklar artık pluralStringResource işlevleriyle desteklenmektedir. (Ib2f23, b/191375123)

Sürüm 1.2.0-alpha05

9 Mart 2022

androidx.compose.ui:ui-*:1.2.0-alpha05 yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

  • TextToolbar artık ActionCallback yerine lambda bağımsız değişkenlerini kabul ediyor. (Ib2eb9, b/197950089)
  • Core ve appcompat içindeki null değer, Tiramisu DP2'yle (I0cbb7) eşleşecek şekilde güncellendi
  • Ölçülen arayüz artık parentData özelliğini (I3313f) gösteriyor
  • Modifier.onPlaced ve OnPlacedModifier arayüzü artık kararlı. (Ib5482)
  • Harika! Animasyon oluşturma artık Geliştirici Seçenekleri'ndeki "Animatör süre ölçeği" ayarını destekliyor. (I5a4fc, b/161675988)
  • Yerel bir BeyondBoundsLayout değiştiricisi eklendi (If8b51, b/184670295)
  • Metin: includeFontPadding artık varsayılan olarak devre dışıdır. includeFontPadding=false sonucunda ortaya çıkan kırpma sorunları işlenir ve uzun komut dosyaları için kırpma işlemi yapılmaz. (I31c84, b/171394808)

Hata Düzeltmeleri

  • Zaten bir içerik varken içerik ayarlamayı denerseniz ComposeContentTestRule.setContent şimdi bir IllegalStateException atar. (I888a5, b/199631334)
  • Android'de panodan okuma sırasında pano içeriğinin neden kilitlenmesi düzeltildi. (I06020, b/197769306)
  • RSB kaydırma örneklerini iyileştirin. (I6a596)

Harici Katkı

  • Kotlinx eş 1.6.0 (I3366d) sürümünü kullanacak şekilde güncellendi

Sürüm 1.2.0-alpha04

23 Şubat 2022

androidx.compose.ui:ui-*:1.2.0-alpha04 yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Bir composable işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleyen çağrıldığında derleme zamanı raporlamasını sağlayan ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget eklendi.

    Çoğu durumda ek açıklamalar, oluşturucu derleyici eklentisi tarafından tahmin edilebilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadir bir durumdur. Çıkarım yapılamayan durumlar arasında özel uygulayıcı, soyut composable işlevleri (arayüz yöntemleri gibi), alanlar veya composable lambda olan genel değişkenler (yerel değişkenler ve parametreler çıkarım yapılır) oluşturup kullanmak veya ComposeNode ya da ilgili composable işlevleri kullanmak yer alır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran composable işlevlerin, işlev ve tümcomposable lambda parametre türleri için ComposableTarget ek açıklaması eklemesi gerekir. Bununla birlikte, ComposableTargetMarker ek açıklaması içeren bir ek açıklama oluşturmanız ve daha sonra, işaretli ek açıklamanın doğrudan ComposableTarget yerine kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir composable ek açıklama, applier parametresi olarak özellik sınıfının tam adına sahip ComposbleTarget özelliğine eşdeğerdir. ComposableTargetMarker kullanımına ilişkin örnek için anroidx.compose.ui.UiComposable sayfasını inceleyin. (I38f11)

  • Font(resId, ...) artık kararlı API'de yükleme stratejisini kullanıyor. (Ief3d2)

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

  • Metin olarak eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)

  • Özel Font.ResourceLoader öğesini FontFamily.Resolver biçimine dönüştürmek için Bridge API'sini ekleyin. (Ia0060)

Hata Düzeltmeleri

  • Sağlanan FontFamily.Resolver, Pop-up gibi alt kompozisyonlara aktarılır.
  • Sağlanan Font.ResourceLoader, Pop-up gibi alt kompozisyonlara aktarılır. (I48fa5)

Sürüm 1.2.0-alpha03

9 Şubat 2022

androidx.compose.ui:ui-*:1.2.0-alpha03 yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.

API Değişiklikleri

  • TextInputSession ve TextInputService uygulamalarındaki notifyFocusedRect yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerine BringIntoViewRequester kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)
  • RenderNode saplama sınıfında (I1e659, b/216660268) destroyDisplayListData yöntemi kullanıma sunuldu
  • Önceden oluşturduğunuz SubcomposeLayout alt öğelerini önceden ölçmenizi sağlayan yeni bir API eklendi. (I857ea)
  • Oluşturulabilir bir lambdayı, durumunu hareket ettiren bir lambdaya ve karşılık gelen düğümleri çağrıldığı yeni konuma dönüştüren movableContentOf eklendi. Önceki çağrı besteden çıktığında durum geçici olarak korunur ve lambda'ya yeni bir çağrı besteye girerse durum ve ilişkili düğümler yeni çağrının konumuna taşınır. Yeni çağrı eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.

    Bir movableContentOf lambda aynı bileşimde birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Ayrıca, çağrılar besteden ayrıldıkça ve yeni çağrılar girdikçe durum, ilk ayrılan çağrılardan gelen çağrılara çağrıldıkları sırada taşınır. Yeni çağrılar tarafından talep edilmeyen tüm eyaletler kalıcı olarak kaldırılır. (Ib4850)

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

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

  • Artık Paragraf ve MultiParagraf, FontFamily.Resolver kullanıyor

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

  • Yedek davranışla birlikte eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text and TextField tarafından kullanılır ve FontFamilyResolver aracılığıyla gösterilir

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

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

  • Android'de yeni türlerde yazı tipi kaynağı tanımlayıcıları sağlayan alt düzey yeni bir API olan AndroidFont eklendi. Örneğin, uygulamaya özel bir arka uçtan yazı tipi yükleme, isteğe bağlı olarak cihazda önceden yüklenmiş yazı tiplerini bulma veya mevcut Yazı tipi fabrikaları tarafından sağlanmayan bir kaynaktan yazı tipi yükleme.

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

  • Font.AndroidResourceLoader uzantı işlevi, kompozisyonun dışındayken bir Font.ResourceLoader oluşturulmasına izin verir.

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

  • Typeface(FontFamily) oluşturucu kullanımdan kaldırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. İndirilebilir yazı tiplerinde bu çağrı 10 saniye süreyle engellenebilir. Bunun yerine FontFamilyResolver.preload kullanın.

  • fontResource(FontFamily): Typeface desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. Bunun yerine FontFamilyResolver.preload kullanın (If8e7c, b/174162090)

  • maxSlotsToRetainForReuse kabul eden SubcomposeLayoutState oluşturucunun desteği sonlandırıldı. Bunun yerine SubcomposeSlotReusePolicy özelliğini kabul eden yeni bir oluşturucu vardır. Bu yeni arayüz, hangi alanların gelecekte yeniden kullanılmak üzere saklanacağı konusunda daha ayrıntılı kontrole olanak tanıyan yeni bir arayüzdür. (I52c4d)

  • Color ürününde HSV ve HSL işlevini, deneysel olmayan API olarak sunar. Oklab renk alanı artık herkese açık bir API. (I08fb6, b/180731008)

  • Herkese açık API'ye sunulmaması amaçlanan ve sizin için herhangi bir fayda sağlamadığı AndroidComposeTestRule.AndroidComposeStatement desteği sonlandırıldı. (Ibc46b)

  • Oluşturulan dahili kt sınıfı yeniden adlandırması (Ia0b9e, b/174162090)

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

  • Genel yazı tipi yükleyicisinin adı FontFamilyResolver olarak değiştirildi. (I4f773, b/174162090)

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

  • FontFamily.Resolver.resolve, State<Any> değerini döndürür (I4406c, b/174162090)

Hata Düzeltmeleri

  • Metin Alanları artık odaklanıldığında ve yumuşak giriş modu ADJUST_PAN olduğunda klavye gösterildiğinde klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120)
  • Masaüstü, FontFamily.Resolver için yerel besteyi kullanıyor
  • Masaüstü FontLoader desteği sonlandırıldı
  • Masaüstünde yeni createFontFamilyResolver fabrikası (I6bbbb, b/174162090)
  • Metin alanları arasında odak değiştirildiğinde, sanal klavye giriş türü artık titremiyor. (I1bf50, b/187746439)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.compose.ui:ui-*:1.2.0-alpha02 yayınlandı. Sürüm 1.2.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • Yan düğmeli dönen Wear cihazları için Modifier.onRotaryScrollEvent() ve Modifier.onPreRotaryScrollEvent() eklendi (I18bf5, b/210748686)
  • Deneysel View.createLifecycleAwareRecomposer uzantısı (I0cde6) ekleyin

Harici Katkı

  • PointerEvent.scrollDelta.y artık Android'de ters çevrilmiş (artık fare tekerleğini sağa doğru yatırırsak -1 yerine 1 döndürüyor) (Ia9811)

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.ui:ui-*:1.2.0-alpha01 yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • FontFamily.canLoadSynchronously desteği sonlandırıldı. Bu özelliğin semantik anlamı yok. (Ica5ef)
  • Düzen İnceleyici'de sabit kimlikler oluşturmak için CompositionData öğesine kimlik alanı eklendi. (Ic116e)
  • Wear OS cihaz kimlikleri Cihaz önizleme listesine eklendi (I93232)

Bağımlılık Güncellemeleri

  • Artık Kotlin 1.6.10 hizmetini kullanabilirsiniz.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

androidx.compose.ui:ui-*:1.1.1 yayınlandı. 1.1.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList adresindeki NullPointerException sorununu düzeltin (aosp/1947059, b/206677462)
  • Android'de panodan okuma sırasında pano içeriğinin neden kilitlenmesi düzeltildi. (I06020, b/197769306)
  • LazyVerticalGrid içinde sabit RTL (aosp/1931080, b/207510535)

Sürüm 1.1.0

9 Şubat 2022

androidx.compose.ui:ui-*:1.1.0 yayınlandı. 1.1.0 sürümü bu kayıtları içerir.

1.0.0'dan sonraki önemli değişiklikler

  • Android 12 Fazla kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmasıyla ilgili iyileştirmeler
    • Compose 1.0'da Material bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılayacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olarak ayarlasanız bile Düğme dokunma hedefi minimum 48x48 dp boyuta genişler. Bu işlem, Compose Materyalini Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ve Oluşturma öğelerini birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
  • Navigasyon Rail için Kararlı Destek
  • Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir
  • Kotlin'in yeni sürümleri için destek

Sürüm 1.1.0-rc03

26 Ocak 2022

androidx.compose.ui:ui-*:1.1.0-rc03 yayınlandı. 1.1.0-rc03 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Compose Material 1.1.0-rc03 sürümünü desteklemek için güncellendi

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-rc01 yayınlandı. 1.1.0-rc01 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
  • HardwareRenderer.isDrawingEnabled() false ise SemanticsNodeInteraction.captureToImage() artık görüşme süresince (Idf3d0) etkinleştirilirse çalışır

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-beta04 yayınlandı. 1.1.0-beta04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi

API Değişiklikleri

  • androidx.core.view içindeki boş değer temizlendi (I7078a, b/204917439)
  • Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya tüketilip tüketilmediğini kontrol etmesine olanak tanıyan deneysel API'lar eklendi. (I2e59d)
  • Kullanıcı arayüzü katmanına fare kaydırma tekerleği etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
  • Eşitlik açısından karşılaştırmak için anahtarları kabul eden ve atlama optimizasyonlarına uygun olan deneysel Modifier.composed aşırı yüklemeleri ekleyin. (Buz799, b/205851704)
  • ComposeNotIdleException artık doğrudan Throwable yerine Exception değerinden uzanıyor. Bunun, Exception yakalayan yakalama ifadelerinin artık ComposeNotIdleException öğelerini yakalayabileceği ancak önceden bunu yapamayacakları anlamına geldiğini unutmayın. (I9c217)

Hata Düzeltmeleri

  • IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerlerini düzeltin. (I25f2e)

Sürüm 1.1.0-beta03

17 Kasım 2021

androidx.compose.ui:ui-*:1.1.0-beta03 yayınlandı. 1.1.0-beta03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Yerleşim değişikliğinin gözlemlenmesine olanak tanımak için yeni Modifier.onPlaced değiştiricisi eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine göre alt değiştiriciye ait ofsette ek değişiklikler yapılabilir. (I558fd)
  • InjectionScope.flush() ve InjectionScope.dispose() kaldırıldı. Tüm etkinliklerin temizlenmesi ve kapsamın ortadan kaldırılması, daha önce olduğu gibi artık performans*Input() yönteminin sonunda gerçekleştiriliyor. (I2bed8)
  • MultiModalInjectionScope.Touch ve MultiModalInjectionScope.Mouse kaldırıldı. Çok modlu hareketlerde dokunma ve fare etkinliklerini eklemek için artık MultiModalInjectionScope.touch() ve MultiModalInjectionScope.mouse() kullanabilirsiniz. Bunların her ikisi de, söz konusu modun alıcı kapsamına sahip olan lambdaları kabul eder. (Idde18)

Hata Düzeltmeleri

  • TouchInjectionScope.swipeWithVelocity öğesindeki durationMillis için varsayılan değer, kaydırma işleminin uygun olacağı şekilde hesaplanmıştır. (I19deb)

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.compose.ui:ui-*:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Ebeveynlere, bir öğeyi görünüme getirmek için kaydırma isteği göndermenizi sağlayan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
  • Araçları destekleyen yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler içinde incelemesine olanak tanır. (I4116e)

Harici Katkı

  • Modifier.pointerHoverIcon eklendi (I95f01)

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.ui:ui-*:1.1.0-beta01 yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Ebeveynlere, bir öğeyi görünür hale getirmek için kaydırma isteği göndermenizi sağlayan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459)
  • Araçları destekleyen yeni animasyon API'leri. Özellikle, araçların animasyonları ve yapılandırmalarını Geçişler içinde incelemesine olanak tanır. (I4116e)

Sürüm 1.1.0-alpha06

13 Ekim 2021

androidx.compose.ui:ui-*:1.1.0-alpha06 yayınlandı. 1.1.0-alpha06 sürümü bu kayıtları içerir.

API Değişiklikleri

  • ExperimentalComposeUiApi özelliğini ViewRootForInspector ve LayoutInfo.ownerViewId alanlarından kaldırın (I5c2e3)
  • Layout için iyileştirilmiş verimlilikle çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
  • Modüller arası olarak çağrılması gereken Composer yöntemlerinden InternalCompilerApi kaldırıldı (I1aa0b)
  • SemanticsNodeInteraction.performSemanticsAction şimdi işlevin çağrıldığı SemanticsNodeInteraction değerini döndürüyor. (I9e5db)
  • TouchMode/NonTouchMode'u algılamak için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
  • Tüketicilerin, uzun süreli zaman aşımı gibi konularda doğru değeri alabilmelerini sağlamak için LayoutInfo öğesine viewConfiguration: ViewConfiguration eklendi. (I76ca6)
    • Testlerin giriş yerleştirmeyi uzun basma zaman aşımı veya dokunma eğimi gibi öğelere göre ayarlamasına olanak tanımak için viewConfiguration: ViewConfiguration işlevi InjectionScope eklendi.
    • Hem dokunma hem de fare girişi için varsayılan uzun basma ve iki kez dokunma süresi InjectionScope.viewConfiguration değerindeki değerlere dayalı olacak şekilde değiştirildi.
  • içinde TextField ve DropdownMenü bulunan ExposedDropdownMenüBox'a dayalı ExposedDropdownMenü'nün (If60b2) uygulanması
  • PopupProperties'e dismissOnOutsideClick, kullanımdan kaldırılan dismissOnClickOutside öğesinin yerine eklendi. Yeni özellik, tıklama konumunu ve bağlayıcı sınırlarını alarak onDismissRequest'in çağrılıp çağrılmaması gerektiği üzerinde daha ayrıntılı kontrol sağlar. Örneğin bu, sabite yapılan dokunmalar için bağlayıcının kapatılmasını önlemek açısından yararlı olabilir.
    • GüncellemeAndroidWindowManagerFlags, PopupProperties'e eklendi ve pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde alt düzey denetim olanağı sundu. Lambda parametresi, WindowManager flag'lerini sağlayan PopupProperties değerlerinden hesaplanan işaretler olacaktır: ör. odaklanılabilir. Lambda'nın sonucu, Android WindowManager'a aktarılacak son işaretler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmez. Bu API, yalnızca pop-up'ın çok belirli davranış gereksinimleri olduğu durumlarda dikkatli kullanılmalıdır. (I6e9f9)
  • Recomposer.state kullanımdan kaldırıldı ve türünü StateFlow (Ic2ab3, b/197773820) olarak değiştirmek için Recomposer.currentState ile değiştirildi
  • flush() ve dispose(), InjectionScope koleksiyonuna eklendi. Bunları, sıraya alınmış tüm etkinlikleri hemen temizlemek istediğinizde ve sırasıyla kapsamı kaldırmak istediğinizde kullanın. (Ifb73a)
  • Belirli bir eşleştirici ile eşleşen içeriğe kaydırılabilir bir kapsayıcıyı kaydıran performScrollToNode(matcher: SemanticsMatcher) eklendi. (Ic1cb8)
  • InjectionScope artık Density kullanıyor. Bu sayede performTouchInput ve arkadaşlarınızda px ile dp arasında kolayca dönüşüm yapabilirsiniz. (I8fe1f)

Hata Düzeltmeleri

  • AndroidView artık LocalLifecycleOwner ve LocalSavedStateRegistryOwner öğelerini, ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner aracılığıyla kendi görünümüne yayar. (I38f96, b/179708470)
  • WearOS ScrollToDismissBox bazen kaydırma işlemlerini yapamama sorunu düzeltildi. (I9387e)
  • Yerleştirilen giriş etkinlikleri arasındaki varsayılan süre 10 ms'den 16 ms'ye değiştirildi. Bu durum, belirli bir kaydırma gibi giriş hareketlerini gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)

Sürüm 1.1.0-alpha05

29 Eylül 2021

androidx.compose.ui:ui-*:1.1.0-alpha05 yayınlandı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.

API Değişiklikleri

  • Değiştirici iletişim için ek destek (Id5467, b/198826874)
  • PointerEventChange'e deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
  • density: Density ve layoutDirection: LayoutDirection, LayoutInfo koleksiyonuna eklendi. Bu, LayoutInfo tüketicilerinin LayoutInfo konumunda gösterilen boyutları ve konumu doğru bir şekilde yorumlamasına olanak tanır. (I002f1)
  • Fare etkinlikleri eklemek için deneysel destek eklendi. Fare etkinlikleri göndermeye başlamak için performMouseInput kullanın veya performMultiModalInput ile çok kalıcı giriş hareketi sırasında MultiModalInjectionScope öğesinin Mouse özelliği aracılığıyla fare etkinlikleri gönderin. Kullanılabilir API belgeleri için MouseInjectionScope sayfasına göz atın. (Iaa4a8, b/190493367)

Hata Düzeltmeleri

  • Kaydırılabilir öğeler (hem geç hem tembel olmayan) için kaydırma ile ilgili sabit erişilebilirlik desteği (I6cdb0)
  • TouchInjectionScope.swipeWithVelocity iyileştirildi. Bu özellik artık daha çeşitli giriş değişkenlerini kabul ediyor ve kaydırma işlemi oluşturulamıyorsa girişte değişiklik yapılmasını öneriyor (I40fbe, b/182477143).

Sürüm 1.1.0-alpha04

15 Eylül 2021

androidx.compose.ui:ui-*:1.1.0-alpha04 yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • PointerEvent, fareyle üzerine gelme etkinliklerini desteklemek için artık bir PointerEventType özelliğine sahip. (I091fa)
  • Çocukların, ebeveynin işaretçi giriş sınırları dışında işaretçi girişini kabul etmesine izin verin. Üst yayıncılar, bu çağrılara PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655) mülküyle müdahale edebilir.
  • performTouchInput ve TouchInjectionScope ile değiştirilen performGesture ve GestureScope kullanımdan kaldırıldı. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin minimum erişilebilirlik değerlerini karşılamasını sağlayabilmek için SemanticsNode öğesine, minimum dokunma hedefi boyutunu içeren touchBoundsInRoot eklendi. (I2e14b, b/197751214)
  • İncelenebilir öğesinin uygulamasını yeniden yap (I927bc, b/191017532)
  • Inspectable parametre adı, oluşturulan ile eşleşecek şekilde değiştirildi (I3a482, b/191017532)
  • Diğer yöntemlerin (fare gibi) önünü açmak için performTouchInput ve TouchInjectionScope'in yerine geçen performTouchInput ve TouchInjectionScope kullanıma sunuldu.

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

    TouchInjectionScope, iki küçük ayrıntıyla birlikte GestureScope ile neredeyse aynıdır:

    1. Bir taşıma etkinliği gönderilmeden işaretçiler taşınırken aşağı etkinlik gönderildiğinde (yani updatePointerTo() kullanıldı ancak move() değil ve down() çağrıldı) önceki uygulama, etkinlik zamanını ilerletir ve aşağı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu spesifik senaryoda etkinlik zamanını ilerletmez.
    2. Bir taşıma etkinliği göndermeden işaretçiler taşınırken bir yukarı etkinlik gönderirken (yukarıdakine benzer şekilde), önceki uygulama etkinlik zamanını ilerletir ve yukarı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulamada bunların ikisi de yoktur: İşaretçilerin yeni konumları yalnızca yukarı etkinliği üzerinden yansıtılır.

    Son olarak TouchInjectionScope, verilen işaretçinin mevcut konumunu elde etmek için yeni bir currentPosition(pointerId: Int) yöntemini kullanıma sunar. (If1191, b/190493367)

Hata Düzeltmeleri

  • Klibin, minimum dokunma hedefi amaçları için dokunma hedefi sınırlarını klip bölgesinin dışına genişletmesine izin verin. (I43e10, b/171509422)
  • Android 12 cihazlarda esneme fazla kaydırma desteği eklendi. (Iccf3c, b/171682480)

Sürüm 1.1.0-alpha03

1 Eylül 2021

androidx.compose.ui:ui-*:1.1.0-alpha03 yayınlandı. Sürüm 1.1.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • 1.1.0-alpha03 oluşturma işlemi, Kotlin 1.5.30 biçimini temel alacak şekilde güncellendi. (I74545)

API Değişiklikleri

  • Diğer değiştiricilerin sarmalanması için Modifier.inspectable eklendi. (I1909b, b/191017532)
  • Bulanıklaştırmanın kullanım alanlarını basitleştirmek için klip işaretleri ve TileMode'ların daha yaygın kullanılan kombinasyonları olacak şekilde BlurredEdgeTreatment API'si eklendi. Çoğu kullanım alanı, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına izin verilmesi ve bu sınırların dışındaki alanların şeffaf siyah renkle bulanıklaştırılması ya da içeriğin içerik sınırlarının dışına çıkan bulanıklık çekirdekleri için en yakın kenardan örnek alınarak içerik sınırlarından kesilmesidir. (I6b4b7, b/166927547)
  • Oluşturma masaüstünde RenderEffect için destek eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklaştırma görsel efektlerinin basit bir şekilde eklenmesi için OffsetEct ve bulanıklaştırma değiştiricisi kullanıma sunuldu. (I0f6aa, b/166927547)
  • Katmanın içeriğini değiştirmek için isteğe bağlı olarak Modifier.graphicsLayer üzerinde yapılandırılabilen RenderEffect API'yi kullanıma sunduk. Bu özellik, bir beste hiyerarşisindeki composable ve alt composable'ların içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547)
  • AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() öğelerini içeriyor (I507f0, b/179239764, b/182397793)
  • Erişilebilirlik sağlamak amacıyla anlambilimde ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
  • Bulanıklaştırma tabanlı OluşturmaEfektleri için uç davranışını tanımlamada yararlı olan TileMode.Decal desteğini ekleyin. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction ve hasScrollToKeyAction artık kararlı API (I142ae, b/178483889)
  • Kesilen sınırları almak için test yöntemi eklendi. (I6b28e)

Hata Düzeltmeleri

  • Şekil parametresinin null olup olmadığını açıkça kontrol etmek için isBounded yöntemi bulanıklaştırma işleminden kaldırıldı. (I85d68)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.ui:ui-*:1.1.0-alpha02 yayınlandı. Sürüm 1.1.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
  • Eklenen hareketler artık zaman için bilgi kaynağı olarak MainTestClock'ın zamanını kullanıyor. performGesture işlevine eklenen etkinliklerin geçerli zamanı, MainTestClock'ın geçerli zamanına başlatılır. (Ifb364, b/192064452)
  • DpRect(DpOffset, DpSize) kurucusu eklendi (I2cf16, b/194219828)
  • DpSize sınıfı eklendi (I7abb1, b/194219828)

Hata Düzeltmeleri

  • VectorDrawables'da kök renk tonu özellikleri olarak ColorStateLists özelliğini desteklemek için Vector grafikleri xml ayrıştırması güncellendi. (I86915, b/195668138)

Sürüm 1.1.0-alpha01

4 Ağustos 2021

androidx.compose.ui:ui-*:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

API Değişiklikleri

  • RelocationRequester.bringIntoView, artık bir composable'ın bir bölümünü görünüme getirmemize olanak tanıyan bir dikdörtgeni parametre olarak kabul ediyor (Ice2c5, b/194330245)
  • AnimatedImageVector ve ilgili API'ler artık yeni androidx.compose.animation:animation-graphics modülünde. (I60873)
  • Konum değiştirme isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
  • ColorPainter'a benzer şekilde, Painter içinde rastgele bir fırçanın çizilmesini desteklemek için BrushPainter API'yi kullanıma aldı

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

  • İsteğe bağlı bir filterQuality parametresini kullanmak için kaynak ve hedef dikdörtgenlerini tüketen güncellenmiş DrawScope#drawImage yöntemi. Bu özellik, piksel tabanlı sanat için ölçeklendirildiğinde pikselleştirilmesi amaçlanan piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı birFilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607)

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

Hata Düzeltmeleri

  • Çizim değiştiricilerinin zincirlenmesini daha iyi desteklemek için Modifier.paint uygulamasınındrawsContent çağrılarını sağladığından emin olun. Daha önce Modifier.paint'in Değiştiriciler zincirindeki bir yaprak düğüme eklenmesi bekleniyordu, ancak bunu yaparak bir composable container'da (ör. kutu) yapılandırılmasını veya üzerine Modifier.paint().border() gibi ek süslemelerin eklenmesini engelliyordu. Belirtilen resmin içeriklerini çizdikten sonra Modifier.paint'indrawContent çağrısını yaparak, değiştirici kalıbıyla davranışta daha iyi bir davranış tutarlılığı elde ederiz. (Ibb2a7, b/178201337, b/186213275)
  • İletişim kutuları artık platform boyutlandırma davranışını takip etmektedir. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth değerini false (yanlış) olarak ayarlayın. (Iffaed, b/192682388)
  • InfiniteAnimationPolicy dosyası :compose:ui konumuna taşındı (I5eb09, b/160602714)
  • Geç listeler ve normal kaydırma bileşenleri için anlamsal işlemler aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)

Sürüm 1.0

Sürüm 1.0.5

3 Kasım 2021

androidx.compose.ui:ui-*:1.0.5 yayınlandı. 1.0.5 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • türvedStateOf örneklerinin kilitlenmesini izlemeyle ilgili bir sorun düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

androidx.compose.ui:ui-*:1.0.4 yayınlandı. 1.0.4 sürümü bu kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.31 temel alınarak güncellendi

Sürüm 1.0.3

29 Eylül 2021

androidx.compose.ui:ui-*:1.0.3 yayınlandı. 1.0.3 sürümü bu kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.30 temel alınarak güncellendi

Sürüm 1.0.2

1 Eylül 2021

androidx.compose.ui:ui-*:1.0.2 yayınlandı. 1.0.2 sürümü bu kayıtları içerir.

Compose 1.0.2 sürümünü desteklemek için güncellendi. 1.0.2 oluşturma işlemi, Kotlin 1.5.21 ile hâlâ uyumlu.

Sürüm 1.0.1

4 Ağustos 2021

androidx.compose.ui:ui-*:1.0.1 yayınlandı. 1.0.1 sürümü bu kayıtları içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.21 temel alınarak güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0 yayınlandı. 1.0.0 sürümü bu kayıtları içerir.

1.0.0'ın temel özellikleri

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

Bilinen Sorunlar

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

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

    Sorunu düzeltmek için build.gradle dosyanızda minSdkVersion değerini geçici olarak 24+ sürümüne yükseltin. Bu sorun, Android Studio Bumblebee ve AGP 7.1 sürümünün bir sonraki sürümünde düzeltilecektir. (b/194289155)

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0-rc02 yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • İletişim kutuları artık platform boyutlandırma davranışını takip etmektedir. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth değerini false (yanlış) olarak ayarlayın. (Iffaed, b/192682388)

Sürüm 1.0.0-rc01

1 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Kullanıcı arayüzü araçları modülünü ui-tooling ve ui-tooling-preview olarak bölün (Iefa28, b/190649014)

API Değişiklikleri

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

Davranış Değişiklikleri

  • Compose @Preview artık ilgili sahibin mevcut olmasına bağlı olan rememberLauncherForActivityResult() gibi API'leri kullanan composable'ları önizlemenize olanak tanıyan bir LocalActivityResultRegistryOwner sağlıyor. (Ib13d1, b/185693006)
  • Compose @Preview artık BackHandler gibi API'leri kullanan composable'ları önizlemenize olanak tanıyan ve mevcut sahibin mevcut olmasına bağlı olan bir LocalOnBackPressedDispatcherOwner sağlıyor. (Ia1c05, b/185693006)

Hata Düzeltmeleri

  • InfiniteAnimationPolicy, androidx.compose.ui:ui klasörüne taşındı (I5eb09, b/160602714)
  • AnimasyonluImageVector, modül yapısını değiştirmek için geçici olarak kaldırıldı. (I41906, b/160602714)

Sürüm 1.0.0-beta09

16 Haziran 2021

androidx.compose.ui:ui-*:1.0.0-beta09 yayınlandı. 1.0.0-beta09 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Enum Rolü ve LiveRegionMode'u, özel oluşturucuyla (Id1890) satır içi sınıflara değiştirin
  • Büyük harf kullanımı, satır içi sınıfa dönüştürüldü. (Id5a1c)
  • HapticFeedbackType'ı satır içi sınıf olarak değiştirin. (I255ec)
  • Modifier.pointerInteropFilter: @DeneyselalComposeUiApi. (Iede6c)
  • Textalign, FontSynthesis ve TextDirection artık satır içi sınıflardır. (I212fe)
  • TextOverflow, satır içi sınıf olarak değiştirildi. (I433af)
  • FontStyle artık bir satır içi sınıf oldu. (I9e48b)

Hata Düzeltmeleri

  • Anahtar sabitleri şimdilik @DeneyselalComposeUiApi'dir. Kod tüketmek, sabitlemeden önce özel sabitleri bildirebilir. (Ia5d48)
  • Oluşturma testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tanımlanmıştır:
    • Yerel bit eşlem yoktur. Dolayısıyla ImageBitmap(), NullPointerException'a yol açar.
    • Çizim olmadığından captureToImage() bir sonraki çekiliş kartını süresiz olarak bekler (yani kilitlenmeler yaşanır).
    • Yüklü yazı tipi olmadığı için metinler yanlış şekilde ölçülür. Tüm karakterlerin yaklaşık 20 piksel sabit yüksekliğinde ve 1 piksel genişliğindedir.
    • ComposeTestRule.waitUntil {}, beklerken ana iş parçacığını çalıştırmadığından, ComposeTestRule.mainClock.advanceTimeUntil {} ile aynı şekilde çalışır. Gelecekte daha fazla sınırlandırmanın tanımlanması bekleniyor. (I284fa)

Eklenmiş Profil Kuralları

Bu sürümde aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları eklenir:

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

Profil kuralları nedir?

  • Bir kitaplığa ilişkin profil kuralları, src/main veya eşdeğer dizinde bulunan baseline-prof.txt metin dosyasında belirtilir. Dosya, satır başına bir kural belirtir. Bu örnekte, bir kural kitaplıktaki yöntemler veya sınıflarla eşleştirme kalıbıdır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan, kullanıcılar tarafından okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

  • Bir yöntem kuralı aşağıdaki kalıba sahip olur:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Bir sınıf kuralı aşağıdaki kalıba sahip olur:

    <CLASS_DESCRIPTOR>
    
  • Burada <FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmemesi gerektiğini belirtmek için H, S ve P karakterlerinden bir veya daha fazlasını içerir.

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

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

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

Kurallar ne işe yarar?

  • H işaretine sahip bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini belirtir.

  • S işaretine sahip bir yöntem, bunun başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemi başlatma sırasında yorumlama maliyetinden kaçınmak için önceden derlenmesi gerektiğini belirtir.

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

  • Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetinden kaçınmak için yığında önceden ayrılması gerektiğini gösteriyor.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda, bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özel kompakt bir ikili program ART profili oluşturmak için kullanılır. Uygulama cihazlara yüklendiğinde ART, uygulamanın performansını özellikle ilk çalıştırmada iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla bu profilden yararlanabilir. Bu işlemin hata ayıklaması yapılabilir uygulamalar üzerinde etkisi olmayacağını unutmayın.

Sürüm 1.0.0-beta08

2 Haziran 2021

androidx.compose.ui:ui-*:1.0.0-beta08 yayınlandı. 1.0.0-beta08 sürümü bu kayıtları içerir.

API Değişiklikleri

  • NestedScrollSource sıralaması, bir satır içi sınıfla değiştirilir. (Ie321b, b/187055290)
  • FocusManager.clearFocus(forcedClear = true), FocusManager.clearFocus(force = true) (Ia0c41) olarak yeniden adlandırıldı
  • Yeni enum değerleri eklendiğinde kapsamlı ifadelerle ilgili sorunları önlemek için enum kullanımları satır içi sınıflarda yeniden düzenlendi. (I2b5eb)
  • @ExperimentalComposeUiApi, PopupProperties hesabından kaldırılsın mı? (I01fa6)
  • Sıralama olan PointerType, satır içi sınıf olarak değiştirildi (If5058)
  • ContentDescription ve Text semantics özellikleri artık tek değerler değil, listelerdir. Böylece birleştirme yapmak yerine, olduğu halde birleştirebilirsiniz. Ayrıca bu değişiklikleri kullanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
  • Modifier.focusModifier() desteği sonlandırılmış olup yerine Modifier.focusTarget() (I6c860) ile değiştirilmiştir
  • Modifier.onSizeChanged() ve Modifier.onGloballyPositioned() artık satır içi işlevler değil (I727f6, b/186109675)
  • KeyboardType sıralaması, bir satır içi sınıfla değiştirilir. (I73045, b/187055290)
  • FocusState sıralaması, FocusState arayüzüyle değiştirildi (Iccc1a, b/187055290)
  • ImeAction enum'un yerine bir satır içi sınıf getirildi. (I18be5, b/187055290)
  • PlaceholderVerticalAlign, satır içi sınıfa dönüştürülür. (If6290)
  • TextUnitType artık bir satır içi sınıftır. (I4cba9)
  • AnnotatedString.withAnnotation işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi'dir. (I0cd0a)
    • TextUnitType içeren TextUnit oluşturucu, artık ExperimentalComposeApi yerine DeneyselalTextApi olmuştur.

Hata Düzeltmeleri

  • Beta07'de kullanıma sunulan, LazyColumn/Satır öğelerinin kaydırmadan sonra kısmen gösterildiği hata düzeltildi (I8c9ac, b/188566058)
  • Artık detectDragGesures, detectVerticalGestures ve detectHorizontalGestures konum değişikliğini otomatik olarak kullanacak; onDrag geri çağırmalarında change.consumePositionChange çağrılmasına gerek yoktur (I42fc4, b/185096350, b/187320697)
  • Hizalama çizgileri sağlayan LayoutModifier'lar düzeltildi. Alt öğelerin hizalama çizgileri değiştirilirken üst öğenin yeniden ölçülememesine neden olan bir hata düzeltildi. (I4401f, b/174315652)
  • Modifier.onGloballyPositioned(), tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirmek için değiştirildi. Bu, artık değiştiricilerin sıralamasının, hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)

Sürüm 1.0.0-beta07

18 Mayıs 2021

androidx.compose.ui:ui-*:1.0.0-beta07 yayınlandı. 1.0.0-beta07 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Denetleyicide kullanılmak üzere ViewRootForInspector arayüzü eklendi (Ib70df)
  • SubcomposeLayoutState artık yeniden kullanılabilir slot sayısını ayarlamayı destekliyor. Düzen, bir dahaki sefere yeni bir yuvaya ihtiyacımız olduğunda (Ieb981) tekrar kullanmak için bu sayı aralıklarını atmak yerine etkin durumda tutar
  • KeyEventType numaralandırması, bir satır içi sınıfla değiştirilir. (Id670a, b/187055290)
  • FocusDirection sıralaması, bir satır içi sınıfla değiştirilir. (Ib6d03, b/187055290, b/184086802)
  • SubcomposeLayout durumunu kaldırabilme özelliğini sunar. Bu sayede içeriği slotId değerine önceden kombinlemenize olanak tanır. Bu sayede, bir dahaki sefer hiçbir kompozisyon gerekmeyeceğinde belirtilen slotId ile alt derlemeye çalıştığımızda bir sonraki önlemin geçişi daha hızlı yapılır. (I42580, b/184940225)
  • Klip Seçimi Tutma Yeri eklendi (Iff80d, b/183408447)
  • Layout Inspector desteği ile ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)

Hata Düzeltmeleri

  • LazyColumn/Row artık, daha önce aşağı kaydırılmış olsalar bile önceden görünür olan en fazla 2 öğeyi etkin (atılmayan) tutacak. Bu, kaydırma performansını iyileştiren yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt kompozisyonları yeniden kullanmasına olanak verir. (Ie5555)
  • AnnotatedString üzerindeki TextGeomerticTransform ve TextDecoration belirtildiği şekilde uygulanacaktır. (I61900, b/184760917)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.ui:ui-*:1.0.0-beta06 yayınlandı. 1.0.0-beta06 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Gezinme Hareketiyle Çakışmayı Çöz (I1145e)
  • @ComposeCompilerApi artık @RequiresOptIn değil (Iab690)
  • Koleksiyonun ve öğelerinin erişilebilirlik hizmetleri için işaretlenmesine olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
  • Dizine eklenmiş öğeler içeren bir listeyi belirli bir dizine sahip öğeye kaydırmak için SemanticsActions.ScrollToIndex ve anahtarlı öğeler içeren bir listedeki öğenin dizinini almak için SemanticsProperties.IndexForKey eklendi. Her iki işlem de LazyList tarafından uygulanır.
    • Bir listeyi belirtilen dizine kaydıran SemanticsNodeInteraction.performScrollToIndex ve listeyi belirtilen anahtara sahip öğeye kaydıran SemanticsNodeInteraction.performScrollToKey eklendi. (I4fe63, b/178483889, b/161584524)
  • ownerViewId, GraphicLayerInfo'ya eklendi (I19f62)
  • Öğeler, Dosya ve Dosya Açıklayıcı'daki yazı tiplerini yüklemek için Font() aşırı yüklemeleri eklendi (I5d382)
  • Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan error Erişilebilirlik API'si eklendi (I12997, b/180584804, b/182142737)
  • Öğeler, Dosya ve Dosya Açıklayıcı'daki yazı tiplerini yüklemek için Font() aşırı yükleme eklendi (I43007)
  • AnnotatedString, TextFieldValue.Saver içine kaydetme desteğini kaydetmektedir. addTtsAnnotation ve ek açıklama yardımcı program işlevleri AnnotatedString.Builder öğesine eklendi (I8cbdc, b/178446304)
  • TextUnit kurucu işlevi eklendi TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

Sürüm 1.0.0-beta05

21 Nisan 2021

androidx.compose.ui:ui-*:1.0.0-beta05 yayınlandı. 1.0.0-beta05 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Deneysel FocusManager.moveFocus(In) ve FocusManager.moveFocus(Out) eklendi (Ic5534, b/183746743)
  • Deneysel performTextInputSelection API'si eklendi (I2dcbb, b/178510628)
  • InputEventCallback arayüzü kullanımdan kaldırıldı. Arayüzün herkese açık herhangi bir API'de kullanımı mümkün değildi ve kod içinde kullanılmadı. (I34a02, b/184003208)
  • Kullanımdan kaldırılan TextLayoutResult/createTextLayoutResult işlevi. Bu, test için eklenmiş, kullanılmayan bir herkese açık işlevdir. İşlev, oluşturma metin API'ları için kullanılabilecek hiçbir şey yapmaz. Bu işlev artık kullanımdan kaldırılmıştır ve daha sonra kaldırılacaktır. (I80413)

Hata Düzeltmeleri

  • ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown erişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0)
  • ui-test-manifest veui-tooling-data içindeki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumlu.

Sürüm 1.0.0-beta04

7 Nisan 2021

androidx.compose.ui:ui-*:1.0.0-beta04 yayınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.

API Değişiklikleri

  • SoftwareKeyboardController sitesindeki hideSoftwareKeyboard ve showSoftwareKeyboard uygulamalarını sırasıyla hide() ve show() olarak yeniden adlandırın.
    • LocalYazılımKlavyeDenetleyicisi için tam CompositionLocal arayüzünü sağlayın. Bu arayüz, ayarlanmasına izin verin (özellikle testlerde kullanışlıdır) (I579a6)
  • LiveRegion Accessibility API eklendi. Düğüm canlı bölge olarak işaretlenirse erişilebilirlik hizmetleri kullanıcıyı değişiklikleri hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946).
  • TextOverflow.visible eklendi. (Ic8f89)

Hata Düzeltmeleri

  • Kenarlarda bulunan LazyColumn/LazyRow öğelerinin, hızlı kaydırmadan sonra yanlış konumlandırılmasıyla ilgili sorun düzeltildi (Ie4d13, b/183877420)
  • AndroidViewBinding artık AndroidViewBinding oluşturma hiyerarşisinden çıkarıldığında FragmentContainerView aracılığıyla şişirilen parçaları düzgün şekilde kaldırıyor. (Ib0248, b/179915946)
  • AndroidViewBinding, ComposeView öğeniz Fragment içindeyken FragmentContainerView aracılığıyla şişirilen parçaları artık doğru şekilde iç içe yerleştirerek bu parçaların durumunu kaydetme ve geri yükleme sorunlarını düzeltir. (I70eb0, b/179915946)
  • Oluşturma ViewBinding artık Fragment 1.3.2 öğesini kullanıyor ve yapılandırma değişikliklerinden sonra FragmentContainerView aracılığıyla şişirilen parçaları tutarlı şekilde gösteriyor. (I0743d, b/179915946)

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.ui:ui-*:1.0.0-beta03 yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • ComposeView'un ViewTree bağımlılıkları için ertelenmiş kontrol (I8dbbf, b/182466548)
  • GestureScope iç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 yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController beste yerel API'si eklendi. (I5951e, b/168778053)
  • TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController beste yerel API'si eklendi. (I84472, b/168778053)
  • Aşağıdaki SemanticsMatcher öğeleri kaldırıldı:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • Aşağıdaki SemanticsMatchers, @ExperimentalTestApi olarak işaretlendi:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (Ia600c)
  • Aşağıdaki SemanticsMatcher öğeleri eklendi:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (I2f502)

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımında kısıtlamalar uygula (I6aa29, b/174531520)
  • androidx.compose.ui:ui artık AppCompat veya Fragment'e bağlı değil. Uygulamanızda ComposeView'un yanı sıra Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3+ / Fragment 1.3 ve sonraki sürümleri kullandığınızdan emin olun. Bu sürümler, yaşam döngüsünü ve ComposeView için gereken kayıtlı durum sahiplerinin doğru şekilde ayarlanması için gereklidir. (I1d6fa, b/161814404)
  • Gezinme-oluşturma hedefinde kullanıldığında bozuk rememberSaveable { mutableStateOf(0) } sorununu düzeltme. (I1312b, b/180042685, b/180701630)
  • TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni LocalSoftwareKeyboardController beste yerel API'si eklendi. (I658b6, b/168778053)
  • ComposeRootRegistry öğesinin tearDownRegistry() öğesindeki nadir NoSuchElementException sorunu düzeltildi (Iddce1)

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.ui:ui-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.

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

API Değişiklikleri

  • onStart geri çağırma özelliği detectDragGestures grubuna eklendi (I67269, b/179995594)
  • Yerleşik özelliklere göre boyutlandırmayla ilgili değiştiriciler artık deneysel değildir. (I15744)
  • MeasureBlocks, eğlenceli bir arayüz haline gelen MeasurePolicy olarak yeniden adlandırıldı. Layout API'leri, MeasurePolicy kullanacak şekilde güncellendi veya basitleştirilmiştir. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi
    • Arayüzler, Etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
    • interactionState = remember { InteractionState() } öğesini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } işlevini kullanın.
    • Interaction.Pressed in interactionState yerine, EngagementSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmalısınız.
    • Karmaşık kullanım örneklerinde, Etkileşimlerin akışını gözlemlemek için EtkileşimKaynak.interactions'ı kullanabilirsiniz. Daha fazla bilgi için EngagementSource belgelerine ve örneklerine bakın.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • CompositionLocals'da AccessibilityManger arayüzü ve LocalAccessibilityManger'in eklenmesi (I53520)
  • Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı, locationInParent ve boundsInParent için özellik yerine işlevi kullanın (I580ed, b/169874631, b/175142755)
  • Temel türlerle değiştirilen typealias'lar:
    • ColorStop artık Pair<Float, Color>
    • SpanStyleRange artık `AnnotatedString.Range oldu
    • ParagraphStyleRange artık AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation artık AnnotatedString.Range<String>
    • (I8dd1a)
  • CoreTextField gibi alt düzey metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
  • Placeable, artık alt düzenin gerçekte ölçtüğü boyutu temsil eden measurementSize özelliğini gösterir. Bu boyut, ölçüm sınırlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
  • Erişilebilirlik amacıyla Sekme veya Radyo Düğmesi koleksiyonunu işaretlemeye olanak tanıyan seçim grubu değiştiricisi ekleyin (Ie5c29)
  • compositionLocalOf ve staticCompositionLocalOf için artık isteğe bağlı yerine defaultFactory zorunludur.

    Bu değişiklik, varsayılan fabrikanın sağlanmadığı, boş değerli olmayan türler için olası tür hatasını ortadan kaldırır. Önceden bu, null yapılamayan bir tür için boş referans sağlıyordu.

    Boş değer atanabilen türler için varsayılan fabrika ayarı olarak { null } değerini sağlayın.

    Makul bir varsayılan sağlanmadığı sürece, null yapılamayan türlere sahip yerel halkın kullanılması önerilmez. Makul bir varsayılan yoksa defaultFactory lambda bir istisna atmalıdır. Bununla birlikte, istisna uygulamak yerel tüketicilerin, tür sistemi tarafından zorunlu kılınmayan, sağlanan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)

  • Kullanıcı arayüzü modüllerinde desteği sonlandırılan yöntemler kaldırıldı (I646f6)

  • Boyut değiştiriciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)

  • Modifier.tapGestureFilter kaldırıldı. Bunun yerine Modifier.pointerInput { detectTapGestures(...) } politikasını kullanın. (I266ed, b/175294473)

  • işaretçi giriş sisteminden kısmi tüketim kaldırıldı. Kısmi tüketimin koordinasyonu için önerilen yöntem Modifier.nested Scroll'dur. (Ie9c9b)

  • Yön, temel paketine taşındı. VelocirtTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)

  • imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector tamamlayıcılarında uzantı işlevleridir. load{Image,Vector,Font}Resource işlev silindi. (I89130)

  • AnimationClockObservable ve alt sınıflar kaldırıldı. Animasyonlu Kayan öğe kaldırıldı. (Icde52, b/177457083)

  • Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı

    • Beste oluşturucu artık anahtar parametresi kabul etmediğinden kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey mülke dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • ComposableLambdaN, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • SnapshotFlow işlevi androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Buna artık gerek yoktur.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
    • Composer.collectKeySourceBilgileri kaldırıldı. Buna artık gerek yoktur.
    • isjoinedKey, birbirine katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
    • Çeşitli üst düzey API'ler taşındı ve farklı dosyalar halinde yeniden düzenlendi. Kotlin’in dosya sınıfı semantiği nedeniyle bu, ikili uyumluluğu keser ancak kaynak uyumluluğunu keser. Bu nedenle çoğu kullanıcı için sorun teşkil etmeyecektir.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent(),Compose:ui'den kaldırıldı. androidx.activity:activity-compose:1.3.0-alpha01 tarafından gönderileni kullanın. viewModel() ve LocalViewModelStoreOwner, generate:ui'den kaldırıldı. androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 alanındaki (I6f36b) olanları kullanın

  • Modifier.scrollable yeniden düzenlendi. Şimdi ScrollableController sınıfının yerine Scrollable arayüzünü kullanır (I4f5a5, b/174485541, b/175294473)

  • PointerInputModifier'ın sunduğu Customevens desteği kaldırıldı (I02707, b/175294473)

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

  • Daha önce kullanımdan kaldırılmış bazı API'ler silindi (Ice5da, b/178633932)

  • longPauseLanguageFilter ve doubleClickActionsFilter kaldırıldı. Değiştirici.pointerInput'u,detectTapHarekets (I2fedf, b/175294473) gibi yardımcı işlevlerle kullanın

  • String.format API'nin çeşitli toString yöntemlerindeki kullanımları, String.format'tan dahili olarak yararlanılmaması için yeniden düzenlendi. (Id1290)

  • dp onaylamaları kaldırıldı (I798d2)

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

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

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

  • Modifier.verticalKaydırma()/YAtayKaydırma() işlevindeki kaydırma konumu, artık Ints ile temsil edilir (I81298)

  • FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decays yerine askıya alma animasyonunun özelleştirilmesine izin veriliyor. (I02b86, b/175294473)

  • Tüm ImeAction geri çağırma işlevleri için aynı işlemi ayarlamaya yardımcı olacak bir yardımcı işlev eklendi (I63447, b/179226323)

  • Kısa bir süre içinde yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma özelliği tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)

  • FontSpan ve FontWeigthStyleSpan artık kullanılmamakta ve kaldırılmaktadır. (Ie5b56, b/177423444)

  • Aşağıdaki Material API değişiklikleri yapıldı:

    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
    • BackdropScaffold'daki parametreler, isteğe bağlı parametrelerden önce gelen zorunlu parametreler için API yönergelerine uygun olacak şekilde yeniden sıralandı.
    • BottomNavigasyonItem öğesindeki icon parametresi, selected ve onClick değerlerinin sonrasına taşındı.
    • BottomNavigasyonItem parametresindeki alwaysShowLabels parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • Birkaç bileşendeki bodyContent parametresi yalnızca content olarak yeniden adlandırıldı.
    • ButtonDefaults.buttonColors() içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediğinden, bunun kodunuzda bir hataya neden olmayacağını lütfen unutmayın. Lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde, kodunuz öncekiyle aynı şekilde çalışmaz.
    • darkColors() adlı kampanyaya secondaryVariant parametresi eklendi. Bu renk, koyu temada genellikle secondary ile aynıdır, ancak tutarlılık ve daha fazla özelleştirme için eklenir.
    • Yaygın olarak kullanılmadığı / yararlı olmadığı için ElevationDefaults ve animasyonElevation() herkese açık API yüzeyinden kaldırıldı.
    • Slider içindeki onValueChangeEnd öğesi, onValueChangeFinished olarak yeniden adlandırıldı ve boş değerli hale getirildi.
    • Tutarlılık için Snackbar içindeki text parametresi content olarak yeniden adlandırıldı.
    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için DropdownMenuItem öğesine contentPadding parametresi eklendi ve content, RowScope üzerinde bir uzantı oldu.
    • ModalDrawerLayout, ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout, BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Hata Düzeltmeleri

  • Compose'da animasyonluVectorDrawable kaynaklarını kullanmak için API eklendi. Bir <animated-vector> XML'i canlandırmalıImageVector olarak yüklemek ve boyaterFor (I8ea91) ile canlandırmak için animatedVectorResource kullanın.
  • TextField'te önceki SoftwarekeyboardController arayüzünün yerini almak üzere yeni LocalSoftwareKlavyeController yerel API'si eklendi. (I658b6, b/168778053)

Sürüm 1.0.0-alpha12

10 Şubat 2021

androidx.compose.ui:ui-*:1.0.0-alpha12 yayınlandı. 1.0.0-alpha12 sürümü bu kayıtları içerir.

API Değişiklikleri

  • ViewGroups desteği, UiApplier'den kaldırıldı. Kullanımdan kaldırılan emitView composable'ları kaldırıldı. (Ifb214)
  • Modifier.pointerInput artık işaretçi girişi algılama eşinin yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek için tuşları hatırlamayı gerektiriyor. (I849cd)
  • CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
  • Sınırlar, DpRect (I4b32a) olarak yeniden adlandırıldı
  • Test güncellemesi: hasText(), metin alanında (Iab803) hem girişi hem de etiket/ipucu/yer tutucu metinleri kontrol eder
  • viewModel() composable ve LocalViewModelStoreOwner androidx.lifecycle.viewmodel.compose adresine taşındı. Şimdi, androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 adında ayrı bir bağımlılık eklemeniz gerekir. (I7a374)
  • AccessibilityAction'da null işlemine izin verin, AccessibilityAction ve CustomAccessibilityAction'daki işlem etiketini CharSequence'tan String'e (I0dc82) değiştirin
  • Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter'ın adı, BitmapPainter olarak, paralel VectorPainter olarak değiştirildi. (Iba381, b/174565889)
  • Alt dizenin artık bağımsız değişken olarak kullanıldığı daha iyi alt dize test API'leri (Icbe78)
  • Özel bir odak sırası lambda belirtmeden FocusRequester'ı kabul eden bir Modifier.focusOrder() eklendi. Bu, bir composable (I4f52a, b/179180978) için özel odak sırası değil, yalnızca referans belirtmemiz gerektiğinde faydalıdır.
  • ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
  • Destructure ve copy() yöntemleri, nadiren kullanıldıkları çeşitli sınıflardan kaldırılmıştır. (I26702, b/178659281)
  • Pop-up, platforma özel olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve isFocusable, PopupProperties hizmetindeki (Ieeea5) bir focusable parametresine taşındı.
  • İletişim kutusu platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
  • LayoutNode dahili (I8a7b1, b/175103944)
  • Constraints.enforce yerine Constraints.disable öğesinin yerini aldı. (I8b8ea)
  • loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, VektörResource ve loadVectorResource için destek sonlandırılmıştır. Bunun yerine PaintterResource kullanın. (I6b809)
  • Performansı korumak için ScrollAxisRange semantiği, artık doğrudan Kayan noktalı değerler yerine Kayan noktalı öğeleri döndüren lambda'ları alır. (If4a35, b/178657186)
  • Erişilebilirlik için metin alanında düzenlenebilir giriş metnini işaretlemek amacıyla EditableText semantiği eklendi. Anlamı kontrol etmek için ilgili test yöntemleri de eklendi (I8e07a)
  • SahipLayer/OwnerScope/OwnerSnapshotObserver dahili (I4ffaf, b/175103944)
  • toIntPx(), roundToPx() olarak yeniden adlandırıldı. (I9b7e4, b/173502290)
  • IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
  • Snapshot API, dahili uygulama sınıflarını herkese açık API'den gizlemenin yanı sıra API yönergeleriyle daha tutarlı olacak şekilde güncellendi. (Id9e32)
  • Anlamsal genişletme ve daraltma işlemleri eklendi. ModalBottomSheetState'e genişletme ve yarısı genişletme eklendi (Ib5064)
  • Modifier.dragMoveFilter kullanımdan kaldırıldı. Bunun yerine Modifier.pointerInput { detectDragGestures (...)} politikasını kullanın. Alternatif olarak, bir eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473)
  • Ambiyans, Ambiyans -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Eskiden AmbientFoo adı verilen ambiyanslar artık CompositionLocals olarak LocalFoo olarak adlandırılıyor. (I2d55d)
  • Kullanımdan kaldırılan BaseTextField kaldırıldı. Bunun yerine BasicTextField politikasını kullanın. (I71368)
  • Seçim temele taşındı. (I7892b)
  • state { 0 } composable'ı kaldırdığımız ve artık remember { mutableStateOf(0) } gibi kullanımı teşvik ettiğimiz şekilde savedInstanceState { 0 } composable'ı da kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmanız gerekir. MutableState içinde kullanılan tür pakette depolanıyorsa otomatik olarak kaydedilip geri yüklenir. Daha önce bir özel tasarruf nesnesi iletiyorsanız şimdi stateSaver parametresine sahip Hatırlanabilirlik özelliğinin yeni bir aşırı yüklenmesini kullanmanız gerekir. Kullanım şöyle görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Erişilebilirlik için şifre anlamı eklendi (I231ce)
  • Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere İlerlemeBarRangeInfo.Indeterminate eklendi (I6fe05)
  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programları, artık performans üzerinde herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)
  • snapshotFlow ve withMutableSnapshot artık deneysel değil (I6a45f)
  • Yeniden toplayıcılar artık kapatılabilir. Kapalı yeniden düzenleyiciler, beste alt eş yordamları tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatma işlemiyle kontrast oluşturmak üzere iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
  • UiSavedStateRegistry, SaveableStateRegistry olarak, AmbientUiSavedStateRegistry, AmbientSaveableStateRegistry olarak ve her ikisi de androidx.compose.runtime.saveable paketine taşınmıştır. (I30224)
  • Yapı androidx:compose:runtime:runtime-saved-instance-state , androidx:compose:runtime:runtime-saveable (I6dcac) olarak yeniden adlandırıldı
  • Kullanıcı arayüzü paketindeki uzun süredir desteği sonlandırılmış API'lerin çoğu silindi. (I2f2dc)
  • Composer:runtime-dispatch yapısı kullanımdan kaldırıldı. MonotonicFrameClock artık write:runtime'da, AndroidUiDispatcher ise Composer:ui'de bulunabilir. (Ib5c36)
  • Outline.* sınıfları artık veri sınıfı değildir (I4879e, b/178001427)
  • view.captureToImage() değiştirilmeden kaldırıldı. (I7fcd2)
  • Kaynak içeriğin rgb değerlerini değiştirmek için kullanılan ColorMatrix API kullanıma sunuldu. Refactored ColorFilter API, bir arayüz haline gelir ve PathEffect uygulamasıyla eşleşir. (Ica1e8)
  • Shape'in createOutline öğesine layoutDirection parametresini ekleyin. Bu, düzen yönüne duyarlı şekiller oluşturulmasına olanak tanır. (I57c20, b/152756983)
  • onImeActionPerformed desteği sonlandırıldı. Bunun yerine Klavyeİşlemleri kullanın (If0bbd, b/179071523)
  • Sonsuz animasyonlara uygulanacak bir InfiniteAnimationPolicy eş yordam bağlam öğesi kullanıma sunuldu. Varsayılan olarak, testlerin ComposeTestRule ile çalıştırıldığı durumlar dışında herhangi bir politika yüklenmez. (I50ec4, b/151940543)
  • canDrag, Modifier.scrollable'dan kaldırıldı. (Id66e7, b/175294473)
  • Yeni birparentKoordinatör özelliğine izin vermek için, LayoutKoordinatları.parentKoordinatları, LayoutKoordinatlar.parentLayoutKoordinatörler olarak yeniden adlandırıldı. parentKoordinatör özelliği artık üst değiştiriciye ait LayoutCoordintes öğelerini sunmaktadır. Bu sayede onSizeChanged() ve onGloballyPositioned() (Idfbfd, b/177926591) ile ilgili daha kapsamlı kullanım alanları elde edilir.
  • dokununhareket filtresi, çiftehafizasi hareketFiltresi, uzunBasın Hareket Filtresi ve basIndicaitonHareket Filtresi kullanımdan kaldırılmıştır. Bunun yerine, Detfier.clickable'ı ya da Modifier.pointerInput'u tespit etmek için Dokunma Hareketleri işleviyle kullanın. (I6baf9, b/175294473)
  • SaveableStateRegistry'nin unregisterProvider'ı kaldırıldı. Bunun yerine, registerProvider() artık kaydı iptal etmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739)
  • HatırlatıcıInstanceState(), comeSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
  • CoreText ve CoreTextField, herkese açık API'den kaldırıldı
    • Kullanımdan kaldırılan SelectionContainer aşırı yükü kaldırıldı
    • (I99c19)
  • Compose'un hiyerarşilerde doğrudan WindowManager'a eklenen/kaldırılan testler artık daha kararlı. (Ie81ed, b/175765614)
  • Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, geç oluşturulmuş, pencere kapsamlı Recomposer'ları kullanıyor. Yeniden oluşturma ve withFrameNanos tabanlı animasyon onay işaretleri, ana makine Yaşam Döngüsü durdurulurken duraklatılır. (I38e11)
  • Recomposer.runningRecomposers artık süreçte devam eden beste durumunu gözlemlemek için küresel bir RecomposerInfo salt okunur StateFlow'u sunuyor. Artık kullanımdan kaldırılmış olan Recomposer.current() için bu API'yi tercih edin. (If8ebe)
  • Saver, listSaver(), mapSaver(), autoSaver androidx.compose.runtime.savedinstancestate durumundan androidx.compose.runtime.saveable (I77fe6) konumuna taşındı
  • EditCommands, AnnotatedString'i kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve çok stilli metin düzenleme henüz uygulanmamıştır. (I4c3ea)
  • Çalışma Süresi ve Süre kaldırıldı. (Ib9bf4, b/177420019)
  • CompositionData.asTree() ve ilgili API'ler ayrı kullanıcı arayüzü-veri modülüne taşındı ve deneysel (Ic95b8) olarak işaretlendi.
  • RounderCornerShape, CutCornerShape ve CornerBasedShape ile ilgili parametreler, şeklin rtl yönünde otomatik yansıtmasını desteklemek için sol/sağ'dan başlangıç/bitiş olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için MutlakRounderCornerShape ve absoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
  • Compose derleyici eklentisinin hedeflediği API, beton sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüz artık "type" parametresi kullanmamaktadır.

    Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir. Ancak ikili programlara zarar veren bir değişikliktir. (I3b922, b/169406779)

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

Hata Düzeltmeleri

  • Görünüm hiyerarşilerine yerleştirilen ve başka bir bestenin alt öğesi olan ComposeView'lar artık üst öğelerinin alt bestelerini barındırıyor (I92883)
  • ImageBitmap nesnelerini yüklerken kaynak çekilebilir önbelleğini yeniden kullanmak için oluşturma'nın imageFromResource API'si güncellendi. (If3627, b/178751994)

Sürüm 1.0.0-alpha11

28 Ocak 2021

androidx.compose.ui:ui-*:1.0.0-alpha11 yayınlandı. Sürüm 1.0.0-alpha11 bu kayıtları içerir.

API Değişiklikleri

  • WithConstraints, BoxWithConstraints olarak yeniden oluşturulması ve foundation.layout'a taşındı. (I9420b, b/173387208)
  • Key.DPadUp kullanımdan kaldırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
  • Şu andan itibaren dahili kullanıcı arayüzü. (If8e35)
  • Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
  • PopupPositionProvider'ı genel koordinatları değil pencereye bağlı koordinatları kullanacak şekilde değiştirir. parentGlobalBounds adını anchorBounds olarak değiştirir ve windowGlobalBounds değerini windowSize: IntSize (I2994a) olarak değiştirir.
  • Süre ve Çalışma Süresi, Uzun milisaniyelerle değiştirilir ve bu adım, bu sınıflardaki işaretçi girişinin bağımlılığını ortadan kaldırır. (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner ile benzer şekilde eklendi (I9a3e8, b/176756365)
  • Vektör grafikleri API'si, vektör grafiklerinin köküne uygulanan tonlamanın ayrıştırılmasını desteklemek için güncellendi. (Id9d53, b/177210509)
  • Cihazları ayırt etmek için ToolType öğesi PointerInputChange'e eklendi (Iac787, b/175142755)
  • AmbientWindowManager, AmbientWindowInfo (I2686a, b/177084714, b/177084983) olarak yeniden adlandırıldı
  • Global koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (Iee284)
  • Denetleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsKatman eklendi. (I315df)
  • FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiş. (I2d898, b/177000821)
  • SemanticsPropertyRecipientr.hidden, invisibleToUser olarak yeniden adlandırıldı ve @DeneyselalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, progressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityKayState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, Yatay ScrollAxisRange olarak yeniden adlandırılmıştır. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırılır. (Id3148)
  • PointerInputData kaldırıldı ve tüm PointerInputData alanlarını vermek için PointerInputChange ile değiştirildi. Herkese açık API'lerde kullanılmadıkları için PointerInputEvent ve PointerInputEventData verilerini dahili hale getirdi. (Ifff97, b/175142755)
  • Güncellenmiş GraphicsLayerScope, dp'nin ham piksellere dönüşümlerini desteklemek için yoğunluğu uygulamaktadır. (Ied528, b/176819695)
  • Matris API'si, ana satır sıralamasını takip edecek ve farklı matris temsilleri arasındaki dönüşümlere yardımcı olmak amacıyla dizin sabitleri sağlayarak SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığını dahili olarak eşleştirmek için güncellendi. (I432e6)
  • Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
  • String.fintPrecedingBreak ve String.fingFollowingBreak öğesini InternalTextApi'ye taşıyın. (I657c4)
  • androidx.compose.ui.util.isSurrogatepair herkese açık API'den kaldırıldı. (Ia9494)
  • TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı
    • TransformedText artık bir veri sınıfı (Ie672a) değil
  • data class aşağıdaki sınıflardan kaldırıldı:
    • Satır İçiMetinİçeriği
    • Yerel Ayar (I605c7)
  • Aşağıdaki sınıflar artık veri sınıfı değildir:
    • Ek Açıklamalı Dize
    • Paragraf Stili
    • Aralık Stili
    • Metin Stili
    • Yazı TipiAğı
    • Metin Dekorasyonu
    • MetinGeometrikDönüşüm
    • Metin Dizini
    • MetinDüzeniSonuçları
    • MetinLayoutInput (Iaff99)
  • VisualTransformation, işlevsel bir arayüz olarak değiştirildi (I3bba4)
  • İşlev referans parametresi türü eklendi (I5e1bd)
  • Dönüştürülen sınırları InspectorNode'a (Ice42f) ekleyin

Hata Düzeltmeleri

  • onCommit, onDispose ve onActive desteği sonlandırıldı ve yerini SideEffect ve DisposableEffect API'leri (If760e) aldı.
  • Font/FontFamily/Yazı Tipi için fabrika işlevlerinde yapılan değişiklikler

    • Büyük harfle başlayan fabrika işlevleri eklendi
    • Küçük ilk harfle kullanımdan kaldırılan önceki fabrika işlevleri
    • Yeni fabrika işlevleri, alt sınıflar yerine FontFamily döndürürken
    • Alt sınıfların kurucuları, yalnızca fabrika işlevleri aracılığıyla oluşturulabilecek şekilde gizlendi.
    • Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
  • ComposeTestRule kapsamını genişleten ve ComposeTestRule öğesinden kaldırılmış olan setContent öğesini tanımlayan ComposeContentTestRule kullanıma sunuldu. ComposeTestRule döndüren ve sizin için Etkinlik başlatmayan bir fabrika yöntemi (createEmptyComposeRule()) eklendi. Testiniz sırasında Etkinliğinizi başlatmak istediğinizde, ör.ActivityScenario.launch kullanarak (I9d782, b/174472899) bunu kullanın.

  • canlandırmaAsState artık animasyonluFooAsState oldu. Burada Foo, animasyonlu değişkenin türüdür. Ör. Kayma, Dp, Offset vb. (Ie7e25)

  • Resim ve Simge'ye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetleriyle (I2ac4c) ilgili açıklama sağlamak için kullanılır

  • DisplaySize, kaçınılması gerektiği için bu etiketi kaldırın. Genellikle, en azından onRoot() boyutunu veya pencere boyutunu kullanmak daha iyidir. (I62db4)

  • OnSizeChanged, düzenin içeriğinin boyutunu bildiriyordu. Şimdi boyutu, değiştirici zincirindeki konumunda raporluyor. (I36b78, b/177562900)

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

  • TextFieldValue, AnnotatedString'i kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve çok stilli metin düzenleme henüz uygulanmamıştır.

    • EditBuffer oluşturucu parametrelerinden initial kaldırıldı. (I326d5)
  • inverify ve engagementReference() işlevleri artık sırasıyla currentRecomposeScope ve remindersCompositionReference koduyla kullanımdan kaldırılmıştır. (I583a8)

  • AnnotatedString, kotlin.CharSequence değerinden genişletilecek şekilde değiştirildi. Bu nedenle, uzunluk ve alt Sekans artık örnek işlevleri oldu ve uzantı işlevleri kaldırıldı. (Iaf429)

  • ThankObserver, CompositionLifecycleObserver'ın yerini almıştır. CompositionLifecycleObserver için de destek sonlandırılmıştır.

    RememberObserver, CompositionLifecycleObserver yerine değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler kullanır. Yalnızca bir kez hatırlanan ve önerilen uygulama olmaya devam eden nesneler için mekanik olarak yeni API'ye geçiş yapılabilir. Bununla birlikte, bir referans bir bestede birden çok kez hatırlandıysa her bir referans için onRemembered çağrılır. Burada, onEnter yalnızca bir kez çağrılır. Nesne alt kompozisyonlarda kullanılmışsa onEnter birden çok kez çağrıldı (örneğin, WithConstraints ve Scaffold) tek onEnter çağrısı garantisini güvenilmez hale getiriyor ve RememberObserver için kaldırıldı.

    RememberObserver, RememberObserver örneğinin remember öğesine iletilen geri çağırmadan döndürülmesi durumunda çağrılan onAbandoned ifadesini ekler. Ancak bu işlev, bileşim durumunda hatırlanmaz ve bu nedenle, hiçbir zaman onRemembered çağrılmaz. Bu durum, beste tamamlanmadan önce bir istisnanın sonlandırılması veya bestenin artık güncel olmadığı ya da başka bir şekilde gerekli olmaması nedeniyle bestenin çıkarılması durumunda meydana gelebilir. Yukarıdaki tek referans önerisini izleyen RememberObserver örneğinin hem onForgotten hem de onAbandoned harici bir kaynağı izlemesi, kaynağa artık ihtiyaç duyulmadığını gösterir. Nesne, onRemembered çağrılırsa çağrılmayacağı için onAbandoned, başlatılan işleri veya onRemembered içinde ayrılan kaynakları izliyorsa yoksayılabilir. (I02c36)

  • 2 veya daha fazla Metin Birimi arasındaki aritmetik işlem kullanımdan kaldırıldı. Int.sp ve Int.em gibi uzantı işlevleri yerine kullanımdan kaldırılan TextUnit.Sp ve TextUnit.Em işlevleri. (I48369)

  • Açıkça beyan edilmiş herkese açık kaynaklar bulunmayan (ör. Public.xml aracılığıyla) kitaplıklardaki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)

  • ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz veya çizebildiğimizden, büyük bir kaydırma içeriğiniz olduğunda LazyColumn'u kullanmak, LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımını teşvik etmeye karar verdik. Kullanıcılar yine de geç davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.vertical ülkeler(rememberScrollState())) (Ib976b, b/170468083)

  • LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni items(count: Int) fabrika yöntemi. items(items: List) ve itemsIndexed(items: List) artık uzantı işlevleri olduğundan bunları kullanıldıklarında manuel olarak içe aktarmanız gerekir. Şu diziler için yeni uzantı aşırı yüklemeleri: items(items: Array) ve itemsIndexed(Array) (I803fc, b/175562574)

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

    • Lütfen ImeAction.Unspecified (Ie1bcc) yerine ImeAction.Default kullanın
  • Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)

  • TextInputService.onStateUpdated, updateState (Id4853) olarak değiştirildi

  • TransitionDefinition tabanlı Geçiş desteği sonlandırıldı (I0ac57)

  • TextUnitType.Inherit kaldırıldı. Lütfen bunun yerine TextUnitType.Unspecified değerini kullanın. (I9ff64)

Sürüm 1.0.0-alfa10

13 Ocak 2021

androidx.compose.ui:ui-*:1.0.0-alpha10 yayınlandı. Sürüm 1.0.0-alpha10 bu kayıtları içerir.

Çarpıcı Değişim

  • Dahili derleyici API'sinin yeniden yapılandırılması, bileşim sonucunda oluşturulan düğümlerde tüm @Composable işlevleri tamamlandıktan sonra değişikliklerin "değişiklikleri uygula" bileşimi aşamasında toplu olarak işlenmesini sağlar.

    Bu, değişiklikler uygulanana kadar dahili ve deneysel API'lerde artık düğümler mevcut olmadığı için uygulama kodunu etkileyebilecek olumsuz bir davranış değişikliğidir. Bu, genellikle kodun yürütülmesini, düğümler oluşturulup başlatılıncaya kadar ertelemek için bir SideEffect composable'ında bu tür bağımlılıklarla kod yuvarlanarak çözülebilir. (I018da)

API Değişiklikleri

  • Özel bir odak geçiş sırası belirtmek için kullanılabilecek Modifier.focusOrder() (I90cf5, b/175899543, b/170155556, b/170155429) eklendi
  • Kullanımdan kaldırılan domainObserver'ın bunun yerine onFocusChanged veya onFocusEvent kullanımı kaldırıldı (I3ecb9, b/175156387)
  • Editİşlemler API'sında Yapılan Değişiklikler
    • EditOperation'ın adı, EditCommand olarak değiştirildi
    • EditOperation somut uygulamaları için Komut son eki eklendi
    • EditCommand artık veri sınıfı değil
    • EditProcess.process işlevi, applyTo olarak yeniden adlandırıldı
    • InputEventListener, InputEventCallback olarak yeniden adlandırıldı
    • (I0a366)
  • Kullanılmayan PxSquared, PxCubed, PxInverse kaldırıldı. Size.center(), özellik olarak değiştirildi. (I973f7)
  • ui-test modülü artık test edilen kullanıcı arayüzleri için Yeniden Oluşturucuların oluşturulmasını yapılandırabilecek (Ibebd8)
  • Değiştirilmiş Hız, bileşen parçaları ve matematiksel işlemlere sahip olacak şekilde değiştirildi. (Ib0447)
  • @ExperimentalTesting öğesinin adı, benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olacak şekilde @ExperimentalTestApi olarak değiştirildi
  • Color.useOrElse(), Color.takeOrElse() (Ifdcf5) olarak yeniden adlandırıldı
  • Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
  • Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
  • Layoutnode sınırları değiştiğinde Sahibine bildirimde bulunmak için bir geri çağırma ekleyin. (I72fd1)
  • Belirsiz sabit değeri olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
  • [Abstract]ComposeView API'lerini genişleterek Compose tabanlı görünümlerin geri dönüştürülmesini sağlayın ve bu görünümleri daha sonra yeniden oluşturmak üzere elden çıkarın. Alt besteler oluşturmak için pencere kapsamlı Recomposer ve CompositionReferences öğelerini yüklemek ve keşfetmek için API'ler ekleyin.

    [Abstract]ComposeViews öğelerinin beste yok etme stratejisini yapılandırmak için ViewCompositionStrategy'yi ekleyin. Varsayılan davranış pencere ayırmada yok etme şeklindedir. (I860ab)

  • Any.identityHashCode() herkese açık API (I025d7) kaldırıldı

  • Bunun yerine doğrudan String.format kullanılması yerine toStringAsFixed API'sı kaldırıldı. (Iaba6b)

  • Temel Strings.kt öğesine geçiş anahtarı ekleyin (I4a5b7, b/172366489)

  • NativeClass'ı UI modülüne taşıyıp dahili hale getirdim. Uygulamalarda NativeClass'ın güncellenen kullanımları, bunun yerine "is MyClass" kullanılacak şekilde eşittir. (I4f734)

  • Modifier.focus() ve Modifier.focusRequester() işlevlerin desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() öğelerini kullanın. (I75a48, b/175160751, b/175160532, b/175077829)

  • Seçim Yöneticisi'ne Seçilebilir güncellemelerin bildirilmesi için SelectionRegistrar.notifySelectableChange kullanıma sunuldu. (I6ff30, b/173215242)

  • Çeşitli dış çizgi uygulamaları için sınırlayıcı düzeni elde etmek amacıyla Outline.bounds özelliği kullanıma sunuldu. (I16e74, b/175093504)

  • Kullanımdan Kaldırılmış TestUiDispatcher. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)

  • ImeOptions ve KeyboardOptions artık bir veri sınıfı değil (I3c898, b/168684531)

  • VisualTransformation API Değişiklikleri

    • OffsetMap, OffsetMapping olarak yeniden adlandırıldı
    • OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı
    • PasswordTransformation artık veri sınıfı değil
    • OffsetMapping kendi dosyasına taşındı
    • (I0bdf3)
  • Position (Konum) DpOffset olarak yeniden adlandırıldı ve getDistance() (Ib2dfd) kaldırıldı

  • Eğlenceli Dp.isFinite(), val Dp.isFinite (I50e00) olarak değiştirildi

Hata Düzeltmeleri

  • Recomposer artık geçerli durumunun bir Akışını sunarak etkinliğinin ve ilişkili efektlerin izlenmesine olanak tanıyor. (Ifb2b9)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden (I87c57, b/173086397) erişilebilir.
  • animate() artık T yerine State<T> döndüren animateAsState() ile değiştiriliyor. Geçersiz kılma kapsamı State değerinin okunduğu yere daraltılabileceği için bu daha iyi performans sağlar. (Ib179e)
  • Semantics rol API'sini ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak Rol ekleyin. Modifier.progressSemantics değiştirildi, böylece Kaydırma Çubuğu da kullanılabilir. (I216cd)
  • Animasyonları arasında karşılıklı dışlama sağlayan yeni eş yordam tabanlı API Animatable.
    • Çok boyutlu azalma animasyonunu destekleyecek yeni DecayAnimationSpec özelliği
    • (I820f2, b/168014930)

Sürüm 1.0.0-alpha09

16 Aralık 2020

androidx.compose.ui:ui-*:1.0.0-alpha09 yayınlandı. Sürüm 1.0.0-alpha09 bu kayıtları içerir.

API Değişiklikleri

  • Kullanımdan kaldırılan KeyEvent.Alt artık kaldırılmıştır. Bunun yerine KeyEvent.isAlt Pressed kullanın. (Idd695)
  • Modifier.keyInputFilter ve Modifier.previewKeyInputFilter kullanımdan kaldırıldı
  • Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent öğelerini kullanın (I30f17, b/168511863, b/168511484)
  • İşaretçi giriş API'lerinin askıya alınması için HandlePointerInputScope, AwaitPointerEventScope vehandlePointerInput() adı awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)
  • Otomatik Doldurma API'si artık deneysel bir API olup etkinleştirilmesini gerektirir (I0a1ec)
  • FocuSRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
  • AccessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
  • Özel etkinlikler, askıya alma işaretçi giriş API'sinden kaldırıldı (Ia54d5, b/175142755)
  • SelectionRegistrar'da birkaç yeni işlev kullanılmaya başlandı ve ayrıca, onPositionChange adını NotificationPositionChange olarak değiştirdi. (Ifbaf7)
  • Dahili olarak işaretlediğimiz LayoutNode'un diğer üyeleri (I443c6)
  • LayoutInfo, araçlar ve testler tarafından kullanılmak üzere kullanıma sunulmuştur (I9b190)
  • AndroidSahibi dahili (Ibcad0, b/170296980)
  • ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
  • İç içe kaydırma sistemi eklendi. Daha fazla ayrıntı için Modifier.nested Scroll'a bakın (I36e15, b/162408885)
  • subcomposeInto(LayoutNode) dahili hale getirildi (Id724a)
  • Applier arayüzü, ağaç oluşturmayı yukarıdan aşağı değil, aşağıdan yukarıya basitleştirecek şekilde değiştirildi.

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

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

    Uygulama geliştiricileri, düzenlediği ağaca düğüm ekleme işlemi için hangisinin daha iyi performans gösterdiğine bağlı olarak insertTopDown() veya insertBottomUp() seçeneklerini kullanır.

    LayoutNode ve View gibi bazı ağaçlar, aşağıdan yukarıya doğru inşa etmekte yukarıdan aşağıya doğru çok daha etkilidir. Bu değişiklikten önce, performans için aşağıdan yukarıya yapı gerektiren her uygulamaya kopyalanan, aşağıdan yukarıya doğru bir ekleme yığını gerekiyordu. Bu değişiklikle birlikte bir Applier, ağacı aşağıdan yukarıya oluşturmak için insertBottomUp() öğesini, yukarıdan aşağıya doğru derlemek için de insertTopDown() politikasını geçersiz kılar. (Icbdc2)

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

  • Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables'dan opak şekilde yüklenen Painter nesnelerini işlemek için boyaterResource API'si eklendi. Tüketiciler artık öğe türünü önceden belirlemek zorunda değil. Resim composable'larında veya boya değiştiricilerde kullanılacak bir Painter nesnesi edinmek için bu yöntemi çağırabilirler. (I2c703, b/173818471)

  • Alt öğelerin anlamlarını temizlemek ve yenilerini ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)

  • ContentDrawScope, DrawScope'u içerecek şekilde ui-graphics modülüne taşındı. (Iee043, b/173832789)

  • Çizgili şekillere farklı desenler sağlamak için PathEffect grafik API'si kullanıma sunuldu. NativePathEffect kullanımı, beklenen/gerçek PathEffect uygulaması için kullanımdan kaldırıldı. (I5e976, b/171072166)

  • Espresso'nun boşta kalan kaynaklarının Compose tarafından desteklenen bir varyantı olarak Compose'a IdlingResource arayüzleri eklendi. ComposeTestRule (I433f3) aracılığıyla kaydedilebilir ve kayıtları iptal edilebilir

  • ComposeIdlingResource'ın genel kaydı ve ComposeIdlingResource'daki genel (un) saat kaydı kaldırıldı (I32660)

Hata Düzeltmeleri

  • Ofset değiştiricilerindeki lambda'lar artık Kayma yerine IntOffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
  • Genel API'den SlotTable, SlotReader ve SlotWriter kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık oluşturma modülünün dahilindedirler.

    Kullanıcı arayüzü araçları API'sinin kompozisyon bilgilerini çıkarmak için kullanılması amacıyla CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak kullanıcı arayüzü araçları API'sinin yorumladığı ham bilgileri sağladığı için (I31a9c) kullanıcı arayüzü araçları API'sinin dışında kullanılması amaçlanmamıştır.

  • ShaderBrush, çizim ortamının bilgileri hazırlanırken gölgelendirici örneği oluşturmak için yeniden düzenlendi. Bu, özel DrawModifier uygulamalarını uygulamak zorunda kalmadan composable'ın tüm çizim sınırlarını kaplayan renk geçişlerini tanımlamak için yararlıdır.

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

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed" değerlerini kullanımdan kaldırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)

  • Desteği sonlandırılan BuildCompat.isAtLeastR (Idb37e)

  • AnnotatedString öğesi oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Kullanımdan kaldırılan captiondString oluşturucu işlevi. (Idfe0b)

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

Sürüm 1.0.0-alpha08

2 Aralık 2020

androidx.compose.ui:ui-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Anlamsal ekleme işlemi Kapat (I2b706)
  • DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Kullanımdan kaldırılan API'lerden mevcut API'lere geçişe yardımcı olacak typealiases/helper yöntemlerini eklemek için DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
  • Değiştirme. (I0bd29, b/173834241)
  • Özel düzenlerin ve düzen değiştiricilerin, bir çocuğa çizimleri için bir grafik katmanı ekleyerek yerleştirmelerine olanak tanıyan yeni Placeable.placeWithLayer() ve Placeable.placeAllowedWithKatman() yöntemleri eklendi. Öncelikle yeniden çizimleri optimize edebildiğimiz için, bir çocuğu taşımamız gerektiğinde içeriğini yeniden çizmemiz gerekmez. İkinci olarak, bir çocuk için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831)
  • <T>, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)
  • DrawLayer için kolaylık sağlamak amacıyla Modifier.scale/rotate API'leri eklendi.
    • Modifier.drawOpacity, Modifier.alpha olarak yeniden adlandırıldı
    • Modifier.drawShadow adı Modifier.shadow olarak değiştirildi (I264ca, b/173208140)
  • PointerInputData'nın çalışma süresi ve konum alanlarını boş değerli hale getirdi. (Id468a)
  • MaterialTheme, seçim tutma yerleri ve seçim arka planı için artık doğru renkleri ayarlıyor. Materyal dışı uygulamalar, seçim için kullanılan renkleri özelleştirmek için AmbientTextSelectionColors öğelerini manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
  • Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
  • TransformOrigin API, pivotFractionX ve pivotFractionY öğelerini component1 ve component2 olarak döndürecek şekilde yapısal bir söz dizimine sahip olacak şekilde güncellendi (If43c4, b/173586560)
  • Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla, composable lambda parametresi adlandırma ve konumu için lint denetimi eklendi. Ayrıca, hata analizi ve yönlendirmelerine uygun şekilde, sonraki lambda'nın adı olarak children kullanan bazı API'leri content konumuna taşıdı. (Iec48e)
  • Bir tuş etkinliği gönderildiğinde Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol eden API eklendi. (I50ed9)
  • Yeni bir Modifier.drawLayer() aşırı yüklemesi eklendi. Katman parametrelerini durum değişikliği gerçekleştiğinde yeniden birleştirme ve geçişten kaçınmaya izin verecek şekilde tanımladığınız yeni GraphicsLayerScope'ta bir lambda bloğu kullanılır. DrawLayerModifier, artık mantığını LayoutModifier'ın Placeable.placeWithlayer() yöntemine (I15e9f, b/173030831) taşımaya hazırdır.
  • Kullanımdan kaldırılmış Ambiyanslar ve Compose API kurallarına uyarak son eki Ambient olan Ambiyans sonekleri, ön ekinde Ambiyans olan yeni özelliklerle değiştirildi. (I33440)
  • androidx.compose.ui.text.Typeface, androidx.compose.ui.text.font.Typeface hedefine (Ic2b81) taşındı
  • Anlamsal bağımsız değişken birleştirmeTümDescendants,mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Yeni sürükleme hareketi algılayıcı, yön kilitleme de dahil olmak üzere işaretçi giriş API'sini askıya alıyor. (Icef25)
  • VectorAsset adı ImageVector olarak değiştirildi. VectorAsset adı, API yönergelerine göre iç ImageVector sınıfı olmak üzere VectorAsset olarak değiştirildi. Uyumluluk için ImageVector.Builder bağlantısına VectorAssetBuilder öğesinin typealias özelliği eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • YerleşimKapsam'ın Place() öğesine zIndex parametresini ekleyin. Böylece, Modifier.zIndex() artık bir LayoutModifier olarak çalışır ve herhangi bir özel düzenin, doğrudan yerleşim bloğunda (I711f7, b/171493718) alt öğeleri için zIndexes değerini ayarlayabilirsiniz.
  • Temel semantik özellikleri kullanıcı arayüzüne taşındı (I6f05c)
  • Yer (yer (Ofset)) ve yergöreli(Ofset) seçimini kaldırın. Bunun yerine, aşırı yüklemeleri tam ofsetlerle kullanın (I4c5e7)
  • Daha önce kullanımdan kaldırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı, Modifier.onGloballyPositioned'ı kullanın. Modifier.onDraw kaldırıldı. Lütfen Modifier.onDrawBehind'i kullanın. Modifier.plus kaldırıldı, Modifier.then'i kullanın. Renk.Ayarlanmadı kaldırıldı, Renk.Belirtilmemiş seçeneğini kullanın. PxBounds sınıfı kaldırılmış, bunun yerine Rect kullanın. (Ie9d02, b/172562222)
  • Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
  • Yeni askıya alma işaretçisi girişi kullanılarak dokunma, iki kez dokunma, uzun basma ve basma bildirimi için hareket dedektörü eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmalarını kolaylaştıran birkaç yardımcı program da eklendi. (I00807)
  • id, LayoutIdParentData iç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ırmayı algılamaya yönelik yardımcılar da dahil olmak üzere yeni çok noktalı hareket algılayıcı. (Ic459d)
  • SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
  • Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
  • Eş yordam tabanlı kaydırma API'leri ekleyin:

    LazyListState.snapToItem ve LazyListState.smoothScrollBy öğesinin yanı sıra kaydırma denetimi için alt düzey API'leri ekler. Bu API'ler, dönmeden önce kaydırmanın bitmesini bekleyen kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)

  • Modifier.focusable'ın temele eklenmesi gerekiyor. Bir bileşene doğru anlam ve erişilebilirlikle odaklanılabilir davranış eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)

  • AnimationClockTestRule'da, clock öğesine yetki verilebilecek yöntem ve özelliklerin varsayılan uygulamalarını sağlayın (I7ea3d, b/173399709)

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

  • TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. Bunun yerine, TextLayoutResult.getLineEnd'ın artık yeni bir visibleEnd parametresi var. (I73282)

  • TextFieldValue API güncellendi

    • TextFieldValue.composition salt okunur yapıldı
    • geçersiz seçim aralığı için atılan istisna kaldırıldı (I4a675, b/172239032)
  • Metin okuma motoru için TtsAnnotation desteği. (I54cc6)

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

Hata Düzeltmeleri

  • Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
  • OffPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık State yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
  • TextInputService#onStateUpdated değerine (I3e8f5, b/172239032, b/171860947) resetInput parametresi eklendi
  • Oluşturulabilir işlevlere Değiştirici parametreleri için hata analizi kontrolü eklendi. Bu hata analizi denetimi, Oluşturma yönergeleriyle tutarlılık sağlamak için parametrenin adlandırmasını, döndürme türünü, varsayılan değerini ve sırasını kontrol eder. (If493b)
  • TestAnimationClock'ın MonotonicFrameClock tarafından çalıştırılmasına izin veren geçici bir seçenek eklendi (I1403b, b/173402197)
  • Android Yazı Tipi sarmalayıcı eklendi. Bir Android Yazı Tipini typeface işleviyle (ör. typeface(Typeface.DEFAULT)) yükleyebilirsiniz. typefaceFromFontFamily() alanı da typeface() olarak yeniden adlandırıldı (I52ab7)
  • Değiştirici'nin fabrika işlevlerinin, Modifier'da uzantı olarak tanımlandığını, dolayısıyla bunların sorunsuz bir şekilde birbirine bağlanabilmesini sağlayan lint denetimi eklendi. (I07981)
  • Eski kullanıcı arayüzü testi modülünü ve saplamalarını kaldırın (I3a7cb)
  • Recomposer artık EmbeddingContext kabul etmiyor. Gerekli planlama bağımlılıkları, efektCoroutineContext'ten alınır. FrameManager desteği sonlandırıldı; platform entegrasyonları kendi genel anlık görüntü işlemelerini başlatmalıdır. (I02369)
  • Erişilebilirlik düğümüne stil bilgisi iletin. (If5e8d)
  • TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmedi. (Ifce19)

Kullanıcı Arayüzü Sürümü 1.0.0-alpha07 Oluşturun

11 Kasım 2020

androidx.compose.ui:ui-*:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Eşit olmayan ölçeklendirme kullanım alanlarını desteklemek amacıyla, birbirinden bağımsız yatay ve dikey eksenler için ölçek faktörlerini temsil eden ScaleFactor satır içi sınıfı kullanıma sunuldu.
    • ContentScale'e "computeScaleFactor" yöntemi eklendi
    • Hedefi tam olarak kaplaması için src sınırlarını genişletmek amacıyla, tek tip olmayan ölçeklendirme gerçekleştirmek için ContentScale.FillBounds eklendi.
    • Boyut parametreleriyle ScaleFactor parametrelerini hesaplamak için operatör yöntemleri eklendi.
    • (Ic96a6, b/172291582)
  • Hizalamalar oluşturmaya ilişkin BiasHizalama ve BiasMutlakHizalama fabrikaları eklendi. (Iac836, b/169406772)
  • Geliştiricinin odağı tamamen netleştirmesine izin verin. (I90372)
  • Oluşturma sayfasının içindeki Görünümler için yükseltilerin çizilmemesine neden olan bir hata düzeltildi. (If7782)
  • Adlandırma kuralını Modifier.drawBehind ile eşleştirmek için ContentDrawScope içinde onDrawBehind API'yi oluşturdu. (I4fc3a, b/171955269)
  • Katman API'lerinde 3D dönüşümleri döndürmeX/dönüştürme özelliğini tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
  • Seçim kapsayıcısı, geri çağırma olmadan eklendi (Ibfadb)
  • ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn (I708ad) eklenmeden kullanılabilir
  • FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
  • Kafa karıştırıcı olduğundandrawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
  • MeasureResult, MeasureScope dışına taşındı. (Ibf96d, b/171184002)
  • Düzenle ilgili çeşitli simgeler androidx.compose.ui'den androidx.compose.layout.ui konumuna taşındı. (I0fa98, b/170475424)
  • Kullanımdan Kaldırılan FocusState2 (I686cb, b/168686446) kaldırıldı
  • ZIndexModifier artık dahili (I1808b, b/171493718)
  • Gereksiz kutulamayı önlemek için Boyut parametrelerinde lerp yönteminin döndürme türü, boş olmayan bir Boyut döndürülecek şekilde güncellendi. (Ib0044)
  • kotlinx-coroutines-test'in runBlockTest (I4402f) kullanılarak beklemedeki beste çerçeve etkinlikleri için Compose'un MonotonicFrameClock hizmetinin kullanıldığı test kodu için TestMonotonicFrameClock eklendi
  • ActionsScope.localToGlobal (I15299, b/171462785) kaldırıldı
  • onAllNodesWithSubstring bulucu eklendi (I81dd7, b/171462889)
  • androidx.ui.test modülü kullanımdan kaldırıldı. Lütfen şu platforma geçiş yapın: androidx.compose.ui.test ve androidx.compose.ui.test.junit4 (I452e8)

Hata Düzeltmeleri

  • createToBitmap, captureToImage'a taşındı. (I86385)
  • foundation.Text desteği sonlandırıldı ve text.Text ile değiştirildi. Temadaki değerleri kullanmayan, temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
  • TextFields öğesini KlavyeOptions'ı kabul edecek şekilde güncelleyin (Ida7f3)
  • KlavyeSeçenekleri ImeOptions olarak yeniden adlandırın (I82f36)
  • KlavyeType ve ImeAction, KlavyeOptions'a taşındı (I910ce)
  • ambients'in sağlanmasına bir alternatif olarak allowDefault eklendi ve yalnızca önceden bir ortam değeri sağlanmadığında ayarlanacak ambiyans değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField politikasını kullanın. (I896eb)
  • ui-test-junit4 modülünü tanıtın (Ib91f8)
  • relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin referans çizgilerine olan mesafeleri belirtmeyi kolaylaştırmak için paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
  • LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak amacıyla LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek amacıyla, konu parametresi olmayan LaunchedEfektine izin verilmez. (Ifd3d4)
  • Yapılandırma güncellendiğinde yeniden oluşturulan composable kaynakları kullanıma sunuldu. (I6387c, b/167352819)
  • Recomposer artık yapım aşamasında CoroutineContext gerektirir (Ic4610)
  • Birden çok Modifier.zIndex() uygulandığında zIndex değerlerini toplayın. Daha önce ilki kazanıyordu. (Ic514c, b/170623936)
  • Dahili SlotTable uygulamasında yapılan ve genel API'yi etkilememesi gereken değişiklikler. (If9828)
  • Eklenen Klavye otomatik düzeltme IME Seçeneği (I57b8d)
  • androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
  • KlavyeOptions.toImeOptions herkese açık API'den kaldırıldı. (Ic2e45)

Harici Katkı

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

Sürüm 1.0.0-alpha06

28 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Recomposer artık bir CompositionReference ve geçerli bir beste üst öğesi. Açık Recomposer artık daha az yerde gerekli. (I4036f)
  • Bir composable API'nin, verileri kompozisyonlar genelinde tutmak için dahili olarak "hatırla" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı silmeden VectorPainter özelliğini sağlayın. (Ifda43)
  • Modifier.drawWithCache API'si, uygulamalara çizim komutlarını yeniden sıralama olanağı sağlamak amacıyla, ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak gösterecek şekilde güncellendi. Bu, karşılık gelen harmanlama modu algoritmasının doğru bir şekilde uygulanabilmesi için ilk olarak içerik piksellerinin oluşturulması gereken, karıştırma/renklendirme kullanım durumlarında faydalıdır. (Ie7ec8)
  • SimpleContainer'ı PopupTestUtils.kt'ye (I78c57) taşıyın
  • ConsumedData artık bir veri sınıfı değil. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 sayfasına bakın (I1737f)
  • Rtl Tutma Yeri Konumunu Düzeltin. (I6e1e0)
  • DrawScope ve ContentDrawScope soyut sınıflar yerine arayüzler olarak yeniden düzenlendi
    • DrawScope'un CanvasDrawScope uygulamasını oluşturuldu
    • DrawScope'un yerine CanvasScope'u kullanmak için yeniden düzenleme
    • DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu
    • DrawScope'taki kullanımdan kaldırılan yöntemler (I56f5e)
  • Zarar veren değişiklik: İşaretçi etkinliklerinde değiştirilebilecek tek değer tüketim verileri olduğu için PointerInputFilter.onPointerEvent(...) öğesinden döndürülen değer kaldırıldı. PointerInputFilter.onPointerEvent(...) öğesinden veri döndürmek yerine, artık aktarılan PointerEvents tüketim verilerini değiştirebilirsiniz. (I6acd0)
  • MeasureScope ve IntrinsicMeasureScope arayüzleri oluşturuldu. (I1a087, b/170461665)
  • Hizalama Hattı için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
  • Oluşturulan değiştiriciye denetçi bilgilerini belirtme olanağı ekleyin (Idee08, b/163494569)
  • Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
  • DrawTransform.rotate, belgelerle eşleştirmek için center'ın varsayılan pivot parametresini alacak şekilde güncellendi.
    • DrawScope.rotateRad, diğer dönüştürme yöntemleriyle eşleştirmek amacıyla özet noktası için bir Offset tüketecek şekilde güncellendi.
    • Kullanımdan kaldırılan DrawScope.rotateRad aşırı yüklemesi, pivotun x ve y koordinatı için kayan nokta.
    • (Iffcbb, b/170434992)

Hata Düzeltmeleri

  • EksikGetterMatchingBuilder için API lint kontrolü, Androidx için etkinleştirildi (I4bbea, b/138602561)
  • Test ekle'yi tıklayın. (I6b8ae)
  • ComposeTestRule'da geçişleri etkinleştirin; yanıp sönen imleci etkinleştirmek için ComposeTestRule'daki seçeneği kaldırın. (If0de3)
  • Klavyede Büyük Harf Kullanımı IME Seçeneği Eklendi (I8ac38)
  • CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
  • SimpleContainer'ı PopupTestUtils.kt (I65c3e) hedefine taşıyın
  • Compose genelinde nasıl kullanıldığını daha iyi ifade etmek için Radius API'yi CornerRadius olarak yeniden adlandırdı. Belgeler, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
  • ACTION_DOWN dışındaki tüm işlemler için onTouchEvent için false değerini döndüren alt Android Görünümlerine MotionEvents'i göndermeye devam edilerek Android birlikte çalışabilirlik işlevi iyileştirildi (I94c5a, b/170320973)
  • Box, satır içi bir işleve sahip. (Ibce0c, b/155056091)

Harici Katkı

  • AnnotatedString.capitalize 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 yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Denetleyici bilgilerini belirtmek için bir DSL ekleme (Ic9a22)
  • Uzun Bas'ı Metne Taşıyın. (Iff2bc)
  • Deneysel Modifier.pointerInput askıya alma giriş değiştiricisi (Ia77d2)
  • Eklenen Kopyalama/Yapıştırma/Kesme erişilebilirlik işlemleri (I6db4f)
  • AndroidOwner için herkese açık oluşturucu kaldırıldı (Iacaef)
  • Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE değerini devralmaktadır. Bunu açıkça yapılandırmak için ek bir seçenek de eklendi (I64966, b/143778148, b/143778149)
  • Tüketim verileri artık değişebilir. Ayrıca tüketim yapan uzantı işlevlerine yapılan çağrılar artık yeni bir PointerInputChange döndürmez, bunun yerine sağlanan PointerInputChange değerini değiştirir.

    Bu, diğer işaretçi verilerinin kullanıcı kodu tarafından düzenlenememesi için PointerEvent verilerini değişken hale getirmek için 2 adımlı işlemin ilk adımıdır. İkinci adım, List<PointerInputChange> döndürme türünü PointerInputFilter.onPointerEvent(...) öğesinden kaldırmaktır. (Id067e)

  • Metin ve Demo Seçimi'ni devre dışı bırakın. (Ie7e97)

  • onGloballyPositioned bir satır içi işlevi yapıldı (I15830)

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

  • hasPendingMeasureOrLayout özelliği Sahip'e eklendi ve Sahibin bekleyen düzen çalışması olup olmadığını bildiriyor. (I3d9f8, b/169038599)

  • Programlı olarak temizleme odağına API eklendi (Ie1dc2, b/161487952)

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

  • Boyut Değişiklikleri

    • Size.getFlipped kaldırıldı
    • Size.rem kaldırıldı
    • Size.truncDiv (Ief44d, b/169790720) kaldırıldı
  • Satır içi sınıflarda koruyucu değerlerin standartlaştırılması kapsamında, Color.Unset to Color olarak yeniden adlandırıldı.Diğer satır içi sınıflarla tutarlılık için belirtilmedi (I97611, b/169797763)

  • TextOverflow.None sunuldu. Taşma Yok olduğunda, Metin artık taşmayı işlemeyecek ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)

  • AnnotatedString.Builder.addStringDescription içindeki kapsam parametresi, API tutarlılığı için etiket olarak yeniden adlandırılmaktadır. (I7c8cb)

Hata Düzeltmeleri

  • LazyColumn/Row için kaydırma performansı, her kaydırmada alt kompozisyon üzerinde daha az işlem yapılarak iyileştirildi. Kompozisyon sınıfı için yeni hasClicks() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi has Invalidations() (Ib2f32, b/168293643, b/167972292, b/165028371) olarak yeniden adlandırıldı
  • Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, Size.Unspecified ve sonlu olmayan Boyutlar ile uyumlu olacak şekilde güncellendi. (I95a7e)
  • Özel Düzenler'deki Place() çağrılarının sırası artık alt öğeler için çizim sırasını tanımlıyor (Ibc9f6)
  • Erişilebilirlik için AnnotatedString'in SpannableString dönüşümüne destek sağlama. (Ief907)
  • Mümkün olduğunda yansıma kullanımını önlemek için eski platformlardaki Android sınıfları için koçaklar eklendi. (Ia1790)
  • Düzeltilen hata: Yazılım klavyesi, uygulamanın çeviri yapmasına neden olduysa işaretçi giriş koordinatları yanlış olur. (Ic4cec, b/163077821)

Sürüm 1.0.0-alpha04

1 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha04 yayınlandı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.

API Değişiklikleri

  • Artık geçerli olmadığında düzenin toplanmasına ve gözlem kapsamları çizimine izin vermek için OwnerScope eklendi. (Ic4cf8)
  • İçerik düzeni yeniden ölçüldüğünde ve boyut değiştiğinde bir geri çağırma almak için OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
  • Uzun tıklama semantik işlemi ekle (I6281b, b/156468846)
  • FocusManager gizli hale getirildi. (I7872f)
  • DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturmak için uygulama güncellendi.

    Çeşitli yöntemler için güncellenmiş dokümanlar (Ibd166)

  • Nesne oluşturulmasını önlemek için TextRange'i satır içi yapın. (Id034b)

  • PlacementScope#parentWidth ve Placement#parentLayoutDirection artık özel bir düzenin yerleşim bloğundan okunamaz. (Icc1ae, b/168295623)

  • semantik özelliklerine Accessibility ScrollState ekleyin. (Ifeda9)

  • Boyut/durum bilgilerine (I376dc) bağlı bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache'i kullanıma sunduk

  • ParagrafKısıtlamaları kaldırıldı. Genişlik artık doğrudan Paragraf'a aktarılıyor. (Ica712)

Hata Düzeltmeleri

  • Birçok Grafik API güncellendi
    • Ölçek ve rotasyon dönüşüm API'leri, DrawScope ve DrawTransform'daki x/y koordinatları için ayrı float parametreleri yerine, pivot koordinatı temsil eden tek bir Offset parametresi kullanacak şekilde güncellendi.
    • Rect.expandToinclude ve Rect.join yöntemleri kaldırıldı
    • Yarıçap belgeleri, eliptik bisiklete ek olarak oval olarak güncellendi
    • Satır içi Yarıçap sınıfı için herkese açık oluşturucunun doğrudan çağrılmaması gerektiğini, bunun yerine Yarıçap nesnelerinin işlev kurucuları aracılığıyla örneklendirmesi gerektiğini belirten belgeler eklendi
    • topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
    • Rect.translate'in yerini alan Rect.shift desteği sonlandırıldı
    • RoundRect.grow ve Rect.shrink API'leri kaldırıldı
    • RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı
    • RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
    • RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı.
    • RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
    • RoundRect.center, işlev yerine bir özellik olarak değiştirildi
    • RoundRect oluşturucusu, x/y yarıçap değerleri için bağımsız parametreler yerine Yarıçap özelliklerini kullanacak şekilde güncellendi
    • Kaynağı 0,0 olan Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
    • Yarıçapa yıkıcı bir API eklendi
    • Çeşitli RoundRect uzantı işlevlerini mülk olacak şekilde taşıdılar.
    • (I8f5c7, b/168762961)
  • foundation.Box kullanımdan kaldırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
  • Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box kullanımdan kaldırılacak ve yerini generate.foundation.layout'ta yeni Box kullanıma sunacaktır. Yeni Box'ın davranışı, birden fazla alt öğeye sahip olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer şekilde davranan önceki Box'tan farklıdır. (I94893, b/167680279)
  • Kutu süsleme parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279) kullanın
  • Birçok Grafik API güncellendi
    • Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için DrawScope API'leri kapsamlı dönüşüm yöntemleriyle güncellendi
    • KlipPath dokümanları, yuvarlatılmış dikdörtgen yerine Path'e başvuruda bulunacak şekilde
    • KlipPath'de sağ parametreye ilişkin dokümanlardaki aralık sabitlendi
    • DrawScope.drawCanvas adınıdrawIntoCanvas olarak yeniden adlandırdı ve boyut parametresini kaldırdı
    • inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
    • 4 sınırın hepsine aynı içe değer değerini sağlayan ek aşırı yük eklendi.
    • Inset yönteminde, inset'in 4 tarafa da uygulanacağını belirten belgeler kaldırıldı
    • Rect sınıfıyla ilgili dokümanlar güncellendi
    • Rect parametrelerindeki yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
    • Rect.join ve Rect.expandToinclude kaldırıldı
    • Rect.translate(offset) için aşırı yük oluşturuldu ve Rect.shift kullanımdan kaldırıldı
    • (If086a, b/167737376)
  • Ek açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @VisibleForTesting öğelerini dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
  • Varsayılan seçimi devre dışı bırakmak ve beklenmeyen davranışların önüne geçmek için SelectionContainer'ı En Üstten kaldırın. Bunun yerine seçilebilir olması gereken içeriği sarmalamak için özellikle bir SelectionContainer kullanılabilir. (I8dfe0, b/158459594)

Sürüm 1.0.0-alpha03

16 Eylül 2020

androidx.compose.ui:ui-*:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

  • İleri/geri kaydırma anlamlarını kaldır. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
  • onInvalidate(), Owner adlı alandan kaldırıldı -- OwnedLayer herkese açık kullanıcı adı geçersiz kılma işlemi. (Ica72b, b/162061312)
  • Size API'de, Offset parametrelerini kullanan operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu belirsiz ve bu tür işlemler için beklenmedik bir sonuçtur. Ör. boyut - göreli konum bir ofset mi, yoksa farklılığa sahip bir boyut sonucu mu döndürmeli?

    Ayrıca, Beden sınıfında desteği sonlandırılmış yöntemler de kaldırıldı. (Iec902, b/166514214)

Hata Düzeltmeleri

  • Bazen yanlış çizilen LazyColumn öğeleri için düzeltme. Bu da bazı durumlarda kilitlenmelere neden oluyordu. (Ibcf17, b/163066980, b/165921895)
  • Bunu kullanan DpConstraints ve API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
  • createAndroidComposeRule ve AndroidInputDispatcher, androidx.ui.test.android konumundan androidx.ui.test konumuna taşındı (Idef08, b/164060572)
  • Yer çekimi kullanımları tutarlı bir şekilde, düzen API'leriyle uyumlu hale gelecek şekilde yeniden adlandırıldı. (I2421a, b/164077038)
  • Mevcut genel yöntemler kullanımdan kaldırılacağı için onNode ve ComposeTestRule'a diğer genel yöntemler eklendi. (Ieae36)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.ui:ui-*:1.0.0-alpha02 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

API Değişiklikleri

  • düzen düğümü sınırları değiştiğinde bunu Sahibine bildirmek için geri çağırmayı kaldırın. (If654e, b/166106882)
  • Vektör grafik yollarında dolgu türü parametreleri için destek eklendi. Böylece, çift tek veya Sıfır Olmayan yol doldurma kurallarına göre şekil kesimlerini destekleyebilirsiniz. (I43dd2)
  • Çalışma süresi ve Hız artık satır içi sınıflardır (I48f4a)
  • Süre artık bir satır içi sınıftır (I565eb)
  • Layoutnode sınırları değiştiğinde Sahibine bildirimde bulunmak için bir geri çağırma ekleyin. (Ic40b3)
  • Ofset ve yarıçap özelliğine sahip Dikdörtgen işlevi oluşturucunun, Dikdörtgeni sol, üst, sağ, alt yerine sol, sağ, üst, alt düzeninde oluşturması sorunu düzeltildi.

    İşlev oluşturucularının lehine Rect'teki kullanımdan kaldırılan tamamlayıcı yöntemler kaldırıldı.

    Rect.kt'deki yöntemleri doğrulamak için testler eklendi (I08460, b/165822356)

Hata Düzeltmeleri

  • Değiştirilebilen bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
  • Matrix4, Matris ile değiştirildi. Vektörmath paketinin diğer tüm kısımları kaldırıldı. (Ibd665, b/160140398)
  • composable işlevler için çağrı kuralı değişti. Bu, zarar veren bir ikili değişimdir. Tüm kitaplıklar, oluşturma derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.

    Değişen tek API'ler açık bir etkinleştirmeye sahip derleyici API'leri olduğundan bu değişiklik kaynak düzeyinde zarar veren bir değişiklik oluşturmaz. (I7afd2, b/158123185)

  • PointerInputFilter'e dağıtım yapmak, PointerInputFilter'in eşzamanlı olarak kaldırılmasına neden olduğunda oluşabilecek kilitlenme sorunu düzeltildi. (I58f25)

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.ui:ui-*:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir.

Sürüm 0.1.0-dev

Sürüm 0.1.0-dev17

19 Ağustos 2020

androidx.compose.ui:ui-*:0.1.0-dev17 yayınlandı. 0.1.0-dev17 sürümü bu kayıtları içerir.

API Değişiklikleri

  • emitView desteği sonlandırıldı. Compose içinde Görünümler yayınlamak için mümkünse bunun yerine AndroidView kullanın. Görünüm ve Görünüm Gruplarının doğrudan oluşturulmasının, bunlar bile oluşturma ağacında bırakılmadığı sürece gelecekte desteklenmeyeceğini unutmayın. Bu işlem AndroidView kullanılarak yapılabilir. (I29b1e, b/163871221)
  • FocusState2 kullanımdan kaldırıldı ve yerine FocusState (Ia8b79, b/160822876, b/160923332)
  • Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
  • Özel Emit'ler artık bir veya daha fazla ayarlayıcının emit'ten bağımsız olarak atlanıp yeniden derlenebileceğini bildirebiliyor. (İbbd13)
  • Oluşturma için aynı nesne örneği kullanıldığından vektör sınıfları artık veri sınıfı olmayacak şekilde değiştirildi.

    Vektörün içeriği değişirse koşullu olarak yeniden çizim yapmak üzere VectorPainter için mutableStateOf flag'i eklendi.

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

    GroupComponent ve PathBileşen'i ad alanları değişebilir olacak şekilde güncellendi (Ieae45, b/151378808)

  • onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine alt düzende onPositioned ve OnPositionedModifier kullanmalıdır. (I4522e, b/162109766)

  • Başlangıç, satır içi sınıf (Iaec70) haline geldi

  • Seçim Container'ına bir değiştirici parametre eklendi (I4aada, b/161487952)

  • Kullanımdan kaldırılan FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) kaldırıldı

  • mergePolicy lambda, SemanticsPropertyKey koleksiyonuna eklendi. Bu, birleştirmeAllDescendants semantik birleştirmesi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten varsa üst değeri, aksi halde alt değeri kullanmaktır. (Iaf6c4, b/161979921)

  • Sınırlamalar artık satır içi bir sınıf (I88736) oldu

  • Ortak odak mantığını AndroidComposeView'un dışına taşıyan FocusManager eklendi (I528ef, b/161487952, b/162206799)

  • Alfa sürümü için PointerEventPass adları güncellendi. (Ifda6f)

  • IntOffset artık bir satır içi sınıftır (Iac0bf)

  • IntSize artık bir satır içi sınıftır (I2bf42)

  • PlacementScope.placeAbsolute(), PlacementScope.place() olarak yeniden adlandırıldı ve ö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ıtmaz. Dilerseniz bunun yerine PlacementScope.placeRelative() politikasını kullanabilirsiniz. (I873ac, b/162916675)

  • AlertDialog artık düğmeler için FlowRow'u kullanıyor (I00ec1, b/161809319, b/143682374)

  • Bazı test yardımcı programlarını ait oldukları yerde olmadıkları için herkese açık hale getirmedi. Gelecekte herkese açık hale getirilecektir. (I32ab1)

  • İşaretçi giriş kodunun yeniden düzenlenen düzeni yeniden düzenlendi. (Ie3f45)

  • Rect'in lehine kullanımdan kaldırılan PxBounds PxBound'ların tüm kullanımları dikdörtgen biçiminde güncellendi ve taşıma işlemine yardımcı olmak için uygun kullanımdan kaldırma/değiştirme ek açıklamaları eklendi. (I37038, b/162627058)

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

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

  • Büyük olasılıkla değiştirilecek olan DelayUp özel etkinliğini ve ilgili sınıfları, etkin bir API haline getirdi. (I56d6f)

  • Artık ihtiyaç duyulmayan 2 PointerEventPasses kaldırıldı. (I3dd9d)

  • Paragraph.paint öğesine color, shadow ve TextDecoration parametrelerini ekleyin. Bu işlev, gereksiz Paragraf yeniden oluşturulmasını önlemek için yararlıdır. (I81689)

Hata Düzeltmeleri

  • TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
  • Modifier.drawBorder kullanımdan kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Sınır veri sınıfı, BorderStroke ile değiştirildi (I4257d, b/158160576)
  • Kullanımdan kaldırılan FrameManager çağrıları kaldırıldı.

    Dahili oluşturma API'leri, mutableStateof() (I80ba6) gibi durum nesnelerini izlemek için kullanılan ek yük miktarını azaltacak şekilde değiştirildi

  • Dikey Kaydırma ve Yatay Kaydırmaer kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Modifier.drawbackground kaldırıldı. Değiştirici.background'ı (I73b0d, b/163019183) kullanma

  • For döngüsü içinde durumu kaydeden bir şey kullanıldığında kilitlenme. SaveInstanceState()'te aynı anahtara sahip olmaya artık izin veriliyor. UiSavedStateRegistry API'si artık bu yeni gereksinime göre ayarlanmıştır (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)

  • Artık state { ... } composable'ı kullanımdan kaldırılarak yerine açık remember { mutableStateOf(...) } çağrısı yapılması gerekiyor. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkisi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)

  • RRect, oluşturma adlandırma kalıplarına daha iyi sığması için RoundRect olarak yeniden adlandırıldı RRect'e ve kullanımdan kaldırılan RRect işlev kurucularına (I5d325) benzer işlev kurucuları oluşturuldu

Sürüm 0.1.0-dev16

5 Ağustos 2020

androidx.compose.ui:ui-*:0.1.0-dev16 yayınlandı. 0.1.0-dev16 sürümü bu kayıtları içerir.

API Değişiklikleri

  • OnChildPositioned kullanımdan kaldırıldı. Bunun yerine alt öğede OnPositioned'ı kullanın. (I87f95, b/162109766)
  • setViewContent desteği sonlandırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
  • ViewBinding'e dayalı olarak düzen kaynaklarını şişirmek ve oluşturmak için AndroidViewBinding API'si eklendi. (I081c6)
  • KeyEvent2, KeyEvent ile değiştirilmiştir (I2d770, b/162097585)
  • Alt donanım anahtarı için destek eklendi (I9036b)
  • FocusManager kullanımdan kaldırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() komutunu kullanın. (I74ae4, b/162211322)
  • loadVectorResource, trimPath özelliklerini destekler (I808fe)
  • İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
  • Artık ihtiyaç duyulmayan 2 PointerEventPasses kaldırıldı. (I33ca7)
  • PointerInteropModifier uygulandı. Bu özellik, MotionEvents'i alma ve Compose ile bir Android View uygulamasıymış gibi etkileşimde bulunma imkanı sağlar. (Ieb08c)
  • Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId kullanın. (Idaa05, b/162023919)
  • Sağdan sola desteğine yönelik API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient özelliği eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
  • Vektörel grafiklerde yol kırpma desteği (Ie16c9, b/158188351)
  • Özel düzen değiştiricinin kolayca oluşturulmasına olanak tanıyan Modifier.layout() eklendi (I73b69, b/161355194)
  • Yeni AndroidView API eklendi ve mevcut API'ler kullanımdan kaldırıldı. (I5bcfd)
  • Modifier.plus kullanımdan kaldırıldı, bunun yerine Modifier.then kullanın. "Ardından" daha güçlü bir sipariş sinyaline sahiptir. Ayrıca, zinciri bozan ve okunması daha zor olan Modifier.padding().background() + anotherModifier yazmayı da yasaklar (Iedd58, b/161529964)
  • Görünüm hiyerarşisinde Compose içeriğini barındırmak için [Abstract]ComposeView View alt sınıfları ekleyin. (I46357)
  • Row ve Column artık satır içi işlevlerle bunları kullanmanın ek yükünü önemli ölçüde azaltıyor. (I75c10)
  • SubcomposeLayout eklendi. Alt ağaç bileşimi ölçümü sırasında yalnızca daha sonra kullanılabilen bazı değerleri kullanmak istiyorsak ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan düşük seviyeli bir temel öğedir. Örneğin, SubcomposeLayout kullanılarak WithConstraints uygulanmaz. (I25cc8)
  • SemanticsNode'un Compose hiyerarşisinin köküne göre konumunu almak için SemanticsNode.positionInRoot eklendi (Icdf26, b/161336532)
  • MotionEvents, Android'den Oluşturulma'ya ve ardından tekrar Android'e geçti. (I14be8, b/158034713)
  • dropdownPop-up kaldırıldı. (I00430)
  • Kesilen ekranlarda pop-up konumu sabitlendi. (Idd7dd)
  • TextLayoutResult'ı (I9d6e6) almak için erişilebilirlik işlemi ekleyin
  • RemeasurementModifier eklendi. Düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Genel olarak, yeniden ölçüm/geçiş otomatik olarak gerçekleştiğinden hiçbir zaman buna ihtiyacınız yoktur ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
  • getLineEllipsisOffset/getLineEllipsisCount'u kaldırın. Bunun yerine getLineVisibleEnd/getLineEnd/isLineEllipDimension'ı kullanın. (I85aa2)
  • En iyi uygulama nedeni için İşaretler/Ek Açıklamalar ekleyin. (I66b20)
  • TextLayoutResult'da daha fazla satır API'sı gösterin. (I79bd2)
  • Yerleşik birimleri dönüştürmek için dahili vektör dönüştürücülere artık Foo.VectorConverter, ör. Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273) üzerinden erişilebilir.

Hata Düzeltmeleri

  • Genel API düzeltmelerini ele alın (I077bc)
    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
    3. Offset API ile tutarlı olması için IntOffset.Origin adını IntOffset.Zero olarak yeniden adlandırın
    4. Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için yerelCanvas yöntemi Canvas arayüzünün dışına taşındı.
    5. DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş bırakılamamasını sağlamak için saplama BlankCanvas sınıfı oluşturuldu
    6. ClipOp numaralandırmaları Pascal Kılıfı olarak yeniden adlandırıldı
    7. Filtre Quality enum'ları Pascal Case olarak yeniden adlandırıldı
    8. Strokejoin enum'ları, Pascal Case olarak yeniden adlandırıldı
    9. PointMode sıralamaları Pascal Case olarak yeniden adlandırıldı
    10. PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
    11. PathFillType numaralandırmaları Pascal Case olarak yeniden adlandırıldı
    12. StrokeCap sıralamaları Pascal Case olarak yeniden adlandırıldı
    13. DrawCache uygulaması, artık lateinit parametrelerini kullanmayacak şekilde güncellendi.
    14. DrawScope, fillPaint ve stroPaint dahili parametreleri için geç yetkiyi kullanacak şekilde güncellendi
    15. Daha az ek yük için Box kullanımını önlemek üzere Image composable güncellendi
    16. Outline sınıfı, @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
    17. PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
    18. Oluşturma bunları zaten işlediğinden eşitlik için gereksiz koşullu denetimleri kaldırmak üzere Vector alt bileşimi güncellendi
    19. İşlev kurucuları lehine, kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemleri
    20. @Immutable ve @Stable API'leriyle güncellenmiş Fırça sınıfları ve işlev kurucuları
    21. VertexMode sıralaması PascalCase olarak güncellendi
    22. Değiştiyse boyadaki çizgi parametrelerinin üzerine koşullu olarak yazmak için DrawScope selectPaint yöntemi güncellendi
    23. Boyut güncellendi, böylece yıkıcı API eklendi, UnspecifiedSize yeniden adlandırılıp Belirsiz olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
  • API seviyesine bağlı olarak Android çerçevesi BlendModes ve PorterDuff modları arasında doğru eşleme yapmak için yazma BlendMode API tüketimi güncellendi. Kullanılmadan önce BlendMode'un cihazda desteklenip desteklenmediğini belirlemek için bir özellik sorgusu işlevi görmesi için BlendMode#isSupported API kullanıma sunuldu. (I0ef42)
  • Lazy listelerinin itemContent parametresi için LazyItemScope eklendi. Üst maksimum boyutu dolduracak değiştiriciler sağlar. Bu da, öğenin görüntü alanını doldurması gerektiğinde kullanım alanını çözer ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() çalışmaz. (İbd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture kaldırıldı. Bunun yerine SemanticsNodeInteraction.performGesture kullanın. (Id9b62)
  • LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor (I84f84) olarak yeniden adlandırıldı
  • foundation.shape.corner paketi, foundation.share (I46491, b/161887429) olarak birleştirildi
  • AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
  • TextLayoutResult API'sine daha fazla API eklendi. (Id7e04)
  • İstenen API'nin en basit şekilde keşfedilip kullanılmasını kolaylaştırmak için FilledTextField malzemesinin adı TextField, temel TextField malzemesi 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 yayınlandı. 0.1.0-dev15 sürümü bu kayıtları içerir.

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

  • Compose'un 0.1.0-dev15 sürümünü kullanmak için bağımlılıklarınızı yukarıda Bağımlılık bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.

API Değişiklikleri

  • FocusModifier kullanımdan kaldırılmış ve bunun yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver sitesine yapılmıştır. FocusState ve FocusDetailsState desteği, onun yerine FocusState2 (I46919, b/160822875, b/160922136)
  • Odak durumu değişikliğini gözlemlemek için bir değiştirici eklendi. (I05866, b/160924455, b/160923326)
  • Odak değişiklikleri isteğinde bulunmak için bir değiştirici eklendi (I8dd73, b/161182057, b/160924778)
  • Kopyalama, kesme ve yapıştırma işlemlerinin düzgün şekilde gösterilmesi için Araç Çubuğu Menüsü'nü tıklayın. (Id3955)
  • Tek değerli anlambilim özellikleri artık bir çağrı stili kullanıyor. Örneğin, 'semantik { gizlendi = true }' artık şu şekilde yazıldı: semantics { hidden() }. (Ic1afd, b/145951226, b/145955412)
  • FocusModifier'ın yerini alan Modifier.focus eklendi. (Ib852a, b/160924778)
  • Metin Alanı Seçimi için Kayan Araç Çubuğu Ekleyin. (Ie8b07)
  • Anahtar girişiyle ilgili API için deneysel bir API notu eklendi (I53c0a)
  • Odakla ilgili tüm API'ler (I53b24, b/160903352) için deneysel bir API notu eklendi
  • FocusDetailsState'in yerini alacak FocusState2 eklendi (I0a3ba, b/160822595)
  • Focus API'si için bir @OptIn ek açıklaması olan ExperimentalFocus eklendi. (I1544b, b/160820961)
  • Düzendeki tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'si kullanılacak şekilde güncellendi. (I0d8d0, b/159596546)
  • Applier artık kompozisyonları atmak için clear() yöntemi gerektiriyor (Ibe697)
  • KeyEvent kullanımdan kaldırıldı ve KeyEvent2 (I68730) ile değiştirildi
  • Test bulucularına yeni bir isteğe bağlı useUnmergedTree işareti eklendi. (I2ce48)
  • LayoutNode deneysel API'sı yapıldı (I4f2e9)
  • Aşağıdakiler de dahil olmak üzere çeşitli satır içi sınıf türlerine kopyalama yöntemleri eklendi:

    • Zaman farkı
    • Boyut
    • Yarıçap
    • Hareket
    • Dönüşüm Kaynağı

    • Kullanımdan kaldırılan Size.copy tamamlayıcı nesne yöntemi yöntemi (Ife290, b/159905651)

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

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

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

  • Seçimi yeniden düzenleme için yeniden düzenleyin. (I420e0)

  • Tıklanabilir kaldırıldı. Modifier.clickable (I84bdf) dosyasını kullanın

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

  • Bu değişiklikten önce, bir @Composable işlevi (I5205a, b/158123804) varsa oluşturma derleyici eklentisi, bir @Composable işlevinin içindeki kuruculara yapılan çağrılarda önemsiz bir şekilde engelleniyordu.

  • Modifier.testTag ile karışıklık olmaması için Modifier.tag'in adı Modifier.layoutId olarak değiştirildi. (I995f0)

  • Placeable#get(HizalamaSatırı) öğesinden döndürülen hizalama çizgisi tam konumları artık boş değil. Sorgulanan hizalama çizgisi eksikse Hizalama Satırı.Belirtilmemiş döndürülür. (I896c5, b/158134875)

  • AndroidView composable, değiştirici parametre eklendi. (I48a88, b/158746303)

  • Semantics() desteği sonlandırıldı. Bunun yerine Modifier.semantics() işlevini kullanın. (I72407, b/158841414)

  • Etkinlik veya Fragment'taki (I5fdd1) çalıştığına benzer şekilde ViewModel'in oluşturulmasına veya daha önce oluşturulmuş olmasına olanak tanıyan viewModel() composable ekleyin

  • IntPx kullanımı Int ile değiştirildi. IntPxPosition değeri IntOffset olarak değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)

  • Boyutlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxSize yerine Beden sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak gösterilen genişliği ve yüksekliği temsil etmek için uzun bir paket halinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (Ic0191)

  • Konumlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak temsil edilen x ve y ofsetlerini temsil etmek için uzun bir paket şeklinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)

  • Piksel parametreleri için yalnızca Dp ve temel türlere güvenmeyi amaçlayan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)

  • Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)

  • Piksel parametreleri (Id3434) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi

  • Piksel parametreleri için yalnızca Dp ve temel türlere (I97a5a) dayalı büyük yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi

  • TestTag artık kullanımdan kaldırıldı. Bunun yerine Modifier.testTag'i kullanın. (If5110, b/157173105)

  • ParentDataModifier#modifyParentData'nın varsayılan, işlemsiz uygulaması kaldırıldı. Daha önce arayüzün uygulanmaması ile aynıydı. (I0deaa)

  • Daha önce kullanımdan kaldırılan ScaleFit kaldırılmıştır. Bunun yerine ContentScale'i kullanın. (Ifbc5b)

  • Piksel parametreleri (I19d02) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi

  • DropdownMenü bileşeni kullanıcı arayüzüne, Materyal Tasarım menü uygulaması olarak eklendi. (I9bb3d)

  • Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() öğesini kullanın. (If8044)

  • Piksel parametreleri (I57bff) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi

  • Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırılmıştır. (I4cfdc)

  • Birleştirilmiş CanvasScope uygulamaları artık sadece DrawScope ve ContentDrawScope oluyor. CanvasScope'u DrawScope olarak adlandırıyoruz. DrawScope, Density arayüzünü uygulamak ve ContentDrawScope'ta LayoutDirection'da LayoutDirection'ı Silinmiş DrawScope alt sınıfı sağladı Painter ve PainterModifier artık RTL özelliğini sağlamayacak şekilde güncellendi (DrawScope bunu manuel olarak sağlamadan zaten sunduğu için (I1798e))

  • DoubleTapMoveFilter artık tekliDokun Hareket Filtresini ağaç genelinde belirsizleştiriyor. (If92b1)

  • Hizalama API'si güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtmaz) (I38cd3)

  • DrawLayer değiştiricileri API değiştirildi: OutShape şekil olarak yeniden adlandırıldı ve RectangleShape artık null yapılmıyor

  • Bunun yerine CanvasScope'u kullanıma sunmak için Tuval sunan daha üst düzey oluşturma API'leri güncellendi. Bu, tüketicilerin kendi Paint nesnelerini koruma ihtiyacını ortadan kaldırır. Hâlâ bir Tuval'e erişmesi gereken tüketiciler, çizim komutu vermek için alttaki Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilirler. (I80afd)

  • WithConstraints sondaki lambda API'si değiştirildi. Şimdi iki parametre yerine bir alıcı kapsamına sahiptir. Bu alıcı kapsamı, sınırlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlar (I91b9a, b/149979702)

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

  • Kullanımdan kaldırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)

  • Layout ve LayoutModifier2'deki içsel ölçüm işlevleri, artık örtülü bir şekilde yayılmış düzen yönüyle intrinsics query API'si sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)

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

  • Aynı üst düzendeki alt öğelerin çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklendi. DrawLayerModifier'daki yükseltme özelliği, shadowElevation olarak yeniden adlandırılır ve artık çizim sırasını kontrol etmez. DrawShadow'un parametre sırası değiştirildi: Yükseklik artık ilk sırada ve şekil, RectangleShape varsayılan olarak ikinci sıradadır. (I20150, b/152417501)

  • Sahip rolündeki onSizeChange ve onPositionChange kaldırıldı. (I5c718)

  • IntPx yerine yalnızca Int koşul değerlerini destekleyen Kısıtlamaların bir kopyası olan Constraints2 eklendi. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android gibi piksel olduğu varsayılır.

    • Bir süre sonra IntPxSize'ın yerini alacak olan IntSize de eklendi. (I4b43a)
  • Hizalama, rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)

  • alignToSiblings artık Yerleştirilebilir yerine Ölçülmüş kabul eder. (I5788d)

  • (I45f09, b/152842521)

    • ScaleFit, ContentScale olarak yeniden adlandırıldı
    • Hizalama API'si ile aynı modülde yaşamak için ContentScale kullanıcı arayüzü grafiklerden arayüz çekirdek modülüne taşındı.
    • FillMaxDimension, Kırpma olarak yeniden adlandırıldı
    • FillMinDimension, Sığdır olarak yeniden adlandırıldı
    • Daha iyi eşleşmesi için Fit'i Inside olarak yeniden adlandırdı
    • ImageView.ScaleType eşdeğerleri
    • Kırpma ve Hizalama.Center kombinasyonunun, Hizalama.Center ile kullanılan ImageView.ScaleType.CENTER_CROP ve Fit ile aynı sonucu elde ettiğini gösteren dokümanlar eklendi.
  • Çizim değiştiriciler için Rtl desteği. (I0aaf9)

  • XML'den Android Görünümlerini şişirme API'si yayınlandı. Daha fazla ayrıntı için ViewInCompose demosuna bakın. (I42916)

  • DrawModifier API'sını iyileştirin:

    • Draw() ContentDrawScope için alıcı kapsamı oluşturuldu
    • Draw() üzerindeki tüm parametreler kaldırıldı
    • DrawScope, eski CanvasScope ile aynı arayüze sahip
    • ContentDrawScope'tadrawContent() yöntemi (Ibaced, b/152919067) bulunur
  • LayoutKoordinatları için locationInParent ve boundsInParent eklendi. (Icacdd, b/152735784)

  • DrawtierModifier vedrawLayer() öğelerini artık varsayılan olarakClipToBounds ve klipToOutline'ı false olarak ayarlayın. (I0eb8b, b/152810850)

  • LayoutResult'ın adı MeasureResult olarak değiştirildi. (Id8c68)

  • Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi; kullanımdan kaldırılan LayoutModifier (If32ac)

  • Değiştirici artı operatörü fabrika uzantı işlevleriyle değiştirildi (I225e4)

  • Belirli bir Katman için çizim komutları görüntüleme listesini dengelemeyi desteklemek üzere çeviriX/Y özellikleri eklendi. Bu, içeriğin animasyonlara veya dokunma etkinliklerine yanıt olarak taşınmasında faydalıdır. (I8641c)

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

  • OnPositioned ve OnChildPositioned composable işlevlerini değiştirmek için OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)

  • Bir Düzen için RenderNode eklemeyi sağlayan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölgelerin ayarlanmasına olanak tanır. Bu, RepaintBoundary'nin yerini alacaktır. (I7100d, b/150774014)

  • Düzen yönü, üst düzen düğümünden alt öğelere yayıldı. Düzen yönü değiştiricisi eklendi. (I3d955)

  • Yığın bileşeni sağdan sola yönü destekler (Ic9e00)

  • Oluşturma düzeninde Rtl için ilk destek (Ia5519)

  • Density ve DensityScope tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kodunu kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)

  • LayoutKoordinatları, sağlananHizalamaSatırlarını bir Harita yerine bir kümeye dönüştürmek ve LayoutKoordinatlarının, bir değeri almak için bunun yerine get() operatörünü uygulamasını sağlamak amacıyla değiştirildi. Bu, değiştiricilerin her biri için yeni bir koleksiyon oluşturmadan kümedeki bir veya daha fazla değeri değiştirmesini kolaylaştırır. (I0245a)

  • Düzen koordinatlarının artık bir konum özelliği yoktur. LayoutModifier'lar, rotasyon veya ölçeklendirme düşünüldüğündeposition özelliği anlamlı değildir. Bunun yerine, geliştiriciler bir LayoutKoordinatör'den diğerine dönüşümü hesaplamak için ebeveyniniz Koordinatör'ü ve AltToLocal() işlevini kullanmalıdır.

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

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

  • Durum bilgisiz ve bildirim temelli bir çizim API'si yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır. Boyutlandırma bilgileri de ilgili inset sınırlarına dahil edilir. Tüketicinin çizim işlemlerini yapılandırmak için kendi Boya durumu nesnesini korumasına gerek yoktur.

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

  • RectangleShape, androidx.ui.foundation.shape.* biçiminden androidx.ui.graphics'e taşındı.* (Ia74d5, b/154507984)

  • API'deki tüm null yapılabilir Renk kullanımları, null özelliği olmayanlarla değiştirildi ve null yerine Color.Unset (Iabaa7) değeri kullanıldı

  • Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizimini desteklemek için ImagePainter'a isteğe bağlı ek rect parametresi ekleyin

  • Kutuya konma Renkleri içermeyen, ayarlanmamış bir değeri temsil etmek için Ayarlanmayan Renk değeri eklendi. (If901a)

  • Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak amacıyla Canvas.rotate ve Canvas.scale uzantı yöntemleri eklendi. Bunlar varsayılan olarak geçerli tuval çevirisinin sol üst köşesindedir.

    Ayrıca Canvas.rotateRad, tutarlılık için bir uzantı yöntemi olarak taşındı (Ibaca6)

  • ImageAsset'teki piksel bilgilerini sorgulamayı desteklemek için PixelMap API'si oluşturuldu. (I69ad6)

  • Oluşturma ve temelde derlendikleri Android çerçeve API'leri arasındaki nesne dönüşümlerini adlandırma kurallarını eşleştirmek için toFrameworkRect/toFrameworkRectF adını AndroidRect/toAndroidRectF olarak değiştirdi. Ayrıca bu API'lerle ilgili güncellenmiş dokümanlar (I86337)

  • Vektör grafikleri için mevcut alt bileşim API'sinin yerini alması için VectorPainter API'si eklendi. Alt kompozisyonun sonucu DrawModifier yerine bir VectorPainter nesnesidir. Önceki DrawVector composable'lar kullanımdan kaldırıldı ve yerine VectorPainter geldi.

    Image(Painter) API'si PaintBox(Painter) olarak yeniden adlandırıldı ImageAsset yerine VectorAsset (I9af9a, b/149030271) hariç, Image composable gibi davranan Vector composable'ı oluşturuldu

  • Resim verileri ile düzene katılmak ve içerik çizmek için kullanılacak olan Image composable arasındaki farkı daha iyi ayırt etmek amacıyla Image, ImageAsset olarak yeniden adlandırıldı. _Body:Geleneksel Android uygulama geliştirmesini, oluşturma çerçevesi (Id5bbd) ile birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap, Bitmap.asImageAsset() üzerinde oluşturulan uzantı yöntemidir.

  • TextDirection.Content eklendi (I48f36)

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

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

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

  • Metin Alanı Seçimi için LongPressAndDrag yöntemini uygular. (I17919)

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

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

  • TextField'in imleci yanıp sönen bir animasyon içeriyor (Id10a7)

  • API değişikliği: AnnotatedString(builder: Builder), aboneliğinize ek açıklamalıString(builder: Builder) olarak yeniden adlandırılır. (Ia6377)

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

  • AnnotatedString.Builder.addNotlarString'i addStringnot olarak yeniden adlandırın. (I5059e)

  • Artık onTextInputStarted geri çağırma işlevi (I8dc44, b/151860051) ile sunulan SoftwareKeyboardController'ı kullanarak yazılım klavyesini gizlemek/göstermek mümkündür.

  • Merge() işlevine yetki veren (Text/Paragraf/Span)Style için artı operatörü eklendi. (Ia1add)

  • Fontweight.lerp artık yapılmıyor. Bu hâlâ bir veri sınıfıdır. (I521c2)

  • Fontweight kurucusu artık herkese açık ve artık bir veri sınıfı değil. (Id6b1f)

  • TextLayoutResult'a (Ibc801) getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount değerlerini ekleyin

  • kullanıcı arayüzü modülü, ui-text-core (I57dec) olarak yeniden adlandırıldı

  • Kullanıcı arayüzü geometrisinde tüketilen yinelenen bir Boyut sınıfı olduğundan, kullanılmayan Boyut sınıfı kaldırıldı. (I1b602)

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

  • Box'a dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)

Hata Düzeltmeleri

  • Metin alanlarındaki onFocusChange geri çağırması, onFocusChanged (Ida4a1) olarak yeniden adlandırıldı
  • Vertical Scroller ve Horiziontal Scroller kullanımdan kaldırıldı. Sütun/Satır davranışı ve parametreleriyle ilgili yerleşik deneyim için ScrollableColumn ve ScrollableRow'u kullanın veya kendi öğenizde Modifier.vertical Scroll ve Modifier.YAYA kaydırıcılarını kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırıldı ve yerini ScrollState (I400ce, b/157225838, b/149460415, b/154105299) kullanıma sunun.
  • runOnIdleCompose, runOnIdle (I83607) olarak yeniden adlandırıldı
  • Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri, performansXYZ olarak yeniden adlandırıldı. (I7f164)
  • Oluşturma kullanıcı arayüzü artık ViewGroups içinde yeni bir kompozisyon gerekmeksizin oluşturulabilir. Örnek için ViewInteropDemo'ya bakın. (I9ab0b, b/160455080)
  • MutableVector'a SortWith ve removeRange eklendi (Icccf7)
  • TextField seçimini değiştirmek için Sürükleme Seçimi Tutma Yerlerini uygulayın. (I27032)
  • NativeShader'ı sarmalayan Shader satır içi sınıfı kaldırıldı, NativeShader'ı Gölgelendirici olarak yeniden adlandırdı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli herhangi bir şey eklemedi ve bir satır içi sınıftı. Bu yüzden doğrudan NativeShader sınıfını kullanın. (I25e4d)
  • PainterModifier, belirtilen kısıtlamalara ve ContentScale parametresine göre artık ölçeklendirme yapmayacak şekilde yeniden düzenlendi. Painter'ın uygulamaları, çizim içeriklerini, çizdikleri DrawScope'un belirli boyutuna göre kendileri ölçeklendirmektir.

    VectorPainter'ın önbellek bit eşleminin, çizim yapılacak boyut yerine varsayılan boyutuna göre boyutlandırılmasıyla ilgili sorun düzeltildi.

    ImagePainter, bunun için PainterModifier'a güvenmek yerine içeriğini ölçeklendirmek üzere güncellendi. (I6ba90)

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

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

  • androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue kullanımdan kaldırıldı. Bu türü kullanan TextField,FilledTextField ve CoreTextField composable öğeleri de kullanımdan kaldırılmıştır. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)

  • Dağıtma sırasında PointerInputFiltreler'in alt bileşen aracılığıyla kaldırılması durumunda işaretçi giriş dağıtımının kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)

  • İşaretleme sırasında alt bileşen aracılığıyla PointerInputFiltreler kaldırılırsa işaretçi girişi dağıtımının kilitlenmeye neden olmasıyla ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)

  • Yarıçap sınıfı yeniden düzenleyerek satır içi bir sınıf oldu. Tamamlayıcı oluşturma yöntemleri, varsayılan parametresi olan işlev kurucunun lehine olan ve y ekseni boyunca yarıçapı zorunlu x ekseni yarıçap parametresinin yarıçapıyla aynı olacak şekilde ayarlanarak kaldırıldı.

    DrawScope.drawRoundRect, yarıçap için x ve y ekseni boyunca 2 ayrı kayan nokta değeri yerine tek bir Radius parametresi kullanacak şekilde güncellendi (I46d1b)

  • Recompose composable artık yararlı bir soyutlama değil. Yeniden oluşturma işlemlerinin çoğu MutableState atamaları sonucunda gerçekleştirilmelidir. Bunun dışındaki her şey için geçerli kapsamın yeniden oluşturulmasını tetiklemek üzere invalidate işlevini kullanmanız önerilir. (Ifc992)

  • Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b)

  • Compose derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, oluşturma derleyicisi çağrıları composable işlevlere dönüştürüyordu. Bu değişiklikle birlikte, composable fonksiyonunun gövdesini dönüştürüp çağrı sitesini (çoğunlukla) değiştirmeden bırakıyoruz.

    Bu, yazma çalışma zamanıyla iletişim kuran mantığın büyük bölümünün, çağrı sitesi yerine işlev gövdesinin başlangıcında gerçekleştiği anlamına gelir.

    Bu, tüm oluşturma kullanımı için kaynakla uyumlu bir değişiklik olmalıdır. Bu değişikliğin ardından, yazma kullanıcılarının çoğunun herhangi bir kodu güncellemesi gerekmez.

    Bu çalışmayı desteklemek için tüm composable işlevlerin JVM imzası değiştirildi. Tek bir parametreyi kabul eden bir composable işlev, 3 parametre kabul eden bir işleve dönüştürülür; ek parametreler "anahtar" tam sayısı olan Composer ve çağrılar aracılığıyla meta verileri yaymak için kullanılan bir bit maskesi tam sayısıdır.

    Oluştur özelliği artık varsayılan bağımsız değişkenleri de composable bir işleve dönüştürüyor. Bunu, işlevin kendisinin ek bir sentetik varsayılan aşırı yüklemesi olmadan yapar; böylece bu değişiklik daha az işlevin tanımlanmasına neden olur.

    Aşağıdaki durumlardan kaynaklanan bilinen kasıtlı davranış değişiklikleri:

    1. Bazı aramalar daha önce atlamadıkları noktalara atlanır
    2. Varsayılan bağımsız değişken ifadelerindeki composable ifadeler artık doğru şekilde abone olundu ve işlendi

    Bu çalışma kapsamında bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer composable fonksiyonlara aktarılır. Bu, çalışma zamanında daha az karşılaştırmaya neden olur, slot tablosu boyutunu küçültür ve daha önce atlanmamış composable işlevlerin daha fazla atlanmasını sağlar 2. Derleme zamanında "statik" olduğu belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Böylece karşılaştırma sayısını azaltıp slot tablosu boyutunu küçültebilirsiniz. 3. İşlevlerin gövdesinin kontrol akışı yapısı, oluşturulan grup sayısını en aza indirmek için kullanılır. Bu, slot tablosu boyutunu küçültür ve çalışma zamanında daha az iş yapılmasına neden olur 4. İşlevlere yönelik kullanılmayan gönderme ve alıcı parametreleri, işlevin gövdesinde kullanılmadıkları takdirde işlevin atlanabilirliğini belirlemeye dahil edilmez.

    Zarar veren değişikliklerin çoğu, derleyicinin doğrudan hedeflediği API'ler içindi ve tipik oluşturma kullanımı bu durumdan etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call kullanımdan kaldırıldı 4. key öğesinin değişken olmayan aşırı yüklemeleri kaldırıldı. Bundan sonra vararg sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı. Yedek olarak key kullanın. 6. ScopeUpdateScope::updateScope değeri, Function1 yerine bir Function3 öğesi beklenecek şekilde değiştirildi. 7. restartableFunction ve yeniden başlatılabilirFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi (I60756, b/143464846)

  • Kullanımdan kaldırılan LayoutLayout değiştiricileri kaldırıldı. (I10877)

  • DrawtierModifier'ın (I00aa4) yerini alan RepaintBoundary kaldırıldı

  • Button, FloatingActionButton ve Clickable'ın artık ayrı bir enabled parametresi vardır. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)

  • ButtonStyle farklı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenmiş örneklere bakın. (If63ab, b/146478620, b/146482131)

  • Ambients API'deki önemli değişiklikler. Ayrıntılar için günlüğe ve Ambient<T> dokümanlarına bakın (I4c7ee, b/143769776)

  • Varsayılan TextDirection davranışı LayoutDirection tarafından belirlenecek şekilde değiştirildi. Yani, LayoutDirection RTL ise varsayılan TextDirection RTL olur. Önceden TextDirection.ContentOrLtr/Rtl (I4e803) protokolü kullanılıyordu.

  • Hata düzeltmesi: Bir AnnotatedString verisinde yazı tipi ağırlığı ve yazı tipi stili iç içe yerleştirildiğinde metin doğru şekilde oluşturulmuyor. (I77a9d)

  • Text()'a yaygın olarak kullanılan parametreleri ekler. Şu anda Text(style = TextStyle = TextStyle(texthhizala.Center) gibi az sayıda parametrenin iletilmesi için yerel bir metin stili oluşturuyorsanız, artık parametreleri doğrudan sağlayabilirsiniz: Text(textalign = TextAlign.Center) (I82768)).

  • ui-android-text modülü, ui-text-android (I68cbe) olarak yeniden adlandırıldı