Kullanıcı arayüzü oluşturun

Cihazla etkileşim kurmak için gereken temel yazma kullanıcı arayüzü bileşenleri (ör. düzen, çizim ve giriş).
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
29 Kasım 2023 1.5.4 - 1.6.0-beta02 -

Yapı

Oluştur, androidx içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her birinin 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 notu grubunun bağlantıları açıklanmaktadır.

GruplandırAçıklama
compose.animationJetpack Compose uygulamalarında kullanıcı deneyimini zenginleştirmek için animasyonlar oluşturur.
compose.derleyici@Composable işlevlerini dönüştürün ve bir Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin.
compose.foundationKullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin.
compose.materialKullanıma hazır Materyal Tasarım Bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış Compose'un daha üst düzey giriş noktasıdır.
compose.material3Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşen ile Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenen tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlandı.
compose.runtimeCompose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı.
compose.uiCihazla etkileşim kurmak için gereken temel yazma kullanıcı arayüzü bileşenleri (ör. düzen, çizim ve giriş).

Bağımlılıkları bildirme

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

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

Modern

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.5"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.5"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme bölümüne bakın.

Geri bildirim

Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

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

Sürüm 1.6

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.ui:ui-*:1.6.0-beta02 yayınlandı. Sürüm 1.6.0-beta02 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ı. Sürüm 1.6.0-beta01 bu kayıtları içerir.

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alıcı DragAndDropTarget alanını açıkça ele alıyor ve sürükle ve bırak oturumuna dahil olmayı seçen bir lambda'ya sahip. DragAndDropModifierNode için artık iki fabrika işlevi mevcut. Biri aktarım, diğeri veri aktarımı için kullanılır (I69481)
  • maximumFlingVelocity, Kayan öğe olarak gösterilecek şekilde güncellendi. Dokümanlar, maximumFlingVelocity birimi hakkında daha net olacak ş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 diğer lambda'lar bunun yerini almıştır. Sürükleyip bırakma oturumlarından almak üzere bir DragAndDropTarget fabrika işlevi eklenmiştir (Iebf3a)
  • DragAndDropModifierNode.drag türü olarak DragAndDropInfo kaldırıldı. Artık transferData, süsleme boyutu ve sürükleme dekorasyonu DrawScope lambda için parametreleri alıyor

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

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

    DragAndDropEventType kaldırıldı (I645b1)

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

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

  • OriginalText yerine TextSubstitution koyun. (Ifa5a8)

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

  • Gelecekte yeniden kullanılmak üzere saklanan SubcomposeLayout alt öğeleri (ve buna göre LazyColumn gibi düzenler) devre dışı bırakılmış 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 kullanır (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, zarar verici bir değişikliktir. Yeni API'nin 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ü FontScaling (Ie804a) olarak yeniden adlandırıldı

Hata Düzeltmeleri

  • Herhangi bir metin düzenleyiciye odaklanılmamışsa SoftwareKeyboardController.show(), artık yazılım klavyesini göstermeyecek. (I2165a, b/301477279)
  • Aynı Oluşturma Görünümü'nde Down etkinliği almayan anahtarlar için donanım tuşu açma etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
  • ArcLine bölgesinde Gradyan Süpürme için oluşturucu desteği eklendi. (I4d5bb)
  • PageSize.Fixed için eşittir ve karma kodu 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 katman olmadan daha iyi performans gösterdiğinden Material3 Çip/Düğmesi için malzeme çekirdek katmanını kaldırın. (I55555)
  • Compose testlerine effectContext olarak 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 adlı onDrawDragShadow lambda, drawDragDecoration olarak, DragAndDropInfo ise 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 ayrıca doğrulama yapmadan SemanticsNodeInteraction.isDisplayed() ve SemanticsNodeInteraction.isNotDisplayed() özelliklerini kullanın. (I2c196, b/302100809)
  • null 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 parametresini Belirtilmemiş değeriyle değiştirerek temel tür kutulamadan kaçınırız. TextStyle ve Paragraf stilindeki oluşturucular, alıcılar ve diğer yöntemler, belirtilen parametreleri null olmayan türler olarak kabul edecek şekilde güncellendi. (I4197e, b/299490814)
  • XML'den GoogleFont okumak için GoogleFont aşırı yükünü ekleyin. (If8f59)
  • LoremIpsum PreviewParameterProvider, açık bir sınıf yapıldı. (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 FragmentContainerView ekleyerek şişirilen Fragment örneğini artık eşzamanlı olarak kaldırıyor. Böylece, değişiklikler sonrasında besteyi değiştirerek Canlı Düzenleme yöntemiyle ilgili sorunlar gideriliyor.onRelease (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 kaydetmeleri 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 alım almak için dragAndDropTarget Değiştirici ekler. (Ib7828, b/286038936)
  • Ayırma yapmayan 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 ayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)

Hata Düzeltmeleri

  • Optimize edilmiş XML vektör çekilebilir öğelerinin 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 simgelerinde 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ştiriciye onRestoreFailed() geri çağırması eklendi (Ie1d43)
  • ColorInt, FloatRange, IntRange, Size ve diğer değerleri belirtmek için çeşitli grafik API'lerine Androidx ek açıklamaları eklendi. (Id65c8, b/290950582)
  • PreviewScreenSizes tanımına (Ib61d3) showSystemUi=true ekleyin

Davranış Değişiklikleri

  • Compose, daha iyi okunabilirlik ve erişilebilirlik için artık doğrusal olmayan yazı tipi ölçeklendirmesini kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda, küçük metinlerin boyutu normal olarak 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ı kalmak için otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirme En İyi Uygulamaları başlıklı makaleyi inceleyin. (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ırlanmıştır. Oluştur 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 ilk yapıyı ekler. (If84ce)
  • RotaryScrollEvent içine deviceId ekleyin (Iba3bf)
  • 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. Böylece gözlemler kaldırıldı ancak düğümleri yerlerinde duruyor. Devre dışı bırakılan beste, setContent çağrısı yapılarak tekrar etkinleştirilebilir. (Ib7f31)
  • Yaşam döngüsünü yönetmek ve alt bestelerin yeniden kullanımı için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)
  • Modifier.focusGroup, kararlı API'lere yükseltildi. (I7ffa3)
  • ColorInt, FloatRange, IntRange, Size ve diğer değerleri 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ü önizlemeleri için kullanılabilecek geçerli Wear cihazlarını listelemek üzere Wear-tooling-preview kitaplığını kullanıma 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

  • Giriş ve çıkış animasyonu sırasında içeriği, animasyon kapsayıcısının boyutuna göre ölçeklendiren yeni giriş/çıkış geçişi türü. LookaheadScope Yeni tasarım eğlenceli özellikler 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)
  • Metin alanları düzeltildi. Bu alanlar klavyeyi gösterir ve readOnly doğru olduğunda düzenlenebilir. Odaklanıldığında readOnly doğru yerine yanlış olarak değiştirildiğinde klavyenin gösterilmemesi düzeltildi. (I34a19, b/246909589)
  • Kullanıcı arayüzü testinde global onaylar için genişletilmiş uygulama. (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 kaydetmeleri içerir.

API Değişiklikleri

  • Besteyi uygulayan kişiler tarafından uygulanabilecek bir hizmet konum belirleyici arayüzü eklendi. Bu arayüz, başka bir besteye, hizmet aramaları için orijinal Besteye yetki veren bir Beste uygulamasına olanak tanır. 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ı sağlamak için kullanılır. (I296b9)
  • PlatformTextInput* API, tamamen 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 artık kaldırıldı. Yeni API'ler tüm Layout'larla çalışabilen LookaheadScope API'leridir. (I12ac3)
  • SemanticsNodeInteraction.requestFocus, testlere 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 tarafından yapılan update geri çağırma işleminin ilk çağrısı, AndroidView öğesini uygulayan beste uygulandığında çalıştırılmak yerine görünüm eklenene kadar ertelenir. Bu, update geri çağırmasının, okunduğu bir durum bir efektle hemen değiştirilirse 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 bölgesinde ileriye dönük destek alın. Bu, ileriye dönük geçişteki LazyList öğesinin herhangi bir animasyonu (ör.öğe yerleştirme animasyonu, AnimatedVisibility vb.) atlamasına ve tüm alt öğeler için ileri doğru boyutunu ve konumunu hesaplamasına olanak tanır. Ön izleme geçişinden sonra, LazyList çocukları, ileriye dönük geçişte görüldüğü gibi gerçeğe göre bağımsız olarak canlandırabilir.

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

includeFontPadding, Oluştur'da varsayılan olarak "yanlış" (21d806) şeklindedir.

includeFontPadding, 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 özellik, metin referans değerlerinin üzerine veya altına uzanabilecek karakterleri yerleştirmek için kullanılır.

Bu Oluşturma 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 ekstra dolguyu kaldırarak tüm metinlerin kullanıcı arayüzünüzde oluşturulma biçimini değiştirir.

Kullanıcı arayüzü gereksinimlerinize ve kullandığınız yazı tipi metriklerine bağlı olarak az miktarda 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 renkli resimleri yeniden oluşturun. - Metin biraz hizasız. Özel negatif dolguları kaldırın veya gerekirse dolgu ekleyin.

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

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

Materyal stillerinizi yapılandırarak tüm kısa mesajlarınız için includeFontPadding özelliğini etkinleştirebilirsiniz. Parametre adlarının M2 ve M3 arasında değişebileceğ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/hatalar yaşıyorsanız sorun izleyiciyi kullanarak hata bildiriminde bulunun.

API Değişiklikleri

  • InputConnection#requestCursorUpdates (I0c69b) desteği
  • FocusRequester.saveFocusedChild ve FocusRequester.restoreFocusedChild eklendi (Ic557e, b/272302679, b/275157318)
  • Bit eşlem öğeleri yüklenmeye çalışıldığında, yüklenemeyecek öğe yolunun açıklamasıyla birlikte atılabilir öğeleri sarmalamak için ResourceResolutionException türü ekleyin. (I19f44, b/230166331, b/278424788)
  • Performans ve bellek ayırmaları için optimize edilmiş erişilebilirlik. (Iede48)
  • Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
  • Mevcut ölçüm kontrolünün ileriye dönük geçiş olup olmadığını belirten, IntrinsincMeasureScope ve onun uygulamalarındaki (ör. MeasureScope) yeni mülk. (I7a812)
  • Oluşturmayı alternatif yoğunluk/düzen yönü ve boyuta sahip 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 kümesi eklendi (Ia5a27)

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 adlı dosya onImeAction, SemanticsActions.PerformImeAction adı ise OnImeAction olarak yeniden adlandırıldı. (I8e841)
  • İç içe kaydırmada fare kaydırma ile sürüklemeyi ayırt etmek için Tekerlek ekler (özellikle NestedScrollConnection için). (Ie57e4)
  • Döndürülen nesne orijinal android.graphics.Paint öğesini (I22b4c) sarmaladığından toComposePaint yerine asComposePaint API'si eklendi
  • SemanticsProperties.imeAction öğesini kullanımdan kaldırın ve SemanticsActions.performImeAction için yeni bir parametreyle değiştirin. (I4a587)
  • Fareyle seçim yapma 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 ofsetlerini sınırların dışına atmak için kullanılan Paragraph yöntemleri artık MultiParagraph ile aynı şekilde IllegalArgumentException hatası veriyor. (I549d3, b/243338896)

Sürüm 1.5

Sürüm 1.5.4

18 Ekim 2023

androidx.compose.ui:ui-*:1.5.4 yayınlandı. 1.5.4 sürümü 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 uygulayarak karakterlerin kaybolmasına yol açar.

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 iş parçacığından Accessibility Scroll API'ye erişildiğinde yaşanan 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ı. 1.5.1 sürümü bu kayıtları içerir.

Hata Düzeltmeleri

  • Metin alanları düzeltildi. Bu alanlar klavyeyi gösterir ve readOnly doğru olduğunda düzenlenebilir. Odaklanıldığında readOnly doğru yerine yanlış olarak değiştirildiğinde klavyenin gösterilmemesi 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ı. Sürüm 1.5.0-rc01 bu kayıtları içerir.

Hata Düzeltmeleri

  • movableContentOf() içinde SubcomposeLayout kullanıldığında oluşan kilitlenme düzeltildi.

Sürüm 1.5.0-beta03

28 Haziran 2023

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

Hata Düzeltmeleri

  • Özel bir FocusTarget oluşturmak için kullanılabilecek FocusTargetModifierNode arayüzü eklendi. (Ifb1d6)
  • usePlatformDefaultWidth=true olduğunda alt pencerenin beklendiği gibi yeniden boyutlandırılmamasına neden olabilen İletişim ve Pop-up kompozitleriyle ilgili 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ı. Sürüm 1.5.0-beta02 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 (I22b4c) sarmaladığından toComposePaint yerine asComposePaint API'si eklendi

Sürüm 1.5.0-beta01

24 Mayıs 2023

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

API Değişiklikleri

  • Yeniden oluşturma, renk animasyonları ve AndroidComposeView (Ib2bfa) içindeki ayırmalar kaldırıldı
  • Yetkiye izin vermek için yardımcı eğlence amaçlı CacheDrawModifierNode() özelliği ekler (Icf8f9)
  • Önceden arama sonuçlarını gözlemlemek ve isterseniz ana geçişi etkilemek için MeasureScope üzerinden erişilebilen isLookingAhead mülküyle tanışın. (Ibf4c3)
  • TalkBack geçişindeki düğümleri yeniden sıralamak için kullanılan bir ondalık değer olan yeni semantik özelliği traversalIndex (düşük değerler önce gelir). (I9a81b, b/186443263)
  • isContainer semantik özelliğini isTraversalGroup olarak yeniden adlandırma (I121f6)
  • ColorProducer artık produce yerine operator fun invoke kullanıyor (I4a9a2)
  • Çeviri/ölçek/döndürme dönüşümlerini yol nesnelerine uygulamak için Path dönüşüm API'si ekleyin. (I23434, b/233772232)
  • ColorProducer yönteminin yöntemi produce olarak adlandırılır. (I78bde)
  • toFrameworkColorSpace grubunun adını toAndroidColorSpace olarak değiştirin (I4f547)
  • ColorLambda koleksiyonunun 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 kullanıma sunun. (Ie7db4, b/279979665)
  • Metin renginin verimli bir şekilde canlandırılmasına veya ayarlanmasına olanak tanımak için BasicText öğesine bir renk parametresi eklendi. (Iffd88, b/246961787)
  • TextRange.constrain adlı dosya TextRange.coerceIn olarak yeniden adlandırıldı. (I31be2)
  • Tam parametre listesiyle optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırıldı. Asıl amacımız bu alanı kaldırmaktı ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, kullanımdan kaldırmanın alandan kaldırılması (I98e96, b/277703184)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • AnnotatedString içindeki UrlAnnotation öğeleri 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ğil. (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'leri artık Android için deneysel değildir. (I668eb)
  • Enum.valueOf için değer parametresinin adı değiştirildi (Ia9b89)
  • enum valueOf (I818fe) değerinden daha fazla bildirilen 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'de metin çizerken farklı harmanlama algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)
  • Font.MaximumAsyncTimeout koleksiyonunun adını Font.MaximumAsyncTimeoutMillis olarak değiştirin. Yalnızca yeniden adlandırabilirsiniz. (I07af5)
  • @Preview referans cihazların güncellenmiş DPI değerleri (Id6151, b/254528382)
  • Metin fırçasını verimli bir şekilde canlandırmak veya ayarlamak için BasicText öğesine brush, alpha parametrelerini ekleyin.
  • Kayan, Çift, Uzun, İnt, Short in :ui:ui-unit için kutusuz lambda türlerini tanımlayın (I6f18d, b/246961787)

Hata Düzeltmeleri

  • İşaretçi hızı izlemede birden fazla ayırma kaldırıldı (I26bae)
  • Düzen ve işaretçi giriş 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 için doküman ekleyin (I7d9e2)

Harici Katkı

  • Vektör API'lerinde (I906cb) performans artırıldı ve tahsisler azaltıldı

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 özelliği geliştirildi. Bu işlem, delegate ve undelegate API'leriyle yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin açıkça yetki verilmiş düğüme atanması gerekiyordu. Bu değişiklikten sonra, DelegatingNode açıkça geçersiz kılınmadığı sürece düğüm arayüzleri, dolaylı olarak yetkilendirilecektir. (67352bc)

API Değişiklikleri

  • Yetki verilebilecek bir NestedScroll Modifier.Node olan NestedScrollModifierNode ile tanışın. (I69513)
  • AndroidViewBinding composable parametresine onReset ve onRelease parametreleri eklendi. Böylece AndroidView composable yansıtılabilir, görünüm ViewBinding ile yeniden kullanım desteği sağlandı. (I00b1e, b/276802519)
  • Compose Path API, daha hızlı yeniden kullanımla sık kullanılan Yol değiştirme kullanım alanlarını desteklemek için geri sarma işlemlerini destekleyecek şekilde güncellendi. (I7b797)
  • Tam parametre listesiyle optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) dahil olmak üzere birçok Metin API'si stabilize edildi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırıldı. Asıl amacımız bu alanı kaldırmaktı ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, kullanımdan kaldırmanın alandan kaldırılması (I98e96, b/277703184)

Hata Düzeltmeleri

  • Dialog bestesi tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmediği 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 içinde SubcomposeLayout için yeni varsayılan davranış: Koşullu alanları olmayan (ör.TabRow, Scaffold, BoxWithConstraints vb.) SubcomposeLayouts artık ileri doğru animasyonlarla sorunsuz çalışıyor.

API Değişiklikleri

  • Ön izlemeden ölçüm politikasını yeniden kullanan yeni varsayılan intermediateMeasurePolicy, varsayılan olarak Scaffold, TabRow ve BoxWithConstraints gibi koşullu alanlar içermeyen SubcomposeLayout alt türün ön izleme özelliğiyle çalışmasına olanak tanır. (Id84c8)
  • Bir Android penceresi için oluşturulan yeniden düzenleyici, ON_STOP bildirimi aldığında tüm bileşim yerine yalnızca withFrameNanos çağrılarını engelleyecektir. Bu, durdurulan etkinliklerle ilişkili pencerelerin, veri değişiklikleri için yeniden oluşturulmaya devam edeceği, ancak animasyonların veya withFrameNanos öğesini çağıran diğer kişilerin 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 üzere PlatformTextStyle.includeFontPadding desteği sonlandırıldı. (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ı işlemek için ek bir ara önlem politikası uygulayan yeni SubcomposeLayout API'si. (I017d3)
  • PointerInput artık geç değildir ve daha iyi performans için Değiştirici.Node'u kullanır (küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
  • Deneysel API'leri, Önemli etkinliklerle kararlı olarak değiştirir. (I9c7d8, b/261566839, b/261567368)
  • Deneysel API'leri PointerInputChange sürümünde 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 öğeleri artık TalkBack gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)
  • Donanım tuşlarına, yazılım klavyesine gönderilmeden önce müdahale edecek 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 anlamsal işlemi 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 için artık açık bir LookaheadScope gerekmiyor. IntermediateLayout'taki ölçüm bloğunun alıcı olarak IntermediatemeasureScope özelliği var. Bu yapıda uygun CoroutineScope, LookaheadScope ve measureScope özelliği var.(Ibe2e5)
  • LookaheadLayout, artık bir Layout olmayan LookaheadScope ile değiştirildi. Bu, LookaheadScope içindeki Chid içeriğinin doğrudan üst hesabın measurePolicy tarafından kontrol edilmesine olanak tanır. (Ibe2e5)
  • Değiştirici.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 ver. (Ib44df)
  • @Kullanımdan kaldırılan sınıfını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 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üyü etkileyen bir hata düzeltildi (b/276811828)
  • Özel odak giriş/çıkış özelliklerinde yalnızca lambda ilk kez çağrıldığında giriş/çıkış bloğunu çalıştıran bir hata düzeltildi (b/277234245)
  • focusProperties okunurken kilitlenmeye neden olan odak sistemindeki 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 kullanmaması, dolayısıyla beklenmedik davranışlara ve kilitlenmelere neden olması sorunu düzeltildi. (Ib67ee, b/275919849)
  • Oluşturulan Dialog tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan regresyon düzeltildi (I82551, b/262140644)

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.ui:ui-*:1.4.1 yayınlandı. Sürüm 1.4.1 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 sürümünden sonraki önemli değişiklikler

  • Geç liste öğelerinin sınırların dışına kaydırıldığında atılmaması için sabitlenmesini sağlayan 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, 3/29b}b/29b}
  • Yüzeyler'deki IsContainer semantik özelliğine eklendi. Bu özellik, geçiş sırasını yüzeyler gibi öğelerin anlamsal anlamına göre belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379)
  • Yeni bir erişilebilirlik rolü (DropdownList) eklendi. Bu, android.widget.Spinner öğesine odaklanırken TalkBack adlı kullanıcının 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 artık boşta kalan kareler yürütülürken (ör. waitForIdle aracılığıyla) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde doğrulama yapan 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ı. Sürüm 1.4.0-rc01 bu kayıtları içerir.

API Değişiklikleri

  • onReset parametresini kabul eden AndroidView birleştirilebilir işlevinin aşırı yüklemesi eklendi. Bestedeki düğümleri silinip uyumlu bir şekilde yeniden kullanıldığında View örneklerinin yeniden kullanılmasına olanak tanır. Bu, özellikle Görünümlerin LazyRows ve LazyColumns tanesi için kullanışlı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 uygulamasının SetText semantik işlemi, artık metin arabelleğini IME güncellemeleri ve test işlevleri (ör. performTextReplacement) ile aynı kod yolunu kullanarak günceller.
  • performTextClearance, performTextReplacement ve performTextSelection metin test işlevleri artık SemanticsActions kullanıyor. (I0807d, b/269633168, b/269624358)

Sürüm 1.4.0-beta02

22 Şubat 2023

androidx.compose.ui:ui-*:1.4.0-beta02 yayınlandı. Sürüm 1.4.0-beta02 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ıldığında (örneğin, LazyColumn öğesi olarak) destek kaydını düzgün bir şekilde işlemek için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni bir Modifier.Node.onReset() geri çağırması eklendi. Odaklanılan durumu düzgün bir şekilde sıfırlamak için FocusTargetModifierNode düzeltildi. (I65495, b/265201972)
  • Tuval'de 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 odak sırası algoritması iyileştirildi. Örneğin, üst/alt çubuklar daha sık (sırasıyla önce/sonuncu olarak okunur) okunur (74e9c5)

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.ui:ui-*:1.4.0-beta01 yayınlandı. Sürüm 1.4.0-beta01 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. waitUntil API, tüm eşleştiricileri ve düğüm sayısını kabul edecek şekilde genişletildi. Daha fazla doküman için ComposeTestRule adresini ziyaret edin. (Ifa1b9, b/226934294)
  • Font.MaximumAsyncTimeout koleksiyonunun adını Font.MaximumAsyncTimeoutMillis olarak değiştirin. (I07af5)
  • GoogleFont.Provider.AllFontsListUri dosyası kaldırıldı ve bunun yerine ktdoc'ta bağlandı. (16f29)

Hata Düzeltmeleri

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

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 ve rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)
  • 1 boyutlu hızı izlemek için yeni bir API ekleyin (If5a82)
  • FocusRequester artık @Stable olarak işaretlendi. (I580ee)
  • usePlatformDefaultWidth parametresini alan deneysel ek açıklamayı DialogProperties oluşturucudan kaldırın. (Ic4048)
  • PathMeasure.getPosition() ve PathMeasure.getTangent() ile (I3b47c) bir yol üzerinde belirli bir mesafedeki hesaplama konumuna ve tanjanta hesaplama işlevi eklendi
  • Yanlışlıkla herkese açık ayarlayıcı PlatformParagraphStyle tarihinde kaldırıldı. (I07f47)
  • Satır içi/kullanımdan kaldırılan gizli işlevlerin daha fazla tür/boş kullanılabilirliği (I24f91)
  • Sıfır ayırma içeren ek açıklamaları sorgulamaya AnnotatedString.hasStringAnnotations ekleyin. (I94dfe, b/246960758)
  • TextMeasurer.measure işlevi için, metin olarak String alan yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)
  • TextStyle'daki LineBreak ve Hyphens API'leri kararlı sürüme geçirildi. (Ic1e1d)

