Oluşturma kullanıcı arayüzü

Düzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken yazma kullanıcı arayüzünün temel bileşenleri.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
26 Haziran 2024 1.6.8 - 1.7.0-beta04 -

Yapı

Oluşturma, androidx içindeki 7 Maven grubu kimliğinin kombinasyonudur. Her Grup, her biri kendi sürüm notu kümesine sahip olan hedeflenen bir işlev alt kümesi içerir.

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

GruplandırAçıklama
compose.animationJetpack Compose uygulamalarında animasyonlar oluşturarak kullanıcı deneyimini zenginleştirin.
compose.derleyici@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin.
compose.temelKullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin.
compose.materialKullanıma hazır Materyal Tasarım Bileşenleri ile Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, Compose'un www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış üst düzey giriş noktasıdır.
compose.material3Materyal Tasarım'ın yeni evrimi olan Materyal Tasarım 3 Bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenmiş tema ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özellikleri içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak.
compose.runtimeCompose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler eklentisinin hedefleyeceği temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken yazma kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları bildirme

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

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

Modern

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa 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 ekleyebilirsiniz.

Yeni sayı oluştur

Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.

Sürüm 1.7

Sürüm 1.7.0-beta04

26 Haziran 2024

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

Hata Düzeltmeleri

  • Çok büyük metin satırlarını (ör. 10 bin karakter) ölçerken kilitlenmeleri önleme (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 için düzeltme uygulandı. (70b13e)
  • Oluşturma sorunlarına neden olduğu için katman nesneleri optimizasyonunun yeniden kullanılması geri alındı. (70b13e)

Sürüm 1.7.0-beta03

12 Haziran 2024

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

Sürüm 1.7.0-beta02

29 Mayıs 2024

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

API Değişiklikleri

  • SemanticsProperties.Editable, IsEditable olarak yeniden adlandırıldı ve SemanticsPropertyReceiver.editable, isEditable değeri olarak değiştirildi. Özellik artık boole değeridir ve her zaman metin alanlarıyla belirtilmektedir. (I8acd8)
  • Erişilebilirlik karşılaştırma parametresini yeniden adlandırın. (I3d440)
  • Bağlantıların stil özelliklerini ayarlamaya yönelik güncellenmiş API: TextLinkStyles artık LinkAnnotation oluşturucunun ve AnnotatedString.fromHtml yönteminin (I90b2b) bir parçası. TextDefaults, malzemeden de kaldırıldı (I5477b)

Hata Düzeltmeleri

  • LayoutCoordinates.introducesFrameOfReference, amacını daha iyi yansıtacak şekilde LayoutCoordinates.introducesMotionFrameOfReference olarak yeniden adlandırıldı. İlgili işlev, koordinatları bu bayrağa göre hesaplayacak şekilde yeniden adlandırıldı. (I3a330)

Sürüm 1.7.0-beta01

14 Mayıs 2024

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

API Değişiklikleri

  • performCustomAccessibilityActionLabelled adlı dosya performCustomAccessibilityActionWithLabel ve performCustomAccessibilityActionWhere adlı dosya performCustomAccessibilityActionWithLabelMatching olarak yeniden adlandırıldı. (I5387f)
  • AnnotatedString.hasEqualsAnnotations artık hasEqualAnnotations (I685c0)
  • Metinde Materyal temalı bağlantılar almaya yönelik API güncellendi. Özellikle, temalı LinkAnnotations oluşturma ve temalı bağlantılara sahip HTML ayrıştırma yöntemleri TextDefaults öğesinden kaldırıldı. Bunun yerine, bağlantıları metin composable'a parametre olarak biçimlendirmeye olanak tanıyan bir TextLinkStyles sınıfı eklendi. (I31b93)

Hata Düzeltmeleri

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

Sürüm 1.7.0-alpha08

1 Mayıs 2024

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

API Değişiklikleri

  • Değişebilir şekil uygulamaları için destek ekler. Shape#createOutline artık grafik katmanlarının içinde gözlemleniyor. Bu nedenle, içindeki durum değerlerinin okunması, durum değiştiğinde geçersiz kılmalara neden olarak daha performanslı şekil animasyonlarına olanak tanıyacaktır. (Id1629, b/326070216)
  • isPositionedByParentWithDirectManipulation adlı dosya introducesFrameOfReference olarak yeniden adlandırıldı. Artık ters etkiye sahip olduğunu, yani varsayılan olarak çoğu LayoutCoordinates özelliğinin bir referans çerçevesi içerdiğini ve yalnızca doğrudan manipülasyon altında bu mülkün yanlış olacağını unutmayın. Konumu yalnızca bir referans çerçevesi sunanlarla sorgulamak için positionInLocalFrameOfReference(...) işlevini kullanın. Alternatif olarak, LookaheadScope üzerinden positionInLocalLookaheadFrameOfReference. (Ifc5f7)
  • LookaheadScope API kararlı hale getirildi (I21507)
  • API konseyi geri bildirimine göre getScrollViewportLength işlem lambda'sını değiştirin. (Ibc74a)
  • GraphicsLayer anahat API'leri, int yerine kayan noktalı parametreleri kullanacak şekilde güncellendi. Kayan noktalı ayar ve Boyut satır içi sınıflarında halihazırda mevcut olan belirtilmeyen sabit değerler yerine UnsetOffset/UnsetSize IntSize sentinel değeri kaldırıldı (I2fb03, b/333863462)
  • Testler sırasında fare girişi eklenirken MouseInjectionScope.click(), MouseInjectionScope.doubleClick(), MouseInjectionScope.tripleClick(), MouseInjectionScope.longClick(), evrensel olarak daha uygulanabilir hale getirmek için artık button: MouseButton parametresini kabul ediyor. Tüm yöntemler için varsayılan değer MouseButton.Primary şeklindedir. (I31a23, b/190493367, b/261439695)
  • LinkInteractionListener içindeki onClicked öğesi onClick olarak yeniden adlandırıldı. (Iaa35c)
  • TextInclusionStrategy.isInside listesinin adını isIncluded olarak değiştir. Paragraph/MultiParagraph#getRangeForRect() dönüş türünü boş değer olamaz. (I51f26)

Hata Düzeltmeleri

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

Harici Katkı

  • İç içe yerleştirilmiş LazyLists öğelerindeki öğeleri önceden getirmek için destek eklendi (ör. iç içe yerleştirilmiş LazyRows öğesini oluşturan bir LazyColumn). Bu değişikliğin, bu LazyLists için kaydırma sırasında kare düşüşlerini azaltması bekleniyor. Uygulama varsayılanı, iç içe yerleştirilmiş ilk 2 öğeyi önceden getirmektir 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ınlandı. Sürüm 1.7.0-alpha07 bu kaydetmeleri içerir.

API Değişiklikleri

  • ClickableText desteği sonlandırıldı olarak işaretlendi. Metne bağlantılar eklemek için bağlantınıza karşılık gelen LinkAnnotation ile bir AnnotatedString oluşturun ve bu AnnotatedString öğesini composable metin bölümüne iletin. (I34d4b, b/323346994)
  • El yazısı hareketleri için ViewConfiguration.HandwritingGestureLineMargin özelliğini tanıtın. BasicTextField için JoinOrSplit hareketini destekle (Ie6e13, b/325660505)
  • FocusProperties.enter ve FocusProperties.exit artık deneme aşamasında değil. FocusDirection.Enter ve FocusDirection.Exit artık deneme aşamasında değil. FocusRequester.Cancel artık deneysel değil (I461a1, b/261564106)
  • Artık Düzen koordinatlarını sorgularken, alt öğelerini Placeable.PlacementScope.withDirectManipulationPlacement kullanarak yerleştiren üst Layouts tarafından ayarlanan ofseti hariç tutmak için 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 kullanarak yerleştirebilir (örneğin, Kaydırma, varsayılan olarak uygulanır). Bu, approachLayout tabanlı animasyonların daha sezgisel olmasına yardımcı olur. Artık hangi ofseti animasyonlayacağını ve yaklaşım animasyonunu uygulamaya karar verirken doğrudan neyin uygulanacağını ayırt etme fırsatına sahip olur. (I60ec7)
  • Uzun ekran görüntüleri için özellik bayrağı kaldırıldı. (I28648, b/329128246)
  • LazyColumn artık uzun ekran görüntülerinde yapışkan başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)
  • NestedScroll kaynakların Sürükleme ve Kaydırma işlevi, artık animasyonlar (Yan Efekt) ile Fare Tekerleği ve Klavyeyi (UserInput) de içeren bu kaynakların genişletilmiş tanımına uymak için UserInput ve SideEffect tarafından değiştiriliyor. (I40579)
  • ApproachLayoutModifierNode ve Modifier.approachLayout stabildir. Eski isMeasurementApproachComplete() ve isPlacementApproachComplete() yerine yeni isMeasurementApproachInProgress() ve isPlacementApproachInProgress() kullanılmaya başlanır.
  • Desteği sonlandırılan intermediateLayout değiştirici kaldırıldı. (I3e91c)
  • RenderNode ve Picture gibi Displaylist destekli API'lerin start/endRecording yöntemlerini yansıtmak için GraphicsLayer#buildLayer öğesini yeniden adlandırın.
  • rememberGraphicsLayer, rememberObserver özelliklerinden yararlanacak şekilde güncellendi. (I312c1, b/288494724, b/330758155)
  • UrlAnnotation desteği sonlandırıldı. Bunun yerine LinkAnnotation.Url kullanın. Materyal teması kullanıyorsanız ek açıklamayı Materyal temasıyla (I8d180, b/323346545) oluşturmak için TextDefaults nesnesini kullanın
  • Metin bağlantılarına, normal stile ek olarak basılı durum stil seçeneği eklendi, imleçle üzerine gelindi ve odaklanıldı (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 işleyicisi eklendi. HTML etiketli dize <a> etiketleriyle ayrıştırılırken bu yöntem, bu tür her etiket için bir LinkAnnotation.Url oluşturur ve her ek açıklamaya stil nesneleri ile bağlantı etkileşimi işleyicisini iletir. (I7c977)
  • LinkAnnotation artık durum tabanlı stil bağımsız değişkenlerini ve LinkInteractionListener alıyor. Köprü almak için bu ek açıklamayı AnnotatedString öğesine ekleyin. focusedState ve/veya hoveredState öğesini ileterek, odaklanılan ve/veya fareyle üzerine gelinen bağlantılar için görsel configuration tanımlayabilirsiniz. (I81ce4, b/139312671)
  • ImeOptions.hintLocales artık boş değerli değil. Boş bir Yerel Ayar listesini iletmek istiyorsanız lütfen LocaleList.Empty kullanın. (Ic5bc4)

Hata Düzeltmeleri

  • Kötü/bozuk geçmiş giriş etkinliği verilerini düzgün bir şekilde işler (bozuk ofset verilerini yoksayar).
  • Etkin bir işaretçi giriş etkinliği akışı sırasında başka bir işaretçi giriş değiştiricisinin önüne dinamik olarak bir işaretçi giriş değiştiricisi eklendiğinde (örneğin, fareyle üzerine gelme girişi ve fareyle üzerine gelme çıkışı [fare/ekran kalemi] arasında) beklenmedik işaretçi olayları düzeltilir.

Sürüm 1.7.0-alpha06

3 Nisan 2024

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

Yeni Özellikler

  • Stil özellikleri ayarlanmış dizeler için parseAsHtml yöntemi eklendi: HTML etiketleriyle işaretlenen bir dizenin AnnotatedString biçimine dönüştürülmesine olanak tanır. Tüm etiketlerin desteklenmediğini, örneğin henüz madde işaretli listeleri görüntüleyemeyeceğinizi unutmayın. (I84d3d, I30626, b/139326648)
  • Resmi Android API'sini (ScrollCaptureCallback) kullanarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumları doğru şekilde işlemeyebilir. Bu nedenle, özellik şu anda varsayılan olarak devre dışıdır. Etkinleştirmek için ComposeFeatureFlag_LongScreenshotsEnabled işaretini doğru değerine ayarlayın. (I2b055, b/329296471)

API Değişiklikleri

  • fun ClipEntry.getMetadata(), val ClipEntry.clipMetadata olarak değiştirildi. (I50155)
  • ClipboardManager.getClipMetadata ve ClipboardManager.hasClip işlevleri kaldırıldı. Geçerli klip girişinin meta verilerini okumak için lütfen clipEntry.getMetadata() kullanın. Panoda mevcut bir klibin olup olmadığını anlamak için ayrıca ClipboardManager.getClip işlevinin boş olup olmadığını kontrol edin. (I50498)
  • Artık placeable.placeWithLayer() işlevlerine (I1b22f) GraphicsLayer nesne aktarabilirsiniz
  • ClipboardManager.setClip, Pano'yu temizleyebilmek için artık null değerini kabul ediyor. (I7d2e9)
  • Derleme araçlarında uygulama ayrıntıları olarak kullanılan Görünümlerin gizlenmesine yardımcı olacak kaynak kimlikleri eklendi (I99531)
  • Bir bit eşlemin içeriğinin GraphicsLayer öğesine oluşturulmasını desteklemek için GraphicsLayer#toImageBitmap askıya alma yöntemi eklendi. Bu, API düzeyi 22 ve sonraki sürümlerin (dahil) donanım hızlandırmalı oluşturma işlemidir ve tüm Android cihazların% 99'undan fazlasını destekler. Android API düzeyi 21'de bu işlem yazılım oluşturmaya geri döner. (I9e114)
  • Android RectF cihazını ComposeRect biçimine dönüştürmek için yardımcı yöntem (I39925, b/325660505)
  • Artık tüm KeyboardOptions parametreleri varsayılan olarak belirtilmemiş bir değere sahip. KeyboardOptions.merge yöntemi eklendi.
  • KeyboardOptions.autoCorrect, autoCorrectEnabled olarak yeniden adlandırıldı ve boş değerli hale getirildi. Buradaki null, herhangi bir değer belirtilmediğini gösterir. (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ınlandı. Sürüm 1.7.0-alpha05 bu kaydetmeleri içerir.

Yeni Özellikler

  • Görüntüleme listesindeki çizim komutlarını kaydetmek ve görüntüleme listesinin oluşturulmasını etkileyen ek özellikleri kaydetmek için yeni GraphicsLayer API'yi kullanıma sunun. Bu, karmaşık bir sahneyi, sahnenin tamamını yeniden oluşturmaya gerek kalmadan tek tek güncellenebilecek daha küçük parçalara ayırmak için bir yalıtım sınırı sağlar. GraphicsLayer üzerinde yapılan dönüşümler, ekran listesi yeniden kaydedilmeden yapılabilir. Modifier.graphicsLayer'nin aksine GraphicsLayer, Bestelenebilir içeriğin başka yerlerde oluşturulmasına olanak tanır ve içeriğin farklı sahnelerde oluşturulmasının beklendiği animasyonlu kullanım durumlarında kullanışlıdır.

API Değişiklikleri

  • GraphicsLayer.draw(Canvas) artık herkese açık bir API değil. Katmanı çizmek için lütfen bunun yerine DrawScope.drawLayer(GraphicsLayer) uzantısı işlevini kullanın. (I7a7c0)
  • restrictedConstraints() öğesini iki yönteme bölün: fitPrioritizingWidth() ve fitPrioritizingHeight() (I6d7fd)
  • Android L kullanımı için HardwareCanvas saplaması sunuldu (I1c3b5, b/288494724)
  • Oluşturma çerçevesini güncelleyerek Sahip, DelegateableNode ve drawWithCache Düzenleyici uygulamalarını güncellemenin yanı sıra, Kapsamlı erişim için, Değiştiriciler yıkıldığında GraphicsLayer örneklerini otomatik olarak temizleyecek GraphicsContext öğesine erişimi açığa çıkarmak için bir GraphicsContext bestesini yerel olarak kullanıma sunun. (I64a2f, b/288494724)
  • Düşük düzey IME ile ilgili testleri ve diğer düşük düzey IME kullanım alanlarını yazmaya yardımcı olması için InterceptPlatformTextInput kullanıma sunuldu. PlatformTextInputTestOverride desteği sonlandırıldı. (I862ed, b/322680547)
  • GraphicsLayer.setOutline(Outline) uzantı işlevi eklendi. (Ib81f4)
  • GraphicsLayer örnekleri oluşturmak üzere fabrika oluşturmak için GraphicsContext işlevi oluşturucusunu tanıtın (Ib98d6, b/288494724)
  • Başka bir yere çizmek ve nihai sonuca farklı görsel efektler uygulamak için kullanılabilecek çizim komutlarını yakalama konusunda geliştirici tarafından tanımlanan esneklik sağlamak için kullanıma sunuldu GraphicsLayer API. (I80245, b/288494724)
  • Belirli bir dikdörtgen alanın kapsadığı metin aralığını döndüren Paragraph#getRangeForRect işlevini kullanın. (Iee516, b/325660505)
  • BasicText öğesinin onLinkClicked bağımsız değişkeniyle deneysel geçersiz kılması kaldırıldı. Gelecekte köprüler desteğinin yerini alacak bir API kullanıma sunulacaktır. (I107d5)

Hata Düzeltmeleri

  • İsteğe bağlı birleştirme görsel efektleri ve dönüşümleriyle çizim komutlarının yakalanıp tekrar oynatılmasını desteklemek için GraphicsLayer beklenen/gerçek API tanımı eklendi. GraphicsLayer örneği oluşturma ve yönetme de dahil olmak üzere grafik bağımlılıklarını içeren GraphicsContext arayüzünü tanıtın. (I4a8d6, b/288494724)
  • Odak, diğer görünümlerin arasına yerleştirilmiş bir ComposeView içinde takılıp kalacağı 1D odaklı 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 uygulamasına taşındı. Katkı için Jake Wharton'a teşekkür ediyoruz. (I6c41b, b/328263448)
  • Önyargıya dayalı tüm hizalama alt türlerinde ağırlık kayma özelliklerini tutarlı bir şekilde gösterin. (I69f0f, b/328088992)

Sürüm 1.7.0-alpha04

6 Mart 2024

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

API Değişiklikleri

  • Android U sürümünden sonraki cihazlarda BasicTextField2 için ekran kalemi el yazısı özelliği desteklenir. (I002e4)
  • Oluşturma sırasında kaydırılan bileşenler hakkındaki bilgileri a11y sistemine aktarabilmemiz için GetScrollViewportLength anlamsal işlemini bu CL'de ekliyoruz. Bu CL, söz konusu özelliğin Temel Kaydırılabilir Listelerde kullanımını da uygular. (Ic5fa2)
  • FocusRequester.createRefs artık kararlı durumda (I4d92c, b/261436820)
  • Değiştirici düğümlerin yerel bir besteyi okumadan mevcut Android View bilgisini almasını sağlamak için DelegatableNode.requireView() kullanıma sunuldu. (I40768)
  • Yolun yönünü tersine çevirmek için yeni API Path.reverse() (I36348)
  • TextFields uygulamasına, tercih edilen dili önceden ayarlamak için IME'lere belirli yerel ayarlarla ipucu verme olanağı sağlamak amacıyla hintLocales özelliği KeyboardOptions ürününe eklendi.
  • Locale öğesinden, temel platform nesnesini (ör. java.util.Locale) döndüren platformLocale özelliğini gösterin. (I921c6)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.ui:ui-*:1.7.0-alpha03 yayınlandı. 1.7.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Karşınızda ContextualFlowRow ve MaxLines ve Overflow içeren Geliştirilmiş FlowRow/Column. ContextualFlowRow ve ContextualFlowColumn özelliklerinin yanı sıra deneysel FlowRow ve FlowColumn uygulamalarında artık maxLines ve taşma desteği de bulunan geliştirmeleri duyurmaktan mutluluk duyuyoruz. Bu güncelleme, en uygun performans bileşenlerini sağlamak üzere tasarlanmıştır. ContextualFlow*; küçük bir maxLines yapılandırması ve dinamik +N "Daha fazla göster" düğmesi kullanan çok sayıda öğe için mükemmeldir. FlowRow ve FlowColumn ise 100'den az öğe içeren az sayıda öğe için mükemmeldir. Önemli: Çapraz eksende maksimum değere sahip olup olmadıklarına bakılmaksızın tüm öğelerin oluşturulduğu FlowRow veya FlowColumn ürününde mevcut davranışı korumak için başlatma sırasında overflow değerini FlowRowOverflow.Visible veya FlowColumnOverflow.Visible olarak ayarlayın. Bu yeni özelliklerin kullanım örnekleri için ContextualFlowRowSample ve FlowRowSample keşfedin. (Ib9135, b/293577082)
  • İzin verilen maksimum karakter sayısını filtreleyen metin alanlarında ayarlanması gereken maxTextLength anlamsal özelliği ekleyin. (I24d9f, b/170648072)
  • Modifier.inspectable sarmalayıcı kullanımdan kaldırıldı. Bu API, düzenleyicinizde gereğinden fazla geçersiz kılmaya yol açacağı için bu API'nin kullanılması artık önerilmez. Değiştirici özellikleri aletlerle kullanmak isteyen geliştiricilerin ModifierNodeElement üzerinde inspectableProperties() yöntemini uygulamaları önerilir. (Ib3236)
  • WindowManager.LayoutParams işaretleri üzerinde tam kontrol sağlayan yeni PopupProperties oluşturucu. (Ibb33e, b/312485503)
  • onPlaced öğesini geçersiz kılmanıza ve koordinatları bir mülkte saklamanıza gerek kalmadan Modifier.Node ürününün mevcut LayoutCoordinates değerini almanın bir yolu olarak DelegatableNode.requireLayoutCoordinates() kullanıma sunuldu. (Ia8657)
  • onPlaced öğesini geçersiz kılmanıza ve koordinatları bir mülkte saklamanıza gerek kalmadan Modifier.Node ürününün mevcut LayoutCoordinates değerini almanın bir yolu olarak DelegatableNode.currentLayoutCoordinates kullanıma sunuldu. (Iaebaa)
  • androidx.compose.foundation.text2 paketi altındaki BasicTextField2 ve ilgili API'ler androidx.compose.foundation.text hedefine taşındı. (I9f635)
  • Açık bir Değiştirici Düğüm'de özel yaklaşım mantığı oluşturmayı desteklemek için yeni bir ApproachLayoutModifierNode API'si eklendi. Ayrıca, örnek oluşturma sırasında hedefi bilinmeyen animasyonlar için yeni deneysel DeferredTargetAnimation API'si de eklendi. (I60745)
  • Bir Yolun yönünü sorgulamak ve Path'den konturları ayıklamak için kullanılan yeni Path API'leri. (I63d04)
  • Path öğesinin belirli bir nokta içerip içermediğini kontrol etmek için PathHitTest ve Path.contains(Offset) eklendi. (I3b218)
  • TextLayoutResult, artık getLineBaseline(lineIndex) yöntemini sunuyor. Bu şekilde, firstBaseline ve lastBaseline olan mevcut uygunluk özelliklerine ek olarak metnin rastgele bir satırının referans değerinin okunması sağlanır. (Ide4e8, b/237428541)
  • Yalnızca iki AnnotatedStrings ek açıklamasını karşılaştırma yöntemi eklendi. (I32659)

Hata Düzeltmeleri

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

Sürüm 1.7.0-alpha02

7 Şubat 2024

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • Sekme dışı ve radyo düğmesi olmayan öğelerin seçildiğinde tıklanabilir olmasına izin veren a11y hatası düzeltildi. (I2181c)
  • VelocityTracker artık varsayılan olarak puan ekleme düzeltmesine sahip olacak. Sorun olması durumunda VelocityTrackerAddPointsFix "false" değerine ayarlanarak düzeltmeyi devre dışı bırakabilirsiniz. (Ib3877, b/269487059)
  • TextStyle ve ParagraphStyle için geriye dönük ikili uyumsuzluk düzeltildi. (I179f0, b/320819734)

Harici Katkı

  • Platforma özel parametreleri olmayan yeni bir DialogProperties oluşturucu eklendi. (I45829)
  • Platforma özel parametreleri olmayan yeni bir PopupProperties oluşturucu eklendi. (I9a038)

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.ui:ui-*:1.7.0-alpha01 yayınlandı. 1.7.0-alpha01 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

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

Sürüm 1.6

Sürüm 1.6.8

12 Haziran 2024

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

Hata Düzeltmeleri

  • Yazı tipi ölçeği tanımlanan en alt tablodan küçük olduğunda yazı tipi ölçeklendirmesindeki tutarsızlıklar düzeltildi. Bu örnekte, şimdi doğrusal 1x ölçeği ile tanımlı en düşük tablo arasında arapolasyon yapıyoruz. Böylece, ölçekler büyüdükçe yazı tipi boyutu monoton olarak artar. (Icbae3)

Sürüm 1.6.7

1 Mayıs 2024

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

Sürüm 1.6.6

17 Nisan 2024

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

Hata Düzeltmeleri

  • Nadir görülen BasicTextField kilitlenmelerini düzeltir.

Sürüm 1.6.5

3 Nisan 2024

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

Sürüm 1.6.4

20 Mart 2024

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

Sürüm 1.6.3

6 Mart 2024

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

Sürüm 1.6.2

21 Şubat 2024

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

Sürüm 1.6.1

7 Şubat 2024 androidx.compose.ui:ui-*:1.6.1 kullanıma sunuldu. Sürüm 1.6.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.6.0

24 Ocak 2024

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

Sürüm 1.6.0-rc01

10 Ocak 2024

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

Hata Düzeltmeleri

  • Ek yeniden besteleri en aza indirerek performansı artırmak üzere vektör grafiği uygulaması optimize edildi.

Sürüm 1.6.0-beta03

13 Aralık 2023

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

Yeni Özellikler

  • Artık LayoutCoordinates düğümünün çıkarılması mümkündür. Oluşturma Düzen Denetleyicisi'nde (If693) buna karşı koruma sağlayın

Hata Düzeltmeleri

  • PlatformImeOptions artık arayüz yerine somut bir sınıf. (If40a4)
  • Bir kök her yeniden oluşturulduğunda LocalSoftwareKeyboardController ve LocalTextInputService için yeni değerler verilmesinden kaynaklanan ekstra aşağı akış yeniden besteleri düzeltildi. (I42190, b/310510985)

Sürüm 1.6.0-beta02

29 Kasım 2023

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

Sürüm 1.6.0-beta01

15 Kasım 2023

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

API Değişiklikleri

  • DragAndDropTarget değiştiricisi artık alıcı DragAndDropTarget öğesini açıkça alıyor ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda içeriyor. Şu anda bir DragAndDropModifierNode için iki fabrika işlevi vardır. Biri aktarımları, diğeri veri aktarmak için kullanılır (I69481)
  • maximumFlingVelocity, kayan noktalı olarak temsil edilecek şekilde güncellendi. Dokümanlar, maximumFlingVelocity birliği hakkında daha net olacak şekilde güncellendi. (I8adc7)
  • DragAndDropModifierNode fabrikasındaki onDragAndDropStart, acceptDragAndDropTransfer olarak yeniden adlandırıldı.acceptsDragAndDropTransfer, sürükle ve bırak oturumundan kabul edilmesi için dragAndDropTarget Değiştirici'ye eklendi. Sürükle ve bırak oturumuyla ilgileniyorsanız bu lambda uygun bir DragAndDropTarget döndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'lar bununla değiştirilmiştir. Sürükleyip bırakma oturumlarından almak için DragAndDropTarget fabrika işlevi eklenmiştir (Iebf3a)
  • DragAndDropModifierNode.drag türü olarak DragAndDropInfo kaldırıldı. Artık transferData, dekorasyon boyutu ve sürükleme dekorasyonu DrawScope lambda için parametreler alınıyor.

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

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

    DragAndDropEventType kaldırıldı (I645b1)

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

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

  • OriginalText öğesini TextSubstitution ile değiştirin. (Ifa5a8)

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

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

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

  • Material SwipeToReveal API'leri (kartlar ve çipler için) artık bu alanları oluşturmak için veri sınıfı tabanlı örnekler yerine alan tabanlı bir API'den (Compose tarafından önerildiği gibi) yararlanıyor. Bu, zarar veren bir değişikliktir. Yeni API'nin nasıl kullanılacağına dair örnekler için lütfen demoyu ve örnek kodu inceleyin. (Ia8943)

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

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

Hata Düzeltmeleri

  • Metin düzenleyici odaklanmamışsa SoftwareKeyboardController.show() 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 için donanım tuşu oluşturma etkinlikleri artık yoksayılacak. (Ib37b4, b/305518328)
  • ArcLine sürümünde Süpürme Gradyan için oluşturucu desteği ekleyin. (I4d5bb)
  • PageSize.Fixed için eşittir ve karma kodu uygulayın. (Ie3ede, b/300134276)
  • Pencere Inset değişikliğiyle ikili program uyumluluk sorununu düzeltme (Iee695)
  • Mikro karşılaştırmalar olmadan daha iyi performans gösterdiği için Material3 Çipi/Düğmesi için temel malzeme katmanını kaldırın. (I55555)
  • Oluşturma testlerine effectContext olarak iletilen TestDispatcher'ler artık test ve kare saatleri 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ınlandı. 1.6.0-alpha08 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.6.0-alpha07

4 Ekim 2023

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

API Değişiklikleri

  • Özel metin düzenleyiciler için yazma testleri ile ilgili PlatformTextInputMethodTestOverride kullanıma sunuldu. (Id159b)
  • Sürükleyip bırakma oturumlarını başlatmak için dragAndDropSource Değiştirici, sürükle ve bırak oturumlarından veri almak için de dragAndDropTarget Değiştirici ekler. (Ib7828, b/286038936)
  • Tahsislerden kaçınan ColorList ve ColorSet koleksiyonları eklendi. (I744bd)
  • Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için DisableNonLinearFontScalingInCompose geçici işareti eklendi. Temizlemek için zamana ihtiyacınız varsa testlerinizde DisableNonLinearFontScalingInCompose = true özelliğini ayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacak. (Ic9486)

Hata Düzeltmeleri

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

Sürüm 1.6.0-alpha06

20 Eylül 2023

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

API Değişiklikleri

  • Materyal simgelerinde ek optimizasyonlar. (I3e08d)
  • Benzer düğümleri bulmak için değiştirici ağacı yukarı/aşağı hareket ettirme özelliği ekler. (I2d234)
  • focusRestorer() değiştiricisine (Ie1d43) onRestoreFailed() geri çağırması eklendi
  • Çeşitli grafik API'larına ColorInt, FloatRange, IntRange, Size ve daha fazlasını belirtmek için androidx ek açıklamaları eklendi. (Id65c8, b/290950582)
  • PreviewScreenSizes tanımına showSystemUi=true ekleyin (Ib61d3)

Davranış Değişiklikleri

  • Compose, artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirme özelliğini kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'ün üzerinde olduğunda, küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinler yalnızca küçük bir kısmı büyütülür. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğin istenen yükseklikle orantılı kalması için otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirme ile İlgili En İyi Uygulamalar'a bakın. (I11518)

Sürüm 1.6.0-alpha05

6 Eylül 2023

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

API Değişiklikleri

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

Sürüm 1.6.0-alpha04

23 Ağustos 2023

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

API Değişiklikleri

  • ReusableComposition devre dışı bırakılması için gözlemleri kaldıran ancak düğümleri yerinde tutan bir yöntem eklendi. Devre dışı bırakılan beste, setContent çağrısı yapılarak tekrar etkinleştirilebilir. (Ib7f31)
  • Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)
  • Modifier.focusGroup, kararlı API'lere yükseltildi. (I7ffa3)
  • Çeşitli grafik API'larına ColorInt, FloatRange, IntRange, Size ve daha fazlasını belirtmek için androidx ek açıklamaları eklendi. (I70487, b/290950582)
  • ColorFilter API, parametrelerin daha iyi denetlenebilirliği için somut alt sınıf türleri içerecek şekilde güncellendi. (I5fe29)
  • Kullanıcı arayüzü önizlemeleri için kullanılabilecek geçerli Wear cihazları listelemek amacıyla wear-tooling-önizleme kitaplığını kullanıma sunun (Ib036e)
  • Yoğunluk arayüzünün yazı tipi ölçeklendirme kısmını işlemek için FontScalable arayüzü oluşturuldu. (I2cf3f)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • PopupPositionProvider.calculatePosition artık hesaplamadaki okuma durumu değiştiğinde pop-up'ın konumunu otomatik olarak güncelleyecek. (I676a1, b/292257547)
  • readOnly doğru değerine ayarlandığında klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Odaklanıldığında readOnly doğru değerinden yanlış değerine ayarlandığında klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)
  • Kullanıcı arayüzü testinde global onayların uygulanması genişletildi. (I1f90d)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

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

