Oluşturma kullanıcı arayüzü

Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşimde bulunmak için gereken oluşturma kullanıcı arayüzünün temel bileşenleri.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürümü
11 Aralık 2024 1.7.6 - - 1.8.0-alpha07

Yapı

Oluşturma, androidx içindeki 7 Maven grup kimliğinin birleşimidir. Her grup, kendi sürüm notlarına sahip hedeflenen bir işlev alt kümesi içerir.

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

GrupAçıklama
compose.animationKullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyon oluşturabilirler.
compose.compiler@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisi ile 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'da açıklananlarla eşleşen bileşenler sağlamak için tasarlanmış Compose'un üst düzey giriş noktasıdır.
compose.material3Materyal Tasarım'ın bir sonraki aşaması olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenen temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır.
compose.runtimeCompose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedeflemesi gereken temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş dahil olmak üzere cihazla etkileşimde bulunmak için gereken oluşturma kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları beyan etme

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

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

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

Yeni sorun oluşturma

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

1.8 sürümü

Sürüm 1.8.0-alpha07

11 Aralık 2024

androidx.compose.ui:ui-*:1.8.0-alpha07 yayınlanır. 1.8.0-alpha07 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Araçlar için LayoutNode'ten sahibin bilgisini gösterdi. (I26f7f)
  • LocalAutofillHighlightColor kompozisyonunda yerel olarak kullanılan bir Renk türü var. (I0e05b)
  • Desteği sonlandırılan UrlAnnotation ve yöntemlerini deneysel olarak işaretlenmiş halde bırakın. (Ic0021)

Hata Düzeltmeleri

  • BasicText veya metin bileşeni içinde LinkAnnotation kullanılırken IndexOutOfBoundsException kilitlenme sorunu düzeltildi (be7605, b/374115892)
  • Özel şekle sahip doldurulmuş metin alanlarının, gösterge çizgisini kırpmaması sorunu düzeltildi. (I4f87f, b/380704151)
  • Uzun ekran görüntülerinde eksik arka planlar düzeltildi. (I4d57a)
  • Bu kitaplıkta artık tür kullanımı olan JSpecify nullness ek açıklamaları kullanılmaktadır. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenlerini kullanmalıdır: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (Idfef8, b/326456246)
  • Android Q ve sonraki sürümlerde çalışırken geniş gam ve HDR renkleri için Oluşturma desteğini güncelleyin. (Icd8be, b/379135036)
  • Yüklenemeyen kaynak yazı tipleri artık ölçümde istisna atma önceki davranışı yerine varsayılan yazı tipine sessizce geri dönecek. (Ib6a49)
  • AndroidView ayrılıp bağlandığında odağın kaybedilmesiyle ilgili sorun düzeltildi. (I53446)
  • requestFocus()'ü sınırın dışındaki düzen işleminden kabul edin. (Ia8461)

Harici Katkı

  • Kullanıcı arayüzüne BringIntoViewResponderModifierNode ekleyin. Bu, Görünür Hale Getirme işlevini uygulamanın yeni bir yolunu sağlar ve platform düzeyinde uygulamaya olanak tanır. (Ia6dd8)

Sürüm 1.8.0-alpha06

13 Kasım 2024

androidx.compose.ui:ui-*:1.8.0-alpha06 yayınlanır. 1.8.0-alpha06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • stylusHoverIcon değiştiricisi ekler. (Iff20a, b/331289114)
  • Otomatik doldurma yöneticisini arayüz olarak değiştirir. (I84914, b/376080755)
  • Belirli bir yönde odaklanmaya izin vermek için hem focusRequester hem de FocusTargetModifierNode için requestFocus(FocusDirection) ekler. (I5d9ec, b/245755256)
  • FocusProperties.enter ve FocusProperties.exit, FocusDirection parametresi yerine alıcı kapsamı kullanılarak onEnter ve onExit ile değiştirildi. (I6e667)
  • Metin araç çubuğuna otomatik doldurma desteği eklendi. (Ie6a4c)
  • API, Modifier.focusRestorer() (I99c03) olarak değişti:
    • parametre adı "fallback" olarak değiştirildi
    • parametresi artık lambda değil FocusRequester
    • parametresi artık varsayılan değer olarak Varsayılan ile NULL olmayan bir değere sahip
  • Otomatik doldurma yöneticisi arayüzünden @Experimental ek açıklamasını kaldırma. Bu özellik, bu sürümü hedefleyen geliştirme aşamasındadır ancak @Expemiental API'yi (Id8398) tanıtmak istemiyoruz.
  • LocalHapticFeedback artık Vibratör API'si dokunma teknolojisinin desteklendiğini belirttiğinde varsayılan bir HapticFeedback uygulaması sağlar. Şunlar HapticFeedbackType'e eklendi: Confirm, ContextClick, GestureEnd, GestureThresholdActivate, Reject, SegmentFrequentTick, SegmentTick, ToggleOn, ToggleOff, VirtualKey. Wear Compose'daki Button, IconButton, TextButton ve Card gibi uzun tıklanabilir bileşenler artık uzun tıklama işleyici sağlandığında LONG_PRESS dokunma işlevini gerçekleştiriyor. (I5083d)
  • OverscrollConfiguration ve LocalOverscrollConfiguration parametrelerini kaldırır ve varsayılan kaydırma üstü uygulamasını örneklemek / parametrelerini özelleştirmek için rememberPlatformOverscrollFactory parametresini ekler. Aşırı kaydırma özelliğini devre dışı bırakmak için LocalOverscrollConfiguration provides null yerine LocalOverscrollFactory provides null kullanın. Parıltı rengini / dolguyu değiştirmek için LocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding) yerine LocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding) kullanın. (Ie71f9, b/255554340, b/234451516)
  • Deneysel GlobalAssertions API kaldırıldı. Amaçlanan kullanımı erişilebilirlik kontrolleri yapmaktı. Bu amaç için enableAccessibilityChecks() bölümüne bakın. (I59322)

Sürüm 1.8.0-alpha05

30 Ekim 2024

androidx.compose.ui:ui-*:1.8.0-alpha05 yayınlanır. 1.8.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

Otomatik doldurma, bu sürümde bir özellik işaretinin arkasında sunulur. Performansı iyileştirmek için çalışıyoruz ve API'ler hakkında erken geri bildirim almak istiyoruz. API'lerin, kararlı sürümden önce geri bildirimlere göre gelişmesi beklenir.

  • Otomatik doldurma özelliğini etkinleştirmek için onCreate'te ComposeUiFlags.isSemanticAutofillEnabled değerini true olarak ayarlayın ve en son Oluşturma anlık görüntüsünü kullanın.
  • Otomatik doldurma özelliğinin bu sürümü, kimlik bilgilerini güçlü şifre önerisi ve gezinme aracılığıyla manuel olarak kaydetmeyi destekler. Ayrıca, otomatik doldurulabilir bir alan odaklandığında veya otomatik doldurma, metin bileşenlerindeki metin araç çubuğu aracılığıyla tetiklendiğinde doldurmayı destekler. Otomatik doldurma işlemi tamamlandığında bileşen vurgulanır.

API Değişiklikleri

  • Otomatik doldurma arayüzünü expect/actual yapısına uygun olacak şekilde değiştirin. (I22dce)
  • Otomatik doldurma özelliğinin başarılı doldurma vurgusunun tonunu değiştirmek için kullanılabilen CompositionLocal özelliğini kullanıma sunduk. (I32092)
  • Bir LayoutNode'un kök/pencere/ekrana göre konumuna ve boyutuna abone olmaya olanak tanıyan Modifier.onRectChanged API eklendi. API, mevcut onGloballyPositioned değiştiricinin yaptığı birçok kullanım alanını çözer ancak bunu çok daha az ek maliyetle yapar. Ayrıca API, kullanım alanınıza göre geri çağırma işlevini erteleme ve kısıtlama olanakları sunar. (Id28c7, b/372765423, b/372757007, b/372994338)
  • Otomatik doldurma yöneticisini, kullanıcıların yeni girilen kimlik bilgilerini kaydetmesine yardımcı olan commit() ve cancel() API'lerini içerecek şekilde genişletir. (I2da00)
  • Kullanıcıların Otomatik Doldurma yolculuğunda ince ayar yapmak için kullanılabilecek yeni AutofillManager arayüzünü ve Otomatik Doldurma'nın bu yeni sürümünü etkinleştirmek için bir isSemanticAutofillEnabled işaretçisini kullanıma sunar. (I9d484)
  • Bir LayoutNode'un kök/pencere/ekrana göre konumuna ve boyutuna abone olmaya olanak tanıyan Modifier.onRectChanged API eklendi. API, mevcut onGloballyPositioned değiştiricinin yaptığı birçok kullanım alanını çözer ancak bunu çok daha az ek maliyetle yapar. Ayrıca API, kullanım alanınıza göre geri çağırma işlevini erteleme ve kısıtlama olanakları sunar. (I3c8fa)
  • Genişletilmiş otomatik doldurma desteği için anlamsal özellikler ve veri türleri ekleyin. (I52c7d)
  • AnnotatedString oluşturucudaki tüm yöntemler artık deneysel değil (Ia89c8, b/261561823)

Hata Düzeltmeleri

  • Oluşturma alanına yerleştirilmiş görünümler artık odaklanıldığında döner etkinlikler alabilir (I4d53a, b/320510084)
  • Çeşitli kaynak türlerinin yapılandırma değişikliklerinde güncellenmediği bir sorun düzeltildi (Ia9b99, b/352336694)
  • Belirli eski Sony cihazlarda POBox Japonca Klavyesi kullanılırken TextField'ün düzgün çalışmasını engelleyen bir sorun giderildi. (Ia9b99, b/373743376)
  • İletişim kutularının ortalanmak yerine ekranın alt kısmında gösterilmesiyle ilgili sorun düzeltildi (Ia2ec, b/373093006)
  • Hedefleme API 35 ve sonraki sürümler artık iletişim kutularının decorFitsSystemWindows değerini false olarak ayarlamaya zorlamaz. (Ibc94, b/364492593)
  • Katmanlar pencereler arasında taşınırken (ör. iletişim kutusu ve ana içerik) kilitlenme sorunu düzeltildi (I675ba, b/330955281)

Sürüm 1.8.0-alpha04

16 Ekim 2024

androidx.compose.ui:ui-*:1.8.0-alpha04 yayınlanır. 1.8.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Değişiklik olduğunda düğüm durumunun güncellenmesine izin vermek için DelegatableNode#onDensityChange ve DelegatableNode#onLayoutDirectionChange geri çağırma işlevleri ekler (I04f3e, b/340662451)
  • Geçerli pencerenin içerik kapsayıcı boyutunu sağlamak için WindowInfo#containerSize ekler. Bu, LocalWindowInfo kullanılarak alınabilir. (Idc38c, b/369334429, b/360343819)
  • Devam eden bir fırlatma sırasında düğüm ağacından kaldırılan iç içe yerleştirilmiş kaydırılabilir öğeler için bir düzeltme yapıldı. Artık bu düğümler fırlatmayı iptal edecek ve kalan hızla onPostFling etkinliğini doğru şekilde gönderecektir. Ayrıca, gerileme durumunda davranışı kontrol etmek için NewNestedScrollFlingDispatchingEnabled işaretini de kullanıma sunuyoruz. İşaret, beta sürümünden önce kaldırılacaktır. (I05c37, b/371168883)
  • Tek bir işaretçi girişi değiştiricisinin dokunma sınırlarını genişletmek için kullanılabilen PointerInputModifierNode#touchBoundsExpansion özelliği kullanıma sunuldu. (Iccf02, b/335339283)
  • Geçerli pencerenin içerik kapsayıcı boyutunu sağlamak için WindowInfo#containerSize ekler. Bu, LocalWindowInfo kullanılarak alınabilir. (I27767, b/369334429, b/360343819)
  • Kararlı temel sürüme sabitlemek için readOnlyTextFields'ten kaldırın. (I3aaba)
  • Paragraph ve ParagraphIntrinsics, artık AnnotatedString'ye uygulanan tüm ek açıklamaların listesini alıyor. Daha önce yalnızca SpanStyles (I12f80) listesini alıyordu.

Hata Düzeltmeleri

  • AnnotatedString'te paragrafların işlenme şekli güncellendi. Daha önce yalnızca çakışmayan paragraflar oluşturabiliyordunuz. Artık AnnotatedString, tamamen çakışan ve birleştirilecek paragraflara ve iç içe yerleştirilmiş paragraflara izin veriyor. Bu durumda dış paragraf, iç paragrafın sınırlarına göre bölünür ve iç paragrafın stili dış paragrafın stiliyle birleştirilir (Ic9554).
  • Sıfır uzunlukta bir LinkAnnotation ile AnnotatedString'teki kilitlenmeyi düzeltin. (89aac6)

Sürüm 1.8.0-alpha03

2 Ekim 2024

androidx.compose.ui:ui-*:1.8.0-alpha03 yayınlanır. 1.8.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Kotlin sürümü 1.9'a güncellendi (I1a14c)
  • Erişim hizmetleri için a11y hizmetlerindeki liste davranışını taklit etmek üzere Bant adlı yeni bir Anlambilim rolü kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
  • invisibleToUser()hideFromAccessibility olarak yeniden adlandırın. İşlevi aynı kalır. Daha fazla ayrıntı için dokümanları inceleyin. (Ib43a3)

Hata Düzeltmeleri

  • SensitiveContent değiştiricisi (Ib0442) için dokümanları güncelleme
  • Bazı Android sürümlerinde belirli genel ana hat kliplerinin, yükseklik gölgeleriyle birlikte yoksayılması sorunu düzeltildi
  • Belirli Android sürümlerinde genel bir ana hat klipsi belirtildiğinde boş kliplerin uygulanması sorunu düzeltildi.
  • IME harici bir görünümde etkinken ve ComposeView'e odaklanmak için Sonraki işlem kullanıldığında ortaya çıkan istisna düzeltildi. clearFocus() davranışı, API 28'den önceki sürümlerde View davranışıyla uyumludur. Bu sürümlerde clearFocus(), varsayılan View'un odaklanmasına neden olabilir.
  • Farklı düzen geçişleri için alt kompozisyonun yönetimini ayırarak LazyList'te yerleşimin ayrılmış düğümlerde gerçekleştiği sorun düzeltildi.
  • Odak TextField'ten EditText'e veya başka bir Görünüm tabanlı düzenleyiciye geçtiğinde Yazılım Klavyesi'nin titremesi sorunu düzeltildi.
  • İç içe yerleştirilmiş kaydırma düğümleri artık ayrıldıktan sonra onPostFling etkinliklerini doğru şekilde gönderecek.
  • Genel performans iyileştirmeleri

Sürüm 1.8.0-alpha02

18 Eylül 2024

androidx.compose.ui:ui-*:1.8.0-alpha02 yayınlanır. 1.8.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Artık TextOverflow.StartEllipsis ve TextOverflow.MiddleEllipsis karakterlerini kullanarak tek satırlık metnin satırının başına veya ortasına üç nokta yerleştirebilirsiniz. (I38913, b/185418980)

Hata Düzeltmeleri

  • Dalog dismissOnClickoutside'ü düzeltin (39a3d, b/364508685)
  • Diyalog içeriğinin gölgelerini kırpmayın (e8e2f, b/363027803)
  • Odak araması Oluştur ve bir Görünüm arasında hareket ettiğinde hatalı davranışı düzeltme (58377, b/350534714)

Harici Katkı

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

Sürüm 1.8.0-alpha01

4 Eylül 2024

androidx.compose.ui:ui-*:1.8.0-alpha01 yayınlanır. 1.8.0-alpha01 sürümü bu taahhütleri içerir.

1.7 sürümü

Sürüm 1.7.6

11 Aralık 2024

androidx.compose.ui:ui-*:1.7.6 yayınlanır. 1.7.6 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Önceden, odaklanma sisteminde bekleyen geçersiz kılma işlemleri olduğunda önemli bir etkinlikle karşılaştığımızda hata veriyorduk. Bunun yerine artık hata günlüğe kaydedilir (I7ea0, b/346370327).
  • Deneme amaçlı ek açıklama SemanticsPropertyReceiver.invisibleToUser()'ten kaldırıldı. Bu özellik, 1.8'de kullanımdan kaldırılarak SemanticsPropertyReceiver.hideFromAccessibility() ile değiştirilecek. (I448f0, b/376479686)
  • Belirli eski Sony cihazlarda POBox Japonca Klavyesi kullanılırken TextField'ün düzgün çalışmasını engelleyen sorun düzeltildi. (I94e0e, b/373743376)
  • BasicText öğesinin inlineContent özelliğinin TalkBack tarafından duyurulmamasına neden olan erişilebilirlik sorunu düzeltildi. (I67bcb, b/376479686)

1.7.5 sürümü

30 Ekim 2024

androidx.compose.ui:ui-*:1.7.5 yayınlanır. 1.7.5 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Özel ana hatlarla yükseklik ve kırpma işleminin düzgün şekilde oluşturulmadığı sorunlar düzeltildi.
  • Genişliği sıfır olan LinkAnnotation ile gerçekleşen metin kilitlenmelerini düzeltir. (Ic1e2e)
  • Tıklanabilir bir metin bileşeni olarak oluşturulduğunda düğmenin Talkback bölümündeki bir duyuruyu düzeltir. (I1f588)

Sürüm 1.7.4

16 Ekim 2024

androidx.compose.ui:ui-*:1.7.4 yayınlanır. 1.7.4 sürümü bu taahhütleri içerir.

Sürüm 1.7.3

2 Ekim 2024

androidx.compose.ui:ui-*:1.7.3 yayınlanır. 1.7.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Genel bir ana hat klibi belirtmenin belirli Android sürümlerinde boş bir klip sınırına yol açmasına neden olan sorun düzeltildi.
  • IME harici bir görünümde etkinken ve ComposeView'e odaklanmak için Sonraki işlem kullanıldığında ortaya çıkan istisna düzeltildi. clearFocus() davranışı, API 28'den eski sürümlerde View davranışıyla uyumludur. Bu sürümlerde clearFocus(), varsayılan View'un odaklanmasına neden olabilir.
  • Önizleme geçersiz kılma işlemi için yanlış bir placeOrder kullanılmasına neden olan sorun düzeltildi. Bu sayede, önizleme yerleşiminin atlandığı uç bir durum düzeltildi.

1.7.2 sürümü

18 Eylül 2024

androidx.compose.ui:ui-*:1.7.2 yayınlanır. 1.7.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Ayrıntılı izleme kaldırılarak erişilebilirlik düğümü bilgileri ve anlambilim etkinliklerinin performansı iyileştirildi. (I89156, b/362530618)
  • ComposeView, son derece büyük ölçüm boyutu (da5db, b/347036173) ile iletildiğinde artık kilitlenmeyecek
  • Düğmelerdeki LiveRegion duyurularının yapılmadığı bir erişilebilirlik ekran okuyucu sorunu düzeltildi. (f66fa7, b/348590026)

1.7.1 sürümü

10 Eylül 2024

  • Android yapılarında değişiklik yapılmamıştır. -desktop yapı kaldırıldı ve -jvmStubs ile -linuxx64Stubs yapıları eklendi. Bu hedeflerin hiçbiri kullanılmak için tasarlanmamıştır. Bunlar, Jetbrains Compose çalışmalarına yardımcı olan yer tutuculardır.

1.7.0 sürümü

4 Eylül 2024

androidx.compose.ui:ui-*:1.7.0 yayınlanır.

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

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

Sürüm 1.7.0-rc01

21 Ağustos 2024

androidx.compose.ui:ui-*:1.7.0-rc01 yayınlanır. 1.7.0-rc01 sürümü bu taahhütleri içerir.

Önemli değişiklikler

  • ui:ui modülü artık foundation:foundation modülünün minimum sürümünün en az 1.7.0-rc01 veya daha yeni bir sürüm olması koşulunu zorunlu kılıyor. Bu, 1.7.0-alpha01 sürümünün başlarında yapılan NestedScrollSource değişiklikleriyle ilgili olarak kullanıcı arayüzü ile temel arasındaki davranış uyumsuzluğunu gidermek için zorunlu kılınmıştır.

Sürüm 1.7.0-beta07

7 Ağustos 2024

androidx.compose.ui:ui-*:1.7.0-beta07 yayınlanır. 1.7.0-beta07 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.7.0-beta06

24 Temmuz 2024

androidx.compose.ui:ui-*:1.7.0-beta06 yayınlanır. 1.7.0-beta06 sürümü bu taahhütleri içerir.

Sürüm 1.7.0-beta05

10 Temmuz 2024

androidx.compose.ui:ui-*:1.7.0-beta05 yayınlanır. 1.7.0-beta05 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Yazılım klavyesinin değiştirilmesinin, odak kaybedilip tekrar kazanılana kadar TextField'ün yeni klavyeden giriş kabul etmemesine neden olduğu bir hata düzeltildi.
  • Katman içeriklerinin kalıcı hale getirilmeye çalışılmasının, SurfaceView içeriğiyle oluşturulurken istenmeyen yan etkilere neden olduğu sorun düzeltildi.

Sürüm 1.7.0-beta04

26 Haziran 2024

androidx.compose.ui:ui-*:1.7.0-beta04 yayınlanır. 1.7.0-beta04 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.7.0-beta03

12 Haziran 2024

androidx.compose.ui:ui-*:1.7.0-beta03 yayınlanır. 1.7.0-beta03 sürümü bu taahhütleri içerir.

Sürüm 1.7.0-beta02

29 Mayıs 2024

androidx.compose.ui:ui-*:1.7.0-beta02 yayınlanır. 1.7.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • SemanticsProperties.Editable, IsEditable olarak yeniden adlandırıldı ve SemanticsPropertyReceiver.editable, isEditable değerine değiştirildi. Özellik artık boole türüne sahip ve her zaman metin alanları tarafından belirtilir. (I8acd8)
  • Erişilebilirlik karşılaştırma parametresini yeniden adlandırın. (I3d440)
  • Bağlantıların stilini belirlemek için API güncellendi: TextLinkStyles artık LinkAnnotation kurucusunun ve AnnotatedString.fromHtml yönteminin (I90b2b) bir parçasıdır. Ayrıca TextDefaults, materyalden (I5477b) kaldırıldı.

Hata Düzeltmeleri

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

Sürüm 1.7.0-beta01

14 Mayıs 2024

androidx.compose.ui:ui-*:1.7.0-beta01 yayınlanır. 1.7.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • performCustomAccessibilityActionLabelled, performCustomAccessibilityActionWithLabel olarak ve performCustomAccessibilityActionWhere, performCustomAccessibilityActionWithLabelMatching olarak yeniden adlandırıldı. (I5387f)
  • AnnotatedString.hasEqualsAnnotations adlı bankanın yeni adı hasEqualAnnotations (I685c0)
  • Metinde Materyal temalı bağlantılar almak için API güncellendi. Özellikle, temalı LinkAnnotations oluşturmak ve temalı bağlantılarla HTML'yi ayrıştırmak için TextDefaults'ten yöntemler kaldırıldı. Bunun yerine, bağlantılara stil uygulamak için metin bileşenine parametre olarak TextLinkStyles sınıfı eklendi. (I31b93)

Hata Düzeltmeleri

  • Etkinlikler sırasında işaretçi giriş değiştiricileri dinamik olarak eklerken ek kullanım alanlarını düzeltir 63e1504

Sürüm 1.7.0-alpha08

1 Mayıs 2024

androidx.compose.ui:ui-*:1.7.0-alpha08 yayınlanır. 1.7.0-alpha08 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Değiştirilebilir şekil uygulamaları için destek eklendi. Shape#createOutline artık grafik katmanlarının içinde gözlemleniyor. Bu nedenle, içindeki durum değerlerini okumak durum değiştiğinde geçersizleştirmelere neden olur ve daha yüksek performanslı şekil animasyonlarına olanak tanır. (Id1629, b/326070216)
  • isPositionedByParentWithDirectManipulation, introducesFrameOfReference olarak yeniden adlandırıldı. Artık bunun ters etki yarattığını unutmayın. Yani varsayılan olarak çoğu LayoutCoordinates bir referans çerçevesi sunar ve yalnızca doğrudan müdahaleye tabi tutulduğunda mülk yanlış olur. Konum için yalnızca referans çerçevesi sunan öğelerle sorgu yapmak istiyorsanız positionInLocalFrameOfReference(...) değerini kullanın. Veya LookaheadScope'dan positionInLocalLookaheadFrameOfReference. (Ifc5f7)
  • LookaheadScope API'leri kararlı hale getirildi (I21507)
  • API konseyi geri bildirimine göre getScrollViewportLength için işlem lambdasını değiştirin. (Ibc74a)
  • GraphicsLayer ana hatlarıyla API'ler, int yerine float parametreleri kullanacak şekilde güncellendi. UnsetOffset/UnsetSize IntSize gözetmen değerleri, float tabanlı ofset ve boyut satır içi sınıflarında (I2fb03, b/333863462) mevcut Belirtilmemiş sabitler lehine kaldırıldı
  • Testler sırasında fare girişi enjekte edilirken MouseInjectionScope.click(), MouseInjectionScope.doubleClick(), MouseInjectionScope.tripleClick(), MouseInjectionScope.longClick() artık daha evrensel olarak uygulanabilir hale getirmek için bir button: MouseButton parametresi kabul ediyor. Tüm yöntemler için varsayılan değer MouseButton.Primary'tür. (I31a23, b/190493367, b/261439695)
  • onClicked, LinkInteractionListener içinde onClick olarak yeniden adlandırıldı. (Iaa35c)
  • TextInclusionStrategy.isInsideisIncluded olarak yeniden adlandırın. Paragraph/MultiParagraph#getRangeForRect() döndürme türünü boş değer kabul etmeyen bir tür hâle getirin. (I51f26)

Hata Düzeltmeleri

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

Harici Katkı

  • İç içe yerleştirilmiş LazyLists'lerde (ör. iç içe yerleştirilmiş LazyRows'yi oluşturan bir LazyColumn) öğelerin önceden getirilmesi için destek eklendi. Bu değişikliğin, bu LazyLists'lerde kaydırma sırasında kare atlama sayısını azaltması bekleniyor. Varsayılan uygulama, ilk 2 iç içe yerleştirilmiş öğeyi önceden almaktır ancak bu davranış yeni LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) ve LazyListPrefetchStrategy#onNestedPrefetch API'leri tarafından kontrol edilebilir. (I51952)

Sürüm 1.7.0-alpha07

17 Nisan 2024

androidx.compose.ui:ui-*:1.7.0-alpha07 yayınlanır. 1.7.0-alpha07 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • ClickableText desteği sonlandırıldı. Metne bağlantı eklemek için bağlantınıza karşılık gelen bir LinkAnnotation içeren bir AnnotatedString oluşturun ve bu AnnotatedString'yi Metin bileşenine iletin. (I34d4b, b/323346994)
  • El yazısı hareketleri için ViewConfiguration.HandwritingGestureLineMargin'ü tanıtın. BasicTextField için JoinOrSplit hareketini destekleme (Ie6e13, b/325660505)
  • FocusProperties.enter ve FocusProperties.exit artık deneysel değil. FocusDirection.Enter ve FocusDirection.Exit artık deneysel değil. FocusRequester.Cancel artık deneysel değil (I461a1, b/261564106)
  • Artık, Placeable.PlacementScope.withDirectManipulationPlacement bağımsız değişkenini kullanarak çocuklarını yerleştiren üst düzenlerin belirlediği ofseti hariç tutmak için düzen koordinatlarını sorgularken excludeDirectManipulationOffset bağımsız değişkenini kullanabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir düzen artık bunları withDirectManipulationPlacement (varsayılan olarak uygulanan Kaydırma gibi) kullanarak yerleştirebilir. Bu sayede approachLayout tabanlı animasyonlar daha sezgisel hale gelir. Artık animasyon yaklaşımına karar verirken hangi ofsetin animasyonlu olacağını ve nelerin doğrudan uygulanacağını ayırt edebilirsiniz. (I60ec7)
  • Uzun ekran görüntüleri için özellik işareti kaldırıldı. (I28648, b/329128246)
  • LazyColumn artık uzun ekran görüntülerinde yapışkan başlıkları doğru şekilde oluşturacaktır. (I8d239, b/329296635)
  • NestedScroll kaynaklarının sürükleme ve fırlatma işlemleri, artık animasyonlar (yan etki), fare tekerleği ve klavye (UserInput) içeren bu kaynakların genişletilmiş tanımına uyum sağlamak için UserInput ve SideEffect ile değiştiriliyor. (I40579)
  • ApproachLayoutModifierNode ve Modifier.approachLayout artık kararlı. Sırasıyla eski isMeasurementApproachComplete() ve isPlacementApproachComplete()'in yerini yeni isMeasurementApproachInProgress() ve isPlacementApproachInProgress() aldı.
  • Desteği sonlandırılan intermediateLayout değiştirici kaldırıldı. (I3e91c)
  • RenderNode ve Resim gibi görüntü listesi destekli API'lerin begin/endRecording yöntemlerini yansıtacak şekilde kaydetmek için GraphicsLayer#buildLayer'ü yeniden adlandırın.
  • rememberGraphicsLayer, rememberObserver'ten yararlanacak şekilde güncellendi. (I312c1, b/288494724, b/330758155)
  • UrlAnnotation desteği sonlandırıldı. Bunun yerine LinkAnnotation.Url kullanın. Materyal temaları kullanıyorsanız TextDefaults nesnesini kullanarak notu, Materyal temaları uygulanmış şekilde oluşturun (I8d180, b/323346545)
  • Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelindiğinde ve odaklanıldığında basılı durum stili seçeneğini aldı (I5f864, b/139312671)
  • String.parseAsHtml, AnnotatedString.Companion.fromHtml olarak yeniden adlandırıldı. (I43dcd)
  • parseAsHtml yöntemine stil bağımsız değişkenleri (linkStyle, focusedLinkStyle, hoveredLinkStyle) ve bir bağlantı etkileşimi dinleyicisi eklendi. HTML etiketli dizeyi <a> etiketleriyle ayrıştırırken yöntem, bu tür her etiket için bir LinkAnnotation.Url oluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her ek açıklamaya iletir. (I7c977)
  • LinkAnnotation artık duruma dayalı stillendirme bağımsız değişkenlerini ve bir LinkInteractionListener alır. Köprü oluşturmak için bu ek açıklamayı AnnotatedString içine ekleyin. focusedState ve/veya hoveredState parametrelerini ileterek, odaklanıldığında ve/veya fareyle üzerine gelindiğinde bağlantılar için görsel configuration öğesini tanımlayabilirsiniz. (I81ce4, b/139312671)
  • ImeOptions.hintLocales artık boş değer kabul etmiyor. Boş bir yerel ayar listesi göndermek istiyorsanız lütfen LocaleList.Empty değerini kullanın. (Ic5bc4)