Harici Katkı

  • TextInputSession ve TextInputService kapsamı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 atılmaması için sabitlenmesini sağlayan 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, 3/29b}b/29b}
  • Yüzeyler'deki IsContainer semantik özelliğine eklendi. Bu özellik, geçiş sırasını yüzeyler gibi öğelerin anlamsal anlamına göre belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379)
  • Yeni DropdownList erişilebilirlik rolü eklendi. Bu, android.widget.Spinner öğesine 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 artık boşta kalan kareler yürütülürken (ör. waitForIdle aracılığıyla) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının bağımsız karelerinde doğrulama yapan 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 ayarlandı. Bu ayar, önceki varsayılan davranışı değiştirmeyecek. (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ında artık, grubun satır içi oluşturulabilir bir işleve çağrı için olup olmadığını belirten bir alan (isInline) bulunuyor. isInline değeri true ise çağrı, satır içi oluşturulabilir bir işleve yapılır. Bununla birlikte, satır içi işlev bilgilerini oluşturmayan bir oluşturma derleyici eklentisinin sürümüyle derlenmiş modüllerden satır içi oluşturulabilir işlevlere yapılan çağrılar için yanlış olabilir. (Idb846)
  • Önceden deneysel API'lerden bazıları 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() kurucuları artık kararlı API'dir (I5948b, b/261435386)
  • DeviceFontFamilyName artık kararlı (I8b640, b/261435386)
  • variationSettings ile AndroidFont oluşturucu artık kararlı bir API ve yeni yazı tipi tanımlayı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 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ı bir API. (I90c84, b/261561612)
  • pluralStringResource artık kararlı bir 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 ürünü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)
  • rememberNestedScrollConnection parametre görünümü, kök görünümünden ana makine görünümüne güncellendi. (Ia5200)
  • Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API'si eklendi. (I2ba9d, b/203141462)
  • Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda, basın etkileşimlerini doğru şekilde geciktirmek için Clickable içinde kullanılır.
  • Bir Scrollable ViewGroup içinde kullanıldığında Clickables dalgalarını doğru şekilde geciktirmemesi düzeltildi.
  • Hareketlerin kaydırma etkinliğine dönüşmesi ihtimaline karşı Çekmeceler ve E-Tablolar, basmaları doğru şekilde geciktirecek şekilde güncellendi.
  • graphicsLayer öğesinin her zaman ara arabelleğe (I47dc1) dönüştürüleceğini belirtmek için CompositingStrategy.Always öğesi Offscreen olarak yeniden adlandırıldı
  • Birden fazla içerik yuvası içeren düzendeki aşırı yükleme artık kararlı (I10566, b/248294649)
  • Test davranışını ve performansı incelemek amacıyla, test kapsamında Perfetto izlerini (Sistem İzlemeleri olarak da bilinir) yakalamak için, deneysel yeni API'ler PerfettoTrace.record {} ve PerfettoTraceRule 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ğırmalarının çalışması bitene kadar gönderilmez. 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ğırmaların içine taşınması gerekebilecek işlevlere iletilen geri çağırma dışında bir mantığı vardır. Örnekler için bu EKL'deki animasyon test değişikliklerini inceleyin.
  • withFrameNanos geri çağırmalarından sonra, ancak arayanların eş yordamlarını devam ettirmeden önce kodun çalıştırılması 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 ürününde değişiklikler yapıldı. Bu, oluşturma Pop-Up'larının kullanıldığı ekran görüntüsü testleri için yararlıdır. (I169c5)

Bağımlılık Güncellemeleri

  • Oluşturma Kullanıcı Arayüzü ve Oluşturma Materyali artık Yaşam Döngüsü 2.5.1'e bağlıdı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 değer, graphicsLayer dönüşümlerini Oluşturulabilir boyutunun bir işlevi olarak hesaplamak için yararlıdır. (If8c43,b/181387080)
  • graphicsLayer içeriğini oluşturmak için ekran dışı birleştirme katmanından ne zaman yararlanılacağını belirlemek üzere CompositingStrategy kullanıma sunuldu. Otomatik, alfa uygulanırsa veya RenderEffect/Overscroll uygulanırsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Her zaman ModulateAlpha ürününün ekran dışı arabellek kullanmaktan kaçınacağı ve bunun yerine graphicsLayer içinde kaydedilen çizim talimatlarının her birini değiştireceği bir ekran dışı arabellek kullanılır. ModulateAlpha kullanımı, RenderEffect/Overscroll kullanımları için ekran dışı arabelleğe alınmaya devam eder (I25e82, b/256382834)
  • Düzen ve çizimde tüm hiyerarşilerin geçersiz kılınmasına olanak tanımak için invalidateSubtree(), Modifier.Node öğesine eklendi. (I4bd90)
  • rememberNestedScrollInteropConnection sürümünü kararlı sürüme yükseltin. rememberNestedScrollInteropConnection için kök görünümü geçirme özelliği kullanıma sunuldu. Bu, özel görünümün, özellikle standart olmayan görünümlerde (ör. ModalBottomSheetDialog) kaydırma kısıtlamalarına daha iyi tepki vermesine yardımcı olabilir. (I9e107)
  • Daha önce okuduğu 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
  • Yeni eklenen animasyonlar için daha iyi destek sağlamak üzere 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 kaybolamaz.
  • Hareketler arasında etkinliklerin kaybolmasına izin verdiği için forEachGesture() kullanımdan kaldırıldı. Bu nedenle awaitEachGesture() kullanıma sunuldu. (Iffc3f, b/251260206)
  • Android'de erişilebilir nesnelerin geri dönüşümü kullanımdan kaldırılıyor. Performans değişikliklerinin, desteklenen en eski sürümlerde bile ihmal edilebilir düzeyde olduğunu tespit ettik. (I0a961)
  • Dış çizgili metnin çizimini 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 sahiptir.
  • Paragraph ve MultiParagraph boyama işlevine, dış çizgili metnin çizimini sağlayan DrawStyle parametresi eklendi. (Ic8102, b/155421273)

Harici Katkı

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

Sürüm 1.3

Sürüm 1.3.3

11 Ocak 2023

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