API Değişiklikleri

  • Orijinal Besteye hizmet aramaları yetkisi veren Beste'nin uygulanmasına olanak tanıyan, Beste'nin uygulayıcıları tarafından uygulanabilecek bir hizmet bulma aracı arayüzü eklendi. Bu yöntem, Directy olarak adlandırılmamalıdır ve kullanıcı arayüzü modülünde olduğu gibi oluşturucunun sarmalanmış sürümlerinden bulunabilen, çalışma zamanında deneysel API'ler oluşturmayı etkinleştirmek için kullanılır. (I296b9)
  • PlatformTextInput* API tamamen yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController ve LocalSoftwareKeyboardController artık deneme aşamasında değil. LocalSoftwareKeyboardController artık uygun bir CompositionLocal. (I4c364)
  • LookaheadLayout ve LookaheadLayoutScope birkaç sürümde kullanımdan kaldırıldı ve artık kaldırıldı. Yeni API'ler her Layout ile çalışabilen LookaheadScope şeklindedir. (I12ac3)
  • Testlerde odak isteğinde bulunmanın daha kolay ve keşfedilebilir bir yolu olarak SemanticsNodeInteraction.requestFocus eklendi. (Ie8722)
  • Gelecekte çerçeveleri test etmek amacıyla kullanmak üzere küresel onayları kaydetmek için deneysel API'ler ekleyin. (I12d77)

Hata Düzeltmeleri

  • AndroidView işlevinin update geri çağırmasının ilk çağrısı, AndroidView özelliğini sunan beste uygulandığında çalışmak yerine, görünüm eklenene kadar ertelenecek. Bu çözüm, okuduğu bir durum bir efektle hemen değiştirilirse update geri çağırmasının geçersiz kılınmamasına yol açan bir hatayı düzeltir. (Ie9438, b/291094055)

Sürüm 1.6.0-alpha01

21 Haziran 2023

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

Yeni Özellikler

  • LazyList bölgesinde ileriye dönük destek sağlayın. Bu, ileriye dönük geçişteki LazyList öğesinin, tüm animasyonları (ör.öğe yerleştirme animasyonu, AnimatedVisibility vb.) atlamasına ve tüm alt öğeler için ileriyi gösteren boyut ile konumu hesaplamasına olanak tanır. İleriye dönük geçişten sonra LazyList çocukları, ileri tarihli kartta görünen gerçeklere göre bağımsız hareket edebilirler.

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

includeFontPadding artık Oluştur'da varsayılan olarak yanlış (21d806) oluyor.

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

Bu Oluşturma sürümünü güncellemek, gösterdiğiniz her metnin ilk ve son satırının üst kısmındaki fazladan dolguyu kaldırarak kullanıcı arayüzünüzde tüm metinlerin oluşturulma şeklini değiştirir.

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

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

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

Materyal stillerinizi yapılandırarak tüm metinleriniz için includeFontPadding özelliğini etkinleştirebilirsiniz. Parametre adlarının M2 ile M3 arasında değişeceğini unutmayın.

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

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

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

Bu değişiklikle bağlantılı sorunlar/hatalar yaşarsanız sorun izleyiciyi kullanarak bir hata bildirin.

API Değişiklikleri

  • InputConnection#requestCursorUpdates desteği (I0c69b)
  • FocusRequester.saveFocusedChild ve FocusRequester.restoreFocusedChild eklendi (Ic557e, b/272302679, b/275157318)
  • Yüklenemeyen öğe yolunun açıklamasıyla bit eşlem öğeleri yüklenmeye çalışıldığında, yayınlanan gönderilebilir öğeleri sarmalamak için ResourceResolutionException türünü ekleyin. (I19f44, b/230166331, b/278424788)
  • Performans ve bellek ayırmaları için optimize edilmiş erişilebilirlik. (Iede48)
  • Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
  • IntrinsincMeasureScope ürününde mevcut ölçüm ile başarılı olup olmadığını gösteren yeni mülk ve uygulamaları (ör. MeasureScope). (I7a812)
  • DrawScope API, oluşturmayı alternatif yoğunluk/düzen yönü ve boyuta sahip farklı bir tuvalde yeniden hedefleme özelliğini kullanıma sunacak şekilde güncellendi.
  • Yoğunluk ve düzen yönü yapılandırmasını desteklemek ve tuvali yapılandırılabilir hale getirmek için DrawContext güncellendi. (Ie1f9b, b/225408150)
  • Karakter sınırlayıcı kutuları hesaplamak için Paragraph#fillBoundingBoxes eklendi. (If30ee)
  • Ortak MultiPreviews kümesi (Ia5a27) 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 adlı dosya onImeAction ve SemanticsActions.PerformImeAction adlı dosya OnImeAction olarak yeniden adlandırıldı. (I8e841)
  • İç içe kaydırmadaki sürüklemeden ayırma işlemi için Çark ekler (özellikle NestedScrollConnection'de). (Ie57e4)
  • Döndürülen nesne orijinal android.graphics.Paint (I22b4c) öğesini sarmaladığından toComposePaint yerine asComposePaint API eklendi
  • SemanticsProperties.imeAction öğesini kullanımdan kaldırın ve SemanticsActions.performImeAction parametresi için yeni bir parametreyle değiştirin. (I4a587)
  • Fareyle seçim yapma desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişletilir ve karakter bazında daralır. (Ic0c6c, b/180639271)
  • Daha önce sınır dışında ofsetler için AssertionError işlemini gerçekleştiren Paragraph yöntemleri artık MultiParagraph gibi 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ınlandı. 1.5.4 sürümü bu kaydetmeleri içerir.

Sürüm 1.5.3

4 Ekim 2023

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

Hata Düzeltmeleri

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

Sürüm 1.5.2

27 Eylül 2023

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

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma API'sine arka plan iş parçacığından erişildiğinde yaşanan kilitlenmeler için geçici çözüm eklendi.
  • Anlamsal ağacına eklenen eklenmemiş düğümleri düzeltin.

Sürüm 1.5.1

6 Eylül 2023

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

Hata Düzeltmeleri

  • readOnly doğru değerine ayarlandığında klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Odaklanıldığında readOnly doğru değerinden yanlış değerine ayarlandığında klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)

Sürüm 1.5.0

9 Ağustos 2023

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

Sürüm 1.5.0-rc01

26 Temmuz 2023

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

Hata Düzeltmeleri

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

Sürüm 1.5.0-beta03

28 Haziran 2023

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

Hata Düzeltmeleri

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

Sürüm 1.5.0-beta02

7 Haziran 2023

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.5.0-beta01

24 Mayıs 2023

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

API Değişiklikleri

  • Yeniden düzenleme, renk animasyonları ve AndroidComposeView (Ib2bfa) özelliğinde ayırmalar kaldırıldı
  • Yetki vermek için yardımcı eğlence CacheDrawModifierNode() öğesi ekler (Icf8f9)
  • İlerideki sonuçları gözlemlemek ve istenirse ana geçişi etkilemek için MeasureScope tarihinden itibaren erişilebilen isLookingAhead mülküyle tanışın. (Ibf4c3)
  • TalkBack geçişindeki düğümleri yeniden sıralamak için kullanılan yeni anlamsal özellik traversalIndex (düşük değerler daha önce gelir). (I9a81b, b/186443263)
  • isContainer anlamsal özelliği isTraversalGroup (I121f6) olarak yeniden adlandırılıyor
  • ColorProducer artık produce (I4a9a2) yerine bir operator fun invoke sunuyor
  • Yol nesnelerine çeviri/ölçek/döndürme dönüşümleri uygulamak için Path dönüştürme API'sini ekleyin. (I23434, b/233772232)
  • ColorProducer yönteminin adı produce. (I78bde)
  • toFrameworkColorSpace öğesinin adını toAndroidColorSpace olarak değiştir (I4f547)
  • ColorLambda listesinin adını ColorProducer olarak değiştir. (I73b1a)
  • Android ve Compose renk alanı türleri arasında dönüşüm yapmanızı sağlayacak API'leri kullanıma sunun. (Ie7db4, b/279979665)
  • Metin renginin verimli bir şekilde animasyona veya ayarlanmasına olanak tanımak için BasicText öğesine bir renk parametresi eklendi. (Iffd88, b/246961787)
  • TextRange.constrain adlı dosya TextRange.coerceIn olarak yeniden adlandırıldı. (I31be2)
  • Tam parametre listesiyle optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush) ve MultiParagraph.paint(Brush) gibi birçok metin API'si sabitlendi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırıldı. Asıl amacımız bu alanı kaldırmaktı. Ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, desteği sonlandırma alanından kaldırma (I98e96, b/277703184)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • AnnotatedString saniye içindeki UrlAnnotation öğeleri artık TalkBack gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)
  • Metin alanları için InsertTextAtCursor semantiği işlemi eklendi. (I11ed5)
  • LineHeightStyle.Alignment(topRatio) oluşturucu, kararlı API'ye yükseltildi. (I79c32, b/261565383)
  • TextMeasurer ve ilgili API'ler artık deneysel değildir. (I74647, b/261581753)
  • Metin düzenleyici düğümlerinde IME işlemini çağırmak için PerformImeAction anlamsal işlemi eklendi. (Ic606f, b/269633506)
  • PlatformTextInput API'leri artık Android için deneysel değildir. (I668eb)
  • Enum.valueOf için değer parametresi adı değişti (Ia9b89)
  • enum valueOf (I818fe) değeri için daha fazla atılan istisna
  • Doğrudan platform API'lerine yönlendiren özel metin girişi uygulamaları oluşturmak için yeni alt düzey PlatformTextInputAdapter API kullanıma sunuldu. (I58df4)
  • Tuval'de metin çizerken farklı karıştırma algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)
  • Font.MaximumAsyncTimeout listesinin adını Font.MaximumAsyncTimeoutMillis olarak değiştir. Yalnızca yeniden adlandırma. (I07af5)
  • @Preview referans cihazlarının (Id6151, b/254528382) DPI değerleri güncellendi
  • Verimli şekilde animasyon oluşturmak veya metin fırçası ayarlamak için BasicText ürününe brush, alpha parametrelerini ekleyin.
  • :ui:ui-unit (I6f18d, b/246961787) içinde Kayan, Çift, Uzun, Int, Shorts için kutusuz lambda türlerini tanımlayın

Hata Düzeltmeleri

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

Harici Katkı

  • Vektör API'lerinde performansı artırdı ve ayırmaları azalttı (I906cb)

Sürüm 1.5.0-alpha04

10 Mayıs 2023

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

Yeni Özellikler

  • Modifier.Node Yetki İyileştirmeleri Bir DelegatingNode öğesinden diğer Modifier.Node örneklerine yetki vermek için geliştirilmiş bir özellik eklendi. Bu işlem delegate ve undelegate API'leriyle yapılabilir. Bu değişiklikten önce, yetki veren düğümdeki her API'nin yetkisinin, yetki verilen düğüme açıkça atanması gerekiyordu. Bu değişiklikten sonra, DelegatingNode tarafından açıkça geçersiz kılınmadığı sürece düğüm arayüzlerinin yetkisi örtülü olarak uygulanacaktır. (67352bc)

API Değişiklikleri

  • Yetki verilebilecek bir NestedScroll Modifier.Node olan NestedScrollModifierNode özelliğini kullanın. (I69513)
  • AndroidViewBinding composable'a onReset ve onRelease parametreleri eklendi. Böylece AndroidView composable yansıtıldı ve ViewBinding ile View yeniden kullanımı desteği etkinleştirildi. (I00b1e, b/276802519)
  • Compose Path API'si, sıklıkla yol değiştirme ile ilgili kullanım alanlarını daha hızlı yeniden kullanımla desteklemek için geri sarma işlemlerini destekleyecek şekilde güncellendi. (I7b797)
  • Tam parametre listesiyle optimize edilmiş TextStyle.merge(...) eklendi. (Iad234, b/246961787)
  • Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush) ve MultiParagraph.paint(Brush) gibi birçok metin API'si sabitlendi. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding desteği sonlandırıldı. Asıl amacımız bu alanı kaldırmaktı. Ancak geri bildirimler, geliştiricilerin bu yapılandırma seçeneğine ihtiyaç duyduğunu gösteriyor. Bu nedenle, desteği sonlandırma alanından kaldırma (I98e96, b/277703184)

Hata Düzeltmeleri

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

Sürüm 1.5.0-alpha03

19 Nisan 2023

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

Yeni Özellikler

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

API Değişiklikleri

  • Önceden inceleme aktarımındaki ölçüm politikasını yeniden kullanan yeni varsayılan intermediateMeasurePolicy, Scaffold, TabRow ve BoxWithConstraints gibi koşullu slotlar olmadan SubcomposeLayout alt türünün varsayılan olarak ileri tarihli metrikle çalışmasına olanak tanır. (Id84c8)
  • Bir Android penceresi için oluşturulan depolayıcı artık ON_STOP bildirimi aldığında tüm besteler yerine yalnızca withFrameNanos için yapılan aramaları engelleyecek. Bu, durdurulan etkinliklerle ilişkili pencerelerin veri değişiklikleri için yeniden derlemeye devam edeceği ancak animasyonların veya withFrameNanos diğer çağrılarının engelleyeceği anlamına gelir. (Id9e7f, b/240975572)
  • motionEventSpy değerini kararlı olarak değiştirir. (Ic5ec4, b/261560988)
  • Herkese açık TextRange.constrain yöntemi eklendi. (I97912)
  • Geliştiricileri bu uyumluluk API'sini kullanarak includeFontPadding ayarını yanlış değiştirip test etmeye teşvik etmek için PlatformTextStyle.includeFontPadding desteği sonlandırılmıştır. (I98e96, b/277703184)

Sürüm 1.5.0-alpha02

5 Nisan 2023

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • Metin testi işlemleri 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ınlandı. 1.5.0-alpha01 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Değiştirici.intermediateLayout artık açık bir LookaheadScope gerektirmiyor. IntermediateLayout'taki ölçüm bloğunda alıcı olarak IntermediateMeasureScope öğesi bulunur ve bu da kullanışlı CoroutineScope, LookaheadScope ve MeasureScope değerini sağlar.(Ibe2e5)
  • LookaheadLayout, artık Düzen olmayan LookaheadScope ile değiştirildi. Bu, LookaheadScope'taki chid içeriğinin doğrudan ana yayıncının MeasurePolicy tarafından kontrol edilmesine olanak tanır. (Ibe2e5)
  • Değiştirici.Düğümlerin eş yordamları başlatmasına izin vermek için Modifier.Node#coroutineScope ekler. (I76ef9)
  • CompositionLocalconsumerModifierNode arayüzünü uygulayarak Değiştirici.Nodes'un CompositionLocals'ı okumasına izin verin. (Ib44df)
  • @Kullanımdan kaldırılan sınıfın mülke yayılımı. (I882d1)

Sürüm 1.4

Sürüm 1.4.3

3 Mayıs 2023

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

Hata Düzeltmeleri

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

Sürüm 1.4.2

19 Nisan 2023

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

Hata Düzeltmeleri

  • AndroidView ürününün değiştiricilerini doğru şekilde yeniden kullanmamasına yol açan, beklenmedik davranışlara ve kilitlenmelere yol açabilecek bir sorun düzeltildi. (Ib67ee, b/275919849)
  • Dialog composable tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmemesine neden olan regresyon düzeltildi (I82551, b/262140644)

Sürüm 1.4.1

5 Nisan 2023

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

Hata Düzeltmeleri

  • ParentDataModifier ile ilgili AndroidView etkilenmeyen bir sorunu düzeltir (b/274797771)

Sürüm 1.4.0

22 Mart 2023

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

1.3.0'dan bu yana önemli değişiklikler

  • Tembel liste öğelerinin, sınırların dışına kaydırıldığında atılmamaları için sabitlenmesine olanak tanıyan yeni bir PinnableContainer API'si eklendi. Örneğin, Modifier.focusable(), o sırada odaklanılan öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010)
  • Odak sistemi, yeni deneysel Modifier.Node API'leri kullanılarak yeniden yazılmıştır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/25}b/25}
  • Platformlarda IsContainer anlamsal özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamlarına dayalı olarak geçiş sırasını belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379)
  • DropdownList adlı yeni erişilebilirlik rolü eklendi. Bu, android.widget.Spinner cihazına odaklanılırken TalkBack kullanıcısının davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001)
  • Dilerseniz PlatformTextStyle(emojiSupportMatch) kullanarak tek bir paragrafta emoji desteği işlemeyi devre dışı bırakabilirsiniz. (Ia7100, b/139326806)
  • Android Compose kullanıcı arayüzü testleri, artık boşta olmak üzere kareler yürütürken (ör. waitForIdle ile) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının ayrı kareleri üzerinde hak iddia eden testleri etkileyebilir. (I8ea08, b/222093277)
  • Metni Static(default) veya Animasyonlu olacak şekilde tanımlamak için TextStyle uygulamasına deneysel TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated öğesini kullanın. (I24dd7)

Sürüm 1.4.0-rc01

8 Mart 2023

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • BasicTextField öğesinin SetText anlamsal işlemi artık metin arabelleğini, IME güncellemeleriyle aynı kod yolunu ve test işlevleriyle (ör. performTextReplacement) kullanarak günceller.
  • performTextClearance, performTextReplacement ve performTextSelection metin testi işlevlerinde artık SemanticsActions kullanılıyor. (I0807d, b/269633168, b/269624358)

Sürüm 1.4.0-beta02

22 Şubat 2023

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

API Değişiklikleri

  • modifierElementOf() API kaldırıldı. Lütfen bunun yerine doğrudan ModifierNodeElement üzerinden iletişim kurun. (I2256b)
  • Layout yeniden kullanılacağı zaman (örneğin, LazyColumn öğesi olarak) destek kaydının düzgün şekilde ele alınması için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni bir Modifier.Node.onReset() geri çağırması eklendi. Odaklanma durumunu düzgün şekilde sıfırlamak için FocusTargetModifierNode sorunu düzeltildi. (I65495, b/265201972)
  • Tuval'de metin çizerken farklı karıştırma algoritmalarını desteklemek için DrawScope.drawText, Paragraph.paint ve MultiParagraph.paint yöntemlerine BlendMode parametresi eklendi. (I57508)

Hata Düzeltmeleri

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

Sürüm 1.4.0-beta01

8 Şubat 2023

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

API Değişiklikleri

  • PinnableContainer.PinnedHandle.unpin(), release() (I4667a) olarak yeniden adlandırıldı
  • ComposeTestRule ürününe deneysel API olarak waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExists ve waitUntilDoesNotExist eklendi. Böylece waitUntil API, herhangi bir eşleştiriciyi ve herhangi bir düğüm sayısını kabul edecek şekilde genişletildi. Diğer belgeler için ComposeTestRule sayfasına göz atın. (Ifa1b9, b/226934294)
  • Font.MaximumAsyncTimeout listesinin adını Font.MaximumAsyncTimeoutMillis olarak değiştir. (I07af5)
  • GoogleFont.Provider.AllFontsListUri kaldırıldı ve ktdoc'ta ona bağlandı. (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ınlandı. 1.4.0-alpha05 sürümü bu kaydetmeleri 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 bileşimi ve bestedeki tüm LaunchedEffect ve rememberCoroutineScope() çağrıları için kullanılır. (I10614, b/265177763)
  • 1 boyutsal hızı izlemek için yeni bir API ekleyin (If5a82)
  • FocusRequester artık @Stable olarak işaretlendi. (I580ee)
  • usePlatformDefaultWidth parametresi alan DialogProperties oluşturucudan deneysel ek açıklamayı kaldırın. (Ic4048)
  • PathMeasure.getPosition() ve PathMeasure.getTangent() (I3b47c) ile bir yol üzerindeki belirli bir mesafedeki hesaplama konumuna ve teğet işlevine işlev eklendi
  • PlatformParagraphStyle tarihinde yanlışlıkla herkese açık setter kaldırıldı. (I07f47)
  • Satır içi/kullanımdan kaldırılan gizli işlevlerin diğer tür/boşluk özellikleri (I24f91)
  • Sıfır ayırma içeren ek açıklamalar için sorguya AnnotatedString.hasStringAnnotations ekleyin. (I94dfe, b/246960758)
  • Metin olarak String değerini alan TextMeasurer.measure işlevi için yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342)
  • TextStyle'daki LineBreak ve Hyphens API'leri kararlı sürüme geçirildi. (Ic1e1d)

Harici Katkı

  • TextInputSession ve TextInputService uygulamalarındaki notifyFocusedRect yöntemleri tekrar kullanımdan 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ınlandı. 1.4.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Tembel liste öğelerinin, sınırların dışına kaydırıldığında atılmamaları için sabitlenmesine olanak tanıyan yeni bir PinnableContainer API'si eklendi. Örneğin, Modifier.focusable(), o sırada odaklanılan öğeyi sabitlemek için bu mekanizmayı kullanır. (Ib8881, b/259274257, b/195049010)
  • Odak sistemi, yeni deneysel Modifier.Node API'leri kullanılarak yeniden yazılmıştır. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/25}b/25}
  • Platformlarda IsContainer anlamsal özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamlarına dayalı olarak geçiş sırasını belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379)
  • Yeni erişilebilirlik rolü (DropdownList) eklendi. Bu, android.widget.Spinner odaklama sırasında TalkBack's davranışını kopyalamak için kullanılabilir. (I177e5, b/236159001)
  • Dilerseniz PlatformTextStyle(emojiSupportMatch) kullanarak tek bir paragrafta emoji desteği işlemeyi devre dışı bırakabilirsiniz. (Ia7100, b/139326806)
  • Android Compose kullanıcı arayüzü testleri, artık boşta olmak üzere kareler yürütürken (ör. waitForIdle ile) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının ayrı kareleri üzerinde hak iddia eden testleri etkileyebilir. (I8ea08, b/222093277)
  • Metni Static(default) veya Animasyonlu olacak şekilde tanımlamak için TextStyle uygulamasına deneysel TextMotion eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekse TextMotion.Animated öğesini kullanın. (I24dd7)