Hata Düzeltmeleri

  • Hatalı/bozuk geçmiş giriş etkinliği verilerini sorunsuz bir şekilde işler (hatalı ofset verileri yoksayılır).
  • Etkin bir işaretçi girişi etkinlik akışı sırasında bir işaretçi girişi değiştiricisi, başka bir işaretçi girişi değiştiricisinden önce dinamik olarak eklendiğinde (örneğin, fareyle üzerine gelme ve fareyle üzerine gelmeden çıkma [fare/kalem] arasında) beklenmedik işaretçi etkinliklerini düzeltir.

Sürüm 1.7.0-alpha06

3 Nisan 2024

androidx.compose.ui:ui-*:1.7.0-alpha06 yayınlanır. 1.7.0-alpha06 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Stilize dizeler için parseAsHtml yöntemi eklendi: HTML etiketleriyle işaretlenmiş bir dizeyi AnnotatedString olarak dönüştürmenize olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde listeleri görüntüleyemezsiniz. (I84d3d, I30626, b/139326648)
  • Resmi Android API'si (ScrollCaptureCallback) kullanılarak Oluştur kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumlarda doğru şekilde işlenmeyebilir. Bu nedenle, şu anda varsayılan olarak devre dışıdır. Etkinleştirmek için ComposeFeatureFlag_LongScreenshotsEnabled işaretini true olarak ayarlayın. (I2b055, b/329296471)

API Değişiklikleri

  • fun ClipEntry.getMetadata(), val ClipEntry.clipMetadata olarak değiştirilir. (I50155)
  • ClipboardManager.getClipMetadata ve ClipboardManager.hasClip işlevleri kaldırıldı. Mevcut klip girişinin meta verilerini okumak için lütfen clipEntry.getMetadata() simgesini kullanın. Ayrıca, ClipboardManager.getClip sonucunun boş olup olmadığını kontrol ederek Panoya'da mevcut bir klip olup olmadığını anlayabilirsiniz. (I50498)
  • Artık GraphicsLayer nesnelerini placeable.placeWithLayer() işlevlerine iletebilirsiniz (I1b22f)
  • ClipboardManager.setClip artık panoyu temizleyebilmek için null değerini kabul ediyor. (I7d2e9)
  • Derleme araçları içinde uygulama ayrıntıları olarak kullanılan görünümleri gizlemeye yardımcı olmak için kaynak kimlikleri eklendi (I99531)
  • Bir bitmap'in içeriğinin GraphicsLayer olarak oluşturulmasını desteklemek için GraphicsLayer#toImageBitmap askıya alma yöntemi eklendi. Bu, API düzeyi 22 ve sonraki sürümlerde (dahil) kullanılan ve tüm Android cihazların% 99'undan fazlasını destekleyen donanım hızlandırmalı bir oluşturma işlemidir. Android API düzeyi 21'de bu, yazılım oluşturmaya geri döner. (I9e114)
  • Android RectFComposeRect'e dönüştürmek için yardımcı yöntem (I39925, b/325660505)
  • Tüm KeyboardOptions parametreleri artık varsayılan olarak belirtilmemiş bir değere sahiptir. KeyboardOptions.merge yöntemi eklendi.
  • KeyboardOptions.autoCorrect, autoCorrectEnabled olarak yeniden adlandırıldı ve null değerinin belirtilmediğini belirten null olarak ayarlandı. (Ia8ba0, b/295951492)
  • BasicTextField(state) varyantı ve BasicSecureTextField, yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için artık KeyboardActions yerine KeyboardActionHandler kullanıyor. (I58dda)

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.ui:ui-*:1.7.0-alpha05 yayınlanır. 1.7.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Görüntü listesindeki çizim komutlarını ve görüntü listesinin oluşturulmasını etkileyen ek özellikleri kaydetmek için yeni GraphicsLayer API'yi kullanıma sunuyoruz. Bu, karmaşık bir sahneyi, sahnenin tamamı yeniden oluşturulmadan birbirinden ayrı olarak güncellenebilen daha küçük parçalara bölmek için bir yalıtım sınırı sağlar. GraphicsLayer öğesinde yapılan dönüşümler, görüntüleme listesi yeniden kaydedilmeden yapılabilir. Modifier.graphicsLayer'ün aksine GraphicsLayer, Composable içeriğin başka bir yerde oluşturulmasına olanak tanır ve içeriğin farklı sahnelerde oluşturulmasının beklendiği animasyonlu kullanım alanlarında yararlıdır.

API Değişiklikleri

  • GraphicsLayer.draw(Canvas) artık herkese açık bir API değildir. Katmanı çizmek için lütfen bunun yerine DrawScope.drawLayer(GraphicsLayer) uzantı işlevini kullanın. (I7a7c0)
  • restrictedConstraints()'ü iki yönteme bölün: fitPrioritizingWidth() ve fitPrioritizingHeight() (I6d7fd)
  • Android L kullanımı için HardwareCanvas stub'ı kullanıma sunuldu (I1c3b5, b/288494724)
  • GraphicsContext kompozisyonunu yerel olarak göstermek için Compose çerçevesini güncelleyin. Ayrıca, sahip, DelegateableNode ve drawWithCache değiştirici uygulamalarını güncelleyerek, değiştiriciler kaldırıldığında GraphicsLayer örneklerini otomatik olarak temizleyecek kapsamlı erişim için GraphicsContext erişimini gösterin. (I64a2f, b/288494724)
  • Alt düzey IME ile ilgili testler ve diğer alt düzey IME kullanım alanları yazmaya yardımcı olmak için InterceptPlatformTextInput kullanıma sunuldu. PlatformTextInputTestOverride desteği sonlandırıldı. (I862ed, b/322680547)
  • GraphicsLayer.setOutline(Outline) uzantı işlevi eklendi. (Ib81f4)
  • GraphicsLayer örnekleri oluşturmak için bir fabrika oluşturmak üzere GraphicsContext işlev kurucusunu tanıtın (Ib98d6, b/288494724)
  • Başka bir yerde çizim yapmak ve sonuca farklı görsel efektler uygulamak için kullanılabilecek çizim komutlarını yakalamada geliştirici tarafından tanımlanan esneklik sağlamak amacıyla GraphicsLayer API'yi kullanıma sundu. (I80245, b/288494724)
  • Belirli bir dikdörtgen alanla kaplı bir metin aralığını döndüren Paragraph#getRangeForRect işlevini tanıtın. (Iee516, b/325660505)
  • BasicText için onLinkClicked bağımsız değişkeni ile deneysel geçersiz kılma kaldırıldı. Gelecekte köprü desteği için yeni bir API kullanıma sunulacaktır. (I107d5)

Hata Düzeltmeleri

  • İsteğe bağlı görsel efektler ve dönüştürmelerle çizim komutlarının yakalanmasını ve yeniden oynatılmasını desteklemek için GraphicsLayer expect/actual API tanımı eklendi. GraphicsLayer örneklerini oluşturma ve yönetme dahil olmak üzere grafik bağımlılıklarını içerecek GraphicsContext arayüzünü kullanıma sunun. (I4a8d6, b/288494724)
  • Odak diğer görünümler arasına yerleştirilmiş bir ComposeView içinde takıldığı 1D odak aramayla ilgili birlikte çalışabilirlik sorunu düzeltildi. (I08fd4)

Harici Katkı

  • LocalLifecycleOwner, Compose tabanlı yardımcı API'lerinin Compose kullanıcı arayüzünün dışında kullanılabilmesi için Compose kullanıcı arayüzünden lifecycle-runtime-compose'e taşındı. Katkıda bulunduğunuz için teşekkürler Jake Wharton. (I6c41b, b/328263448)
  • Yanlış hizalamaya dayalı tüm alt türlerde tutarlı bir şekilde bias float özelliklerini gösterin. (I69f0f, b/328088992)

Sürüm 1.7.0-alpha04

6 Mart 2024

androidx.compose.ui:ui-*:1.7.0-alpha04 yayınlanır. 1.7.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Android U'dan sonraki cihazlarda BasicTextField2 için ekran kalemiyle el yazısı özelliğini destekleyin. (I002e4)
  • Bu CL'de, oluşturma işleminde kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için GetScrollViewportLength semantik işlemini ekliyoruz. Bu CL, söz konusu mülkün Temel Kaydırılabilir Listeler'de kullanımını da kapsar. (Ic5fa2)
  • FocusRequester.createRefs artık kararlı (I4d92c, b/261436820)
  • Değiştirici düğümlerin yerel bir kompozisyon okumadan mevcut Android View'i almasına izin vermek için DelegatableNode.requireView() kullanıma sunuldu. (I40768)
  • Bir yolun yönünü tersine çevirmek için yeni API Path.reverse() (I36348)
  • TextFields'ye, tercih edilen dili önceden ayarlamak için IME'lere belirli yerel ayarlar ile ipucu verme olanağı sağlamak amacıyla hintLocales, KeyboardOptions'e eklendi.
  • Temel platform nesnesini (ör. java.util.Locale) döndüren Locale kaynağından platformLocale mülkünü gösterin. (I921c6)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.ui:ui-*:1.7.0-alpha03 yayınlanır. 1.7.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • MaxLines ve Overflow özellikleriyle ContextualFlowRow ve Gelişmiş FlowRow/Column ile tanışın. Deneysel FlowRow ve FlowColumn'te yapılan iyileştirmeleri ve ContextualFlowRow ile ContextualFlowColumn'ın kullanıma sunulduğunu duyurmaktan mutluluk duyuyoruz. Bu iyileştirmeler sayesinde artık maxLines ve overflow desteğinden yararlanabilirsiniz. Bu güncelleme, performans açısından en uygun bileşenleri sunmak için tasarlanmıştır. ContextualFlow*, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmelerini kullanan çok sayıda öğe için mükemmeldir. FlowRow ve FlowColumn ise 100'den az öğe içeren küçük bir grup öğe için mükemmeldir. Önemli: Çapraz eksen maksimum değerine sığmalarından bağımsız olarak tüm öğelerin oluşturulduğu FlowRow veya FlowColumn'teki mevcut davranışı korumak için başlatma sırasında overflow'yi FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin kullanım örneklerini görmek için ContextualFlowRowSample ve FlowRowSample sayfalarını inceleyin. (Ib9135, b/293577082)
  • İzin verilen maksimum karakter sayısını filtreleyen metin alanlarında ayarlanması gereken maxTextLength semantik özelliğini ekleyin. (I24d9f, b/170648072)
  • Modifier.inspectable sarmalayıcısının desteği sonlandırıldı. Bu API, değiştiricinizin gerekli olandan daha fazla geçersiz kılınmasına neden olacağından artık kullanılması önerilmez. Geliştiricilerin, değiştirici özelliklerini araca göstermek istiyorsa ModifierNodeElement üzerinde inspectableProperties() yöntemini uygulamaları önerilir. (Ib3236)
  • WindowManager.LayoutParams işaretleri üzerinde tam kontrol sağlayan PopupProperties için yeni oluşturucu. (Ibb33e, b/312485503)
  • onPlaced'ı geçersiz kılma ve koordinatları bir mülkte kendiniz depolamanıza gerek kalmadan Modifier.Node'nin mevcut LayoutCoordinates değerini almak için DelegatableNode.requireLayoutCoordinates() kullanıma sunuldu. (Ia8657)
  • onPlaced'ı geçersiz kılma ve koordinatları bir mülkte kendiniz depolamanıza gerek kalmadan Modifier.Node'nin mevcut LayoutCoordinates değerini almak için DelegatableNode.currentLayoutCoordinates kullanıma sunuldu. (Iaebaa)
  • BasicTextField2 ve androidx.compose.foundation.text2 paketindeki ilgili API'ler androidx.compose.foundation.text'e taşınır. (I9f635)
  • Belirli bir değiştirici düğümünde özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir ApproachLayoutModifierNode API eklendi. Ayrıca, oluşturulurken hedefi bilinmeyen animasyonlar için yeni bir deneysel DeferredTargetAnimation API eklendi. (I60745)
  • Bir yolun yönünü sorgulamak ve Path'den konturlar ayıklamak için yeni Path API'leri. (I63d04)
  • Bir Path öğesinin belirli bir noktayı içerip içermediğini kontrol etmek için PathHitTest ve Path.contains(Offset) eklendi. (I3b218)
  • TextLayoutResult artık getLineBaseline(lineIndex) yöntemini gösteriyor. Bu sayede, mevcut kolaylık özellikleri firstBaseline ve lastBaseline'a ek olarak metnin rastgele bir satırının taban çizgisini okuyabilirsiniz. (Ide4e8, b/237428541)
  • Yalnızca iki AnnotatedStrings notunu karşılaştırmak için yöntem eklendi. (I32659)

Hata Düzeltmeleri

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

Sürüm 1.7.0-alpha02

7 Şubat 2024

androidx.compose.ui:ui-*:1.7.0-alpha02 yayınlanır. 1.7.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • SemanticsPropertyReceiver.performImeAction ile ilgili bir ikili uyumluluk sorunu düzeltildi. (I65865, b/322269946)
  • usePlatformDefaultWidth parametresi alan PopupProperties kurucusu artık deneysel değildir. (I8f8d2)
  • Zaman aşımı mesajına dahil edilecek koşulun dize açıklamasını alan ComposeTestRule.waitUntil aşırı yüklemesi eklendi. (I9413e)
  • Aynı değiştirici zincirine eklenen anlambilim özelliklerini kaldırmak için yeni anlambilim API'si unset(). Yeni anlam bilimi mülkü isOpaque. (I8c583, b/317966058, b/246056649)
  • originalEventPosition, PointerInputChange'un herkese açık API'sindeki copy yönteminden kaldırıldı. (I7bead)

Hata Düzeltmeleri

  • Sekme ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanabilir olmasına neden olan bir erişilebilirlik hatası düzeltildi. (I2181c)
  • VelocityTracker artık varsayılan olarak puan eklemeyle ilgili düzeltmeye sahip olacak. Sorun varsa VelocityTrackerAddPointsFix değerini false olarak ayarlayarak düzeltmeyi devre dışı bırakabilirsiniz. (Ib3877, b/269487059)
  • TextStyle ve ParagraphStyle'te geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)

Harici Katkı

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

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.ui:ui-*:1.7.0-alpha01 yayınlanır. 1.7.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Resim gibi rastgele içerikleri desteklemek için ClipEntry ve ClipMetadata eklenerek ClipboardManager genişletildi.
  • Test edilen içeriğin davranışının yerel olarak geçersiz kılınmasına (ör. kullanılabilir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema belirtme) izin vermek için DeviceConfigurationOverride API'yi ui-test'a ekler.

1.6 sürümü

1.6.8 sürümü

12 Haziran 2024

androidx.compose.ui:ui-*:1.6.8 yayınlanır. 1.6.8 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Yazı tipi ölçeği, tanımlanan en düşük tablodan daha düşük olduğunda yazı tipi ölçeklendirmesinde yaşanan tutarsızlıklar düzeltildi. Bu durumda, artık doğrusal 1x ölçek ile tanımlanan en düşük tablo arasında ara değer alıyoruz. Böylece, ölçekler arttıkça yazı tipi boyutu monoton bir şekilde artar. (Icbae3)

1.6.7 sürümü

1 Mayıs 2024

androidx.compose.ui:ui-*:1.6.7 yayınlanır. 1.6.7 sürümü bu taahhütleri içerir.

1.6.6 sürümü

17 Nisan 2024

androidx.compose.ui:ui-*:1.6.6 yayınlanır. 1.6.6 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

1.6.5 sürümü

3 Nisan 2024

androidx.compose.ui:ui-*:1.6.5 yayınlanır. 1.6.5 sürümü bu taahhütleri içerir.

1.6.4 sürümü

20 Mart 2024

androidx.compose.ui:ui-*:1.6.4 yayınlanır. 1.6.4 sürümü bu taahhütleri içerir.

Sürüm 1.6.3

6 Mart 2024

androidx.compose.ui:ui-*:1.6.3 yayınlanır. 1.6.3 sürümü bu taahhütleri içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.ui:ui-*:1.6.2 yayınlanır. 1.6.2 sürümü bu taahhütleri içerir.

1.6.1 sürümü

7 Şubat 2024 androidx.compose.ui:ui-*:1.6.1 yayınlanır. 1.6.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • SemanticsPropertyReceiver.performImeAction ve SemanticsActions.PerformImeAction ile ilgili geriye dönük uyumluluk sorunu düzeltildi. (Ie0bb2, b/322269946)
  • Düzenler artık anormal derecede büyük bir boyut döndürüldüğünde ölçüm sırasında hata veriyor. Bu tür hatalar genellikle ölçüm, Constraints.Infinity olup olmadığını kontrol etmeden doğrudan maksimum kısıtlamaları kullandığında ortaya çıkar. Bu kontrol, geliştiricilerin yanlış boyutu içeren bir düzen yerine yanlış boyuta sahip düzenle ilgili sorunları bulmalarına yardımcı olur. (I339a9)

1.6.0 sürümü

24 Ocak 2024

androidx.compose.ui:ui-*:1.6.0 yayınlanır. 1.6.0 sürümü bu taahhütleri içerir.

Sürüm 1.6.0-rc01

10 Ocak 2024

androidx.compose.ui:ui-*:1.6.0-rc01 yayınlanır. 1.6.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.6.0-beta03

13 Aralık 2023

androidx.compose.ui:ui-*:1.6.0-beta03 yayınlanır. 1.6.0-beta03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Artık düğüm ayrılmış olmadan LayoutCoordinates'ün ayrılması mümkün. Oluşturma işleminde Layout Inspector'da (If693) buna karşı önlem alın.

Hata Düzeltmeleri

  • PlatformImeOptions artık arayüz yerine somut bir sınıftır. (If40a4)
  • Kök her yeniden derlendiğinde LocalSoftwareKeyboardController ve LocalTextInputService'ye yeni değerler sağlanmasından kaynaklanan ek yayın yeniden derlemeleri düzeltildi. (I42190, b/310510985)

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.ui:ui-*:1.6.0-beta02 yayınlanır. 1.6.0-beta02 sürümü bu taahhütleri içerir.

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.ui:ui-*:1.6.0-beta01 yayınlanır. 1.6.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alıcı DragAndDropTarget'yi açıkça alır ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda içerir. Artık DragAndDropModifierNode için iki fabrika işlevi vardır. Biri aktarım almak, diğeri veri aktarmak için (I69481)
  • maximumFlingVelocity, kayan nokta olarak gösterilecek şekilde güncellendi. maximumFlingVelocity birimi hakkında daha net bilgi vermesi için dokümanlar güncellendi. (I8adc7)
  • DragAndDropModifierNode fabrikasındaki onDragAndDropStart, acceptDragAndDropTransfer olarak yeniden adlandırıldı.acceptsDragAndDropTransfer, sürükle ve bırak oturumundan kabul etmek 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ükle ve bırak etkinliklerini işlemek için kullanılan diğer lambdalar bununla değiştirildi. Sürükle ve bırak oturumlarından veri almak için bir DragAndDropTarget fabrika işlevi eklendi (Iebf3a)
  • DragAndDropInfo türü kaldırıldı. DragAndDropModifierNode.drag artık transferData, dekorasyon boyutu ve sürükle dekorasyon DrawScope lambda parametrelerini alıyor

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

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

    DragAndDropEventType kaldırıldı (I645b1)

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

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

  • OriginalText yerine TextSubstitution yazın. (Ifa5a8)

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

  • Gelecekte yeniden kullanılmak üzere tutulan SubcomposeLayout öğelerinin (ve bu öğeye dayalı LazyColumn gibi düzenlerin) devre dışı olduğu kabul edilir. Bu tür düğümleri test etmek için yeni assertIsDeactivated() test API'si kullanıma sunulmuştur. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)

  • FocusDirection.In ve FocusDirection.Out kaldırıldı, bunun yerine FocusDirection.Enter ve FocusDirection.Exit kullanılıyor (I2f660)

  • Material SwipeToReveal API'leri (kartlar ve çipler için), bu yuvaları oluşturmak üzere artık veri sınıfına dayalı örnekler yerine yuva tabanlı bir API'den (Compose tarafından önerilen) yararlanıyor. Bu, önemli bir değişikliktir. Yeni API'nin nasıl kullanılacağına ilişkin örnekler için lütfen demoya ve örnek koda bakın. (Ia8943)

  • FontStyle(int) kurucusunun desteği sonlandırıldı. Bunun yerine FontStyle.Normal veya FontStyle.Italic kullanın. (I66610)

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

Hata Düzeltmeleri

  • SoftwareKeyboardController.show(), metin düzenleyiciye odaklanılmadığında artık yazılım klavyesini göstermez. (I2165a, b/301477279)
  • Aynı Oluşturma Görünümü'nde Aşağı etkinliği almayan anahtarların donanım anahtarı Yukarı etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
  • ArcLine'te Kaydırma Gradyanı için oluşturma desteği eklendi. (I4d5bb)
  • PageSize.Fixed için equals ve hashcode işlevlerini uygulayın. (Ie3ede, b/300134276)
  • Pencere içe yerleştirilmesi değişikliğiyle ilgili ikili uyumluluk sorunu düzeltildi (Iee695)
  • Mikro karşılaştırmalar, bu katman olmadan daha iyi performans gösterdiğinden Material3 çipi/düğmesi için materyal çekirdek katmanını kaldırın. (I55555)
  • Test oluşturmak için effectContext olarak iletilen TestDispatcher'ler artık test ve çerçeveli saatler oluşturmak için kullanılacak. (Ia7178)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.ui:ui-*:1.6.0-alpha08 yayınlanır. 1.6.0-alpha08 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Modifier.dragAndDrawSource için onDrawDragShadow lambda drawDragDecoration olarak, DragAndDropInfo için boyut parametresi ise 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 SemanticsNodeInteraction.isDisplayed() ve SemanticsNodeInteraction.isNotDisplayed() öğelerini kullanın. (I2c196, b/302100809)
  • ParagraphTextStyle'deki TextAlign, TextDirection, Hyphens ve LineBreak alanları için null yerine özel bir Unspecified değeri kullanıma sunuldu. Bu sınıflar satır içi sınıflar olduğundan, nullable değerini Unspecified ile değiştirerek ilkel tür kutulamasını önleriz. TextStyle ve paragraf stilindeki kurucular, alıcı yöntemler 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ükleme işlevi ekleyin. (If8f59)
  • LoremIpsum PreviewParameterProvider sınıfını herkese açık hale getirdi. (I41bf5, b/266918816, b/300116360)

Hata Düzeltmeleri

  • FontFamilyResolver artık önbellek yönetimi iş parçacığı için Dispatchers.Main kullanıyor. (Ie8dd9)
  • AndroidViewBinding artık commitNow'i (daha önce kullandığı commit yerine) kullanarak onRelease'ının bir parçası olarak düzeninize bir FragmentContainerView ekleyerek şişirilmiş Fragment örneklerini senkronize olarak kaldırıyor. Böylece, Live Edit'in değişikliklerden sonra kompozisyonu değiştirme yöntemiyle ilgili sorunları düzeltiyor. (I58fbf)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.ui:ui-*:1.6.0-alpha07 yayınlanır. 1.6.0-alpha07 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Özel metin düzenleyiciler için test yazmak üzere PlatformTextInputMethodTestOverride kullanıma sunuldu. (Id159b)
  • Sürükle ve bırak oturumlarını başlatmak için dragAndDropSource değiştiriciyi ve sürükle ve bırak oturumlarından veri almak için dragAndDropTarget değiştiriciyi ekler. (Ib7828, b/286038936)
  • Ayırma işlemlerini önleyen 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. Testlerinizi temizlemek için zamana ihtiyacınız varsa testlerinizde DisableNonLinearFontScalingInCompose = true değerini ayarlayın. Bu işaret, Oluştur 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486)

Hata Düzeltmeleri

  • Optimize edilmiş XML vektör çizilebilir öğe ayrıştırma. (Ibb015)

Sürüm 1.6.0-alpha06

20 Eylül 2023

androidx.compose.ui:ui-*:1.6.0-alpha06 yayınlanır. 1.6.0-alpha06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Materyal simgelerinde ek optimizasyonlar. (I3e08d)
  • Benzer düğümleri bulmak için değiştirici ağacında yukarı/aşağı gezinme olanağı ekler. (I2d234)
  • focusRestorer() değiştiriciye onRestoreFailed() geri çağırma işlevi eklendi (Ie1d43)
  • ColorInt, FloatRange, IntRange, Size ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (Id65c8, b/290950582)
  • showSystemUi=truePreviewScreenSizes tanımına ekleme (Ib61d3)

Davranış Değişiklikleri

  • Oluşturma özelliği artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirmesi kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'ün üzerinde olduğunda küçük metinler normal şekilde büyür ancak zaten büyük olan metinler yalnızca biraz büyür. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yükseklikle orantılı olacak şekilde 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ınlanır. 1.6.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • AndroidComposeViewAccessibilityDelegateCompat'te içerik yakalamayı etkinleştirin. (Ib2969)
  • ScrollView ve RecyclerView gibi Görünüm bileşenlerindeki fırlatma hızları ViewConfiguration.ScaledMaximumFlingVelocity ile sınırlıdır. Oluştur artık maximumFlingVelocity için kendi sürümünü içerir ve bu sürüm Draggable için geçerlidir. (Ibf974)
  • Platform sürükle ve bırak API'lerini desteklemek için ilk iskeleti ekler. (If84ce)
  • deviceIdRotaryScrollEvent'a ekleyin (Iba3bf)
  • ui-tooling Devices API, 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ınlanır. 1.6.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • ReusableComposition'ü devre dışı bırakmak için gözlemleri kaldıran ancak düğümleri yerinde tutan bir yöntem eklendi. Devre dışı bırakılan kompozisyon, setContent numarası aranarak tekrar etkinleştirilebilir. (Ib7f31)
  • Alt kompozisyonların yaşam döngüsünü ve yeniden kullanımını yönetmek için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)
  • Modifier.focusGroup, kararlı API'ler arasına alındı. (I7ffa3)
  • ColorInt, FloatRange, IntRange, Size ve daha fazlasını belirtmek için çeşitli grafik API'lerine androidx ek açıklamaları eklendi. (I70487, b/290950582)
  • ColorFilter API, parametrelerin daha iyi incelenebilmesi 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 sunma (Ib036e)
  • Yoğunluk arayüzünün yazı tipi ölçeklendirme bölümünü işlemek için FontScalable arayüzünü oluşturdu. (I2cf3f)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

androidx.compose.ui:ui-*:1.6.0-alpha03 yayınlanır. 1.6.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • PopupPositionProvider.calculatePosition, hesaplamada okunan durum değiştiğinde pop-up'ın konumunu otomatik olarak güncelleyecektir. (I676a1, b/292257547)
  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca, readOnly odaklanıldığında true değerinden false değerine değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)
  • Kullanıcı arayüzü testinde genel iddiaların kapsamı genişletildi. (I1f90d)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

androidx.compose.ui:ui-*:1.6.0-alpha02 yayınlanır. 1.6.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Kompozit oluşturma uygulayıcıları tarafından uygulanabilecek bir hizmet bulucu arayüzü eklendi. Bu arayüz, başka bir kompozit oluşturma temsilcisine yetki veren kompozit oluşturma uygulamalarının orijinal kompozit oluşturma için arama yapmasına olanak tanır. Bu işlev doğrudan çağrılmamalıdır ve çalışma zamanında, kullanıcı arayüzü modülü gibi, derleyicinin sarmalanmış sürümlerinde bulunabilen deneysel API'lerin oluşturulmasını sağlamak için kullanılır. (I296b9)
  • Tamamen yeniden tasarlanmış PlatformTextInput* API. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController ve LocalSoftwareKeyboardController artık deneysel değil. LocalSoftwareKeyboardController artık uygun bir CompositionLocal. (I4c364)
  • LookaheadLayout ve LookaheadLayoutScope, birkaç sürümdür desteği sonlandırılmış olup artık kaldırılmıştır. Değişim API'leri, herhangi bir düzenle çalışabilen LookaheadScope'tür. (I12ac3)
  • Testlerde odaklanmayı istemenin daha kolay ve bulunabilir bir yolu olarak SemanticsNodeInteraction.requestFocus eklendi. (Ie8722)
  • Gelecekte test çerçeveleri tarafından kullanılmak üzere genel iddiaları kaydetmek için deneysel API'ler ekleyin. (I12d77)

Hata Düzeltmeleri

  • AndroidView'ın update geri çağırma işlevinin ilk çağrısı artık AndroidView'ı tanıtan kompozisyon uygulandığında çalıştırılmak yerine görünüm eklenene kadar erteleniyor. Bu, okuduğu bir durum bir efekt tarafından hemen değiştirilirse update geri çağırma işlevinin geçersiz kılınmadığı bir hatayı düzeltir. (Ie9438, b/291094055)

Sürüm 1.6.0-alpha01

21 Haziran 2023

androidx.compose.ui:ui-*:1.6.0-alpha01 yayınlanır. 1.6.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • LazyList'te ileriye dönük aramayı destekleyin. Bu sayede, önizleme geçişindeki LazyList, tüm animasyonlara (ör.öğe yerleşimi animasyonu, AnimatedVisibility vb.) atlayabilir ve tüm alt öğeler için önizleme boyutunu ve konumunu hesaplayabilir. Önizleme geçişinden sonra LazyList'ün alt öğeleri, önizleme geçişinde görüldüğü gibi gerçeklikten bağımsız olarak animasyon oluşturabilir.

Davranış Değişikliği: includeFontPadding artık Oluştur'da varsayılan olarak false değerine sahip

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

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

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

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

Her metin için PlatformTextStyle kullanarak includeFontPadding'ü etkinleştirebilirsiniz:

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

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

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

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

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

Bu değişiklikle ilgili sorun/hata yaşarsanız sorun izleyiciyi kullanarak hata kaydı oluşturun.