Hata Düzeltmeleri

  • Android 9'da Etkinlik, Oluşturma Görünümü'nün durumunu kaydederken bazen yaşanan kilitlenme için düzeltme uygulandı. (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) içinde güvenlik uyarısı alınmasını önleyen Profobuf 3.21.8 sürümü 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 sürümünden 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 yerine daha yüksek performanslı alternatif)
  • Geliştirilmiş pencere iç öğeleri desteği.
  • LazyLists'teki D-Pad'ler ve donanım klavyesi için odaklanma desteği.
  • İ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 değişiklik - beta01 sürüm notlarında gerekçe)
  • Çok sayıda küçük, kesintisiz 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ı. Sürüm 1.3.0-rc01 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 oluşturulabilir. (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

  • Düzen için, oluşturulabilecek birden fazla lambda içeren bir listeyi kabul eden deneysel bir aşırı yükleme eklendi. Bu, farklı içerik lambda'larına farklı şekilde yerleştirilen ölçülebilir öğelerin tehdit edilmesine olanak tanır (Ic1b4e)

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

  • FocusDirection.In ve FocusDirection.Out desteği sonlandırılıp FocusDirection.Enter ve FocusDirection.Exit ile değiştirildi. (Ia4262, b/183746982)
  • FocusManager.moveFocus(Enter) ve FocusManager.moveFocus(Exit) için özel davranış belirtmek üzere iki yeni odak özelliği giriş ve çıkış eklendi. (I5f3f9, b/183746982)
  • Artık bir odaklanma hareketini iptal etmek için FocusRequester.Cancel işlevini kullanabilirsiniz. FocusRequester.Cancel, şu odak özelliklerinden 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üzeltme

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 değişiklik, Compose'daki birçok değiştiricinin herkese açık API'sini etkilemeyen bir yeniden düzenleme işlemiydi ve yalnızca uygulama amaçlı bir değişiklik olarak görülebilir. Bununla birlikte, bu değişiklik çeşitli nedenlerle önemli bir değişikliktir. (Ie4313)

Özeti Değiştir

Eklenen deneysel Modifier.Node API'leri, düzen düğümünün yaşam döngüsüyle korunacak bir örnekte durumun korunmasını sağlayan bir soyutlama sağlar. Bu soyutlama, etkinliği oluşturan 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, bu yeniden düzenlemenin etkilenmediği birkaç alt sistem mevcuttur ve davranış büyük olasılıkla, testlerimizin kapsamına girmeyen ve henüz bulunmamış ve düzeltilmemiş şekillerde değişmiştir.

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

Deneysel API'ler

Yeni "Değiştirici Düğüm" kavramıyla 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şimlerde 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 erişilebilirlik hatası riskini azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up'ın içindeki içerikle etkileşim kurabilmesini 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 etkilenirsiniz. İletişim kutusu veya pop-up'ınızın yüksekliğini azaltmayı düşünün. Bu yeni davranışı devre dışı bırakmanız gerekirse kendi iletişim kutunuzu veya pop-up'ınızı istediğiniz yükseklik ayarıyla bölebilirsiniz. Erişilebilirlik olumsuz yönde 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 düzeltildi (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 desteklemesine izin vermek için DialogProperties.decorFitsSystemWindows özelliği eklendi. (I57742, b/229378542)
  • İkili dosya 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ıkıştırma API'lerine izin veren kapalı 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 ile ilgili parametreleri 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 kaydetmeleri içerir.

API Değişiklikleri

  • LayoutCoordinates.findRootCoordinates() artık herkese açık (I7fa37, b/204723384)
  • PlacementScope içinde LayoutCoordinates almak için deneysel API eklendi. Geliştiriciler bu sayede, mevcut düzenin alt öğelerini konumuna göre yerleştirecekleri yeri öğrenebilirler. (I5482b, b/238632578)
  • Bir LayoutCoordinates'dan diğerine Matris dönüşümü 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ı (API 26+) belirlemeyi destekliyor. (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 beklenmektedir|gerçek ve tanımlanmıştır. (Id387e, b/239962983)
  • Arayüz Paragrafı artık Paragarph arayüzü için kapalıdır. Paragrafı alt sınıflandırma için kullanım alanı yoktur. Bu değişiklik sizi etkiliyorsa bize ulaşmanızı öneririz. (If5247, b/239962983)
  • PlatformTextStyle ve LineHeightStyle adlı biçimlerden deneysel ek açıklama kaldırıldı. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard öğesini kullanımdan kaldırın. Lütfen bunun yerine uygulama kodunda SoftwareKeyboardController, IME yönetim kodunda da 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 izni 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ı. 1.3.0-alpha02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Baskıyı almak için yeni PointerInputChange#pressure özelliği eklendi. (I45a5e, b/205164819)
  • Oluşturulan TextMeasurer örneğini 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 ürününden kaldırın. Kaldırılan işlevler arasında pressKeys, keysDown ve keysUp yer alıyor. (I81d77)
  • KeyInjectionScope içinde, söz konusu sabit değerlerin ve parametrelerin birimlerinin milisaniye olduğu "Millis" son ekini içerecek şekilde yeniden düzenlenen sabit değer ve parametre adları (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 bir DrawScope üzerinde çalışan birleştirilebilir öğeler ve değiştiriciler üzerinde çok stilli metin çizmek için bir yol sağlamak üzere 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 sayede araçlar, AsTree'de olduğu gibi bellekte kopya oluşturmadan SlotTree öğelerini inceleyebilir. Layout Inspector için bu durum, yaklaşık 10 faktörlü bir performans artışı sağlar. (I5e113)
  • Geliştiricilerin kitaplıklardaki MultiPreview ek açıklamalarını yazmalarına ve yeniden kullanmaları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. Böylece 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 mevcutken AnnotatedString.toUpperCase nedeniyle oluşan 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çüm/düzenden önce önizleme geçişini destekleyen yeni LookaheadLayout. Bu yöntem, değiştiğinde düzenin önceden hesaplanmasına olanak tanırken aynı zamanda, ileri tarihli ölçüm/düzenin hedefe yönelik boyutu ve konumları canlandırmak için önceden hesaplanmış boyutu/konumu kullanmasına izin verir. SubcomposeLayouts henüz desteklenmiyor ancak ileriki 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şlevini çalışma zamanına taşıma (I4f729)

Hata Düzeltmeleri

Harici Katkı

  • Yeni API WindowInfo.keyboardModifiers API'si eklendi. API'nin, composable işlevlerde veya engagementFlow (Icdb8a) aracılığıyla durumunu gözlemlemesi gerekir

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

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

Hata Düzeltmeleri

  • İnceleyicideki boş işaretleyici 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 sürümünden sonraki önemli değişiklikler

  • Odak geçişinde iyileştirmeler:

    • Geç listelerin odaklanma odaklı kaydırma özelliği artık yeni BeyondBoundsLayout temel API'yi kullanarak çalışıyor
    • FocusOrder ve FocusProperties sürümlerindeki yeni davranış özelleştirme API'leri
    • Fiziksel klavye veya TV uzaktan kumandasıyla iyileştirilmiş davranış
  • Şu kuruluşlar için yeni API'ler:

    • Pencere içleri
    • Hareket odaklı, sonsuz ve düzen animasyonları için 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ı. Sürüm 1.2.0-rc03 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ı. Sürüm 1.2.0-rc02 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ı. Sürüm 1.2.0-rc01 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şturulmuştur
  • Diğer tuşlar basılı tutulurken veya açıkken tuşlara basmak için KeyInjectionScope öğesine üst düzey işlevler eklendi. Bu işlevlere withKeysDown, withKeysToggled vb. dahildir. Ayrıca belirli bir meta tuşun devre dışı olup olmadığını kontrol etmek için kullanılan özellikler de eklendi. Örneğin, kontrol tuşlarından birinin basılı olup olmadığını kontrol etmek için isCtrlDown. Her işlevle ilgili dokümanlar için KeyInjectionScope bölümüne bakın. (I9f6cd, b/229831515)
  • Özel fazla kaydırma efektlerine ve bunu kabul eden Modifier.scrollable aşırı yüklemelere olanak tanımak için 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ştirerek 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ı. Sürüm 1.2.0-beta03 bu kayıtları içerir.

API Değişiklikleri

  • pressKeyTimes, isCapsLockOn ve arkadaşları KeyInjectionScope koleksiyonuna eklendi. Ayrıca, API artık bir meta tuşu basılı tutarak fare düğmesinin tıklanması gibi fare ve klavyeyle birleşik ekleme kalıplarını da destekliyor. (I4c8da, b/229831515)
  • Önemli etkinliklerin eklenmesi için deneysel destek eklendi. Önemli etkinlikleri göndermek için performKeyInput kullanın veya performMultiModalInput ile çoklu modal giriş hareketi sırasında bunları MultiModalInjectionScope öğesinin key özelliği aracılığıyla gönderin. API belgeleri için KeyInjectionScope sayfasına bakın. (Ic5000, b/229831515)
  • Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni GoogleFont.Provider.AllFontsListUri ekleyin.
  • GoogleFonts, oluşturma sırasında yüklenemediğinde gösterilen hata mesajları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ı, hızlı ayarlar karosundan geçiş yapıldıktan hemen sonra, etkinlikten ayrılıp tekrar girmenize gerek kalmadan bestelere uygulanır. (I843d5, b/225937688)
  • Erişilebilirlik dizesi araması, yazı tipi yüklemesini tetiklemez. Önceden, StyleSpans için yazı tipleri yüklenmeye çalışılıyordu. Bu da FontFamily.Resolver değerinin üzerine yazılması halinde kilitlenmelere neden oluyordu. (I4609d)
  • İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand artık oluşturucu bağımsız değişkenlerinin negatif olmamasını gerektiriyor. (Ica8e6, b/199919707)

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.ui:ui-*:1.2.0-beta02 yayınlandı. Sürüm 1.2.0-beta02 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 bertaraf işleminin yapılmamasını değil, imha edilmesinin 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ı. Sürüm 1.2.0-beta01 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 deneysel BeyondBoundsInterval eklendi (Ifabfb, b/184670295)
  • Modifier.composed 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 hedef ek açıklama kullanmak, derleyicinin dosyadaki tüm oluşturulabilir 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 Oluştur kullanıcı arayüzü uygulayıcısını hedeflediği bildirilir. Başka bir uygulayıcıyı hedeflemesi gereken bir fonksiyon, istenen uygulama için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)
  • Platformdan bağımsız, deneysel yeni test API'si kullanıma sunuldu: TestRule öğesine ihtiyaç duymadan Compose kullanıcı arayüzü testlerini çalıştırmak için kullanılabilecek bir interface ComposeUiTest ve fun runComposeUiTest(block: ComposeUiTest.() -> Unit). ComposeTestRule olmadan test çalıştırmak için testi lambda olarak runComposeUiTest öğesine geçirin ve ComposeUiTest alıcı kapsamında, ComposeContentTestRule ile aynı yöntemler ve üyeleri kullanın.

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

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

    Bir testi ComposeTestRule ürününden ComposeUiTest birimine 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()
        }
    }
    

    Alıcı:

    @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 ile sınırlı değil. Bu nedenle, ComposeUiTest üzerindeki uzantı işlevleri henüz TestRule arayüzünde çağrılamaz. ComposeUiTest, kararlı API'ye geçiş yaptığında ComposeContentTestRule ve ComposeTestRule, ComposeUiTest yerine geçecek şekilde değiştirilir. (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 öğesindeki varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)

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

  • trimFirstLineTop, LineHeightBehavior işlevinin trimLastLineBottom özelliği tek bir sıralamaya dönüştürüldü: LineHeightTrim. LineHeightTrim, iki boole ile tanımlanan 4 durum değerine sahip: FirstLineTop, LastLineBottom, Her ikisi ve Hiçbiri (Ifc6a5, b/181155707)

  • LineHeightBehavior, TextStyle ve ParagraphStyle bölümlerine 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 etmek mümkündür.

  • 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 olarak değiştirildi (I9a268)

Hata Düzeltmeleri

  • PointerInputChange::copy dokümanlarında bunun yüzeysel bir kopya olduğu artık doğru bir ş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 includeFontPadding etkinleştirildi. TextStyle.platformTextStyle özelliğini kullanarak includeFontPadding devre dışı bırakılabilir. 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 edebilir ve TextField kırpma sorunlarını çözebiliriz. (I01423, b/171394808)

Harici Katkı

  • MouseInjectionScope.scroll(delta = someDelta), Android'de artık dikey olarak kaydırdığımızda ters çevrilmiş halde duruyor (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şimin mümkün olması için deneysel olarak işaretlenmiştir. (If24e4)
  • Paragraf ve Çoklu Paragraf artık Kısıtlamalar parametresini kabul ediyor. Constraints.maxHeight değerini atlamak şu an için bir işlem yapamaz, ancak ileride yüksekliğe göre elips yapmak gibi bazı hesaplamalar yapılabilir. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() artık yeni öğe eklemeye izin vermeyen MutableSet benzeri özel bir sınıfı kabul ediyor. (Icd314)
  • PointerIcon artık bir @Stable arayüzü (I9dafe)
  • PointerInputChange konumunda kısmi tüketim (düşük VEYA konum) kullanımdan kaldırıldı. Değişiklikten tamamen yararlanmak için consume() öğesini kullanabilirsiniz. Daha önce başka birinin değişikliği uygulayıp uygulamadığını belirlemek için isConsumed kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturuyor. Bu da PointerInputChange kopyalarının biri kullanıldıktan sonra tüketileceği anlamına gelir. Bağlantısı kaldırılmış bir PointerInputChange oluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)
  • Oluştur ve Görünüm arasında, Oluştur > Görünüm yönünde iç içe yerleştirilmiş kaydırma birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturma üst öğelerinin 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'u View sistemi için tasarlanan UIAutomator testleriyle uyumlu hale getirmek için kullanılabilen yeni SemanticsProperty testTagsAsResourceId. (I39c20)
  • FontFamily.SansSerif kullanılırken Android'de sistem yazı tipleri için mevcut tüm ağırlıkları göster. Bu ayar, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adlarını kullanı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ğitmenler, konumsal bağımsız değişkenleri isteğe bağlı bağımsız değişkenlerin önüne gelecek şekilde yeniden sıraladı. (Idafaa)
  • AndroidFont artık yapıcı parametre olarak typefaceLoader'ı kullanıyor. (I2c971)

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.ui:ui-*:1.2.0-alpha07 yayınlandı. 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ğerlerindeki 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 özelliklerinden yararlanmak, ancak gereksiz yeniden oluşturma veya yeniden ölçüme neden olmadan değeri okuyabilmek istediğiniz kullanım durumlarında faydalı olabilir. (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, hiyerarşide ComposeViews her birinin birbirine müdahale etmeden WindowInsets uygulanmasına izin verilir. (I0ef08, b/220943142)
  • Özellikle IME'de ondalık ayırıcının eklenmesi için Keyboard.Number alternatifi olarak KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'ler (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ışabilirlik özelliğini etkinleştirin. Bu, oluşturma özelliğinin artık kaydırma deltalarını (işbirliği yapan) bir Üst Görünüme 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ı ve yerine Font(String, AssetManager, ...) getirildi. Bu deneysel bir API'dir. (I1c7a4)
  • İsteğe bağlı olarak, yazı tipi yedek zincirleri sırasında sistem tarafından yüklenmiş yazı tiplerini aramak için yeni yazı tipi tanımlayıcı 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ını ekleyin. (I64e31)
  • @ArrayRes ile kullanmak için GoogleFont.Provider kurucusu ekleyin (Ic5ee1, b/225984280)
  • Compose GoogleFont artık Font(GoogleFont) olarak adlandırılıyor. API, aksi takdirde kararlı kalmaya devam edecek. (I125f2)

Hata Düzeltmeleri

  • İç dolgunun kullanıldığından emin olmak için malzemeye/İskeleye 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 kaydetmeleri içerir.

API Değişiklikleri

  • Odaklanabilir hedefe odaklanma isteğinde bulunmak için RequestFocus semantik işlemi eklendi. (I17b71)
  • Geçerli düzen yönü RTL ise 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)
  • API uyumluluğu amacıyla gölge/ortam renkleri, Modifier.graphicsLayer öğesinin son parametreleri olacak şekilde güncellendi (I3f864, b/160665122)

  • Bozulmayan API değişikliklerinden emin olmak için GraphicsLayerScope işletim sisteminde gölge/ortam rengine varsayılan uygulamalar eklendi

  • RSB etkinliklerine etkinlik saati eklendi (Ief8ae)

  • FocusOrder, FocusProperties adlı altında birleştirildi ve focusProperties() artık focusOrder() ürünü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ına olanak tanır. (I601b7)

  • Artık hem RecyclerView hem de Compose yeni sürüme geçirildiğinde, Oluşturma görünümleri alt öğe olarak RecyclerView'ların kaydırma performansı çok daha iyi olacaktır.

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

  • Yeni varsayılan strateji olan ve RecyclerView gibi havuz kapsayıcılarını düzgün bir şekilde 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, Oluşturulabilir yöntemlere veya diğer ek açıklama sınıflarına not eklemek için kullanılabilir. Böylece bu ek açıklama sınıfları, belirtilen @Preview ile dolaylı olarak eklenmiş olarak kabul edilebilir. (I12eff)

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

Hata Düzeltmeleri

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

Harici Katkı

  • generate-ui: GraphicsLayerScope alanına ambientShadowColor ve spotShadowColor özellikleri ekleyin (I1ba1a, b/160665122)
  • Çoğul kaynaklar artık pluralStringResource işlevleri aracılığıyla 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 alıyor. (Ib2eb9, b/197950089)
  • Temel ve uygulama uyumluluğundaki null değer, Tiramisu DP2 (I0cbb7) ile eşleşecek şekilde güncellendi.
  • Ölçülen arayüz artık parentData özelliğini gösteriyor (I3313f)
  • 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ştirici eklendi (If8b51, b/184670295)
  • Metin: includeFontPadding artık varsayılan olarak devre dışı. includeFontPadding=false sonucunda ortaya çıkan kırpma sorunları ele alınır ve uzun komut dosyalarında kırpma işlemi gerçekleşmez. (I31c84, b/171394808)

Hata Düzeltmeleri

  • Halihazırda içerik varken içerik ayarlamaya çalışırsanız ComposeContentTestRule.setContent artık bir IllegalStateException gönderir. (I888a5, b/199631334)
  • Android'de panodan okuma sırasında pano içeriğinin neden olduğu kilitlenmeyi düzeltin. (I06020, b/197769306)
  • RSB kaydırma örneklerini iyileştirin. (I6a596)

Harici Katkı

  • Kotlinx eş yordamları 1.6.0 (I3366d) kullanılacak ş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

  • Oluşturulabilir bir işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleme olarak adlandırıldığı durumların derleme zamanı raporlamasını sağlayan ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget eklendi.

    Çoğu durumda, ek açıklamalar yazma derleyici eklentisi tarafından anlaşılabilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadirdir . Tahmin edilemeyen durumlar arasında özel bir uygulama aracı, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), oluşturulabilir lambda olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler tahmin edilir) oluşturup kullanma veya ComposeNode ya da ilgili bir oluşturma işlevi kullanılır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağıran oluşturulabilir işlevlerin, işlev ve oluşturulabilir 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 ek açıklama, uygulama parametresi olarak özellik sınıfının tam nitelikli adına sahip ComposbleTarget ile 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ı bir API. (I1ee35, b/174162090)

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

  • Ö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 bestelere aktarılır.
  • Sağlanan Font.ResourceLoader, Pop-up gibi alt bestelere 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 içindeki notifyFocusedRect yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerine BringIntoViewRequester politikasını 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 lambda'yı, durumunu hareket ettiren bir lambdaya ve karşılık gelen düğümleri, adı verilen yeni bir konuma dönüştüren movableContentOf eklendi. Önceki çağrı besteden çıktığında, durum geçici olarak korunur ve lambdaya 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 lambdası 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 çıkıp yeni çağrılar girdikçe durum, ilk ayrılan çağrılardan gelen çağrılara çağrıldıkları sırayla 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

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

  • Paragraf ve Çoklu Paragraf artık FontFamily.Resolver

  • 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ışlı eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text and TextField (Metin ve TextField) tarafından kullanılır ve FontFamilyStepr 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 yazı tipi kaynağı tanımlayıcı türleri sağlamak için kullanılan 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ının sağlamadığı bir kaynaktan bir yazı tipi yükleme.

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

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

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

  • Typeface(FontFamily) oluşturucunun desteği sonlandırıldı. Bu özellik, önceden 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ı tipleri sayesinde bu çağrı 10 saniye boyunca engellenebilir. Bunun yerine FontFamilyResolver.preload politikasını kullanın.

  • fontResource(FontFamily): Typeface desteği sonlandırıldı. Bu özellik, önceden 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 oluşturucuyu kabul eden SubcomposeLayoutState kurucusu artık kullanımdan kaldırıldı. Bunun yerine, SubcomposeSlotReusePolicy'yi kabul eden yeni bir oluşturucu var. Bu yeni arayüz, hangi alanların gelecekte yeniden kullanılmak üzere saklanacağını ayrıntılı şekilde kontrol etmenizi sağlar. (I52c4d)

  • Color'deki HSV ve HSL işlevini, deneysel olmayan API olarak gösterir. Oklab renk alanı artık herkese açık bir API'dir. (I08fb6, b/180731008)

  • Herkese açık API'ye yönelik olmaması amaçlanan ve sizin için herhangi bir işlem yapmayan AndroidComposeTestRule.AndroidComposeStatement kullanımdan kaldırıldı. (Ibc46b)

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

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

  • Global yazı tipi yükleyicinin 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> (I4406c, b/174162090) değerini döndürür

Hata Düzeltmeleri

  • Metin Alanları artık odaklanıldığında ve klavye gösterildiğinde, yumuşak giriş modu ADJUST_PAN olduğunda klavyenin üzerinde tutulacaktır. (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)
  • Odak metin alanları arasında değiştirildiğinde dokunmatik 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 kaydetmeleri içerir.