API Değişiklikleri

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

Sürüm 1.4.0-alpha03

7 Aralık 2022

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

API Değişiklikleri

  • ExperimentalComposeUiApi, PointerIcon içinden kaldırılıyor (I23af8)
  • Sayfa erişilebilirlik işlemlerini tanıtın: PageUp, PageDown, PageLeft, PageRight. Bunların yalnızca API 29'da 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 öğe kaydırma bilgilerini sorgulamaya bir Değiştirici API eklendi. (I2ba9d, b/203141462)
  • Hareketler kaydırma etkinliklerine dönüştüğünde, basma etkileşimlerini doğru şekilde ertelemek için Clickable ürününde kullanılır.
  • Clickables öğesinin, Scrollable ViewGroup içinde kullanıldığında dalgaları doğru şekilde geciktirmemesi düzeltildi.
  • Hareketlerin kaydırma etkinliklerine dönüşmesi durumunda basmaları doğru şekilde geciktirmek için Çekmeceler ve E-Tablolar güncellendi.
  • CompositingStrategy.Always öğesi, graphicsLayer öğesinin her zaman ara arabelleğe (I47dc1) oluşturulacağını belirtecek şekilde Offscreen olarak yeniden adlandırıldı
  • Birden fazla içerik alanıyla düzen aşırı yüklemesi artık kararlı durumda (I10566, b/248294649)
  • Test davranışını ve performansını incelemek için Perfetto izlerini (Sistem İzlemeleri olarak da bilinir) yakalamak amacıyla, deneme amaçlı yeni PerfettoTrace.record {} ve PerfettoTraceRule API'leri eklendi. (I3ba16)
  • Oluşturma kuralının kullanıldığı kullanıcı arayüzü testlerinde, withFrameNanos geri çağırması sırasında devam ettirilen devamlılıklar tüm çerçeve geri çağırmalarının çalıştırılması tamamlanana kadar gönderilmez. Bu, normal şekilde çalışırken ileti oluşturma davranışıyla aynıdır. Ancak, eski davranışa dayalı testler başarısız olabilir. Bu durum yalnızca doğrudan withFrameNanos veya withFrameMillis çağrısı yapan kodu etkiler. Geri çağırmanın dışında, geri çağırmaların içine taşınması gerekebilecek işlevlere aktarılmış bir mantık içerir. Örnekler için bu CL'deki animasyon testi değişikliklerine bakın.
  • withFrameNanos geri çağırmalarından sonra, arayanların eş yordamları devam ettirilmeden önce kodu çalıştırmak için TestMonotonicFrameClock oluşturucusuna ve fabrika işlevine isteğe bağlı onPerformTraversals: (Long) -> Unit parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)
  • EmojiCompat'ı, beste yazmaya 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 tarafından değişikliklerin uygulanması tamamlandıktan sonra gönderiliyor. (Iad6c0, b/222093277)
  • captureToImage ürününde, çok pencereli ekran görüntülerinin yakalanmasına olanak tanıyan değişiklikler yapıldı. Bu seçenek, oluşturulan Pop-up'ları kullanan ekran görüntüsü testleri için yararlıdır. (I169c5)

Bağımlılık Güncellemeleri

  • Kullanıcı Arayüzü Oluşturma ve Materyal Oluşturma artık Yaşam Döngüsü 2.5.1'e bağlı. (I05ab0, b/258038814)

Sürüm 1.4.0-alpha02

9 Kasım 2022

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

API Değişiklikleri

  • GraphicsLayerScope, graphicsLayer öğesinin mevcut boyutunu gösterecek şekilde güncellendi. Bu, Oluşturulabilir boyutunun bir işlevi olarak graphicsLayer dönüşümlerinin hesaplanması için yararlıdır. (If8c43,b/181387080)
  • graphicsLayer içeriğini oluştururken ekran dışı birleştirme katmanından ne zaman yararlanılacağını belirlemek için CompositingStrategy kullanıma sunuldu. Otomatik, alfa uygulanırsa veya bir RenderEffect/Overscroll uygulandığında dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Her zaman ekran dışı bir arabellek eklenir. Bu arabellekte ModulateAlpha, ekran dışı arabelleği kullanmaktan kaçınır ve bunun yerine kaydedilen çizim talimatlarını graphicsLayer içinde ayarlar. ModulateAlpha kullanımında da RenderEffect/Overscroll kullanımları için ekran dışı arabellekten yararlanılır (I25e82, b/256382834)
  • Düzen ve çizim için tüm hiyerarşilerin geçersiz kılınmasına olanak tanımak için Modifier.Node öğesine invalidateSubtree() eklendi. (I4bd90)
  • rememberNestedScrollInteropConnection uygulamasını kararlı sürüme yükseltin. rememberNestedScrollInteropConnection hizmetine kök görünümü iletme özelliği kullanıma sunuldu. Bu, özel görünümün, özellikle standart olmayan görünümlerde (ör. ModalBottomSheetDialog) kaydırma kısıtlamalarına daha iyi tepki vermesine yardımcı olabilir. (I9e107)
  • Daha önce okudukları bir değer değiştiğinde bildirim alması gereken Modifier.Node uygulamalarının kullanabileceği ObserverNode arayüzü eklendi (I5728b, b/247716483)
  • Paint öğesine yerel android.graphics.Paint kabul eden yeni bir oluşturucu eklendi. Ayrıca, mevcut bir yerel Paint nesnesini Compose Paint'e dönüştüren toComposePaint() uzantı işlevi de eklendi. (Ica91b)
  • Android'de kullanmak için yeni FontFamily.Resolver.resolveAsTypeface ekleyin. (I8950b)
  • Araçların, Özelleştirilebilir (Ie6614) dahili durumlarını değiştirmesine izin vermek için ToolingState ekleyin
  • Yeni eklenen animasyonları daha iyi desteklemek için araçları yeniden düzenleyin (I8677b)
  • Malzeme ve malzeme3 Metin, TextField ve OutlinedTextField özelliklerine minLines parametresi eklendi. Bu parametre, satır sayısı açısından bileşenin minimum yüksekliğinin ayarlanmasına olanak tanır (I4af1d)

Sürüm 1.4.0-alpha01

24 Ekim 2022

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

API Değişiklikleri

  • Hareket algılayıcıları için yeni bir yöntem (awaitEachGesture()) eklendi. forEachGesture() işlevine benzer, ancak döngü hareketleri tamamen AwaitPointerEventScope içinde çalışır. Böylece etkinlikler, yinelemeler arasında kaybolamaz.
  • forEachGesture(), etkinliklerin hareketler arasında kaybolmasına izin verdiği için artık awaitEachGesture() yerine kullanımdan kaldırıldı. (Iffc3f, b/251260206)
  • androidx'te erişilebilirlik nesnelerinin geri dönüştürülmesi için desteği sonlandırma Desteklenen en eski sürümlerde bile performans değişikliklerinin kayda değer düzeyde olmadığını tespit ettik. (I0a961)
  • Dış çizgili metnin çizimini etkinleştirmek için TextStyle ve SpanStyle özelliklerine Deneysel özellik olarak DrawStyle eklendi. (If24b8, b/155421273)
  • AnnotatedString.Builder, artık kotlin.text.Appendable uygulamasını uyguluyor. (I1a061, b/231030444)
  • AnnotatedString.Builder artık AnnotatedString alt dizesini ve kesişen stilleri eklemek için append(AnnotatedString, start: Int, end: Int) yöntemine sahip.
  • Paragraph ve MultiParagraph boyama işlevlerine, dış çizgili metinlerin çizilmesini etkinleştiren DrawStyle parametresi eklendi. (Ic8102, b/155421273)

Harici Katkı

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

Sürüm 1.3

Sürüm 1.3.3

11 Ocak 2023

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

Hata Düzeltmeleri

  • Etkinlik, Oluşturma Görünümü'nün durumunu kaydederken Android 9'da bazen meydana gelen kilitlenmeler için düzeltme uygulandı. (I0b755, b/260322832)

Sürüm 1.3.2

7 Aralık 2022

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

Hata Düzeltmeleri

  • protobuf-javalite:3.19.4 (CVE-2022-3171) (b/255545055) güvenlik uyarısından kaçınan Profobuf 3.21.8 kullanılacak şekilde güncellendi

Sürüm 1.3.1

9 Kasım 2022

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

Sürüm 1.3.0

24 Ekim 2022

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

1.2.0'dan bu yana önemli değişiklikler

  • Yeni deneysel API paketi LookaheadLayout (önceden imkansız olan animasyon davranışlarını mümkün kılıyor)
  • Yeni deneysel API paketi Modifier.Node (Modifier.composed yerine daha yüksek performanslı alternatif)
  • İyileştirilmiş pencere iç içe aktarma desteği.
  • LazyLists'te d-pad'ler ve donanım klavyesi için odak desteği.
  • İletişim kutuları 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 mantık)
  • Birçok küçük ve 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ınlandı. Sürüm 1.3.0-rc01 bu kaydetmeleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.3.0-beta03

21 Eylül 2022

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

API Değişiklikleri

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

Hata Düzeltmeleri

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

Sürüm 1.3.0-beta02

7 Eylül 2022

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

API Değişiklikleri

  • Düzen için, derlenebilir birden fazla içerik lambdasından oluşan bir listeyi kabul eden deneysel bir aşırı yükleme eklendi. Bu sayede, farklı içerik lambdalarına farklı şekilde konulan tehdit ölçülebilir öğeleri (Ic1b4e) kullanılabilir.

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

  • FocusDirection.In ve FocusDirection.Out desteği sonlandırılıp bunların yerini FocusDirection.Enter ve FocusDirection.Exit aldı. (Ia4262, b/183746982)
  • FocusManager.moveFocus(Enter) ve FocusManager.moveFocus(Exit) için özel bir davranış belirtmek üzere "giriş ve çıkış" adlı iki yeni odak özelliği eklendi. (I5f3f9, b/183746982)
  • Artık odak hareketini iptal etmek için FocusRequester.Cancel tuşunu kullanabilirsiniz. FocusRequester.Cancel, şu odak özelliklerinin herhangi birinde kullanılabilir: yukarı, aşağı, sol, sağ, sonraki, önceki, başlangıç, bitiş, giriş ve çıkış. (Ib300f)

Sürüm 1.3.0-beta01

24 Ağustos 2022

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

Değiştirici Düğüm Yeniden Faktörü

Modifier/Modifier.Element örneklerini işleyen ve LayoutNodes üzerindeki davranışlarını koordine eden katmanda büyük değişiklikler yapıldı. Şu anki haliyle bu yeni düzenleme, Compose'daki birçok değiştiricinin herkese açık API'sini etkilememiştir ve yalnızca uygulamaya yönelik bir değişiklik olarak değerlendirilebilir. Buna rağmen, bu değişiklik çeşitli nedenlerle önemli bir değişikliktir. (Ie4313)

Özeti Değiştirme

Eklenen deneysel Modifier.Node API'leri, durumun düzen düğümünün yaşam döngüsüyle korunacak ve durumu üreten Modifier.Element öğesine karşılık gelen düzen düğümü ve kullanımı başına ayrılacak bir örnek üzerinde tutulmasına olanak tanıyan bir soyutlama sağlar.

Genel olarak bu soyutlama, Modifier.composed API'nin mekanizmasına bağlı kalmadan durum bilgili değiştiriciler üretmek için alternatif bir mekanizma sağlar.

Risk

Bu değişiklik, önceki sürümlerle tamamen ikili program ile uyumludur. Bu değişikliğin amacı, hem pratik hem makul düzeyde gözlemlenebilir davranış açısından geriye dönük uyumluluğa sahip olmaktır. Bununla birlikte, bu yeniden düzenlemenin ele alınmadığı birkaç alt sistem vardır. Davranış, testlerimizin kapsamı dışında kalan ve henüz bulunup düzeltilmemiş şekillerde değişmiş olabilir.

Lütfen bu sürüme geçerken dikkatli olun. Bu durumun size sorun çıkardığını düşünüyorsanız lütfen bize bildirin.

Deneysel API'ler

Tümü yeni "Değiştirici Düğüm" kavramıyla ilgili olan çeşitli deneysel API'ler eklendi. Değiştirici.Düğümlerin oluşturulması

  • 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ışı bozan değişiklik

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

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

Yalnızca 8 dp'den daha yüksek düzeylere ayarlanmış özel bir iletişim kutusu veya pop-up uygulaması oluşturuyorsanız bu değişiklikten etkilenirsiniz. İletişim kutusu veya pop-up'ın yüksekliğini düşürebilirsiniz. Bu yeni davranışın kapsamı dışında kalmayı seçmeniz gerekiyorsa kendi iletişim kutunuzu veya pop-up'ınızı istediğiniz yükseklik grubuyla çatallamayı düşünün. Erişilebilirlik olumsuz yönde etkilenebileceğinden bu önerilmez. İletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından etkileşime geçilebilir ve okunabilir olmasını sağlamak geliştiricinin sorumluluğundadır.

API Değişiklikleri

  • Yapılandırma değişikliklerinde painterResource ürününün güncellenmemesine neden olan bir sorun düzeltildi (I58e73, b/228862715)
  • rememberTextMeasurer artık FontFamily.Resolver, Density veya LayoutDirection parametrelerini almıyor. Bu parametrelere özel değerler sağlamak için lütfen TextMeasurer oluşturucuyu kullanın. (Ia1da3)
  • İletişim kutularının WindowInsets desteklemesine izin vermek için DialogProperties.decorFitsSystemWindows özelliği eklendi. (I57742, b/229378542)
  • İkili program uyumluluğunu korumak için yazı tipi oluşturucuları orijinal kotlin dosyasına geri taşındı. Son kararlı sürümden bu yana değişiklik yok. (Ieb2f3)
  • Birkaç eşittir tanımından gereksiz operatör kaldırıldı. Bu işlemin herhangi bir etkisi olmadı. (I6c309)
  • FontVariation.Setting, gelecekteki sınırlama API'lerine izin veren mühürlü bir arayüzdür. (I11021, b/143703328)
  • CompositionGroup.findParameters adlı yeri SlotTree.kt alanına ekleyin. Bu sayede araçlar, alan tablosunun tamamını ayrıştırmak zorunda kalmadan CompositionGroup için parametreler alabilir. (I124fe)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

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

API Değişiklikleri

  • LayoutCoordinates.findRootCoordinates() artık herkese açık (I7fa37, b/204723384)
  • PlacementScope içinde LayoutCoordinates öğesini almak için deneysel API eklendi. Bu, geliştiricilere mevcut düzenin, alt öğeleri konumuna göre nereye yerleştireceğini anlama olanağı tanır. (I5482b, b/238632578)
  • Bir LayoutCoordinates değerinden diğerine Matris dönüşümü elde etmek için LayoutCoordinates.transformFrom eklendi. (Ic5ab1, b/238632578)
  • SemanticsModifier.id desteği sonlandırıldı ve anlamsal kimlik LayoutInfo.semanticsId değerine taşındı. (Iac808, b/203559524)
  • Kaynak yazı tipleri artık yazı tipi varyasyonu ayarlarını (API 26+) destekliyor. (I900dd, b/143703328)
  • DeviceFontFamilyNameFont ürününde değişken yazı tipi desteği (Ic1279, b/143703328)
  • Yazı tipi oluşturucuları artık O+ cihazlarda değişken yazı tiplerini yapılandırmak için bir FontVariation.Setting listesini kabul ediyor. (I11a9d, b/143703328)
  • Değişken yazı tiplerini tanımlamak ve kullanmak için FontVariation API ekleyin. (I3c40c, b/143703328)
  • LineHeightStyle.Alignment kurucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)
  • Paragraf artık Android ve Masaüstü için beklenen|gerçek ve tanımlanmıştır. (Id387e, b/239962983)
  • Arayüz Paragrafı artık Paragarph arayüzü mühürlü. Paragrafın alt sınıflandırılması için herhangi bir kullanım alanı yoktur. Bu değişiklikten etkileniyorsanız benimle iletişime geçmenizi öneririz. (If5247, b/239962983)
  • Deneysel ek açıklama PlatformTextStyle ve LineHeightStyle reklam grubundan kaldırıldı. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard öğesini kullanımdan kaldırın. Bunun yerine lütfen uygulama kodunda SoftwareKeyboardController ve IME yönetimi 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 izni verilmesini gerektiren API'lere @RequiresPermission eklendi. (Ie542e, b/238790278)

Sürüm 1.3.0-alpha02

27 Temmuz 2022

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

API Değişiklikleri

  • Baskıyı almak için yeni PointerInputChange#pressure özelliği eklendi. (I45a5e, b/205164819)
  • Kompozisyonda TextMeasurer örneği kolayca oluşturmak ve hatırlamak için rememberTextMeasurer eklendi. (I8d66e)
  • Rect, RoundRect ve MutableRect artık contains işlevini çağırmak için Kotlin in söz dizimini destekliyor. (Ie42b0, b/238642990)
  • API'nin daha basit bölümleriyle kolayca uygulanabildikleri için gereksiz işlevleri KeyInjectionScope öğesinden kaldırın. Kaldırılan işlevler şunlardır: pressKeys, keysDown ve keysUp. (I81d77)
  • KeyInjectionScope içindeki sabit değer ve parametre adları, "Millis" son ekini içerecek şekilde yeniden düzenlendi. Burada, söz konusu sabit değer ve parametre birimlerinin birimi milisaniyedir. (Iabef5)
  • Metin düzenleme sorunlarının giderilmesine yardımcı olmak için EditCommand hizmetine toStringForLog() yöntemi eklendi. (I53354, b/228862731)
  • Canvas ve drawBehind gibi DrawScope üzerinde çalışan composable'larda ve değiştiricilerde birden fazla stilde metin çizme imkanı sağlamak için DrawScope eklentisine drawText uzantı işlevi eklendi. (I16a62, b/190787898)
  • Compose çalışma zamanından bağımsız olarak BasicText ile aynı sonuçları oluşturan rastgele metin düzeni hesaplamasına olanak tanıyan TextMeasurer adlı yeni bir deneysel API'yi kullanıma sunun. (I17101)
  • mapTree adlı yeri SlotTree.kt alanına ekleyin. Bu sayede araçlar, önce asTree'nin yaptığı gibi hafızada kopya oluşturmadan SlotTree öğesini inceleyebilir. Düzen Denetleyici için bu, yaklaşık 10 faktörde bir performans iyileştirmesi sağlar. (I5e113)
  • Geliştiricilerin kitaplıklardaki MultiPreview ek açıklamalarını yazmasına ve yeniden kullanmasına olanak tanımak için Oluşturma Önizlemesi, ikili program çıkış dosyalarında depolanacak şekilde değiştirildi. (I85699, b/233511976)

Hata Düzeltmeleri

  • Velocity İzleyici'ye InputEventChange etkinliklerini eklerken artık konumlar yerine deltaları dikkate alacağız. Böylece hedef öğe hareket etse bile (Icea9d, b/216582726, b/223440806, b/227709803) hızın tüm durumlarda doğru şekilde hesaplanmasını garanti ediyoruz.
  • Ek açıklamalar mevcut olduğunda AnnotatedString.toUpperCase nedeniyle oluşan NPE'yi düzeltin. (I0aca2, b/210899140)

Sürüm 1.3.0-alpha01

29 Haziran 2022

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

API Değişiklikleri

  • Gerçek ölçüm/düzenden önce ileriye dönük geçişi destekleyen yeni LookaheadLayout. Bu, değiştiğinde düzenin önceden hesaplanmasına olanak tanırken, sonraki ileriye dönük ölçümün/düzenin, boyutu ve konumları hedefe göre canlandırmak için önceden hesaplanmış boyutu/konumu kullanmasına izin verir. SubcomposeLayouts henüz desteklenmiyor ancak gelecekteki bir sürümde yer alacaktır. (I477f5)
  • Tüm Text öğelerinin opaklığını değiştirmek için TextStyle ve SpanStyle özelliklerinin Fırça aromasına isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635)
  • AnnotatedString içinde TalkBack bağlantı desteğini desteklemek için UrlAnnotation ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)
  • Yardımcı program işlevselliğini çalışma zamanına taşıma (I4f729)

Hata Düzeltmeleri

Harici Katkı

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

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

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

Hata Düzeltmeleri

  • Denetleyicide boş işaretçi düzeltildi (b/237987764)
  • Denetleyicide hatırlama sırasında alınan sınıf yayını istisnası düzeltildi (b/235526153)

Sürüm 1.2.0

27 Temmuz 2022

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

1.1.0'dan bu yana önemli değişiklikler

  • Odak geçişindeki iyileştirmeler:

    • Tembel listelerde odak odaklı kaydırma artık yeni BeyondBoundsLayout temel API'si ile çalışıyor
    • FocusOrder ve FocusProperties için yeni davranış özelleştirme API'leri
    • Fiziksel klavye veya TV uzaktan kumandasıyla iyileştirilmiş davranış
  • Aşağıdakiler için yeni API'ler:

    • Pencere ek geçitleri
    • Harekete dayalı, sonsuz ve düzen animasyonları için temel temel öğeler
    • RenderEffect dahil GraphicsLayer özellik
  • 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ınlandı. Sürüm 1.2.0-rc03 bu kaydetmeleri içerir.

  • 1.2.0-rc02'den 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ınlandı. Sürüm 1.2.0-rc02 bu kaydetmeleri içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

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

API Değişiklikleri

  • Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturulmuştur.
  • Diğer tuşlar basılı tutulurken veya açılırken tuşlara basmak için KeyInjectionScope işlevine daha üst düzey işlevler eklendi. Bu işlevler arasında withKeysDown, withKeysToggled vb. bulunur. Ayrıca, belirli bir meta tuşun devre dışı olup olmadığını kontrol etmek için kullanılan özellikler de eklendi. Örneğin, herhangi bir kontrol tuşuna basılıp basılmadığını kontrol etmek için isCtrlDown gibi özellikler eklendi. Her işlevle ilgili belgeler için KeyInjectionScope konusuna bakın. (I9f6cd, b/229831515)
  • Özel fazla kaydırma efektlerinin yanı sıra bu efektleri kabul eden Modifier.scrollable aşırı yüklemelere olanak tanımak için deneysel bir OverscrollEffect kullanıma sunulmuştur.
  • Deneysel LocalOverScrollConfiguration, foundation.gesture klasöründen temel paketine taşındı ve LocalOverscrollConfiguration olarak yeniden adlandırıldı (If19fb, b/204650733)
  • runComposeUiTestWithoutActivity {} öğesinin adını runEmptyComposeUiTest {} olarak değiştirerek createEmptyComposeRule() (I6fed7) ile uyumlu hale getirin

Sürüm 1.2.0-beta03

1 Haziran 2022

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • Hız İzleyici'ye InputEventChange etkinliklerini eklerken artık konumlar yerine deltaları dikkate alırız. Böylece hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanmasını garanti ederiz (I51ec3, b/216582726, b/223440806, b/227709803).
  • Show Layout Bounds ayarı, hızlı ayarlar kutusundan açılıp kapatıldıktan hemen sonra composable'lara uygulanır. Etkinlikten ayrılıp etkinliğe yeniden girmeniz gerekmez. (I843d5, b/225937688)
  • Erişilebilirlik dizesi araması, yazı tipi yüklemeyi tetiklemez. Önceden, StyleSpans için yazı tipleri yüklenmeye çalışılıyordu. Bu da, FontFamily.Resolver öğesinin üzerine yazılması durumunda kilitlenmelere neden oluyordu. (I4609d)
  • İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
  • DeleteSurroundingTextCommand ve DeleteSurroundingTextInCodePointsCommand artık oluşturucu bağımsız değişkenlerinin negatif olmamasını gerektiriyor. (Ica8e6, b/199919707)

Sürüm 1.2.0-beta02

18 Mayıs 2022

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer, elden çıkarmanın gerçekleşmediği zamanları değil, bu işlemlerin ne zaman yapılacağını 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ınlandı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Görünür sınırların dışındaki düzen öğeleri olduğunda LazyList özel uygulamaları tarafından kullanılabilecek deneysel BeyondBoundsInterval eklendi (Ifabfb, b/184670295)
  • Modifier.composed anahtarlı sürümleri artık kararlı API (Ie65e4, b/229988420) olmuştur
  • Mevcut görünüm bilgilerini edinmek amacıyla beste yerellerini kullanmak için rememberNestedScrollConnection API'yi basitleştirdi (I67ca7)
  • @ComposableTargetMarker tarafından işaretlenen @ComposableTarget ek açıklaması ve ek açıklamaları artık @file önekiyle dosya kapsamında kullanılabilir. Dosya kapsamında bir hedef ek açıklama kullanılması, derleyicinin dosyadaki tüm composable işlevlerin, ilişkili uygulayıcıyı hedeflediğini varsaymasına neden olur. Örneğin, @file:UiComposable kullanıldığında tüm @Composable işlevlerinin Oluştur kullanıcı arayüzü uygulayıcısını hedeflediği açıklanır. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)
  • TestRule gerekmeden Compose Ui testlerini çalıştırmak için kullanılabilecek yeni deneysel, platformdan bağımsız, test API'si (interface ComposeUiTest ve fun runComposeUiTest(block: ComposeUiTest.() -> Unit)) kullanıma sunuldu. ComposeTestRule olmadan bir test çalıştırmak için testi runComposeUiTest adresine lambda olarak geçirin ve ComposeUiTest alıcı kapsamındaki yöntemler ve üyeleri kullanın. Bu yöntemler ComposeContentTestRule kapsamındakilerle aynıdır.

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

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

    Bir test ComposeTestRule ürününden ComposeUiTest ürününe taşınabilir (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()
        }
    }
    
  • ComposeContentTestRule ve ComposeTestRule şimdilik ComposeUiTest uzantısından desteklenmemektedir. Dolayısıyla ComposeUiTest üzerindeki uzantı işlevleri henüz TestRule arayüzünde çağrılamaz. ComposeUiTest kararlı API'ye geçtiğinde ComposeContentTestRule ve ComposeTestRule, ComposeUiTest yerine genişletilecek şekilde değiştirilecek. (Ib4e90)

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

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

  • LineHeightTrim adlı cihazın adı LineHeightStyle.Trim olarak değiştirildi

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

  • Gradyan renklendirmeyle metin çizme yöntemi sağlamak için TextStyle ve SpanStyle özelliklerine Brush eklendi. (I53869, b/187839528)

  • trimFirstLineTop, LineHeightBehavior öğesinin trimLastLineBottom özelliği tek bir sıralamada değiştirildi: LineHeightTrim. LineHeightTrim, iki boole ile tanımlanmış 4 duruma sahip değerlere sahiptir: FirstLineTop, LastLineBottom, Her ikisi ve Hiçbiri (Ifc6a5, b/181155707)

  • LineHeightBehavior, TextStyle ve ParagraphStyle listelerine 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 alandaki çizginin hizalamasını da tanımlar.

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

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

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

Hata Düzeltmeleri

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