API Değişiklikleri

  • InputConnection#requestCursorUpdates kanalını destekleyin (I0c69b)
  • FocusRequester.saveFocusedChild ve FocusRequester.restoreFocusedChild eklendi (Ic557e, b/272302679, b/275157318)
  • Bitmap öğeleri yüklenmeye çalışırken, yüklenemeyen öğe yolunun açıklamasıyla birlikte atılan throwables'ı sarmalamak için ResourceResolutionException türünü ekleyin. (I19f44, b/230166331, b/278424788)
  • Performans ve bellek atamalarına göre optimize edilmiş erişilebilirlik. (Iede48)
  • Metin çevirisini desteklemek için anlambilim özellikleri ve işlemleri eklendi. (I4a6bc)
  • Geçerli ölçüm geçişinin ileriye dönük bir geçiş olup olmadığını belirtmek için IntrinsincMeasureScope ve uygulamalarında (ör. MeasureScope) yeni mülk. (I7a812)
  • Oluşturma işlemini alternatif yoğunluk/düzen yönüne ve boyuta sahip farklı bir kanvasla yeniden hedefleme özelliğini sunmak için DrawScope API'si güncellendi.
  • DrawContext, yoğunluk ve düzen yönünün yapılandırılmasını desteklemek ve kanvası yapılandırılabilir hale getirmek için güncellendi. (Ie1f9b, b/225408150)
  • Karakter sınırlayıcı kutularını hesaplamak için Paragraph#fillBoundingBoxes eklendi. (If30ee)
  • Ortak MultiPreviews (Ia5a27) grubu eklendi

Hata Düzeltmeleri

  • Özel 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, onImeAction olarak ve SemanticsActions.PerformImeAction, OnImeAction olarak yeniden adlandırıldı. (I8e841)
  • İç içe kaydırmada (özellikle NestedScrollConnection içinde) fare kaydırma ile sürüklemeyi ayırt etmek için tekerlek ekler. (Ie57e4)
  • Döndürülen nesne orijinal android.graphics.Paint'yi sarmaladığından toComposePaint yerine asComposePaint API eklendi (I22b4c)
  • SemanticsProperties.imeAction'ü kullanımdan kaldırın ve SemanticsActions.performImeAction ile yeni bir parametreyle değiştirin. (I4a587)
  • Fareyle seçim desteği eklendi. Dokunma tabanlı seçim, kelimeye göre genişler ve karaktere göre küçülür. (Ic0c6c, b/180639271)
  • Ekranın dışına çıkan ofsetler için AssertionError atan eski Paragraph yöntemleri, MultiParagraph gibi artık IllegalArgumentException atıyor. (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ınlanır. 1.5.4 sürümü bu taahhütleri içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.ui:ui-*:1.5.3 yayınlanır. 1.5.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.5.2

27 Eylül 2023

androidx.compose.ui:ui-*:1.5.2 yayınlanır. 1.5.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma API'sine arka plan iş parçacığında erişildiğinde kilitlenmeler için geçici çözüm eklendi.
  • Bağlantısız düğümlerin semantik ağacına eklenmesini düzeltin.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.ui:ui-*:1.5.1 yayınlanır. 1.5.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • readOnly doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca, readOnly odaklanıldığında true değerinden false değerine değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)

1.5.0 sürümü

9 Ağustos 2023

androidx.compose.ui:ui-*:1.5.0 yayınlanır. 1.5.0 sürümü bu taahhütleri içerir.

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.ui:ui-*:1.5.0-rc01 yayınlanır. 1.5.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.ui:ui-*:1.5.0-beta03 yayınlanır. 1.5.0-beta03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Özel 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 olabilecek iletişim kutusu ve pop-up bileşenleriyle 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ınlanır. 1.5.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • android.graphics.Paint örneğinin Compose'da kullanılmasını sağlamak için asComposePaint API eklendi

Hata Düzeltmeleri

  • Döndürülen nesne orijinal android.graphics.Paint'yi sarmaladığından toComposePaint yerine asComposePaint API eklendi (I22b4c)

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.ui:ui-*:1.5.0-beta01 yayınlanır. 1.5.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Yeniden oluşturma, renk animasyonlarında ve AndroidComposeView (Ib2bfa) öğesinde ayrıştırmalar kaldırıldı
  • Yetkilendirmeye izin vermek için yardımcı işlev CacheDrawModifierNode() ekler (Icf8f9)
  • Önizleme sonuçlarını gözlemlemek ve isterseniz ana geçişi etkilemek için MeasureScope adresinden erişilebilen isLookingAhead mülkünü kullanıma sunuyoruz. (Ibf4c3)
  • Yeni anlambilim mülkü traversalIndex, TalkBack traversal'da (düşük değerler önce gelir) düğümleri yeniden sıralamak için kullanılan kayan bir sayı. (I9a81b, b/186443263)
  • isContainer olan semantik mülkünün adını isTraversalGroup olarak değiştirme (I121f6)
  • ColorProducer artık produce yerine operator fun invoke kullanıyor (I4a9a2)
  • Yol nesnelerine kaydırma/ölçek/döndürme dönüşümleri uygulamak için Path transform API'yi ekleyin. (I23434, b/233772232)
  • ColorProducer adlı kullanıcının yöntemi produce olarak adlandırılır. (I78bde)
  • toFrameworkColorSpacetoAndroidColorSpace olarak yeniden adlandırın (I4f547)
  • ColorLambdaColorProducer olarak yeniden adlandırın. (I73b1a)
  • Android ve Compose renk alanı türleri arasında dönüştürme yapmak için API'ler kullanıma sunuldu. (Ie7db4, b/279979665)
  • Metin rengini verimli bir şekilde animasyonlu hale getirmek veya ayarlamak için BasicText parametresine bir renk parametresi eklendi. (Iffd88, b/246961787)
  • TextRange.constrain, TextRange.coerceIn olarak yeniden adlandırıldı. (I31be2)
  • Tam parametre listesi içeren optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) gibi birçok metin API'si sabitlendi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırılmadı. Aslında bu alanı kaldırmayı planlıyorduk ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, kullanımdan kaldırılma durumu alandan kaldırılıyor (I98e96, b/277703184)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • AnnotatedString'lardaki UrlAnnotation'ler artık TalkBack gibi erişilebilirlik hizmetleri aracılığıyla açılabilir. (If4d82, b/253292081)
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • LineHeightStyle.Alignment(topRatio) kurucusu, kararlı API'ye yükseltildi. (I79c32, b/261565383)
  • TextMeasurer ve ilgili API'ler artık deneysel değildir. (I74647, b/261581753)
  • Metin düzenleyici düğümlerinde IME işlemini çağırmak için PerformImeAction semantik işlemi eklendi. (Ic606f, b/269633506)
  • PlatformTextInput API'ler artık Android için deneysel değildir. (I668eb)
  • Enum.valueOf için value parametre adı değiştirildi (Ia9b89)
  • enum valueOf (I818fe) tarafından daha fazla istisna atıldı
  • Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni düşük düzey PlatformTextInputAdapter API kullanıma sunuldu. (I58df4)
  • Canvas'ta metin çizerken farklı karışım algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)
  • Font.MaximumAsyncTimeoutFont.MaximumAsyncTimeoutMillis olarak yeniden adlandırın. Yalnızca yeniden adlandırma. (I07af5)
  • @Preview referans cihazlarının DPI değerleri güncellendi (Id6151, b/254528382)
  • Metin fırçasını verimli bir şekilde animasyonlu hale getirmek veya ayarlamak için BasicText parametresine brush, alpha parametreleri ekleyin.
  • :ui:ui-unit (I6f18d, b/246961787) içinde Float, Double, Long, Int, Short için kutusuz lambda türleri tanımlama

Hata Düzeltmeleri

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

Harici Katkı

  • Vektör API'lerinde performans iyileştirmesi ve tahsislerin azaltılması (I906cb)

Sürüm 1.5.0-alpha04

10 Mayıs 2023

androidx.compose.ui:ui-*:1.5.0-alpha04 yayınlanır. 1.5.0-alpha04 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Modifier.Node Yetki Verme İyileştirmeleri DelegatingNode'dan diğer Modifier.Node örneklerine yetki vermeyle ilgili gelişmiş bir özellik eklendi. Bu işlem, delegate ve undelegate API'leri ile yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin yetki verilen düğüme açıkça atanması gerekiyordu. Bu değişiklikten sonra, DelegatingNode açıkça geçersiz kılmadığı sürece düğüm arayüzleri dolaylı olarak atanır. (67352bc)

API Değişiklikleri

  • Yetki verilebilen bir NestedScroll Modifier.Node olan NestedScrollModifierNode'ü tanıtın. (I69513)
  • AndroidViewBinding bileşenine onReset ve onRelease parametreleri eklendi. Bu parametreler, AndroidView bileşenini yansıtır ve ViewBinding ile görüntü yeniden kullanımı desteğini etkinleştirir. (I00b1e, b/276802519)
  • Compose Path API, daha hızlı yeniden kullanımla sık sık yol değiştirme işlemlerini desteklemek için güncellendi. (I7b797)
  • Tam parametre listesi içeren optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) gibi birçok metin API'si sabitlendi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırılmadı. Aslında bu alanı kaldırmayı planlıyorduk ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyacı olduğunu gösteriyor. Bu nedenle, kullanımdan kaldırılma durumu alandan kaldırılıyor (I98e96, b/277703184).

Hata Düzeltmeleri

  • Dialog bileşeni tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan gerileme düzeltildi. (I82551, b/262140644)

Sürüm 1.5.0-alpha03

19 Nisan 2023

androidx.compose.ui:ui-*:1.5.0-alpha03 yayınlanır. 1.5.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • LookaheadScope içindeki SubcomposeLayout için yeni varsayılan davranış: Koşullu yuvaları olmayan SubcomposeLayouts (ör.TabRow, Scaffold, BoxWithConstraints vb.) artık ileriye dönük animasyonlarla sorunsuz şekilde çalışır.

API Değişiklikleri

  • Önizleme geçişindeki ölçüm politikasını yeniden kullanan yeni varsayılan intermediateMeasurePolicy, Scaffold, TabRow ve BoxWithConstraints gibi koşullu yuvaları olmayan SubcomposeLayout alt türlerinin varsayılan olarak önizlemeyle çalışmasını sağlar. (Id84c8)
  • Android penceresi için oluşturulan yeniden derleyici, ON_STOP bildirimi aldığında artık tüm derleme yerine yalnızca withFrameNanos'e yapılan çağrıları engelleyecek. Bu, durdurulan etkinliklerle ilişkili pencerelerin veri değişiklikleri için yeniden derlenmeye devam edeceği ancak animasyonlar veya withFrameNanos'yi çağıran diğer tüm öğelerin engelleneceği anlamına gelir. (Id9e7f, b/240975572)
  • motionEventSpy, kararlı sürüme geçirilir. (Ic5ec4, b/261560988)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • Geliştiricilerin includeFontPadding ayarını yanlış olarak değiştirip test etmek için bu uyumluluk API'sini kullanmalarını teşvik etmek amacıyla PlatformTextStyle.includeFontPadding için desteğin sonlandırılması iptal edildi. (I98e96, b/277703184)

Sürüm 1.5.0-alpha02

5 Nisan 2023

androidx.compose.ui:ui-*:1.5.0-alpha02 yayınlanır. 1.5.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Önizlemeye dayalı animasyonlar sırasında ölçüm/düzenleme mantığını işlemek için ek bir ara ölçüm politikası kullanan yeni SubcomposeLayout API. (I017d3)
  • PointerInput artık yavaştır ve daha iyi performans için Modifier.Node kullanır (küçük davranış değişikliği hakkında bilgi edinin). (15dab9)
  • Anahtar etkinlikleriyle deneysel API'leri kararlı hale getirir. (I9c7d8, b/261566839, b/261567368)
  • Deneysel API'leri PointerInputChange'te kararlı olarak değiştirir. (I1b543, b/261560988, b/261565762, b/261565749)
  • Daha karmaşık Modifier.Node uygulamaları için SuspendingPointerInputModifierNode örneği oluşturmanın bir yolunu ekler. (Ic4933)
  • AnnotatedString'lardaki UrlAnnotation'ler artık TalkBack gibi erişilebilirlik hizmetleri aracılığıyla açılabilir. (If4d82, b/253292081)
  • Donanım anahtarları yumuşak klavyeye gönderilmeden önce bunları durdurmak için bir API eklendi (I4f4c6, b/186800395)
  • Metin alanları için InsertTextAtCursor semantik işlemi eklendi. (I11ed5)
  • Metinle ilgili test işlemleri (ör. performTextInput) artık alanı tıklamak yerine anlambilim işlemini kullanarak doğrudan odaklanmayı isteyecektir. (I6ed05)

Hata Düzeltmeleri

  • Metin testi işlemleri artık metin alanlarının etkinleştirilmesini gerektiriyor. (Iab328)

Sürüm 1.5.0-alpha01

22 Mart 2023

androidx.compose.ui:ui-*:1.5.0-alpha01 yayınlanır. 1.5.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Modifier.intermediateLayout için artık açık bir LookaheadScope gerekmiyor. intermediateLayout'taki measure bloğu, alıcı olarak IntermediateMeasureScope'a sahiptir. Bu, uygun CoroutineScope, LookaheadScope ve MeasureScope sağlar.(Ibe2e5)
  • LookaheadLayout, artık bir düzen olmayan LookaheadScope ile değiştirildi. Bu sayede, bir LookaheadScope'taki alt içerik doğrudan üst öğenin MeasurePolicy tarafından kontrol edilebilir. (Ibe2e5)
  • Modifier.Nodes'un iş parçacıklarını başlatmasına izin vermek için Modifier.Node#coroutineScope ekler. (I76ef9)
  • CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes'ın CompositionLocals'ı okumasına izin verin. (Ib44df)
  • @Deprecated sınıfının mülke yayılması. (I882d1)

Sürüm 1.4

Sürüm 1.4.3

3 Mayıs 2023

androidx.compose.ui:ui-*:1.4.3 yayınlanır. 1.4.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Belirli değiştiricilerle kullanıldığında AndroidView'ün doğru şekilde yerleştirilememesine neden olan sorun düzeltildi. (I4dc77, b/274797771)
  • 2D Odak Arama'da DropDown Menüler'i etkileyen bir hata düzeltildi (b/276811828)
  • Özel odak giriş/çıkış özelliklerinde, lambda ilk kez çağrıldığında yalnızca giriş/çıkış bloğunu çalıştıran bir hata düzeltildi (b/277234245)
  • Odak sisteminde, focusProperties okunurken kilitlenmeye neden olan bir gerileme düzeltildi. (b/271324781, b/274897776)

1.4.2 sürümü

19 Nisan 2023

androidx.compose.ui:ui-*:1.4.2 yayınlanır. 1.4.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • AndroidView'ün değiştiricilerini doğru şekilde yeniden kullanmaması nedeniyle beklenmedik davranışlara ve kilitlenmelere neden olan sorun düzeltildi. (Ib67ee, b/275919849)
  • Dialog bileşeni tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmediği gerileme düzeltildi (I82551, b/262140644)

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.ui:ui-*:1.4.1 yayınlanır. 1.4.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • ParentDataModifier'ün AndroidView'u etkilememesiyle ilgili bir sorun düzeltildi (b/274797771)

1.4.0 sürümü

22 Mart 2023

androidx.compose.ui:ui-*:1.4.0 yayınlanır. 1.4.0 sürümü bu taahhütleri içerir.

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

  • Ekran kaydırıldığında sınırın dışına çıktıklarında kaldırılmayacakları şekilde, üşengeç liste öğelerinin sabitlenmesine olanak tanıyan yeni bir PinnableContainer API eklendi. Örneğin, Modifier.focusable() şu anda odaklanan öğ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ılmıştır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)
  • Surfaces'te IsContainer semantik özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre gezinme sırasını belirleyen daha sonraki bir değişiklikte kullanılır. (I63379)
  • Yeni bir erişilebilirlik rolü DropdownList eklendi. Bu, TalkBack'e odaklanırken android.widget.Spinner'ın davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001)
  • Artık tek bir paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakmak üzere PlatformTextStyle(emojiSupportMatch) simgesini kullanabilirsiniz. (Ia7100, b/139326806)
  • Android Compose kullanıcı arayüzü testleri artık boş duruma geçmek için kareleri çalıştırırken (ör. waitForIdle aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu, düzen animasyonların ayrı karelerinde doğrulama yapan testleri etkileyebilir. (I8ea08, b/222093277)
  • Metnin Static(default) veya Animasyonlu olarak tanımlanması için TextStyle alanına deneysel TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated değerini kullanın. (I24dd7)

Sürüm 1.4.0-rc01

8 Mart 2023

androidx.compose.ui:ui-*:1.4.0-rc01 yayınlanır. 1.4.0-rc01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • onReset parametresini kabul eden AndroidView birleştirilebilir işlevine aşırı yükleme eklendi. Görünüm örnekleri, bileşimdeki düğümleri atıldığında ve uyumlu bir şekilde yeniden kullanıldığında yeniden kullanılabilir. Bu özellikle Görüntüleme sayısı için LazyRows ve LazyColumns değerlerinde yararlıdır. (I3f10d, b/230099236)
  • Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni düşük düzey PlatformTextInputAdapter API kullanıma sunuldu. (I58df4)

Hata Düzeltmeleri

  • BasicTextField'ın SetText semantik işlemi artık metin arabelleğini IME güncellemeleri ve test işlevleriyle (ör. performTextReplacement) aynı kod yolunu kullanarak güncelleyecektir.
  • Metin test işlevleri performTextClearance, performTextReplacement ve performTextSelection artık SemanticsActions'i 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ınlanır. 1.4.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.ui:ui-*:1.4.0-beta01 yayınlanır. 1.4.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.4.0-alpha05

25 Ocak 2023

androidx.compose.ui:ui-*:1.4.0-alpha05 yayınlanır. 1.4.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • runComposeUiTest işlevi ve CoroutineContext parametrelerini kabul eden create*ComposeRule işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tüm LaunchedEffect ve rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)
  • 1 boyutlu hızı izlemek için yeni bir API ekleme (If5a82)
  • FocusRequester artık @Stable olarak işaretlendi. (I580ee)
  • usePlatformDefaultWidth parametresi alan DialogProperties kurucusundan deneysel bir ek açıklamayı kaldırın. (Ic4048)
  • PathMeasure.getPosition() ve PathMeasure.getTangent() ile bir yoldaki mesafede konumu ve teğeti hesaplama işlevi eklendi (I3b47c)
  • PlatformParagraphStyle tarihinde yanlışlıkla herkese açık olarak ayarlanan ayarlayıcı kaldırıldı. (I07f47)
  • Satır içi/desteği sonlandırılmış ve gizli işlevlerin daha fazla türü/boşluk kabul edebileceği durumlar (I24f91)
  • Sıfır tahsisi olan ek açıklamaları sorgulamak için AnnotatedString.hasStringAnnotations ekleyin. (I94dfe, b/246960758)
  • TextMeasurer.measure işlevi için metin olarak String alan yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)
  • TextStyle'deki LineBreak ve Hyphens API'leri kararlı sürüme geçirildi. (Ic1e1d)

Harici Katkı

  • TextInputSession ve TextInputService'deki notifyFocusedRect yöntemlerinin desteği tekrar kaldırılmadı. (I23a04, b/262648050)

Sürüm 1.4.0-alpha04

11 Ocak 2023

androidx.compose.ui:ui-*:1.4.0-alpha04 yayınlanır. 1.4.0-alpha04 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Ekran dışına kaydırıldıklarında kaldırılmayacakları şekilde, üşengeç liste öğelerinin sabitlenmesine olanak tanıyan yeni bir PinnableContainer API eklendi. Örneğin, Modifier.focusable() şu anda odaklanan öğ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ılmıştır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)
  • Surfaces'te IsContainer semantik özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre gezinme sırasını belirleyen daha sonraki bir değişiklikte kullanılır. (I63379)
  • Yeni erişilebilirlik rolü DropdownList eklendi. Bu, android.widget.Spinner'e odaklanırken TalkBack's davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001)
  • Artık tek bir paragraf için emoji desteği işlemeyi isteğe bağlı olarak devre dışı bırakmak üzere PlatformTextStyle(emojiSupportMatch) simgesini kullanabilirsiniz. (Ia7100, b/139326806)
  • Android Compose kullanıcı arayüzü testleri artık boş duruma geçmek için kareleri çalıştırırken (ör. waitForIdle aracılığıyla) her kare için düzen geçişleri çalıştıracak. Bu, düzen animasyonların ayrı karelerinde doğrulama yapan testleri etkileyebilir. (I8ea08, b/222093277)
  • Metnin Static(default) veya Animasyonlu olarak tanımlanması için TextStyle alanına deneysel TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated değerini kullanın. (I24dd7)

API Değişiklikleri

  • Diğer DrawScope işlevleriyle uyumlu olması için drawText işlevindeki maxSize: IntSize bağımsız değişkeni size: Size ile değiştirildi. size varsayılan olarak Size.Unspecified olarak ayarlanır. Bu, önceki varsayılan davranışı değiştirmez. (Icd27d)
  • Desteği sonlandırılan deneysel yazı tipi kurucusu kaldırıldı. (I8a724, b/261435386)
  • Group kullanıcı arayüzü araçları veri sınıfında artık grubun satır içi birleştirilebilir bir işleve çağrı olup olmadığını belirten isInline adlı bir alan var. isInline true ise çağrı satır içi bir birleştirilebilir işlevedir. Ancak, satır içi işlev bilgilerini oluşturmayan bir derleyici eklentisi sürümüyle derlenen modüllerden gelen satır içi birleştirilebilir işlev çağrıları için değer yanlış olabilir. (Idb846)
  • Daha önce deneysel olan bazı API'leri kararlı sürüme geçirdik
  • 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 kurucu artık kararlı bir API'dir ve yeni yazı tipi tanımlayıcısı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)
  • createFontFamilyResolver API artık kararlı. Bu, ayarsız yazı tipi yükleme sırasında yakalanmayan 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'dir. (I90c84, b/261561612)
  • pluralStringResource artık kararlı bir API'dir. (I09849, b/261439703)

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.ui:ui-*:1.4.0-alpha03 yayınlanır. 1.4.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • ExperimentalComposeUiApi, PointerIcon'dan kaldırılıyor (I23af8)
  • Sayfa erişilebilirlik işlemleri tanıtın: PageUp, PageDown, PageLeft, PageRight. Bu özelliklerin yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab)
  • rememberNestedScrollConnection parametre görünümü, kök görünümden ana makine görünümüne güncellendi. (Ia5200)
  • Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API eklendi. (I2ba9d, b/203141462)
  • Hareketlerin kaydırma etkinlikleri haline gelebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için Clickable içinde kullanılır.
  • Clickables öğesinin, Scrollable ViewGroup içinde kullanıldığında dalgaların doğru şekilde geciktilmemesi sorunu düzeltildi.
  • Çekme panelleri ve sayfalar, hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda basmaları doğru şekilde geciktirmek için güncellendi.
  • graphicsLayer'nin her zaman bir ara arabelleğe oluşturulacağını belirtmek için CompositingStrategy.Always, Offscreen olarak yeniden adlandırıldı (I47dc1)
  • Birden fazla içerik yuvasına sahip düzen aşırı yüklenmesi artık kararlı (I10566, b/248294649)
  • Test davranışını ve performansını incelemek için bir testin parçası olarak Perfetto izlerini (Sistem İzleri olarak da bilinir) yakalamak üzere deneysel yeni API'ler PerfettoTrace.record {} ve PerfettoTraceRule eklendi. (I3ba16)
  • Bir Oluşturma kuralı kullanan kullanıcı arayüzü testlerinde, withFrameNanos geri çağırmaları sırasında devam ettirilen devam ettirmeler, tüm çerçeve geri çağırmaları çalıştırılana kadar gönderilmez. Bu, normal şekilde çalışırken Oluştur'un davranışıyla aynıdır. Ancak eski davranışa dayanan testler başarısız olabilir. Bu durum yalnızca withFrameNanos veya withFrameMillis'ı doğrudan çağıran ve bu işlevlere geri çağırma dışında mantık aktaran kodları etkileyecektir. Bu mantığın geri çağırma işlevlerinin içine taşınması gerekebilir. Örnekler için bu CL'deki animasyon testi değişikliklerine bakın.
  • withFrameNanos geri çağırmalarından sonra ancak arayanların iş parçacıklarını devam ettirmeden önce kodu çalıştırmak için TestMonotonicFrameClock oluşturucuya ve fabrika işlevine isteğe bağlı onPerformTraversals: (Long) -> Unit parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)
  • Oluştur'a EmojiCompat eklendi (Ibf6f9, b/139326806)
  • Dinamik renk desteği için @Preview parametresine yeni duvar kağıdı parametresi eklendi (I9f512)

Hata Düzeltmeleri

  • Anlık görüntü uygulama bildirimleri artık Recomposer değişiklikleri uygulamayı bitirdikten sonra gönderiliyor. (Iad6c0, b/222093277)
  • Çoklu pencere ekran görüntüsü alınmasına izin vermek için captureToImage'te değişiklikler yapıldı. Bu, oluşturma pop-up'larını kullanan ekran görüntüsü testleri için kullanışlıdır. (I169c5)

Bağımlılık Güncellemeleri

  • Compose UI ve Compose Material artık Lifecycle 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ınlanır. 1.4.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • GraphicsLayerScope, graphicsLayer'un mevcut boyutunu göstermek için güncellendi. Bu, graphicsLayer dönüşümlerini Composable boyutuna göre hesaplamak için kullanışlıdır. (If8c43,b/181387080)
  • graphicsLayer içeriğinin oluşturulması için ekran dışı bir oluşturma katmanından ne zaman yararlanılacağını belirlemek üzere CompositingStrategy özelliği kullanıma sunuldu. Otomatik, alfa uygulanırsa veya RenderEffect/Overscroll kullanılıyorsa dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Her zaman, ModulateAlpha'ün ekran dışı arabellekten yararlanmasını önleyen ve bunun yerine kaydedilen çizim talimatlarının her birini graphicsLayer içinde modüle eden bir ekran dışı arabellek sunar. ModulateAlpha kullanımı, RenderEffect/Overscroll kullanımları için ekran dışı bir arabellekten yararlanmaya devam eder (I25e82, b/256382834)
  • invalidateSubtree(), düzen ve çizim için tüm hiyerarşileri geçersiz kılmaya izin vermek üzere Modifier.Node'e eklendi. (I4bd90)
  • rememberNestedScrollInteropConnection sürümünü kararlı sürüme yükseltin. Kök görünümü rememberNestedScrollInteropConnection'e iletme özelliği kullanıma sunuldu. Bu, özel görünümün özellikle standart olmayan görünümlerde (ör. ModalBottomSheetDialog) kaydırma kısıtlamalarına daha iyi yanıt vermesine yardımcı olabilir. (I9e107)
  • Daha önce okudukları bir değer değiştiğinde bilgilendirilmesi gereken Modifier.Node uygulamaları tarafından kullanılabilecek ObserverNode arayüzü eklendi (I5728b, b/247716483)
  • Paint sınıfına, yerel android.graphics.Paint kabul eden yeni bir kurucu eklendi. Ayrıca, mevcut bir doğal boya nesnesini Compose Paint'e dönüştüren bir uzantı işlevi toComposePaint() de eklendi. (Ica91b)
  • Android'de kullanmak için yeni FontFamily.Resolver.resolveAsTypeface ekleyin. (I8950b)
  • Araçların Composable'ın dahili durumlarını değiştirmesine izin vermek için ToolingState ekleyin (Ie6614)
  • Yeni eklenen animasyonlar için daha iyi destek sunmak amacıyla araçları yeniden yapılandırın (I8677b)
  • material ve material3 metinlerine minLines parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I4af1d)TextFieldOutlinedTextField

Sürüm 1.4.0-alpha01

24 Ekim 2022

androidx.compose.ui:ui-*:1.4.0-alpha01 yayınlanır. 1.4.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Hareket algılayıcılar için awaitEachGesture() adlı yeni bir yöntem eklendi. forEachGesture()'e benzer şekilde çalışır ancak hareketler üzerinde döngü tamamen AwaitPointerEventScope içinde çalıştığından etkinlikler iterasyonlar arasında kaybolmaz.
  • forEachGesture(), hareketler arasında etkinliklerin kaybolmasına neden olduğu için desteği sonlandırıldı ve awaitEachGesture() ile değiştirildi. (Iffc3f, b/251260206)
  • androidx'de erişilebilirlik nesnelerinin geri dönüştürülmesi desteği sonlandırılıyor. Performans değişikliklerinin, desteklenen en eski sürümlerde bile önemsiz olduğunu tespit ettik. (I0a961)
  • Kenarlıklandırılmış metin çizmeyi etkinleştirmek için TextStyle ve SpanStyle'ye deneysel özellik olarak DrawStyle eklendi. (If24b8, b/155421273)
  • AnnotatedString.Builder artık kotlin.text.Appendable'i uyguluyor. (I1a061, b/231030444)
  • AnnotatedString.Builder artık AnnotatedString alt dizesi ve kesişen stilleri eklemek için bir append(AnnotatedString, start: Int, end: Int) yöntemine sahiptir.
  • Paragraph ve MultiParagraph boyama işlevlerine, kenarlıklandırılmış metin çizmeyi 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ınlanır. 1.3.3 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Etkinlik, Oluşturma Görünümü'nün durumunu kaydederken Android 9'da bazen yaşanan kilitlenme sorunu düzeltildi. (I0b755, b/260322832)

1.3.2 sürümü

7 Aralık 2022

androidx.compose.ui:ui-*:1.3.2 yayınlanır. 1.3.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

1.3.1 sürümü

9 Kasım 2022

androidx.compose.ui:ui-*:1.3.1 yayınlanır. 1.3.1 sürümü bu taahhütleri içerir.

1.3.0 sürümü

24 Ekim 2022