API Değişiklikleri

  • Dönen yan düğmesi olan Wear cihazları için Modifier.onRotaryScrollEvent() ve Modifier.onPreRotaryScrollEvent() eklendi (I18bf5, b/210748686)
  • Deneysel View.createLifecycleAwareRecomposer uzantısını (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 değerini 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ı yoktur. (Ica5ef)
  • Düzen İnceleyici'de değişmez 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 uygulamasına bağlı.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

androidx.compose.ui:ui-*:1.1.1 yayınlandı. Sürüm 1.1.1 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 olduğu kilitlenmeyi düzeltin. (I06020, b/197769306)
  • LazyVerticalGrid cinsinden sabit RTL (aosp/1931080, b/207510535)

Sürüm 1.1.0

9 Şubat 2022

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

1.0.0 sürümünden sonraki önemli değişiklikler

  • Android 12 Fazla kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
    • Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik kurallarına uyacak ş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 boyutuna genişler. Bu, Materyal Oluşturma Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirerek Görünümler ve Oluşturma'yı 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ı Desteği
  • Önceden deneysel API'lerden bazılarını 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ı. Sürüm 1.1.0-rc03 bu kayıtları içerir.

Hata Düzeltmeleri

  • Compose Material 1.1.0-rc03 sürümünü destekleyecek şekilde güncellendi

Sürüm 1.1.0-rc01

15 Aralık 2021

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

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
  • SemanticsNodeInteraction.captureToImage(), görüşme süresince (Idf3d0) etkinleştirildiğinde HardwareRenderer.isDrawingEnabled() false olduğunda da çalışır

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-beta04 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 null değer temizlendi (I7078a, b/204917439)
  • Kullanıcıların PointerInputchange'i bir bütün olarak kullanmalarına veya tüketilip tüketilmediğini kontrol etmelerine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
  • Kullanıcı arayüzü katmanında fare kaydırma tekerleği etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
  • Eşitlik açısından karşılaştırılacak ve optimizasyonları atlamaya uygun olacak anahtarları kabul eden deneysel Modifier.composed aşırı yüklemeleri ekleyin. (Ice799, b/205851704)
  • ComposeNotIdleException, artık doğrudan Throwable yerine Exception ile sunuluyor. Bu, Exception yakalayan yakalama ifadelerinin artık ComposeNotIdleException öğelerini yakalayabileceği ancak önceden bunu yapmadıkları anlamına gelir. (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 izin vermek için yeni Modifier.onPlaced değiştiricisi eklendi. Dolayısıyla, gözlemlenen yerleşim değişikliğine göre alt değiştiricinin ofsetinde ek değişiklikler yapılabilir. (I558fd)
  • InjectionScope.flush() ve InjectionScope.dispose() kaldırıldı. Artık tüm etkinliklerin temizlenmesi ve kapsamın ortadan kaldırılması, daha önce olduğu gibi performans*Input() yönteminin sonunda gerçekleştiriliyor. (I2bed8)
  • MultiModalInjectionScope.Touch ve MultiModalInjectionScope.Mouse kaldırıldı. Çok modlu hareketlere dokunma ve fare etkinliklerini eklemek için artık MultiModalInjectionScope.touch() ve MultiModalInjectionScope.mouse() kullanabilirsiniz. Bunların ikisi de, ilgili yöntemin alıcı kapsamına sahip olan lambdaları kabul eder. (Idde18)

Hata Düzeltmeleri

  • TouchInjectionScope.swipeWithVelocity içindeki durationMillis için varsayılan değer artık kaydırma işleminin uygun olacak ş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, ekranı kaydırarak bir öğeyi görünür hale getirmeleri için istek göndermenizi sağlayan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
  • Araçları destekleyen yeni animasyon API'leri. Özellikle, bu araçlar animasyonları ve yapılandırmalarını Geçişlerde inceleme olanağı 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ı. Sürüm 1.1.0-beta01 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, bu araçlar animasyonları ve yapılandırmalarını Geçişlerde inceleme olanağı tanır. (I4116e)

Sürüm 1.1.0-alpha06

13 Ekim 2021

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

API Değişiklikleri

  • ExperimentalComposeUiApi sitesini 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 adlandı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 değerlerinin algılanması için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
  • Tüketicilerin, uzun süre basma zaman aşımı gibi konularda doğru değeri elde etmesini sağlamak için LayoutInfo öğesine viewConfiguration: ViewConfiguration eklendi. (I76ca6)
    • Testlerin, uzun basma zaman aşımı veya dokunma eğimi gibi unsurlara göre giriş yerleştirmeyi ayarlamasına izin vermek için viewConfiguration: ViewConfiguration özelliği InjectionScope bölümüne eklendi.
    • Hem dokunma hem de fare girişinin varsayılan uzun basma ve iki kez dokunma süresi, InjectionScope.viewConfiguration içindeki değerlere dayalı olacak şekilde değiştirildi.
  • içinde TextField ve DropdownMenü bulunan ExposedDropdownMenüBox'a (If60b2) dayalı ExposedDropdownMenü'nün uygulanması
  • PopupProperties'e launchOnOutsideClick, kullanımdan kaldırılan closeOnClickOutside'ın yerine eklendi. Yeni mülk, tıklama konumunu ve çapa sınırlarını alarak onDismissRequest'in çağrılıp çağrılmayacağı üzerinde daha ayrıntılı kontrol sağlar. Örneğin bu şekilde, sabite yapılan dokunmalarda sabitleyicinin kapatılmasını önleyebilirsiniz.
    • UpdateAndroidWindowManagerFlags, PopupProperties'e eklendi. Böylece, pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde alt düzey denetim sağlanmış oldu. Lambda'nın parametresi, WindowManager flag'leriyle sonuçlanan PopupProperties değerlerinden hesaplanan işaretler olacaktır: ör. odaklanılabilir. Lambda'nın sonucu, Android WindowManager'a aktarılacak son flag'ler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmeden bırakır. Bu API, yalnızca pop-up'ın çok özel 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ınan tüm etkinlikleri hemen temizlemek ve kapsamı kaldırmak istediğinizde kullanın. (Ifb73a)
  • Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştirici ile eşleşen içeriğe kaydıran performScrollToNode(matcher: SemanticsMatcher) eklendi. (Ic1cb8)
  • InjectionScope artık Density özelliğini uygulayarak performTouchInput ve arkadaşlarında px ile dp arasında kolayca dönüştürme yapmanızı sağlar. (I8fe1f)

Hata Düzeltmeleri

  • AndroidView artık ViewTreeLifecycleOwner ve ViewTreesaveStateRegistryOwner aracılığıyla LocalLifecycleOwner ve LocalSaveStateRegistryOwner görünümlerini kendi görünümüne yayar. (I38f96, b/179708470)
  • WearOSScrollToDismissBox bazen kaydırma işlemlerini işlemez 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

  • Arasında değiştirici iletişim için ek destek (Id5467, b/198826874)
  • PointerEventChange öğesine 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 şekilde yorumlamasını sağlar. (I002f1)
  • Fare etkinlikleri eklemek için deneysel destek eklendi. Fare etkinliklerini göndermeye başlamak için performMouseInput kullanın veya performMultiModalInput ile çok kalıcı giriş hareketi sırasında fare etkinliklerini MultiModalInjectionScope öğesinin Mouse özelliği aracılığıyla gönderin. Kullanılabilir API belgeleri için MouseInjectionScope adresine bakın. (Iaa4a8, b/190493367)

Hata Düzeltmeleri

  • Kaydırılabilir öğeler (hem geç hem de tembel olmayan) için kaydırma açısından sabit erişilebilirlik desteği (I6cdb0)
  • TouchInjectionScope.swipeWithVelocity iyileştirildi. Bu özellik artık daha geniş bir giriş değişkenlerini kabul ediyor ve kaydırma işlemi yapılamı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, artık fareyle üzerine gelme etkinliklerini desteklemek için bir PointerEventType özelliğine sahip. (I091fa)
  • Çocukların, ebeveynin işaretçi giriş sınırlarının dışındaki işaretçi girişlerini kabul etmesine izin verin. Üst öğeler, bu çağrılara PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655) adlı bir özellik ile müdahale edebilir.
  • Kullanımdan kaldırılan performGesture ve GestureScope, performTouchInput ve TouchInjectionScope ile değiştirildi. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin minimum erişilebilirlik değerlerini karşılamasını sağlayabilmeleri için minimum dokunma hedefi boyutunu içeren touchBoundsInRoot, SemanticsNode öğesine eklendi. (I2e14b, b/197751214)
  • İncelenebilirlik uygulamasını yeniden yap (I927bc, b/191017532)
  • Inspectable parametre adı, oluşturulan ile eşleşecek şekilde değiştirildi (I3a482, b/191017532)
  • performTouchInput ve TouchInjectionScope yerine başka yöntemlere (fare gibi) yol açan performTouchInput ve TouchInjectionScope kullanıma sunuldu.

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

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

    1. İşaretçiler taşınırken bir taşıma etkinliği gönderilmemişken bir aşağı etkinlik gönderildiğinde (yani, updatePointerTo() kullanılmış, move() değil ve ardından down() çağrılırsa) ö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 özel senaryoda etkinlik süresini ilerletmez.
    2. İşaretçiler taşınırken bir taşıma etkinliği (yukarıdaki gibi) göndermeden bir yukarı etkinliği gönderirken, önceki uygulama etkinlik zamanını ilerletir ve yukarı etkinliğini göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama bunların ikisini de yapmaz: İşaretçilerin yeni konumları yalnızca up etkinliği aracılığıyla yansıtılır.

    Son olarak TouchInjectionScope, verilen işaretçinin mevcut konumunu almak 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 kaydetmeleri içerir.

Yeni Özellikler

  • Oluşturma 1.1.0-alpha03 öğesi, Kotlin 1.5.30 sürümünü temel alacak şekilde güncellendi. (I74545)

API Değişiklikleri

  • Diğer değiştiricileri sarmalama için Modifier.inspectable eklendi. (I1909b, b/191017532)
  • Bulanıklaştırma kullanım alanlarını basitleştirmek için klip işaretleri ve TileMode'ların daha yaygın olarak kullanılan kombinasyonlarına BlurredEdgeTreatment API eklendi. Çoğu kullanım durumu, 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 siyahla bulanıklaştırılması veya içeriğin en yakın kenardan örneklenen içerik sınırlarına kırpılması, içerik sınırlarının ötesine geçen bulanıklaştırma çekirdekleri için içeriğin en yakın kenardan kesilmesidir. (I6b4b7, b/166927547)
  • Oluşturma masaüstünde RenderEffect desteği eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklaştırma görsel efektleri sağlamanın basit bir yolu olarak ofset efektinin yanı sıra bulanıklaştırma düzenleyici 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 bir beste ve alt bestenin içeriğini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547)
  • AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() özelliklerine (I507f0, b/179239764, b/182397793) sahip
  • Erişilebilirliği 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ı RenderEffects 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'ler (I142ae, b/178483889)
  • Kırpılan sınırları almak için test yöntemi eklendi. (I6b28e)

Hata Düzeltmeleri

  • Şekil parametresinin null olup olmadığının açık bir şekilde kontrol edilmesi yerine FluredEdgeTreatment'tan isBounded yöntemi kaldırıldı. (I85d68)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

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

API Değişiklikleri

  • PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
  • Yerleştirilen hareketler artık zaman için bilgi kaynağı olarak MainTestClock'un zamanını kullanmaktadır. performGesture içindeki yerleştirilen etkinliklerin geçerli zamanı, MainTestClock'un 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'ta kök renk tonu özellikleri olarak ColorStateLists özelliğini desteklemek için Vector grafik 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 composable öğesinin bir bölümünü görüntülememize olanak tanıyan 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)
  • Taşıma isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
  • ColorPainter'a benzer şekilde, Painter içinde rastgele bir Brush çizmeyi destekleyen BrushPainter API'yi kullanıma sundu

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

  • İsteğe bağlı bir FilterQuality parametresini kullanmak için kaynak ve hedef rects'leri kullanan DrawScope#drawImage yöntemi güncellendi. Bu özellik, piksel tabanlı çizim için ölçek büyütüldüğünde pikselleştirilmesi amaçlanan piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresi (Ie4fb0, b/180311607) kullanacak şekilde güncellendi

  • 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 uygulama çağrılarınındrawsContent'in olduğundan emin olun. Daha önce Modifier.paint'in Değiştiriciler zincirinde bir yaprak düğüme eklenmesi bekleniyordu ancak bunu yaptığınızda, Modifier.paint bunun bir oluşturulmuş kapsayıcıda (ör. kutu) yapılandırılmasını veya üzerine Modifier.paint().border() gibi ek süslemelerin eklenmesini engeller. Belirtilen resmin içeriğini çizdikten sonra Modifier.paintdrawContent'i çağırarak değiştirici kalıbıyla daha iyi davranış tutarlılığı elde ederiz. (Ibb2a7, b/178201337, b/186213275)
  • İletişim kutuları artık platform boyutlandırma davranışını izler. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth değerini false 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üretStateOf örneklerinin kilitlenmesini izlemeyle ilgili 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 modeline bağlı olacak şekilde güncellendi

Sürüm 1.0.3

29 Eylül 2021

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

Bağımlılık Güncellemeleri

  • Kotlin 1.5.30 modeline bağlı olacak şekilde güncellendi

Sürüm 1.0.2

1 Eylül 2021

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

Compose 1.0.2 sürümünü destekleyecek şekilde 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 sürümüne bağlı olacak şekilde güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0 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'e yükseltin. Bu sorun, Android Studio Bumblebee ve 7.1 AGP'nin yeni 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ı izler. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth değerini false 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ı. Sürüm 1.0.0-rc01 bu kayıtları içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Kullanımdan kaldırılan deneysel FocusManager#moveFocusIn ve FocusManager#moveFocusOut kaldırıldı (I227d7, b/170154986, b/186567354, b/168510304)
  • 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 tüm ekran genişliğini kullanabilmektedir. (I83929, b/190810877)
  • HSV ve HSL renk temsilleri için deneysel destek eklendi. (Id7cf8, b/180731008)

Davranış Değişiklikleri

  • Compose @Preview artık mevcut sahibin mevcut olmasına bağlı olan rememberLauncherForActivityResult() gibi API'leri kullanan besteleri önizlemenizi sağlayan bir LocalActivityResultRegistryOwner sunuyor. (Ib13d1, b/185693006)
  • Compose @Preview artık BackHandler gibi API'leri kullanan besteleri önizlemenizi sağlayan bir LocalOnBackPressedDispatcherOwner sağlıyor. Bu beste, mevcut sahibin mevcut olmasına bağlı. (Ia1c05, b/185693006)

Hata Düzeltmeleri

  • InfiniteAnimationPolicy, androidx.compose.ui:ui konumuna 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, özel kurucuyla (Id1890) satır içi sınıflara dönüştürülür
  • Klavye büyük harf kullanımı, satır içi sınıfa dönüştürülür. (Id5a1c)
  • HapticfeedbackType'ı satır içi sınıf olarak değiştirin. (I255ec)
  • Modifier.pointerInteropFilter: @DeneyselalComposeUiApi. (Iede6c)
  • TextPercent, 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 sabit değerleri şimdilik @DeneyselalComposeUiApi'dir. Kodun kullanılması, sabitleme işleminden önce özel sabitleri bildirebilir. (Ia5d48)
  • Oluşturma testleri artık Roboecric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tanımlanmıştır:
    • Yerel bit eşlem olmadığından ImageBitmap(), NullPointerException'a yol açar.
    • Çizim olmadığından captureToImage(), süresiz olarak bir sonraki çekiliş kartını bekler (yani kilitlenme).
    • Yazı tipi yüklenmediğinden metinler yanlış ölçülecek. Tüm karakterler yaklaşık 20 piksel sabit yüksekliğe ve 1 piksel genişliğe sahiptir.
    • ComposeTestRule.waitUntil {}, beklerken ana iş parçacığını çalıştırmaz. Bu, iş parçacığını etkin bir şekilde ComposeTestRule.mainClock.advanceTimeUntil {} ile aynı hale getirir. Gelecekte daha fazla sınırlandırmanın tanımlanması bekleniyor. (I284fa)

Profil Kuralları Eklendi

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

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.çalışma zamanı
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Profil kuralları nedir?

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

  • Bir yöntem kuralının kalıbı aşağıdaki gibi olur:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralının kalıbı aşağıdaki gibidir:

    <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ı gösterilmektedir.

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

  • <METHOD_SIGNATURE>, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürme 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ı için bu kalıplarda joker karakterler (**, * ve ?) bulunabilir.

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, başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemin başlangıç zamanında yorumlanmasını önlemek için önceden derlenmesi gerektiğini belirtir.

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

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

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarına 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 ART profili oluşturmak için kullanılır. Böylece ART, uygulamanın performansını iyileştirmek amacıyla belirli bir alt kümeyi önceden derlemek için uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bu işlem, özellikle ilk çalıştırmada uygulamanın performansını iyileştirir. Bu işlemin, hata ayıklaması yapılabilecek 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ı, satır içi bir 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 satır içi sınıflarda enum kullanımları yeniden düzenlendi. (I2b5eb)
  • @ExperimentalComposeUiApi, PopupProperties hesabından kaldırılsın mı? (I01fa6)
  • PointerType, numaralandırmadan satır içi sınıfa dönüştürüldü (If5058)
  • ContentDescription ve Text semantics özellikleri artık tek değerler değil, listelerdir. Böylece, öğeler birleştirme yerine oldukları gibi birleştirilebilir. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
  • Modifier.focusModifier() desteği sonlandırılmış ve yerini Modifier.focusTarget() (I6c860) almıştır
  • Modifier.onSizeChanged() ve Modifier.onGloballyPositioned() artık satır içi işlevler değil (I727f6, b/186109675)
  • KeyboardType sıralaması, satır içi bir sınıfla değiştirilir. (I73045, b/187055290)
  • FocusState sıralaması, FocusState arayüzüyle değiştirildi (Iccc1a, b/187055290)
  • ImeAction sıralaması bir satır içi sınıfla değiştirilmiştir. (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'nin yerine ExperimentalTextApi'dir. (I0cd0a)
    • TextUnitType içeren TextUnit kurucusu 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şimini otomatik olarak kullanacak ve onDrag geri çağırmalarında change.consumePositionChange çağrısı yapılması gerekmez (I42fc4, b/185096350, b/187320697)
  • Hizalama çizgileri sağlayan LayoutModifiers 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ı raporlayacak şekilde 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

  • İnceleyicide kullanılmak üzere ViewRootForInspector arayüzü eklendi (Ib70df)
  • SubcomposeLayoutState artık yeniden kullanılabilir slotların sayısını ayarlamayı destekliyor. Düzen, bir dahaki sefere yeni bir alana (Ieb981) ihtiyaç duyduğumuzda alanı yeniden kullanmak için bu sayıda alanı silmek yerine etkin kalır.
  • KeyEventType sıralaması, satır içi bir sınıfla değiştirilir. (Id670a, b/187055290)
  • FocusDirection sıralaması, satır içi bir sınıfla değiştirilir. (Ib6d03, b/187055290, b/184086802)
  • SubcomposeLayout durumunu kaldırma özelliği sunar. Bu sayede içeriği bir slotId şeklinde önceden derleyebilirsiniz. Bu sayede, bir dahaki sefere kompozisyon gerekmeyeceğinden, belirtilen slotId ile alt derlemeye çalıştığımızda bir sonraki önlemin daha hızlı geçirilmesini sağlar. (I42580, b/184940225)
  • Klip Seçimi Tutma Yeri Eklendi (Iff80d, b/183408447)
  • Layoutİnceleyici desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)