Harici Katkı

  • Android'de artık dikey olarak kaydırdığımızda MouseInjectionScope.scroll(delta = someDelta) ters çevrilmiş durumda (bazıDelta değerleri pozitifse aşağı doğru kaydırılır) (Ifb697, b/224992993)

Sürüm 1.2.0-alpha08

20 Nisan 2022

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

API Değişiklikleri

  • pluralStringResource işlevleri, evrimin gelecekte daha iyi uluslararası hale getirilmesini desteklemek için deneysel olarak işaretlendi. (If24e4)
  • Paragraf ve MultiParagraph, artık Constraints parametresini kabul ediyor. Constraints.maxHeight değerini geçmek şu anda bir işlem değildir, ancak gelecekte yüksekliğe dayalı elipsleme gibi hesaplamalar yapmanıza olanak tanır. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() artık yeni öğelerin eklenmesine izin vermeyen MutableSet benzeri bir özel sınıfı kabul ediyor. (Icd314)
  • PointerIcon artık bir @Stable arayüzü (I9dafe) oldu
  • PointerInputChange için kısmi tüketim (aşağı VEYA konum) kullanımdan kaldırıldı. Değişikliği tamamen kullanmak için consume() kullanabilirsiniz. Başka birinin daha önce değişikliği yapıp yapmadığını belirlemek için isConsumed kullanabilirsiniz.
  • PointerInputChange::copy() artık her zaman yüzeysel bir kopya oluşturuyor. Bu, PointerInputChange kopyalarının, kopyalardan biri kullanıldığında tüketileceği anlamına gelir. Bağlı olmayan bir PointerInputChange oluşturmak istiyorsanız bunun yerine oluşturucu kullanın. (Ie6be4, b/225669674)
  • Oluştur > Görüntüle yönünde Oluştur ve Görüntüle yönü arasında İç İçe Yerleştirilmiş Kaydırma birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturma ana yayıncısının, iç içe yerleştirilmiş bir kaydırma görünümünden iç içe yerleştirilmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
  • Compose'un View sistemi için tasarlanan UIAutomator testleriyle uyumlu olmasını sağlamak için kullanılabilecek yeni SemanticsProperty testTagsAsResourceId. (I39c20)
  • FontFamily.SansSerif kullanılırken Android'deki sistem yazı tipleri için mevcut tüm ağırlıkları görüntüleyin. Bu, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adlarını kullanır. API 21-28'de daha önce yalnızca 400 ve 700 ağırlıkları desteklendiği için bu davranış değişikliğidir. (I380fe, b/156048036, b/226441992)
  • Paragraf ve Çok paragraflı eğitmenler, konumsal bağımsız değişkenlerin yerini isteğe bağlı bağımsız değişkenlerden önce olacak şekilde yeniden sıraladı. (Idafaa)
  • AndroidFont, artık typefaceLoader'ı oluşturucu parametre olarak alıyor. (I2c971)

Sürüm 1.2.0-alpha07

6 Nisan 2022

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

API Değişiklikleri

  • Yeni Snapshot.withoutReadObservation { ... } işlevi eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan iletilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak, ancak gereksiz yeniden birleşmeye veya yeniden ölçüme neden olmadan değeri okuyabilmek istediğiniz kullanım durumlarında bu özellikten yararlanabilirsiniz. (I9f365, b/214054486)
  • ComposeView ürününün consumeWindowInsets uzantı özelliği, geliştiricilerin Android WindowInsets kullanımını devre dışı bırakmasına olanak tanır. Bu, hiyerarşide birbirinden farklı ComposeViews öğelerinin, birbirlerine müdahale etmeden her birine WindowInsets uygulamasına olanak tanır. (I0ef08, b/220943142)
  • Özellikle IME'de ondalık ayırıcı eklemek için Keyboard.Number yerine KeyboardType.Decimal eklendi. (Iec4c8, b/209835363)
  • PointerEventType.Scroll ve PointerEvent.scrollDelta artık kararlı API'ler (I574c5, b/225669674)
  • View sınıflarının birlikte kullanılması için Görünüm ve Oluştur arasında Nested Scroll birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturma özelliğinin artık kaydırma deltalarını (birlikte çalışan) bir View üst öğesine gönderebileceği anlamına gelir. (I5d1ac, b/174348612)
  • FontFamily.Resolver, sistem genelinde kalın metin erişilebilirlik ayarını entegre edecek şekilde güncellendi (I6c1e7)
  • Font(AssetManager, String, ...) desteği sonlandırıldı ve Font(String, AssetManager, ...) ile değiştirildi. Bu, deneysel bir API'dir. (I1c7a4)
  • Yazı tipi yedek zincirleri sırasında isteğe bağlı olarak sistem tarafından yüklenmiş yazı tiplerini aramak için yeni yazı tipi tanımlayıcısı Font(DeviceFontFamilyName) ekleyin. (I30468, b/219754572)
  • TextStyle/ParagrafStyle'da includeFontPadding için geçici uyumluluk yapılandırması eklendi. includeFontPadding, TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) üzerinden değiştirilebilir. Bu, taşımayı etkinleştirmek için kullanılan geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808)
  • Hata ayıklama yardımı için GoogleFont.Provider.isAvailableOnDevice uzantısını ekleyin. (I64e31)
  • @ArrayRes ile kullanmak üzere GoogleFont.Provider oluşturucu ekleyin (Ic5ee1, b/225984280)
  • Compose GoogleFont artık Font(GoogleFont) olarak adlandırılıyor. Diğer durumlarda API kararlılığını koruyacak. (I125f2)

Hata Düzeltmeleri

  • İç dolgunun kullanıldığından emin olmak için malzemeye/destek iskeletine tüy kontrolü eklendi (Ifb111)

Sürüm 1.2.0-alpha06

23 Mart 2022

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

API Değişiklikleri

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

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

  • RSB etkinliklerine (Ief8ae) etkinlik zamanı eklendi

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

  • Hem RecyclerView hem de Compose yeni sürüme geçirildiğinde artık çocuklar için Compose görünümlerine sahip RecyclerView'ların kaydırma performansı çok daha iyi olacaktır.

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

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

  • Çoklu önizleme özelliğini eklemenin ilk adımı olarak @Preview ile ek açıklama sınıflarına not ekleme desteği eklendi. Bu tür ek açıklamalar, Oluşturulabilir yöntemler veya diğer ek açıklama sınıflarına açıklama eklemek için kullanılabilir ve bunlar, belirtilen @Preview ile dolaylı olarak not eklenmiş olarak kabul edilebilir. (I12eff)

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

Hata Düzeltmeleri

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

Harici Katkı

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

Sürüm 1.2.0-alpha05

9 Mart 2022

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

API Değişiklikleri

  • TextToolbar artık ActionCallback yerine lambda bağımsız değişkenlerini alıyor. (Ib2eb9, b/197950089)
  • Çekirdek ve uygulamadaki boş değer, Tiramisu DP2 (I0cbb7) ile eşleşecek şekilde güncellendi
  • Ölçülen arayüz artık parentData mülkünü (I3313f) gösteriyor.
  • Modifier.onPlaced ve OnPlacedModifier arayüzü artık kararlı. (Ib5482)
  • Harika! Animasyon 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ştiricisi eklendi (If8b51, b/184670295)
  • Metin: includeFontPadding artık varsayılan olarak devre dışı. includeFontPadding=false nedeniyle ortaya çıkan kayma sorunları ele alınır ve uzun komut dosyaları için klip oluşturmamanız gerekir. (I31c84, b/171394808)

Hata Düzeltmeleri

  • ComposeContentTestRule.setContent, halihazırda içerik varken içerik ayarlamaya çalışırsanız IllegalStateException işlevi gönderir. (I888a5, b/199631334)
  • Android'de panodan okuma yaparken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (I06020, b/197769306)
  • RSB kaydırma örneklerini iyileştirin. (I6a596)

Harici Katkı

  • Kotlinx eş yordamları 1.6.0 (I3366d) kullanılacak şekilde güncellendi

Sürüm 1.2.0-alpha04

23 Şubat 2022

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

API Değişiklikleri

  • composable işlevin, kullanmak üzere tasarlanmadığı bir uygulayıcıyı hedefleme olarak adlandırıldığı durumların derleme zamanı raporlanmasına olanak tanıyan ComposableTarget, ComposableTargetMarker ve ComposableOpenTarget özellikleri eklendi.

    Çoğu durumda, ek açıklamalar, derleyici eklentisi tarafından tahmin edilebilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Tahmin edilemeyen durumlar arasında özel uygulayıcı, soyut composable işlevleri (arayüz yöntemleri gibi), composable lambda olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler tahmin edilir) oluşturup kullanma veya ComposeNode ya da ilgili bir composable işlevlerinin kullanılması yer alır.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode çağrısı yapan composable işlevlerin, işlev ve composable lambda parametre türleri için bir ComposableTarget ek açıklaması eklemesi gerekir. Bununla birlikte, ComposableTargetMarker ile ek açıklama eklenen bir ek açıklama oluşturmanız ve daha sonra, doğrudan ComposableTarget yerine işaretlenen ek açıklamanın kullanılması önerilir. ComposableTargetMarker ile işaretlenmiş bir composable ek açıklama, uygulayıcı parametresi olarak özellik sınıfının tam nitelikli adına sahip 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 loadstratejisini kullanmaya başlıyor. (Ief3d2)

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

  • Metinde (I77057, b/214587005) eşzamansız yazı tipi yükleme desteği

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

Hata Düzeltmeleri

  • Sağlanan FontFamily.Resolver, Popup gibi alt bileşenlere iletilir.
  • Sağlanan Font.ResourceLoader, Popup gibi alt bileşenlere iletilir. (I48fa5)

Sürüm 1.2.0-alpha03

9 Şubat 2022

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

API Değişiklikleri

  • TextInputSession ve TextInputService işlevlerindeki notifyFocusedRect yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerine BringIntoViewRequester kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)
  • RenderNode saplama sınıfında destroyDisplayListData yöntemi kullanıldı (I1e659, b/216660268)
  • Önceden oluşturduğunuz SubcomposeLayout öğesinin alt öğelerini önceden ölçmeye olanak tanıyan yeni bir API eklendi. (I857ea)
  • Oluşturulabilir bir lambdayı, durumunu ve karşılık gelen düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren movableContentOf eklendi. Önceki çağrı besteden ayrıldığında durum geçici olarak korunur ve besteye yeni bir lambda çağrısı 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'sı aynı bileşimde birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Ayrıca, çağrılar besteden çıkıp yeni çağrılar girdikçe durum, ilk çıkış çağrılarından girdikleri sırayla giriş çağrılarına taşınır. Yeni çağrılar tarafından hak talebinde bulunulmayan tüm durumlar kalıcı olarak kaldırılır. (Ib4850)

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

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

  • Paragraf ve MultiParagraph artık FontFamily.Resolver yer alıyor

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

  • Yedek davranışlı eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text ve TextField tarafından kullanılır ve FontFamilymamışr üzerinden

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

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

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

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

  • Font.AndroidResourceLoader uzantı işlevi, bileşim dışında olduğunda Font.ResourceLoader oluşturulmasına olanak tanır.

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

  • Typeface(FontFamily) oluşturucu desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri 10 saniyeyi bulabilir. İndirilebilir yazı tipleriyle bu çağrı 10 saniye boyunca bloke olabilir. Bunun yerine FontFamilyResolver.preload politikasını 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 10 saniyeyi bulabilir. Bunun yerine FontFamilyResolver.preload kullanın (If8e7c, b/174162090)

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

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

  • Genel API'de olması amaçlanmayan ve hiçbir faydası olmayan AndroidComposeTestRule.AndroidComposeStatement desteği sonlandırıldı. (Ibc46b)

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

  • Kaldırılan FontLoadingStrategy.values (I42a9d, b/174162090)

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

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

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

Hata Düzeltmeleri

  • Metin alanları artık odaklanıldığında ve klavye gösterildiğinde (yumuşak giriş modu ADJUST_PAN) klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120)
  • Masaüstünde, FontFamily.Resolver için yerel beste kullanılır
  • Masaüstü FontLoader desteği sonlandırıldı
  • Masaüstünde yeni createFontFamilyResolver fabrikası (I6bbbb, b/174162090)
  • Odak metin alanları arasında değiştirilirken yumuşak klavye giriş türü artık titreşmiyor. (I1bf50, b/187746439)

Sürüm 1.2.0-alpha02

26 Ocak 2022

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

API Değişiklikleri

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

Harici Katkı

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

Sürüm 1.2.0-alpha01

12 Ocak 2022

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

API Değişiklikleri

  • FontFamily.canLoadSynchronously kullanımdan kaldırıldı. Bu özelliğin anlamsal bir anlamı yoktur. (Ica5ef)
  • Düzen İnceleyici'de değişken kimlikler oluşturmak için CompositionData öğesine kimlik alanı eklendi. (Ic116e)
  • Wear OS cihaz kimlikleri, Cihaz önizleme listesine eklendi (I93232)

Bağımlılık Güncellemeleri

  • Artık Kotlin 1.6.10 bağlı.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

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

Hata Düzeltmeleri

Sürüm 1.1.0

9 Şubat 2022

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

1.0.0'dan bu yana önemli değişiklikler

  • Android 12 Fazla kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmasıyla ilgili iyileştirmeler
    • Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını dokunma hedefi boyutu ile ilgili Materyal erişilebilirlik yönergelerine uygun olacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olacak şekilde ayarlasanız bile düğmenin dokunma hedefi en az 48x48 dp boyutuna genişler. Bu, Oluştur Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ile Oluştur'u birlikte kullandığınızda tutarlı davranış sağlar. Bu değişiklik, Materyal Oluşturma bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda, dokunma hedefi erişilebilirliğiyle ilgili minimum gereksinimlerin karşılanmasını da sağlar.
  • Navigasyon Rayı için Kararlı Destek
  • Daha önce deneysel olan bir dizi API'yi kararlı sürüme geçirir
  • 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ınlandı. Sürüm 1.1.0-rc03 bu kaydetmeleri içerir.

Hata Düzeltmeleri

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

Sürüm 1.1.0-rc01

15 Aralık 2021

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

Hata Düzeltmeleri

  • Erişilebilirlik kaydırma işlemlerinin eksik olmasına yol açan bir hata düzeltildi (I7cbfb)
  • SemanticsNodeInteraction.captureToImage() artık HardwareRenderer.isDrawingEnabled() false ise görüşme süresince (Idf3d0) etkinleştirildiğinde de çalışacak

Sürüm 1.1.0-beta04

1 Aralık 2021

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

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi

API Değişiklikleri

  • androidx.core.view içindeki null değerleri temizlendi (I7078a, b/204917439)
  • Kullanıcıların PointerInputchange'i bir bütün olarak kullanmasına veya tüketilip tüketilmediğini kontrol etmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
  • Kullanıcı arayüzü katmanına fare kaydırma tekerleği etkinlikleri için destek eklendi. (Ia14eb, b/198214718)
  • Eşitlik için karşılaştırılacak anahtarları kabul eden ve optimizasyonların atlanmasına uygun olan deneysel Modifier.composed aşırı yüklemeleri ekleyin. (Ice799, b/205851704)
  • ComposeNotIdleException artık doğrudan Throwable yerine Exception ile destekleniyor. Bu, Exception yakalayan yakalama ifadelerinin daha önce yakalayamadığı ComposeNotIdleException'ları artık yakalayabileceği anlamına gelir. (I9c217)

Hata Düzeltmeleri

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

Sürüm 1.1.0-beta03

17 Kasım 2021

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

API Değişiklikleri

  • Yerleşim değişikliğinin gözlemlenmesine izin vermek için yeni değiştirici Değiştirici.onPlaced eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine dayalı olarak alt değiştiricinin ofsetinde ek değişiklikler yapılabilir. (I558fd)
  • InjectionScope.flush() ve InjectionScope.dispose() kaldırıldı. Tüm etkinlikler temizlenir ve kapsam kaldırılır. Artık önceki gibi, "make*Input()" adlı yöntemin sonunda işlem tamamlanmış olur. (I2bed8)
  • MultiModalInjectionScope.Touch ve MultiModalInjectionScope.Mouse kaldırıldı. Çok modlu hareketler için dokunma ve fare etkinlikleri eklemek amacıyla artık MultiModalInjectionScope.touch() ve MultiModalInjectionScope.mouse() kullanabilirsiniz. Her ikisi de bu modalitenin alıcı kapsamına sahip lambda'ları kabul eder. (Idde18)

Hata Düzeltmeleri

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

Sürüm 1.1.0-beta02

3 Kasım 2021

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

API Değişiklikleri

  • Ebeveynlerin ekranı kaydırarak öğeyi görünüme getirmeleri için istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459)
  • Araçları desteklemek için yeni animasyon API'leri. Özellikle, araçların geçişlerdeki animasyonları ve yapılandırmalarını incelemesine olanak tanırlar. (I4116e)

Harici Katkı

  • Değiştirici.pointerHoverIcon eklendi (I95f01)

Sürüm 1.1.0-beta01

27 Ekim 2021

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

API Değişiklikleri

  • Ebeveynlere, ekranı kaydırarak öğeyi ekrana getirebilmeleri için istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459)
  • Araçları desteklemek için yeni animasyon API'leri. Özellikle, araçların geçişlerdeki animasyonları ve yapılandırmalarını incelemesine olanak tanırlar. (I4116e)

Sürüm 1.1.0-alpha06

13 Ekim 2021

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

API Değişiklikleri

  • ExperimentalComposeUiApi öğesini ViewRootForInspector ve LayoutInfo.ownerViewId (I5c2e3) öğelerinden kaldırın
  • Düzen için, verimlilik artırılarak çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
  • Modüller arası (I1aa0b) olarak çağrılması gereken InternalCompilerApi, Composer yöntemlerinden kaldırıldı
  • SemanticsNodeInteraction.performSemanticsAction, artık işlevin çağrıldığı SemanticsNodeInteraction değerini döndürüyor. (I9e5db)
  • TouchMode/NonTouchMode'un algılanması için LocalInputModeManager CompositionLocal öğesi eklendi. (I6a83c, b/175899786)
  • Tüketicilerin uzun basma zaman aşımı gibi işlemlerde doğru değeri alabilmesi için LayoutInfo paketine viewConfiguration: ViewConfiguration eklendi. (I76ca6)
    • Testlerin uzun basma zaman aşımı veya dokunma geçişi gibi unsurlara göre giriş yerleştirmeyi ayarlamasına izin vermek için InjectionScope ürününe viewConfiguration: ViewConfiguration eklendi.
    • Hem dokunma hem de fare girişi için uzun basma ve iki kez dokunma işleminin varsayılan süresi InjectionScope.viewConfiguration içindeki değerlere dayalı olacak şekilde değiştirildi.
  • İçerisinde TextField ve Dropdown Menu bulunan (If60b2) ExposedDropdown MenuBox temel alınarak ExposedDropdown Menu'nün uygulanması
  • offOnOutClick, PopupProperties'e eklendi ve desteği sonlandırılan CloseOnClickOutside'ın yerini aldı. Yeni mülk, tıklama konumunu ve bağlantı sınırlarını alarak oncloseRequest'in çağrılıp çağrılamayacağı konusunda daha hassas kontrol sağlar. Örneğin bu, sabite yapılan dokunuşlar için çapanın kapatılmasını önlemek için yararlı olabilir.
    • UpdateAndroidWindowManagerFlags, PopupProperties'e eklendi ve pop-up tarafından Android WindowManager'a geçirilen işaretler üzerinde alt düzey kontrol sağladı. Lambda parametresi, WindowManager flag'leriyle sonuçlanan PopupProperties değerlerinden hesaplanan işaretler olacaktır: Ör. odaklanılabilir. Lambda'nın sonucu, Android WindowManager'a aktarılacak son flag'ler olur. Varsayılan olarak, updateAndroidWindowManagerFlags parametrelerden hesaplanan işaretleri değiştirmez. Bu API, yalnızca pop-up'ın çok belirli davranış gereksinimlerinin olduğu durumlarda dikkatli kullanılmalıdır. (I6e9f9)
  • Recomposer.state desteği sonlandırıldı ve türünü StateFlow (Ic2ab3, b/197773820) olarak değiştirmek için Recomposer.currentState ile değiştirildi
  • flush() ve dispose(), InjectionScope koleksiyonuna eklendi. Bunları, sıraya alınmış tüm etkinlikleri hemen temizlemek ve kapsamı silmek istediğinizde kullanabilirsiniz. (Ifb73a)
  • Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştiriciyle eşleşen içeriğe kaydıran performScrollToNode(matcher: SemanticsMatcher) eklendi. (Ic1cb8)
  • InjectionScope artık Density özelliğini uygulayarak performTouchInput ve arkadaşlarınızda px ile dp arasında kolayca dönüştürme yapmanızı sağlar. (I8fe1f)

Hata Düzeltmeleri

  • AndroidView artık ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner makalelerindeki LocalLifecycleSahip ve LocalSavedStateRegistryOwner öğelerini görünümüne uygular. (I38f96, b/179708470)
  • WearOS Hızlı Kaydırma Kutusu'nun bazen kaydırma işlemlerini yapmaması sorununu düzeltin. (I9387e)
  • Yerleştirilen giriş etkinlikleri arasındaki varsayılan süre 10 ms. olarak 16 ms. olarak değiştirildi. Bu, belirli bir kaydırma gibi giriş hareketlerini gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)

Sürüm 1.1.0-alpha05

29 Eylül 2021

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

API Değişiklikleri

  • Moderler arası iletişim desteği eklendi (Id5467, b/198826874)
  • PointerEventChange'e deneysel geçmiş işaretçiler eklendi. (Ic1fd8, b/197553056, b/199921305)
  • density: Density ve layoutDirection: LayoutDirection, LayoutInfo koleksiyonuna eklendi. Bu, LayoutInfo tüketicilerinin LayoutInfo içinde gösterilen boyutları ve konumu doğru bir şekilde yorumlamasına olanak tanır. (I002f1)
  • Fare etkinlikleri eklemek için deneysel destek eklendi. Fare etkinlikleri göndermeye başlamak için performMouseInput kullanın veya performMultiModalInput ile çok modlu giriş hareketi yaparken MultiModalInjectionScope öğesinin Mouse özelliği üzerinden fare etkinlikleri gönderin. Kullanılabilir API ile ilgili belgeler için MouseInjectionScope adresini ziyaret edin. (Iaa4a8, b/190493367)

Hata Düzeltmeleri

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

Sürüm 1.1.0-alpha04

15 Eylül 2021

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

API Değişiklikleri

  • PointerEvent, fareyle üzerine gelme etkinliklerini destekleyen bir PointerEventType özelliğine sahip. (I091fa)
  • Çocukların, ebeveynin işaretçi giriş sınırlarının dışında işaretçi girişini kabul etmesine izin ver. Ebeveynler bu çağrılara PointerInputScope.alwaysInterceptChildEvents özelliği (I9eae3, b/192479655) ile müdahale edebilir.
  • performGesture ve GestureScope kullanımdan kaldırıldı. Bunların yerini performTouchInput ve TouchInjectionScope aldı. (Ia5f3f, b/190493367)
  • Geliştiricilerin dokunma hedeflerinin, minimum erişilebilirlik değerlerini karşılayabilmesi için SemanticsNode bölümüne minimum dokunma hedefi boyutunu içeren touchBoundsInRoot eklendi. (I2e14b, b/197751214)
  • İncelenebilir (I927bc, b/191017532) uygulamasını yeniden yap
  • İncelenebilir olan parametre adı, oluşturulanlarla eşleşecek şekilde değiştirildi (I3a482, b/191017532)
  • performTouchInput ve TouchInjectionScope yerine performTouchInput ve TouchInjectionScope kullanılmaya başlanarak diğer yöntemlere (ör. fare) de zemin hazırlandı.

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

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

    1. İşaretçiler bir taşıma etkinliği gönderilmeden taşınmış durumdayken (diğer bir deyişle, updatePointerTo() kullanılmış ancak move() kullanılmamış ve ardından down() çağrıldığında) bir aşağı etkinliği gönderirken, önceki uygulama etkinlik zamanını ilerletir ve aşağı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu senaryoda etkinlik süresini uzatmaz.
    2. Taşıma etkinliği gönderilmeden işaretçiler taşınırken (yukarıdaki gibi) bir yukarı etkinlik gönderildiğinde (yukarıdakine benzer şekilde), önceki uygulama etkinlik zamanını ilerletir ve yukarı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama şunları da yapmaz: İşaretçilerin yeni konumları yalnızca yukarı etkinliği aracılığıyla yansıtılır.

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

Hata Düzeltmeleri

  • Minimum dokunma hedefi amacıyla klibin dokunma hedefi sınırlarını klip bölgesinin dışına çıkarmasına izin verin. (I43e10, b/171509422)
  • Android 12 cihazlara fazladan kaydırma desteği eklendi. (Iccf3c, b/171682480)

Sürüm 1.1.0-alpha03

1 Eylül 2021

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

Yeni Özellikler

  • Oluşturma 1.1.0-alpha03, Kotlin 1.5.30 öğesine 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ı basitleştirmek için daha yaygın olarak kullanılan klip işareti ve TileMode kombinasyonlarına BlurredEdgeTreatment API eklendi. Çoğu kullanım alanı, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına izin vermeyi ve şeffaf siyah ile bu sınırların dışındaki bölgeleri bulanıklaştırmayı ya da içerik sınırlarını aşan bulanıklaştırma çekirdekleri için en yakın kenardan örnek alarak içeriği içerik sınırlarına kırpmayı içerir. (I6b4b7, b/166927547)
  • Oluşturma masaüstünde RenderEffect desteği eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklaştırma görsel efektleri eklemenin basit bir yolu olarak OffsetEffect'in yanı sıra bulanıklaştırma değiştiricisi de kullanıma sunuldu. (I0f6aa, b/166927547)
  • Katmanın içeriğini değiştirmek için isteğe bağlı olarak Modifier.graphicsLayer ile yapılandırılabilen RenderEffect API kullanıma sunuldu. Bu özellik, bir beste hiyerarşisindeki bir composable'ın ve alt composable'ların içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547)
  • AwaitPointerEventScope artık withYasaklama() ve withSFTPOrNull() işlevini içeriyor (I507f0, b/179239764, b/182397793)
  • Erişilebilirliği sağlamak amacıyla, anlambilim ve işaretçi girişinde kullanılması için ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
  • Bulanıklaştırma tabanlı RenderEffects için uç davranışını tanımlamada yararlı olan TileMode.Decal desteği ekleyin. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction ve hasScrollToKeyAction artık kararlı API'ler (I142ae, b/178483889)
  • Kısaltılmış sınırları almak için test yöntemi eklendi. (I6b28e)

Hata Düzeltmeleri

  • Şekil parametresinin null olup olmadığını açıkça kontrol etmek amacıyla bulanıklaştırılan isBounded yöntemi bulanıklaştırılmıştır. (I85d68)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

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