androidx.compose.ui:ui-*:1.3.0 yayınlanır. 1.3.0 sürümü bu taahhütleri içerir.

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

  • Yeni deneysel API paketi LookaheadLayout (daha önce imkansız olan animasyon davranışlarını etkinleştirir)
  • Deneysel yeni API paketi Modifier.Node (Modifier.composed'a kıyasla daha yüksek performanslı alternatif)
  • Pencere içe eklemeleri desteği iyileştirildi.
  • LazyLists'te D-Pad'ler ve donanım klavyesi için odaklanma desteği.
  • İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü (bazı özelleştirilmiş tasarım sistemleri için davranışı bozan değişiklik - beta01 sürüm notlarındaki gerekçe)
  • Birçok küçük, kesintisiz API iyileştirmesi
  • Birçok hata düzeltmesi ve performans iyileştirmesi

Sürüm 1.3.0-rc01

5 Ekim 2022

androidx.compose.ui:ui-*:1.3.0-rc01 yayınlanır. 1.3.0-rc01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Metinde otomatik tire eklemeyi desteklemek için yeni deneysel API Tire eklendi (Iaa869)

Hata Düzeltmeleri

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

Sürüm 1.3.0-beta03

21 Eylül 2022

androidx.compose.ui:ui-*:1.3.0-beta03 yayınlanır. 1.3.0-beta03 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.3.0-beta02

7 Eylül 2022

androidx.compose.ui:ui-*:1.3.0-beta02 yayınlanır. 1.3.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Layout için birden fazla birleştirilebilir içerik lambdasının listesini kabul eden deneysel bir aşırı yükleme eklendi. Bu, farklı içerik lambdalarına yerleştirilen ölçülebilirleri farklı şekilde ele almanıza olanak tanır (Ic1b4e)

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

  • FocusDirection.In ve FocusDirection.Out artık kullanılmamaktadır ve bunların yerini FocusDirection.Enter ve FocusDirection.Exit almıştır. (Ia4262, b/183746982)
  • FocusManager.moveFocus(Enter) ve FocusManager.moveFocus(Exit) için özel bir davranış belirtmek üzere iki yeni odak özelliği (enter ve exit) eklendi. (I5f3f9, b/183746982)
  • Artık odak hareketini iptal etmek için FocusRequester.Cancel simgesini kullanabilirsiniz. FocusRequester.Cancel, aşağıdaki odak özelliklerinden herhangi birinde kullanılabilir: yukarı, aşağı, sol, sağ, sonraki, önceki, başlangıç, bitiş, gir ve çık. (Ib300f)

Sürüm 1.3.0-beta01

24 Ağustos 2022

androidx.compose.ui:ui-*:1.3.0-beta01 yayınlanır. 1.3.0-beta01 sürümü bu taahhütleri içerir.

Değişken Düğümü Yeniden Düzenleme

Modifier/Modifier.Element örneklerini yöneten ve LayoutNodes'daki davranışlarını koordine eden katman büyük ölçüde yeniden yapılandırıldı. Bu, Compose'daki birçok değiştiriciden hiçbirinin herkese açık API'sini etkilemeyen ve yalnızca uygulamayla ilgili bir değişiklik olarak değerlendirilebilecek bir yeniden düzenlemeydi. Buna rağmen bu, çeşitli nedenlerle önemli bir değişikliktir. (Ie4313)

Değişiklik Özeti

Eklenen deneysel Modifier.Node API'leri, durumun bir örnek üzerinde tutulmasına olanak tanıyan bir soyutlama sağlar. Bu durum, düzen düğümünün yaşam döngüsü boyunca korunur ve düzen düğümü başına ve onu oluşturan ilgili Modifier.Element'nin kullanımı başına ayrılır.

Genel olarak bu soyutlama, Modifier.composed API'sinin mekaniğine güvenmeden durum bilgisine sahip değiştiriciler oluşturmak için alternatif bir mekanizma sağlar.

Risk

Bu değişiklik, önceki sürümlerle kesinlikle ikili uyumludur ve gözlemlenebilir davranış açısından geriye dönük uyumlu olmasının yanı sıra pratik ve makul olması amaçlanmıştır. Bununla birlikte, bu yeniden düzenlemenin dokunmadığı birkaç Compose alt sistemi vardır ve davranış, testlerimiz kapsamında olmayan ve henüz bulunup düzeltilmemiş şekillerde değişmiş olabilir.

Lütfen bu sürüme geçerken dikkatli olun. Bu durumun sizin için sorun oluşturduğunu düşünüyorsanız lütfen bize bildirin.

Deneysel API'ler

Hepsi "Değişken Düğümü" adlı yeni kavramla ilgili olan çeşitli deneysel API'ler eklendi. Modifier.Node'lar aşağıdakiler sonucunda oluşturulur:

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

Davranışları bozan değişiklik

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

Oluşturma iletişim kutuları ve pop-up'lar için desteklenen maksimum yükseklik 30 dp'den 8 dp'ye düşürüldü. Bu değişiklik hem materyal hem de kullanıcı arayüzü özel iletişim kutularını ve pop-up'larını etkiler. Bu değişiklik, S sürümünden önceki Android sürümlerindeki bir erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusunun 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 etkileneceksiniz. İletişim kutunuzun veya pop-up'ınızın yüksekliğini düşürebilirsiniz. Bu yeni davranışı devre dışı bırakmanız gerekiyorsa istediğiniz yükseklik ayarıyla kendi iletişim kutunuzu veya pop-up'ınızı oluşturabilirsiniz. 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 etkileşime açık ve okunabilir olmasını sağlamak geliştiricinin sorumluluğunda olduğundan bu yöntem önerilmez.

API Değişiklikleri

  • painterResource'ü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 parametreler için özel değerler sağlamak üzere lütfen TextMeasurer kurucusunu kullanın. (Ia1da3)
  • İletişim kutularının WindowInsets özelliğini desteklemesine olanak tanımak için DialogProperties.decorFitsSystemWindows özelliği eklendi. (I57742, b/229378542)
  • İkili uyumluluğu korumak için yazı tipi kurucuları orijinal Kotlin dosyasına geri taşındı. Son kararlı sürümden değişiklik yok. (Ieb2f3)
  • Birkaç eşitlik tanımından gereksiz operatör kaldırıldı. Bu işlemin herhangi bir etkisi yoktur. (I6c309)
  • FontVariation.Setting, gelecekte API'lerin sıkıştırılmasına izin vermek için mühürlenmiş bir arayüzdür. (I11021, b/143703328)
  • CompositionGroup.findParameters öğesini SlotTree.kt'a ekleyin. Bu sayede araçlar, slot tablosunun tamamını ayrıştırmak zorunda kalmadan CompositionGroup parametrelerini alabilir. (I124fe)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.ui:ui-*:1.3.0-alpha03 yayınlanır. 1.3.0-alpha03 sürümü bu taahhütleri 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. Bu, geliştiricilerin mevcut düzenin alt öğeleri konumuna göre nereye yerleştireceğini bilmesini sağlar. (I5482b, b/238632578)
  • Matris dönüşümünü bir LayoutCoordinates'dan diğerine almak için LayoutCoordinates.transformFrom eklendi. (Ic5ab1, b/238632578)
  • SemanticsModifier.id desteği sonlandırıldı ve semantik kimliği LayoutInfo.semanticsId olarak değiştirildi. (Iac808, b/203559524)
  • Kaynak Yazı Tipleri artık yazı tipi varyantı ayarlarını desteklemektedir (API 26 ve sonraki sürümler). (I900dd, b/143703328)
  • DeviceFontFamilyNameFont'te değişken yazı tipi desteği (Ic1279, b/143703328)
  • Yazı tipi oluşturucular artık O ve sonraki sürümlerin yüklü olduğu cihazlarda değişken yazı tiplerini yapılandırmak için FontVariation.Setting listesi kabul ediyor. (I11a9d, b/143703328)
  • Değişken yazı tiplerini tanımlamak ve kullanmak için FontVariation API'sini ekleyin. (I3c40c, b/143703328)
  • LineHeightStyle.Alignment kurucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)
  • Paragraf artık expect|actual olarak ayarlandı ve Android ile masaüstü için tanımlandı. (Id387e, b/239962983)
  • Arayüz paragrafı artık mühürlü arayüz paragrafı. Paragrafları alt sınıflara ayırmanın kullanım alanı yoktur. Bu değişiklikten etkileniyorsanız bizimle iletişime geçmenizi öneririz. (If5247, b/239962983)
  • Deneme amaçlı ek açıklama, PlatformTextStyle ve LineHeightStyle öğelerinden kaldırıldı. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard öğesini kullanımdan kaldırın. Lütfen uygulama kodunda bunun yerine SoftwareKeyboardController ve IME yönetim kodunda TextInputSession kullanın. (I14e4c, b/183448615)
  • Mevcut animasyon türleri için yeni API ekleme (I26179)

Hata Düzeltmeleri

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

Sürüm 1.3.0-alpha02

27 Temmuz 2022

androidx.compose.ui:ui-*:1.3.0-alpha02 yayınlanır. 1.3.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Basıncı almak için yeni bir PointerInputChange#pressure özelliği eklendi. (I45a5e, b/205164819)
  • Kompozisyonda TextMeasurer örneklerini 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 uygulanabilecekleri için KeyInjectionScope'ten gereksiz işlevleri kaldırın. Kaldırılan işlevler arasında pressKeys, keysDown ve keysUp yer alır. (I81d77)
  • KeyInjectionScope içindeki sabit ve parametre adları, söz konusu sabitlerin ve parametrelerin birimleri milisaniye olduğunda "Millis" son ekini içerecek şekilde yeniden düzenlendi. (Iabef5)
  • Metin düzenleme sorunlarını gidermeye yardımcı olmak için EditCommand yöntemine toStringForLog() yöntemi eklendi. (I53354, b/228862731)
  • Canvas ve drawBehind gibi bir DrawScope üzerinde çalışan kompozitler ve değiştiricilerde çok stilli metin çizmenin bir yolunu sağlamak için DrawScope'a drawText uzantı işlevi eklendi. (I16a62, b/190787898)
  • TextMeasurer adlı yeni bir deneysel API kullanıma sunuldu. Bu API, BasicText ile aynı sonuçları veren ve Compose çalışma zamanından bağımsız olan rastgele metin düzeni hesaplamasını sağlar. (I17101)
  • mapTree öğesini SlotTree.kt'a ekleyin. Bu sayede araçlar, asTree gibi önce bellekte bir kopya oluşturmadan SlotTree öğesini inceleyebilir. Bu, Düzen Denetleyici için yaklaşık 10 katlık bir performans artışı sağlar. (I5e113)
  • Geliştiricilerin kitaplıklardan MultiPreview ek açıklamaları yazıp yeniden kullanmasına olanak tanımak için Oluşturma Önizlemesi'nin ikili çıkış dosyalarında depolanması değiştirildi. (I85699, b/233511976)

Hata Düzeltmeleri

  • InputEventChange etkinliklerini Velocity İzleyici'ye eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hız tüm durumlarda doğru şekilde hesaplanır (Icea9d, b/216582726, b/223440806, b/227709803)
  • Notlar 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ınlanır. 1.3.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Gerçek ölçüm/düzenlemeden önce bir önizleme geçişini destekleyen yeni LookaheadLayout. Bu sayede, değiştiğinde düzenin önceden hesaplanması sağlanırken, önizleme sonrası ölçüm/düzen, boyutu ve konumları hedefe doğru animasyonlu olarak hareket ettirmek için önceden hesaplanmış boyutu/konumu kullanabilir. SubcomposeLayouts henüz desteklenmemektedir ancak gelecekteki bir sürümde desteklenecektir. (I477f5)
  • Text'nin tümünün opaklığını değiştirmek için TextStyle ve SpanStyle fırça çeşidine isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635)
  • AnnotatedString'lerde TalkBack bağlantı desteğini desteklemek için UrlAnnotation ek açıklama türünü ve ilişkili yöntemleri kullanıma sundu. (I1c754, b/231495122)
  • Hizmet işlevini çalışma zamanına taşıma (I4f729)

Hata Düzeltmeleri

Harici Katkı

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

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

androidx.compose.ui:ui-*:1.2.1 yayınlanır. 1.2.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Denetleyicide nullpointer düzeltildi (b/237987764)
  • İnceleyicide hatırlama 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ınlanır. 1.2.0 sürümü bu taahhütleri içerir.

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

  • Odak geçişinde iyileştirmeler:

    • Yeni BeyondBoundsLayout çekirdek API'si kullanılarak, artık yavaş listelerde odağa dayalı kaydırma yapılabiliyor
    • FocusOrder ve FocusProperties'te yeni davranış özelleştirme API'leri
    • Fiziksel klavye veya TV uzaktan kumandasıyla ilgili davranış iyileştirildi
  • Aşağıdakiler için yeni API'ler:

    • Pencere içe yerleştirilmeleri
    • Hareketle çalışan, sonsuz ve düzen animasyonları için temel öğeler
    • RenderEffect dahil olmak üzere GraphicsLayer özellikleri
  • Birçok hata düzeltmesi ve performans iyileştirmesi

Sürüm 1.2.0-rc03

29 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc03 yayınlanır. 1.2.0-rc03 sürümü bu taahhütleri içerir.

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

Sürüm 1.2.0-rc02

22 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc02 yayınlanır. 1.2.0-rc02 sürümü bu taahhütleri içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-rc01 yayınlanır. 1.2.0-rc01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Oluşturma kitaplarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
  • Diğer tuşlar basılıyken veya açıkken tuş basma işlemlerini eklemek için KeyInjectionScope işlevine daha yüksek düzey işlevler eklendi. Bu işlevler arasında withKeysDown, withKeysToggled vb. bulunur. Ayrıca, belirli bir meta anahtarın basılı olup olmadığını kontrol etmek için özellikler de eklendi. Örneğin, isCtrlDown, kontrol tuşlarından birinin basılı olup olmadığını kontrol eder. Her işlevle ilgili dokümanlar için KeyInjectionScope adresine bakın. (I9f6cd, b/229831515)
  • Özel kaydırma efektlerine izin vermek için deneysel bir OverscrollEffect ve bunu kabul eden Modifier.scrollable aşırı yüklemeleri kullanıma sunuldu.
  • Deneysel LocalOverScrollConfiguration, foundation.gesture'ten temel pakete taşındı ve LocalOverscrollConfiguration olarak yeniden adlandırıldı (If19fb, b/204650733)
  • runComposeUiTestWithoutActivity {}runEmptyComposeUiTest {} olarak yeniden adlandırın. Bu işlem, runComposeUiTestWithoutActivity {}createEmptyComposeRule() ile (I6fed7) uyumlu hale getirir.

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.compose.ui:ui-*:1.2.0-beta03 yayınlanır. 1.2.0-beta03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • pressKeyTimes, isCapsLockOn ve arkadaşları KeyInjectionScope'ye ekledi. Ayrıca API artık fare ve klavyeyle birlikte kullanılan enjeksiyon kalıplarını (ör. meta tuşu basılıyken fare düğmesini tıklama) desteklemektedir. (I4c8da, b/229831515)
  • Önemli etkinlikleri ekleme için deneysel destek eklendi. Önemli etkinlikleri göndermek için performKeyInput'ü kullanın veya performMultiModalInput ile çok modlu bir giriş hareketi sırasında MultiModalInjectionScope öğesinin key mülkü aracılığıyla gönderin. API dokümanları için KeyInjectionScope adresine bakın. (Ic5000, b/229831515)
  • Android tarafından desteklenen Google Fonts'un standart internet kaynağını almak için yeni GoogleFont.Provider.AllFontsListUri ekleyin.
  • Google Fonts, oluşturma işleminde yüklenemezse yeniden atılan hata mesajları iyileştirildi. (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 tüm durumlarda doğru şekilde hesaplanır (I51ec3, b/216582726, b/223440806, b/227709803)
  • Show Layout Bounds ayarı artık hızlı ayarlar kartından değiştirildikten hemen sonra, etkinlikten çıkıp yeniden girmek zorunda kalmadan birleştirilebilirler için uygulanacak. (I843d5, b/225937688)
  • Erişilebilirlik dizesi araması, yazı tipi yüklemeyi tetiklemez. Daha önce StyleSpans yazı tiplerini yüklemeye çalışıyordu. FontFamily.Resolver'un üzerine yazılmışsa bu durum kilitlenmelere neden oluyordu. (I4609d)
  • İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme yaşanmaz.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand için artık kurucu bağımsız değişkenlerinin negatif olmaması gerekiyor. (Ica8e6, b/199919707)

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.ui:ui-*:1.2.0-beta02 yayınlanır. 1.2.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • İşlevleri diğer önizleme türlerinde yeniden kullanma (I19f39)

Hata Düzeltmeleri

  • ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer, yalnızca gerçekleşmediğinde değil, gerçekleştiği zaman da bu durumu daha iyi yansıtacak şekilde 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ınlanır. 1.2.0-beta01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Bu, 1.2 sürümünün ilk beta sürümüdür.

API Değişiklikleri

  • Öğeleri görünür sınırların ötesinde düzenlerken LazyList'un özel uygulamaları tarafından kullanılabilecek deneysel BeyondBoundsInterval eklendi (Ifabfb, b/184670295)
  • Modifier.composed'ün anahtar sürümleri artık kararlı API'dir (Ie65e4, b/229988420)
  • Mevcut görüntüleme bilgilerini almak için kompozisyon yerellerini kullanacak şekilde rememberNestedScrollConnection API'yi basitleştirdik (I67ca7)
  • @ComposableTarget ek açıklaması ve @ComposableTargetMarker ile işaretlenmiş ek açıklamalar artık @file ön ekiyle dosya kapsamında kullanılabilir. Dosya kapsamında bir hedef ek açıklaması kullanmak, derleyicinin dosyada bulunan tüm birleştirilebilir işlevlerin ilişkili uygulayıcının hedeflenmesini amaçladığını varsaymasına neden olur. Örneğin, @file:UiComposable kullanmak, tüm @Composable işlevlerinin Oluştur kullanıcı arayüzü uygulayıcısını hedeflediğini belirtir. Başka bir uygulayıcının hedeflenmesi gereken bir işlev, istenen uygulayıcı için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)
  • Deneysel, platformdan bağımsız yeni bir test API'si kullanıma sunuldu: TestRule'ye gerek kalmadan Compose kullanıcı arayüzü testlerini çalıştırmak için kullanılabilen bir interface ComposeUiTest ve bir fun runComposeUiTest(block: ComposeUiTest.() -> Unit). ComposeTestRule olmadan test çalıştırmak için testi runComposeUiTest'a lambda olarak iletin ve ComposeContentTestRule'dakiyle aynı olan alıcı kapsamındaki ComposeUiTest yöntemlerini ve üyelerini kullanın.

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

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

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

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

    Şunları yapmak için:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @Test
        @OptIn(ExperimentalTestApi::class)
        fun test() = runComposeUiTest {
            setContent {
                Text("Hello Compose!")
            }
            onNodeWithText("Hello Compose!").assertExists()
        }
    }
    
  • Şu anda ComposeContentTestRule ve ComposeTestRule, ComposeUiTest'den genişlemiyor. Bu, ComposeUiTest'deki uzantı işlevlerinin henüz TestRule arayüzünde çağrılamaması anlamına geliyor. ComposeUiTest kararlı API'ye geçtiğinde ComposeContentTestRule ve ComposeTestRule, ComposeUiTest'ten itibaren geçerli olacak ş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 kapsamındaki varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)

  • Gradyan renklendirmeyle metin çizmenin bir yolunu sağlamak için TextStyle ve SpanStyle'ye Brush eklendi. (I53869, b/187839528)

  • LineHeightBehavior öğesinin trimFirstLineTop, trimLastLineBottom özellikleri tek bir enum olarak değiştirildi: LineHeightTrim. LineHeightTrim, iki doğrusal mantık değeriyle tanımlanan 4 durum değerine sahiptir: FirstLineTop, LastLineBottom, Her ikisi ve Yok (Ifc6a5, b/181155707)

  • TextStyle ve ParagraphStyle'ye LineHeightBehavior eklendi. LineHeightBehavior, satır yüksekliğinin ilk satırın üst kısmına ve son satırın alt kısmına uygulanıp uygulanmayacağını kontrol eder. Ayrıca, TextStyle(lineHeight) tarafından sağlanan alanda satırın hizalamasını da tanımlar.

    Örneğin, LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) aracılığıyla CSS'nin tanımladığına benzer bir davranış elde etmek mümkündür.

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

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

Hata Düzeltmeleri

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

Harici Katkı

  • Dikey olarak kaydırırsak Android'de MouseInjectionScope.scroll(delta = someDelta) artık ters çevrilir (someDelta pozitifse aşağı doğru kayar) (Ifb697, b/224992993)

Sürüm 1.2.0-alpha08

20 Nisan 2022

androidx.compose.ui:ui-*:1.2.0-alpha08 yayınlanır. 1.2.0-alpha08 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • pluralStringResource işlevleri, gelecekte evrimin daha iyi uluslararasılaşmayı desteklemesine olanak tanımak için deneysel olarak işaretlendi. (If24e4)
  • Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor. Constraints.maxHeight parametresi şu anda herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre elips oluşturma gibi bazı hesaplamalar yapılmasına olanak tanıyacaktır. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() artık içine yeni öğe eklenmesine izin vermeyen özel bir MutableSet benzeri sınıfı kabul ediyor. (Icd314)
  • PointerIcon artık @Stable arayüzüdür (I9dafe)
  • Kısmi tüketim (aşağı VEYA konum) özelliği PointerInputChange sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak için consume() kullanabilirsiniz. Değişikliğin daha önce başka bir kullanıcı tarafından tüketilip tüketilmediğini belirlemek için isConsumed değerini kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturuyor. Bu, PointerInputChange kopyalarının, kopyalardan biri tüketildikten sonra tüketileceği anlamına gelir. Bağlantısız bir PointerInputChange oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)
  • Oluştur > Görüntüle yönünde Oluştur ve Görüntüle arasında iç içe kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, bir oluşturma üst öğesinin, iç içe geçmiş kaydırma görünümünden iç içe geçmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
  • Oluşturma'nın Görüntüleme sistemi için tasarlanmış UIAutomator testlerine uygun hale getirilmesi amacıyla kullanılabilen yeni SemanticsProperty testTagsAsResourceId. (I39c20)
  • FontFamily.SansSerif kullanırken Android'deki sistem yazı tipleri için kullanılabilen tüm ağırlıkları gösterin. Bu durumda, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adları kullanılır. API 21-28'de daha önce yalnızca 400 ve 700 ağırlıkları destekleniyordu. Bu nedenle, 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şkenlerden önce olacak şekilde yeniden düzenledi. (Idafaa)
  • AndroidFont artık typefaceLoader'ı yapıcı parametresi olarak alıyor. (I2c971)

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.ui:ui-*:1.2.0-alpha07 yayınlanır. 1.2.0-alpha07 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Yeni Snapshot.withoutReadObservation { ... } işlevi eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerinin değişikliklerine abone olmadan iletilen lambda işlevini çalıştırmasına olanak tanır. Bu yöntem, anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak ancak gereksiz yeniden oluşturma veya yeniden ölçme işlemlerine neden olmadan değeri okumak istediğiniz kullanım alanlarında yararlı olabilir. (I9f365, b/214054486)
  • ComposeView'un consumeWindowInsets uzantı özelliği, geliştiricilerin Android WindowInsets tüketimini devre dışı bırakmasına olanak tanır. Bu sayede hiyerarşide ayrı ComposeViews'lerin her biri birbirini etkilemeden WindowInsets uygulayabilir. (I0ef08, b/220943142)
  • IME'ye ondalık ayırıcıyı özel olarak dahil etmek için Keyboard.Number'e alternatif olarak KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'lerdir (I574c5, b/225669674)
  • İşbirliği yapan View sınıfları için View ile Compose arasında iç içe yerleştirilmiş kaydırma birlikte çalışabilirliğini etkinleştirin. Bu, oluşturma işleminin artık kaydırma deltalarını (işbirliği yapan) bir görüntüleme üst öğesine gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
  • Sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için FontFamily.Resolver güncellendi (I6c1e7)
  • Font(AssetManager, String, ...) desteği sonlandırıldı, Font(String, AssetManager, ...) ile değiştirildi. Bu deneysel bir API'dir. (I1c7a4)
  • Yazı tipi yedekleme zincirleri sırasında isteğe bağlı olarak sistemde yüklü yazı tiplerini aramak için yeni yazı tipi tanımlayıcısı Font(DeviceFontFamilyName) ekleyin. (I30468, b/219754572)
  • TextStyle/ParagraphStyle öğesinde includeFontPadding için geçici uyumluluk yapılandırması eklendi. includeFontPadding, TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) üzerinden değiştirilebilir. Bu, taşıma işlemini 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 birlikte kullanılmak üzere GoogleFont.Provider kurucusunu ekleme (Ic5ee1, b/225984280)
  • Compose GoogleFont artık Font(GoogleFont) olarak adlandırılıyor. API'nin geri kalanı sabit kalır. (I125f2)

Hata Düzeltmeleri

  • İç dolgunun kullanılmasını sağlamak için material/Scaffold'a lint kontrolü eklendi (Ifb111)

Sürüm 1.2.0-alpha06

23 Mart 2022

androidx.compose.ui:ui-*:1.2.0-alpha06 yayınlanır. 1.2.0-alpha06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Odaklanabilir hedefe odaklanmayı istemek için RequestFocus semantik işlemi eklendi. (I17b71)
  • Mevcut düzen yönü RTL ise VectorPainter içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırması güncellendi. (I79cd9, b/185760237)
  • Gölge/ortam renkleri, API uyumluluğu için Modifier.graphicsLayer parametresinin sonuna gelecek şekilde güncellendi (I3f864, b/160665122)

  • API değişikliklerinin çalışmasını engellememek için GraphicsLayerScope'te gölge/ortam rengi için varsayılan uygulamalar eklendi

  • RSB etkinliklerine etkinlik saati eklendi (Ief8ae)

  • FocusOrder artık FocusProperties ile birleştirildi ve focusProperties(), focusOrder()'ın tüm özelliklerine sahip oldu. FocusOrder ve focusOrder() desteği sonlandırıldı. focusRequester kabul eden focusOrder(), focusProperties() ile birlikte bir focusRequester() değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler daha güçlü bir sorumluluk ayrımı elde eder. (I601b7)

  • Hem RecyclerView hem de Compose'ü yükseltmek artık alt öğe olarak Oluşturma görünümleri içeren RecyclerView'ler için çok daha iyi kaydırma performansı elde etmenizi sağlayacak.

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

  • Yeni varsayılan strateji olan ve RecyclerView gibi kapsayıcıları bir araya getirmeyi düzgün şekilde yöneten ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer değerini ekleyin. (If7282)

  • Çoklu önizleme özelliğini eklemenin ilk adımı olarak, ek açıklama sınıflarına @Preview ile ek açıklama ekleme desteği eklendi. Bu tür ek açıklamalar, Composable yöntemlerini veya diğer ek açıklama sınıflarını ek açıklamak için kullanılabilir. Bu sınıflar daha sonra, belirtilen @Preview ile dolaylı olarak ek açıklamalı olarak kabul edilebilir. (I12eff)

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

Hata Düzeltmeleri

  • Vektör grafik API'leri, @UiComposable yerine uygun birleştirilebilir ek açıklama @VectorComposable'ı kullanacak şekilde güncellendi (I942bc)
  • Çapraz satırı AnnotatedString.Builder.withStyle'ten (If84d5) kaldırın

Harici Katkı

  • compose-ui: GraphicsLayerScope'ye ambientShadowColor ve spotShadowColor mülkleri 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ınlanır. 1.2.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • TextToolbar artık ActionCallback yerine lambda bağımsız değişkenleri alıyor. (Ib2eb9, b/197950089)
  • Temel ve uygulama uyumluluğundaki boşluk kabul edilebilirlik özelliği, Tiramisu DP2 ile eşleşecek şekilde güncellendi (I0cbb7)
  • Ölçülen arayüz artık parentData mülkünü (I3313f) gösterir.
  • Modifier.onPlaced ve OnPlacedModifier arayüzü artık kararlı. (Ib5482)
  • Yaşasın! Oluşturma animasyonu 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ışıdır. includeFontPadding=false nedeniyle ortaya çıkan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmayacak. (I31c84, b/171394808)

Hata Düzeltmeleri

  • ComposeContentTestRule.setContent, içerik zaten mevcutken içerik ayarlamaya çalışırsanız artık bir IllegalStateException hatası atar. (I888a5, b/199631334)
  • Android'de panodan okunurken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (I06020, b/197769306)
  • RSB kaydırma örneklerini iyileştirin. (I6a596)

Harici Katkı

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

Sürüm 1.2.0-alpha04

23 Şubat 2022

androidx.compose.ui:ui-*:1.2.0-alpha04 yayınlanır. 1.2.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Bir birleştirilebilir işlevin, kullanılmak üzere tasarlanmadığı bir uygulayıcı hedeflendiğinde derleme zamanında raporlanmasına olanak tanıyan ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget eklendi.

    Çoğu durumda ek açıklamaları, derleyici eklentisi tarafından tahmin edilebilir. Bu nedenle, bu ek açıklamaları doğrudan kullanmak nadir bir durumdur. Özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), birleştirilebilir lambda olan alanlar veya global değişkenler (yerel değişkenler ve parametreler çıkarılır) veya ComposeNode ya da ilgili birleştirilebilir işlevler kullanıldığında çıkarım yapılamaz.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode'yi çağıran birleştirilebilir işlevlerin, işlev ve tüm birleştirilebilir lambda parametresi türleri için bir ComposableTarget ek açıklaması eklemesi gerekir. Bununla birlikte, ComposableTargetMarker ile ek açıklama içeren bir ek açıklama oluşturmanız ve ardından doğrudan ComposableTarget yerine işaretlenmiş ek açıklamayı kullanmanız önerilir. ComposableTargetMarker ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özellik sınıfının tam nitelikli adının yer aldığı bir ComposbleTarget ile eşdeğerdir. ComposableTargetMarker kullanımıyla ilgili bir örnek için anroidx.compose.ui.UiComposable bölümüne bakın. (I38f11)

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

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

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

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

Hata Düzeltmeleri

  • Sağlanan FontFamily.Resolver, Pop-up gibi alt kompozisyonlara iletilir.
  • Sağlanan Font.ResourceLoader, Pop-up gibi alt kompozisyonlara iletilir. (I48fa5)

Sürüm 1.2.0-alpha03

9 Şubat 2022

androidx.compose.ui:ui-*:1.2.0-alpha03 yayınlanır. 1.2.0-alpha03 sürümü bu taahhütleri 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 kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)
  • RenderNode stub sınıfında destroyDisplayListData yöntemi kullanıma sunuldu (I1e659, b/216660268)
  • Önceden oluşturduğunuz SubcomposeLayout öğelerinin çocuklarını önceden ölçmenize olanak tanıyan yeni bir API eklendi. (I857ea)
  • Bir birleştirilebilir lambda'yı, durumunu ve ilgili düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren movableContentOf eklendi. Önceki çağrı kompozisyondan çıktığında durum geçici olarak korunur ve lambda'ya yeni bir çağrı kompozisyona girerse durum ve ilişkili düğümler yeni çağrının konumuna taşınır. Yeni bir çağrı eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.

    Bir movableContentOf lambda aynı kompozisyonda birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur ve çağrılar kompozisyondan çıkarken ve yeni çağrılar girerken durum, çağrıldıkları sırayla ilk ayrılan çağrılardan giren çağrılara taşınır. Yeni aramalar tarafından hak talebinde bulunulmayan tüm eyaletler kalıcı olarak kaldırılır. (Ib4850)

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

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

  • Paragraf ve ÇokluParagraf öğeleri artık FontFamily.Resolver

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

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

  • FontFamilyResolver.preload üzerinden yazı tiplerini önceden yükleme desteği

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

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

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

  • Font.AndroidResourceLoader uzantı işlevi, beste dışındayken Font.ResourceLoader oluşturmaya olanak tanır.

  • Kaynak yazı tipi indirilebilir yazı tipi XML'ine referans verdiğinde, kaynak tabanlı yazı tiplerine loadingStrategy parametresi eklendi. Bu parametre, yazı tipinin ayarsız olarak yüklenmesine olanak tanır. (Ie5aea, b/174162090)

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

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

  • maxSlotsToRetainForReuse kabul eden SubcomposeLayoutState kurucusu artık kullanımdan kaldırıldı. Bunun yerine, SubcomposeSlotReusePolicy kabul eden yeni bir kurucu vardır. Bu yeni arayüz, gelecekte yeniden kullanılmak üzere hangi yuvaların tutulacağı konusunda daha ayrıntılı kontrol sağlar. (I52c4d)

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

  • Genel API'de olması amaçlanmayan ve sizin için hiçbir şey yapmayan AndroidComposeTestRule.AndroidComposeStatement desteği sonlandırıldı. (Ibc46b)

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

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

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

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

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