Hata Düzeltmeleri

  • LazyColumn/Satırı artık daha önce aşağı kaydırılmış olsalar bile önceden görünür olan en fazla 2 öğeyi etkin (atanmamış) tutacak. Bu, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt kompozisyonları yeniden kullanmasına olanak tanır. (Ie5555)
  • AnnotatedString üzerindeki TextGeomerticTransform ve TextDecoration, belirtildiği şekilde uygulanacak. (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ı Çözme (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, anahtarlı öğeler içeren bir listedeki bir öğ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)
  • GraphicKatmanInfo'ya ownerViewId eklendi (I19f62)
  • Öğeler, File ve FileDescriptor'daki (I5d382) yazı tiplerini yüklemek için Font() aşırı yüklemeleri eklendi
  • Geçersiz giriş içeren bir düğümün işaretlenmesine olanak tanıyan error Erişilebilirlik API'si eklendi (I12997, b/180584804, b/182142737)
  • Öğeler, File ve FileDescriptor'daki (I43007) yazı tiplerini yüklemek için Font() aşırı yüklemesi eklendi
  • AnnotatedString, desteğini TextFieldValue.Saver öğesine kaydet. AnnotatedString.Builder paketine addTtsAnnotation ve withNotlar yardımcı program işlevleri eklendi (I8cbdc, b/178446304)
  • Metin Birimi oluşturucu işlevi eklendi TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

Sürüm 1.0.0-beta05

21 Nisan 2021

androidx.compose.ui:ui-*:1.0.0-beta05 yayınlandı. 1.0.0-beta05 sürümü 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, herkese açık hiçbir API'de kullanılamamış ve kodda da kullanılmamıştır. (I34a02, b/184003208)
  • Kullanımdan kaldırılan TextLayoutResult/createTextLayoutResult işlevi. Bu, test amacıyla eklenen kullanılmayan bir herkese açık işlevdir. İşlev, Composer metin API'leri için kullanılabilir 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şlemi düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırır. (Ieccb0)
  • ui-test-manifest veui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumludur (I6f9de, b/184718994)

Sürüm 1.0.0-beta04

7 Nisan 2021

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

API Değişiklikleri

  • SoftwareKeyboardController üzerindeki hideSoftwareKeyboard ve showSoftwareKeyboard adlı kullanıcıların adlarını sırasıyla hide() ve show() olarak değiştirin.
    • LocalYazılımKlavyeController için tam CompositionLocal arayüzünü sağlayın. Bu arayüz, ayarlanmasına olanak tanıyın (özellikle testlerde kullanılı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 kullanıma sunuldu. (Ic8f89)

Hata Düzeltmeleri

  • Kenarlarda bulunan LazyColumn/LazyRow öğelerinin, hızlı 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 kaldırıldığında FragmentContainerView ile şişirilen parçaları düzgün bir şekilde kaldırıyor. (Ib0248, b/179915946)
  • AndroidViewBinding, ComposeView öğeniz bir Fragment içinde olduğunda 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)
  • ViewBinding oluşturma artık Fragment 1.3.2 öğesine bağlıdır ve yapılandırma değişikliklerinden sonra artık FragmentContainerView aracılığıyla şişirilen parçaları tutarlı bir şekilde gösteriyor. (I0743d, b/179915946)

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.ui:ui-*:1.0.0-beta03 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 bölgesindeki 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 SoftwareKlavyeController arayüzünün yerine yeni LocalSoftwareKeyboardController beste yerel API'si eklendi. (I5951e, b/168778053)
  • TextField'te önceki SoftwareKlavyeController arayüzünün yerine yeni LocalSoftwareKeyboardController beste yerel API'si eklendi. (I84472, b/168778053)
  • Aşağıdaki SemanticsMatcher kaldırıldı:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • Aşağıdaki SemanticsMatchers, @DeneyselalTestApi 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'a bağlı değil. Uygulamanızda ComposeView'un yanı sıra Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 veya sonraki sürümleri / Fragment 1.3 ve sonraki sürümleri kullanın. Bu sürümler, ComposeView için gereken yaşam döngüsünü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak için gereklidir. (I1d6fa, b/161814404)
  • Gezinme-oluşturma hedefinde kullanıldığında bozuk rememberSaveable { mutableStateOf(0) } sorunu için düzeltme uygulandı. (I1312b, b/180042685, b/180701630)
  • TextField'te önceki SoftwareKlavyeController arayüzünün yerine yeni LocalSoftwareKeyboardController beste yerel API'si eklendi. (I658b6, b/168778053)
  • ComposeRootRegistry hesabının tearDownRegistry() öğesindeki (Iddce1) nadir görülen NoSuchElementException sorunu düzeltildi

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.ui:ui-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü 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ğırması detectDragGestures adlı cihaza eklendi (I67269, b/179995594)
  • Yerleşik öğelere boyutlandırmak için kullanılan 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'yi kullanacak şekilde güncellendi veya basitleştirildi. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi
    • Arayüzler, Etkileşim etkinliklerinin yayınlanmasından / toplanmasından sorumludur.
    • interactionState = remember { InteractionState() } öğesini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } kullanın.
    • Interaction.Pressed in interactionState yerine, EngagementSource'ta EngagementSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmalısınız.
    • Karmaşık kullanım örneklerinde, Etkileşim akışını gözlemlemek için EngagementSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için Etkileşim Kaynağı dokümanlarına ve örneklerine bakın.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • CompositionLocals'a AccessibilityMananger arayüzü ve LocalAccessibilityMananger'ı ekle (I53520)
  • Kullanımdan kaldırılan LayoutKoordinat yöntemleri kaldırıldı, locationInParent ve boundsInParent için özellik yerine işlev 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
    • 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 ölçüldüğü boyutu temsil eden measurementSize değerini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
  • Erişilebilirlik amacıyla Sekme veya Radyo Düğmelerinin koleksiyonunu işaretlemeye olanak tanıyan seçim Grubu değiştiricisi ekleyin (Ie5c29)
  • compositionLocalOf ve staticCompositionLocalOf için defaultFactory artık isteğe bağlı yerine zorunludur.

    Bu değişiklik, varsayılan fabrikanın sağlanmadığı, boş bırakılamayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, null yapılamayan bir tür için boş referans sağlıyordu.

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

    Makul bir varsayılan sağlanmadığı sürece, null yapılamayan türlere sahip yerellerin kullanılması önerilmez. Mantıklı bir varsayılan yoksa defaultFactory lambda bir istisna atmalıdır. Bununla birlikte, istisna yapılması, yerel tüketicilerin tür sistemi tarafından zorunlu kılınmayan, sunulan 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.PreferredGenişlik/tercih edilenYükseklik/tercih edilenBoyut, 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 kullanımı koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)

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

  • imageKaynak ve VektörResource, 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 Kayanlık kaldırıldı. (Icde52, b/177457083)

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

    • Beste oluşturucu artık anahtar parametresi kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, derlenebilir bir üst düzey işlev yerine birleştirilebilir üst düzey mülke dönüştürüldü.
    • CompositionData ve CompositionGroup androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • ComposableLambdaN, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
    • Snapshot işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil.
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.
    • keySourceInfoOf ve sıfırlaSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
    • Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değildir.
    • isjoinedKey, katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar 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 program uyumluluğunu bozar ancak kaynak uyumluluğunu bozar. Bu nedenle çoğu kullanıcı için bir sorun olmamalıdır.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent(),Compose:ui'den kaldırıldı. androidx.activity:activity-compose:1.3.0-alpha01 sağlayıcısından olanı kullan. viewModel() ve LocalViewModelStoreOwner, generate:ui'den kaldırıldı. androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 kapsamındakileri (I6f36b) kullanın

  • Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanıyor (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 desteği sonlandırılmış API'lerden bazıları silindi (Ice5da, b/178633932)

  • long PressestFilter ve doubleClickActionsFilter kaldırıldı. Modifier.pointerInput'u tespit TapHarekets (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 yararlanmayacak şekilde yeniden düzenlendi. (Id1290)

  • dp onayları 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.verticalScroll()/LandscapeScroll() içindeki 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ğırmaları için aynı işlemi ayarlamaya yardımcı olacak bir yardımcı işlev eklendi (I63447, b/179226323)

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

  • FontSpan ve FontWeigthStyleSpan artık kullanılmamaktadır ve kaldırılmıştı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 gerekli parametreler için API yönergelerine uygun olacak şekilde yeniden sıralandı.
    • BottomNavigasyonItem öğesindeki icon parametresi, selected ve onClick satırlarından sonra olacak şekilde taşındı.
    • BottomNavigasyonItem öğesindeki alwaysShowLabels parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • Birkaç bileşendeki bodyContent parametreleri yalnızca content olarak yeniden adlandırıldı.
    • Parametreler ButtonDefaults.buttonColors() içinde yeniden sıralandı. Parametrelerin türü değişmediği için 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.
    • secondaryVariant parametresi darkColors() parametresine eklendi. Bu renk, koyu temada genellikle secondary ile aynıdır, ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.
    • Yaygın olarak kullanılmadıkları / yararlı olmadıkları için ElevationDefaults veactivateElevation() herkese açık API yüzeyinden kaldırıldı.
    • Slider içindeki onValueChangeEnd öğesi, onValueChangeFinished olarak yeniden adlandırıldı ve boş değer atanabilir.
    • 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 parametresine contentPadding parametresi eklendi ve content, RowScope üzerinde uzantı haline getirildi.
    • ModalDrawerLayout adlı dosya ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout adlı dosya BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Hata Düzeltmeleri

  • Compose'da animasyonluVectorDrawable kaynaklarını kullanmak için API eklendi. Animasyonu animatedVectorResource kullanarak <animated-vector> XML'i bir SheetsImageVector olarak yükleyip boyaterFor (I8ea91) ile
  • TextField'te önceki SoftwareKlavyeController arayüzünün yerini almak üzere yeni Local SoftwareKlavyeController bileşimi 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 için destek, UiApplier'dan kaldırıldı. Desteği sonlandırılan emitView composable öğeleri kaldırıldı. (Ifb214)
  • Modifier.pointerInput artık yeni bağımlılıklar için işaretçi girişi algılama eş yordasının ne zaman yeniden başlatılması gerektiğini belirtmek için tuşların hatırlanmasını 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ş hem de etiket/hint/yer tutucu metinleri kontrol eder.
  • viewModel() composable ve LocalViewModelStoreOwner androidx.lifecycle.viewmodel.compose konumuna taşındı. Şimdi, kullanmak için ayrı bir bağımlılık (androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01) bağımlılığı eklemeniz gerekir. (I7a374)
  • AccessibilityAction'de null işleme izin verin, AccessibilityAction ve CustomAccessibilityAction'teki işlem etiketini CharSequence'ten String (I0dc82) olarak değiştirin
  • Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter'ın adı BitmapPainter, paralel VectorPainter olarak değiştirildi. (Iba381, b/174565889)
  • Artık bağımsız değişken olarak alt dize içeren daha iyi alt dize testi API'leri (Icbe78)
  • Özel bir odak sırası lambda belirtmeden FocusRequester'ı kabul eden bir Modifier.focusOrder() eklendi. Bu, oluşturma öğesi için özel odak sırası değil, yalnızca referans belirtmemiz gerektiğinde yararlı olur (I4f52a, b/179180978).
  • ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
  • Destructstruct ve copy() yöntemleri nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
  • Pop-up, platforma özgü olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve isFocusable, PopupProperties konumunda (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 hale getirildi (I8a7b1, b/175103944)
  • Constraints.enforce öğesinin yerine Constraints.restriction geldi. (I8b8ea)
  • loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, VektörResource ve loadVectorResource desteği sonlandırılmıştır. Bunun yerine PaintterResource kullanın. (I6b809)
  • ScrollAxisRange semantiği, performans nedeniyle artık doğrudan Kayan noktalı değerler yerine Kayan noktalı değerleri döndüren lambda'ları almaktadır. (If4a35, b/178657186)
  • Erişilebilirlik amacıyla metin alanının düzenlenebilir giriş metnini işaretlemek için EditableText semantiği eklendi. Anlamı kontrol etmek için ilgili test yöntemleri de eklendi (I8e07a)
  • SahipKatman/OwnerScope/OwnerSnapshotObserver dahili hale getirildi (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önergelerine daha uygun olacak şekilde güncellendi. (Id9e32)
  • Anlamsal genişletme ve daraltma işlemleri eklendi. ModalBottomSheetState'e (Ib5064) genişletme ve yarısı genişletme eklendi.
  • Modifier.dragToolsFilter kullanımdan kaldırılmıştır. 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 -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde Ambiyanslar yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılırken artık CompositionLocals adı LocalFoo olarak adlandırılıyor. (I2d55d)
  • Kullanımdan kaldırılan BaseTextField artık kaldırılmış durumda. Bunun yerine BasicTextField politikasını kullanın. (I71368)
  • Seçim, temele taşındı. (I7892b)
  • Benzer şekilde, daha önce state { 0 } composposto öğesini, şimdi de remember { mutableStateOf(0) } gibi kullanımı teşvik etmek için tasarladığımız savedInstanceState { 0 } kompozit içeriğini kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmanız gerekir. MutableState içinde kullanılan tür Paket'te depolanabiliyorsa bu öğe otomatik olarak kaydedilir ve geri yüklenir. Daha önce bir özel tasarruf nesnesi iletiyorsanız şimdi stateSaver parametresine sahip yeni bir forceSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şöyle görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Erişilebilirlik için şifre anlamı eklendi (I231ce)
  • Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere progressBarRangeInfo.Indeterminate eklendi (I6fe05)
  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programları, 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 (I6a45f) değil
  • Yeniden düzenleyenler artık kapatılabilir. Kapalı yeniden düzenleyenler, beste alt eş yordamları tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatmayla zıtlık oluşturmak için iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
  • UisaveStateRegistry, SaveableStateRegistry olarak, AmbientUiKaydedilmişStateRegistry, AmbientSaveableStateRegistry olarak ve her ikisi de androidx.compose.runtime.saveable paketine taşınmıştır. (I30224)
  • Artefact androidx:compose:runtime:runtime-saved-sample-state öğesi, androidx:compose:runtime:runtime-saveable (I6dcac) olarak yeniden adlandırıldı
  • Kullanıcı arayüzü paketinde, uzun süredir desteği sonlandırılmış birçok API silinmiştir. (I2f2dc)
  • create:runtime-dispatch yapısı kullanımdan kaldırıldı. MonotonicFrameClock artık sadeceCompose:runtime'da, AndroidUiDispatcher ise write:ui'de bulunabilir. (Ib5c36)
  • Outline.* sınıfları artık veri sınıfı değildir (I4879e, b/178001427)
  • view.captureToImage(), herhangi bir değişiklik yapılmadan kaldırıldı. (I7fcd2)
  • Kaynak içeriğin rgb değerlerini değiştirmek için kullanılan ColorMatrix API'si kullanıma sunuldu. Refactored ColorFilter API, bir arayüze dönüşür 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 KlavyeActions'ı 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 dosyasından kaldırıldı. (Id66e7, b/175294473)
  • LayoutKoordinatörler.parentKoordinatörleri, yeni bir ana öğeKoordinatörü özelliğine izin vermek için, Düzen Koordinatları. Üst Koordinatlar mülkü artık üst değiştiricinin DüzenKoordinatlarını sunmaktadır. Bu sayede onSizeChanged() ve onGloballyPositioned() (Idfbfd, b/177926591) için daha kapsamlı kullanım alanları sunulur.
  • dokunun. Bunun yerine, Dedefier.clickable veya Modifier.pointerInput'u tespit TapHarekets işleviyle kullanın. (I6baf9, b/175294473)
  • SaveableStateRegistry'nin unregisterProvider öğesi kaldırıldı. Bunun yerine registerProvider() artık kaydınızı iptal etmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesi döndürüyor (Ic4274, b/178583739)
  • JuneSaveInstanceState(), voiceSaveable() olarak yeniden adlandırılıp androidx.compose.runtime.saveable paketine taşınmıştır. (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 olarak ayarlanmıştır. Ana makine Yaşam Döngüsü durdurulurken yeniden oluşturma veFrameNanos tabanlı animasyon kareleri duraklatılır. (I38e11)
  • Recomposer.runningRecomposers artık süreçte devam eden bileşim durumunu gözlemlemek için küresel bir salt okunur RecomposerInfo StateFlow'u sunuyor. Bu API'yi, kullanımdan kaldırılan Recomposer.current() için tercih edin. (If8ebe)
  • Saver, listSaver(), MapSaver(), autoSaver
  • EditCommands, AnnotatedString'i kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve birden fazla stilde 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 parametreleri, şeklin rtl yönünde otomatik yansıtmasını desteklemek için başlangıç/bitiş olarak soldan/sağdan farklı olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için absoluteRounderCornerShape ve absoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
  • Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüzde artık bir tür parametre de kullanılmamaktadır.

    Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir ancak ikili programlarda sorun yaratan bir değişikliktir. (I3b922, b/169406779)

  • Yanlışlıkla herkese açık olan 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ği 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 tasarlanıp foundation.layout'a taşındı. (I9420b, b/173387208)
  • Key.DPadUp desteği sonlandırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
  • Artık 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 göre koordinatları kullanacak şekilde değiştirir. parentGlobalBounds'u anchorBounds olarak yeniden adlandırıp windowGlobalBounds'u 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)
  • AmbientSaveStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365)
  • Vektör grafikleri API'si, vektör grafiklerinin köküne uygulanan tonlama işleminin ayrıştırılmasını destekleyecek şekilde güncellendi. (Id9d53, b/177210509)
  • Cihazları ayırt etmek için ToolType'ı 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 açıkken grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsKatman eklendi. (I315df)
  • FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlendi. (I2d898, b/177000821)
  • SemanticspropertyReceiver.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ı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırılmıştır. issueAccessibilityScrollState, YatayScrollAxisRange olarak yeniden adlandırılır. verticalAccessibilityScrollState, dikeyScrollAxisRange olarak yeniden adlandırılır. (Id3148)
  • PointerInputData kaldırıldı ve tüm PointerInputData alanlarını vermek için değiştirildi. Herkese açık herhangi bir API'de kullanılmadıkları için PointerInputEvent ve PointerInputEventData'yı dahili hale getirdiler. (Ifff97, b/175142755)
  • Güncellenen GraphicstierScope, dp'nin ham piksellere dönüşümlerini desteklemek için yoğunluğu uygular. (Ied528, b/176819695)
  • Matris API'si, ana sıra sırasını izleyecek ve SkMatrix ile Matris4 arasındaki çerçeve dönüşüm mantığını dahili olarak eşleştirmek amacıyla farklı matris temsilleri arasındaki dönüşümlere yardımcı olmak için dizin sabitleri sağlayacak şekilde güncellendi. (I432e6)
  • Deneysel monotonicFrameAnimationClockOf yöntemleri (Ib753f, b/170708374) kaldırıldı
  • String.fintPrecedingBreak ve String.fingFollowingBreak öğelerini InternalTextApi'ye taşıyın. (I657c4)
  • androidx.compose.ui.util.isSurrogatepair, herkese açık API'den kaldırıldı. (Ia9494)
  • TransformedText.convertedText, TransformedText.text olarak yeniden adlandırıldı
    • TransformedText artık bir veri sınıfı değil (Ie672a)
  • data class şu sınıflardan kaldırıldı:
    • Satır İçiMetinİçeriği
    • Yerel Ayar Listesi (I605c7)
  • Aşağıdaki sınıflar artık veri sınıfı değil:
    • Ek Açıklamalı Dize
    • Paragraf Stili
    • Aralık Stili
    • Metin Stili
    • Yazı Tipi Ağırlığı
    • Metin Süslemesi
    • TextGeometricTransform
    • Metin Dizini
    • MetinDüzenSonucu
    • TextLayoutInput (Iaff99)
  • VisualTransformation, işlevsel bir arayüz olarak değiştirildi (I3bba4)
  • İşlev referans parametresi türü eklendi (I5e1bd)
  • Dönüştürülmüş sınırları InspectorNode'a (Ice42f) ekleme

Hata Düzeltmeleri

  • onCommit, onDispose ve onActive; kullanımdan kaldırılarak, SideEffect ve DisposableEffect API'lerinin (If760e) yerini aldı.
  • Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler

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

  • animasyonluAsState artık animasyonluFooAsState şeklindedir. Burada Foo, animasyonlu değişkenin türüdür.Örneğin, Kayma, Dp, Offset vb. (Ie7e25)

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

  • Kaçınılması gerektiği için displaySize özelliğini kaldırın. Tipik olarak, 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 birbirinin aynısı, yalnızca Compose'un adlandırma kurallarına uymak için farklı bir ad kullanıyorlar (I4137b)

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

    • EditBuffer oluşturucu parametrelerinden initial kaldırıldı. (I326d5)
  • inexpiration ve beste (I583a8)

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

  • Hatırlatıcı, CompositionLifecycleObserver'ın yerini almıştır ve CompositionLifecycleObserver kullanımdan kaldırılmıştır.

    RememberObserver, CompositionLifecycleObserver ifadesinin yerine değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler kullanır. Önerilen uygulama olan ve olmaya devam eden ve yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bununla birlikte, bir bestede bir referans birden çok kez hatırlanırsa onEnter yalnızca bir kez çağrılan her referans için onRemembered ç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 getirdi ve RememberObserver için kaldırıldı.

    RememberObserver, RememberObserver örneğinin remember'a iletilen geri çağırmadan döndürülmesi durumunda çağrılan onAbandoned özelliğini ekler. Ancak bu işlem 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 olmaması ya da başka bir şekilde gerekli olmaması nedeniyle bestenin silinmesi durumunda gerçekleşebilir. Yukarıdaki tek referans önerisini uygulayan RememberObserver örneği, hem onForgotten hem de onAbandoned harici bir kaynağı izliyorsa her biri artık kaynağa ihtiyaç olmadığını gösterir. Nesne, onRemembered içinde ayrılan işleri veya kaynakları izliyorsa onRemembered çağrıldığında çağrılmayacağından onAbandoned yoksayılabilir. (I02c36)

  • 2 veya daha fazla Metin Birimi arasındaki aritmetik işlemler 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ş genel kaynakları olmayan (ör. public.xml aracılığıyla) kitaplıklardaki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)

  • ScrollableColumn/Row desteği sonlandırıldı. LazyColumn sayesinde yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz/çizebildiğimizden, ScrollableColumn kullanımı, büyük bir kayan içeriğe sahip olduğunuz 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ımlarını desteklemeye karar verdik. Kullanıcılar, tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni items(count: Int) fabrika yöntemi. items(items: List) ve itemsIndexed(items: List) artık uzantı işlevleri olduğundan, kullanıldıklarında bunları 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 yararlanın (I532b6)

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

  • TransitionDefinition tabanlı Geçişin 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-alpha10

13 Ocak 2021

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

Çarpıcı Değişim

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

    Bu, değişiklikler uygulanana kadar dahili ve deneysel API'lerde artık düğüm bulunmadığı için uygulama kodunu etkileyebilecek, davranışsal zarar veren bir değişikliktir. Bu sorun, genellikle düğümler oluşturulup başlatılana kadar kodun yürütülmesini ertelemek için bir SideEffect içinde 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() eklendi (I90cf5, b/175899543, b/170155556, b/170155429)
  • Bunun yerine, artık onFocusChanged veya onFocusEvent yerine kullanılan odakObserver kullanımı kaldırıldı (I3ecb9, b/175156387)
  • EditTransactions API Değişiklikleri
    • EditAction, EditCommand olarak yeniden adlandırıldı
    • EditTransaction 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şturucu oluşturma işlemini yapılandırabilecek (Ibebd8)
  • Bileşen parçaları ve matematik işlemleri olacak şekilde değiştirilmiş Hız. (Ib0447)
  • @ExperimentalTesting adı, benzer deneysel API ek açıklamalarıyla tutarlı olacak şekilde @ExperimentalTestApi olarak değiştirildi (Ia4502, b/171464963)
  • 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)
  • Düzen düğümü sınırları değiştiğinde Sahibi bildirmek için bir geri çağırma ekleyin. (I72fd1)
  • Belirtilmemiş sabit olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse özellikleri eklendi. (I93f7b, b/174310811)
  • [Abstract]ComposeView API'lerini genişleterek [Abstract]Compose tabanlı görünümlerin geri dönüşümünü sağlayarak bu görünümlerin daha sonra tekrar oluşturmak üzere imha edilmesini sağlayın. Alt besteler oluşturmak için pencere kapsamlı Recomposer ve CompositionReferences öğelerini yüklemek ve keşfetmek amacıyla API'ler ekleyin.

    [Abstract]ComposeViews'un beste yok etme stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış pencere ayırmaya göre ortadan kaldırılmaktır. (I860ab)

  • Any.identityHashCode() genel API (I025d7) kaldırıldı

  • toStringAsFixed API kaldırılmış ve yerine doğrudan String.format kullanılmış. (Iaba6b)

  • Temel Strings.kt dosyasına Geçiş Ekle (I4a5b7, b/172366489)

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

  • Modifier.focus() ve Modifier.focusRequester() 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 güncellemelerinin Seçim Yöneticisi'ne 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 üzere Outline.bounds özelliği kullanıma sunuldu. (I16e74, b/175093504)

  • Kullanımdan kaldırılan TestUiDispatcher. Bunun yerine Dispatchers.Main kullanın (Ic171f, b/175385255)

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

  • VisualTransformation API Değişiklikleri

    • OffsetMap, OffsetEşleme olarak yeniden adlandırıldı
    • OffsetEşleme.identityoffsetMap, OffsetEşleme.Identity olarak yeniden adlandırıldı
    • PasswordTransformation artık veri sınıfı değil
    • OffsetEşleme kendi dosyasına taşındı
    • (I0bdf3)
  • Konum Dpoffset olarak yeniden adlandırıldı ve getMesafe() (Ib2dfd) kaldırıldı

  • Eğlence amaçlı Dp.isFinite(), val Dp.isFinite (I50e00) olarak değiştirildi