API Değişiklikleri

  • PointerEvent'te artık fare düğmesi durumunu ve klavye değiştirici durumunu okuma destekleniyor. (I6310c, b/180075467)
  • Eklenen hareketler artık zaman için doğru kaynak olarak MainTestClock'un saatini kullanıyor. performGesture hücresindeki yerleştirilen etkinliklerin mevcut saati, MainTestClock'un geçerli saatine göre başlatılır. (Ifb364, b/192064452)
  • DpRect(DpOffset, DpSize) oluşturucu eklendi (I2cf16, b/194219828)
  • Eklenen DpSize sınıfı (I7abb1, b/194219828)

Hata Düzeltmeleri

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

Sürüm 1.1.0-alpha01

4 Ağustos 2021

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

API Değişiklikleri

  • RelocationRequester.bringIntoView, artık composable'ın bir bölümünü görünüme getirmemizi sağlayan dikdörtgenleri parametre olarak kabul ediyor (Ice2c5, b/194330245)
  • AnimatedImageVector ve ilgili API'ler artık yeni androidx.compose.animation:animation-graphics modülünde. (I60873)
  • Yer değiştirme isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
  • ColorPainter'a benzer şekilde, bir Boyacı'da rastgele bir Fırça çizimini desteklemek için BrushPainter API'yi kullanıma sunduk

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

  • İsteğe bağlıFilter Quality parametresini kullanmak için kaynak ve hedef dikdörtgenleri tüketen DrawScope#drawImage yöntemi güncellendi. Bu, piksel tabanlı resimler için ölçeklendirildiğinde pikselleştirilmek üzere tasarlanmış piksel sanatı için faydalıdır. Biteş

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

Hata Düzeltmeleri

  • Çizim değiştiricileri zincirlemesini daha iyi desteklemek için Değiştirici.paint uygulamasının çizimler için çağrı yaptığından emin olun. Daha önce Modifier.paint'in Değiştiriciler zincirinde bir yaprak düğümü olması bekleniyordu. Ancak bu şekilde, bir composable container (ör. kutu) üzerinde yapılandırılması ya da üstüne Modifier.paint().border() gibi ilave süsleme eklenmesi engelleniyordu. Belirli bir boyacının içeriğini çizdikten sonra Modifier.paint çağrısı yaptıktan sonradrawContent'i çağırırsanız, değiştirici kalıbıyla davranış açısından daha iyi bir davranış tutarlılığı sağlanır. (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 politikasını false (yanlış) olarak ayarlayın. (Iffaed, b/192682388)
  • InfiniteAnimationPolicy, :compose:ui (I5eb09, b/160602714) klasörüne taşındı
  • Tembel listeler ve normal kaydırma bileşenleri için anlamsal işlemler aracılığıyla kaydırma işlemi artık animasyonlu (Id9066, b/190742024)

Sürüm 1.0

Sürüm 1.0.5

3 Kasım 2021

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

Hata Düzeltmeleri

  • TüretilmişStateOf örneklerindeki kilitlenme izleme sorunu düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

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

Bağımlılık Güncellemeleri

  • Kotlin'e (1.5.31) bağlı olarak güncellendi

Sürüm 1.0.3

29 Eylül 2021

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

Bağımlılık Güncellemeleri

  • Kotlin'e (1.5.30) bağlı olarak güncellendi

Sürüm 1.0.2

1 Eylül 2021

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

Compose 1.0.2 sürümünü desteklemek üzere güncellendi. Oluşturulan 1.0.2, Kotlin 1.5.21 ile hâlâ uyumlu.

Sürüm 1.0.1

4 Ağustos 2021

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

Bağımlılık Güncellemeleri

  • Kotlin 1.5.21 kaynağına bağlı olarak güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

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

1.0.0'ın temel özellikleri

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi 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 şu kilitlenmeyle karşılaşabilirsiniz:

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

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

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.ui:ui-*:1.0.0-rc02 yayınlandı. Sürüm 1.0.0-rc02 bu kaydetmeleri 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 politikasını false (yanlış) olarak ayarlayın. (Iffaed, b/192682388)

Sürüm 1.0.0-rc01

1 Temmuz 2021

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

Yeni Özellikler

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

API Değişiklikleri

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

Davranış Değişiklikleri

  • Compose @Preview artık mevcut sahibe bağlı rememberLauncherForActivityResult() gibi API'ler kullanan Bestelenebilir Öğeleri önizlemenize olanak tanıyan bir LocalActivityResultRegistryOwner sağlıyor. (Ib13d1, b/185693006)
  • Compose @Preview artık mevcut sahibe bağlı BackHandler gibi API'ler kullanan Bestelenebilir Öğeleri önizlemenize olanak tanıyan bir LocalOnBackPressedDispatcherOwner sağlıyor. (Ia1c05, b/185693006)

Hata Düzeltmeleri

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

Sürüm 1.0.0-beta09

16 Haziran 2021

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • Anahtar sabit değerleri şimdilik @DeneyselComposeUiApi'dir. Kodu kullanmak, sabitlemeden önce özel sabit değerleri bildirebilir. (Ia5d48)
  • Compose testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tespit edilmiştir:
    • Yerel bit eşlem olmadığından ImageBitmap(), bir NullPointerException oluşturur.
    • Çizim yok. Bu nedenle captureToImage(), süresiz olarak bir sonraki çekiliş pasını (yani, kilitlenmeyi) bekleyecek.
    • Yazı tipi yüklenmediğinden metinler yanlış ölçülecek. Tüm karakterlerin yüksekliği yaklaşık 20 piksel, genişliği ise 1 piksel sabittir.
    • ComposeTestRule.waitUntil {}, ana iş parçacığını beklemedeyken çalıştırmadığı için ComposeTestRule.mainClock.advanceTimeUntil {} ile tamamen aynı işleve sahiptir. Gelecekte daha fazla kısıtlamanın tanımlanması bekleniyor. (I284fa)

Eklenen Profil Kuralları

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

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.temel
  • androidx.compose.foundation-layout
  • androidx.compose.malzeme
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.grafikler
  • androidx.compose.ui.metin
  • androidx.compose.ui.metin
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Profil kuralları nedir?

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

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

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

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

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

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

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

Kurallar ne işe yarar?

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

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

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

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

Nasıl çalışır?

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

Sürüm 1.0.0-beta08

2 Haziran 2021

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

API Değişiklikleri

  • NestedScrollSource sıralaması satır içi bir sınıfla değiştirildi. (Ie321b, b/187055290)
  • FocusManager.clearFocus(forcedClear = true), FocusManager.clearFocus(force = true) (Ia0c41) olarak yeniden adlandırıldı
  • Yeni enum değerleri eklendiğinde ifadelerle ilgili olası sorunları önlemek için enum kullanımları satır içi sınıflarda yeniden düzenlendi. (I2b5eb)
  • @ExperimentalComposeUiApi kullanıcısını PopupProperties sitesinden kaldır. (I01fa6)
  • PointerType, numaralandırmadan satır içi sınıf olarak değiştirildi (If5058)
  • ContentDescription ve Metin anlamları özellikleri artık tek değerler değil, listeler. Bu sayede, birleştirme yerine oldukları gibi birleştirilebilirler. Ayrıca bu değişikliklerden yararlanmaları 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şlev değil (I727f6, b/186109675)
  • KeyboardType sıralaması satır içi bir sınıfla değiştirildi. (I73045, b/187055290)
  • FocusState sıralaması FocusState arayüzüyle değiştirildi (Iccc1a, b/187055290)
  • ImeAction sıralaması satır içi bir sınıfla değiştirilir. (I18be5, b/187055290)
  • PlaceholderVerticalAlign, satır içi sınıfa dönüştürüldü. (If6290)
  • TextUnitType artık satır içi bir sınıf. (I4cba9)
  • AnnotatedString.withAnnotation işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi. (I0cd0a)
    • TextUnitType içeren TextUnit oluşturucusu, ExperimentalComposeApi yerine artık ExperimentalTextApi oldu.

Hata Düzeltmeleri

  • Beta07'de kullanıma sunulan, LazyColumn/Satır öğelerinin kaydırmadan sonra kısmen gösterildiği hata düzeltildi (I8c9ac, b/188566058)
  • Şimdi detectDragGesures, detectVerticalGestures ve detectHorizontalGestures konum değişikliğini otomatik olarak kullanacak, onDrag geri çağırmalarında change.consumePositionChange çağrılmaya gerek yok (I42fc4, b/185096350, b/187320697)
  • Hizalama çizgileri sağlayan LayoutModifiers sorunu düzeltildi. Alt öğelerin hizalama satırları değişirken üst öğenin yeniden ölçülmemesine neden olan bir hata düzeltildi. (I4401f, b/174315652)
  • Modifier.onGloballyPositioned(), tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirinde bu değiştiricinin koordinatlarını raporlayacak şekilde değiştirildi. Bu, artık değiştiricilerin sırasının, hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)

Sürüm 1.0.0-beta07

18 Mayıs 2021

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

API Değişiklikleri

  • Denetleyicide kullanılmak üzere ViewRootForInspector arayüzü eklendi (Ib70df)
  • SubcomposeLayoutState artık yeniden kullanılabilir yuva sayısının ayarlanmasını destekliyor. Düzen, bir dahaki sefer yeni bir alana ihtiyacımız olduğunda yeniden alanın yeniden kullanılabilmesi için bu sayım slotlarını etkin durumda tutar (Ieb981).
  • KeyEventType sıralaması satır içi bir sınıfla değiştirildi. (Id670a, b/187055290)
  • FocusDirection sıralaması satır içi bir sınıfla değiştirildi. (Ib6d03, b/187055290, b/184086802)
  • SubcomposeLayout durumunu kaldırma becerisi sunar. Bu durum, içeriği gerekli bir slotId şeklinde önceden derleyebilmenizi sağlar. Böylece, bir dahaki sefere kompozisyona ihtiyaç duyulmayacağı belirtilen slotId ile alt derleme yapmaya çalıştığımızda, bir sonraki ölçüm geçişi daha hızlı yapılır. (I42580, b/184940225)
  • Klip seçimi için tutma yeri eklendi (Iff80d, b/183408447)
  • Layoutİnceleyici desteğiyle ilgili kullanılmayan API'ler kaldırıldı. (I2ac78)

Hata Düzeltmeleri

  • LazyColumn/Row, önceden kaydırılmış olsalar bile artık önceden görünür olan en fazla 2 öğeyi etkin (imha edilmez) tutacak. Bu, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt besteleri yeniden kullanmasına olanak tanır. (Ie5555)
  • AnnotatedString üzerindeki TextGeomerticTransform ve TextDecoration belirtildiği şekilde uygulanır. (I61900, b/184760917)

Sürüm 1.0.0-beta06

5 Mayıs 2021

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

API Değişiklikleri

  • Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
  • @ComposeCompilerApi artık @RequiresOptIn (Iab690) değil
  • Erişilebilirlik hizmetleri için koleksiyonu ve öğelerini işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
  • Dizine eklenmiş öğeler içeren listeyi belirli bir dizine sahip öğeye kaydırmak için SemanticsActions.ScrollToIndex ve anahtarlı öğeler içeren listedeki bir öğenin dizinini almak için SemanticsProperties.IndexForKey eklendi. Her iki işlem de LazyList tarafından uygulanır.
    • Bir listeyi belirtilen dizine kaydıran SemanticsNodeInteraction.performScrollToIndex ve listeyi belirtilen anahtara sahip öğeye kaydıran SemanticsNodeInteraction.performScrollToKey eklendi. (I4fe63, b/178483889, b/161584524)
  • ownerViewId'yi GraphiclayerInfo'ya eklendi (I19f62)
  • Öğeler, File ve FileDescriptor (I5d382) öğelerinden yazı tipleri yüklemek için Font() aşırı yüklemeleri eklendi
  • Geçersiz giriş içeren bir düğümün işaretlenmesine olanak tanıyan error Erişilebilirlik API'si eklendi (I12997, b/180584804, b/182142737)
  • Öğeler, Dosya ve Dosya Tanımlayıcısı'ndan (I43007) yazı tipleri yüklemeye Font() aşırı yüklemesi eklendi
  • AnnotatedString, desteği şuraya kaydeder: TextFieldValue.Saver. AnnotatedString.Builder (I8cbdc, b/178446304) için addTtsAnnotation ve with Notlar yardımcı programı işlevleri eklendi
  • TextUnit oluşturucu işlevi eklendi TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

Sürüm 1.0.0-beta05

21 Nisan 2021

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

API Değişiklikleri

  • Deneme amaçlı FocusManager.moveFocus(In) ve FocusManager.moveFocus(Out) eklendi (Ic5534, b/183746743)
  • Deneysel performTextInputSelection API'si eklendi (I2dcbb, b/178510628)
  • InputEventCallback arayüzü kullanımdan kaldırıldı. Bu arayüz herkese açık herhangi bir API'de kullanılamıyordu ve kodda bu kullanılmadı. (I34a02, b/184003208)
  • TextLayoutResult/createTextLayoutResult işlevi kullanımdan kaldırıldı. Test için eklenmiş, kullanılmayan herkese açık bir işlevdir. İşlev, Compose metin API'leri için kullanılabilecek herhangi bir şey yapmaz. Bu işlev artık kullanımdan kaldırıldı ve daha sonra kaldırılacak. (I80413)

Hata Düzeltmeleri

  • ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown erişilebilirlik kaydırma işlemi düzeltildi. Kaydırılabilir öğenin sonuna kadar kaydırmak yerine, verilen yönde bir ekran kaydırılır. (Ieccb0)
  • ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumludur.

Sürüm 1.0.0-beta04

7 Nisan 2021

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

API Değişiklikleri

  • SoftwareKeyboardController üzerindeki hideSoftwareKeyboard ve showSoftwareKeyboard öğelerini sırasıyla hide() ve show() olarak yeniden adlandırın.
    • LocalYazılımKlavyeController için CompositionLocal arayüzünün tam sürümünü sağlayın ve bu arayüzün ayarlanmasını sağlayın (özellikle testlerde yararlıdır) (I579a6)
  • LiveRegion Accessibility API eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri, kullanıcıyı değişiklikleri hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946)
  • TextOverflow.visible kullanıma sunuldu. (Ic8f89)

Hata Düzeltmeleri

  • Hızlı kaydırmadan sonra kenarlarda bulunan LazyColumn/LazyRow öğelerinin yanlış yerleştirilmesi sorunu düzeltildi (Ie4d13, b/183877420)
  • AndroidViewBinding artık oluşturma hiyerarşisinden AndroidViewBinding kaldırıldığında FragmentContainerView ile şişirilmiş parçaları düzgün şekilde kaldırıyor. (Ib0248, b/179915946)
  • AndroidViewBinding, ComposeView öğeniz Fragment içinde olduğunda FragmentContainerView ile şişirilen parçaları artık doğru şekilde iç içe yerleştirir ve bu parçaların durumunu kaydedip geri yüklemeyle ilgili sorunları düzeltir. (I70eb0, b/179915946)
  • Compose ViewBinding, artık Parça 1.3.2'a bağlı ve artık yapılandırma değişikliklerinden sonra parçaları FragmentContainerView aracılığıyla şişirilmiş olarak gösteriyor. (I0743d, b/179915946)

Sürüm 1.0.0-beta03

24 Mart 2021

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

API Değişiklikleri

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

Sürüm 1.0.0-beta02

10 Mart 2021

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılın (I6aa29, b/174531520)
  • androidx.compose.ui:ui artık AppCompat veya Fragment'a bağlı değil. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 ve / veya Fragment 1.3 veya sonraki sürümleri kullandığınızdan emin olun. Bu sürümler, ComposeView için gerekli yaşam döngüsünü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak amacıyla gereklidir. (I1d6fa, b/161814404)
  • Gezinme oluşturma hedefinin içinde kullanıldığında bozuk rememberSaveable { mutableStateOf(0) } sorunu düzeltildi. (I1312b, b/180042685, b/180701630)
  • TextField'deki önceki SoftwareKlavyeController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController bileşimi yerel API'si eklendi. (I658b6, b/168778053)
  • ComposeRootRegistry öğesinin tearDownRegistry() (Iddce1) içindeki nadir görülen NoSuchElementException sorunu düzeltildi

Sürüm 1.0.0-beta01

24 Şubat 2021

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

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

API Değişiklikleri

  • detectDragGestures numaralı telefona başlangıçta geri çağırma özelliği eklendi (I67269, b/179995594)
  • Yerleşik öğelere göre boyutlandırma değiştiricileri artık deneysel değildir. (I15744)
  • MeasureBlocks, MeasurePolicy olarak yeniden adlandırılarak eğlenceli bir arayüze dönüştü. Düzen API'leri, MeasurePolicy kullanılacak şekilde güncellendi / basitleştirilmiş. (Icab48, b/167662468, b/156751158)
  • InteractionState, [Mutable]InteractionSource ile değiştirildi
    • Arayüzler, Etkileşim etkinliklerinin yayınlanmasından / toplamasından sorumludur.
    • interactionState = remember { InteractionState() } öğesini Button ve Modifier.clickable() gibi bileşenlere iletmek yerine interactionSource = remember { MutableInteractionSource() } kullanın.
    • Interaction.Pressed in interactionState yerine, InteractiveSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmanız gerekir.
    • Karmaşık kullanım alanları için EngagementSource.interactions akışını gözlemleyerek Etkileşimlerin akışını gözlemleyebilirsiniz. Daha fazla bilgi için EngagementSource belgelerine ve örneklerine bakın.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • CompositionLocals'a (I53520) AccessibilityMananger arayüzünü ve LocalAccessibilityMananger'ı ekleme
  • Kullanımdan kaldırılan LayoutKoordinatlar yöntemleri kaldırıldı, locationInParent ve boundsInParent özelliği yerine işlevi kullanın (I580ed, b/169874631, b/175142755)
  • Tür takma adları, temel türlerle değiştirilir:
    • 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 alt düzey metin bileşenlerinden giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
  • Placeable artık, alt düzenin gerçekte ölçüldüğü boyutu temsil edenmeasureSize değerini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
  • Erişilebilirlik amacıyla Sekme veya RadioButton koleksiyonunu işaretlemeye olanak tanıyan seçim Grubu değiştiricisi ekleyin (Ie5c29)
  • compositionLocalOf ve staticCompositionLocalOf için defaultFactory artık isteğe bağlı yerine zorunludur.

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

    Boş değer atanabilen türler için varsayılan fabrika olarak { null } sağlamayı deneyin.

    Makul bir varsayılan sağlanmadığı sürece, null olmayan türlere sahip yerellerin kullanılmasını önerilmez. Makul bir varsayılan yoksa defaultFactory lambdası bir istisna bildirmelidir. Ancak bir istisna atmak, yerel tüketicilerin tür sistemi tarafından zorunlu kılınmayan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)

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

  • Boyut değiştiricileri yeniden adlandırıldı. Değiştirici.genişlik/yükseklik/boyut, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Değiştirici.tercihWidth/PreferenceHeight/PreferenceSize, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)

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

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

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

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

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

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

    • Beste oluşturucu artık anahtar parametreleri kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst seviye bir işlev yerine derlenebilir üst düzey bir mülke dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
    • ComposableLambdaN, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
    • SnapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
    • Composer.collectKeySourceInfo bilgileri kaldırıldı. Artık gerekli değildir.
    • isJoinedKey,joinKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar artık gerekli değildir.
    • Çeşitli üst düzey API'ler taşındı ve farklı dosyalara yeniden düzenlendi. Bu, Kotlin'in dosya sınıfı semantiği nedeniyle ikili program uyumluluğunu bozar ancak kaynak uyumluluğunu bozmaz. Bu nedenle çoğu kullanıcı için sorun olmayacaktır.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent(), generate:ui öğesinden kaldırıldı. androidx.activity:activity-compose:1.3.0-alpha01 tarafından sağlanan adresi kullanın. viewModel() ve LocalViewModelStoreOwner, generate:ui'den kaldırıldı. androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b) kapsamındakileri kullanın

  • Değiştirici.scrollable yeniden düzenlendi. Artık ScrollableController sınıfının yerine Kaydırılabilir arayüz kullanılıyor (I4f5a5, b/174485541, b/175294473)

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

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

  • Desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932)

  • long PressHareketFilter ve doubleClickAdvertiserFilter kaldırıldı.

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

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

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

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

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

  • Modifier.vertical Scroll()/Yatay Kaydırma() işlevinde kaydırma konumu artık Ints ile temsil ediliyor (I81298)

  • FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)

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

  • Tüm metin alanlarından yazılım klavyesi geri çağırması kaldırıldı ve kısa süre içinde yeni bir API ile değiştirilecek. (Iae869, b/168778053)

  • FontSpan ve FontWeigthStyleSpan artık kullanılmıyor ve kaldırılıyor. (Ie5b56, b/177423444)

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

    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
    • BackdropScaffold'deki parametreler, gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesi için API yönergelerine uygun olacak şekilde yeniden sıralandı.
    • BottomGezinmeItem kutusundaki icon parametresi, selected ve onClick tarihinden sonra olacak şekilde taşındı.
    • BottomClicksItem öğesi içindeki alwaysShowLabels parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • Birkaç bileşendeki bodyContent parametre yalnızca content olarak yeniden adlandırıldı.
    • ButtonDefaults.buttonColors() içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediği için bunun kodunuzda hataya neden olmayacağını lütfen unutmayın. Lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde, kodunuz öncekiyle aynı şekilde çalışmaz.
    • darkColors() öğesine secondaryVariant parametresi eklendi. Bu renk, genellikle koyu temadaki secondary ile aynıdır ancak tutarlılık ve daha fazla özelleştirme sağlar.
    • Yaygın olarak kullanılmadığı / faydalı olmadığı için ElevationDefaults veAnimationElevation() öğelerini herkese açık API yüzeyinden kaldırdık.
    • Slider öğesindeki onValueChangeEnd, onValueChangeFinished olarak yeniden adlandırıldı ve boş değer olarak değiştirildi.
    • Tutarlılık sağlamak için Snackbar öğesindeki text parametresi content olarak yeniden adlandırıldı.
    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için DropdownMenuItem öğesine contentPadding parametresi eklendi ve content, RowScope öğesinde uzantı yapıldı.
    • ModalDrawerLayout adlı dosya ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout adlı dosya BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Hata Düzeltmeleri

  • Compose'daAnimationVectorDrawable kaynaklarını kullanmak için API eklendi. AnimasyonluResim Vektörü olarak <animated-vector> XML yüklemek ve bunu PainterFor (I8ea91) ile canlandırmak için animatedVectorResource öğesini kullanın.
  • TextField'deki önceki SoftwareKlavyeController arayüzünün yerini alacak yeni LocalYazılımKlavyeController bileşimi yerel API'si eklendi. (I658b6, b/168778053)

Sürüm 1.0.0-alpha12

10 Şubat 2021

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