Hata Düzeltmeleri

  • Artık metin alanları, odaklanıldığında ve yumuşak giriş modu ADJUST_PAN olduğunda klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120)
  • Masaüstü, FontFamily.Resolver için yerel kompozisyon kullanıyor
  • FontLoader masaüstü sürümü desteği sonlandırıldı
  • Masaüstünde yeni createFontFamilyResolver fabrikası (I6bbbb, b/174162090)
  • Metin alanları arasında odağı değiştirirken artık dokunmatik klavye giriş türü yanıp sönmüyor. (I1bf50, b/187746439)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.compose.ui:ui-*:1.2.0-alpha02 yayınlanır. 1.2.0-alpha02 sürümü bu taahhütleri 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ı ekleme (I0cde6)

Harici Katkı

  • PointerEvent.scrollDelta.y artık Android'de tersine çevrildi (fare tekerleğini sağa yatırdığımızda artık -1 yerine 1 döndürüyor) (Ia9811)

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.ui:ui-*:1.2.0-alpha01 yayınlanır. 1.2.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • FontFamily.canLoadSynchronously özelliği kullanımdan kaldırıldı. Bu mülkte semantik anlam yoktur. (Ica5ef)
  • Layout Inspector'da değişmeyen kimlikler oluşturmak için CompositionData alanına 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 sürümüne bağlıdır.

Sürüm 1.1

1.1.1 sürümü

23 Şubat 2022

androidx.compose.ui:ui-*:1.1.1 yayınlanır. 1.1.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

Sürüm 1.1.0

9 Şubat 2022

androidx.compose.ui:ui-*:1.1.0 yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.

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

  • Android 12 aşırı kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmasında yapılan iyileştirmeler
    • Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılamak üzere düzen alanlarını 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 sayede, Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış elde edersiniz. Bu değişiklik, kullanıcı arayüzünüzü Compose Material bileşenlerini kullanarak oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
  • Gezinme çubuğu için kararlı destek
  • Daha önce deneysel olan bazı API'leri kararlı sürüme geçiriyor
  • Kotlin'in daha 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ınlanır. 1.1.0-rc03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Compose Material 1.1.0-rc03'ü desteklemek için güncellendi

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-rc01 yayınlanır. 1.1.0-rc01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
  • SemanticsNodeInteraction.captureToImage() artık HardwareRenderer.isDrawingEnabled() false ise arama süresi boyunca etkinleştirilerek de çalışır (Idf3d0)

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.ui:ui-*:1.1.0-beta04 yayınlanır. 1.1.0-beta04 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi

API Değişiklikleri

  • androidx.core.view (I7078a, b/204917439) dosyasında boşluk değeri temizlendi
  • Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya tüketilip tüketilmediğini kontrol etmesine olanak tanıyan deneysel API'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 anahtarları kabul eden deneysel Modifier.composed aşırı yüklemeleri ekleyin. (Ice799, b/205851704)
  • ComposeNotIdleException artık doğrudan Throwable yerine Exception'den başlıyor. Bu, Exception yakalayan catch yan tümcelerinin artık ComposeNotIdleException yakalayabileceği anlamına gelir. (I9c217)

Hata Düzeltmeleri

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

Sürüm 1.1.0-beta03

17 Kasım 2021

androidx.compose.ui:ui-*:1.1.0-beta03 yayınlanır. 1.1.0-beta03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Yerleşim değişikliğinin gözlemlenmesine izin vermek için yeni değiştirici Modifier.onPlaced eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine göre alt değiştiricinin ofsetinde ek değişiklikler yapılabilir. (I558fd)
  • InjectionScope.flush() ve InjectionScope.dispose() kaldırıldı. Tüm etkinliklerin temizlenmesi ve kapsamın kaldırılması artık önceki gibi çağrılan perform*Input() yönteminin sonunda gerçekleşir. (I2bed8)
  • MultiModalInjectionScope.Touch ve MultiModalInjectionScope.Mouse kaldırıldı. Çok modlu hareketler için dokunma ve fare etkinlikleri eklemek üzere artık MultiModalInjectionScope.touch() ve MultiModalInjectionScope.mouse() işlevlerini kullanabilirsiniz. Bu işlevler, ilgili modun alıcı kapsamına sahip bir lambda kabul eder. (Idde18)

Hata Düzeltmeleri

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

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.compose.ui:ui-*:1.1.0-beta02 yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Ebeveynlere bir öğeyi görüntüye getirmek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
  • Araç desteği için yeni animasyon API'leri. Özellikle, geçişlerdeki animasyonları ve yapılandırmalarını incelemek için araçlara olanak tanır. (I4116e)

Harici Katkı

  • Modifier.pointerHoverIcon (I95f01) eklendi

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.ui:ui-*:1.1.0-beta01 yayınlanır. 1.1.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Ebeveynlere bir öğeyi görüntülemek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
  • Araç desteği için yeni animasyon API'leri. Özellikle, geçişlerdeki animasyonları ve yapılandırmalarını incelemek için araçlara olanak tanır. (I4116e)

Sürüm 1.1.0-alpha06

13 Ekim 2021

androidx.compose.ui:ui-*:1.1.0-alpha06 yayınlanır. 1.1.0-alpha06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • ExperimentalComposeUiApiViewRootForInspector ve LayoutInfo.ownerViewId'den kaldırın (I5c2e3)
  • Daha verimli bir şekilde, düzen için alt öğe içermeyen bir aşırı yükleme eklendi (Ib0d9a)
  • Modüller arası çağrılması gereken Composer yöntemlerinden InternalCompilerApi kaldırıldı (I1aa0b)
  • SemanticsNodeInteraction.performSemanticsAction artık işlevin çağrıldığı SemanticsNodeInteraction değerini döndürür. (I9e5db)
  • Dokunma Modu/Dokunma Modu Olmayan modu algılamak için LocalInputModeManager CompositionLocal eklendi. (I6a83c, b/175899786)
  • Tüketicilerin uzun basma zaman aşımı gibi özellikler için doğru değeri almasına olanak tanımak amacıyla viewConfiguration: ViewConfiguration, LayoutInfo değerine eklendi. (I76ca6)
    • Testlerin giriş eklemeyi uzun basma zaman aşımı veya dokunma kayması gibi faktörlere göre ayarlamalarına izin vermek için viewConfiguration: ViewConfiguration, InjectionScope değerine eklendi.
    • Hem dokunma hem de fare girişi için uzun basma ve iki kez dokunma işlemlerinin varsayılan süresi, InjectionScope.viewConfiguration içindeki değerlere göre değiştirildi.
  • İçinde TextField ve DropdownMenu bulunan ExposedDropdownMenuBox'a dayalı ExposedDropdownMenu'nun uygulanması (If60b2)
  • Desteği sonlandırılan dismissOnClickOutside özelliğinin yerine PopupProperties özelliğine dismissOnOutsideClick eklendi. Yeni mülk, tıklama konumunu ve ankraj sınırlarını alır. Böylece, onDismissRequest işlevinin çağrılıp çağrılmayacağı konusunda daha ayrıntılı kontrol sağlanır. Örneğin, bu özellik, ankraja dokunulduğunda ankrajın kapatılmasını önlemek için yararlı olabilir.
    • updateAndroidWindowManagerFlags, PopupProperties'e eklendi. Bu işlev, pop-up'ın Android WindowManager'a ilettiği işaretçiler üzerinde düşük düzeyde kontrol sağlar. Lambda parametresi, PopupProperties değerlerinden hesaplanan ve WindowManager işaretlerine neden olan işaretler olacaktır (ör. odaklanılabilir). Lambda işlevinin sonucu, Android WindowManager'a iletilecek nihai işaretler olur. updateAndroidWindowManagerFlags, varsayılan olarak parametrelerden hesaplanan işaretleri değiştirmez. Bu API, yalnızca pop-up'ın çok özel davranış koşullarının olduğu durumlarda dikkatli bir şekilde kullanılmalıdır. (I6e9f9)
  • Recomposer.state desteği sonlandırıldı ve türü StateFlow olarak değiştirilmek üzere Recomposer.currentState ile değiştirildi (Ic2ab3, b/197773820)
  • InjectionScope için flush() ve dispose() ekler. Sıralı tüm etkinlikleri hemen temizlemek istediğinizde ve kapsamı silmek istediğinizde bu yöntemleri kullanın. (Ifb73a)
  • Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştirici tarafından eşleştirilen içeriğe kaydıran performScrollToNode(matcher: SemanticsMatcher) eklendi. (Ic1cb8)
  • InjectionScope artık Density'ü uygulayarak performTouchInput ve diğer platformlarda px ile dp arasında kolayca dönüştürme yapmanıza olanak tanıyor. (I8fe1f)

Hata Düzeltmeleri

  • AndroidView artık LocalLifecycleOwner ve LocalSavedStateRegistryOwner'ı ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner aracılığıyla görüntüsüne dağıtıyor. (I38f96, b/179708470)
  • WearOS SwipeToDismissBox'ın bazen kaydırma işlemlerini işlememesine yönelik hata düzeltildi. (I9387e)
  • Enjekte edilen giriş etkinlikleri arasındaki varsayılan süre 10 ms'den 16 ms'ye değiştirildi. Bu durum, belirli bir kaydırma gibi giriş hareketleri gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)

Sürüm 1.1.0-alpha05

29 Eylül 2021

androidx.compose.ui:ui-*:1.1.0-alpha05 yayınlanır. 1.1.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Değiştiriciler arası iletişim desteği eklendi (Id5467, b/198826874)
  • PointerEventChange'e deneysel geçmiş işaretçiler eklendi. (Ic1fd8, b/197553056, b/199921305)
  • LayoutInfo için density: Density ve layoutDirection: LayoutDirection ekler. Bu sayede, LayoutInfo kullanıcıları LayoutInfo'te sunulan boyutları ve konumu doğru şekilde yorumlayabilir. (I002f1)
  • Fare etkinlikleri ekleme için deneysel destek eklendi. Fare etkinlikleri göndermeye başlamak için performMouseInput'ü kullanın veya performMultiModalInput ile çok modlu giriş hareketi sırasında MultiModalInjectionScope öğesinin Mouse mülkü aracılığıyla fare etkinlikleri gönderin. Mevcut API'nin dokümanları için MouseInjectionScope adresine bakın. (Iaa4a8, b/190493367)

Hata Düzeltmeleri

  • Kaydırmayla ilgili olarak kaydırılabilir öğeler (hem gecikmeli hem de gecikmeli olmayan) için erişilebilirlik desteği düzeltildi (I6cdb0)
  • TouchInjectionScope.swipeWithVelocity iyileştirildi. Artık daha geniş bir giriş değişkeni yelpazesini kabul ediyor ve kaydırma oluşturulamazsa girişte değişiklik öneriyor (I40fbe, b/182477143)

Sürüm 1.1.0-alpha04

15 Eylül 2021

androidx.compose.ui:ui-*:1.1.0-alpha04 yayınlanır. 1.1.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • PointerEvent artık fareyle üzerine gelme etkinliklerini desteklemek için PointerEventType değerine sahiptir. (I091fa)
  • Çocukların, ana cihazın işaretçi girişi sınırlarının dışındaki işaretçi girişini kabul etmesine izin verin. Ebeveynler, PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655) mülkü ile bu çağrıları durdurabilir.
  • performGesture ve GestureScope desteği sonlandırıldı ve bunların yerine performTouchInput ve TouchInjectionScope getirildi. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için SemanticsNode öğesine minimum dokunma hedefi boyutunu içeren touchBoundsInRoot eklendi. (I2e14b, b/197751214)
  • İnceleyebilir özelliğinin yeniden uygulanması (I927bc, b/191017532)
  • İnceleyebilir öğesinin parametre adı, oluşturulan öğeyle eşleşecek şekilde değiştirildi (I3a482, b/191017532)
  • performTouchInput ve TouchInjectionScope'un yerine performTouchInput ve TouchInjectionScope'u kullanıma sunduk. Bu sayede fare gibi diğer modalitelerin de önünü açtık.

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

    TouchInjectionScope'ün davranışı, iki küçük ayrıntı dışında GestureScope ile neredeyse aynıdır:

    1. İşaretçiler bir hareket etkinliği gönderilmeden hareket ettirilirken aşağı etkinliği gönderilirken (yani updatePointerTo() kullanılmış ancak move() kullanılmamış ve ardından down() çağrılmışsa) önceki uygulama, etkinlik zamanını ileriye götürür ve aşağı etkinliğini göndermeden önce bir hareket etkinliği gönderirdi. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu belirli senaryoda etkinlik zamanını ileri götürmez.
    2. İşaretçi bir hareket etkinliği gönderilmeden hareket ettirilirken yukarı etkinliği gönderilirken (yukarıdakine benzer şekilde) önceki uygulama, etkinlik zamanını ileriye alır ve yukarı etkinliğini göndermeden önce bir hareket etkinliği gönderirdi. Yeni uygulamada bu iki seçenek de yoktur: İşaretçilerin yeni konumları yalnızca yukarı etkinliği aracılığıyla yansıtılır.

    Son olarak TouchInjectionScope, belirli bir işaretçinin mevcut konumunu almak için yeni bir yöntem currentPosition(pointerId: Int) sunar. (If1191, b/190493367)

Hata Düzeltmeleri

  • Minimum dokunma hedefi amacıyla klibin, dokunma hedefi sınırlarını klip bölgesinin ötesine uzatmasına izin verin. (I43e10, b/171509422)
  • Android 12 cihazlarda uzayarak 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ınlanır. 1.1.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Diğer değiştiricileri sarmalamak için Modifier.inspectable eklendi. (I1909b, b/191017532)
  • Bulanıklaştırma kullanım alanlarını, daha yaygın kullanılan klip işaretleri ve TileModes kombinasyonlarıyla basitleştirmek için BlurredEdgeTreatment API eklendi. Çoğu kullanım alanında, bulanık içeriğin orijinal içerik sınırlarının dışında oluşturulmasına ve bu sınırların dışındaki bölgelerin şeffaf siyahla bulanıklaştırılmasına ya da içeriğin, içerik sınırlarının dışına çıkan bulanıklık çekirdekleri için en yakın kenarı örnekleyerek içerik sınırlarına kırpılmasına izin verilir. (I6b4b7, b/166927547)
  • Oluşturma masaüstünde RenderEffect desteği eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklık görsel efektleri eklemenin basit bir yolu olarak OffsetEffect ve bulanıklık değiştiriciyi kullanıma sunduk. (I0f6aa, b/166927547)
  • Katmanın içeriğini değiştirmek için Modifier.graphicsLayer üzerinde isteğe bağlı olarak yapılandırılabilen RenderEffect API kullanıma sunuldu. Bu, bir bileşimin ve bileşim hiyerarşisindeki alt bileşiimlerin içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547)
  • AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() yöntemlerine sahiptir (I507f0, b/179239764, b/182397793)
  • Erişilebilirliği sağlamak için ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. Bu boyut, semantikte ve işaretçi girişinde kullanılabilir. (Ie861c)
  • Bulanıklaştırmaya dayalı RenderEffects için kenar davranışını tanımlamada faydalı olan TileMode.Decal desteğini ekleyin. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction ve hasScrollToKeyAction artık kararlı API'dir (I142ae, b/178483889)
  • Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)

Hata Düzeltmeleri

  • BlurredEdgeTreatment işlevinden isBounded yöntemi kaldırıldı. Bunun yerine, şekil parametresinin null olup olmadığı açıkça kontrol ediliyor. (I85d68)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.ui:ui-*:1.1.0-alpha02 yayınlanır. 1.1.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • PointerEvent artık fare düğmesi durumunu ve klavye değiştirici durumunu okumayı destekliyor. (I6310c, b/180075467)
  • Enjekte edilen hareketler artık zaman için bilgi kaynağı olarak MainTestClock'ın zamanını kullanır. performGesture içine yerleştirilen etkinliklerin mevcut zamanı, MainTestClock'ın mevcut zamanına ayarlanır. (Ifb364, b/192064452)
  • DpRect(DpOffset, DpSize) kurucu eklendi (I2cf16, b/194219828)
  • DpSize sınıfı eklendi (I7abb1, b/194219828)

Hata Düzeltmeleri

  • Vektör grafikleri xml ayrıştırması, VectorDrawable'larda kök renk tonu özellikleri olarak ColorStateList'leri desteklemek için 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ınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • RelocationRequester.bringIntoView artık parametre olarak bir dikdörtgen kabul ediyor. Bu sayede, bir bileşimin bir bölümünü görüntüye getirebiliriz (Ice2c5, b/194330245)
  • AnimatedImageVector ve ilgili API'ler artık yeni androidx.compose.animation:animation-graphics modülündedir. (I60873)
  • Taşıma isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
  • ColorPainter'a benzer şekilde, bir Painter içinde rastgele bir fırçanın çizilmesini desteklemek için BrushPainter API'yi kullanıma sundu

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

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

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

Hata Düzeltmeleri

  • Çizim değiştiricilerinin zincirlenmesini daha iyi desteklemek için Modifier.paint uygulamasının drawsContent'i çağırdığından emin olun. Daha önce Modifier.paint, Modifier'ler zincirindeki bir yaprak düğüm olarak bekleniyordu. Ancak bu şekilde, birleştirilebilir bir kapsayıcıda (ör. kutu) yapılandırılmasını veya üzerine Modifier.paint().border() gibi ek süslemeler eklenmesini engeller. Modifier.paint, belirtilen boyacının içeriğini çizdikten sonra drawContent'i çağırarak değiştirici kalıbıyla davranışta daha iyi tutarlılık elde ederiz. (Ibb2a7, b/178201337, b/186213275)
  • İletişim kutuları artık platform boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth değerini yanlış olarak ayarlayın. (Iffaed, b/192682388)
  • InfiniteAnimationPolicy, :compose:ui alanına taşındı (I5eb09, b/160602714)
  • Eşzamanlı olmayan listeler ve normal kaydırma bileşenleri için anlambilim işlemleri 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ınlanır. 1.0.5 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • derivedStateOf örneklerini izlemeyle ilgili bir kilitlenme düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

androidx.compose.ui:ui-*:1.0.4 yayınlanır. 1.0.4 sürümü bu taahhütleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.31'e bağlı olacak şekilde güncellendi

Sürüm 1.0.3

29 Eylül 2021

androidx.compose.ui:ui-*:1.0.3 yayınlanır. 1.0.3 sürümü bu taahhütleri içerir.

Bağımlılık Güncellemeleri

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

Sürüm 1.0.2

1 Eylül 2021

androidx.compose.ui:ui-*:1.0.2 yayınlanır. 1.0.2 sürümü bu taahhütleri içerir.

Oluştur 1.0.2 sürümünü desteklemek için güncellendi. Compose 1.0.2, Kotlin 1.5.21 ile uyumludur.

1.0.1 sürümü

4 Ağustos 2021

androidx.compose.ui:ui-*:1.0.1 yayınlanır. 1.0.1 sürümü bu taahhütleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.21'e bağlı olacak şekilde güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0 yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.

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

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

Bilinen Sorunlar

  • Android Studio Bumblebee Canary 4 veya AGP 7.1.0-alpha04/7.1.0-alpha05 kullanıyorsanız aşağıdaki kilitlenmeyi görebilirsiniz:

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

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

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0-rc02 yayınlanır. 1.0.0-rc02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.0.0-rc01

1 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0-rc01 yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • ui-tooling modülünü ui-tooling ve ui-tooling-preview olarak bölme (Iefa28, b/190649014)

API Değişiklikleri

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

Davranış Değişiklikleri

  • @Preview Oluştur artık rememberLauncherForActivityResult() gibi API'leri kullanan ve bu sahibin varlığına bağlı olan Composable'ları önizlemenize olanak tanıyan bir LocalActivityResultRegistryOwner sağlar. (Ib13d1, b/185693006)
  • @Preview Oluştur artık BackHandler gibi API'leri kullanan ve bu sahibin varlığına bağlı olan Composable'ları önizlemenize olanak tanıyan bir LocalOnBackPressedDispatcherOwner sağlıyor. (Ia1c05, b/185693006)

Hata Düzeltmeleri

  • InfiniteAnimationPolicy, androidx.compose.ui:ui'a taşındı (I5eb09, b/160602714)
  • AnimatedImageVector, modül yapısının değiştirilmesi 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ınlanır. 1.0.0-beta09 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • enum Role ve LiveRegionMode'u özel yapıcıyla satır içi sınıflara dönüştürün (Id1890)
  • KeyboardCapitalization, 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, @ExperimentalComposeUiApi olmalıdır. (Iede6c)
  • TextAlign, FontSynthesis ve TextDirection artık satır içi sınıflardır. (I212fe)
  • TextOverflow, satır içi sınıfa dönüştürülür. (I433af)
  • FontStyle artık satır içi bir sınıftır. (I9e48b)

Hata Düzeltmeleri

  • Anahtar sabitler şu anda @ExperimentalComposeUiApi. Kodu kullananlar, kararlı hale gelmeden önce özel sabitler tanımlayabilir. (Ia5d48)
  • Oluşturma testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tespit edilmiştir:
    • Yerel bir bitmap olmadığından ImageBitmap(), NullPointerException'a yol açar.
    • Çizim olmadığından captureToImage(), bir sonraki çizim geçişini süresiz olarak bekler (yani kilitlenir).
    • Yüklenen yazı tipi olmadığından metinler yanlış ölçülür. Tüm karakterlerin sabit yüksekliği yaklaşık 20 piksel, genişliği ise 1 pikseldir.
    • ComposeTestRule.waitUntil {}, beklerken ana iş parçacığını çalıştırmaz. Bu nedenle, ComposeTestRule.mainClock.advanceTimeUntil {} ile aynı şekilde çalışır. Gelecekte daha fazla sınırlamanın tanımlanması beklenmektedir. (I284fa)

Profil Kuralları eklendi

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

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

Profil kuralları nedir?

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

  • Yöntem kuralları aşağıdaki kalıba sahiptir:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralı ise aşağıdaki kalıba sahiptir:

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

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

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

  • Tek bir kuralın birden fazla yöntemi veya sınıfı kapsayabilmesi için bu kalıplarda joker karakterler (**, * ve ?) bulunabilir.

Kurallar ne işe yarar?

  • H işareti bulunan bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.

  • S işareti bulunan bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve yöntemin başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.

  • P işareti olan bir yöntem, 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 maliyetini önlemek için yığınta önceden ayrılması gerektiğini gösterir.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Daha sonra bu yapıları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özgü kompakt bir ikili ART profili oluşturmak için kullanılır. Ardından ART, uygulamanın performansını (özellikle de ilk çalıştırmayı) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bu durumun, hata ayıklama yapılabilir uygulamaları etkilemeyeceğini unutmayın.

Sürüm 1.0.0-beta08

2 Haziran 2021

androidx.compose.ui:ui-*:1.0.0-beta08 yayınlanır. 1.0.0-beta08 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • NestedScrollSource enum, satır içi sınıfla değiştirildi. (Ie321b, b/187055290)
  • FocusManager.clearFocus(forcedClear = true), FocusManager.clearFocus(force = true) olarak yeniden adlandırıldı (Ia0c41)
  • Yeni enum değerleri eklendiğinde kapsamlı when ifadeleriyle ilgili sorunları önlemek için enum kullanımları satır içi sınıflara yeniden yapılandırıldı. (I2b5eb)
  • @ExperimentalComposeUiApi, PopupProperties hesabından kaldırılsın mı? (I01fa6)
  • PointerType, bir enum yerine satır içi sınıf olarak değiştirildi (If5058)
  • ContentDescription ve Text semantics özellikleri artık tek değer değil liste şeklindedir. Bu sayede, bunları birleştirirken birleştirme yerine olduğu gibi birleştirebilirsiniz. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
  • Modifier.focusModifier() desteği sonlandırıldı ve Modifier.focusTarget() (I6c860) ile değiştirildi
  • Modifier.onSizeChanged() ve Modifier.onGloballyPositioned() artık satır içi işlevler değil (I727f6, b/186109675)
  • KeyboardType enum, satır içi sınıfla değiştirildi. (I73045, b/187055290)
  • FocusState enum, FocusState arayüzüyle değiştirildi (Iccc1a, b/187055290)
  • ImeAction enum, satır içi bir sınıfla değiştirildi. (I18be5, b/187055290)
  • PlaceholderVerticalAlign satır içi sınıfa dönüştürülür. (If6290)
  • TextUnitType artık satır içi bir sınıftır. (I4cba9)
  • AnnotatedString.withAnnotation işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak adlandırılıyor. (I0cd0a)
    • TextUnitType içeren TextUnit kurucusu artık ExperimentalComposeApi yerine ExperimentalTextApi oldu.

Hata Düzeltmeleri

  • Beta07'de LazyColumn/Row öğelerinin kaydırma işleminden sonra kısmen gösterilmesine neden olan hata düzeltildi (I8c9ac, b/188566058)
  • Artık detectDragGesures, detectVerticalGestures ve detectHorizontalGestures, konum değişikliğini otomatik olarak tüketiyor. onDrag geri çağrılarında change.consumePositionChange çağrısına gerek yok (I42fc4, b/185096350, b/187320697)
  • Hizalama çizgileri sağlayan LayoutModifiers düzeltildi. Alt öğelerin hizalama çizgileri değişirken üst öğenin yeniden ölçülmesine neden olan bir hata düzeltildi. (I4401f, b/174315652)
  • Modifier.onGloballyPositioned(), tüm değiştiricilerin uygulanmasından sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirecek ş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ınlanır. 1.0.0-beta07 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • İnceleyicide kullanılmak üzere ViewRootForInspector arayüzü eklendi (Ib70df)
  • SubcomposeLayoutState artık yeniden kullanılabilir yuvaların sayısını ayarlama özelliğini destekliyor. Yeni bir slota ihtiyaç duyduğumuzda yeniden kullanmak için bu slotları kaldırmak yerine, düzen bu slotları etkin durumda tutar (Ieb981).
  • KeyEventType enum, satır içi bir sınıfla değiştirildi. (Id670a, b/187055290)
  • FocusDirection enum, satır içi sınıfla değiştirildi. (Ib6d03, b/187055290, b/184086802)
  • İçeriği, gerekli slotId ile önceden oluşturmanıza olanak tanıyan SubcomposeLayout durumunu kaldırma özelliğini kullanıma sunar. Bu durumda, bir sonraki sefer belirli slotId ile alt oluşturmayı denediğimizde bir sonraki ölçüm daha hızlı geçer. (I42580, b/184940225)
  • Klip Seçim Kolu eklendi (Iff80d, b/183408447)
  • LayoutInspector desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)

Hata Düzeltmeleri

  • LazyColumn/Row, artık daha önce görünür olan 2 öğeyi, kaydırıldığında bile etkin durumda tutar (atılmaz). Bu sayede bileşen, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde etkin alt kompozisyonları yeniden kullanabilir. (Ie5555)
  • AnnotatedString'deki TextGeomerticTransform ve TextDecoration, verildiği şekilde uygulanır. (I61900, b/184760917)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.ui:ui-*:1.0.0-beta06 yayınlanır. 1.0.0-beta06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Gezinme Hareketiyle İlgili Çakışmayı Çözme (I1145e)
  • @ComposeCompilerApi artık @RequiresOptIn değil (Iab690)
  • Koleksiyonu ve öğelerini erişilebilirlik hizmetleri için işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
  • Dizine eklenen öğelerin bulunduğu bir listeyi belirli bir dizin içeren öğeye kaydırmaya yönelik SemanticsActions.ScrollToIndex ve anahtarlanmış öğelerin bulunduğu bir listedeki öğenin dizin bilgisini almaya yönelik SemanticsProperties.IndexForKey işlevleri eklendi. Her iki işlem de LazyList tarafından uygulanır.
    • Bir listeyi belirli bir dizinle kaydıran SemanticsNodeInteraction.performScrollToIndex ve bir listeyi belirli bir anahtara sahip öğeye kaydıran SemanticsNodeInteraction.performScrollToKey işlevleri eklendi. (I4fe63, b/178483889, b/161584524)
  • GraphicLayerInfo'ya ownerViewId eklendi (I19f62)
  • Yazı tiplerini assets, File ve FileDescriptor'dan yüklemek için Font() aşırı yüklemeleri eklendi (I5d382)
  • Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan erişilebilirlik API'si error eklendi (I12997, b/180584804, b/182142737)
  • Öğeler, File ve FileDescriptor'dan yazı tipi yüklemek için Font() aşırı yükleme eklendi (I43007)
  • AnnotatedString'in TextFieldValue.Saver'e kaydedilmesine destek eklendi. addTtsAnnotation ve withAnnotation yardımcı işlevleri AnnotatedString.Builder'a eklendi (I8cbdc, b/178446304)
  • TextUnit kurucu işlevi eklendi TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

Sürüm 1.0.0-beta05

21 Nisan 2021

androidx.compose.ui:ui-*:1.0.0-beta05 yayınlanır. 1.0.0-beta05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Deneysel FocusManager.moveFocus(In) ve FocusManager.moveFocus(Out) eklendi (Ic5534, b/183746743)
  • Deneysel performTextInputSelection API eklendi (I2dcbb, b/178510628)
  • InputEventCallback arayüzü desteği sonlandırıldı. Arayüz, herhangi bir herkese açık API'de kullanılamıyordu ve kodda da kullanılmıyordu. (I34a02, b/184003208)
  • TextLayoutResult/createTextLayoutResult işlevi kullanımdan kaldırıldı. Test için eklenen, kullanılmayan herkese açık bir işlevdir. İşlev, metin oluşturma API'leri için kullanılabilecek bir işlem yapmaz. Bu işlevin desteği sonlandırılmış olup daha sonra kaldırılacaktır. (I80413)

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma işlemleri ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0)
  • ui-test-manifest ve ui-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ınlanır. 1.0.0-beta04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • SoftwareKeyboardController'deki hideSoftwareKeyboard ve showSoftwareKeyboard öğelerini sırasıyla hide() ve show() olarak yeniden adlandırın.
    • LocalSoftwareKeyboardController için CompositionLocal arayüzünün tamamını sağlayarak ayarlanmasını sağlayın (özellikle testlerde kullanışlıdır) (I579a6)
  • LiveRegion erişilebilirlik API'si eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri, kullanıcıyı değişiklikler hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946)
  • TextOverflow.Visible özelliği kullanıma sunulmuştur. (Ic8f89)