Hata Düzeltmeleri

  • Yeniden birleştirici artık mevcut durumunun bir Akışını sunarak etkinliğinin ve ilişkili efektlerin etkinliğinin izlenmesine olanak tanıyor. (Ifb2b9)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden erişilebilir (I87c57, b/173086397)
  • animate() artık T yerine State<T> döndüren animateAsState() ile değiştiriliyor. Geçersiz kılma kapsamı, State değerinin okunduğu yere daraltılabileceği için 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 artık Kaydırma Çubuğu'nu da kullanabilmesi için değiştirildi. (I216cd)
  • Animasyonları arasında karşılıklı dışlama sağlayan yeni eş yordam tabanlı API Animatable.
    • Çok boyutlu azalma animasyonunu destekleyecek yeni DecayAnimationSpec
    • (I820f2, b/168014930)

Sürüm 1.0.0-alpha09

16 Aralık 2020

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

API Değişiklikleri

  • Kullanımdan kaldırılan KeyEvent.Alt artık kaldırıldı. 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 ve HandlePointerInput() adı awaitPointerEventScope() olarak değiştirildi. (Idf0a1, b/175142755)
  • Autofill API artık deneysel bir API'dir ve kaydolmayı 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, işaretçi giriş API'sinin askıya alınmasından kaldırıldı (Ia54d5, b/175142755)
  • SeçimRegistrar'da birkaç yeni işlev kullanıma sunuldu ve ayrıca, onPositionChange, informPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
  • Dahili olarak işaretlediğimiz LayoutNode'un diğer üyeleri (I443c6)
  • LayoutInfo, araç ve test amacıyla kullanılmak üzere kullanıma sunulmuştur (I9b190)
  • AndroidSahibi dahili (Ibcad0, b/170296980)
  • ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
  • İç içe yerleştirilmiş kaydırma sistemi eklendi. Daha fazla ayrıntı için Modifier.nestedScroll sayfasına bakın (I36e15, b/162408885)
  • subcomposeInto(LayoutNode) dahili hale getirildi (Id724a)
  • Applier arayüzü, ağaç oluşturma işlemini yukarıdan aşağı değil, aşağıdan yukarıya doğru kolaylaştıracak şekilde değiştirildi.

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

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

    Bir uygulama, hangisinin daha iyi performans gösterdiğine bağlı olarak düğümleri, insertTopDown() veya insertBottomUp() kullanarak düzenlediği ağaca ekler.

    LayoutNode ve View gibi bazı ağaçlar, yukarıdan aşağıya doğru inşa etmekten çok daha verimlidir. Bu değişiklikten önce, performans için aşağıdan yukarıya yapı gerektiren her uygulama kullanıcısına kopyalanması gereken, aşağıdan yukarıya doğru bir dizi ekleme yapılması gerekiyordu. Bu değişiklikle birlikte Applier, ağacı aşağıdan yukarıya doğru 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 closeOnBack Press ve dismissOnClickOutside özellikleri eklendi. Bunlar, iletişimin onDismissRequest lambda'sı çağrılacağı zaman yapılandırmaya olanak tanır. (If5e17)

  • Kafesleştirilmiş öğe biçimlerinden (PNG gibi) veya VectorDrawables'dan opak yüklenen Painter nesnelerini işlemek için PaintterResource API eklendi. Tüketicilerin öğe türünü artık önceden belirlemesi gerekmiyor. Resim birleşimlerinde veya ressam değiştiricilerinde kullanmak üzere bir Painter nesnesi edinmek için bu yöntemi çağırabilirler. (I2c703, b/173818471)

  • Alt anlamların temizlenip yenilerini ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)

  • ContentDrawScope, DrawScope ile yapılacak şekilde kullanıcı arayüzü modülüne taşındı. (Iee043, b/173832789)

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

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

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

Hata Düzeltmeleri

  • Ofset değiştiricilerdeki lambdalar artık Kayan öğe 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şaretliydi. Artık oluşturma modülünün dahilinde bulunuyorlar.

    CompositionData ve CompositionGroup, kompozisyon bilgilerini ayıklamak için kullanmak üzere arayüz araçları API'sinin yerine eklenmiştir. Bunlar herkese açık olsa da kullanıcı arayüzü API'sinin yorumladığı ham bilgileri sağladığı için (I31a9c) kullanıcı arayüzü API'si dışında kullanılmak üzere tasarlanmamıştır

  • Çizim ortamının boyutları mevcut olduğunda gölgelendirici örneği oluşturmak için yeniden düzenlenen ShaderBrush. Bu, beste zamanında özel DrawModifier uygulamalarını uygulamak zorunda kalmadan, oluşturulabilir bir öğenin tüm çizim sınırlarını kaplayan renk geçişlerini tanımlamak için yararlıdır.

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

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

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

  • AnnotatedString Derlemesi için buildAnnotatedString fabrika işlevi eklendi. Kullanımdan kaldırılan ExplaindString derleyici işlevi. (Idfe0b)

  • Değerleri radyana dönüştürmek için Kayan ve Çiftteki uzantı yöntemleri kaldırıldı. Kullanıldığı tek yer olan uygulama PathParser içinde ö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'den mevcut API'lere geçişe yardımcı olacak typealiases/yardımcı yöntemleri eklemek için DrawModifierUsage.kt dosyası oluşturuldu. (Id6044, b/173834241)
  • Değiştirme. (I0bd29, b/173834241)
  • Özel düzenlerin ve düzen değiştiricilerin, çizimi için bir grafik katmanı ekleyerek çocuğa yerleştirilmesine olanak tanıyan yeni Placeable.placeWithtier() ve Placeable.place üzeriWithlayer() yöntemleri eklendi. Öncelikle yeniden çizimleri optimize edebilmemiz için, bir çocuğu taşımamız gerektiğinde içeriğini tekrar çizmemiz gerekmez. İkinci olarak, ç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)
  • Çizimler katmanına kolaylık sağlamak için Modifier.scale/rotate API'leri eklendi.
    • Modifier.drawOpacity adlı dosya 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ş bırakamaz hale getirdi. (Id468a)
  • MaterialTheme, seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Malzeme harici uygulamalar, seçim için kullanılan renkleri özelleştirmek için AmbientTextSelectionColors'ı 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ı sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
  • TransformOrigin API, pivotFractionX ve pivotFractionY öğelerini component1 ve component2 olarak döndürecek şekilde yıkıcı söz dizimine sahip olacak şekilde güncellendi (If43c4, b/173586560)
  • Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla birleştirilebilir lambda parametresi adlandırma ve konumu için hata analizi denetimi eklendi. Ayrıca, hata analizi ve yönlendirmelere göre sondaki lambdalarının adı olarak children kullanan bazı API'leri content'e 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 GraphicstierScope'ta bir lambda bloğu kullanılır. DrawKatmanModifier, artık mantığını LayoutModifier'ın (I15e9f, b/173030831) Placeable.placeWithKatman() yöntemine taşımaya hazırlık sürecindedir.
  • Kullanımdan kaldırılan Ambiyanslar, son eki Ambient olarak adlandırdı ve diğer Ambiyans ve Compose API kurallarına uyarak bunların ön ekini Ambient içeren yeni özelliklerle değiştirdi. (I33440)
  • androidx.compose.ui.text.Typeface, androidx.compose.ui.text.font.Typeface klasörüne taşındı (Ic2b81)
  • Semantik bağımsız değişkeni discoveryAllDescendants,mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Yön kilitleme dahil olmak üzere, işaretçi giriş API'sini askıya alan yeni sürükleme hareketi algılayıcı. (Icef25)
  • VectorAsset adı ImageVector olarak değiştirildi ve VectorAsset adı, API yönergelerine uygun olarak iç ImageVector sınıfı olacak şekilde VectorAsset olarak Builder olarak değiştirildi. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder'ın typealias'ı eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • PlacementScope'un Place() öğesi için zIndex parametresi 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'i ayarlayabilir
  • Temel anlam bilimi özellikleri kullanıcı arayüzüne taşındı (I6f05c)
  • Yerin(Ofset) ve yerGörelinin(Ofset) değerini sonlandır. Bunun yerine, aşırı yüklemeleri tam ofsetler ile kullanın (I4c5e7)
  • Daha önce kullanımdan kaldırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı, Modifier.onGloballyPositioned öğesini kullanın. Modifier.onDraw kaldırıldı. Modifier.onDrawBehind'i kullanın. Modifier.plus kaldırıldı.Değiştirici'yi kullanın. Color.UnSet kaldırıldı, Color.Unspecified değerini kullanın. PxBounds sınıfı kaldırıldı. Bunun yerine Rect kullanın. (Ie9d02, b/172562222)
  • Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
  • Dokunma, iki kez dokunma, uzun basma ve basma bildirimi için hareket dedektörü, yeni askıya alma işaretçi girişi kullanılarak eklendi. Birkaç yardımcı program da eklendiğinden, geliştiricilerin kendi hareket algılayıcılarını yazmaları kolaylaştırıldı. (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 deneysel (I6ef86, b/171378521)
  • İlişki temelli kaydırma API'leri ekleyin:

    LazyListState.snapToItem ve LazyListState.smoothScrollBy değerinin 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 bir kaydırma işlemini kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)

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

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

  • AndroidComposeTestRule artık özel etkinlik başlatıcılarını (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)

  • Güncellenen TextFieldValue API'si

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

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