API Değişiklikleri

  • UiApplier'dan ViewGroups desteği kaldırıldı. Desteği sonlandırılmış emitView composable'ları kaldırıldı. (Ifb214)
  • Modifier.pointerInput, artık işaretçi girişi algılama eş anlamlısının yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek için hatırlama tuşlarının kullanılmasını gerektiriyor. (I849cd)
  • CompositionReference, CompositionContext (I53fcb) olarak yeniden adlandırıldı
  • Sınırlar, DpRect (I4b32a) olarak yeniden adlandırıldı
  • Güncelleme testi: hasText(), metin alanında (Iab803) hem giriş hem de etiket/hint/yer tutucu metinleri kontrol eder.
  • viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose konumuna taşındı. Şimdi, bu etiketi kullanmak için ayrı bir bağımlılık (androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01) eklemeniz gerekir. (I7a374)
  • AccessibilityAction'da null işleme izin ver, AccessibilityAction ve CustomAccessibilityAction'da işlem etiketini CharSequence'dan String'e (I0dc82) değiştirin.
  • Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek amacıyla ImagePainter, paralel VectorPainter olarak BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
  • Artık bağımsız değişken olarak alt dize bulunan daha iyi alt dize test API'leri (Icbe78)
  • Lambda özel odaklama siparişi belirtmeden FocusRequester'ı kabul eden Modifier.focusOrder() eklendi. Bu, bir composable için özel odak sırası (I4f52a, b/179180978) değil, yalnızca referans belirtmemiz gerektiğinde faydalıdır
  • ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
  • Yıkım ve Copy() yöntemleri, nadiren kullanıldıkları bazı sınıflardan kaldırılmıştır. (I26702, b/178659281)
  • Pop-up, platforma özel olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve isFocusable, PopupProperties (Ieeea5) içindeki bir focusable parametresine taşındı.
  • İletişim kutusu platforma özel olacak şekilde taşındı. AndroidDialogProperties, DialogProperties olarak yeniden adlandırıldı. (I4ef69, b/179138130)
  • LayoutNode dahili olarak ayarlandı (I8a7b1, b/175103944)
  • Constraints.enforce, Constraints.Restrict ile değiştirildi. (I8b8ea)
  • loadFontResource desteği sonlandırıldı. Bunun yerine fontResource öğesini kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği kullanımdan kaldırılır. Bunun yerine PainterResource öğesini kullanın. (I6b809)
  • Performans nedeniyle, ScrollAxisRange semantiği artık doğrudan Kayma değerleri yerine Kayan Durumlar döndüren lambdalar almaktadır. (If4a35, b/178657186)
  • Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantiğini ve anlamı kontrol etmek için ilgili test yöntemlerini ekledi (I8e07a)
  • Sahip Katmanı/SahipScope/OwnerSnapshotObserver yapısı dahili (I4ffaf, b/175103944)
  • toIntPx(), roundToPx() olarak yeniden adlandırıldı. (I9b7e4, b/173502290)
  • IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
  • Snapshot API, API yönergeleriyle daha tutarlı olacak ve dahili uygulama sınıflarını herkese açık API'den gizleyecek şekilde güncellendi. (Id9e32)
  • Genişletme ve daraltma anlamsal işlemleri eklendi. ModalBottomSheetState'e (Ib5064) "expand ve "throughexpand" özelliği eklendi
  • Değiştirici.dragmotionFilter desteği sonlandırıldı. Bunun yerine Modifier.pointerInput { detectDragGestures (...)} politikasını kullanın. Alternatif olarak, bir eksendeki sürüklemeler için Değiştirici.draggable'ı kullanın (I0ba93, b/175294473)
  • Ambients, Ambient -> CompositionLocal adıyla eşleşecek şekilde yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılıyorken CompositionLocals artık LocalFoo olarak adlandırılıyor. (I2d55d)
  • Kullanımdan kaldırılan BaseTextField alanı artık kaldırılmıştır. Bunun yerine BasicTextField alanını kullanın. (I71368)
  • Seçim, temele taşındı. (I7892b)
  • Daha önce state { 0 } composable'ı kaldırıp remember { mutableStateOf(0) } gibi kullanımları teşvik etme şeklimize benzer şekilde, savedInstanceState { 0 } composable'ı da kaldıracağız. Bunun yerine rememberSaveable { mutableStateOf(0) } kullanmanız gerekir. MutableState içinde kullanılan tür Paket'te depolanabiliyorsa dosya otomatik olarak kaydedilip geri yüklenir. Daha önce bir özel koruyucu nesnesi iletiyorsanız şimdi stateSaver parametresine sahip yeni birhatırla Kaydedilebilir öğe yüklemesi kullanmanız gerekir. Kullanım şu şekilde görünür: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Erişilebilirlik için şifre anlamları eklendi (I231ce)
  • ProgressBarRangeInfo eklendi.Erişilebilirlik için belirsiz ilerleme çubuklarının işaretlenmemesi (I6fe05)
  • emptyContent() ve (@Composable () -> Unit).orEmpty() yardımcı programları, performans üzerinde artık olumlu bir etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)
  • snapshotFlow ve withMutableSnapshot artık deneysel değildir (I6a45f)
  • Recomposer'lar artık kapatılabilir. Kapalı yeniden derlemeciler, beste alt eş yordamları tamamlanana kadar yeniden düzenleme işlemine devam eder. Recomposer.shutDown, kapatmayla kontrast olarak iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
  • UiSavedStateRegistry, SaveableStateRegistry, AmbientUiSavedStateRegistry yeniden adlandırılarak AmbientSaveableStateRegistry olarak yeniden adlandırıldı ve her ikisi de androidx.compose.runtime.saveable paketine taşındı. (I30224)
  • Yapı androidx:compose:runtime:runtime-saved-instance-state, androidx:compose:runtime:runtime-saveable (I6dcac) olarak yeniden adlandırıldı.
  • Kullanıcı arayüzü paketindeki uzun süredir desteği olmayan birçok API silinir. (I2f2dc)
  • create:runtime-dispatch yapısının desteği sonlandırıldı. MonotonicFrameClock, generate:runtime içinde, AndroidUiDispatcher ise oluşturucu:ui içinde bulunabilir. (Ib5c36)
  • Outline.* sınıfları artık veri sınıfı değil (I4879e, b/178001427)
  • view.captureToImage(), herhangi bir değişim yapılmadan kaldırıldı. (I7fcd2)
  • Kaynak içeriğin rgb değerlerini değiştirmek için kullanılan ColorMatrix API kullanıma sunuldu. ColorFilter API bir arayüz olacak ve PathEffect'in uygulanmasına uygun olacak şekilde yeniden düzenlendi. (Ica1e8)
  • Şekil'in createOutline öğesine layoutDirection parametresi ekleyin. Bu, düzen yönüne duyarlı şekiller oluşturulmasına olanak tanır. (I57c20, b/152756983)
  • onImeActionPerformed desteği sonlandırıldı. Bunun yerine Klavye Eylemlerini kullanın (If0bbd, b/179071523)
  • Sonsuz animasyonlara uygulanacak bir InfiniteAnimationPolicy eş anlamlı bağlam öğesi kullanıma sunuldu. ComposeTestRule ile testlerin çalıştırıldığı durumlar dışında varsayılan olarak hiçbir politika yüklenmez. (I50ec4, b/151940543)
  • canDrag, Değiştirici.scrollable dosyasından kaldırıldı. (Id66e7, b/175294473)
  • LayoutKoordinatlar, yeni birparentcoordinates özelliğine olanak tanımak için LayoutKoordinatlar.parentLayoutKoordinatları olarak yeniden adlandırıldı. Üst Koordinatlar özelliği artık üst değiştiricinin LayoutCoordintes özelliğini sunuyor. Böylece onSizeChanged() ve onGloballyPositioned() (Idfbfd, b/177926591) için daha kapsamlı kullanım alanları sunulur.
  • TapHareketFilter, doubleTapHareketFilter, long PressHareketFilter ve pressIndicaitonmotionFilter kullanımdan kaldırılmıştır. Bunun yerine Değiştirici.clickable veya Modifier.pointerInput değişkeni kullanın. (I6baf9, b/175294473)
  • SaveableStateRegistry'nin unregisterProvider öğesi kaldırıldı. Bunun yerine recordProvider() artık kaydı silmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739)
  • receiveSavedInstanceState(), offerSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
  • CoreText ve CoreTextField, genel API'den kaldırıldı
    • Kullanımdan kaldırılan SelectContainer 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ıdır. (Ie81ed, b/175765614)
  • Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak, pencere için ViewTreeLifecycleOwner tarafından desteklenen, geç oluşturulan, pencere kapsamlı recomposer'ları içerir. Ana makine yaşam döngüsü durdurulurken yeniden beste vewithFrameNanos tabanlı animasyon çizgileri duraklatılır. (I38e11)
  • Recomposer.RunRecomposers, süreçte devam eden beste durumunu gözlemlemek için artık global bir StateFlow olan salt okunur RecomposerInfo sunuyor. Bu API'yi, desteği sonlandırılan Recomposer.current() için tercih edin. (If8ebe)
  • Tasarruf, listSaver(), MapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate değerinden androidx.compose.runtime.saveable (I77fe6) değerine taşındı.
  • EditCommands, AnnotatedString'i kabul eder. Ancak bu yalnızca bir API değişikliğidir ve birden fazla stilde metin düzenleme henüz kullanıma sunulmamıştır. (I4c3ea)
  • Çalışma Süresi ve Süre kaldırıldı. (Ib9bf4, b/177420019)
  • CompositionData.asTree() ve ilgili API'ler ayrı ui-tooling-data modülüne taşındı ve deneysel (Ic95b8) olarak işaretlendi
  • RounderCornerShape, CutCornerShape ve CornerbasedShape parametreleri, şeklin rtl yönünde otomatik yansıtmasını desteklemek için soldan/sağdan başlangıç/bitiş olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için MutlakrounderCornerShape ve MutlakCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
  • Compose derleyici eklentisinin hedeflediği API, somut sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüz artık type parametresi kullanmıyor.

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

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

Hata Düzeltmeleri

  • Başka bir bestenin alt öğeleri olan görünüm hiyerarşilerine yerleştirilen ComposeView'lar artık üst öğelerinin alt bestelerini barındırıyor (I92883)
  • ImageBitmap nesneleri yüklenirken kaynak çekilebilir önbelleğini yeniden kullanmak amacıyla, oluşturma özelliğinin imageFromResource API'si güncellendi. (If3627, b/178751994)

Sürüm 1.0.0-alpha11

28 Ocak 2021

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

API Değişiklikleri

  • WithConstraints BoxWithConstraints olarak yeniden düzenlendi ve Foundation.layout öğesine taşındı. (I9420b, b/173387208)
  • Key.DPadUp desteği sonlandırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
  • Şu andan itibaren dahili olarak sahip arayüzü. (If8e35)
  • Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
  • PopupPositionProvider'ı genel koordinatları değil, pencereye bağlı koordinatları kullanacak şekilde değiştirir. parentGlobalBounds'u anchorBounds olarak yeniden adlandırır ve windowGlobalBounds değerini windowSize: IntSize (I2994a) olarak değiştirir.
  • Süre ve Çalışma Süresi, Uzun milisaniye olarak değiştirilir ve bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını ortadan 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 üzere 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 (I2686a, b/177084714, b/177084983) olarak yeniden adlandırılır
  • Küresel koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (Iee284)
  • İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Değiştirici.toolingGraphicslayer eklendi. (I315df)
  • FocusRequester.createRefs, değişebileceği için deneysel olarak işaretlendi. (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ı. Accessibility ScrollState, ScrollAxisRange olarak yeniden adlandırıldı. YatayErişilebilirlikKaydırmaState, yatay Kaydırma AxisRange olarak yeniden adlandırıldı. verticalAccessibility ScrollState, dikey Kaydırma AxisRange olarak yeniden adlandırıldı. (Id3148)
  • PointerInputData kaldırıldı ve PointerInputData'nın tüm alanlarını içerecek şekilde PointerInputChange değiştirildi. PointerInputEvent ve PointerInputEventData, herkese açık herhangi bir API'de kullanılmadığı için dahili hale getirildi. (Ifff97, b/175142755)
  • Güncellenen GraphicsKatmanScope, dp'nin ham piksellere dönüşümünü desteklemek için yoğunluğu uygular. (Ied528, b/176819695)
  • Matris API'si, ana sıralamayı takip edecek ve SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığını dahili olarak eşleştirmek için farklı matris temsilleri arasındaki dönüşümlere yardımcı olmak üzere dizin sabitleri sağlayacak şekilde güncellendi. (I432e6)
  • Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
  • String.fintPrecedingBreak ve String.fing FollowingBreak'i InternalTextApi'ye taşıyın. (I657c4)
  • androidx.compose.ui.util.isSurrogatePair, herkese açık API'den kaldırıldı. (Ia9494)
  • TransformedText.conversionsedText, TransformedText.text olarak yeniden adlandırıldı
    • TransformedText artık bir veri sınıfı (Ie672a) değil
  • data class şu sınıflardan kaldırıldı:
    • Satır İçi Metin İçeriği
    • Yerel Ayar (I605c7)
  • Aşağıdaki sınıflar artık veri sınıfı değil:
    • Ek AçıklamalıDize
    • Paragraf Stili
    • Aralık Stili
    • Metin Stili
    • Yazı Tipi Ağırlığı
    • Metin Dekorasyonu
    • MetinGeometrik Dönüşümü
    • Metin Dizini
    • Metin DüzeniSonucu
    • TextLayoutInput (Iaff99)
  • VisualTransformation işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4)
  • İşlev referans parametresi türü (I5e1bd) eklendi
  • Dönüştürülmüş sınırları InspectorNode'a (Ice42f) ekleyin

Hata Düzeltmeleri

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

    • Büyük harfle başlayan fabrika işlevleri eklendi
    • Küçük ilk harfler içeren eski fabrika işlevleri kullanımdan kaldırıldı
    • Yeni fabrika işlevleri, alt sınıfların yerine FontFamily
    • Alt sınıfların kurucuları gizlenmiştir, böylece bu sınıflar yalnızca fabrika fonksiyonları ile oluşturulabilir.
    • Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
  • ComposeTestRule öğesini genişleten ve ComposeTestRule öğesinden kaldırılan setContent öğesini tanımlayan ComposeContentTestRule kullanıma sunuldu. ComposeTestRule döndüren ve sizin için bir Etkinlik başlatmayan createEmptyComposeRule() fabrika yöntemi eklendi. Bunu testiniz sırasında Etkinliğinizi başlatmak istediğinizde (ör. ActivityScenario.launch (I9d782, b/174472899) kullanarak) kullanın

  • animasyonluAsState artık animasyonluFooAsState. Burada Foo ise animasyon uygulanan değişkenin türüdür. Ör. float, Dp, Offset vb. (Ie7e25)

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

  • Kaçınılması gerektiği için displaySize değerini kaldırın. Genellikle onRoot() veya pencere boyutunun boyutunu kullanmak daha iyidir. (I62db4)

  • OnSizeChanged, düzen içeriğinin boyutunu raporluyordu. Artık boyutu, değiştirici zincirindeki konumunda raporluyor. (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 tamamen aynıdır, yalnızca Compose'un (I4137b) adlandırma kurallarına uygun olarak farklı bir ada sahiptir

  • TextFieldValue, AnnotatedString'i kabul eder. Ancak bu yalnızca bir API değişikliğidir ve birden fazla stilde metin düzenleme henüz kullanıma sunulmamıştır.

    • initial, EditBuffer kurucu parametrelerinden kaldırıldı. (I326d5)
  • in Verify ve bestReference() yöntemi desteği sonlandırılarak, sırasıyla currentRecomposeScope ve chooseCompositionReference yerine kullanılmaya başlandı. (I583a8)

  • AnnotatedString, kotlin.CharSequence'dan farklı olacak şekilde değiştirildi. Bu nedenle uzunluk ve alt sıra, artık örnek işlevleri haline gelmiştir ve uzantı işlevleri kaldırılmıştır. (Iaf429)

  • CompositionLifecycleObserver'ın yerine CompositionLifecycleObserver desteği sonlandırılmıştır.

    RememberObserver, değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler ile CompositionLifecycleObserver öğesinin yerine geçer. Yeni API'ye geçiş, yalnızca bir kez hatırlanan nesneler için mekanik olarak yapılabilir. Bu nesneler, önerilen uygulamadır. Bununla birlikte, bir referans bir bestede birden fazla kez hatırlanırsa onEnter öğesinin yalnızca bir kez çağrıldığı her referans için onRemembered çağrılır. Nesne alt bileşimlerde kullanıldıysa onEnter birden fazla kez çağrıldı. Örneğin WithConstraints ve Scaffold, tek onEnter çağrısı garantisini güvenilmez hale getiriyor ve RememberObserver için kaldırıldı.

    RememberObserver, RememberObserver örneği remember öğesine iletilen geri çağırmadan döndürülürse ancak beste durumunda hatırlanmazsa çağrılan onAbandoned öğesini ekler ve bu nedenle onRemembered hiçbir zaman çağrılmaz. Bu durum, bir istisna nedeniyle beste tamamlanmadan sonlandırılırsa veya bestenin üretildiği durum artık güncel olmadığı ya da artık gerekli olmadığı için beste silinir. Yukarıdaki tek referans önerisini izleyen RememberObserver örneği harici bir kaynağı izliyorsa hem onForgotten hem de onAbandoned, kaynağa artık ihtiyaç duyulmadığını belirtir. Nesne, başlatılan işi veya onRemembered içinde ayrılan kaynakları izliyorsa onRemembered çağrıldığında onAbandoned çağrılmayacağı için yoksayılabilir. (I02c36)

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

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

  • ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz/çizdiğimiz için, ScrollableColumn kullanımı, büyük bir kayan içeriğiniz olan LazyColumn ile karşılaştırıldığında daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunların yerine LazyColumn ve LazyRow kullanımlarını teşvik etmeye karar verdik. Kullanıcılar hâlâ tembel davranışa ihtiyaç duymadıklarına karar vererek değiştiricileri doğrudan şu şekilde kullanabilirler: Column(Modifier.vertical Scroll(remember ScrollState())) (Ib976b, b/170468083)

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

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

  • TransitionDefinition tabanlı geçiş kullanımdan kaldırıldı (I0ac57)

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

Sürüm 1.0.0-alpha10

13 Ocak 2021

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

Çarpıcı Değişim

  • Dahili derleyici API'sinin yeniden yapılandırılması, tüm @Composable işlevleri tamamlandıktan sonra bileşimin sonucu olarak oluşturulan düğümlerde değişikliklerin "değişiklikleri uygulama" aşamasına "yapılandırma" aşamasına toplu olarak işlenmesine olanak tanır.

    Bu, değişiklikler uygulanana kadar dahili ve deneysel API'lerde artık düğümler kullanılamadığından uygulama kodunu etkileyebilecek davranışsal yıkıcı bir değişikliktir. Bu işlem genellikle, kodun yürütülmesini, düğümler oluşturulup başlatılana kadar ertelemek için kodun bir SideEffect composable içinde bu tür bağımlılıklarla çevrelenmesiyle çözülebilir. (I018da)

API Değişiklikleri

  • Özel bir odak geçiş sırasını belirtmek için kullanılabilecek Modifier.focus Order() (I90cf5, b/175899543, b/170155556, b/170155429) eklendi
  • Desteği sonlandırılan odakObserver kullanımı, onFocusChanged veya onFocusEvent kaldırıldı (I3ecb9, b/175156387)
  • EditOperations API Değişiklikleri
    • EditOperation, EditCommand olarak yeniden adlandırıldı
    • EditOperation beton uygulamaları için Komut son eki eklendi
    • EditCommand'ler artık veri sınıfı değil
    • EditOperation.process işlevi, applyTo olarak yeniden adlandırıldı
    • Giriş Etkinliği Listeer'ı, ReturnEventCallback olarak yeniden adlandırdı
    • (I0a366)
  • Kullanılmayan PxSquared, PxCubed, PxInverse kaldırıldı. Size.center() özelliği bir özellik olarak değiştirildi. (I973f7)
  • ui-test modülü artık test edilen kullanıcı arayüzleri için Recomposer oluşturmayı yapılandırabilecek (Ibebd8)
  • Hız, bileşen parçalarına ve matematiksel işlemlere sahip olacak şekilde değiştirilmiştir. (Ib0447)
  • @ExperimentalTesting öğesi, benzer deneysel API ek açıklamalarıyla tutarlı olacak şekilde @ExperimentalTestApi olarak yeniden adlandırıldı (Ia4502, b/171464963)
  • Color.useOrElse(), 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)
  • Düzen düğümü sınırları değiştiğinde Sahip'i bilgilendirmek için bir geri arama ekleyin. (I72fd1)
  • Belirtilmemiş bir sabite sahip satır içi sınıflar için isSpecified, isUnspecified ve useOrElse özellikleri eklendi. (I93f7b, b/174310811)
  • [Abstract]ComposeView API'lerini genişleterek Compose tabanlı görünümlerin geri dönüştürülmesini sağlayabilir ve bestelerini daha sonra yeniden oluşturabilirsiniz. Alt besteler oluşturmak için pencere kapsamlı Recomposer'ları ve CompositionReferences'ı yükleyip keşfetmek için API'ler ekleyin.

    [Abstract]ComposeViews öğesinin beste çıkarma stratejisini yapılandırmak için ViewCompositionPolicy'yi ekleyin. Varsayılan davranış, pencere ayırma işlemiyle kaldırılır. (I860ab)

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

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

  • Temel Strings.kt öğesine açma/kapatma düğmesini ekleyin (I4a5b7, b/172366489)

  • NativeClass'ı arayüz modülüne taşıdı ve dahili hale getirdi. NativeClass'ın güncellenmiş kullanımları, "is MyClass" olacak şekilde uygulamalara eşittir. (I4f734)

  • Değiştirici.focus() ve Modifier.focusRequester() desteğine son verilmez. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference()'ı kullanın. (I75a48, b/175160751, b/175160532, b/175077829)

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

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

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

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

  • VisualTransformation API Değişiklikleri

    • Offsetmap, Offset Eşleme olarak yeniden adlandırıldı
    • Offsetmap.identityOfsetMap, OffsetMatch.Identity olarak yeniden adlandırıldı
    • PasswordTransformation artık veri sınıfı değil
    • OffsetEşleme kendi dosyasına taşındı
    • (I0bdf3)
  • Konum, DpOfset olarak yeniden adlandırıldı ve getDISTANCE() (Ib2dfd) kaldırıldı.

  • Dp.isFinite() eğlencesi değeri val Dp.isFinite (I50e00) olarak değiştirildi

Hata Düzeltmeleri

  • Recomposer, artık bir Akışın geçerli durumunu açığa çıkararak etkinliğini ve ilişkili efektlerin etkinliğini izleyebilir. (Ifb2b9)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent (I87c57, b/173086397) üzerinden erişilebilir.
  • animate(), artık animateAsState() ile değiştirilmiştir. Bu, T yerine State<T> değerini döndürür. Geçersiz kılma kapsamı, State değerinin okunduğu yere indirgenebileceği için bu sayede daha iyi performans elde edebilirsiniz. (Ib179e)
  • Semantics role API'yi ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak Rol ekleyin. Slider'ın da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
  • Animasyonları arasında karşılıklı ayrıcalıklılık sağlayan, eş yordam tabanlı yeni API Animatable.
    • Çok boyutlu azalma 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ınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.

API Değişiklikleri

  • Kullanımdan Kaldırılan KeyEvent.Alt artık kaldırıldı. Bunun yerine KeyEvent.isAlt Pressed kullanın. (Idd695)
  • Modifier.keyInputFilter ve Modifier.previewKeyInputFilter, bunun yerine Modifier.onKeyEvent ve Modifier.onPreviewKeyEvent öğelerini kullanın (Idbf1b, b/175156384)
  • Değiştirici.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
  • İşaretçi giriş API'lerini askıya almak için HandlePointerInputScope olarak AwaitPointerEventScope vehandlePointerInput() öğesini awaitPointerEventScope() olarak yeniden adlandırdınız. (Idf0a1, b/175142755)
  • Autofill API artık deneysel bir API olup etkinleştirilmesini gerektiriyor (I0a1ec)
  • FocuSRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
  • erişilebilirlikLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
  • Özel etkinlikler, askıya alma işaretçi girişi API'sinden (Ia54d5, b/175142755) kaldırıldı
  • SelectRegistrar'da birkaç yeni işlev tanıtıldı ve onPositionChange, NotificationPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
  • Dahili olarak işaretlediğimiz diğer LayoutNode üyeleri (I443c6)
  • LayoutInfo, araç ve test ile kullanılmak üzere sunulmuştur (I9b190)
  • Dahili Android Sahibi (Ibcad0, b/170296980)
  • ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
  • İç içe kaydırma sistemi eklendi. Daha ayrıntılı bilgi için Değiştirici.nestedKaydırma başlıklı makaleye bakın (I36e15, b/162408885)
  • subcomposeInto(LayoutNode) dahili olarak yapıldı (Id724a)
  • Applier arayüzü, ağaçları yukarıdan aşağıya değil, aşağıdan yukarıya oluşturmayı basitleştirecek şekilde değiştirildi.

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

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

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

    LayoutNode ve View gibi bazı ağaçlar, yukarıdan aşağıya doğru yapısına kıyasla aşağıdan yukarıya yapı oluşturma konusunda çok daha verimlidir. Bu değişiklikten önce, aşağıdan yukarıya uygulamak için bir dizi ekleme ve bunun performans için aşağıdan yukarıya yapıya ihtiyaç duyan her uygulamaya kopyalanması gerekiyordu. Bu değişiklikle birlikte Applier, aşağıdan yukarıya bir ağaç oluşturmak için insertBottomUp() politikasını, yukarıdan aşağıya bir ağaç oluşturmak için insertTopDown() değerini geçersiz kılar. (Icbdc2)

  • AndroidDialogProperties'e offOnBack Press ve closedOnClickOutside özellikleri eklendi. Bunlar, iletişim kutusunun onKapatmaRequest lambda'sı çağrıldığında yapılandırmaya olanak tanır. (If5e17)

  • Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables'tan opak bir şekilde yüklenen Painter nesnelerini işlemek için PainterResource API eklendi. Tüketiciler artık öğe türünü önceden belirlemek zorunda değildir ve Resim composable'larında veya ressam değiştiricilerinde kullanacakları Boyacı nesnesi için bu yöntemi çağırabilirler. (I2c703, b/173818471)

  • Alt öğelerin anlamını temizlemek ve yenilerini belirlemek için Değiştirici.clearAndSetSemantics eklendi. (I277ca)

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

  • Çizgili şekillere farklı kalıplar sağlamak için PathEffect grafik API'si kullanıma sunuldu. NativePathEffect'in desteği sonlandırıldığından, PathEffect'in beklenen/gerçek uygulanması yönünde tercih edilmiştir. (I5e976, b/171072166)

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

  • ComposeIdlingResource'nın genel kaydı (kaldırılan) ve ComposeIdlingResource'daki (I32660) saatlerin genel kaydı kaldırıldı

Hata Düzeltmeleri

  • Ofset değiştiricilerdeki Lambda'lar artık Kayma yerine IntOffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
  • SlotTable, SlotReader ve SlotWriter genel API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretlenmişti. Bunlar artık oluşturma modülünde yer alıyor.

    ui-tooling API'nin bileşim bilgilerini ayıklamak için kullanacağı bir yedek olarak CompositionData ve CompositionGroup eklenmiştir. Bunlar herkese açıktır ancak ui-tooling API'nin yorumladığı ham bilgileri (I31a9c) sağladığı için ui-tooling API'sinin dışında kullanılması amaçlanmamıştır.

  • Çizim ortamının boyut bilgilerinin mevcut olması durumunda geç yavaş bir gölgelendirici örneği oluşturmak için ShaderBrush yeniden düzenlendi. Bu, beste zamanında özel DrawModifier uygulamaları uygulamak zorunda kalmadan bir composable'ın tüm çizim sınırlarını kaplayan renk geçişleri tanımlamak için yararlıdır.

    Gradyan nesnesinde fabrika yöntemlerinin tercih edilmesi için desteği sonlandırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed'in desteğini sonlandırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)

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

  • AnnotatedString oluşturmak için buildAnnotatedString'in fabrika işlevi eklendi. Ek açıklamalıString oluşturucu işlevi kullanımdan kaldırıldı. (Idfe0b)

  • Değerleri radyana dönüştürmek için Kayan ve Çift moddaki uzantı yöntemleri kaldırıldı. Kullanıldığı tek yer olan PathParser uygulaması içinde özel bir işlev olarak kullanılmaya başlandı (I25f52)

Sürüm 1.0.0-alpha08

2 Aralık 2020

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