Hata Düzeltmeleri

  • Kenarlarda bulunan LazyColumn/LazyRow öğelerinin hızlı kaydırma işleminden sonra yanlış konumlandırılmasına neden olan sorun düzeltildi (Ie4d13, b/183877420)
  • AndroidViewBinding, AndroidViewBinding oluşturma hiyerarşisiFragmentContainerView (Ib0248, b/179915946)
  • AndroidViewBinding, ComposeView bir Fragment içindeyken FragmentContainerView aracılığıyla şişirilen parçaları artık doğru şekilde iç içe yerleştiriyor. Bu sayede, bu parçaların durumunu kaydetme ve geri yüklemeyle ilgili sorunlar düzeltildi. (I70eb0, b/179915946)
  • Compose ViewBinding artık 1.3.2 Fragmanı'na bağlıdır ve yapılandırma değişikliklerinden sonra FragmentContainerView aracılığıyla şişirilen parçaları tutarlı bir şekilde gösterir. (I0743d, b/179915946)

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.ui:ui-*:1.0.0-beta03 yayınlanır. 1.0.0-beta03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • ComposeView'un ViewTree bağımlılıkları için ertelenen kontrol (I8dbbf, b/182466548)
  • GestureScope'teki 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ınlanır. 1.0.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılma (I6aa29, b/174531520)
  • androidx.compose.ui:ui artık AppCompat veya Fragment'e bağlı değildir. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 veya sonraki bir sürümü / Fragment 1.3 veya sonraki bir sürümü kullandığınızdan emin olun. Bu sürümler, ComposeView için gereken yaşam döngüsü ve kayıtlı durum sahiplerinin doğru şekilde ayarlanması için gereklidir. (I1d6fa, b/161814404)
  • navigation-compose hedefinin içinde kullanıldığında bozuk rememberSaveable { mutableStateOf(0) } sorunu düzeltildi. (I1312b, b/180042685, b/180701630)
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni bir LocalSoftwareKeyboardController kompozisyon yerel API'si eklendi. (I658b6, b/168778053)
  • ComposeRootRegistry'ın tearDownRegistry() (Iddce1) bölümündeki nadir NoSuchElementException hatası düzeltildi

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.ui:ui-*:1.0.0-beta01 yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.

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

API Değişiklikleri

  • onStart geri çağırma işlevi detectDragGestures'e (I67269, b/179995594) eklendi
  • Boyutlandırma için özgün öğeler olan 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 / basitleştirildi. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi
    • Etkileşim etkinliklerini yayınlamaktan / toplamaktan arayüzler sorumludur.
    • interactionState = remember { InteractionState() } değerini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } değerini kullanın.
    • Bunun yerine: Interaction.Pressed in interactionState InteractionSource.collectIsPressedAsState() gibi InteractionSource'daki uzantı işlevlerini kullanmanız gerekir.
    • Karmaşık kullanım alanları için etkileşim akışını gözlemlemek üzere InteractionSource.interactions parametresini kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerini ve örneklerini inceleyin.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • CompositionLocals'a AccessibilityManager arayüzü ve LocalAccessibilityManager ekleyin (I53520)
  • Desteği sonlandırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için mülk yerine işlev kullanın (I580ed, b/169874631, b/175142755)
  • Tür takma adları, temel türlerle değiştirildi:
    • ColorStop adlı bankanın yeni adı Pair<Float, Color>
    • SpanStyleRange artık "AnnotatedString.Range" oldu
    • ParagraphStyleRange adlı bankanın yeni adı AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation adlı bankanın yeni adı AnnotatedString.Range<String>
    • (I8dd1a)
  • CoreTextField gibi düşük düzeyli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
  • Yerleştirilebilir öğe artık alt düzenin gerçekte ölçüldüğü boyutu temsil eden measuredSize özelliğini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
  • Erişilebilirlik amacıyla sekme veya radyo düğmesi koleksiyonunu işaretlemeye olanak tanıyan selectionGroup değiştirici ekleyin (Ie5c29)
  • compositionLocalOf ve staticCompositionLocalOf için defaultFactory artık isteğe bağlı değil zorunludur.

    Bu değişiklik, varsayılan fabrika sağlanmayan, boş olmayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, boş olmayan bir tür için null referansı sağlıyordu.

    Boş bırakılabilir türler için varsayılan fabrika olarak { null } değerini sağlayabilirsiniz.

    Mantıklı bir varsayılan değer sağlanamazsa yerel değişkenleri, null olmayan türlerle kullanmanızı önermeyiz. Makul bir varsayılan değer yoksa defaultFactory lambda işlevi bir istisna atmalıdır. Ancak istisna atma, yerel kullanıcıların, tür sistemi tarafından zorunlu kılınmadığı sürece sağlanmasına dair gizli bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)

  • Kullanımdan kaldırılan yöntemler kullanıcı arayüzü modüllerinden kaldırıldı (I646f6)

  • Beden düzenleyiciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)

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

  • Kısmi tüketim, işaretçi giriş sisteminden kaldırıldı. Kısmi tüketimi koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)

  • Oryantasyon, temel pakete taşındı. VelocityTracker, ui.gesture alanından ui.input.pointer alanına taşındı. (Iff4a8, b/175294473)

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

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

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

    • Composition kurucusu artık anahtar parametresi kabul etmiyor ve desteği sonlandırıldı.
    • currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey bir özelliğe dönüştürülmüştür.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
    • ComposableLambdaN, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
    • snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'ın birleştirme yöntemi artık deneysel değil
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değil.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
    • Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
    • isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
    • Çeşitli üst düzey API'ler taşındı ve farklı dosyalarda yeniden düzenlendi. Kotlin'in dosya sınıfı semantikleri nedeniyle bu durum ikili uyumluluğu bozar ancak kaynak uyumluluğunu etkilemez. Bu nedenle çoğu kullanıcı için sorun oluşturmaz.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent(), compose:ui öğesinden kaldırıldı. androidx.activity:activity-compose:1.3.0-alpha01 adresindekini kullanın. viewModel() ve LocalViewModelStoreOwner, compose:ui'den kaldırıldı. androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b) adresindekileri kullanın

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

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

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

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

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

  • String.format API'si kaldırıldı. String.format'tan dahili olarak yararlanmamak için çeşitli toString yöntemlerinde yeniden yapılandırılmış kullanımlar kaldırıldı. (Id1290)

  • dp iddiaları 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 (I15cdc, b/179664814) kaldırıldı

  • Modifier.verticalScroll()/horizontalScroll() işlevindeki kaydırma konumu artık tam sayılarla temsil ediliyor (I81298)

  • FlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış azalma değerleri yerine askıya alma animasyonunun özelleştirilmesine olanak tanır. (I02b86, b/175294473)

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

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

  • FontSpan ve FontWeigthStyleSpan artık kullanılmadığından kaldırıldı. (Ie5b56, b/177423444)

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

    • Varsayılan dolguyu özelleştirmeye izin vermek için Top/BottomAppBar'a contentPadding parametresi eklendi.
    • Gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesine ilişkin API yönergelerine uymak için BackdropScaffold'daki parametreler yeniden düzenlendi.
    • BottomNavigationItem'deki icon parametresi, selected ve onClick'den sonra olacak şekilde taşındı.
    • BottomNavigationItem'deki alwaysShowLabels parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • Birkaç bileşendeki bodyContent parametreleri yalnızca content olarak yeniden adlandırıldı.
    • ButtonDefaults.buttonColors() parametreleri yeniden sıralandı. Parametrelerin türü değişmediğinden bu durumun kodunuzda hata oluşturmayacağı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 daha önce olduğu gibi çalışmaz.
    • darkColors() parametresi darkColors()'e eklendi.secondaryVariant Bu renk genellikle koyu temadaki secondary ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenir.
    • Yaygın olarak kullanılmadıkları ve yararlı olmadıkları için ElevationDefaults ve animateElevation() herkese açık API yüzeyinden kaldırıldı.
    • Slider içindeki onValueChangeEnd, onValueChangeFinished olarak yeniden adlandırıldı ve null değerini kabul edecek şekilde değiştirildi.
    • Tutarlılık için Snackbar'daki text parametresi content olarak yeniden adlandırıldı.
    • Varsayılan dolguyu özelleştirmeye izin vermek için DropdownMenuItem parametresi DropdownMenuItem'a eklendi ve content, RowScope'ın bir uzantısı haline getirildi.contentPadding
    • ModalDrawerLayout, ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout, BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Hata Düzeltmeleri

  • Compose'da AnimatedVectorDrawable kaynaklarını kullanmak için API eklendi. <animated-vector> XML'i AnimatedImageVector olarak yüklemek ve painterFor (I8ea91) ile animasyonlu hale getirmek için animatedVectorResource'i kullanın
  • TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController kompozisyon yerel API'si eklendi. (I658b6, b/168778053)

Sürüm 1.0.0-alpha12

10 Şubat 2021

androidx.compose.ui:ui-*:1.0.0-alpha12 yayınlanır. 1.0.0-alpha12 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • UiApplier'dan ViewGroups desteği kaldırıldı. Desteği sonlandırılan emitView bileşenleri kaldırıldı. (Ifb214)
  • Modifier.pointerInput artık, yeni bağımlılar için işaretçi girişi algılama coroutine'inin ne zaman yeniden başlatılacağını belirtmek üzere anahtarları hatırlamayı gerektiriyor. (I849cd)
  • CompositionReference, CompositionContext olarak yeniden adlandırıldı (I53fcb)
  • Bounds, DpRect (I4b32a) olarak yeniden adlandırıldı
  • Test güncellemesi: hasText(), metin alanında hem girişi hem de etiket/ipucu/yer tutucu metinlerini kontrol eder (Iab803)
  • viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose altına taşındı. Artık bu bağımlılığı kullanmak için ayrı bir bağımlılığı (androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01) eklemeniz gerekir. (I7a374)
  • AccessibilityAction'da null değerine izin verin, AccessibilityAction ve CustomAccessibilityAction'daki işlem etiketini CharSequence yerine String olarak değiştirin (I0dc82)
  • Adlandırma kurallarının ImageBitmap ve ImageVector ile daha uyumlu olması için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
  • Alt dize artık bağımsız değişken olarak kullanılarak daha iyi alt dize testi API'leri (Icbe78)
  • Özel bir odaklanma sırası belirtmeden FocusRequester kabul eden bir Modifier.focusOrder() lambda eklendi. Bu, bir bileşiğe (I4f52a, b/179180978) özel bir odaklanma sırası değil, yalnızca referans belirtmemiz gerektiğinde kullanışlıdır.
  • ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent yöntemine taşındı. (Icf416)
  • Yapıyı bölme ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
  • Pop-up, platforma özel olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve isFocusable, PopupProperties (Ieeea5) sürümünde focusable parametresine taşındı
  • İletişim kutusu, platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
  • LayoutNode'u dahili hale getirdi (I8a7b1, b/175103944)
  • Constraints.enforce, Constraints.constrain ile değiştirildi. (I8b8ea)
  • loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
  • Performans nedeniyle ScrollAxisRange semantikleri artık doğrudan kayan nokta değerleri yerine kayan nokta döndüren lambdaları alır. (If4a35, b/178657186)
  • Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantikleri ve semantikleri kontrol etmek için ilgili test yöntemleri eklendi (I8e07a)
  • OwnerLayer/OwnerScope/OwnerSnapshotObserver'ı dahili hale getirdik (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, API yönergesiyle daha tutarlı olması ve dahili uygulama sınıflarını herkese açık API'den gizlemek için güncellendi. (Id9e32)
  • Genişletme ve daraltma semantik işlemleri eklendi. ModalBottomSheetState'e expand ve halfExpand eklendi (Ib5064)
  • Modifier.dragGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.pointerInput { detectDragGestures (...)} politikasını kullanın. Alternatif olarak, tek eksenli sürükleme için Modifier.draggable'yı kullanın (I0ba93, b/175294473)
  • Ambiyanslar, Ambiyans -> KompozisyonYerel yeniden adlandırma ile eşleşecek şekilde yeniden adlandırıldı. Ambients eskiden AmbientFoo olarak adlandırılıyordu. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
  • Desteği sonlandırılan BaseTextField kaldırıldı. Bunun yerine BasicTextField'i kullanın. (I71368)
  • Seçim, temele taşındı. (I7892b)
  • Daha önce state { 0 } bileşenini kaldırıp remember { mutableStateOf(0) } gibi kullanımları teşvik ettiğimiz gibi, savedInstanceState { 0 } bileşenini de kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmalısınız. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir koruyucu nesne iletiyorsanız artık stateSaver parametresi içeren yeni bir rememberSaveable aşırı yüklemesini kullanmanız gerekir. Kullanım şu şekilde görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Erişilebilirlik için şifre semantikası eklendi (I231ce)
  • Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05)
  • Artık performans üzerinde olumlu bir etkisi veya değeri olmadığı için emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programlarının desteği sonlandırıldı (I0484d)
  • snapshotFlow ve withMutableSnapshot artık deneysel değil (I6a45f)
  • Yeniden derleyiciler artık kapatılabilir. Kapalı yeniden derleyiciler, derleme alt coroutine'leri tamamlanana kadar yeniden derlemeye devam eder. Recomposer.shutDown, kapat ile kontrast oluşturmak için iptal olarak yeniden adlandırıldı. (Ib6d76)
  • UiSavedStateRegistry, SaveableStateRegistry olarak, AmbientUiSavedStateRegistry ise AmbientSaveableStateRegistry olarak yeniden adlandırıldı ve her ikisi de androidx.compose.runtime.saveable paketine taşındı. (I30224)
  • androidx:compose:runtime:runtime-saved-instance-state yapıtı, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac)
  • Kullanıcı arayüzü paketindeki uzun süredir kullanımdan kaldırılmış birçok API silindi. (I2f2dc)
  • compose:runtime-dispatch yapısını kullanmayı bırakın. MonotonicFrameClock artık compose:runtime, AndroidUiDispatcher ise compose:ui altında bulunabilir. (Ib5c36)
  • Outline.* sınıfları artık veri sınıfı değildir (I4879e, b/178001427)
  • view.captureToImage(), değiştirilmeden kaldırıldı. (I7fcd2)
  • Kaynak içeriğin RGB değerlerini değiştirmek için kullanılan ColorMatrix API'yi kullanıma sundu. ColorFilter API'yi bir arayüz olacak ve PathEffect'in uygulanmasıyla eşleşecek şekilde yeniden yapılandırdı. (Ica1e8)
  • Şekil'in createOutline işlevine layoutDirection parametresini ekleyin. Bu sayede, düzen yönüne duyarlı şekiller oluşturabilirsiniz. (I57c20, b/152756983)
  • onImeActionPerformed işlevinin desteği sonlandırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
  • Sonsuz animasyonlarda uygulanacak bir InfiniteAnimationPolicy coroutine bağlam öğesi kullanıma sunuldu. ComposeTestRule ile test çalıştırırken hariç olmak üzere varsayılan olarak hiçbir politika yüklenmez. (I50ec4, b/151940543)
  • canDrag, Modifier.scrollable özelliğinden kaldırıldı. (Id66e7, b/175294473)
  • Yeni bir parentCoordinates mülküne izin vermek için LayoutCoordinates.parentCoordinates, LayoutCoordinates.parentLayoutCoordinates olarak yeniden adlandırıldı. parentCoordinates mülkü artık üst değiştiricinin LayoutCoordintes özelliğini sunar. Bu, onSizeChanged() ve onGloballyPositioned() için daha kapsamlı kullanım alanları sağlar (Idfbfd, b/177926591)
  • tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine, detectTapGestures işleviyle birlikte Modifier.clickable veya Modifier.pointerInput kullanın. (I6baf9, b/175294473)
  • SaveableStateRegistry'nin unregisterProvider işlevi kaldırıldı. Bunun yerine registerProvider(), artık kaydı iptal etmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739)
  • rememberSavedInstanceState(), rememberSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
  • CoreText ve CoreTextField, herkese açık API'den kaldırıldı
    • Desteği sonlandırılan SelectionContainer aşırı yüklemesi kaldırıldı
    • (I99c19)
  • Doğrudan WindowManager'a eklenen/kaldırılan hiyerarşilerde Compose'un kullanıldığı testler artık daha kararlı. (Ie81ed, b/175765614)
  • Recomposer.current() kaldırıldı. [Soyut]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönetilen, yavaşça oluşturulan, pencere kapsamlı Recomposer'ları kullanır. Ana makine yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon tikleri duraklatılır. (I38e11)
  • Recomposer.runningRecomposers artık işlemdeki devam eden derleme durumunu gözlemlemek için salt okunur RecomposerInfo'dan oluşan bir genel StateFlow sunuyor. Artık desteği sonlandırılmış olan Recomposer.current() yerine bu API'yi tercih edin. (If8ebe)
  • Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate adlı sınıftan androidx.compose.runtime.saveable adlı sınıfa taşındı (I77fe6)
  • EditCommands, AnnotatedString değerini kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve çok stilli metin düzenleme henüz uygulanmamıştır. (I4c3ea)
  • Uptime ve Duration kaldırıldı. (Ib9bf4, b/177420019)
  • CompositionData.asTree() ve ilgili API'ler ayrı bir ui-tooling-data modülüne taşındı ve deneysel olarak işaretlendi (Ic95b8)
  • RounderCornerShape, CutCornerShape ve CornerBasedShape'taki parametreler, şeklin rtl yönünde otomatik olarak yansıtılmasını desteklemek için sol/sağ yerine başlangıç/bitiş olarak yeniden adlandırıldı. AbsoluteRounderCornerShape ve AbsoluteCutCornerShape, otomatik yansıtmanın istenmediği durumlar için kullanıma sunulmuştur. (I61040, b/152756983)
  • Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden yapılandırıldı. Arayüzde artık tür parametresi de kullanılmamaktadır.

    Bu, kaynak kod uyumluluğunu etkilemeyecek ancak ikili programda uyumsuzluk yaratan dahili bir değişikliktir. (I3b922, b/169406779)

  • İstemsiz olarak herkese açık olan StringBuilder.deleteAt işlevini kaldırın (Id6ed9)

Hata Düzeltmeleri

  • Başka bir bileşimin alt öğeleri olan görüntü hiyerarşilerine yerleştirilen ComposeViews artık üst öğelerinin alt bileşimlerini barındırıyor (I92883)
  • ImageBitmap nesnelerini yüklerken kaynak çizilebilir önbelleğini yeniden kullanmak için compose'in 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ınlanır. 1.0.0-alpha11 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • WithConstraints, BoxWithConstraints olarak yeniden tasarlandı ve foundation.layout alanına taşındı. (I9420b, b/173387208)
  • Key.DPadUp desteği sonlandırıldı. Bunun yerine Key.DirectionUp işlevini kullanın. (Iab335, b/177954892)
  • Sahip arayüzü artık dahili. (If8e35)
  • Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
  • PopupPositionProvider'ı, global koordinatlar yerine pencereye göre koordinatlar kullanacak şekilde değiştirir. parentGlobalBounds öğesini anchorBounds olarak yeniden adlandırır ve windowGlobalBounds öğesini windowSize: IntSize olarak değiştirir (I2994a)
  • Süre ve Uptime, Uzun milisaniye ile değiştirilecek. Bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldırır. (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365)
  • Vektör grafiklerinin köküne uygulanan tonlamanın ayrıştırılmasını desteklemek için vektör grafikleri API'si güncellendi. (Id9d53, b/177210509)
  • Cihazları ayırt etmek için PointerInputChange'e toolType eklendi (Iac787, b/175142755)
  • AmbientWindowManager, AmbientWindowInfo olarak yeniden adlandırıldı (I2686a, b/177084714, b/177084983)
  • Küresel koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)
  • İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsLayer eklendi. (I315df)
  • FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiştir. (I2d898, b/177000821)
  • SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, horizontalScrollAxisRange olarak yeniden adlandırıldı. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
  • PointerInputData kaldırıldı ve PointerInputChange, PointerInputData'nın tüm alanlarını içerecek şekilde değiştirildi. Herhangi bir genel API'de kullanılmadıkları için PointerInputEvent ve PointerInputEventData'yı dahili hale getirdik. (Ifff97, b/175142755)
  • DP'nin ham piksele dönüştürülmesini desteklemek için GraphicsLayerScope'nun yoğunluğunu güncelledik. (Ied528, b/176819695)
  • Matris API'si, satır ana sıralamasını takip edecek ve SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığını içsel olarak eşleştirmek için farklı matris temsilleri arasındaki dönüşümlere yardımcı olacak dizin sabitleri sağlayacak şekilde güncellendi. (I432e6)
  • Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
  • String.fintPrecedingBreak ve String.fingFollowingBreak, InternalTextApi'ye taşındı. (I657c4)
  • androidx.compose.ui.util.isSurrogatePair, herkese açık API'den kaldırıldı. (Ia9494)
  • TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı
    • TransformedText artık bir veri sınıfı değildir (Ie672a)
  • data class, aşağıdaki sınıflardan kaldırıldı:
    • InlineTextContent
    • LocaleList (I605c7)
  • Aşağıdaki sınıflar artık veri sınıfı değildir:
    • AnnotatedString
    • ParagraphStyle
    • SpanStyle
    • TextStyle
    • FontWeight
    • TextDecoration
    • TextGeometricTransform
    • TextIndex
    • TextLayoutResult
    • TextLayoutInput (Iaff99)
  • VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4)
  • İşlev referansı parametre türü (I5e1bd) eklendi
  • InspectorNode'a (Ice42f) dönüştürülmüş sınırları ekleme

Hata Düzeltmeleri

  • onCommit, onDispose ve onActive için desteği sonlandırıldı. Bunun yerine SideEffect ve DisposableEffect API'leri kullanılmalıdır (If760e)
  • Yazı tipi/yazı tipi ailesi/yazı karakteri için fabrika işlevlerinde yapılan değişiklikler

    • Büyük harfle başlayan fabrika işlevleri eklendi
    • Baş harfi küçük olan önceki fabrika işlevleri kullanımdan kaldırıldı
    • Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürür
    • Alt sınıfların kurucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulmalarını sağladı.
    • Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
  • ComposeTestRule'u genişleten ve ComposeTestRule'dan kaldırılan setContent'yi tanımlayan ComposeContentTestRule tanıtıldı. ComposeTestRule döndüren ve sizin için bir Etkinlik başlatmayan bir createEmptyComposeRule() fabrika yöntemi eklendi. Testiniz sırasında etkinliğinizi başlatmak istediğinizde (ör.ActivityScenario.launch (I9d782, b/174472899) kullanarak) bunu kullanın.

  • animateAsState artık animateFooAsState olarak değişti. Foo, animasyon uygulanan değişkenin türüdür. Ör. Float, Dp, Offset vb. (Ie7e25)

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

  • displaySize değerini kaldırın. Genellikle onRoot() boyutunu veya en azından pencere boyutunu kullanmak daha iyidir. (I62db4)

  • OnSizeChanged, düzenin içeriğinin boyutunu bildiriyordu. Artık boyutu, değiştirici zincirindeki konumunda raporlar. (I36b78, b/177562900)

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

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

    • EditingBuffer kurucu parametrelerinden initial kaldırıldı. (I326d5)
  • invalidate ve compositionReference() işlevlerinin desteği sonlandırıldı. Bu işlevlerin yerine sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri kullanılmalıdır. (I583a8)

  • AnnotatedString, kotlin.CharSequence'ten türetilecek şekilde değiştirildi. Bu nedenle length ve subSequence artık örnek işlevleridir ve uzantı işlevleri kaldırılmıştır. (Iaf429)

  • RememberObserver, CompositionLifecycleObserver'ın yerini aldı ve CompositionLifecycleObserver'ın desteği sonlandırıldı.

    RememberObserver, değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemlerle CompositionLifecycleObserver'in yerini alır. Yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bu, önerilen uygulamadır ve olmaya devam edecektir. Ancak bir referans bir bileşimde birden fazla kez hatırlandıysa onEnter yalnızca bir kez çağrılırken her referans için onRemembered çağrılır. Nesne WithConstraints ve Scaffold gibi alt kompozisyonlarda kullanıldıysa onEnter birden çok kez çağrıldı. Bu da tek onEnter çağrı garantisini güvenilir kılmıyor ve RememberObserver için kaldırıldı.

    RememberObserver, RememberObserver örneği remember'ye iletilen geri çağırma işlevinden döndürülürse ancak derleme durumunda hatırlanmadıysa ve bu nedenle hiçbir zaman onRemembered çağrılmamışsa çağrılan onAbandoned'yi ekler. Bu durum, bir istisna, derlemeyi tamamlanmadan sonlandırırsa veya derleme, derleme oluşturulduğu durum artık geçerli olmadığı veya başka bir şekilde artık gerekli olmadığı için atılırsa ortaya çıkabilir. Yukarıdaki tek referans önerisini izleyen RememberObserver örneği harici bir kaynağı izliyorsa hem onForgotten hem de onAbandoned, kaynağın artık gerekli olmadığını gösterir. Nesne, onRemembered içinde başlatılan işi veya ayrılan kaynakları izliyorsa onRemembered çağrılırsa onAbandoned çağrılmayacağından onAbandoned yoksayılabilir. (I02c36)

  • 2 veya daha fazla TextUnit arasındaki aritmetik işlemler desteği sonlandırıldı. Int.sp ve Int.em gibi uzantı işlevlerine tercih edilen TextUnit.Sp ve TextUnit.Em işlevleri kullanımdan kaldırıldı. (I48369)

  • Açıkça herkese açık kaynak belirtilmeyen (ör. public.xml aracılığıyla) kütüphanelerdeki kaynaklar artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)

  • ScrollableColumn/Row desteği sonlandırıldı. ScrollableColumn, büyük bir kaydırılabilir içeriğiniz olduğunda LazyColumn'a kıyasla daha az verimlidir. Bunun nedeni, LazyColumn ile yalnızca görünür öğeleri oluşturabilmemiz/ölçebilmemiz/çizmemizdir. Kullanıcıların verimsiz bir yönteme başvurmasını önlemek için ScrollableColumn ve ScrollableRow için desteği sonlandırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

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

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

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

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

  • 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ınlanır. 1.0.0-alpha10 sürümü bu taahhütleri içerir.

Zararlı Değişiklik

  • Dahili derleyici API'sinin yeniden yapılandırılması, tüm @Composable işlevleri tamamlandıktan sonra, derleme sonucunda oluşturulan düğümlerde yapılan değişikliklerin derlemenin "değişiklikleri uygula" aşamasında toplu olarak yapılmasına olanak tanır.

    Bu, davranışta önemli bir değişikliktir. Nod'lar artık değişiklikler uygulanana kadar dahili ve deneysel API'lerden kullanılamayacağından uygulama kodunu etkileyebilir. Bu sorun genellikle, kodu SideEffect bileşeninde bu tür bağımlılıklarla çevreleyerek kod yürütmeyi düğümler oluşturulup başlatılana kadar erteleyerek çözülebilir. (I018da)

API Değişiklikleri

  • Özel bir odak geçiş sırası belirtmek için kullanılabilen Modifier.focusOrder() eklendi (I90cf5, b/175899543, b/170155556, b/170155429)
  • Desteği sonlandırılan focusObserver kaldırıldı. Bunun yerine onFocusChanged veya onFocusEvent kullanılmalıdır (I3ecb9, b/175156387)
  • EditOperations API Değişiklikleri
    • EditOperation, EditCommand olarak yeniden adlandırıldı
    • EditOperation somut uygulamaları için komut son eki eklendi
    • EditCommand'lar artık veri sınıfları değildir
    • EditOperation.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() işlevi mülk olarak değiştirildi. (I973f7)
  • ui-test modülü artık test edilen kullanıcı arayüzleri için yeniden derleyicilerin oluşturulmasını yapılandırabilecek (Ibebd8)
  • Hız, bileşen parçaları ve matematiksel işlemler içerecek şekilde değiştirildi. (Ib0447)
  • Benzer deneysel API ek açıklamalarıyla tutarlı olması için @ExperimentalTesting, @ExperimentalTestApi olarak yeniden adlandırıldı (Ia4502, b/171464963)
  • Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5)
  • Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
  • Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
  • layoutnode sınırları değiştiğinde sahibi bilgilendirmek için geri çağırma işlevi ekleyin. (I72fd1)
  • Belirtilmemiş sabit içeren satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
  • [Abstract]ComposeView API'lerini, oluşturma tabanlı görünümlerin geri dönüştürülmesine izin verecek şekilde genişletin. Bu API'ler, daha sonra yeniden oluşturmak için oluşturma işlemlerini kaldırır. Alt kompozisyon oluşturmak için pencere kapsamlı Recomposer'ları ve CompositionReference'ları yükleyip keşfetmek üzere API'ler ekleyin.

    [Abstract]ComposeViews bileşeninin bertaraf stratejisini yapılandırmak için ViewCompositionStrategy ekleyin. Varsayılan davranış, pencerenin ayrılması durumunda bertaraf etmektir. (I860ab)

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

  • toStringAsFixed API'si kaldırıldı ve bunun yerine doğrudan String.format kullanıldı. (Iaba6b)

  • Foundation Strings.kt'ye açma/kapatma düğmesi ekleme (I4a5b7, b/172366489)

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

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

  • SelectionManager'da seçilebilir öğe güncellemelerini bildirmek için SelectionRegistrar.notifySelectableChange eklendi. (I6ff30, b/173215242)

  • Çeşitli ana hat uygulamalarında sınırlayıcı dikdörtgeni elde etmek için Outline.bounds mülkü kullanıma sunuldu. (I16e74, b/175093504)

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

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

  • VisualTransformation API Değişiklikleri

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

  • Dp.isFinite() işlevi, Dp.isFinite (I50e00) değerine değiştirildi