Hata Düzeltmeleri

  • Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
  • offsetPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık Eyalet yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
  • TextInputService#onStateUpdated değerine sıfırlamaInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
  • Oluşturulabilir işlevlerdeki Değiştirici parametreleri için hata analizi kontrolü eklendi. Bu hata analizi denetimi, Oluşturma yönergelerine tutarlılık için parametrenin adlandırma, döndürme türü, varsayılan değeri ve sırasını kontrol eder. (If493b)
  • TestAnimationClock'un 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. typeface işleviyle (ör. typeface(Typeface.DEFAULT)) bir Android Yazı Tipi yükleyebilirsiniz. typefaceFromFontFamily() adı da typeface() olarak değiştirildi (I52ab7)
  • Değiştirici'nin fabrika işlevlerinin Değiştirici'de uzantılar olarak tanımlanıp tanımlanmadığını ve böylece birbirleriyle akıcı bir şekilde zincirlenmesinin mümkün olup olmadığını kontrol etmek için lint denetimi eklendi. (I07981)
  • Eski kullanıcı arayüzü testi modülünü ve taslaklarını (I3a7cb) kaldırın
  • Yeniden düzenleyen artık EmbeddingContext kabul etmez; 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 bilgileri iletin. (If5e8d)
  • TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmedi. (Ifce19)

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

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 yatay ve dikey eksenler için ölçek faktörlerini birbirinden bağımsız şekilde 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ğı zorla temizlemesine izin verin. (I90372)
  • Oluşturma'nın içindeki Görünümler için yükseltmenin ç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 oluşturuldu. (I4fc3a, b/171955269)
  • Katman API'lerinde 3D dönüşümleri döndürmeX/dönüştürme Y özelliğini tamamlamak için kamera mesafesi desteği ekleyin. (I40213, b/171492100)
  • Seçim Container'ı, 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ğu içindrawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
  • measureResult, MeasurementScope dışına taşındı. (Ibf96d, b/171184002)
  • Düzenleyle ilgili birçok simge 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ürecek şekilde güncellendi. (Ib0044)
  • kotlinx-coroutines-test'in runBlockTest (I4402f) kullanılarak beste çerçevesi etkinlikleri için Compose'un MonotonicFrameClock'unu temel alan kodu test etmek için TestMonotonicFrameClock eklendi
  • HareketKapsamı.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 androidx.compose.ui.test ve androidx.compose.ui.test.junit4 (I452e8) adreslerine geçiş yapın

Hata Düzeltmeleri

  • reCAPTCHAToBitmap, reCAPTCHAToImage'a taşındı. (I86385)
  • foundation.Text kullanımdan kaldırıldı ve Matter.Text ile değiştirildi. Bir temadaki değerleri kullanmayan temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
  • Metin Alanları'nı, KlavyeOptions'ı kabul edecek şekilde güncelleyin (Ida7f3)
  • KlavyeOptions'ı ImeOptions olarak yeniden adlandırma (I82f36)
  • KlavyeType ve ImeAction, KlavyeOptions'a taşındı (I910ce)
  • Ambiyansların sağlanmasına alternatif olarak sourceDefault eklendi ve yalnızca önceden ortam değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField 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 için "Subject" parametresi içermeyen LaunchedEfektine izin verilmez. (Ifd3d4)
  • Yapılandırma güncellendiğinde yeniden oluşturulan kaynaklar kullanıma sunuldu. (I6387c, b/167352819)
  • Yeniden derleme için artık yapım sırasında bir CoroutineContext gerekiyor (Ic4610)
  • Birden çok Modifier.zIndex() uygulandığında zIndex değerlerinin toplamı. Önce birincisi kazanıyordu. (Ic514c, b/170623936)
  • Dahili SlotTable uygulamasında 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, genel API'den kaldırıldı. (Ic2e45)

Harici Katkı

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

Sürüm 1.0.0-alpha06

28 Ekim 2020

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

API Değişiklikleri

  • Yeniden oluşturucu artık bir CompositionReference ve geçerli bir beste üst öğesidir. Açık Yeniden Oluşturucu artık daha az yerde gerekli. (I4036f)
  • Oluşturulabilir API'nin, verileri kompozisyonlar genelinde korumak için dahili olarak "hatırlatma" özelliğinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı keepVectorPainter yerine kaldırın. (Ifda43)
  • Uygulamalara, çizim komutlarını yeniden sıralama olanağı sağlamak amacıyla, Modifier.drawWithCache API'yi güncelleyerek ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak kullanıma sunduk. Bu, karşılık gelen harmanlama modu algoritmasının doğru bir şekilde uygulanabilmesi için önce içerik piksellerinin oluşturulması gereken karıştırma/renklendirme kullanım alanlarında faydalıdır. (Ie7ec8)
  • SimpleContainer'ı PopupTestUtils.kt dosyasına taşıma (I78c57)
  • ConsumedData artık bir veri sınıfı değil. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 adresine bakın (I1737f)
  • Sağ Tutma Yeri Konumunu Düzeltin. (I6e1e0)
  • DrawScope ve ContentDrawScope soyut sınıflar yerine arayüz olarak yeniden düzenlendi
    • DrawScope'un CanvasDrawScope uygulaması oluşturuldu
    • Bunun yerine CanvasScope'u kullanmak için DrawScope uygulamaları yeniden düzenlendi
    • DrawScope için bağımlılıkları sarmalamak amacıyla DrawContext oluşturuldu
    • DrawScope'taki kullanımdan kaldırılan yöntemler (I56f5e)
  • Rahatsız edici değişiklik: İşaretçi etkinliklerinde değiştirilmesi gereken tek değerin tüketim verileri olması nedeniyle 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'in tüketim verilerini değiştirebilirsiniz. (I6acd0)
  • MeasurementScope 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 denetleyici bilgilerini belirtme özelliği ekleyin (Idee08, b/163494569)
  • Seçim menüsüne SelectAll (Tümünü Seç) seçeneği eklendi (Ief02b)
  • DrawTransform.rotate, belgelerle eşleşecek varsayılan bir Center pivot parametresini alacak şekilde güncellendi.
    • DrawScope.rotateRad, diğer dönüştürme yöntemleriyle eşleşmesi için Pivot noktası için bir ofset tüketmek üzere güncellendi.
    • Kullanımdan kaldırılan DrawScope.rotateRad aşırı yüklemesi, pivotun x ve y koordinatı için kayan reklam gösterir.
    • (Iffcbb, b/170434992)

Hata Düzeltmeleri

  • androidx için EksikGetterMatchingBuilder için API lint kontrolü etkinleştirildi (I4bbea, b/138602561)
  • Test ekle. (I6b8ae)
  • ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'da yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
  • Eklenmiş Klavyede Büyük Harf Kullanımı IME Seçeneği (I8ac38)
  • CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
  • SimpleContainer'ı PopupTestUtils.kt dosyasına taşıma (I65c3e)
  • Radius API, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak yeniden adlandırıldı. Dokümanlar, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
  • ACTION_DOWN (I94c5a, b/170320973) dışındaki tüm işlemler için onTouchEvent'i false döndüren alt Android Görünümlerine MotionEvents göndermeye devam ederek Android birlikte çalışabilirlik geliştirildi
  • Box, satır içi bir işleve dönüştürüldü. (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 Basarak Metne Taşıyın. (Iff2bc)
  • Deneysel Modifier.pointerInput askıya alma giriş değiştiricisi (Ia77d2)
  • Kopyalama/Yapıştırma/Kesme erişilebilirlik işlemleri eklendi (I6db4f)
  • AndroidOwner için herkese açık oluşturucu kaldırıldı (Iacaef)
  • Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE değerini devralmaktadır. Bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149)
  • İzleme verileri artık değişebilir. Ayrıca, tüketim işlemi yapan uzantı işlevleri için yapılan çağrılar artık yeni bir PointerInputChange döndürmez, bunun yerine sağlanan PointerInputChange'i değiştirir.

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

  • Metinde Seçimi ve Demo'yu devre dışı bırakın. (IE7e97)

  • onGloballyPositioned bir satır içi işlev oluşturuldu (I15830)

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

  • hasPendingmeasureOrLayout özelliği Sahip bölümüne eklendi. Böylece, Sahibin bekleyen düzen çalışması olup olmadığı belirleniyor. (I3d9f8, b/169038599)

  • Programlı olarak net odak noktasına API eklendi (Ie1dc2, b/161487952)

  • PointerInputFilter.onPointerInput(...) kaldırıldı. Onun 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ının bir parçası olarak, 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 kullanıma sunuldu. Taşma Yok olduğunda, Metin artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)

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

Hata Düzeltmeleri

  • Her kaydırmada alt kompozisyonda daha az çalışma yapılarak LazyColumn/Row'un kaydırma performansı iyileştirildi. Beste sınıfı için yeni hasGeçersizations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi has Invalidations() (Ib2f32, b/168293643, b/167972292, b/165028371) olarak yeniden adlandırıldı
  • Size.Belirtilmemiş parametreler, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, Size.Unspecified ve sonlu olmayan Boyutlar ile karşılaştırmalı olarak güncellendi. (I95a7e)
  • Özel Layouts'taki 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'i SpannableString dönüşümüne destekleme. (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: Gösterilen yazılım klavyesi uygulamanın çevirmesine 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ı. 1.0.0-alpha04 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Artık geçerli olmadığında düzenin toplanmasına ve gözlem kapsamlarının oluşturulmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
  • İçerik düzeni yeniden ölçüldüğünde ve boyut değiştirildiğinde geri çağırma almak için sırasıyla OnRemeasuredModifier ve onSizeChanged() eklenmiştir. (I657cf, b/154108792)
  • Uzun tıklama semantiği 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 PlacementScope#parentLayoutDirection"ı artık özel bir düzenin yerleşim blokundan okunamıyor. (Icc1ae, b/168295623)

  • anlamsal özelliklerine AccessibilityScrollState ekleyin. (Ifeda9)

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

  • ParagrafKısıtlamaları kaldırılır. Genişlik şimdi doğrudan Paragraf'a geçirilir. (Ica712)

Hata Düzeltmeleri

  • Birçok Grafik API güncellendi
    • DrawScope ve DrawTransform'da x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil eden tek bir Offset parametresi kullanmak için ölçek ve rotasyon dönüşüm API'leri güncellendi
    • Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
    • Yarıçap dokümanları güncellendikten sonra eliptik bisiklete ek olarak oval
    • Satır içi Yarıçap sınıfı için herkese açık kurucunun doğrudan çağrılmaması, bunun yerine Yarıçap nesnelerinin işlev kurucuları aracılığıyla örneklendirilmesi gerekir
    • topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
    • Rect.translate yerine 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.maxBoyut olarak yeniden adlandırıldı.
    • RoundRect.shortestSide, RoundRect.minDIMENSION olarak yeniden adlandırıldı.
    • RoundRect.center, işlev yerine özellik olarak değiştirildi
    • RoundRect oluşturucu, x/y yarıçap değerleri için tek tek parametreler yerine Yarıçap özelliklerini kullanmak üzere güncellendi
    • Kaynağı 0,0 olan bir Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
    • Yarıçapa yıkıcı bir API eklendi
    • Çeşitli RoundRect uzantı işlevleri ise mülk olarak taşındı.
    • (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 desteği sonlandırılacak ve ardından generate.foundation.layout'ta yeni Box kullanıma sunulacak. Yeni Box'ın davranışı, birden fazla alt öğesi 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/dolgular olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.Sınır, 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
    • ClipPath dokümanları, yuvarlatılmış dikdörtgen yerine Yola işaret edecek şekilde güncellendi
    • pixelPath'de doğru parametreyle ilgili dokümanlardaki boşluk düzeltildi
    • DrawScope.drawCanvas yeniden adlandırıldı ve boyut parametresi kaldırıldı
    • inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
    • 4 sınırın hepsine aynı inset 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 kullanımdan kaldırılan Rect.shift
    • (If086a, b/167737376)
  • Açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @visibleForTesting, bunları dahili API yapın ve kdoc'unu gizleyin (I554eb, b/168308412)
  • Varsayılan seçimi devre dışı bırakmak ve beklenmedik davranışlardan kaçınmak için SeçimiKapsayıcıyı En Üstten kaldırın. Bunun yerine seçilebilir olması gereken içeriği sarmalamak için özel olarak 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ı. Sürüm 1.0.0-alpha03 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ı şablondan 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 onlar için beklenmedik bir sonuç türüdür. Ör. boyut - göreli konum, farkı içeren bir ofset mi yoksa boyut sonucu mu döndürmelidir?

    Boyut 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 uygulandı. Bu, bazı koşullarda kilitlenmelere de neden oluyordu. (Ibcf17, b/163066980, b/165921895)
  • Bu API'yi 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ı, düzen API'lerini hizalamak veya uyumlu hale getirmek için tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
  • Mevcut genel yöntemler kullanımdan kaldırılacağı için onNode ve diğer genel yöntemler ComposeTestRule'a 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 Sahibi 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 sayılı veya Sıfır Olmayan yol dolgu 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)
  • Düzen düğümü sınırları değiştiğinde Sahibi bildirmek için bir geri çağırma ekleyin. (Ic40b3)
  • Ofset ve yarıçap içeren Dikdörtgen işlev oluşturucunun, Dikdörtgeni sol, üst, sağ, alt yerine sol, sağ, üst, alt sırasında oluşturması sorunu düzeltildi.

    İşlev oluşturucularının lehine Rect'teki desteği sonlandırılmış 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)
  • Matris4, Matris ile değiştirildi. Vektörmath paketinin diğer tüm kısımları kaldırıldı. (Ibd665, b/160140398)
  • Birleştirilebilir işlevler için çağrı kuralı değişti. Bu, ikili programlarda sorun yaratan bir değişikliktir. 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 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 yapıldığında oluşabilen kilitlenme, PointerInputFilter'in eşzamanlı olarak kaldırılmasına neden olabilir. (

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.ui:ui-*:1.0.0-alpha01 yayınlandı. Sürüm 1.0.0-alpha01 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ı. Sürüm 0.1.0-dev17 bu kayıtları içerir.

API Değişiklikleri

  • emitView desteği sonlandırıldı. Compose içinde Görünüm yayınlamak için mümkünse bunun yerine AndroidView kullanın. Görünümler ve Görünüm Grupları oluşturma işlemlerinin, bunlar AndroidView kullanılarak bileşim ağacında bırakılmadığı sürece gelecekte desteklenmeyeceğini unutmayın. (I29b1e, b/163871221)
  • FocusState2 desteği sonlandırılmış ve yerini FocusState ile değiştirmiştir (Ia8b79, b/160822876, b/160923332)
  • Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
  • Özel emisyonlar, artık ayarlayıcılarından bir veya daha fazlasının atlanıp yayılmadan bağımsız olarak yeniden oluşturulabileceğini bildirebiliyor. (Ibbd13)
  • Kompozisyon için aynı nesne örneği kullanıldığından Vector 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 için VectorPainter için mutableStateOf işareti eklendi.

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

    GroupBileşen ve Yol Bileşeni, 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 oldu (Iaec70)

  • SeçimKapsayıcısı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)

  • 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 mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)

  • Kısıtlamalar artık satır içi sınıf (I88736)

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

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

  • Intoffset artık satır içi bir sınıf (Iac0bf)

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

  • PlacementScope.placeAbsolute(), PlacementScope.place() olarak, önceki PlacementScope.place() ise 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. İsterseniz bunun yerine PlacementScope.placeRelative() politikasını kullanın. (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 olmayan bir şekilde değiştirdik. Gelecekte herkese açık hale getirilecektir. (I32ab1)

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

  • Kullanımdan kaldırılan PxBounds'un yöntemi Rect oldu. PxBound'ların tüm kullanımları dikdörtgen ile güncellendi ve taşıma işlemine yardımcı olmak için uygun kullanımdan kaldırma/değiştirme notlarıyla 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 tuş 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şeceği için DelayUp özel etkinliğini ve ilgili sınıfları etkin bir API haline getirdi. (I56d6f)

  • Artık gerekmeyen 2 PointerEventPass kaldırıldı. (I3dd9d)

  • Paragraph.paint öğesine renk, gölge ve TextDecoration parametreleri ekleyin. Bu işlev, Paragraf'ın gereksiz yere 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. Kenarlık 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 yazma API'leri, mutableStateof() (I80ba6) gibi durum nesnelerini izlemek için genel gider miktarını azaltmak amacıyla değiştirildi

  • VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Modifier.drawArka Plan kaldırıldı. Değiştirici.background'ı kullanma (I73b0d, b/163019183)

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

  • state { ... } derlemesi artık kullanımdan kaldırıldı. Bunun yerine, açıklık sağlamak amacıyla remember { mutableStateOf(...) } öğesine yapılan açık çağrılar devre dışı bırakıldı. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkilendirmesi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)

  • RRect, oluşturma adlandırma kalıplarına daha iyi uyması için RoundRect olarak yeniden adlandırıldı RRect ve kullanımdan kaldırılan RRect işlevi oluşturuculara benzer işlev oluşturucular oluşturuldu (I5d325)

Sürüm 0.1.0-dev16

5 Ağustos 2020

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