API Değişiklikleri

  • Anlamsal işlem ekleme işlemi Kapat (I2b706)
  • 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ı olacak typealiases/helper yöntemlerini içerecek şekilde DrawModifier U güzelleştirilmiştir. (Id6044, b/173834241)
  • Modifier.drawKatmanlar, Modifier.graphicsKatman olarak yeniden adlandırıldı. Ayrıca, API geri bildirimlerine göre ilgili sınıflar da GraphicsKatman olarak güncellendi. (I0bd29, b/173834241)
  • Özel düzenlerin ve düzen değiştiricilerin, çizimlerine bir grafik katmanı ekleyerek alt öğe yerleştirmesine olanak tanıyan yeni Placeable.placeWithKatmanlar() ve placeable.placePlaceWithKatman() yöntemleri eklendi. Böylece öncelikle yeniden çizimleri optimize edebiliyoruz. Böylece bir çocuğun yerini değiştirmemiz gerektiğinde içeriğini yeniden çizmek zorunda kalmıyoruz. İkinci olarak, alt öğe için çizim dönüşümlerini uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831).
  • <T>, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)
  • Çizimler'e kolaylık sağlamak amacıyla Değiştirici.scale/rotate API'leri eklendi.
    • Modifier.drawOpacity adlı dosya Modifier.alpha olarak yeniden adlandırıldı
    • Modifier.drawShadow listesi Modifier.shadow olarak yeniden adlandırıldı (I264ca, b/173208140)
  • PointerInputData'nın çalışma ve konum alanları null olamaz. (Id468a)
  • MaterialTheme, artık seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Materyal olmayan uygulamalar, seçimde kullanılan renkleri özelleştirmek için AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
  • Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağrısı sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
  • TransformOrigin API, pivotFractionX ve pivotFractionY değerlerini component1 ve component2 olarak döndürecek şekilde yapı bozucu söz dizimi içerecek şekilde güncellendi (If43c4, b/173586560)
  • Oluşturma yönergeleriyle tutarlılığı kontrol etmek üzere composable lambda parametresi adı ve konumu için lint denetimi eklendi. Ayrıca, lint kontrolü ve rehberlik doğrultusunda, sondaki lambdaların adı olarak children kullanılan bazı API'ler de content ortamına taşındı. (Iec48e)
  • Bir tuş etkinliği gönderildiğinde Alt, Ctrl, Meta veya Üst Karakter değiştirici tuşlarına basılıp basılmadığını kontrol etmek için API eklendi. (I50ed9)
  • Yeni bir Modifier.drawLayer() aşırı yüklemesi eklendi. Yeni bir GraphicslayerScope üzerinde bir lambda bloğu alır. Burada katman parametrelerini tanımlarken durum değişikliği gerçekleştiğinde yeniden düzenleme ve düzenleme adımını atlarsınız. DrawKatmanModifier, mantığını LayoutModifier'ın Placeable.placeWithKatmanlar() yöntemine (I15e9f, b/173030831) taşımaya hazırlanmak için artık dahilidir
  • Sonek olarak Ambient adını taşıyan ve desteği sonlandırılmış Ambiyanslar, diğer Ambients and Compose API kurallarına uyarak Ambient ön ekini taşıyan yeni özellikler eklendi. (I33440)
  • androidx.compose.ui.text.Typeface, androidx.compose.ui.text.font.Typeface (Ic2b81) hedefine taşındı
  • Anlamsal bağımsız değişken birleştirmeAllDescendants, "mergeDescendants" olarak yeniden adlandırıldı. (Ib6250)
  • Yön kilitleme dahil olmak üzere, işaretçi giriş API'sini askıya alan yeni sürükleme hareketi algılayıcı. (Icef25)
  • VectorAsset, ImageVector olarak yeniden adlandırıldı. VectorAsset, API yönergelerine göre ImageVector'ın iç sınıfı olacak şekilde oluşturucu olarak yeniden adlandırıldı. Karşılaştırma için ImageVector.Builder bağlantısına, VectorAssetBuilder adında tür takma adı eklendi. (Icfdc8)
  • ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
  • Değiştirici.zIndex() öğesinin artık bir LayoutModifier olarak çalışması ve herhangi bir özel düzenin doğrudan yerleşim bloğunda (I711f7, b/171493718) alt öğeleri için zIndexe'leri ayarlayabilmesi için PlacementScope'un Place() öğesi için zIndex parametresi ekleyin
  • Temel anlamsal özellikleri kullanıcı arayüzüne taşındı (I6f05c)
  • Yer(Ofset) ve Placeground(Ofset) değerlerini kullanımdan kaldırın. Bunun yerine int ofsetleriyle aşırı yüklemeleri kullanın (I4c5e7)
  • Daha önce kullanımdan kaldırılan API'ler kaldırıldı: Değiştirici.onPositioned kaldırıldı, Değiştirici.onGloballyPositioned kullanın. Değiştirici.onDraw kaldırıldı, Değiştirici.onDrawBehind öğesini kullanın. Değiştirici.plus kaldırıldı, Değiştirici.ardından kullanın. Renk.Ayarlanmadı, Renk.Belirtilmedi seçeneğini kullanın. PxBounds sınıfı kaldırıldı, onun yerine Rect'i kullanın. (Ie9d02, b/172562222)
  • Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
  • Dokunma, iki kez dokunma, uzun basma ve basma göstergesi için hareket dedektörü, yeni askıya alma işaretçisi girişi kullanılarak eklendi. Ayrıca, geliştiricilerin kendi hareket dedektörlerini yazmalarını kolaylaştıran birkaç yardımcı program da eklendi. (I00807)
  • id, LayoutIdParentData için layoutId olarak yeniden adlandırıldı. Measurable.id, Measurable.layoutId olarak yeniden adlandırıldı. (Iadbcb, b/172449643)
  • Döndürme, yakınlaştırma ve kaydırmayı algılamaya yönelik yardımcılar da içeren yeni çok noktalı hareket dedektörü. (Ic459d)
  • SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
  • Testlerde zaman kontrolü (TestAnimationClock ve kullanımları) artık deneysel (I6ef86, b/171378521)
  • Eş yordam tabanlı kaydırma API'leri ekleyin:

    Kaydırma kontrolü için LazyListState.snapToItem ve LazyListState.smooth ScrollBy ile alt düzey API'ler ekler. Bu API'ler, geri dönmeden önce kaydırmanın bitmesini bekleyen kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)

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

  • AnimasyonClockTestRule'da clock öğesine devredilebilecek yöntemlerin ve özelliklerin varsayılan uygulamalarını sağlayın (I7ea3d, b/173399709)

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

  • TextLayoutResult.getLinevisibleEnd desteği sonlandırıldı. Bunun yerine, artık TextLayoutResult.getLineEnd için yeni bir visibleEnd parametresi bulunmaktadır. (I73282)

  • TextFieldValue API'si güncellendi

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

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

Hata Düzeltmeleri

  • Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
  • ofPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık State yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
  • TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947) öğesine sıfırlamaInput parametresi eklendi
  • Oluşturulabilir işlevlerde Değiştirici parametreleri için lint kontrolü eklendi. Bu hata analizi kontrolü, parametrenin adını, döndürme türünü, varsayılan değerini ve sırasını Yazma yönergeleriyle tutarlılık açısından kontrol eder. (If493b)
  • TestAnimationClock'ın MonotonicFrameClock tarafından çalıştırılmasına izin vermek için geçici olarak eklenen seçenek (I1403b, b/173402197)
  • Android Yazı Tipi sarmalayıcı eklendi. Bir Android Yazı Tipini typeface işlevi (ör. typeface(Typeface.DEFAULT)) aracılığıyla yükleyebilirsiniz. typefaceFromFontFamily() adlı dosya da typeface() olarak yeniden adlandırıldı (I52ab7)
  • Değiştirici fabrika işlevlerinin, akıcı bir şekilde birbirine zincirlenebilmesi için Değiştirici'de uzantılar olarak tanımlandığını kontrol etmek için lint denetimi eklendi. (I07981)
  • Eski kullanıcı arayüzü testi modülünü ve uçlarını (I3a7cb) kaldırın
  • Recomposer artık EmbeddingContext kabul etmemektedir. Gerekli planlama bağımlılıkları forceCoroutineContext'ten alınır. FrameManager kullanımdan kaldırıldı. Platform entegrasyonları, kendi küresel anlık görüntü işlemelerini başlatmalıdır. (I02369)
  • Stil bilgilerini erişilebilirlik düğümüne geçirin. (If5e8d)
  • TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmemiş. (Ifce19)

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

11 Kasım 2020

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

API Değişiklikleri

  • Düzgün olmayan ölçeklendirme kullanım alanlarını desteklemek üzere yatay ve dikey eksenler için birbirinden bağımsız ölçek faktörlerini temsil eden ScaleFactor satır içi sınıfı kullanıma sunuldu.
    • ContentScale'e computeScaleFactor yöntemi eklendi
    • src sınırlarını genişletmek için hedefi tamamen işgal etmek üzere tek tip olmayan ölçeklendirme yapmak üzere ContentScale.FillBounds eklendi.
    • Boyut parametreleriyle ScaleFactor parametrelerini hesaplamak için operatör yöntemleri eklendi.
    • (Ic96a6, b/172291582)
  • Hizalamalar oluşturmak için Önyargı Hizalama ve Önyargı Mutlak Hizalama fabrikaları eklendi. (Iac836, b/169406772)
  • Geliştiricinin odağı zorla temizlemesine izin ver. (I90372)
  • Oluşturma içindeki Görünümler için yükseltilerin çizilmemesine neden olan bir hata düzeltildi. (If7782)
  • Adlandırma kuralını Modifier.drawBehind ile eşleştirmek için ContentDrawScope içinde onDrawBehind API oluşturuldu. (I4fc3a, b/171955269)
  • Katman API'lerinde 3D dönüştürmeleri RotationX/rotationY'yı tamamlamak için kamera mesafesi desteği ekleyin. (I40213, b/171492100)
  • Geri çağırma içermeyen Seçim Container'ı eklendi (Ibfadb)
  • ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout, artık @OptIn öğesi eklenmeden kullanılabilir (I708ad)
  • FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
  • Kafa karıştırıcı olduğu içindrawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
  • MeasureResult, MeasureScope dışına taşındı. (Ibf96d, b/171184002)
  • Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)
  • Desteği sonlandırılmış FocusState2 (I686cb, b/168686446) kaldırıldı
  • ZIndexModifier artık dahili (I1808b, b/171493718)
  • Gereksiz kutulamayı önlemek için boş olmayan bir Boyut döndürmek amacıyla Boyut parametrelerinde lerp yönteminin dönüş türü güncellendi. (Ib0044)
  • Kompozisyon çerçevesi etkinliklerini beklemek için Compose'un MonotonicFrameClock'una dayanan kodun test edilmesi için TestMonotonicFrameClock ve kotlinx-coroutines-test'in run blockTest (I4402f) özelliği eklendi
  • HareketScope.localToGlobal (I15299, b/171462785) kaldırıldı
  • onAllNodesWithSubstring bulucu eklendi (I81dd7, b/171462889)
  • androidx.ui.test modülü kullanımdan kaldırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4 (I452e8) sürümlerine geçin

Hata Düzeltmeleri

  • receiveToBitmap, captureToImage öğesine taşındı. (I86385)
  • Foundation.Text desteği sonlandırılmış ve asset.Text ile değiştirildi. Temadan değer kullanmayan temel ve işlemsiz metin API'leri için androidx.compose.foundation.BasicText adresini ziyaret edin. (If64cb)
  • TextFields'i KlavyeSeçenekleri (Ida7f3) kabul edecek şekilde güncelleyin
  • Klavye Seçeneklerini ImeOptions olarak yeniden adlandırın (I82f36)
  • Klavye Türü ve ImeAction, KlavyeSeçeneklerine taşındı (I910ce)
  • Ambiyans sağlamak için bir alternatif olarak OfferDefault eklendi ve yalnızca henüz herhangi bir ambient değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField alanını kullanın. (I896eb)
  • ui-test-junit4 modülünü tanıtın (Ib91f8)
  • relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin referans değerlerine olan mesafeleri kolayca belirlemek amacıyla paddingFromBaseline değiştirici eklendi. (I0440a, b/170633813)
  • LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak amacıyla LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek amacıyla, konu parametresi olmayan LaunchedEffect'e izin verilmez. (Ifd3d4)
  • Yapılandırma güncellendiğinde yeniden derlenen kaynaklar kullanıma sunuldu. (I6387c, b/167352819)
  • Recomposer artık yapım sırasında bir CoroutineContext gerektiriyor (Ic4610)
  • Birden çok Modifier.zIndex() uygulandığında zIndex değerlerini toplayın. Daha önce ilki kazanıyordu. (Ic514c, b/170623936)
  • Dahili SlotTable uygulamasında yapılan ve herkese açık API'yi etkilememesi gereken değişiklikler. (If9828)
  • Klavye otomatik düzeltme IME Seçeneği eklendi (I57b8d)
  • androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
  • KlavyeOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)

Harici Katkı

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

Sürüm 1.0.0-alpha06

28 Ekim 2020

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

API Değişiklikleri

  • Recomposer artık bir CompositionReference ve geçerli bir beste üst öğesi oldu. Açık Yeniden Oluşturucu artık daha az yerde gerekiyor. (I4036f)
  • composable API'nin, bileşimler genelinde verileri kalıcı hale getirmek için dahili olarak "hatırladığından" yararlandığını daha iyi belirtmek amacıyla HatVectorPainter'ın yerine VectorPainter'ı kullanımdan kaldırın. (Ifda43)
  • Modifier.drawWithCache API, uygulamalara çizim komutlarını yeniden sıralama olanağı sunmak için ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak kullanıma sunacak şekilde güncellendi. Bu, karşılık gelen karıştırma modu algoritmasının doğru bir şekilde uygulanması için önce içerik piksellerinin oluşturulması gereken kullanım alanlarını karıştırma/renklendirme açısından faydalıdır. (Ie7ec8)
  • SimpleContainer'ı PopupTestUtils.kt (I78c57) dosyasına taşıyın
  • ConsumedData artık bir veri sınıfı değil. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 adresine göz atın (I1737f)
  • Rtl Tutma Yeri Konumunu Düzeltin. (I6e1e0)
  • DrawScope ve ContentDrawScope soyut sınıflar yerine arayüz olacak şekilde yeniden düzenlendi
    • DrawScope uygulaması oluşturuldu ve CanvasDrawScope
    • Bunun yerine CanvasScope kullanmak için DrawScope uygulamaları yeniden düzenlendi
    • DrawScope için bağımlılıkları sarmalamak amacıyla 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ğer tüketim verileri olduğu için döndürülen değer PointerInputFilter.onPointerEvent(...) öğesinden kaldırıldı. PointerInputFilter.onPointerEvent(...) uygulamasından veri döndürmek yerine, artık iletilen PointerEvents tüketim verilerini değiştirebilirsiniz. (I6acd0)
  • MeasureScope ve IntrinsicMeasureScope arayüzleri yapıldı. (I1a087, b/170461665)
  • HelloLine için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
  • Oluşturulan değiştiricide inceleyici bilgilerini belirtme özelliği ekleyin (Idee08, b/163494569)
  • Seçim menüsüne SelectAll seçeneği eklendi (Ief02b)
  • DrawTransform.rotate, dokümanlarla eşleşecek şekilde ortadaki varsayılan pivot parametresini alacak şekilde güncellendi.
    • DrawScope.rotateRad, diğer dönüştürme yöntemleriyle eşleşecek şekilde pivot noktası için bir ofset kullanacak şekilde güncellendi.
    • Pivotun x ve y koordinatı için kayan, kullanımdan kaldırılan DrawScope.rotateRad aşırı yüklemesi.
    • (Iffcbb, b/170434992)

Hata Düzeltmeleri

  • androidx için kayıpGetterMatchingBuilder API lint kontrolü etkin (I4bbea, b/138602561)
  • Test ekle'yi tıklayın. (I6b8ae)
  • ComposeTestRule'da geçişleri etkinleştir; yanıp sönen imleci ComposeTestRule'dan etkinleştirmek için seçeneği kaldırın. (If0de3)
  • Klavye Büyük Harf Kullanımı IME Seçeneği Eklendi (I8ac38)
  • CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
  • SimpleContainer'ı PopupTestUtils.kt'ye (I65c3e) taşıyın
  • Compose'da nasıl kullanıldığını daha iyi ifade etmek için Radius API'yi CornerRadius olarak yeniden adlandırdı. Dokümanlar, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
  • ACTION_DOWN hariç tüm işlemler için onTouchEvent için yanlış döndüren alt Android Görünümlerine MotionEvents göndermeye devam ederek Android birlikte çalışma özelliği iyileştirildi (I94c5a, b/170320973)
  • Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)

Harici Katkı

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

Sürüm 1.0.0-alpha05

14 Ekim 2020

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

API Değişiklikleri

  • Denetleyici bilgilerini belirtmek için bir DSL ekleyin (Ic9a22)
  • Long Press'i Metne Taşı. (Iff2bc)
  • Deneysel Modifier.pointerInput, giriş değiştiriciyi askıya alıyor (Ia77d2)
  • Eklenen Kopyalama/Yapıştırma/Kesme erişilebilirlik işlemleri (I6db4f)
  • AndroidSahip için genel oluşturucu kaldırıldı (Iacaef)
  • Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE değerini devralıyor. Bunu açıkça yapılandırmaya yönelik seçenek de eklendi (I64966, b/143778148, b/143778149)
  • Kullanım verileri artık değişebilir. Ayrıca tüketim yapan uzantı işlevlerine yapılan çağrılar artık yeni bir PointerInputChange döndürmez, bunun yerine sağlanan PointerInputChange'i değiştirir.

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

  • Metinde Seçimi Devre Dışı Bırak ve bir Demo. (Ie7e97)

  • Yerel olarak konumlandırılmış bir satır içi işlevde yapıldı (I15830)

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

  • hasPendingMeasureOrLayout özelliği, Sahibin beklemede düzen çalışması olup olmadığını belirtmek üzere Sahip bölümüne eklendi. (I3d9f8, b/169038599)

  • Odağı programatik olarak netleştirmeye API eklendi (Ie1dc2, b/161487952)

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

  • Boyut Değişiklikleri

    • Size.getFlipped kaldırıldı
    • Size.rem kaldırıldı
    • Size.truncDiv (Ief44d, b/169790720) kaldırıldı
  • Satır içi sınıflar için koruyucu değerlerinin standartlaştırılmasının bir parçası olarak Color.Unset (Renk Ayarlanmadı) değerini yeniden adlandırın.Diğer satır içi sınıflarla tutarlılık için belirtilmemiş (I97611, b/169797763)

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

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

Hata Düzeltmeleri

  • LazyColumn/Row'un kaydırma performansı, her kaydırmada alt bileşim üzerinde daha az iş yapılarak iyileştirildi. Beste sınıfı için yeni hasGeçersizations() yöntemi eklendi. Recomposer'dan alınan hasPendingChanges() yöntemi has Invalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371)
  • Boyut Güncellendi.Belirtilmemiş parametreler, Kayma.POSITIVE_INFINITY yerine Kayma.NaN olacak. Boyut.Belirtilmemiş ve sonlu olmayan Boyutlar'a göre kontrol etmek için Boyacı uygulamaları güncellendi. (I95a7e)
  • Özel Layout'lardaki Place() çağrılarının sırası artık alt öğeler için çizim sırasını (Ibc9f6) tanımlar.
  • Erişilebilirlik için AnnotatedString'i SpannableString'e dönüştürme desteği. (Ief907)
  • Mümkün olduğunda yansıtma kullanımından kaçınmak amacıyla, eski platformlardaki Android sınıfları için taslaklar eklendi. (Ia1790)
  • Hata Düzeltildi: Gösterilen yazılım klavyesi uygulamanın çevrilmesine neden olduysa işaretçi giriş koordinatları hatalı hale geliyordu. (Ic4cec, b/163077821)

Sürüm 1.0.0-alpha04

1 Ekim 2020

androidx.compose.ui:ui-*:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri 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 almak için OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
  • Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
  • FocusManager gizli hale getirildi. (I7872f)
  • Uygulama, DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturacak şekilde güncellendi.

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

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

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

  • Anlamsal özelliklerine Accessibility ScrollState'i ekleyin. (Ifeda9)

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

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

Hata Düzeltmeleri

  • Birçok Graphics API'si güncellendi
    • Ölçek ve döndürme dönüşüm API'leri, DrawScope ve DrawTransform'da x/y koordinatları için ayrı kayan noktalı parametreler yerine pivot koordinatını temsil edecek tek bir Offset parametresi kullanacak şekilde güncellendi
    • Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
    • Yarıçap dokümantasyonu, eliptik bisikletin yanı sıra oval de
    • Satır içi Yarıçap sınıfı için genel oluşturucunun doğrudan çağrılamayacağını, bunun yerine Yarıçap nesnelerinin işlev oluşturucuları aracılığıyla örneklendirilmesi gerektiğini gösteren dokümanlar eklendi
    • topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
    • Rect.shift desteği sonlandırıldı ve Rect.translate'ye geçiş yapıldı
    • roundRect.grow ve Rect.shrink API'leri kaldırıldı
    • RoundRect.outerRect paketinin adı Rect.boundingRect olarak yeniden adlandırıldı.
    • RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı.
    • RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
    • roundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
    • RoundRect.center işlev yerine bir özellik olarak değiştirildi
    • RoundRect oluşturucusu, x/y yarıçap değerleri için bağımsız parametreler yerine Yarıçap özelliklerini kullanacak şekilde güncellendi
    • Kaynağı 0,0 olan Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
    • Yarıçap'a yıkıcı bir API eklendi
    • Çeşitli RoundRect uzantı işlevleri mülk olacak şekilde taşındı
    • (I8f5c7, b/168762961)
  • Foundation.Box desteği sonlandırıldı. Lütfen bunun yerine Foundation.layout.Box'ı kullanın. (Ie5950, b/167680279)
  • Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box kullanımdan kaldırılarak, generate.foundation.layout içindeki yeni Box'a geçiş yapılacak. Yeni Box'ın davranışı, birden çok alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer davranışlarda bulunan önceki Box'tan farklıdır. (I94893, b/167680279)
  • Box dekorasyon parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgular olmasını istiyorsanız bunun yerine Değiştiriciler'i kullanın (Modifier.background, Değiştirici.gider, Değiştirici.Dolgu) (Ibae92, b/167680279)
  • Birçok Graphics API'si güncellendi
    • DrawScope API'leri, 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ı belirtecek şekilde kapsamlı dönüşüm yöntemleriyle güncellendi
    • ClipPath belgeleri, yuvarlatılmış dikdörtgen yerine Path'i işaret edecek şekilde güncellendi
    • ClipPath'de sağ parametre için belgelerdeki boşluk düzeltildi
    • DrawScope.drawCanvas,drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
    • Inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
    • 4 sınıra da aynı inset değerini sağlayan ek aşırı yükleme eklendi.
    • Inset yönteminde, ekin 4 tarafa da uygulanacağını gösteren dokümanlar kaldırıldı
    • Rect sınıfı için güncellenen dokümanlar
    • Rect parametrelerindeki yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
    • Rect.join ve Rect.expandToInclude kaldırıldı
    • Rect.translate(offset) için aşırı yükleme oluşturuldu ve kullanımdan kaldırılan Rect.shift
    • (If086a, b/167737376)
  • Ek açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @visibleForTesting, bunları dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
  • Varsayılan seçimi devre dışı bırakmak ve beklenmedik davranışları önlemek için Seçim Kapsayıcısını En Üstten Kaldırın. Bunun yerine seçilebilir olması gereken içeriği sarmalamak için özel olarak bir SelectContainer etiketi kullanılabilir. (I8dfe0, b/158459594)

Sürüm 1.0.0-alpha03

16 Eylül 2020

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

API Değişiklikleri

  • İleri/geri kaydırma anlamsal işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
  • onInvalidate(), Owner -- OwnedLayer herkese açık kullanıcı rızasının geçersiz kılınmasından kaldırıldı. (Ica72b, b/162061312)
  • Ofset parametrelerini kullanan Size API'deki operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu belirsizdir ve bunlar için beklenmedik sonuç türü vardır. Ör. boyut - uzaklık, bir ofset mi yoksa farkı içeren bir boyut sonucu mu döndürmelidir?

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

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha02

2 Eylül 2020

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

API Değişiklikleri

  • Düzen düğümü sınırları değiştiğinde Sahip'i bilgilendirmek için geri çağırmayı kaldırın. (If654e, b/166106882)
  • Hatta Odd veya Sıfır Olmayan yol doldurma kurallarına göre şekillerin kesimlerini desteklemek amacıyla vektör grafik yollarında dolgu türü parametreleri desteği eklendi. (I43dd2)
  • Çalışma Süresi ve Hız artık satır içi sınıflardır (I48f4a)
  • Süre artık satır içi bir sınıftır (I565eb)
  • Düzen düğümü sınırları değiştiğinde Sahip'i bilgilendirmek için bir geri arama ekleyin. (Ic40b3)
  • Ofset ve yarıçap içeren Rect işlevi oluşturucusunun Dikdörtgeni sol, üst, sağ, alt yerine sol, sağ, üst, alt sıraya göre oluşturması sorunu düzeltildi.

    Rect'te desteği sonlandırılmış tamamlayıcı yöntemler kaldırılarak işlev oluşturucuları eline geçmiştir.

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

Hata Düzeltmeleri

  • Değiştirilebilen bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
  • Matris4'ün yerini Matris aldı. Vektörmath paketinin diğer tüm parçaları kaldırılmıştır. (Ibd665, b/160140398)
  • Birleştirilebilir işlevler için çağrı kuralı değişti. Bu, ikili zarar veren bir değişikliktir. Tüm kitaplıklar, oluşturma derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.

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

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

Sürüm 1.0.0-alpha01

26 Ağustos 2020

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

Sürüm 0.1.0-dev

Sürüm 0.1.0-dev17

19 Ağustos 2020

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

API Değişiklikleri

  • emitView desteği sonlandırıldı. Compose içinde Görünümler yayınlamak için mümkünse AndroidView kullanın. Bu işlemlerin AndroidView kullanılarak yapılabildiği durumlarda, beste ağacında bırakılmadığı sürece Görünümler ve ViewGroups oluşturma işlemlerinin doğrudan desteklenmeyeceğini unutmayın. (I29b1e, b/163871221)
  • FocusState2 desteği sonlandırıldı ve bu öğenin yerine FocusState (Ia8b79, b/160822876, b/160923332) var
  • Kullanımdan kaldırılan AndroidView aşırı yüklemeleri kaldırıldı. (I946b9, b/163802393)
  • Özel emisyonlar, artık bir veya daha fazla seter'ın atlanabileceğini ve emisyonlardan bağımsız olarak yeniden düzenlenebileceğini bildirebiliyor. (Ibbd13)
  • Oluşturma için aynı nesne örneği kullanıldığından Vector sınıfları artık veri sınıfı olmayacak şekilde değiştirildi.

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

    Kompozisyonlarda yeniden kullanıldığı için VectorPainter'ın bir parçası olacak şekilde yeniden düzenlendi.

    GroupComponent ve PathComponent, ad alanlarının değişken olmasını sağlayacak şekilde güncellendi (Ieae45, b/151378808)

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

  • Zaman farkı satır içi bir sınıf oldu (Iaec70)

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

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

  • SemanticsPropertyKey klasörüne mergePolicy lambda eklendi. Bu, birleştirmeAllDescendants anlamsal birleştirme işlemi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten varsa üst değer, değilse alt değer kullanılır. (Iaf6c4, b/161979921)

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

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

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

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

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

  • PlacementScope.placeAbsolute(), PlacementScope.place(), önceki PlacementScope.place() ise PlacementScope.placeRelative() olarak yeniden adlandırıldı. Sonuç olarak, PlacementScope.place() yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmaz. Bunun yerine PlacementScope.placeRelative() kullanın. (I873ac, b/162916675)

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

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

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

  • PxBound'lar kullanımdan kaldırıldı, rect'in yerini aldı. PxBounds'un tüm kullanımları dikişli olacak şekilde güncellendi ve taşımaya yardımcı olacak ek açıklamalarla uygun şekilde kullanımdan kaldırıldı/değiştirildi. (I37038, b/162627058)

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

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

  • Büyük olasılıkla değiştirileceği için Ertelemeli Özel etkinliği ve ilgili sınıfları bir API'ye dahil hale getirdi. (I56d6f)

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

  • Paragraph.paint uygulamasına renk, gölge ve TextDecoration parametresi ekleyin. Bu işlev, gereksiz Paragraf yeniden oluşturma işlemlerinden kaçınmanıza yardımcı olur. (I81689)

Hata Düzeltmeleri

  • TextField'den onFocusChanged geri çağırması kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
  • Değiştirici.drawBorder desteği sonlandırıldı. Bunun yerine Değiştirici.sınırı kullanın. Sınır 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 yazma API'leri, mutableStateof() (I80ba6) gibi durum nesnelerini izlemek için gereken ek yükü azaltacak şekilde değiştirildi

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

  • For döngüsü içinde kullanılan durumu kaydeden bir şey düzeltildiğinde kilitlenme. SaveInstanceState() işlevinde aynı anahtarın kullanılmasına artık izin veriliyor. UiSavedStateRegistry API'si artık bu yeni gereksinime (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561) göre ayarlanmıştır

  • state { ... } composable, artık daha net bir ifadeyle remember { mutableStateOf(...) } öğesine yapılan açık çağrılar için kullanımdan kaldırıldı. Bu, genel API yüzeyini ve eyalet yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkisi için by mutableStateOf() kalıbıyla eşleşir. (Ia5727)

  • Oluşturma adlandırma kalıplarına daha uygun olması için RRect'in adı RoundRect olarak değiştirildi RRect'e benzer işlev oluşturucuları ve desteği sonlandırılan RRect işlev oluşturucuları (I5d325) oluşturuldu

Sürüm 0.1.0-dev16

5 Ağustos 2020

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