Hata Düzeltmeleri

  • Yeniden derleyici artık mevcut durumunun akışını gösterir. Bu sayede, etkinliğini ve ilişkili efektlerin etkinliğini izleyebilirsiniz. (Ifb2b9)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent aracılığıyla erişilebilir (I87c57, b/173086397)
  • animate() artık animateAsState() ile değiştirildi. Bu değişiklik, T yerine State<T> döndürür. Geçersiz kılma kapsamı, State değerinin okunduğu yere daraltılabileceğinden bu, daha iyi performans sağlar. (Ib179e)
  • Semantics role API'yi ekleyin ve tıklanabilir, seçilebilir ve değiştirilebilir SemanticsModifier'a parametre olarak Role ekleyin. Modifier.progressSemantics özelliği, Kaydırma Çubuğu'nun da kullanabilmesi için değiştirildi. (I216cd)
  • Animasyonları arasında karşılıklı münhasırlığı sağlayan yeni coroutine tabanlı API Animatable.
    • Çok boyutlu bozulma animasyonunu destekleyen 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ınlanır. 1.0.0-alpha09 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Desteği sonlandırılan KeyEvent.Alt kaldırıldı. Bunun yerine KeyEvent.isAltPressed işlevini kullanın. (Idd695)
  • Modifier.keyInputFilter ve Modifier.previewKeyInputFilter desteği sonlandırıldı. Bunun yerine Modifier.onKeyEvent ve Modifier.onPreviewKeyEvent kullanın (Idbf1b, b/175156384)
  • Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent'i kullanın (I30f17, b/168511863, b/168511484)
  • İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope adlı API'nin adı AwaitPointerEventScope olarak, handlePointerInput() adlı API'nin adı da awaitPointerEventScope() olarak değiştirildi. (Idf0a1, b/175142755)
  • Autofill API artık deneysel API'dir ve etkinleştirilmesi gerekir (I0a1ec)
  • FocuSRequester örnekleri oluşturmak için yapıyı bozma beyanları ekleme (I35d84, b/174817008)
  • accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
  • Özel etkinlikler, askıya alınmış işaretçi girişi API'sinden kaldırıldı (Ia54d5, b/175142755)
  • SelectionRegistrar'da birkaç yeni işlev kullanıma sunuldu ve onPositionChange işlevi notifyPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
  • Dahili olarak işaretlediğimiz diğer LayoutNode üyeleri (I443c6)
  • LayoutInfo, araç ve test tarafından kullanılmak üzere kullanıma sunuldu (I9b190)
  • AndroidOwner tarafından dahili hale getirildi (Ibcad0, b/170296980)
  • ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
  • İç içe yerleştirilmiş kaydırma sistemi eklendi. Daha fazla bilgi için Modifier.nestedScroll'a bakın (I36e15, b/162408885)
  • subcomposeInto(LayoutNode) işlevi dahili hale getirildi (Id724a)
  • Applier arayüzü, ağaç oluşturmayı yukarıdan aşağıya yerine aşağıdan yukarıya basitleştirmek için değiştirildi.

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

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

    Uygulayıcı, daha iyi performans gösterene bağlı olarak insertTopDown() veya insertBottomUp()'ü kullanarak düzenlediği ağaca düğüm ekler.

    LayoutNode ve View gibi bazı ağaçların alttan yukarıya doğru oluşturulması, yukarıdan aşağıya doğru oluşturulmasından çok daha verimlidir. Bu değişiklikten önce, aşağıdan yukarıya doğru uygulamak için bir dizi ekleme gerekliydi. Bu eklemelerin, performans için aşağıdan yukarıya doğru oluşturma işlemi gerektiren her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte, Applier, ağacı aşağıdan yukarıya doğru oluşturmak için insertBottomUp()'ü, ağacı yukarıdan aşağıya doğru oluşturmak için ise insertTopDown()'yi geçersiz kılar. (Icbdc2)

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

  • Rastgele öğe biçimlerinden (PNG'ler gibi) veya VectorDrawable'lardan Painter nesnelerini opak olarak yüklemeyi işlemek için painterResource API eklendi. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Bu yöntemi çağırarak resim kompozisyonlarında veya ressam değiştiricilerinde kullanılacak bir Painter nesnesi elde edebilirler. (I2c703, b/173818471)

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

  • ContentDrawScope, DrawScope ile birlikte olması için ui-graphics modülüne taşındı. (Iee043, b/173832789)

  • Kalın çizgili şekillere farklı desenler sağlamak için PathEffect grafik API'si kullanıma sunuldu. PathEffect'in beklenen/gerçek uygulaması lehine NativePathEffect'in desteği sonlandı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. ComposeTestRule (I433f3) aracılığıyla kaydedilebilir ve kayıtları iptal edilebilir.

  • ComposeIdlingResource'ın küresel (kaydetme/kaydetmeme) kaydı ve ComposeIdlingResource'a saatlerin küresel (kaydetme/kaydetmeme) kaydı kaldırıldı (I32660)

Hata Düzeltmeleri

  • Ofset değiştiricilerdeki lambdalar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
  • SlotTable, SlotReader ve SlotWriter, herkese açık API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretlenmişti. Artık bu özellikler, oluşturma modülüne dahil edildi.

    CompositionData ve CompositionGroup, kompozisyon bilgilerini ayıklamak için kullanılacak ui-tooling API'nin yerine eklendi. Bunlar herkese açıktır ancak ui-tooling API'nin yorumladığı ham bilgileri sağladıkları için ui-tooling API dışında kullanılmak üzere tasarlanmamıştır (I31a9c)

  • Çizim ortamının boyut bilgileri mevcut olduğunda gölgelendirici örneğini yavaşça oluşturmak için ShaderBrush yeniden yapılandırıldı. Bu, özel DrawModifier uygulamaları uygulamak zorunda kalmadan, bir kompozisyonun tüm çizim sınırlarını kompozisyon sırasında kaplayan degradeleri tanımlamak için kullanışlıdır.

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

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed işlevleri kullanımdan kaldırılıyor. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)

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

  • AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. annotatedStringBuilder işlevi kullanımdan kaldırıldı. (Idfe0b)

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

Sürüm 1.0.0-alpha08

2 Aralık 2020

androidx.compose.ui:ui-*:1.0.0-alpha08 yayınlanır. 1.0.0-alpha08 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Kapatma (I2b706) anlamsal işlemini ekleme
  • DrawModifier API'leri, androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılan API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemler içeren DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
  • Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca API geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
  • Özel düzenlerin ve düzen değiştiricilerin, çizimleri için bir grafik katmanı ekleyerek bir alt öğe yerleştirmesine olanak tanıyan placeable.placeWithLayer() ve placeable.placeRelativeWithLayer() adlı yeni yöntemler eklendi. Bu sayede, önce yeniden çizimleri optimize edebiliriz. Böylece, bir alt öğeyi taşımamız gerektiğinde içeriğini yeniden çizmemiz gerekmez. İkinci olarak, bir alt öğe için çizim dönüşümleri uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831)
  • <T>, SubcomposeLayout beyanından kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)
  • drawLayer için kolaylık sağlamak amacıyla Modifier.scale/rotate API'leri eklendi.
    • Modifier.drawOpacity, Modifier.alpha olarak yeniden adlandırıldı
    • Modifier.drawShadow, Modifier.shadow olarak yeniden adlandırıldı (I264ca, b/173208140)
  • PointerInputData'nın çalışma süresi ve konum alanlarını boş bırakılamayan hale getirdik. (Id468a)
  • MaterialTheme artık seçim tutamaçlarının ve seçim arka planının doğru renklerini ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere 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ğırma işlevi sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
  • TransformOrigin API'si, pivotFractionX ve pivotFractionY değerlerini component1 ve component2 olarak döndürmek için yapı bozma söz dizimine sahip olacak şekilde güncellendi (If43c4, b/173586560)
  • Compose yönergeleriyle tutarlılığı kontrol etmek için birleştirilebilir lambda parametre adlandırma ve konumu için lint denetimi eklendi. Ayrıca, son lambda adları olarak children kullanan bazı API'ler, lint kontrolüne ve yönlendirmeye göre content olarak taşındı. (Iec48e)
  • Bir tuş etkinliği gönderilirken Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol etmek için API eklendi. (I50ed9)
  • Yeni bir Modifier.drawLayer() aşırı yükleme işlevi eklendi. Yeni bir GraphicsLayerScope'da bir lambda bloğu alır. Bu blokta, katman parametrelerini durum değişikliği olduğunda yeniden oluşturma ve yeniden düzeni atlamaya izin verecek şekilde tanımlarsınız. DrawLayerModifier, mantığını LayoutModifier'ın placeable.placeWithLayer() yöntemine taşımaya hazırlanırken artık şirket içi bir sınıftır (I15e9f, b/173030831)
  • Son eklerinde Ambient bulunan Ambient'ler kullanımdan kaldırıldı ve diğer Ambient'ler ile Compose API yönergelerine uygun olarak Ambient önekiyle yeni mülklerle değiştirildi. (I33440)
  • androidx.compose.ui.text.Typeface, androidx.compose.ui.text.font.Typeface'e taşındı (Ic2b81)
  • Anlamsal bağımsız değişken mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
  • Yönlendirme kilitleme dahil olmak üzere yeni sürükleme hareketi algılayıcısı, işaretçi giriş API'sini askıya alır. (Icef25)
  • VectorAsset, ImageVector olarak yeniden adlandırıldı. API yönergelerine göre ImageVector'ın iç sınıfı olması için VectorAsset taşındı ve Builder olarak yeniden adlandırıldı. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder için typealias eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • PlacementScope'un place() işlevi için zIndex parametresi ekleyin. Böylece Modifier.zIndex(), artık LayoutModifier olarak çalışır ve tüm özel düzenler, alt öğelerinin zIndex'lerini doğrudan yerleşim bloğunda ayarlayabilir (I711f7, b/171493718)
  • Temel anlambilim özellikleri kullanıcı arayüzüne taşındı (I6f05c)
  • place(Offset) ve placeRelative(Offset) işlevleri kullanımdan kaldırıldı. Bunun yerine, int ofset'leri olan aşırı yüklemeleri kullanın (I4c5e7)
  • Daha önce desteği sonlandırılan API'ler kaldırıldı: Modifier.onPositioned kaldırıldı, Modifier.onGloballyPositioned'ı kullanın. Modifier.onDraw kaldırıldı. Modifier.onDrawBehind'i kullanın. Modifier.plus kaldırıldı. Modifier.then işlevini kullanın. Color.Unset kaldırıldı. Color.Unspecified'i kullanın. PxBounds sınıfı kaldırıldı. Bunun yerine Rect sınıfını kullanın. (Ie9d02, b/172562222)
  • Hizalama arayüzü güncellendi ve çalışır hale getirildi. (I46a07, b/172311734)
  • Yeni askıya alınmış işaretçi girişi kullanılarak dokunma, iki kez dokunma, uzun basma ve basma göstergesi için hareket algılayıcı eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmasını kolaylaştıran birkaç yardımcı program da eklendi. (I00807)
  • id, LayoutIdParentData için layoutId olarak yeniden adlandırıldı. Measurable.id, Measurable.layoutId olarak yeniden adlandırıldı. (Iadbcb, b/172449643)
  • Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan yeni çoklu dokunma hareket algılayıcı. (Ic459d)
  • SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
  • Testlerde zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
  • İş parçacığı tabanlı kaydırma API'leri ekleyin:

    Ekran kaydırma kontrolü için LazyListState.snapToItem ve LazyListState.smoothScrollBy'nin yanı sıra daha düşük düzey API'ler ekler. Bu API'ler, kaydırma işlemini kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, geri dönmeden önce kaydırma işleminin tamamlanmasını bekler. (Ie5642)

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

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

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

  • TextLayoutResult.getLineVisibleEnd desteği sonlandırıldı. Bunun yerine TextLayoutResult.getLineEnd artık yeni bir parametreye (visibleEnd) sahiptir. (I73282)

  • Güncellenen TextFieldValue API

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

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

Hata Düzeltmeleri

  • Kutu'nun alignment parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
  • offsetPx değiştiricileri offset olarak yeniden adlandırıldı. Artık durum yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
  • TextInputService#onStateUpdated işlevine resetInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
  • Kompozit işlevlerdeki değiştirici parametreler için lint denetimi eklendi. Bu dil bilgisi denetimi, parametrenin adlandırmasını, döndürme türünü, varsayılan değerini ve sırasını, Oluşturma yönergeleriyle tutarlı olup olmadığını kontrol eder. (If493b)
  • TestAnimationClock'ın MonotonicFrameClock tarafından yönlendirilmesine izin vermek için geçici olarak eklenen seçenek (I1403b, b/173402197)
  • Android yazı tipi sarmalayıcısı eklendi. typeface işlevi (ör. typeface(Typeface.DEFAULT)) aracılığıyla Android yazı tipi yükleyebilirsiniz. Ayrıca typefaceFromFontFamily(), typeface() olarak yeniden adlandırıldı (I52ab7)
  • Düzenleyici fabrika işlevlerinin Düzenleyici'de uzantı olarak tanımlanıp tanımlanmadığını kontrol etmek için lint denetimi eklendi. Böylece, işlevler birbirine sorunsuz bir şekilde bağlanabilir. (I07981)
  • Eski ui-test modülünü ve onun stub'larını kaldırın (I3a7cb)
  • Recomposer artık EmbeddingContext'i kabul etmez; gerekli planlama bağımlılıkları effectCoroutineContext'ten alınır. FrameManager desteği sonlandırıldı. Platform entegrasyonlarının kendi genel anlık görüntü işlemelerini başlatması gerekir. (I02369)
  • Stil bilgilerini erişilebilirlik düğümüne iletin. (If5e8d)
  • Diğer birimlerle tutarlılık sağlamak için TextUnit.Inherit, TextUnit.Unspecified olarak yeniden adlandırıldı. (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ınlanır. 1.0.0-alpha07 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Düzensiz ölçeklendirme kullanım alanlarını desteklemek amacıyla yatay ve dikey eksenler için ölçek faktörlerini birbirinden bağımsız olarak temsil etmek üzere ScaleFactor satır içi sınıfı kullanıma sunuldu.
    • ContentScale'a computeScaleFactor yöntemi eklendi
    • Kaynak sınırlarını hedefi tamamen kaplayacak şekilde uzatmak için tekdüze olmayan ölçeklendirme yapmak üzere ContentScale.FillBounds eklendi.
    • ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
    • (Ic96a6, b/172291582)
  • Hizalama oluşturmak için BiasAlignment ve BiasAbsoluteAlignment fabrikaları eklendi. (Iac836, b/169406772)
  • Geliştiricinin zorla odağı temizlemesine izin verin. (I90372)
  • Oluşturma bölümündeki Görünümler için yüksekliğin ç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'lerindeki 3D dönüşümleri (rotationX/rotationY) tamamlamak için kamera mesafesi desteği eklendi. (I40213, b/171492100)
  • Geri çağırma işlevi olmadan SelectionContainer eklendi (Ibfadb)
  • ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad)
  • FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7)
  • Kafa karıştırıcı olduğu için drawShadow() değiştiriciden opaklık kaldırıldı. (I82c62, b/171624638)
  • MeasureResult, MeasureScope'tan çıkarıldı. (Ibf96d, b/171184002)
  • androidx.compose.ui altındaki birkaç düzen sembolü, androidx.compose.layout.ui altına taşındı. (I0fa98, b/170475424)
  • Desteği sonlandırılan FocusState2 (I686cb, b/168686446) kaldırıldı
  • ZIndexModifier artık dahili (I1808b, b/171493718)
  • Gereksiz kutucuklama işlemlerini önlemek için Size parametrelerindeki lerp yönteminin döndürdüğü tür, null olmayan bir Size döndürecek şekilde güncellendi. (Ib0044)
  • kotlinx-coroutines-test'in runBlockingTest yöntemini kullanarak kompozisyon çerçeve etkinliklerini beklemek için Compose'un MonotonicFrameClock'ına dayanan kodu test etmek üzere TestMonotonicFrameClock eklendi (I4402f)
  • GestureScope.localToGlobal (I15299, b/171462785) kaldırıldı
  • onAllNodesWithSubstring bulucu eklendi (I81dd7, b/171462889)
  • androidx.ui.test modülünün desteği sonlandırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4'e (I452e8) geçin

Hata Düzeltmeleri

  • captureToBitmap, captureToImage olarak değiştirildi. (I86385)
  • foundation.Text desteği sonlandırıldı ve material.Text ile değiştirildi. Bir temadan değer tüketmeyen temel, tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
  • TextField'leri KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
  • KeyboardOptions öğesini ImeOptions olarak yeniden adlandırın (I82f36)
  • KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
  • provideDefault, ambiyans sağlamaya alternatif olarak eklenmiştir ve yalnızca önceden sağlanmış bir ambiyans değeri olmadığında ayarlanacak ambiyans değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'i kullanın. (I896eb)
  • ui-test-junit4 modülü kullanıma sunuldu (Ib91f8)
  • relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. paddingFromBaseline değiştiricisi, düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtmek için kolaylık sağlamak amacıyla eklendi. (I0440a, b/170633813)
  • SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedTask, LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek amacıyla, konu parametresi olmayan LaunchedEffect'e izin verilmez. (Ifd3d4)
  • Yapılandırma güncellendiğinde yeniden derlenen, derlenebilir kaynaklar kullanıma sunuldu. (I6387c, b/167352819)
  • Yeniden derleyici artık oluşturulurken CoroutineContext gerektiriyor (Ic4610)
  • Birden fazla Modifier.zIndex() uygulandığında zIndex değerlerinin toplamı. Daha önce ilk seçenek kazanıyordu. (Ic514c, b/170623936)
  • Herkese açık API'yi etkilemeyecek olan dahili SlotTable uygulamasında yapılan değişiklikler. (If9828)
  • Klavye otomatik düzeltme IME seçeneği eklendi (I57b8d)
  • androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb)
  • KeyboardOptions.toImeOptions, herkese açık API'den kaldırıldı. (Ic2e45)

Harici Katkı

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

Sürüm 1.0.0-alpha06

28 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha06 yayınlanır. 1.0.0-alpha06 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Recomposer artık bir CompositionReference ve geçerli bir kompozisyon üst öğesidir. Explicit Recomposer artık daha az yerde gerekli. (I4036f)
  • Kompozit API'nin, verileri kompozisyonlar arasında kalıcı hale getirmek için dahili olarak "remember" işlevini kullandığını daha iyi belirtmek amacıyla VectorPainter yerine rememberVectorPainter işlevinin desteği sonlandırıldı. (Ifda43)
  • Uygulamalara çizim komutlarını yeniden sıralama olanağı sağlamak için Modifier.drawWithCache API'si, ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak göstermek üzere güncellendi. Bu, ilgili karışım modu algoritmasının düzgün şekilde uygulanması için içerik piksellerinin önce oluşturulması gereken karışım/tonlama kullanım alanları için yararlıdır. (Ie7ec8)
  • SimpleContainer'ı PopupTestUtils.kt'ye taşıma (I78c57)
  • ConsumedData artık bir veri sınıfı değildir. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 adresine bakın (I1737f)
  • Rtl kolu konumunu düzeltin. (I6e1e0)
  • DrawScope ve ContentDrawScope, soyut sınıflar yerine arayüz olacak şekilde yeniden yapılandırıldı.
    • DrawScope için CanvasDrawScope uygulaması oluşturuldu
    • DrawScope'un, bunun yerine CanvasScope'u kullanacak şekilde yeniden yapılandırılmış uygulamaları
    • DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu
    • DrawScope'ta desteği sonlandırılmış yöntemler kaldırıldı (I56f5e)
  • Önemli değişiklik: İşaretçi etkinliklerinde değiştirilebilmesi gereken tek değerin tüketim verileri olması nedeniyle PointerInputFilter.onPointerEvent(...) değerinden döndürülen değer kaldırıldı. Artık PointerInputFilter.onPointerEvent(...)'ten veri döndürmek yerine, iletilen PointerEvents öğesinin tüketim verilerini değiştirebilirsiniz. (I6acd0)
  • MeasureScope ve IntrinsicMeasureScope arayüzler haline getirildi. (I1a087, b/170461665)
  • AlignmentLine için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
  • Birleştirilmiş değiştiricide denetleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569)
  • Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
  • DrawTransform.rotate, dokümanla eşleşecek şekilde varsayılan bir merkez pivot parametresi alacak şekilde güncellendi.
    • DrawScope.rotateRad, diğer dönüşüm yöntemleriyle eşleşecek şekilde pivot noktası için bir ofset kullanacak şekilde güncellendi.
    • Pivot'un x ve y koordinatı için kayan nokta değerleri kullanan, desteği sonlandırılan DrawScope.rotateRad aşırı yüklemesi.
    • (Iffcbb, b/170434992)

Hata Düzeltmeleri

  • MissingGetterMatchingBuilder için API lint kontrolü, androidx için etkinleştirildi (I4bbea, b/138602561)
  • Test ekleyin. (I6b8ae)
  • ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'dan yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
  • Klavye Büyük Harfleri IME Seçeneği eklendi (I8ac38)
  • CoreTextField'e (I72e6d) tek satırlı klavye seçeneği eklendi
  • SimpleContainer'ı PopupTestUtils.kt'ye taşıma (I65c3e)
  • Radius API'nin adı, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirtmek için dokümanlar güncellendi. (I130c7, b/168762961)
  • ACTION_DOWN (I94c5a, b/170320973) hariç tüm işlemler için onTouchEvent işlevi false döndüren alt Android Görsellerine MotionEvents göndermeye devam ederek Android birlikte çalışabilirliği iyileştirildi
  • Kutu satır içi işlev haline getirildi. (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ınlanır. 1.0.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Denetleyici bilgilerini belirtmek için DSL ekleme (Ic9a22)
  • Uzun basmayı metne taşıyın. (Iff2bc)
  • Deneysel Modifier.pointerInput giriş değiştiriciyi askıya alma (Ia77d2)
  • Kopyala/Yapıştır/Kes erişilebilirlik işlemleri eklendi (I6db4f)
  • AndroidOwner için herkese açık kurucu kaldırıldı (Iacaef)
  • Pop-up'lar ve iletişim kutuları artık FLAG_SECURE işaretini üst pencereden devralıyor. Ayrıca bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149)
  • Tüketim verileri artık değiştirilebilir. Ayrıca, tüketim yapan uzantı işlevlerine yapılan çağrılar artık yeni bir PointerInputChange döndürmez, bunun yerine sağlanan PointerInputChange'i değiştirir.

    Bu, PointerEvent verilerini diğer işaretçi verilerinin kullanıcı kodu tarafından düzenlenemeyecek şekilde değişken hale getirmeye yönelik 2 adımlı bir sürecin ilk adımıdır. İkinci adımda, List<PointerInputChange> döndürme türünü PointerInputFilter.onPointerEvent(...)'dan kaldırın. (Id067e)

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

  • onGloballyPositioned işlevi satır içi işlev haline getirildi (I15830)

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

  • Sahibin bekleyen bir düzen çalışması olup olmadığını belirten hasPendingMeasureOrLayout özelliği, Owner alanına eklendi. (I3d9f8, b/169038599)

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

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

  • Boyutta yapılan değişiklikler

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

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

  • AnnotatedString.Builder.addStringAnnotation içindeki scope parametresi, API tutarlılığı için tag olarak yeniden adlandırıldı. (I7c8cb)

Hata Düzeltmeleri

  • Her kaydırma işleminde alt kompozisyonda daha az işlem yapılarak LazyColumn/Row'un kaydırma performansı iyileştirildi. Composition sınıfı için yeni hasInvalidations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi, hasInvalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371)
  • Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamalarını, sonlu olmayan boyutların yanı sıra Size.Unspecified ile de kontrol edecek şekilde güncellendi. (I95a7e)
  • Özel düzenlerde place() çağrılarının sırası artık alt öğelerin çizim sırasını tanımlar (Ibc9f6)
  • Erişilebilirlik için AnnotatedString'den SpannableString'e dönüştürme işlemini destekleyin. (Ief907)
  • Mümkün olduğunda yansımanın kullanılmasını önlemek için eski platformlardaki Android sınıfları için stub'ler eklendi. (Ia1790)
  • Düzeltilen hata: Gösterilen yazılım klavyesi, uygulamanın çevirmesine neden olursa işaretçi giriş koordinatları yanlış olurdu. (Ic4cec, b/163077821)

Sürüm 1.0.0-alpha04

1 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha04 yayınlanır. 1.0.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Artık geçerli olmayan düzen ve çizim gözlem kapsamlarının toplanmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
  • İçerik düzeni yeniden ölçüldüğünde ve boyut değiştiğinde geri çağırma işlevi almak için sırasıyla OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
  • Uzun tıklama semantik işlemi ekleme (I6281b, b/156468846)
  • FocusManager'ı gizli hale getirdi. (I7872f)
  • Uygulama, DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturacak şekilde güncellendi.

    Çeşitli yöntemlerle ilgili dokümanlar güncellendi (Ibd166)

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

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

  • AccessibilityScrollState özelliğini semantik özelliklere ekleyin. (Ifeda9)

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

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

Hata Düzeltmeleri

  • Birçok Grafik API'si güncellendi
    • DrawScope ve DrawTransform'daki x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresi kullanacak şekilde ölçek ve dönme dönüşümü API'leri güncellendi
    • Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
    • Yarıçap dokümanları, elips şeklindeki şekillere ek olarak oval şeklindeki şekilleri de içerecek şekilde güncellendi.
    • Satır içi Radius sınıfının herkese açık kurucusunun doğrudan çağrılmaması gerektiğini, bunun yerine Radius nesnelerinin işlev kurucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi
    • Sağ üst, sağ alt, alt orta vb. noktaları sorgulamak için RoundRect API'leri kaldırıldı.
    • Rect.shift işlevi, Rect.translate işlevi lehine kullanımdan kaldırıldı
    • RoundRect.grow ve Rect.shrink API'leri kaldırıldı
    • RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı
    • RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
    • RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
    • RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
    • RoundRect.center işlevi, işlev yerine mülk olarak değiştirildi
    • RoundRect yapıcısı, x/y yarıçapı değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi
    • Orijininin 0,0 olduğu bir dikdörtgen olduğunu varsayılan Boyut API'leri kaldırıldı
    • Radius'a bir destructing API eklendi
    • Çeşitli RoundRect uzantı işlevleri, mülk olarak taşındı
    • (I8f5c7, b/168762961)
  • foundation.Box desteği sonlandırıldı. Bunun yerine lütfen foundation.layout.Box öğesini kullanın. (Ie5950, b/167680279)
  • Grup, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box, compose.foundation.layout içindeki yeni Box için kullanımdan kaldırılacak. Yeni Kutu'nun davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki Kutu'dan farklıdır. (I94893, b/167680279)
  • Kutu süsleme parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine değiştiricileri kullanın (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • Birçok Grafik API'si güncellendi
    • Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için DrawScope API'leri, kapsamlı dönüşüm yöntemleriyle güncellendi
    • clipPath dokümanları, yuvarlatılmış dikdörtgen yerine yol ifadesini içerecek şekilde güncellendi
    • clipPath'teki sağ parametre için dokümanda sabit aralık
    • DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
    • İçe ekleme yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
    • 4 sınırın tamamına aynı içe ekleme değerini sağlayan içe ekleme aşırı yüklemesi eklendi
    • İç içe ekleme yönteminin 4 tarafın tamamına uygulanacağını belirten dokümanlar kaldırıldı
    • Rect sınıfı için güncellenmiş dokümanlar
    • Rect parametreleriyle ilgili 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ükleme oluşturuldu ve Rect.shift desteği sonlandırıldı
    • (If086a, b/167737376)
  • rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ve textInputServiceFactory sınıflarına @VisibleForTesting ekleyerek bunları dahili API'ye dönüştürün ve kdoc'larını gizleyin (I554eb, b/168308412)
  • Varsayılan seçimi devre dışı bırakmak ve beklenmedik davranışların önüne geçmek için SelectionContainer'ı üst kısımdan kaldırın. Bunun yerine, seçilmesi gereken içeriği sarmalamak için özellikle bir SelectionContainer kullanılabilir. (I8dfe0, b/158459594)

Sürüm 1.0.0-alpha03

16 Eylül 2020

androidx.compose.ui:ui-*:1.0.0-alpha03 yayınlanır. 1.0.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • İleri/geri kaydırma semantik işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
  • onInvalidate(), Owner'ten kaldırıldı. OwnedLayer, geçersizleştirmeyi yönetir. (Ica72b, b/162061312)
  • Size API'sinde, Offset parametrelerini kullanan operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu net değil ve sonuç türü beklenmedik. Ör. beden - ofset, bir ofset mi yoksa farkı içeren bir beden sonucu mu döndürmelidir?

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

Hata Düzeltmeleri

  • Bazen LazyColumn öğelerinin yanlış çizilmesi sorunu düzeltildi. Bu durum bazı durumlarda kilitlenmelere de neden oluyordu. (Ibcf17, b/163066980, b/165921895)
  • DpConstraints ve bu API'yi kullanan API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
  • createAndroidComposeRule ve AndroidInputDispatcher, androidx.ui.test.android kuruluş biriminden androidx.ui.test kuruluş birimine taşındı (Idef08, b/164060572)
  • Yerçekimi kullanımları, düzen API'lerinde tutarlı bir şekilde align veya alignment olarak yeniden adlandırıldı. (I2421a, b/164077038)
  • Mevcut genel yöntemler kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer genel yöntemler eklendi. (Ieae36)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.ui:ui-*:1.0.0-alpha02 yayınlanır. 1.0.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • layoutnode sınırları değiştiğinde sahibi bilgilendirmek için geri çağırma işlevini kaldırın. (If654e, b/166106882)
  • evenOdd veya NonZero yol dolgu kurallarına göre şekillerin kesik kısımlarını desteklemek için vektör grafik yollarında filltype parametreleri için destek eklendi. (I43dd2)
  • Uptime ve Velocity artık satır içi sınıflardır (I48f4a)
  • Süre artık satır içi bir sınıftır (I565eb)
  • layoutnode sınırları değiştiğinde sahibi bilgilendirmek için bir geri çağırma işlevi ekleyin. (Ic40b3)
  • Offset ve radius içeren Rect işlevi yapıcısının Rect'i sol, üst, sağ, alt yerine sol, üst, sağ, alt sırasıyla oluşturduğu sorun düzeltildi.

    Rect'teki desteği sonlandırılmış tamamlayıcı yöntemler, işlev oluşturucular lehine kaldırıldı.

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

Hata Düzeltmeleri

  • Değiştirilebilir bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
  • Matrix4, Matrix ile değiştirildi. vectormath paketinin diğer tüm bölümleri kaldırıldı. (Ibd665, b/160140398)
  • Birleştirilebilir işlevler için çağrı kuralı değişti. Bu, ikili kodda yapılan ve uyumsuzluk yaratan bir değişikliktir. Tüm kitaplıklar, derleyici derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.

    Yalnızca açık bir şekilde etkinleştirilen derleyici API'leri değiştiği için bu değişiklik kaynak düzeyinde önemli bir değişiklik oluşturmaz. (I7afd2, b/158123185)

  • Bir PointerInputFilter'e gönderim yapıldığında PointerInputFilter'in senkronize olarak kaldırılmasına neden olabilecek kilitlenme düzeltildi. (I58f25)

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.ui:ui-*:1.0.0-alpha01 yayınlanır. 1.0.0-alpha01 sürümü bu taahhütleri 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ınlanır. 0.1.0-dev17 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • emitView desteği sonlandırıldı. Oluştur içinde görüntü yayınlamak için mümkünse bunun yerine AndroidView kullanın. Görünümler ve Görünüm Grupları doğrudan oluşturulduğunda, bu işlemler kompozisyon ağacında yaprak olmadığı sürece gelecekte desteklenmeyecektir. Bu işlemler AndroidView kullanılarak yapılabilir. (I29b1e, b/163871221)
  • FocusState2 desteği sonlandırıldı ve FocusState ile değiştirildi (Ia8b79, b/160822876, b/160923332)
  • Desteği sonlandırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
  • Özel yayınlar artık ayarlayıcılarından bir veya daha fazlasının atlanıp yayınlanmadan bağımsız olarak yeniden derlenebileceğini belirtebilir. (Ibbd13)
  • Beste için aynı nesne örneği kullanıldığı için Vektör sınıfları artık veri sınıfı olmayacak şekilde değiştirildi.

    Vektörün içeriği değişirse koşullu olarak yeniden çizmek için VectorPainter için mutableStateOf işareti eklendi.

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

    GroupComponent ve PathComponent'in ad alanlarının değiştirilebilir olması için güncellendi (Ieae45, b/151378808)

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

  • Ofset, satır içi sınıf haline geldi (Iaec70)

  • SelectionContainer'a (I4aada, b/161487952) bir değiştirici parametresi eklendi

  • Desteği sonlandırılan FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) kaldırıldı

  • SemanticsPropertyKey'e mergePolicy lambda eklendi. Bu, mergeAllDescendants semantik birleştirme işlemi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)

  • Constraints artık satır içi bir sınıftır (I88736)

  • Ortak odaklanma mantığını AndroidComposeView'den çıkaran 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ıftır (Iac0bf)

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

  • PlacementScope.placeAbsolute(), PlacementScope.place() olarak yeniden adlandırıldı ve önceki PlacementScope.place(), PlacementScope.placeRelative() olarak yeniden adlandırıldı. Sonuç olarak, PlacementScope.place() yöntemi artık sağdan sola doğru metinlerde konumu otomatik olarak yansıtmayacaktır. Bu isterseniz bunun yerine PlacementScope.placeRelative() 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 olmaktan çıkardık. Gelecekte herkese açık hale getirilecektir. (I32ab1)

  • İşaretçi giriş kodunun yeniden yapılandırılmış organizasyonu. (Ie3f45)

  • Rect için PxBounds desteği sonlandırıldı. PxBounds'un tüm kullanımlarını rect ile güncelledik ve taşıma işlemine yardımcı olmak için uygun desteği sonlandırma/şununla değiştirin ek açıklamaları ekledik. (I37038, b/162627058)

  • Desteği sonlandırılmış KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)

  • KeyEvent, belirtilen anahtar ve meta anahtar durumu kombinasyonu (If3afc) tarafından oluşturulan unicode karakterini almak için kullanılabilecek bir unicode mülküne sahiptir.

  • DelayUp özel etkinliği ve ilgili sınıflar, büyük olasılıkla değiştirileceği için etkinleştirme gerektiren bir API haline getirildi. (I56d6f)

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

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