API Değişiklikleri

  • OnChildPositioned kullanımdan kaldırıldı. Bunun yerine alt öğede OnPositioned özelliğini 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şirme ve oluşturma amaçlı AndroidViewBinding API eklendi. (I081c6)
  • KeyEvent2, KeyEvent ile değiştirilir (I2d770, b/162097585)
  • Alternatif donanım anahtarı için destek eklendi (I9036b)
  • FocusManager kullanımdan kaldırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() fonksiyonunu kullanın. (I74ae4, b/162211322)
  • loadVectorResource, trimPath özelliklerini destekler (I808fe)
  • İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
  • Artık gerekmeyen 2 PointerEventPass kaldırıldı. (I33ca7)
  • PointerInteropModifier uygulandı. Bu araç, MotionEvents'i alma ve bir Android View uygulamasıymış gibi Compose ile etkileşimde bulunma olanağı sağlar. (Ieb08c)
  • Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId'yi kullanın. (Idaa05, b/162023919)
  • Sağdan sola desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
  • Vektör grafiklerinde yol kırpma desteği (Ie16c9, b/158188351)
  • Kolayca özel bir düzen değiştirici oluşturmayı sağlayan 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 adını kullanın. "Sonra"da sıralama sinyali daha güçlüyken Modifier.padding().background() + anotherModifier yazmanız da yasaklanır, bu da zinciri bozar ve okunması daha zordur (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şlevlerde, bunları kullanmanın ek yükünü önemli ölçüde azaltıyor. (I75c10)
  • SubcomposeLayout eklendi. Alt ağaç bileşimini ölçme sırasında yalnızca daha sonra sunulacak bazı değerleri kullanmak istiyorsak ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan düşük düzey bir temel öğedir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmamıştır. (I25cc8)
  • Bir SemanticsNode'un Compose hiyerarşisinin köküne göre konumunu almak için SemanticsNode.positionInRoot eklendi (Icdf26, b/161336532)
  • MotionEvents, Android'den Compose'a geçti ve tekrar Android'e geri döndü. (I14be8, b/158034713)
  • Açılır pop-up kaldırıldı. (I00430)
  • Kesilen ekranlarda pop-up konumu düzeltildi. (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/isLineEllipSIZE değerini kullanın. (I85aa2)
  • En iyi uygulama nedeni için birkaç İşaret/Ek Açıklama ekleyin. (I66b20)
  • TextLayoutResult içinde daha fazla satır API'si gösteriyor. (I79bd2)
  • Yerleşik birimleri dönüştürecek yerleşik vektör dönüştürücülere artık Foo.VectorConverter aracılığıyla erişilebilir. Ör. Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273).

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'i Intoffset.Zero olarak yeniden adlandırın
    4. Tüketicileri kendi Canvas örneklerini oluşturmalarında 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ılmamasını sağlamak için BlankCanvas sınıfı oluşturuldu
    6. ClipOp enum'ları, Pascal Case olarak yeniden adlandırıldı
    7. Filter Quality enum'ları Pascal Case olarak yeniden adlandırıldı
    8. Stroke Join enum'ları, Pascal Olgusu olacak şekilde yeniden adlandırıldı
    9. PointMode enum'ları, Pascal Case olarak yeniden adlandırıldı
    10. PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
    11. PathFillType enum'ları Pascal Case olacak şekilde yeniden adlandırıldı
    12. StrokeCap enum'ları, Pascal Kılıfı olarak yeniden adlandırıldı
    13. DrawCache uygulaması, artık lateinit parametrelerini kullanmayacak şekilde güncellendi
    14. DrawScope artık fillPaint ve drawPaint dahili parametreleri için geç yetkiyi kullanmayacak şekilde güncellendi
    15. Daha az ek yük için Box kullanımını önlemek üzere Resim oluşturma özelliği 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. Vektör alt bestesi, oluşturma işlevi bunları zaten işlerken eşitlik için gereksiz koşullu denetimleri kaldıracak şekilde güncellendi.
    19. Kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemlerinin yerine işlev kurucular
    20. @Immutable ve @Stable API'leri ile güncellenmiş Brush sınıfları ve işlev oluşturucular
    21. VertexMode sıralaması PascalCase olarak güncellendi
    22. Çizim kapsamı değiştiyse boyamadaki çizgi parametrelerinin üzerine koşullu olarak yazmak için DrawScope selectPaint yöntemi güncellendi
    23. Boyut, yıkıcı API'yi eklemek için güncellendi, UnspecifiedSize olarak yeniden adlandır ve Kullanılmayan yöntemler kaldırıldı
  • API düzeyine bağlı olarak Android çerçevesi BlendModes ve PorterDuff modları arasında düzgün bir şekilde eşleme yapılabilmesi için Composer BlendMode API tüketimi güncellendi. BlendMode'un kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için işlev sorgusu olarak işlem görmesi için BlendMode#isSupported API kullanıma sunuldu. (I0ef42)
  • Lazy listelerinin itemContent parametresi için LazyItemScope eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve normal Modifier.fillMaxSize(), öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için çalışmadığında üst maksimum boyutu dolduracak değiştiriciler sağlar. (Ibd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture kaldırıldı. Bunun yerine SemanticsNodeInteraction.performGesture politikasını 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 adlı dosya createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
  • TextLayoutResult öğesine daha fazla API eklendi. (Id7e04)
  • FilledTextField malzemesi, en basit API'nin keşfedilip kullanılmasını kolaylaştırmak için TextField olarak, temel TextField öğesi de BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676)
  • Modifier.drawArka Plan, 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ı. Sürüm 0.1.0-dev15 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ıkları 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ıştır. Bunun yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver’a sahiptir. FocusState ve FocusDetailsState kullanımdan kaldırıldı. Bunun yerine FocusState2 (I46919, b/160822875, b/160922136) kullanıma sunuldu.
  • Odak durumu değişikliğini gözlemlemek için bir değiştirici eklendi. (I05866, b/160924455, b/160923326)
  • Odak değişikliği isteğinde bulunmak için bir düzenleyici eklendi (I8dd73, b/161182057, b/160924778)
  • Kopyalama, kesme ve yapıştırma işlemlerinin düzgün bir şekilde gösterilmesi için Araç Çubuğu Menüsü'nü tıklayın. (Id3955)
  • Tek değerli anlamsal özellikler artık bir çağrı stili kullanıyor. Örneğin, 'semantics {hidden = true }' artık şu şekilde yazılır: 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 için deneysel bir API notu eklendi (I53b24, b/160903352)
  • FocusState2'nin yerini alacak olan FocusState2 eklendi (I0a3ba, b/160822595)
  • Focus API 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)
  • Uygulama, artık bileşimleri 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ı oluşturuldu (I4f2e9)
  • Aşağıdakiler 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 örnek kopyalama yöntemi lehine (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 olarak yeniden adlandırıldı (I3ff38)

  • 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üzenleyerek yeniden kullanın. (I420e0)

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

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

  • Bu değişiklikten önce, yazma derleyici eklentisi (I5205a, b/158123804) varsa @Composable işlevinin içindeki kuruculara yapılan çağrılara önemsiz bir şekilde müdahale ediyordu.

  • Modifier.tag, Modifier.testTag ile karıştırılma ihtimalini ortadan kaldırmak için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)

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

  • AndroidView composable, bir 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 gibi (I5fdd1) ViewModel'in oluşturulmasına veya önceden oluşturulmasına olanak tanıyan viewModel() composable özelliğini ekleyin

  • IntPx kullanımı, IntPxPosition (IntPxPosition) ile 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ı standart hâle getirin. Bu, kayan öğe olarak gösterilen genişlik ve yüksekliği temsil etmek için, paketleme için uzun 2 kayan değer değerinden yararlanmak amacıyla satır içi sınıfın avantajlarını sağlar. (Ic0191)

  • Konumlandırma bilgilerini temsil etmek üzere kullanılan 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 noktalı olarak temsil edilen x ve y ofsetlerini temsil etmek için 2 kayan değer değerini paketlemek için uzun bir değerden yararlanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)

  • Piksel parametreleri için yalnızca Dp ve temel tü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. 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ışması kapsamında, çeşitli beste sınıflarında Px sınıfı 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 beste sınıflarında Px sınıfı kullanımı değiştirildi

  • Piksel parametreleri (I97a5a) 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 beste sınıflarında Px sınıfı kullanımı değiştirildi

  • TestTag artık kullanımdan kaldırılmıştır. 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ı durumu aynıydı. (I0deaa)

  • Daha önce desteği sonlandırılmış ScaleFit seçeneği kaldırıldı. 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ı kullanımı değiştirildi

  • Bir Materyal Tasarım menü uygulaması olan ui-material'a DropdownMenü bileşeni 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() komutunu 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ı 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 olarak CanvasScope'u DrawScope olarak adlandırıyoruz. Yoğunluk arayüzünü uygulamak ve LayoutDirection'ı eklemek ve LayoutDirection'ı eklemek için DrawScope güncellendi ContentDrawScope'ta DrawScope alt sınıfını sağladı Painter ve PainterModifier artık RTL özelliğini tutmayacak şekilde güncellendi (DrawScope bunu manuel olarak sağlamadan zaten sağlıyor) (I1798e)

  • Çift Tap Hareket Filtresi artık SingleTapHareket Filtresi'ni ağaç genelinde açıklığa kavuşturuyor. (If92b1)

  • Güncellenen Hizalama API'si ve mutlak hizalama için destek eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)

  • Drawlayer değiştiricileri API değiştirildi: Outline Shape yeniden şekillendi

  • Canvas'ı CanvasScope'u kullanıma sunacak şekilde gösteren üst düzey oluşturma API'leri güncellendi. Bu sayede, tüketicilerin kendi Paint nesnelerini tutma gerekliliği ortadan kalkar. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, çizim komutu vermek için temel Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilir. (I80afd)

  • WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalar ve layoutDirection'a ek olarak Dp'de minwidth, maxwidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamına sahiptir (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 dahili ölçüm işlevleri, artık dolaylı olarak yayılmış düzen yönüyle dahili sorgu API'si sağlayan bir IntrinsicmeasureScope alıcısına sahiptir. (Id9945)

  • Layout ve LayoutModifier alt öğeleri, farklı 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() eklenmiştir. DrawtierModifier'daki yükseltme özelliği, shadowElevation olarak yeniden adlandırıldı ve çizim sırasını artık kontrol etmemektedir. DrawShadow'un parametre sırası değiştirilmiştir: Yükseklik artık ilk sırada ve şekil, Dikdörtgen Şekil varsayılanı olan ikinci sıradadır. (I20150, b/152417501)

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

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

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

  • alignToSiblings, artık Yerleştirilebilir yerine Ölçüm kabul ediyor. (I5788d)

  • (I45f09, b/152842521)

    • ScaleFit, ContentScale olarak yeniden adlandırıldı
    • ContentScale, hizalama API'si ile aynı modülde yaşamak için kullanıcı arayüzü grafiklerden arayüz çekirdekli modüle taşındı.
    • FillMaxBoyutlar, Kırpma olarak yeniden adlandırıldı
    • FillMinBoyut Sığdır olarak yeniden adlandırıldı
    • Daha iyi eşleşmesi için Fit adını Inside olarak değiştirdi
    • ImageView.ScaleType eşdeğerleri
    • Kırpma ve Hizalama.Center kombinasyonlarının, Hizalama.Center ile kullanılan ImageView.ScaleType.>_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'yi iyileştirin:

    • schema() 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 yöntemi,drawContent() yöntemine (Ibaced, b/152919067) sahiptir
  • Düzen Koordinatları için locationInParent ve boundsInParent eklendi. (Icacdd, b/152735784)

  • DrawlayerModifier vedrawKatmanlar() artık varsayılan olarakClipToBounds ve ClipToOutline'ı false değerine ayarlar. (I0eb8b, b/152810850)

  • LayoutResult, measureResult olarak yeniden adlandırıldı. (Id8c68)

  • Düzen değiştiricileri tanımlamaya yönelik 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 listesinin yerini ayarlamak için çeviriX/Y özellikleri eklendi. Bu, animasyonlara veya dokunma etkinliklerine yanıt olarak içeriği taşırken yararlı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 tierModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölgelerin ayarlanmasına olanak tanır. Bu, RepaintBoundary'nin yerini alır. (I7100d, b/150774014)

  • Düzen yönünün üst düzen düğümünden alt öğelere yayılması sağlandı. 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)

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

  • Sağlanan Düzen Koordinatları değiştirildi, böylece Düzen Koordinatları Harita yerine Küme haline getirildi ve Düzen Koordinatları , değer almak için get() operatörü uyguladı. Bu, değiştiricilerin her bir değiştirici için yeni bir koleksiyon oluşturmadan kümedeki bir veya daha fazla değeri değiştirmelerini kolaylaştırır. (I0245a)

  • Düzen Koordinatları artık bir konum özelliğine sahip değil. LayoutModifiers, rotasyon veya ölçeklendirme düşünüldüğünde konum özelliği anlamlı değildir. Bunun yerine, geliştiriciler bir Layout Kodlayıcıdan diğerine geçişi hesaplamak için parentKoordinatörleri ve altToLocal() işlevini kullanmalıdır.

    LayoutKoordinatları, boyut özelliği için PxSize yerine IntPxSize değerini kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullandığından tüm düzen boyutları, kayan nokta değerleri yerine tamsayılar kullanmalıdır. (I9367b)

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

  • Durum bilgisiz ve bildirim temelli çizim API'si yüzeyini ortaya çıkarmak için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyutlandırma bilgileri de ilgili alt sınır sınırlarına dahil edilir. Tüketicinin, çizim işlemlerini yapılandırmak için kendi Paint durum nesnesini tutması gerekmez.

    • 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.*'dan androidx.ui.graphics'e taşındı.* (Ia74d5, b/154507984)

  • API'deki tüm null özellikli Renk kullanımları, null yapılamayan renkle değiştirildi ve null yerine Color.Unset (Iabaa7) kullanılıyor

  • 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

  • Renkleri kutulamadan, ayarlanmamış bir değeri temsil etmesi için Ayarlanmamış 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 mevcut tuval çevirisinin sol üst köşesinde yer alır.

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

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

  • Oluşturma ve üzerine derlenen Android çerçeve API'leri arasındaki nesne dönüşümleri için adlandırma kuralını eşleştirmek amacıyla, toFrameworkRect/toFrameworkRectF adını AndroidRect/toAndroidRectF olarak değiştirdi. Ayrıca bu API'lerle ilgili güncellenmiş belgeler (I86337)

  • Vektör grafikleri için mevcut alt bileşim API'sinin yerini alması için VectorPainter API'si eklendi. Alt bileşimin sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector kompozisyonları kullanımdan kaldırıldı ve VectorPainter oldu.

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

  • Resim verileri ile düzene katılmak ve içerik çizmek için kullanılan Resim-oluşturulabilirliği arasındaki farkı daha iyi ayırt etmek için Resim, ImageAsset olarak yeniden adlandırıldı. _Body:Geleneksel Android uygulaması geliştirmeyi yazma çerçevesi (Id5bbd) ile birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap, Bitmap.asImageAsset() üzerinde uzantı yöntemi oluşturuldu.

  • 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ılır

  • Metin Alanı Seçimi için LongpressAndDrag'i 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 imlecinde yanıp sönen bir animasyon var (Id10a7)

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

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

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

  • Artık onTextInputStarted geri çağırması (I8dc44, b/151860051) ile sunulan SoftwareKlavyeController uygulamasını kullanarak yazılım klavyesini gizleyebilir/gösterebilirsiniz

  • Birleştirme() işlevine yetki veren (Metin/Paragraf/Genişlik) Stili için artı operatörü eklendi. (Ia1add)

  • Fontweight.lerp artık yapışmı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ılmıştır

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

  • Sadece görünür öğeleri oluşturan ve yerleştiren 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ı sayılabilir. (Ib351b)

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

Hata Düzeltmeleri

  • Metin alanlarındaki onFocusChange geri çağırması, onFocusChanged (Ida4a1) olarak yeniden adlandırıldı
  • VerticalScroller ve HoriziontalScroller desteği sonlandı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.verticalScroll ve Modifier.LandscapeScroll'i kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırıldı ve ardından ScrollState (I400ce, b/157225838, b/149460415, b/154105299) kullanıma sunuldu
  • runOnIdleCompose, runOnIdle (I83607) olarak yeniden adlandırıldı
  • Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'lerinin adı onNodeXYZ olarak değiştirildi. Tüm doXYZ API'lerinin adı performansXYZ olarak değiştirildi. (I7f164)
  • Oluşturma kullanıcı arayüzü artık yeni bir oluşturma işlemi gerektirmeden ViewGroups içinde oluşturulabilir. Örnek için ViewInteropDemo sayfasına bakın. (I9ab0b, b/160455080)
  • MutableVector'a SortWith ve removeRange eklendi (Icccf7)
  • TextField seçimi değiştirmek için Sürükleme Seçimi Tutucularını uygulayın. (I27032)
  • NativeShader'ı sarmalayan Shader satır içi sınıfı kaldırıldı NativeShader'ı Shader olarak yeniden adlandırdı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklememiştir ve bir satır içi sınıftır. Bu nedenle 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 boyutuna göre kendi başlarına ö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.

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

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

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

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

  • İşaretleme sırasında alt bileşen aracılığıyla PointerInputFiltreler'in kaldırılması durumunda işaretçi girişi gönderiminin kilitlenmeye neden olmasıyla ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)

  • İşaretleme sırasında alt bileşim 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ı, satır içi sınıf olacak şekilde yeniden düzenlendi. Tamamlayıcı oluşturma yöntemlerinin yerine, varsayılan parametreye sahip işlev oluşturucunun y ekseni boyunca yarıçapının, zorunlu x ekseni yarıçap parametresinin yarıçapıyla eşleşmesini sağlayacak şekilde kaldırıldı.

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

  • Recompose kompozisyonu artık yararlı bir soyutlama değil. Çoğu yeniden oluşturma işlemi MutableState atamaları sonucunda gerçekleşir. Bunun dışında 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ı kullanımı değiştirildi (Iede0b)

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

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

    Bu, tüm oluşturma işlemlerinde kaynakla uyumlu bir değişiklik olmalıdır. Bu değişikliğin ardından, yazma özelliğini kullanan çoğu kullanıcının herhangi bir kod güncellemesi gerekmeyecektir.

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

    Oluştur özelliği artık varsayılan bağımsız değişkenleri de oluşturulabilir bir işleve dönüştürüyor. Bunu, işlevin kendisinin fazladan bir sentetik varsayılan aşırı yüklemesi uygulamadan yapar. Dolayısıyla 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 ulaşamadıkları yerden atlanır
    2. Varsayılan bağımsız değişken ifadelerindeki oluşturulabilir ifadeler artık doğru şekilde abone olundu ve işlendi

    Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer oluşturulabilecek işlevlere 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ış birleştirilebilir 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ı ve slot tablosu boyutu küçültülür. 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ı için daha az iş yapılmasına neden olur 4. İşlevlere yönelik kullanılmayan dağıtım ve alıcı parametreleri, işlevin gövde bölümünde kullanılmadığı takdirde işlevin atlanabilirliğinin belirlenmesine 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 desteği sonlandı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, Function1 yerine bir Function3 içerecek şekilde değiştirildi 7. restartableFunction ve restartableFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi (I60756, b/143464846)

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

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

  • Düğme, FloatingActionButton ve Clickable artık ayrı bir enabled parametresine sahiptir. 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)

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

  • LayoutDirection tarafından belirlenecek varsayılan TextDirection'ın davranışı değiştirildi. Diğer bir deyişle, LayoutDirection RTL ise varsayılan TextDirection değeri RTL olacaktır. Daha önce TextDirection.ContentOrLtr/Rtl (I4e803) adıydı

  • Hata düzeltmesi: AnnotatedString örneğinde yazı tipi kalınlığı 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(text günde = TextStyle(text gündeme = Metin hizalama)) gibi az sayıda geçirmek 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ı