API Değişiklikleri

  • OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned kullanın. (I87f95, b/162109766)
  • setViewContent kullanımdan kaldırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
  • ViewBinding'e göre düzen kaynaklarını şişirmek ve oluşturmak için AndroidViewBinding API eklendi. (I081c6)
  • KeyEvent2, KeyEvent ile değiştirilir (I2d770, b/162097585)
  • Alternatif donanım anahtarı (I9036b) için destek eklendi
  • FocusManager Desteği Sonlandırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester()'ı kullanın. (I74ae4, b/162211322)
  • loadVectorResource, trimPath özelliklerini (I808fe) destekler
  • İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
  • Artık ihtiyaç duyulmayan 2 PointerEventPass kaldırıldı. (I33ca7)
  • MotionEvents alma ve Compose ile Android View uygulaması gibi etkileşimde bulunma olanağı sağlayan PointerInteropModifier uygulandı. (Ieb08c)
  • Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId değerini kullanın. (Idaa05, b/162023919)
  • Sağdan sola destek API'leri güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient özelliği eklendi. Değiştirici.rtl ve Modifier.ltr kaldırıldı. (I080b3)
  • Vektör grafiklerinde yol kırpma desteği (Ie16c9, b/158188351)
  • Kolay bir şekilde özel bir düzen değiştirici oluşturmaya olanak tanıyan Modifier.layout() eklendi (I73b69, b/161355194)
  • Yeni bir AndroidView API eklendi ve mevcut API'ler kullanımdan kaldırıldı. (I5bcfd)
  • Değiştirici.plus desteği sonlandırıldı. Bunun yerine Değiştirici.then'i kullanın. "O zaman" ifadesi daha güçlü bir sıralama sinyaline sahiptir ancak Modifier.padding().background() + anotherModifier yazılmasını yasaklayarak zinciri bozar ve okunması daha zordur (Iedd58, b/161529964)
  • Compose içeriğini Görünüm hiyerarşisinde barındırmak için [Abstract]ComposeView alt sınıflarını ekleyin. (I46357)
  • Row ve Column artık satır içi işlevler sunuyor ve bu şekilde kullanım ek yükünü önemli ölçüde azaltıyor. (I75c10)
  • SubcomposeLayout eklendi. Bu, ancak daha sonra alt ağaç bileşimi ölçümü sırasında kullanılabilir olan bazı değerleri kullanmak istersek, ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan alt düzey bir temel öğedir. Örneğin, WithConstraints SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
  • Oluşturma hiyerarşisinin (Icdf26, b/161336532) köküne göre bir SemanticsNode'un konumunu almak için SemanticsNode.positionInRoot eklendi
  • MotionEvents, Android'den tamamen Compose'a ve ardından tekrar Android'e geçirdi. (I14be8, b/158034713)
  • AçılırPop-up kaldırıldı. (I00430)
  • Kesik ekranlardaki pop-up konumu sabitlendi. (Idd7dd)
  • TextLayoutResult (I9d6e6) öğesini almak için erişilebilirlik işlemi ekleyin
  • RemeasurementModifier eklendi. Düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Genel olarak, yeniden ölçüm/yeniden düzenleme otomatik olarak gerçekleştiğinden bunlara hiçbir zaman ihtiyacınız yoktur ancak kaydırma sırasında LazyColumnItems'in içinde kullanırız. (I5f331, b/160791058)
  • getLineEllipsisOffset/getLineEllipsisCount öğesini kaldırın. Bunun yerine getLinevisibleEnd/getLineEnd/isLineEllipdimension'ı kullanın. (I85aa2)
  • En iyi uygulama nedeniyle birkaç İşaret/Not ekleyin. (I66b20)
  • TextLayoutResult'da daha fazla satır API'si gösterir. (I79bd2)
  • Yerleşik birimleri dönüştürmek için kullanılan dahili vektör dönüştürücülere artık Foo.VectorConverter üzerinden erişilebiliyor. ör.Dp.VectorConverter, Color.VectorConverter, float.VectorConverter vb. (I3e273)

Hata Düzeltmeleri

  • Genel API düzeltmelerini adresleyin (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırın
    2. Tutarlı bir API yüzeyine sahip olacak şekilde Ofset ve IntOffset sınıflarını hizalayın
    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ünün dışına taşındı
    5. DrawScope'u lateinit yerine boş olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın null olmadığından emin olmak için BlankCanvas saplama sınıfı oluşturuldu
    6. ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı
    7. Filtre Kalitesi 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 sıralamaları, 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 kullanmayacak
    14. DrawScope güncellendi, artık dolguPaint ve stepPaint dahili parametreleri için geç yetki kullanılmayacak
    15. Daha az ek yük için Box kullanımını önlemek için composable'ı güncelleme
    16. Outline sınıfı, @Sabit ek açıklamaları içerecek şekilde güncellendi
    17. PathNode, her yol talimatı için @Immutable ek açıklamaları içerecek şekilde güncellendi
    18. Oluşturma işlemi bunları zaten işlediğinden eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere Vektör alt bileşimi güncellendi
    19. Kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemleri, işlev kurucularının lehine
    20. Fırça sınıfları ve işlev oluşturucuları, @Immutable ve @Stable API'lerle güncellendi
    21. VertexMode sıralaması PascalCase olarak güncellendi
    22. DrawScope selectPaint yöntemi, değişmesi durumunda boyadaki çizgi parametrelerinin üzerine koşullu olarak yazılacak şekilde güncellendi
    23. Yapıyı kaldıran API'yi eklemek, UnspecifiedSize adını Belirtilmemiş olarak değiştirmek ve kullanılmayan yöntemleri kaldırmak için Boyut güncellendi
  • Oluşturma BlendMode API tüketimi, API düzeyine bağlı olarak Android çerçevesi BlendModes ile PorterDuff modları arasında doğru eşleme sağlamak için güncellendi. BlendMode'un, kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için yetenek sorgusu görevi görmesi için BlendMode#isSupported API kullanıma sunuldu. (I0ef42)
  • LazyItemScope, Geç listelerin itemContent parametresi için eklendi. Üst maksimum boyutu doldurmak için değiştiriciler sağlar. Böylece, öğenin görüntü alanını doldurması gerektiğinde kullanım alanı çözülür ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğünden normal Modifier.fillMaxSize() çalışmaz. (Ibd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture kaldırıldı. Bunun yerine SemanticsNodeInteraction.performGesture kullanın. (Id9b62)
  • LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor (I84f84) olarak yeniden adlandırıldı
  • foundation.shape.corner paketi foundation.share (I46491, b/161887429) olarak hizalandı
  • AndroidComposeTestRule adlı dosya createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
  • TextLayoutResult API'lerine daha fazla API eklendi. (Id7e04)
  • FilledTextField malzemesi, TextField olarak yeniden adlandırıldı ve temel TextField, istenen en basit API'nin keşfedilmesini ve kullanımını kolaylaştırmak için BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676)
  • Değiştirici.drawbackground, Değiştirici.background (I13677) olarak yeniden adlandırıldı

Sürüm 0.1.0-dev15

22 Temmuz 2020

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

Bağımlılık Güncellemesi

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

API Değişiklikleri

  • FocusModifier; Değiştirici.focus, Modifier.focusRequester, Modifier.focusObserver'ın yerini alması için kullanımdan kaldırılmıştır. FocusState ve FocusAyrıntılıState kullanımdan kaldırılarak, FocusState2'nin kullanılması (I46919, b/160822875, b/160922136)
  • Odak durumu değişikliğini gözlemlemek için bir değiştirici eklendi. (I05866, b/160924455, b/160923326)
  • Odak değişikliği isteğine düzenleyici eklendi (I8dd73, b/161182057, b/160924778)
  • Kopyalama, kesme ve yapıştırma işlemlerini düzgün bir şekilde göstermek için Araç Çubuğu Menüsünü ayarlayın. (Id3955)
  • Tek değerli anlamsal özellikler artık bir çağrı stili kullanır. Örneğin, "anlamsal {gizli = doğru }", artık şu şekilde yazılıyor: semantics { hidden() }. (Ic1afd, b/145951226, b/145955412)
  • FocusModifier'ın yerini alan Değiştirici.focus eklendi. (Ib852a, b/160924778)
  • Metin Alanı Seçimi için Kayan Araç Çubuğu ekleyin. (Ie8b07)
  • Anahtar girişleriyle ilgili API (I53c0a) için deneysel bir API ek açıklaması eklendi
  • Focus ile ilgili tüm API'ler için deneysel bir API ek açıklaması eklendi (I53b24, b/160903352)
  • FocusAyrıntılıState'in yerini alacak FocusState2 eklendi (I0a3ba, b/160822595)
  • Focus API için @OptIn ek açıklaması olan ExperimentalFocus eklendi. (I1544b, b/160820961)
  • Düzenden tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'sı bunu kullanacak şekilde güncellendi. (I0d8d0, b/159596546)
  • Applier artık besteleri atmak için clear() yöntemi gerektiriyor (Ibe697)
  • KeyEvent'in desteği sonlandırılmıştır. Bu etkinliğin yerini KeyEvent2 (I68730) alır.
  • Test bulanlara isteğe bağlı yeni bir useUnmergedTree işareti eklendi. (I2ce48)
  • Made LayoutNode deneysel API'sı (I4f2e9)
  • Aşağıdakiler de dahil olmak üzere çeşitli satır içi sınıf türlerine kopyalama yöntemleri eklendi:

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

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

  • Pop-up'lar, iletişim kutuları ve menüler artık içeriğe dayalı MaterialTema'yı (Ia3665, b/156527485) devralıyor

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

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

  • Yeniden kullanmak için Seçim Tutamaklarını yeniden düzenleyin. (I420e0)

  • Tıklanabilir öğe kaldırıldı. Değiştirici.clickable'ı kullan (I84bdf)

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

  • Bu değişiklikten önce, oluşturma derleyici eklentisi, @Composable işlevinin içinde bir (I5205a, b/158123804) bulunan kuruculara yapılan çağrılara sıra dışı bir şekilde müdahale ediyordu.

  • Değiştirici.tag, Modifier.testTag ile karışmasını önlemek için Değiştirici.layoutId olarak yeniden adlandırıldı. (I995f0)

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

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

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

  • Etkinlik veya Parça (I5fdd1) içindeki çalışma şekline benzer şekilde ViewModel oluşturulmasına veya önceden oluşturulmuş ViewModel'in oluşturulmasına olanak tanıyan viewModel() composable ekleyin

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

  • Boyutlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek için PxSize yerine Boyut sınıfının kullanımını standartlaştırın. Bu, satır içi sınıfın, kayan olarak temsil edilen genişlik ve yüksekliği temsil eden uzun paket 2 kayan değerinden yararlanma avantajını sağlar. (Ic0191)

  • Konumlandırma bilgilerini temsil eden sınıf sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, satır içi sınıfın x ve y ofsetlerini hareketli olarak temsil edilen x ve y ofsetlerini temsil etmesi için uzun paket 2 kayan değerden yararlanma avantajını sağlar. (I3ad98)

  • Piksel parametreleri için yalnızca Dp ve temel türleri temel alan büyük yeniden düzenleme çalışmaları kapsamında, çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)

  • Piksel parametreleri için yalnızca Dp ve temel türleri temel almaya yönelik büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (I086f4)

  • Piksel parametreleri için yalnızca Dp ve temel türleri temel almaya yönelik büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (Id3434)

  • Piksel parametreleri için yalnızca Dp ve temel türlere dayanacak şekilde yapılan büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (I97a5a)

  • TestTag'in desteği sonlandırıldı. Bunun yerine Değiştirici.testTag'i kullanın. (If5110, b/157173105)

  • Varsayılan, işlemsiz ParentDataModifier#modifyParentData uygulaması kaldırılmıştır. Bu, en başta arayüzün uygulanmamasıyla eşdeğerdir. (I0deaa)

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

  • Piksel parametreleri için yalnızca Dp ve temel türleri temel almaya yönelik büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (I19d02)

  • ui-material öğesine DropdownMenü bileşeni, bir Materyal Tasarım menü uygulaması eklendi. (I9bb3d)

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

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

  • Değiştirici.semantik özelliği, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırıldı. (I4cfdc)

  • Birleştirilmiş CanvasScope uygulamaları artık yalnızca DrawScope ve ContentDrawScope yeniden adlandırıldı CanvasScope, DrawScope olarak adlandırıldı. DrawScope, Yoğunluk arayüzünü uygulamak ve ContentDrawScope'ta LayoutDirection (LayoutDirection) Silinen DrawScope alt sınıfını sağlamak için güncellendi DrawScope bunu manuel olarak sağlamadan zaten RTL özelliğini sağladığından artık RTL mülkünü sürdürmeyecek şekilde güncellendi (I1798e)

  • DoubleTapHareketFilter artık ağaç genelinde SingleTapHareketFilter ayırır. (If92b1)

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

  • DrawKatman değiştiricileri api'si değiştirildi: outlineShape, şekil olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip ve artık nullable değil. KlipToOutline, klip olarak yeniden adlandırıldı; RectangleShape ile gösterilen klip == true ile aynı olduğu için klibin kaldırılması (I7ef11, b/155075735)

  • Bunun yerine CanvasScope'u açığa çıkarmak için bir Tuval'i açığa çıkaran daha üst düzey oluşturma API'leri güncellendi. Bu, tüketicilerin kendi Paint nesnelerini yönetme ihtiyacını ortadan kaldırır. Hâlâ bir Tuval'e erişmesi gereken tüketiciler, temel Canvas'la çizim komutları vermek için geri çağırma sağlayan "drawCanvas" uzantı yöntemini kullanabilir. (I80afd)

  • WithConstraints takip eden lambda API değiştirildi. Artık iki parametre yerine, sınırlamalara ve layoutDirection'a ek olarak, Dp'de (I91b9a, b/149979702) minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan

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

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

  • Layout ve LayoutModifier2 üzerindeki içsel ölçüm işlevlerinde, artık örtülü olarak yayılan düzen yönü ile intrinsics sorgu API'si sağlayan bir IntrinsicMeasureScope alıcısı bulunuyor. (Id9945)

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

  • Aynı üst düzen içinde alt öğelerin çizim sırasını kontrol etmek için yeni Değiştirici.zIndex() eklendi. DrawlayerModifier'daki yükselti özelliği shadowElevation olarak yeniden adlandırılır ve artık çizim sırasını kontrol etmez. DrawShadow parametre sıralaması değiştirildi: Yükseklik artık ilk sırada, şekil ise RectangleShape varsayılanıyla ikinci sırada. (I20150, b/152417501)

  • Sahip bölümündeki onSizeChange ve onPositionChange kaldırıldı. (I5c718)

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

    • IntSize da eklendi. Bu boyut, IntPxSize'ın yerini alacaktır. (I4b43a)
  • Hizalama rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar Eklendi. (Ia0c05)

  • levelToSiblings artık Yerleştirilebilir yerine Ölçülmüş kabul etmeyi kabul ediyor. (I5788d)

  • (I45f09, b/152842521)

    • ScaleFit, ContentScale olarak yeniden adlandırıldı
    • ContentScale, Hizalama API'si ile aynı modülde yayınlanmak üzere kullanıcı arayüzü grafiklerden kullanıcı arayüzü modülüne taşındı.
    • FillMaxDimension, Kırpılacak olarak yeniden adlandırıldı
    • FillMinDimension Fit olarak yeniden adlandırıldı
    • Daha iyi eşleşecek şekilde Fit, Inside olarak yeniden adlandırıldı
    • ImageView.ScaleType eşdeğerleri
    • Kırpma ve Hizalama Merkezi kombinasyonunun ImageView.ScaleType.CENTER_CROP ile birlikte kullanılan Fit, ImageView.ScaleType.FIT_CENTER ile aynı sonucu sağladığını ve ImageView.ScaleType.FIT_CENTER ile aynı sonucu elde ettiğini gösteren 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'sini iyileştirin:

    • Paint() ContentDrawScope için alıcı kapsamı oluşturuldu
    • Çizimler() işlevindeki tüm parametreler kaldırıldı
    • DrawScope, eski CanvasScope ile aynı arayüze sahiptir
    • ContentDrawScopedrawContent() yöntemini içerir (Ibaced, b/152919067)
  • LayoutKoordinatlar içinpositionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)

  • DrawKatmanModifier vedrawlayer() artık varsayılan olarakClipToBounds ve klipToOutline için false (yanlış) değerini alır. (I0eb8b, b/152810850)

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

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

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

  • Belirli bir Katman için çizim komutlarının görüntüleme listesinin ofsetini değiştirmeyi desteklemek üzere translateX/Y özellikleri eklendi. Bu, içeriğin animasyonlara veya dokunma etkinliklerine yanıt olarak taşınmasında yararlıdır. (I8641c)

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

  • OnPositioned ve OnChildPositioned composable işlevlerinin yerine geçmek için OnPositionedModifier ve OnChildPositionedModifier ekleyin. (I2ec8f)

  • Düzen için RenderNode eklenmesine olanak tanıyan bir değiştirici olan KatmanModifier eklendi. Kaydırma, opaklık, döndürme, ölçeklendirme ve gölge ayarlamalarına olanak tanır. Bu, RepaintBoundary'nin yerini alacak. (I7100d, b/150774014)

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

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

  • Compose düzeninde Rtl için ilk destek (Ia5519)

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

  • LayoutKoordinatlar, providedalignmentLines'ı Harita yerine bir Set olarak kullanmak ve LayoutKoordinatlar'ın bir değer almak için bunun yerine get() operatörünü uygulamasını sağlamak amacıyla değiştirilmiştir. Bu sayede, her değiştirici için yeni bir koleksiyon oluşturmadan değiştiricilerin, kümenin bir veya daha fazla değerini kolayca değiştirmesi kolaylaşır. (I0245a)

  • Düzen Koordinatları artık konum özelliğine sahip değildir. LayoutModifiers, rotasyon veya ölçeklendirme göz önünde bulundurulduğunda konum özelliği bir anlam ifade etmez. Bunun yerine, geliştiriciler bir LayoutKoordinatör'den diğerine dönüşümü hesaplamak için parentcoordinates ve childToLocal() kullanmalıdır.

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

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

  • Durum bilgisiz, bildirim temelli bir çizim API yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır. Boyutlandırma bilgileri de ilgili iç sınırların kapsamına alınır. Bir tüketicinin, çizim işlemlerini yapılandırmak için kendi Boyama durumu nesnesini tutmasını gerektirmez.

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

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

  • API'deki tüm null değer içeren Color kullanımları null olmayan değer ile değiştirildi ve null yerine Color.Unset kullanılır (Iabaa7)

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

  • Renkler kutusu eklenmeden, ayarlanmamış bir değeri temsil etmek için Ayarlanmayan Renk özelliği eklendi. (If901a)

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

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

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

  • ToFrameworkRect/toFrameworkRectF'in adı, oluşturma ve temel alınan Android çerçeve API'leri arasındaki nesne dönüşümleri için adlandırma kuralına uygun şekilde toAndroidRect/toAndroidRectF olarak yeniden adlandırıldı. Bu API'lerle ilgili dokümanlar da güncellendi (I86337)

  • Vektör grafikleri için mevcut alt bileşen API'sinin yerini alması amacıyla VectorPainter API eklendi. Alt bestenin sonucu, DrawModifier yerine bir VectorPainter nesnesidir. Önceki DrawVector composable'larının desteği, VectorPainter'ın adına kullanımdan kaldırıldı.

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

  • Resim verileri ile düzene katkıda bulunmak ve içerik çizmek için kullanılan yeni Image composable arasındaki farkı daha iyi ayırt etmek için Resim, ImageAsset olarak yeniden adlandırıldı. _Body:Geleneksel Android uygulaması geliştirmeyi, yazma çerçevesiyle (Id5bbd) birleştirmeye yarayan bir ImageAsset örneği oluşturmak için android.graphics.Bitmap, Bitmap.asImageAsset() üzerinde bir uzantı yöntemi oluşturuldu.

  • TextDirection.Content eklendi (I48f36)

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

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

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

  • Metin Alanı Seçimi için Long PressAndDrag uygular. (I17919)

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

  • Yerel Ayar ve Yerel Liste için androidx.ui.text olan paket adı androidx.ui.intl (I8132c) olarak değiştirildi

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

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

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

  • AnnotatedString.Builder.addDescriptionString olarak addStringDescription değerini yeniden adlandırın. (I5059e)

  • Artık onTextInputStarted geri çağırması (I8dc44, b/151860051) tarafından sunulan SoftwareMusicController kullanılarak yazılım klavyesi gizlenebilir/gösterilebilir.

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

  • Fontweight.lerp artık tutturulmuyor. Yine de bir veri sınıfıdır. (I521c2)

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

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

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

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

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

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

Hata Düzeltmeleri

  • Metin alanlarında onFocusChange geri çağırması onFocusChanged olarak (Ida4a1)
  • Vertical Scroller ve Horiziontal Scroller desteği sonlandırıldı. Column/Row davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u ya da kendi öğenizde Değiştirici.verticalKaydırma ve Modifier.Yatay Kaydırma'yı kullanın. Benzer şekilde, ScrollerPosition desteği ise ScrollState'in (I400ce, b/157225838, b/149460415, b/154105299) kullanılmasıyla sonlandırılmıştır.
  • runOnIdleCompose, runOnIdle (I83607) olarak yeniden adlandırıldı
  • Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. TümfindXYZ 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 oluşturma işlemi gerekmeden ViewGroups içinde oluşturulabilir. Örnek için ViewInteropDemo konusuna bakın. (I9ab0b, b/160455080)
  • MutableVector'a SortWith ve removeRange özellikleri eklendi (Icccf7)
  • TextField seçimini değiştirmek için Seçim Tutamaçlarını Sürükleyin. (I27032)
  • NativeShader bekleme sınıfını sarmalayan Gölgelendirici satır içi sınıfı kaldırıldı. Bu sınıf, NativeShader'ı Gölgelendirici olarak yeniden adlandırdı. 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 doğrudan NativeShader sınıfını kullanın. (I25e4d)
  • PainterModifier, artık verilen kısıtlamalara ve ContentScale parametresine göre ölçeklendirme sağlamayacak şekilde yeniden düzenlendi. Painter'ın uygulamaları, çizim içeriklerinin kendilerini, çizdikleri DrawScope'un belirtilen boyutuna göre ölçeklendirmektir.

    VectorPainter'ın önbellek bit eşleminin, kullanılacak belirli boyut yerine varsayılan boyutuna göre boyutlandırılması sorunu düzeltildi.

    ImagePainter'ı güncelleyerek PainterModifier'ın bunu yapmasına güvenmek yerine içeriğini ölçeklendirmesini sağladı. (I6ba90)

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

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

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

  • Disptach sırasında alt bileşim aracılığıyla PointerInput Controls kaldırılırsa işaretçi giriş gönderme işleminin kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)

  • Disptach sırasında alt bileşim aracılığıyla PointerInputFiltreler kaldırılırsa işaretçi giriş göndermenin kilitlenmeye neden olmasıyla ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)

  • Yarıçap sınıfı, satır içi sınıf olacak şekilde yeniden düzenlendi. Y eksenindeki yarıçapın zorunlu x ekseni yarıçap parametresiyle aynı olması için varsayılan parametreye sahip işlev oluşturucu yerine tamamlayıcı oluşturma yöntemleri kaldırıldı.

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

  • Recompose compose, artık kullanışlı bir soyutlama değil. Çoğu yeniden oluşturma işlemi, MutableState atamalarının sonucu olarak gerçekleşir. Bunun dışındaki her şey için geçerli kapsamın yeniden oluşturulmasını tetiklemek üzere invalidate işlevini kullanmanız önerilir. (Ifc992)

  • Piksel parametreleri için yalnızca Dp ve temel türlere dayanacak şekilde yapılan büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (Iede0b)

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

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

    Bu, tüm oluşturma kullanımı için kaynakla uyumlu bir değişiklik olmalıdır. Oluşturmayı kullanan çoğu kullanıcı, bu değişikliğin sonucunda herhangi bir kodu güncellemek zorunda kalmaz.

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

    Compose, artık varsayılan bağımsız değişkenleri de composable işleve dönüştürüyor. Bunu, işlevin kendisine varsayılan olarak fazladan bir yapay varsayılan aşırı yükleme getirmeden gerçekleştirir. Dolayısıyla bu değişiklik, daha az işlevin tanımlanmasına neden olur.

    Bu durumdan kaynaklanan bilinen, kasıtlı davranış değişiklikleri:

    1. Bazı görüşmelerde daha önce olmayacak şekilde atlanır
    2. Varsayılan bağımsız değişken ifadelerindeki oluşturulabilir ifadeler artık doğru şekilde abone olunuyor ve işleniyor

    Bu çalışmada bazı optimizasyonlar yapıldı: 1. Parametre karşılaştırmalarının sonucu, çağrı grafiği üzerinden diğer composable işlevlere yayılır. Bu durum, çalışma zamanında daha az karşılaştırma, alan tablosu boyutunu küçültür ve daha önce atlanmayan composable işlevlerin daha fazla atlanmasına neden olur. 2. Derleme zamanında "statik" olduğu belirlenen parametreler artık karşılaştırılmaz veya çalışma zamanında depolanmaz. Bu, karşılaştırma sayısını azaltır ve alan tablosu boyutunu küçültür. 3. İşlevlerin gövdesinin kontrol akışı yapısı, oluşturulan grupların sayısını en aza indirmek için kullanılır. Bu, slot tablosu boyutunu küçültür ve çalışma zamanı boyunca daha az iş yapılmasını sağlar 4. İşlevlere yönelik kullanılmayan dağıtım ve alıcı parametreleri, işlevin gövdesinde kullanılmıyorsa işlevin atlanabilirliğinin belirlenmesine dahil edilmez.

    Zarar veren değişikliklerin çoğu, derleyicinin doğrudan hedeflediği API'lerle ilgiliydi ve tipik oluşturma kullanımı bundan etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call desteği sonlandırıldı 4. key öğesinin vararg olmayan aşırı yüklemeleri kaldırıldı. Bundan sonra vararg sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı. Alternatif olarak key kullanın. 6. ScopeUpdateScope::updateScope, İşlev1 yerine bir Function3 beklenecek şekilde değiştirildi. Yeniden çalıştırılabilir işlev ve yeniden başlatılabilirFunctionN, ek derleme süresi parametrelerini içerecek şekilde güncellendi (I60756, b/143464846)

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

  • DrawKatmanModifier (I00aa4) adına RepaintBoundary kaldırıldı

  • Button, floatingActionButton ve Clickable artık ayrı bir enabled parametresine sahip. 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 göz atın. (If63ab, b/146478620, b/146482131)

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

  • LayoutDirection tarafından belirlenecek varsayılan TextDirection davranışı değiştirildi. Yani, LayoutDirection (Düzen) yönü RTL ise varsayılan TextDirection, RTL olur. Daha önce TextDirection.ContentOrLtr/Rtl (I4e803) idi

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

  • Text()'ye yaygın olarak kullanılan parametreleri ekler. Şu anda Text(style = TextStyle(textHizala = TextHizala.Center) gibi bu parametrelerin az sayıda kopyasını iletmek için bir yerel metin stili oluşturuyorsanız, artık parametreleri doğrudan sağlayabilirsiniz: Text(textHizala = Textalign.Center) (I82768)

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