Hata Düzeltmeleri

  • onFocusChanged geri çağırma işlevleri TextField'den kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
  • Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Kenarlık veri sınıfı, BorderStroke (I4257d, b/158160576) ile değiştirildi
  • Desteği sonlandırılan FrameManager çağrıları kaldırıldı.

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

  • VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Modifier.drawBackground kaldırıldı. Modifier.background (I73b0d, b/163019183) öğesini kullanın.

  • for döngüsü içinde durumu kaydeden bir şey kullanıldığında oluşan kilitlenme düzeltildi. Artık savedInstanceState() içinde aynı anahtara izin veriliyor. UiSavedStateRegistry'nin API'si bu yeni şarta göre ayarlandı (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)

  • state { ... } bileşeni artık kullanımdan kaldırıldı. Bunun yerine, netlik için remember { mutableStateOf(...) }'a açık çağrılar yapılması önerilir. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf mülkü yetkilendirmesi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)

  • RRect, oluşturma adlandırma kalıplarına daha uygun olması için RoundRect olarak yeniden adlandırıldı. RRect'e benzer işlev oluşturucular oluşturuldu ve RRect işlev oluşturucuları için destek sonlandırıldı (I5d325)

Sürüm 0.1.0-dev16

5 Ağustos 2020

androidx.compose.ui:ui-*:0.1.0-dev16 yayınlanır. 0.1.0-dev16 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned işlevini kullanın. (I87f95, b/162109766)
  • setViewContent desteği sonlandırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
  • ViewBinding'e dayalı olarak, düzen kaynaklarını şişirmek ve oluşturmak için AndroidViewBinding API eklendi. (I081c6)
  • KeyEvent2, KeyEvent (I2d770, b/162097585) ile değiştirildi
  • Alt donanım anahtarı (I9036b) desteği eklendi
  • FocusManager desteği sonlandırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester() işlevlerini kullanın. (I74ae4, b/162211322)
  • loadVectorResource, trimPath özelliklerini destekler (I808fe)
  • İletişim kutusunu kullanıcı arayüzüne taşıma (I47fa6)
  • Artık gerekli olmayan 2 PointerEventPasses kaldırıldı. (I33ca7)
  • MotionEvents alma ve Android View'un bir uygulamasıymışsınız gibi Compose ile etkileşim kurma olanağı sağlayan PointerInteropModifier uygulandı. (Ieb08c)
  • Desteği sonlandırılan etiket değiştirici kaldırıldı. Bunun yerine lütfen layoutId değerini kullanın. (Idaa05, b/162023919)
  • Sağdan sola yazma 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)
  • Özel bir düzen değiştiriciyi kolayca oluşturmaya olanak tanıyan Modifier.layout() eklendi (I73b69, b/161355194)
  • Yeni bir AndroidView API eklendi ve mevcut API'lerin desteği sonlandırıldı. (I5bcfd)
  • Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then işlevini kullanın. "Sonra", sıralama konusunda daha güçlü bir sinyal verir. Ayrıca Modifier.padding().background() + anotherModifier yazmayı yasaklar. Bu da zinciri bozar ve metnin okunmasını zorlaştırır (Iedd58, b/161529964)
  • Bir Görünüm hiyerarşisinde Oluştur içeriğini barındırmak için [Abstract]ComposeView görünümü alt sınıfları ekleyin. (I46357)
  • Row ve Column artık satır içi işlev olduğundan bunların kullanılmasıyla ilgili ek maliyet önemli ölçüde azaltıldı. (I75c10)
  • SubcomposeLayout eklendi. Alt ağaç bileşimi için yalnızca daha sonra ölçüm sırasında kullanılabilen bazı değerleri kullanmak isterseniz ölçüm sırasında alt öğeleri derlemeye olanak tanıyan düşük düzey bir ilkeldir. Örneğin, WithConstraints, SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
  • Bir SemanticsNode öğesinin, Oluşturma hiyerarşisinin köküne göre konumunu almak için SemanticsNode.positionInRoot eklendi (Icdf26, b/161336532)
  • MotionEvents, Android'den Compose'a ve tekrar Android'e aktarıldı. (I14be8, b/158034713)
  • dropdownPopup kaldırıldı. (I00430)
  • Kesik ekranlarda pop-up konumu düzeltildi. (Idd7dd)
  • TextLayoutResult almak için erişilebilirlik işlemi ekleme (I9d6e6)
  • RemeasurementModifier eklendi. Bu, düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Yeniden ölçme/yeniden düzenleme otomatik olarak gerçekleştiği için genelde buna hiç ihtiyacınız olmaz ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
  • getLineEllipsisOffset/getLineEllipsisCount işlevini kaldırın. Bunun yerine getLineVisibleEnd/getLineEnd/isLineEllipsized işlevlerini kullanın. (I85aa2)
  • En iyi uygulama nedeniyle bazı işaretler/notlar ekleyin. (I66b20)
  • TextLayoutResult'da daha fazla satır API'si kullanıma sunuldu. (I79bd2)
  • Yerleşik birimleri dönüştürmek için yerleşik vektör dönüştürücülere artık Foo.VectorConverter aracılığıyla erişilebilir. Ör.Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter vb. (I3e273)

Hata Düzeltmeleri

  • Geniş API düzeltmelerini ele alma (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırma
    2. Tutarlı bir API yüzeyi elde etmek için Offset ve IntOffset sınıflarını hizalama
    3. Offset API ile tutarlı olması için IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın
    4. Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı
    5. DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden yapılandırmak ve alanın null olmamasına dikkat etmek için EmptyCanvas sınıfı oluşturuldu
    6. ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı
    7. FilterQuality enum'ları Pascal Case olarak yeniden adlandırıldı
    8. StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı
    9. 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 olarak yeniden adlandırıldı
    12. StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı
    13. DrawCache uygulaması, artık lateinit parametrelerini kullanmamak için güncellendi
    14. DrawScope, fillPaint ve strokePaint dahili parametreleri için artık yavaş yetkilendirme kullanmamak üzere güncellendi
    15. Daha az ek maliyet için Box kullanımını önlemek amacıyla resim derleyici güncellendi
    16. Ana hat 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 bileşimi, birleştirme işlemi zaten bunları ele aldığından eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere güncellendi
    19. İşlev oluşturucuların lehine Rect yardımcı oluşturucu yöntemlerinin desteği sonlandırıldı
    20. Fırça sınıfları ve işlev kurucuları @Immutable ve @Stable API'leriyle güncellendi
    21. VertexMode enum'u PascalCase olarak güncellendi
    22. DrawScope selectPaint yöntemi, boyadaki vuruş parametrelerinin değişmiş olması durumunda koşullu olarak üzerine yazacak şekilde güncellendi
    23. Boyut, yapı bozma API'sini eklemek için güncellendi, BelirtilmemişBoyut yeniden adlandırılarak Belirtilmemiş olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
  • Compose BlendMode API tüketimi, API düzeyine bağlı olarak Android çerçevesi BlendMode'leri ile PorterDuff modları arasında düzgün bir şekilde eşlenecek şekilde güncellendi. BlendMode#isSupported API'si, BlendMode'ın kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için bir özellik sorgusu olarak kullanılmak üzere kullanıma sunuldu. (I0ef42)
  • LazyItemScope, yavaş listelerin itemContent parametresi için eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve öğe sonsuz kısıtlamalarla ölçüldüğü için normal Modifier.fillMaxSize() işlevi çalışmadığında kullanım alanını çözen, üst öğenin maksimum boyutunu doldurmak için değiştiriciler sağlar. (Ibd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture kaldırıldı. Bunun yerine SemanticsNodeInteraction.performGesture kullanın. (Id9b62)
  • LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor olarak yeniden adlandırıldı (I84f84)
  • foundation.shape.corner paketi foundation.share olarak düzleştirildi (I46491, b/161887429)
  • AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
  • TextLayoutResult'e daha fazla API eklendi. (Id7e04)
  • İstenen en basit API'nin keşfedilmesini ve kullanılmasını kolaylaştırmak için FilledTextField malzemesi TextField olarak, temel TextField ise BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676)
  • Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)

Sürüm 0.1.0-dev15

22 Temmuz 2020

androidx.compose.ui:ui-*:0.1.0-dev15 yayınlanır. 0.1.0-dev15 sürümü bu taahhütleri içerir.

Bağımlılıklar Güncellemesi

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

API Değişiklikleri

  • FocusModifier desteği sonlandırılmış, yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver getirilmiştir. FocusState ve FocusDetailedState için desteğin sonlandırılması ve FocusState2'nin kullanıma sunulması (I46919, b/160822875, b/160922136)
  • Odak durumunun değişmesini gözlemlemek için bir değiştirici eklendi. (I05866, b/160924455, b/160923326)
  • Odak değişiklikleri isteğinde bulunmak için bir değiştirici eklendi (I8dd73, b/161182057, b/160924778)
  • Kopyala, kes ve yapıştır işlemlerini doğru şekilde gösterecek şekilde araç çubuğu menüsünü ayarlayın. (Id3955)
  • Tek değerli anlambilim özellikleri 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 yüzen araç çubuğu ekleyin. (Ie8b07)
  • Anahtar girişiyle ilgili API için deneysel bir API ek açıklama eklendi (I53c0a)
  • Focus ile ilgili tüm API'ler için deneysel bir API ek açıklama eklendi (I53b24, b/160903352)
  • FocusDetailedState'in (I0a3ba, b/160822595) yerini alacak FocusState2 eklendi
  • Focus API için @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, bu API'yi kullanacak şekilde güncellendi. (I0d8d0, b/159596546)
  • Uygulayıcı artık kompozisyonları kaldırmak için clear() yöntemini gerektiriyor (Ibe697)
  • KeyEvent desteği sonlandırıldı ve KeyEvent2 ile değiştirildi (I68730)
  • Bulma araçlarını test etmek için yeni bir isteğe bağlı işaret olan useUnmergedTree eklendi. (I2ce48)
  • LayoutNode'u deneysel API yaptı (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
    • TransformOrigin

    • Size.copy yardımcı nesnesi yöntemi, örnek kopyalama yöntemi lehine kullanımdan kaldırıldı (Ife290, b/159905651)

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

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

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

  • Yeniden kullanmak için SelectionHandles'ı yeniden yapılandırın. (I420e0)

  • Tıklanabilir özelliği kaldırıldı. Değiştirici.tıklanabilir (I84bdf) özelliğini kullanın

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

  • Bu değişiklikten önce, derleyici derleyici eklentisi, bir @Composable işlevi içinde yapıcı çağrıları (I5205a, b/158123804) varsa basit bir şekilde durduruyordu.

  • Modifier.tag, Modifier.testTag ile karışıklık olmaması için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)

  • Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi tam sayı konumları artık null değil. Sorgulanan hizalama çizgisi yoksa AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)

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

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

  • Activity veya Fragment'te işleyiş şekline benzer şekilde, önceden oluşturulmuş ViewModel'i oluşturmaya veya almaya olanak tanıyan viewModel() composable'ı ekleyin (I5fdd1)

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

  • Beden bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Size sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanmak amacıyla satır içi sınıfın avantajlarını sağlar. (Ic0191)

  • Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, x ve y ofsetlerini kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanan satır içi sınıfın avantajlarını sağlar. (I3ad98)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Id3434)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a)

  • Test etiketi için destek sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)

  • ParentDataModifier#modifyParentData için varsayılan, işlem yapmayan uygulama kaldırıldı. Bu uygulama, arayüzün hiç uygulanmamasına eşdeğerdi. (I0deaa)

  • Daha önce kullanımdan kaldırılmış olan ScaleFit kaldırıldı. Bunun yerine ContentScale özelliğini kullanın. (Ifbc5b)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I19d02)

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

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

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I57bff)

  • Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için desteği sonlandırılma durumuna alındı. (I4cfdc)

  • CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. DrawScope, Density arayüzünü uygulayacak ve LayoutDirection sağlayacak şekilde güncellendi. ContentDrawScope'taki DrawScope alt sınıfı silindi. Painter ve PainterModifier, DrawScope'un manuel olarak sağlamadığı bir RTL mülkünü artık kendileri sağlamamaları için güncellendi (I1798e)

  • DoubleTapGestureFilter artık ağaçta SingleTapGestureFilter için belirsizliği gideriyor. (If92b1)

  • Alignment API güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)

  • DrawLayer değiştiricileri API'si değiştirildi: outlineShape, shape olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip oldu ve artık null kabul etmiyor; clipToOutline, clip olarak yeniden adlandırıldı; clipToBounds, RectangleShape ile clip == true ile aynı olduğu için kaldırıldı (I7ef11, b/155075735)

  • Bir Canvas'ı gösteren daha yüksek düzeydeki compose API'leri, bunun yerine CanvasScope'u göstermek için güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini yönetmesi gerekmez. Yine de bir tuvale erişmesi gereken tüketiciler, temel tuvalde çizim komutları göndermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)

  • WithConstraints sona ek lambda API'si değiştirildi. Artık iki parametre yerine, constraints ve layoutDirection'e ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702)

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

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

  • Layout ve LayoutModifier2'deki içsel ölçüm işlevleri artık, içsel sorgu API'sine dolaylı olarak yayılan düzen yönünü sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)

  • Düzen ve DüzenDeğiştirici alt öğeleri farklı bir düzen yönü ile ölçülebilir. (Ibd731)

  • Aynı üst düzendeki çocukların çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklendi. DrawLayerModifier'daki elevation mülkü shadowElevation olarak yeniden adlandırıldı ve artık çizim sırasını kontrol etmiyor. DrawShadow parametre sırası değişti: elevation artık ilk sırada, shape ise varsayılan olarak RectangleShape ile ikinci sırada yer alıyor. (I20150, b/152417501)

  • Owner'da onSizeChange ve onPositionChange kaldırıldı. (I5c718)

  • Constraints2 eklendi. Bu, Constraints'ın IntPx yerine yalnızca Int kısıtlama değerlerini destekleyen bir kopyasıdır. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android gibi piksel olduğu varsayılır.

    • IntSize da eklendi. Bu özellik, IntPxSize'in yerini alacak. (I4b43a)
  • Hizalama, rastgele değerlerle oluşturulabilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)

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

  • (I45f09, b/152842521)

    • ScaleFit, ContentScale olarak yeniden adlandırıldı
    • ContentScale, Alignment API ile aynı modülde yer alması için ui-graphics modülünden ui-core modülüne taşındı.
    • FillMaxDimension, Crop olarak yeniden adlandırıldı
    • FillMinDimension, Fit olarak yeniden adlandırıldı
    • Daha iyi eşleşme için İçine Sığdır olarak yeniden adlandırıldı
    • ImageView.ScaleType eşdeğerleri
    • Kırpma ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu, Alignment.Center ile kullanılan Fit'in ImageView.ScaleType.FIT_CENTER ile aynı sonucu, Alignment.Center ile kullanılan Inside'ın ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu sağladığını belirten dokümanlar eklendi
  • Çizim değiştiricileri için rtl desteği. (I0aaf9)

  • Android görünümlerini XML'den şişirmek için API yayınlandı. Daha fazla bilgi için ViewInCompose demosuna bakın. (I42916)

  • DrawModifier API'yi iyileştirin:

    • draw() için alıcı kapsamını ContentDrawScope yaptı
    • draw() işlevindeki tüm parametreler kaldırıldı
    • DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
    • ContentDrawScope'ta drawContent() yöntemi var (Ibaced, b/152919067)
  • LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)

  • DrawLayerModifier ve drawLayer() için clipToBounds ve clipToOutline varsayılan olarak false olarak ayarlandı. (I0eb8b, b/152810850)

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

  • Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi; LayoutModifier desteği sonlandırıldı (If32ac)

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

  • Belirli bir katman için çizim komutlarının görüntüleme listesinin kaydırılmasını desteklemek amacıyla translationX/Y özellikleri eklendi. Bu yöntem, animasyonlara veya dokunma etkinliklerine yanıt olarak içeriği taşımak için kullanışlıdır. (I8641c)

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

  • OnPositioned ve OnChildPositioned kompozisyon işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier ekleyin. (I2ec8f)

  • Düzen için bir RenderNode eklemenize olanak tanıyan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölge ayarlarını yapmanıza olanak tanır. Bu, RepaintBoundary'ın yerini alacak. (I7100d, b/150774014)

  • Düzen yönünün, üst düzen düğümünden alt öğelere iletilmesini sağladık. Düzen yönü değiştirici eklendi. (I3d955)

  • Grup bileşeni, sağdan sola yönlülüğe (Ic9e00) destek verir.

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

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

  • LayoutCoordinates, sağlananAlignmentLines'i bir Harita yerine bir Küme haline getirmek ve LayoutCoordinates'in bir değer almak için get() operatörünü uygulamak üzere değiştirildi. Bu, değiştiricilerin her değiştirici için yeni bir koleksiyon oluşturmadan grubun bir veya daha fazla değerini değiştirmesini kolaylaştırır. (I0245a)

  • LayoutCoordinates artık bir konum özelliğine sahip değildir. LayoutModifiers, döndürme veya ölçeklendirme göz önüne alındığında position mülkü anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'dan diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() yöntemlerini kullanmalıdır.

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

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

  • Durumsuz, açıklayıcı bir çizim API yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyut bilgileri de karşılık gelen içe yerleştirilmiş sınırlara göre kapsamlandırılır. Tüketicinin, çizim işlemlerini yapılandırmak için kendi Paint durum nesnesini koruması gerekmez.

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

  • RectangleShape, androidx.ui.foundation.shape.* klasöründen androidx.ui.graphics.* klasörüne taşındı. (Ia74d5, b/154507984)

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

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

  • Renkleri kutu içine almadan ayarlanmamış bir değeri temsil etmek için ayarlanmamış renk eklendi. (If901a)

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

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

  • Bir ImageAsset'ten piksel bilgilerinin sorgulanması için PixelMap API oluşturuldu. (I69ad6)

  • Compose ile bunların üzerine inşa edildiği Android framework API'leri arasındaki nesne dönüşümleri için adlandırma kuralıyla eşleşecek şekilde toFrameworkRect/toFrameworkRectF olarak adlandırıldı. Ayrıca bu API'lerle ilgili dokümanlar da güncellendi (I86337)

  • Vektör grafikleri için mevcut alt kompozisyon API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector bileşenlerinin desteği sonlandırıldı ve VectorPainter tercih edildi.

    Image(Painter) API'nin adı PaintBox(Painter) olarak değiştirildi. Image bileşeni gibi davranan ancak ImageAsset yerine VectorAsset kullanan bir Vector bileşeni oluşturuldu (I9af9a, b/149030271)

  • Resim verileri ile düzene katılmak ve içerik çizmek için kullanılan yeni Image bileşeni arasındaki farkı daha iyi ayırt etmek amacıyla Image adı ImageAsset olarak değiştirildi. _Body:Geleneksel Android uygulama geliştirmeyi Compose çerçevesiyle birleştirmek için yararlı olan bir ImageAsset örneği oluşturmak amacıyla android.graphics.Bitmap üzerinde Bitmap.asImageAsset() adlı bir uzantı yöntemi oluşturuldu (Id5bbd)

  • TextDirection.Content (I48f36) eklendi

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

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

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

  • Metin Alanı Seçimi için LongPressAndDrag'ı uygular. (I17919)

  • Aradaki tüm ek açıklamaları döndüren AnnotatedString.getStringAnnotations işlevi eklendi. (I1fa00)

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

  • TextField'in imlecinde yanıp sönen animasyon var (Id10a7)

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

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

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

  • Artık onTextInputStarted geri çağırma işlevi tarafından sağlanan SoftwareKeyboardController'ı kullanarak yazılım klavyesini gizlemek/göstermek mümkün (I8dc44, b/151860051)

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

  • FontWeight.lerp artık sabitlenmiyor. Bu sınıf yine de bir veri sınıfıdır. (I521c2)

  • FontWeight kurucusu artık herkese açıktır ve veri sınıfı değildir. (Id6b1f)

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

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

  • ui-geometry modülünde kullanılan yinelenen bir Size sınıfı olduğundan kullanılmayan Size sınıfı kaldırıldı. (I1b602)

  • Yalnızca görünür öğeleri oluşturan ve düzenleyen kaydırılabilir bir liste bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan tüm değişiklikleri tam olarak ele almaması yer alıyor. (Ib351b)

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

Hata Düzeltmeleri

  • Metin alanlarında onFocusChange geri çağırma işlevi, onFocusChanged olarak yeniden adlandırıldı (Ida4a1)
  • VerticalScroller ve HoriziontalScroller desteği sonlandırıldı. Sütun/satır davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u veya kendi öğenizde Modifier.verticalScroll ve Modifier.horizontalScroll'u kullanın. Benzer şekilde, ScrollerPosition için desteğin sonlandırılması ve ScrollState'in kullanılması önerilir (I400ce, b/157225838, b/149460415, b/154105299)
  • runOnIdleCompose, runOnIdle olarak yeniden adlandırıldı (I83607)
  • Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
  • Oluşturma kullanıcı arayüzü artık yeni bir oluşturma işlemi gerektirmeden ViewGroups içinde oluşturulabilir. Örnek için ViewInteropDemo'ya bakın. (I9ab0b, b/160455080)
  • MutableVector'a sortWith ve removeRange eklendi (Icccf7)
  • TextField için seçimi değiştirmek üzere sürükle seçim tutma yerlerini uygulayın. (I27032)
  • NativeShader expect sınıfını sarmalayan Shader satır içi sınıfı kaldırıldı. NativeShader, Shader olarak yeniden adlandırıldı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklemedi ve satır içi bir sınıftı. Bu nedenle, NativeShader sınıfını doğrudan kullanın. (I25e4d)
  • PainterModifier, artık verilen kısıtlamalara ve ContentScale parametresine göre ölçeklendirme sağlamamak için yeniden yapılandırıldı. Painter'ın uygulamalarında, çizim içeriği kendileri tarafından, çizim yaptıkları DrawScope'un verilen boyutuna göre ölçeklendirilir.

    VectorPainter'ın önbelleğe alınan bitmap'inin, çizim için belirtilen boyut yerine varsayılan boyuta ayarlanması sorunu düzeltildi.

    ImagePainter, PainterModifier'ın kendi adına ölçeklendirme yapması yerine içeriğini ölçeklendirecek şekilde güncellendi. (I6ba90)

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

  • @Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) 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 bileşenlerinin desteği de sonlandırıldı. Bunun yerine lütfen androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)

  • Gönderim sırasında alt kompozisyon aracılığıyla PointerInputFilters kaldırılırsa işaretçi girişi dağıtımının kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)

  • PointerInputFilters'in dağıtım sırasında alt kompozisyon aracılığıyla kaldırılması durumunda işaretçi girişi dağıtımının kilitlenmesiyle ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)

  • Radius sınıfı satır içi sınıf olacak şekilde yeniden düzenlendi. Y eksenindeki yarıçapın zorunlu x ekseni yarıçap parametresiyle eşleşmesi için varsayılan parametre içeren işlev kurucusu lehine tamamlayıcı oluşturma yöntemleri kaldırıldı.

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

  • Recompose bileşeni artık yararlı bir soyutlama değildir. Yeniden derleme işlemlerinin çoğu, MutableState atamalarının sonucu olarak gerçekleşir. Bunun dışındaki her şey için mevcut kapsamın yeniden derlenmesini tetiklemek üzere invalidate işlevini kullanmanız önerilir. (Ifc992)

  • Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b)

  • Compose derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce derleyici, çağrıları birleştirilebilir işlevlere dönüştürüyordu. Bu değişiklikle birlikte, artık bir derlenebilir işlevin gövdesini dönüştürüyor ve çağrı yerini (çoğunlukla) değiştirmeden bırakıyoruz.

    Bu, derleme çalışma zamanı ile iletişim kuran mantığın çoğunun çağrı yerinde değil, işlev gövdesinin başında gerçekleştiği anlamına gelir.

    Bu, oluşturma işlevinin tüm kullanımları için kaynak uyumlu bir değişikliktir. Oluşturma özelliğini kullanan çoğu kullanıcının bu değişiklik nedeniyle herhangi bir kod güncellemesi yapması gerekmez.

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

    Oluşturma işlevi artık varsayılan bağımsız değişkenleri de birleştirilebilir bir işleve dönüştürüyor. Bu işlemi, işlevin ek bir sentetik varsayılan aşırı yüklemesi sunmadan yapar. Bu nedenle, bu değişiklik daha az işlevin tanımlanmasına neden olur.

    Bu durumdan kaynaklanan bilinen bilinçli davranış değişiklikleri:

    1. Bazı aramalar, daha önce atlanmadıkları halde atlanır.
    2. Varsayılan bağımsız değişken ifadelerindeki birleştirilebilir ifadeler artık doğru şekilde abone oluyor ve işleniyor

    Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği aracılığıyla diğer birleştirilebilir işlevlere iletilir. Bu, çalışma zamanında daha az karşılaştırma yapılmasına, yuva tablosu boyutunun küçültülmesine ve daha önce atlanmayan birleştirilebilir işlevlerin daha fazla atlanmasına yol açar2. Derleme zamanında "statik" olarak belirlenen parametreler artık çalışma zamanında karşılaştırılmaz veya depolanmaz. Bu, karşılaştırma sayısını ve slot tablosu boyutunu azaltır. 3. Oluşturulan grup sayısını en aza indirmek için işlev gövdesinin kontrol akışı yapısı kullanılır. Bu, slot tablosu boyutunu azaltır ve çalışma zamanında daha az çalışma yapılmasına neden olur4. İşlevlere yönelik kullanılmayan dağıtım ve alıcı parametreleri, işlevin gövdesinde kullanılmadıkları takdirde işlevin atlanabilirliğini belirlemeye dahil edilmez.

    Çoğu önemli değişiklik, derleyicinin doğrudan hedeflediği API'ler içindi ve compose'in normal kullanımı bundan etkilenmeyecektir: 1. Composer::startExpr kaldırıldı. Composer::endExpr kaldırıldı. Composer::call işlevinin desteği sonlandırıldı. key işlevinin varargs olmayan aşırı yüklemeleri kaldırıldı. Bundan sonra vararg sürümünü kullanın. 5. Pivot ek açıklaması kullanımdan kaldırıldı. Bunun yerine key kullanın. 6. ScopeUpdateScope::updateScope, Function1 yerine Function3 bekleyecek şekilde değiştirildi 7. restartableFunction ve restartableFunctionN, ek derleme zamanı parametreleri içerecek şekilde güncellendi (I60756, b/143464846)

  • Desteği sonlandırılan LayoutAlign değiştiricileri kaldırıldı. (I10877)

  • RepaintBoundary, DrawLayerModifier (I00aa4) için kaldırıldı

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

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

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

  • Varsayılan TextDirection davranışı, LayoutDirection tarafından belirlenecek şekilde değiştirildi. Yani LayoutDirection RTL ise varsayılan TextDirection de RTL olur. Önceki adı: TextDirection.ContentOrLtr/Rtl (I4e803)

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

  • Sık kullanılan parametreleri Text() işlevine ekler. Şu anda bu parametrelerden az sayıdasını iletmek için yerel bir metin stili oluşturuyorsanız (ör. Text(style = TextStyle(textAlign = TextAlign.Center))) artık parametreleri doğrudan sağlayabilirsiniz: Text(textAlign = TextAlign.Center) (I82768)

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