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ü
4 Eylül 2024 1.7.0 - - 1.8.0-alfa01

Yapı

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

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

GrupAçı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 Google Maven deposunu belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.

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

Eski

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    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 sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Sürüm 1.8

Sürüm 1.8.0-alpha01

4 Eylül 2024

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

Sürüm 1.7

Sürüm 1.7.0

4 Eylül 2024

androidx.compose.ui:ui-*:1.7.0 yayınlandı.

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

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

Sürüm 1.7.0-rc01

21 Ağustos 2024

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

Önemli değişiklikler

  • ui:ui modülü artık en az Foundation:foundation sürümünün en az 1.7.0-rc01 olmasını zorunlu kılıyor. Bu uygulama, 1.7.0-alfa01 arasındaki ilk sürümlerde gerçekleşen NestedScrollSource değişiklikleriyle ilgili olarak kullanıcı arayüzü ile temel arasındaki davranış uyumsuzluğunu düzeltmek için zorunlu kılınmıştır.

Sürüm 1.7.0-beta07

7 Ağustos 2024

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

Hata Düzeltmeleri

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

Sürüm 1.7.0-beta06

24 Temmuz 2024

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

Sürüm 1.7.0-beta05

10 Temmuz 2024

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

Hata Düzeltmeleri

  • Yazılım klavyesini değiştirmenin, odak kaybolup yeniden elde edilene kadar TextField ürününün yeni klavyeden girişi kabul etmemesine neden olan hata düzeltildi.
  • Katman içeriklerini kullanmaya devam etme girişimlerinin, SurfaceView içeriğiyle oluşturulurken istenmeyen yan etkilere neden olmasına neden olan sorun düzeltildi.

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. Veya bir 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ı Ofset ve Boyut satır içi sınıflarının (I2fb03, b/333863462) yerini alan, zaten mevcut belirtilmemiş sabit değerler için UnsetOffset/UnsetSize IntSize koruyucu değer kaldırıldı
  • 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 içindeki öğeleri önceden getirme desteği 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ı beklenir. 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ükle 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 uyum sağlamak 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çerecek 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 döndüren platformLocale özelliğini (ör. java.util.Locale. (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.
  • Yerel olarak izin vermek için ui-test hizmetine DeviceConfigurationOverride API ekler test edilen içeriğin davranışını geçersiz kılmak (örneğin, kullanılabilir bir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema.

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 da 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 yayınlandı. 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 bu şekilde değiştirilmiştir. Sürükleyip bırakma oturumlarından almak üzere DragAndDropTarget fabrika işlevi eklendi (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. Yazı tipi ölçeklendirildiğinde > %100'e ayarlanırsa küçük metin boyutu normal olarak büyütülür. Ancak zaten büyük olan metinlerin boyutu biraz artar. 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 En İyi Uygulamaları'na bakın. (I11518)

Sürüm 1.6.0-alpha05

6 Eylül 2023

androidx.compose.ui:ui-*:1.6.0-alpha05 yayınlandı. 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

  • İçeriği, giriş ve geçiş sırasında animasyon kapsayıcısının boyutuna göre ölçeklendiren yeni giriş/çıkış geçişi türü çıkış animasyonu. 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 yerleştirilmiş kaydırmadaki bir sürükleme ile fare kaydırmasını ayırt etmek 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 verme özelliği 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.
  • 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 kareleri boşta tutmak amacıyla (ör. waitForIdle üzerinden) yürütürken her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının ayrı ayrı karelerinde doğrulama yapan 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 doğru ş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 yükseltildi. (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.
  • 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 kareleri boşta tutmak amacıyla (ör. waitForIdle üzerinden) yürütürken her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının ayrı ayrı karelerinde doğrulama yapan 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 derlenen modüllerden 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 öğelerin kaydırma bilgilerini sorgulamak için 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ğırma işleminden sonra, arayanların devam ettirilmesinden önce kod çalıştırmak için TestMonotonicFrameClock oluşturucusuna ve fabrika işlevine isteğe bağlı onPerformTraversals: (Long) -> Unit parametresi eklendi eş yordamlar. (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şimli 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)
  • DialogProperties.decorFitsSystemWindows mülk eklendi ve iletişim kutularının WindowInsets özelliğini desteklemesine izin verin. (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ı destekliyor (API 26+). (I900dd, b/143703328)
  • DeviceFontFamilyNameFont ürününde değişken yazı tipi desteği (Ic1279, b/143703328)
  • Yazı tipi oluşturucuları artık O+ cihazlarda değişken yazı tiplerini yapılandırmak için 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ı, "Milis" son ekini içerecek şekilde yeniden düzenlendi burada, söz konusu sabit değer ve parametrelerin 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 Denetleyicisi için bu, yaklaşık bir faktör 10. (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. FontFamily.Resolver öğesinin üzerine yazılırsa kilitlenmelere yol açabilir. (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)
  • Yeni, deneysel, platformdan bağımsız, test API kullanıma sunuldu: Compose kullanıcı arayüzü testlerini çalıştırmak için kullanılabilecek interface ComposeUiTest ve fun runComposeUiTest(block: ComposeUiTest.() -> Unit) TestRule olmadan. ComposeTestRule, testi runComposeUiTest için lambda olarak geçin ve alıcı kapsamındaki ComposeUiTest kapsamındaki yöntemler ve üyeler ComposeContentTestRule ile aynı olanlar.

    Android'e özel interface AndroidComposeUiTest ve fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit) şunlardır: temel Etkinliğe erişim sağlamak için AndroidComposeTestRule. Daha da fazla kontrol için, bir Kendiniz class AndroidComposeUiTestEnvironment.

    Masaüstü uygulaması class DesktopComposeUiTest, ancak hayır Şu anda masaüstüne özel çalıştırma işlevleri sunulmaktadır.

    Test, ComposeTestRule öğesinden ComposeUiTest öğesine taşınabilir bunun gibi bir şey (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, trimLastLineBottom özellikleri LineHeightBehavior, tek bir sıralama olarak değiştirildi: LineHeightTrim. LineHeightTrim, iki boole ile tanımlanmış 4 durum değerine 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'dekine benzer bir davranış LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) aracılığıyla tanımlar.

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

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şturma ve Görünüm yönünde Oluştur > Görüntüleme. 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 geçerliyse VectorPainter öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizimlerinin ayrıştırılması güncellendi. RTL'dir. (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 lambda bağımsız değişkenlerini kabul ediyor ActionCallback. (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)
  • Yaşasın! Oluşturma animasyonu artık destekleniyor "Animatör süre ölçeği" ayarını değiştirebilirsiniz. (I5a4fc, b/161675988)
  • Yerel bir BeyondBoundsLayout değiştiricisi eklendi (If8b51, b/184670295)
  • Metin: includeFontPadding artık varsayılan olarak devre dışı. İlgili içeriği oluşturmak için kullanılan includeFontPadding=false nedeniyle oluşan kırpma sorunları ele alındı Uzun alfabelerde kırpma yapılmamalıdır. (I31c84, b/171394808)

Hata Düzeltmeleri

  • ComposeContentTestRule.setContent şimdi bir atış yapacak Mevcut olduğunda içeriği ayarlamaya çalışırsanız IllegalStateException içerik. (I888a5, b/199631334)
  • Şuradan okurken pano içeriğinden kaynaklanan kilitlenme düzeltildi panosuna bakacağız. (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

  • ComposableTarget, ComposableTargetMarker ve eklendi Aşağıdaki durumların derleme zamanı raporlanmasına olanak tanıyan ComposableOpenTarget: composable işlev, olmadığı bir uygulayıcıyı hedefleme olarak adlandırılır tasarladık.

    Çoğu durumda, ek açıklamalar oluşturma sırasında derleyici eklentisidir. Bu nedenle, bu ek açıklamayı doğrudan nadir . Tahmin edilemeyen durumlar, soyut composable işlevler (ör. arayüz yöntemleri), alanları veya değişkenleri composable lambda'lar (yerel değişkenler ve parametreler tahmin edilir), veya ComposeNode ya da ilgili composable işlevleri kullanılırken sorun yaşanmaz.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode tarafından ComposableTarget fonksiyon ve diğer herhangi bir composable lambda parametre türleri. Bununla birlikte, ve ComposableTargetMarker ve ardından işaretlenen ek açıklama kullanılır. kullanabilirsiniz.ComposableTarget Oluşturulabilir bir ek açıklama ComposableTargetMarker ile işaretlenen bir Özelliğin tam adını içeren ComposbleTarget class'ı uygulayın. Örnek olarak ComposableTargetMarker bkz. anroidx.compose.ui.UiComposable. (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, alt bileşenlere iletilir (ör. Pop-up gibi).
  • Sağlanan Font.ResourceLoader, alt bileşenlere iletilir (ör. Pop-up gibi). (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 için notifyFocusedRect yöntem TextInputService artık kullanımdan kaldırıldığı için çağrılmayacak. Tekliflerinizi otomatikleştirmek ve optimize etmek için Bunun yerine BringIntoViewRequester. (Ia4302, b/192043120, b/216842427, b/178211874)
  • destroyDisplayListData tarihinde kullanıma sunuldu RenderNode saplama sınıfındaki yöntem (I1e659, b/216660268)
  • Önceden oluşturduğunuz SubcomposeLayout öğesinin alt öğelerini önceden ölçmeye olanak tanıyan yeni bir API eklendi. (I857ea)
  • Bir composable'a dönüştüren movableContentOf eklendi lambdayı, durumunu hareket ettiren bir lambdaya ve karşılık gelen düğümlere çağrıldığı yeni bir konuma taşınır. Önceki görüşme ayrıldığında durum geçici olarak korunur ve yeni bir çağrı yapılırsa önce besteye, ardından eyalete ve yeni çağrının konumuna taşınır. Yeni arama yoksa durumun kalıcı olarak kaldırıldığını ve gözlemcilerin bildirim alır.

    movableContentOf lambda aynı her çağrı için bileşim, yeni durum ve düğümler oluşturulur. çağrılar besteden çıkar ve yeni çağrılar girerse durum taşınır ilk çağrıdan ayrılan ilk çağrılardan, gelen aramalara kadar çağrılır. Yeni aramalarla hak talebinde bulunulmayan tüm durumlar kaldırıldı kalıcı olarak tartın. (Ib4850)

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

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

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

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

  • Yedek ile eşzamansız ve isteğe bağlı yazı tipi yükleme desteği gösterir. Bu yol, Text ve TextField tarafından kullanılır ve FontFamilyÇözümleyici

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

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

  • Yeni türler sağlamak için yeni bir alt düzey API olan AndroidFont eklendi yazı tipi kaynak açıklayıcılarının sayısı. Örneğin, isteğe bağlı olarak önceden yüklenmiş yazı tiplerini bulabilen uygulamaya özel bir arka uç veya geçerli web sitesi tarafından sağlanmayan bir kaynaktan yazı tipi yüklenmesi; Yazı tipi fabrikaları.

  • İsteğe bağlı ve eşzamansız desteği desteklemek için Font.ResourceLoaded API genişletildi Yazı tipi yükleniyor. Uygulama geliştiricilerin, API'yi kullanabilirsiniz. Yeni yazı tipi türleri eklemek için AndroidFont bölümüne bakın.

  • Font.AndroidResourceLoader uzantısı işlevi kompozisyonun dışında Font.ResourceLoader inşası.

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

  • Typeface(FontFamily) oluşturucu desteği sonlandırıldı. Bu Önceden yazı tiplerini önceden yüklemek için kullanılır. Bu işlem, indirilebilir yazı tipleri. İndirilebilir yazı tipleriyle bu çağrı 10 gün boyunca saniye. Bunun yerine FontFamilyResolver.preload politikasını kullanın.

  • fontResource(FontFamily): Typeface desteği sonlandırıldı. Bu Önceden yazı tiplerini önceden yüklemek için kullanılır. Bu işlem, indirilebilir yazı tipleri. 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 hücresinde HSV ve HSL işlevini deneysel değil olarak gösterir. API'ye gidin. Oklab renk alanı artık herkese açık API oldu. (I08fb6, b/180731008)

  • AndroidComposeTestRule.AndroidComposeStatement kullanımdan kaldırıldı, Bu, genel API'de olması amaçlanmamıştı ve sizin için bir şey yapmadı zaten. (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 klavyenin üzerinde tutuluyor. yumuşak giriş modu seçiliyken odaklanıldığında ADJUST_PAN (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)
  • Yumuşak klavye giriş türü değiştirilirken artık titreşmiyor metin alanları arasında odaklanmaktır. (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 ekle uzantı (I0cde6)

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 mülkte anlamları yoktur. (Ica5ef)
  • Oluşturma için CompositionData öğesine kimlik alanı eklendi değişmeyen kimlikler oluşturabilirsiniz. (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 uyacak ş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)
  • Kabul eden deneysel Modifier.composed aşırı yüklemelerini ekleyin anahtarlara değer veriyoruz. (Ice799, b/205851704)
  • ComposeNotIdleException artık Exception yerine genişletiliyor (doğrudan Throwable aracılığıyla). Bunun, Yakalama ifadelerinin Exception yakalayanları artık yakalayabilirsiniz ComposeNotIdleException, YouTube'da bunu daha önce yapmaz. (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

  • İzin vermek için yeni değiştirici Değiştirici.onPlaced eklendi dikkat edilecek yerleşim değişikliğine sahip olması gerekir. Ek değişiklikler Dolayısıyla, alt değiştiricinin uzaklığı gözlemlenen yerleşim değişikliğini gösterir. (I558fd)
  • InjectionScope.flush() ve InjectionScope.dispose(). Tüm etkinliklerin temizlenmesi ve verilerin bertaraf edilmesi kapsam artık, kontrol edin. (I2bed8)
  • MultiModalInjectionScope.Touch ve MultiModalInjectionScope.Mouse. Dokunma ve fare eklemek için etkinlikleri kolayca etkinleştirebilirsiniz. MultiModalInjectionScope.touch() ve MultiModalInjectionScope.mouse() ve her ikisi de alıcı kapsamına sahiptir. (Idde18)

Hata Düzeltmeleri

  • durationMillis için varsayılan değer TouchInjectionScope.swipeWithVelocity artık şu şekilde hesaplanmaktadır: uygulanabilir. (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, aracın animasyonları ve yapılandırmalarını Geçişler. (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, aracın animasyonları ve yapılandırmalarını Geçişler. (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 sitesini, ViewRootForInspector sitesinden kaldır ve LayoutInfo.ownerViewId (I5c2e3)
  • Düzen için, verimlilik artırılarak çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
  • InternalCompilerApi, şu özelliklere sahip Composer yöntemlerinden kaldırıldı: modüller arası olarak çağrılması gerekir (I1aa0b)
  • SemanticsNodeInteraction.performSemanticsAction şimdi iade edildi fonksiyonun çağrıldığı SemanticsNodeInteraction. (I9e5db)
  • TouchMode/NonTouchMode'un algılanması için LocalInputModeManager CompositionLocal öğesi eklendi. (I6a83c, b/175899786)
  • viewConfiguration: ViewConfiguration, LayoutInfo koleksiyonuna eklendi Tüketicilere uzun basma gibi işlemlerde doğru değeri almalarını sağlamak zaman aşımına uğrar. (I76ca6)
    • viewConfiguration: ViewConfiguration koleksiyonuna eklendi Testlerin şuna göre giriş yerleştirmeyi ayarlamasına izin vermek için InjectionScope: uzun basma zaman aşımı veya dokunma geçişi gibi şeyler.
    • Her ikisi için de varsayılan uzun basma ve iki kez dokunma süresi değiştirildi dokunmatik giriş ve fare girişlerini temel alacak InjectionScope.viewConfiguration
  • İç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 kullanımdan kaldırıldı ve şu şekilde değiştirildi: türünü bir StateFlow olarak değiştirmek için Recomposer.currentState (Ic2ab3, b/197773820)
  • flush() ve dispose(), InjectionScope koleksiyonuna eklendi. Bu araçları kullanın Sırada olan tüm etkinlikleri hemen temizlemek istediğinizde ve öncelik sırasına koyabilirsiniz. (Ifb73a)
  • Şunları ekledi: performScrollToNode(matcher: SemanticsMatcher) Kaydırılabilir bir kapsayıcıyı eşleştirmeye yardımcı olur. (Ic1cb8)
  • InjectionScope artık Density özelliğini uygulayarak şunları yapabilirsiniz: performTouchInput ve arkadaşlarınızda px ile dp arasında kolayca dönüştürme yapın. (I8fe1f)

Hata Düzeltmeleri

  • AndroidView artık LocalLifecycleOwner ve ViewTreeLifecycleOwner üzerinden kendi görünümüne ait LocalSavedStateRegistryOwner ve ViewTreeSavedStateRegistryOwner sahiplerinden biri. (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 olan 16 ms olarak değiştirildi. Bu, testlerin sonucunu değiştirebilir giriş hareketlerini gerçekleştiren özellikler (ör. belirli bir kaydırma). (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 sayede LayoutInfo tüketicileri LayoutInfo gösterilen boyutları ve konumu yorumlamak için gerekir. (I002f1)
  • Fare etkinlikleri eklemek için deneysel destek eklendi. Tekliflerinizi otomatikleştirmek ve optimize etmek için Fare etkinlikleri göndermeye başlamak için performMouseInput veya fare etkinlikleri gönderin sırasında, MultiModalInjectionScope öğesinin Mouse özelliği aracılığıyla performMultiModalInput ile çok modlu giriş hareketi. Görüntüleyin Kullanılabilir API ile ilgili belgeler için MouseInjectionScope. (Iaa4a8, b/190493367)

Hata Düzeltmeleri

  • Kaydırılabilir reklamlar için sabit erişilebilirlik desteği (hem geç hem de (I6cdb0) kaydırmaya göre
  • TouchInjectionScope.swipeWithVelocity iyileştirildi. Şimdi daha geniş bir yelpazedeki giriş değişkenlerini kabul eder ve Kaydırma oluşturulamıyorsa giriş yapın (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 için artık PointerEventType var içeren bir e-tablo kullanabilirsiniz. (I091fa)
  • Çocukların, üst öğe işaretçi giriş sınırları. Ebeveynler bu içeriklere müdahale edebilir PointerInputScope.alwaysInterceptChildEvents özelliğine sahip çağrılar (I9eae3, b/192479655)
  • Şu özelliklere sahip performGesture ve GestureScope kullanımdan kaldırıldı: performTouchInput ve TouchInjectionScope ile değiştirildi. (Ia5f3f, b/190493367)
  • touchBoundsInRoot SemanticsNode içine eklendi geliştiricilerin minimum dokunma hedefi boyutunu içermesi , dokunma hedeflerinin erişilebilirlik minimum değerlerini karşılamasını sağlayabilir. (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 performTouchInput ve TouchInjectionScope yerine, zemin döşeme modalitelerin (fare gibi) önünü açıyor.

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

    TouchInjectionScope işlevinin davranışı, İki küçük ayrıntıyla GestureScope:

    1. İşaretçiler taşınmadan taşınmış olan bir aşağı etkinlik gönderirken taşıma etkinliği gönderme (başka bir deyişle updatePointerTo(), kullanılır, ancak move() kullanılmaz, ardından down() çağrılır), önceki etkinlik süresini uzatır ve bir taşıma etkinliği gönderir. etkinliğinden emin olun. Yeni uygulama hâlâ ancak bu belirli işlemde etkinlik süresini ilerletmiyor senaryoyu izler.
    2. İşaretçiler taşınmadan taşınmış olan bir etkinlik gönderirken önceki uygulama olan bir taşıma etkinliği gönderme (yukarıdakine benzer) etkinlik zamanını ileriye taşıyacak ve taşımadan önce bir taşıma etkinliği göndereceğini yukarı etkinliğidir. Yeni uygulama şunları da yapmaz: İşaretçiler yalnızca yukarı etkinliği üzerinden yansıtılır.

    Son olarak, TouchInjectionScope yeni bir yöntem sunuyor Mevcut konumunu için currentPosition(pointerId: Int) girin. (If1191, b/190493367)

Hata Düzeltmeleri

  • Klibin dokunma hedefi sınırlarını genişletmesine izin ver dokunma hedefiyle ilgili amaçlar için klip bölgesini tanımlamalıdır. (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)
  • BlurredEdgeTreatment API eklendi Böylece, bulanıklaştırma yaparken kullanabileceğiniz Yaygın olarak kullanılan klip işareti kombinasyonları ve TileMode'lar. Çoğu kullanım alanında ya da bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında bölgelerin bulanıklaştırılması ve şeffaf siyah veya kırpılmış içerikle içerik sınırlarına göre en yakın kenardan örnekle içeriğin ötesine geçen bulanıklaştırma çekirdekleri için sınırlar. (I6b4b7, b/166927547)
  • RenderEffect için destek eklendi oluşturabilirsiniz. OffsetEffect'in yanı sıra bulanıklaştırma ayarını, Resmin bir kısmına bulanıklaştırma görsel efektleri eklemek ilk adımıdır. (I0f6aa, b/166927547)
  • RenderEffect API kullanıma sunuldu isteğe bağlı olarak değiştirmek için Modifier.graphicsLayer katman içeriği bulunur. Bu bir composable'ın içeriklerini bulanıklaştırmak için kullanılabilir ve bir bestedeki alt composable'lar hiyerarşik olarak düzenlenmiştir. (I47c4d, b/166927547)
  • AwaitPointerEventScope artık withZaman Aşımı() içeriyor ve withSFTPOrNull() (I507f0, b/179239764, b/182397793)
  • ViewConfiguration'a minimum dokunma hedefi boyutu eklendi Bu özellik, erişilebilirliği sağlamak adına anlambilim ve işaretçi girişi için kullanılabilir. (Ie861c)
  • TileMode.Decal desteği ekleme Bu, uç noktanızı tanımlamada veya RenderEffects için farklı bir davranış şekli. (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

  • IsBounded yöntemi kaldırıldı SortredEdgeTreatment'ın lehine şeklin doğru olup olmadığını parametresi null'dur. (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 okuma desteği var fare düğmesinin durumu ve klavye değiştirici durumu. (I6310c, b/180075467)
  • Eklenen hareketler artık zaman için en doğru kaynak. Yerleştirilen etkinliklerin şu anki saati performGesture, şu anki saatine göre başlatılacak MainTestClock'ı seçin. (Ifb364, b/192064452)
  • DpRect(DpOffset, DpSize) oluşturucu eklendi (I2cf16, b/194219828)
  • Eklenen DpSize sınıfı (I7abb1, b/194219828)

Hata Düzeltmeleri

  • Vektör grafikleri xml güncellendi ColorStateLists yöntemini desteklemek için ayrıştırma VectorDrawables'ta kök renk tonu özellikleri. (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 parametresi artık, composable'ın bir bölümünü görünüme getirmemize olanak tanıyan dikdörtgenleri kabul ediyor (Ice2c5, b/194330245)
  • AnimatedImageVector ve ilgili API'ler artık yeni sürümde androidx.compose.animation:animation-graphics modülü. (I60873)
  • Yer değiştirme isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
  • BrushPainter API kullanıma sunuldu rastgele Fırça çizimini desteklemek için bir Ressamda, ColorPainter'a benzer,

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

  • DrawScope#drawImage yöntemi güncellendi kaynak ve hedef dikdörtgenleri tüketir kullanmak için isteğe bağlı filtre kalitesi parametresinden sonra bir değer girin. Bu, piksel için yararlıdır pikselleştirilmek üzere tasarlanmış sanat eserleri büyütüldüğünden emin olun. BitmapPainter + composable resim güncellendi kullanabilirsiniz. parametre (Ie4fb0, b/180311607)

  • Daha fazla bağış yapmak için GestureScope.advanceEventTime yöntemi eklendi hareketteki etkinliklerin zamanlaması üzerinde kontrol (Ibf3e2)

Hata Düzeltmeleri

  • Scrum ekiplerinin daha iyi değiştiricileri çiziyorsanız, Değiştirici.paint uygulamasının çağrısıyla ilgili bir öğedir. Önceden Modifier.paint'in mevcut durumda bir yaprak düğüme dönüşmesi bekleniyordu. ancak Değiştiriciler zincirinin bu şekilde composable bir container'da (ör. kutu) yapılandırılmasını engeller ya da üzerine şöyle süslemeler ekleyerek: Modifier.paint().border() Değiştirici.paint'i kullanarak çekildiğinde, verilen ressam, davranışta daha iyi davranış tutarlılığı değiştirebilirsiniz. (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 şunlar için bir contentDescription parametresini destekliyor: erişilebilirlik. (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 rengi için deneysel destek eklendi temsil eder. (Id7cf8, b/180731008)

Davranış Değişiklikleri

  • Oluştur @Preview artık bir Şunları yapmanıza olanak tanıyan LocalActivityResultRegistryOwner: gibi API'ler kullanan Composables'ı önizlemek için Şuna bağlı rememberLauncherForActivityResult(): görüntülemenizi sağlar. (Ib13d1, b/185693006)
  • Oluştur @Preview artık bir Şunları yapmanıza olanak tanıyan LocalOnBackPressedDispatcherOwner: BackHandler gibi API'leri kullanan Bestelenebilir öğeleri önizlemek için içerik üretmenizi sağlar. (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 satır içi sınıflar olarak değiştirme özel kurucuyla (Id1890)
  • 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ıflar. (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. Tüketme kod sabitlemeden önce özel sabit değerler tanımlayabilir. (Ia5d48)
  • Compose testleri artık Robolectric'te çalıştırılabilir. Aşağıdakiler şu ana kadar sınırlamalar belirlenmiştir:
    • Yerel bit eşlem olmadığından ImageBitmap(), NullPointerException.
    • Çizim olmadığı için captureToImage() süresiz olarak şunu bekleyecek: (yani kilitlenmeyi) kapsıyor.
    • Yazı tipi yüklenmediğinden metinler yanlış ölçülecek. Tümü karakterlerin sabit yüksekliği, yaklaşık 20 piksel ve genişliği 1 pikseldir.
    • ComposeTestRule.waitUntil {}, ana iş parçacığını beklemedeyken çalıştırmadığı için ComposeTestRule.mainClock.advanceTimeUntil {} ile tamamen aynıdır. Gelecekte daha fazla kısıtlamanın belirlenmesi 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 "çalışıyor" olduğunu gösterir yöntemidir ve önceden derlenmesi gerekir.

  • 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 küçük bir ikili ART profili oluşturmak için kullanılır. ART, daha sonra uygulamanın belirli bir alt kümesini önceden derleyerek uygulamanın performansını, özellikle de ilk çalıştırmada performansını iyileştirmek için uygulama cihazlara yüklendiğinde 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ı
  • Kaçınılması için satır içi sınıflarda enum kullanımları yeniden düzenlendi aşağıdaki durumlarda tüm teslimatlar ile ilgili yeni enum değerleri eklenir. (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 anlamsal özellikleri artık kullanılmıyor listeler. Bu işlem, bu öğeleri oldukları gibi birleştirmenize olanak tanır. yardımcı olabilir. Ayrıca bunları kullanmak için daha iyi test API'leri sağlandı değişiklikler (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 Şimdi ExperimentalComposeApi yerine ExperimentalTextApi. (I0cd0a)
    • TextUnitType içeren TextUnit oluşturucusu ExperimentalComposeApi yerine ExperimentalTextApi.

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 tarihinde TextGeomerticTransform ve TextDecoration belirtilen ş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)
  • SemanticsActions.ScrollToIndex ile listede kaydırma yapmak için eklendi belirli bir dizine sahip öğeye dizine eklenmiş öğeler ve Listedeki bir öğenin dizinini almak için SemanticsProperties.IndexForKey anahtarlı öğelerle. Her iki işlem de LazyList tarafından uygulanır.
    • Şunları ekledi: SemanticsNodeInteraction.performScrollToIndex bir listeyi belirtilen dizine kaydırır ve SemanticsNodeInteraction.performScrollToKey öğesine sahip olmayabilir. (I4fe63, b/178483889, b/161584524)
  • ownerViewId'yi GraphiclayerInfo'ya eklendi (I19f62)
  • Yazı tiplerini yüklemek için Font() aşırı yüklemeleri eklendi öğelerden, File ve FileDescriptor'dan (I5d382)
  • 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)
  • Yazı tiplerinin yüklenmesine Font() aşırı yükleme eklendi öğelerden, File ve FileDescriptor'dan (I43007)
  • AnnotatedString'in desteğini şuna kaydet: TextFieldValue.Saver addTtsAnnotation eklendi Ek açıklama yardımcı programı işlevleri ile AnnotatedString.Builder (I8cbdc, b/178446304)
  • TextUnit oluşturucu işlevi eklendi TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

Sürüm 1.0.0-beta05

21 Nisan 2021

androidx.compose.ui:ui-*:1.0.0-beta05 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ı. Arayüz şu anda hiçbir genel API; ve yıl içinde hiç kullanılmamıştı. girin. (I34a02, b/184003208)
  • TextLayoutResult/createTextLayoutResult kullanımdan kaldırıldı işlevini kullanın. Bu, eklenmemiş herkese açık bir işlev kullanmaya karar verebilir. İşlev, Metin API'leri oluşturun. Bu işlev artık kullanımdan kaldırıldı ve daha sonra kaldırılabilir. (I80413)

Hata Düzeltmeleri

  • Düzeltildi: ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight ve accessibilityActionScrollDown erişilebilirlik kaydırma işlemleri. Sonuna kadar kaydırmak yerine kaydırılabilir hale getirildiğinde, verilen yönde bir ekran kaydırılır. (Ieccb0)
  • ui-test-manifest ve ui-tooling-data artık Android 12 (I6f9de, b/184718994) ile uyumlu

Sürüm 1.0.0-beta04

7 Nisan 2021

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

API Değişiklikleri

  • Yeniden adlandırma hideSoftwareKeyboard ve showSoftwareKeyboard açık Sırasıyla SoftwareKeyboardController - hide() ve show().
    • için tüm CompositionLocal arayüzünün tamamını sağlayın YerelYazılım Klavye Denetleyicisi'nin ayarlanmasına (özellikle testlerde faydalı) (I579a6)
  • LiveRegion Accessibility API eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri kullanıcıya yaptığı değişiklikleri otomatik olarak bildirir (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 düzgün şekilde kaldırıyor aşağıdaki durumlarda FragmentContainerView aracılığıyla şişirilen parçalar AndroidViewBinding, oluşturma işleminden kaldırılır. hiyerarşik olarak düzenlenmiştir. (Ib0248, b/179915946)
  • AndroidViewBinding artık doğru şekilde iç içe yerleştiriyor aşağıdaki durumlarda FragmentContainerView aracılığıyla şişirilen parçalar ComposeView metriğiniz Fragment içinde bulunuyor, düzeltiliyor kaydetme ve geri yüklemeyle ilgili sorunlar parçalar. (I70eb0, b/179915946)
  • ViewBinding oluşturma işlemi artık şuna bağlı: Parça 1.3.2 parçaları tutarlı bir şekilde Yapılandırma değişikliklerinden sonra FragmentContainerView. (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)
  • İsteğe bağlı startX/endX ve startY/endY parametreleri eklendi şurada swipeUp/swipeDown/swipeLeft/swipeRight işlevine: GestureScope (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

  • Yeni LocalSoftwareKeyboardController bestesi yerel eklendi üzerindeki önceki SoftwareKlavyeController arayüzünün yerini alacak API TextField'i (Metin Alanı) seçin. (I5951e, b/168778053)
  • Yeni LocalSoftwareKeyboardController bestesi yerel eklendi üzerindeki önceki SoftwareKlavyeController arayüzünün yerini alacak API TextField'i (Metin Alanı) seçin. (I84472, b/168778053)
  • Şu SemanticsMatcher öğeleri kaldırıldı:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • Aşağıdaki SemanticsMatchers şu şekilde işaretlendi: @DeneyselTestApi:
    • 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)
  • Yeni LocalSoftwareKeyboardController bestesi yerel eklendi üzerindeki önceki SoftwareKlavyeController arayüzünün yerini alacak API TextField'i (Metin Alanı) seçin. (I658b6, b/168778053)
  • ComposeRootRegistry içindeki nadir görülen NoSuchElementException düzeltildi tearDownRegistry() (Iddce1)

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)
  • AccessibilityMananger arayüzünü ekleyin ve CompositionLocals içinde LocalAccessibilityMananger (I53520)
  • 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)
  • Temel türlerle değiştirilen tür takma adları:
    • 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 için defaultFactory staticCompositionLocalOf artık şunun yerine zorunludur: isteğe bağlıdır.

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

    Boş değer atanabilen türler için varsayılan olarak { null } sağlayabilirsiniz fabrika ayarlarına sıfırlamanız gerekir.

    Aşağıdaki durumlarda, null olmayan türlere sahip yerellerin kullanılmasını önermiyoruz: makul bir varsayılan değer sağlanabilir. Makul bir varsayılan ayar yoksa defaultFactory lambda bir istisna yapar. Ancak bir istisna uygulamak, yerel tüketicilerin zorunlu kılınmayan örtülü bağımlılık yapabilirsiniz. (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 uzantı işlevleri oldu ImageBitmap ve ImageVector tamamlayıcılarında gösterilir. load{Image,Vector,Font}Resource işlev silindi. (I89130)

  • AnimationClockObservable ve alt sınıflar emin olun. 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 öğesinden kaldırıldı. androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b) kapsamındakileri kullanın

  • Değiştirici.scrollable yeniden düzenlendi. Şimdi ScrollableController sınıfının yerine Kaydırılabilir arayüzü kullanı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 DoubleClickHareket Filtresi kaldırıldı. Değiştirici.pointerInput'u,DetectTapHarekets (I2fedf, b/175294473) gibi yardımcı işlevlerle kullanın

  • String.format API kaldırıldı yeniden düzenlemeye tabi, Kullanılmayacak toString yöntemleri String.format'ı dahili olarak belirtir. (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)

  • Şu işlemleri kolaylaştıran bir yardımcı işlev eklendi: tüm ImeAction geri çağırmaları için aynı işlemi ayarlayın (I63447, b/179226323)

  • Tüm metinlerden SoftwareKlavyeController geri çağırması kaldırıldı alanları kısa süre içinde yeni bir API ile değiştirilecektir. (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. Tekliflerinizi otomatikleştirmek ve optimize etmek için AnimasyonluResim Vektörü olarak <animated-vector> XML'yi yüklemek ve bu XML'e animasyon eklemek için PainterFor ile (I8ea91)
  • Yeni Yerel Yazılım Klavye Denetleyicisi bileşimi eklendi üzerindeki önceki YazılımKlavye Denetleyicisi arayüzünün yerini alacak API TextField'i (Metin Alanı) tıklayın. (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)
  • Değiştirici.pointerInput, artık tuşların şunu belirtmek için hatırlanmasını gerektiriyor: yeni için işaretçi girişi algılama eş anlamlısının yeniden başlatılması gerektiğinde ve bildirmeyi konuştuk. (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, işlemi değiştir AccessibilityAction ve CustomAccessibilityAction'daki etiket CharSequence to String (I0dc82)
  • Adlandırmayla daha iyi eşleşme için ve ImageBitmap ve ImageVector ile ImagePainter, BitmapPainter olarak yeniden adlandırıldı VectorPainter'a paralel yapabilirsiniz. (Iba381, b/174565889)
  • Artık bağımsız değişken olarak alt dize bulunan daha iyi alt dize test API'leri (Icbe78)
  • Şu özelliklere sahip bir Modifier.focusOrder() eklendi: bir FocusRequester belirtmeden kabul eder lambda özel odaklama siparişi verin. Faydalı yalnızca bir referans belirtmemiz gerektiğinde ancak bir composable için özel odak siparişi değil (I4f52a, b/179180978)
  • ComponentActivity.setContent, şuraya taşındı: androidx.activity.compose.setContent androidx.activity:activity-compose modülü. (Icf416)
  • Yıkım ve Copy() yöntemleri, bazı sınıflara üye olmak için faaliyet sergilediler. (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 kullanımdan kaldırılmıştır. Bunun yerine PainterResource öğesini kullanın. (I6b809)
  • Performans nedeniyle, ScrollAxisRange semantiği artık lambda'lar doğrudan Kayan değerler yerine Kayan değerler döndürüyor. (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 daha tutarlı olacak şekilde güncellendi. API kılavuzu ve dahili uygulama sınıflarını gizleme herkese açık API'den yararlanın. (Id9e32)
  • Genişletme ve daraltma anlamsal işlemleri eklendi. Eklenme zamanı Genişletme ve Yarım Genişlet (ModalBottomSheetState) (Ib5064)
  • 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)
  • Ambiyanslar, Ambiyans ile eşleşecek şekilde yeniden adlandırıldı -> CompositionLocal 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 değil deneysel (I6a45f)
  • Recomposer'lar artık kapatılabilir. Kapatılan derleyiciler: beste alt eş yordamları tamamlanana kadar yeniden düzenleme işlemine devam edin. Recomposer.shutDown, kapatmayla kontrast olarak iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
  • UiSavedStateRegistry, SaveableStateRegistry olarak, 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, artık generate:runtime ve AndroidUiDispatcher komutu düzenleyicinin içinde bulunabilir:ui. (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)
  • Kullanılan ColorMatrix API kullanıma sunuldu kaynak içeriğin rgb değerlerini değiştirmek için ColorFilter API, arayüz oluşturmak ve uygulamadaki örneğidir. (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İşlemler'i kullanın (If0bbd, b/179071523)
  • InfiniteAnimationPolicy eş yordam bağlam eklendi öğesi bulunmalıdır. Varsayılan olarak hayır politikası yüklenir (ComposeTestRule ile testlerin çalıştırıldığı durumlar hariç). (I50ec4, b/151940543)
  • canDrag, Değiştirici.scrollable dosyasından kaldırıldı. (Id66e7, b/175294473)
  • Layoutords.parentcoordinates şu şekilde yeniden adlandırıldı: Yeni bir üst koordinatlar özelliği. üst koordinatlar özelliği artık üst değiştiricinin LayoutCoordintes işlevini sunuyor. Bu, onSizeChanged() için daha kapsamlı kullanım alanları oluşturma onGloballyPositioned() (Idfbfd, b/177926591)
  • 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 registerProvider() 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)
  • Herkese açık API'den CoreText ve CoreTextField kaldırıldı
    • Kullanımdan kaldırılan SelectContainer aşırı yüklemesi kaldırıldı
    • (I99c19)
  • Compose'un kullanıldığı hiyerarşilerde doğrudan WindowManager'a eklenen/kaldırılan öğeler artık daha kararlı. (Ie81ed, b/175765614)
  • Recomposer.current() kaldırıldı. [Abstract]Şimdi görüntüle tarafından sağlanan gecikmeli şekilde oluşturulan, pencere kapsamlı Yeniden derleyicilere Pencerede ViewTreeLifecycleOwner'ı seçin. Yeniden düzenleme ve withFrameNanos tabanlı animasyon çizgileri, ana makine Yaşam Döngüsü sırasında duraklatılır durdurulur. (I38e11)
  • Recomposer.RunRecomposers, artık global bir StateFlow sunuyor devam eden beste durumunu gözlemlemek için salt okunur RecomposerInfo daha fazla bilgi edineceksiniz. Şu anda ayarlı olan Recomposer.current() için bu API'yi tercih edin. desteği sonlandırıldı. (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 API değişiklikleri ve çoklu stil metin düzenleme, uygulanmadığını unutmayın. (I4c3ea)
  • Çalışma Süresi ve Süre kaldırıldı. (Ib9bf4, b/177420019)
  • CompositionData.asTree() ve ilgili API'ler taşındı ui-araçları veri modülünü ayırmaya ve deneysel olarak işaretlenmeye (Ic95b8) sahip
  • 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 yerine bir arayüz kullanmak üzere yeniden düzenlendi: beton sınıfı. Ayrıca arayüz artık bir tür parametresidir.

    Bu, kaynağı etkilememesi gereken dahili bir değişikliktir kod uyumluluğu sağlar 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

  • Görünüm hiyerarşilerine yerleştirilmiş ComposeView'lar başka bir beste ise artık atalarının alt bestelerine ev sahipliği yapıyor (I92883)
  • Oluşturmanın imageFromResource öğesi güncellendi Kaynak çekilebilir önbelleğini yeniden kullanma API'si nasıl oluşturulur? (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ştirilecek, ve bu adım, işaretçi girişinin mevcut kaynaklara olan bağımlılığını sınıflar. (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365)
  • Vektör grafikleri güncellendi Tonlamanın ayrıştırılmasını destekleyen API köküne uygulanır. (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
  • Genel koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri. (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ırmaAxisRange olarak yeniden adlandırıldı. dikeyAccessibility ScrollState, vertical ScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
  • PointerInputData kaldırıldı ve PointerInputChange değiştirildi tüm PointerInputData alanlarını veriyorum. İşaretçi Giriş Etkinliği Oluşturuldu ve PointerInputEventData dahili herkese açık API'ler. (Ifff97, b/175142755)
  • Güncellenen GraphicsKatmanScope uygulanıyor dp'nin ham pikseller. (Ied528, b/176819695)
  • Matris API'si, satırı takip edecek şekilde güncellendi ana sıralama ve indeks sabitleri sağlama yardımcı olması için farklı kanallardaki matris gösterimlerini kullanabilirsiniz. SkMatrix ile Matrix4 arasındaki dönüşüm mantığı içten içe. (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, DönüştürülmüşText.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
    • ParagraphStyle
    • Aralık Stili
    • TextStyle
    • 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 harfli eski fabrika işlevleri kullanımdan kaldırıldı ilk harfler
    • Yeni fabrika işlevleri alt sınıflar
    • Alt sınıfların oluşturucularını gizlediler. yalnızca fabrika fonksiyonları yoluyla üretilebilir.
    • Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
  • ComposeContentTestRule kullanıma sunuldu ComposeTestRule ve şu klasörden kaldırılan setContent öğesini tanımlar: ComposeTestRule. createEmptyComposeRule() fabrika yöntemi eklendi ComposeTestRule döndüren ve şunun için bir Etkinlik başlatmayan: siz. Bunu, testiniz sırasında Etkinliğinizi başlatmak istediğinizde kullanın. ör. ActivityScenario.launch kullanılarak (I9d782, b/174472899)

  • animasyonluAsState artık animasyonluFooAsState. Foo ise animasyon uygulanan değişkenin türü. ör. Kayan, 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 en azından onRoot() veya pencere boyutu boyutunu kullanmak daha iyi. (I62db4)

  • OnSizeChanged, düzenin boyutunu raporluyordu. içerik. Artık boyutu reklamın içindeki konumunda değiştirici zinciridir. (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 API değişiklikleri ve çoklu stil metin düzenleme, uygulanmadığını unutmayın.

    • 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 fonksiyonlardır. ve uzantı işlevleri kaldırılır. (Iaf429)

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

    RememberObserver, şunun yerine geçer: Değiştirilmiş anlamlara sahip CompositionLifecycleObserver yeniden adlandırıldı. Yeni API'ye geçiş mekanik olarak yapılabilir hatırlanan ve unutulan bu nesneler için olması önerilir. Ancak bir referans bir bestede birden çok kez hatırlanan onRemembered değerine onEnter değerinin yalnızca bir kez çağrıldığı her referans için. onEnter. nesne alt bileşimlerde kullanılmışsa birden çok kez çağrılır, Örneğin, WithConstraints ve Scaffold single'ı yapıyor onEnter arama garantisi güvenilir değil ve şu nedenle kaldırıldı: RememberObserver.

    RememberObserver,onAbandoned Geçilen geri çağırmadan RememberObserver örnek döndürüldü remember olarak kaydedildi ancak beste durumunda hatırlanmadı ve dolayısıyla onRemembered hiçbir zaman çağrılmaz. Bu bir istisna besteyi tamamlanmadan veya tamamlamadan feshederse eyalet üretim aşamasındaki için bestenin güncel olmaması veya artık güncel olmaması gerekir. Single'ın ardından RememberObserver örneği yukarıdaki referans öneri, harici bir kaynağın izlenmesidir hem onForgotten hem de onAbandoned, gerekli değildir. Nesne işi izliyorsa onRemembered, onAbandoned içinde başlatılan kaynaklar onRemembered ise çağrılmayacağından yoksayılabilir çağrıldı. (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 içermeyen kitaplıklardaki kaynaklar (ör. herkese açık.xml üzerinden) artık varsayılan olarak gizli. (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 derleyicinin yeniden yapılandırılması API, oluşturulan düğümlerde değişikliklerin toplu olarak yapılmasını sağlar "değişiklikleri uygulama" sürecinin bir sonucu olarak tüm @Composable işlevlerinden sonra bestenin aşaması tamamlandı.

    Bu durum bir davranış bozucudur uygulama kodunu etkileyebilecek artık dahili kaynaklardan alınamayacak değişiklik yapılana kadar deneme amaçlı API'ler geçerlidir. Bu sorunun çözümü genellikle ve bir programlama dilinde SideEffect, yürütülmesini ertelemek için composable'a kalan kod, düğümler oluşturulana kadar başlatıldı. (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 yeniden derleyiciler (Ibebd8)
  • Hız, bileşen parçaları olacak şekilde değiştirilmiş ve matematiksel anlamına gelir. (Ib0447)
  • @ExperimentalTesting adlı dosya @ExperimentalTestApi olarak yeniden adlandırıldı benzer deneysel API ek açıklamalarıyla tutarlı (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)
  • Şunun için isSpecified, isUnspecified ve useOrElse eklendi. Belirtilmemiş sabite sahip satır içi sınıflar. (I93f7b, b/174310811)
  • Geri dönüşüme olanak tanımak için [Abstract]ComposeView API'lerini genişletin Bestelerini yeniden oluşturmak üzere elden çıkararak kompozisyona dayalı görünümler daha sonra. Pencere kapsamlı Recomposer'ları yüklemek ve keşfetmek için API'ler ekleyin besteler oluşturmak için CompositionReferences

    Besteleme işlemini yapılandırmak için ViewCompositionPolicy'yi ekleyin [Abstract]ComposeViews stratejisi; varsayılan davranış şudur: pencere ayrılabilir. (I860ab)

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

  • toStringAsFixed kaldırıldı String.format'ı tercih eden API . (Iaba6b)

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

  • NativeClass şuraya taşındı: ui modülünden geçti ve dahili hale getirdik. Şurada yerelClass kullanımları güncellendi: kullanılacak uygulama sayısına eşittir "MyClass" . (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)

  • Outline.bounds kullanıma sunuldu sınırlayıcı dikdörtgeni alma özelliği gözden geçireceğiz. (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

  • Yeniden oluşturucu artık bir Akışın mevcut durumunu gösterir. Böylece, etkinliği ve ilişkili etkilerinin aktivitesini izleme. (Ifb2b9)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent (I87c57, b/173086397) üzerinden erişilebilir.
  • animate(), animateAsState() ile değiştirildi. Bu değer, T yerine State<T> değerini döndürür. Böylece daha iyi daraltılabilir. Bunun nedeni, performansın eyalet değerinin okunacağı yere ekleyin. (Ib179e)
  • Anlamsal rol API'sini ekleyip parametre olarak Rol'ü seçilebilir ve devre dışı bırakılabilir SemanticsModifier ile çalışır. Değiştirildi Değiştirici.progressSemantics, böylece Slider bunu da kullanabilir. (I216cd)
  • Karşılıklı münhasırlık sağlayan eş yordam tabanlı yeni API Animatable son derece başarılı.
    • Ç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 yeniden adlandırıldı HandlePointerInputScope to AwaitPointerEventScope ve allowPointerInput() işlevini kullanarak awaitPointerEventScope() öğesini ayarlayın. (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)
  • AccessibilityLabel, contentDescription olarak yeniden adlandırıldı. erişilebilirlikValue, 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ü basitleştirilecek şekilde değiştirildi yukarıdan aşağıya değil, aşağıdan yukarıya doğru inşa edebilirsiniz.

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

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

    Bir uygulayıcı, düzenlediği ağaca düğüm ekler bağlı olarak insertTopDown() veya insertBottomUp() kullanılıyor ve daha iyi performans gösterdiğini göreceksiniz.

    LayoutNode ve View gibi bazı ağaçlar çok daha fazladır yukarıdan aşağıya doğru oluşturmak yerine aşağıdan yukarıya doğru oluşturmak daha etkilidir. Bu değişiklikten önce aşağıdan yukarıya uygulamak için bir dizi ekleme gerekiyordu. her uygulayıcıya kopyalanması gerekti. her şeyi öğreteceğim. Bu değişiklikle birlikte bir Applier aşağıdan yukarıya ağaç oluşturmak için insertBottomUp() değerini geçersiz kılar ve Ağacı yukarıdan aşağıya inşa etmek için insertTopDown(). (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)

  • PainterResource API eklendi opak biçimde yüklenen Painter nesnelerini işlemek için Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables. Tüketiciler artık Böylece öğe türünü önceden belirlemek ve bir Painter nesnesi almak için bu yöntemi çağırabilir resim composable'larında veya ressam değiştiricilerinde kullanılacak. (I2c703, b/173818471)

  • Alt öğeleri temizlemek için Değiştirici.clearAndSetSemantics eklendi anlamları geliştirip yenilerini oluşturabilirsiniz. (I277ca)

  • ContentDrawScope kullanıcı arayüzü grafiklerine taşındı modülünü kullanabilirsiniz. (Iee043, b/173832789)

  • PathEffect grafik API'si kullanıma sunuldu kullanarak kesilmiş şekillere farklı desenler sağlar. NativePathEffect'in desteği sonlandırılmış kullanımı lehine PathEffect'in beklentileri/gerçek uygulaması. (I5e976, b/171072166)

  • IdlingResource arayüzleri Compose'a Compose olarak eklendi bir varyantını kullanıma sokabilir. Kaydedilebilir. ve ComposeTestRule (I433f3) aracılığıyla kaydınız iptal edildi

  • ComposeIdlingResource öğesinin genel (un) kaydı kaldırıldı ve Saatlerin ComposeIdlingResource'ya (I32660) genel olarak kaydını kaldırma

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 kaldırıldı Genel API'den SlotWriter. Bunlar şu şekilde işaretlendi: InternalComposeAPI'yi kullanmıştım. Artık bunlar şirket içi modülüne geçelim.

    CompositionData ve CompositionGroup ayıklamak için kullanılacak ui-tooling API'sinin yerine beste bilgisidir. Bunlar herkese açıktır ancak herkese açık değildir. sağladığı için ui-tooling API'sinin dışında kullanılmak üzere tasarlanmıştır. ui-tooling API'nin yorumladığı ham bilgiler (I31a9c)

  • GölgelendiriciBrush'ı şu şekilde yeniden düzenledi: bir gölgelendirici örneği oluşturarak çizimin boyut bilgileri kullanılabilir durumda olduğundan emin olun. Bu yöntem, farklı renklerdeki gradyanları composable'ın tüm çizim sınırlarını kaplayacak bestelemenize gerek kalmadan uygulamaları hakkında bilgi edinin.

    Desteği sonlandırılan gradyan işlevi oluşturucu API'leri tercih ettik. (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)

  • BuildAnnotatedString fabrika işlevi sırayla eklendi kullanarak AnnotatedString oluşturun. Kullanımdan kaldırıldı Ek Açıklama Dizesi oluşturucu işlevi. (Idfe0b)

  • Uzantı yöntemleri kaldırıldı değeri dönüştürmek için Kayan ve Çift seçeneğinde değeri radyana dönüştürür. Özel işleve taşındı PathParser uygulaması içinde tek kullanıldığı yer buydu (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 paketini androidx.compose.ui.draw paketinde bulabilirsiniz. DrawModifier Uyumsuz.kt dosyası oluşturuldu: yardımcı olacak tiptaktikler/yardımcı yöntemler içermelidir desteği sonlandırılandan güncel API'ler. (Id6044, b/173834241)
  • Değiştirici.drawKatmanlar, Değiştirici.graphicsKatman olarak yeniden adlandırıldı Ayrıca, ilgili sınıflar şu şekilde GraphicsKatman olarak güncellendi: API geri bildirimi. (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)
  • Değiştirici.ölçek/döndürme özelliği eklendi Trafiğe eklemek için API'leri kullanabilirsiniz.
    • 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 süresini konum alanları boş bırakılamaz. (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 güncellendi döndürecek yıkıcı söz dizimine sahip olma pivotFractionX ve pivotFractionY: component1 ve component2 (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, durum değişikliği gerçekleştiğinde yeniden düzenleme ve düzenleme adımını atlayabilecek şekilde tanımlarsı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, şuraya taşındı: androidx.compose.ui.text.font.Typeface (Ic2b81)
  • Anlamsal bağımsız değişken birleştirmeAllDescendants olarak yeniden adlandırıldı birleşim. (Ib6250)
  • Yeni sürükleme hareketi algılayıcı askıya alma işaretçisi giriş API'si (yön kilitleme dahil). (Icef25)
  • VectorAsset, ImageVector olarak yeniden adlandırıldı VectorAsset, Builder olarak taşındı ve yeniden adlandırıldı. şuna göre ImageVector'ın iç sınıfı olmalıdır: API yönergeleri. VectorAssetBuilder için tür takma adı şuna eklendi: ImageVector.Builder bağlantısını kullanabilirsiniz. (Icfdc8)
  • Yeniden Adlandırılan ImageAsset ve benzer yöntemler kullanır. (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 için hareket dedektörü ve basın göstergesi, yeni askıya alma işaretçisi kullanılarak eklendi. giriş. Ayrıca, işinizi kolaylaştıran ve geliştiricilerin kendi hareket dedektörlerini yazmalarını sağlayın. (I00807)
  • id, LayoutIdParentData için layoutId olarak yeniden adlandırıldı. Measurable.id, Measurable.layoutId olarak yeniden adlandırıldı. (Iadbcb, b/172449643)
  • Yeni çoklu dokunma hareket algılayıcı: döndürme, yakınlaştırma ve kaydırmayı algılamaya yönelik yardımcılar. (Ic459d)
  • SweepGradientShader kullanıma sunuldu ve SweepGradientBrush API'ler. (Ia22c1)
  • Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneysel (I6ef86, b/171378521)
  • Eş yordam tabanlı kaydırma API'leri ekleyin:

    LazyListState.snapToItem ve LazyListState.smooth ScrollBy ile alt düzey ekler Kaydırma kontrolü API'leri. Bu API'ler, kaydırmayı kontrol eden bir askıya alma arayüzü sağlar bekleyene kadar bir e-posta alırsınız. (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)

  • Yöntem ve özelliklerin varsayılan uygulamalarını sağlama clock öğesine devredilebilen AnimationClockTestRule (I7ea3d, b/173399709)

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

  • 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 öğesine geçici olarak eklenen seçenek MonotonicFrameClock (I1403b, b/173402197) tarafından sürüldü
  • Android Yazı Tipi sarmalayıcı eklendi. Android hesap yükleyebilirsiniz typeface işlevi (ör. typeface(Typeface.DEFAULT)) aracılığıyla yazı karakteri. 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 etmiyor; zorunlu çizelgeleme bağımlılıkları EffectsCoroutineContext'ten alınır. FrameManager kullanımdan kaldırıldı; ilk kullanıma hazırlaması gereken anlık görüntü işleme sistemi geliştirilebilir. (I02369)
  • Stil bilgilerini erişilebilirlik düğümüne iletin. (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

  • ScaleFactor kullanıma sunuldu ölçeği temsil edecek satır içi sınıf yatay ve dikey faktörleri sırayla ve birbirinden bağımsız eksenler destekleyici araçlar da sunar.
    • computeScaleFactor yöntemi, İçerikÖlçeklendirme
    • Gerçekleştirilecek ContentScale.FillBounds eklendi src öğesini genişletmek için tek tip olmayan ölçeklendirme başlangıç noktasının tamamını kaplayacak.
    • İşlem için operatör yöntemleri eklendi Boyut parametrelerine sahip ScaleFactor parametreleri.
    • (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)
  • ContentDrawScope içinde onDrawBehind API oluşturuldu kullanarak adlandırma kuralını Modifier.drawBehind ile eşleştirin. (I4fc3a, b/171955269)
  • Kamera mesafesi desteği ekleyin 3D dönüşümleri tamamlamak için RotationX/rotationY. (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ı
  • Opaklık, çizim Shadow() değiştiricisinden olduğu gibi kaldırıldı kafa karıştırıcı olabilir. (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)
  • lerp döndürme türü güncellendi döndürülecek Boyut parametreleri yönteminde Gereksiz bir değer kullanmamak için, boş olmayan bir Boyut boks. (Ib0044)
  • Beste çerçevesi etkinliklerini beklemek için Compose'un MonotonicFrameClock özelliği kotlinx-coroutines-test'in runblockTest'i (I4402f) kullanılarak
  • 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 şu hesaba taşıyın: androidx.compose.ui.test ve androidx.compose.ui.test.junit4 (I452e8)

Hata Düzeltmeleri

  • receiveToBitmap, retrieveToImage'a 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)
  • KEYType 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, tutarlılık için LaunchedEffect olarak yeniden adlandırıldı SideEffect ve DisposableEffect API'lerini kullanabilirsiniz. LaunchedEffect değeri: en iyi uygulamaları teşvik etmek için konu parametrelerine 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 gerçekleştirilen herkese açık API'yi etkilememelidir. (If9828)
  • Klavye otomatik düzeltme IME Seçeneği eklendi (I57b8d)
  • androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
  • KlavyeSeçenekleri.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 bileşim üst öğesidir. Açık Recomposer artık daha az yerde gerekiyor. (I4036f)
  • VectorPainter'ı kullanımdan kaldır: hatırlamak için VectorPainter'ın composable API'nin dahili olarak “hatırla” farklı platformlarda bileşimler. (Ifda43)
  • Değiştirici.drawWithCache API'si güncellendi ContentDrawScope'u alıcı kapsamı olarak açığa çıkarın sağlamak için DrawScope yerine yeniden sıralama olanağının yanı sıra çizim komutlarını kullanabilirsiniz. Bu, aşağıdaki kriterlere uyan içerik piksellerinin kullanması gereken kullanım alanları önce oluşturulan ilgili algoritmasının doğru uygulanmasını sağlamalısınız. (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 arayüzleri soyut sınıflar yerine
    • CanvasDrawScope uygulaması oluşturuldu DrawScope
    • Yeniden düzenlenen DrawScope, bunun yerine CanvasScope'u kullanır
    • Bağımlılıkları sarmak için DrawContext oluşturuldu DrawScope için
    • 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)
  • Almak için DrawTransform.rotate uygulaması güncellendi merkezin varsayılan pivot parametresinden göz önünde bulundurun.
    • DrawScope.rotateRad güncellendi. diğer dönüştürme yöntemlerini eşleştirecek şekilde ayarlayın.
    • Harcanan kullanımdan kaldırılan DrawScope.rotateRad aşırı yüklemesi eksenin x ve y koordinatı için kayan noktalar.
    • (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; seçeneği kaldır ComposeTestRule'da yanıp sönen imleci etkinleştirin. (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
  • Radius API şu şekilde yeniden adlandırıldı: Daha iyi ifade etmek için Köşe Yarıçapı nasıl kullanıldığına bakalım. Dokümanları negatif köşe yarıçaplarının sabitlendiği sıfıra eşittir. (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 ancak Bunun yerine sağlanan PointerInputChange değerini değiştirin.

    Bu, 2 adımlı bir sürecin ilk adımıdır: PointerEvent verilerini diğer işaretçi verileri kullanıcı koduyla düzenlenemez. İlgili içeriği oluşturmak için kullanılan ikinci adım, Şuradan List<PointerInputChange> dönüş türü: PointerInputFilter.onPointerEvent(...). (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 yeniden adlandırıldı ve 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ı
  • Standartlaştırma sürecinin bir parçası olarak sentinel değerlerinden farklıdır. Rengi yeniden adlandır.Ayarlanmadı. renk.Belirtilmemiş diğer satır içi sınıflarla tutarlılık için (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'daki hasPendingChanges() yöntemi has Invalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371)
  • Boyut Güncellendi.Belirtilmemiş gibi parametreleri kullanabilirsiniz. Kayan.POSITIVE_INFINITY. Painter uygulamaları size veya boyuta göre de kontrol edilir. Boyutlar. (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)
  • Etkin durumdaki Android sınıfları için saplamalar eklendi eski platformları mümkün olduğunca yansıtmaya çalışın. (Ia1790)
  • Düzeltildi hata: Yazılım klavyesinin gösterilen soruna neden olması işaretleyici giriş koordinatlarının yanlış. (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

  • Şunların toplanmasına izin vermek için OwnerScope eklendi: çerçeve veya çizimle ilgili görevlerin artık geçerli değil. (Ic4cf8)
  • OnRemeasuredModifier ve onSizeChanged(), içerik düzeni yeniden ölçüldüğünde geri çağırma yapılır ve boyut değişti. (I657cf, b/154108792)
  • Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
  • FocusManager gizli hale getirildi. (I7872f)
  • Oluşturmak için güncellenmiş uygulama özel bir DrawCacheModifier uygulaması yerine DrawModifier'a ekleyin.

    Ç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)

  • Değiştirici.drawWithCache kullanıma sunuldu bir çizim nesnesi oluşturmayı desteklemek için koşullu olarak yeniden oluşturan boyut/durum bilgilerine bağlı olan (I376dc)

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

Hata Düzeltmeleri

  • Çok sayıda Graphics API'si güncellendi
    • Ölçek ve rotasyon güncellendi dönüşüm API'lerini kullanarak tek bir Özeti temsil eden ofset parametresi koordinatı koordine etmeye çalışın x/y koordinatlarına ilişkin parametreler DrawScope ve DrawTransform
    • Rect.expandToInclude ve Rect.join kaldırıldı yöntemler
    • Yarıçap dokümanları oval ifadesi içerecek şekilde güncellendi eliptik bisiklete ek olarak
    • satır içi Yarıçapı genel kurucusu sınıfın doğrudan çağrılması değil, Yarıçap nesneleri şu şekilde örneklenmelidir: işlev kurucuları
    • topRight'ı sorgulamak için RoundRect API'ler kaldırıldı. bottomRight, bottomCenter vb.
    • 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 kaldırıldı ve Rect.isStadium yöntemlerinin yanı sıra
    • 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
    • Radius özelliklerini tüketecek şekilde RoundRect oluşturucu güncellendi x/y yarıçap değerleri için bağımsız parametreler yerine
    • Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı. başlangıç noktası 0,0
    • Yarıçap'a yıkıcı bir API eklendi
    • Şuraya taşındı: mülkler
    • (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)
  • Çok sayıda Graphics API'si güncellendi
    • Kapsamlı DrawScope API'leri güncellendi yöntemlerinin mevcut olduğunun yalnızca geri çağırma ve geri çağırma çağrıldıktan sonra kaldırılır
    • ClipPath dokümanları Yol değerine başvuracak şekilde güncellendi yerine yuvarlatılmış dikdörtgen
    • Sağ parametre için belgelerdeki boşluk sabitlendi ClipPath'de
    • DrawScope.drawCanvas,drawIntoCanvas ve boyut parametresi kaldırıldı
    • Inset yöntemindeki dx/dy parametreleri şu şekilde yeniden adlandırıldı: yatay ve dikey
    • Aynı 4 sınıra inset değeri
    • Inset yönteminde, aşağıdakileri gösteren dokümanlar kaldırıldı: bu ek, 4 tarafın tümüne uygulanır
    • Rect sınıfı için güncellenen dokümanlar
    • Rect parametrelerindeki yorumlar kdoc ile eşleşecek şekilde güncellendi stil
    • Rect.join ve Rect.expandToInclude kaldırıldı
    • Rect.translate(offset) ve için aşırı yük oluşturuldu desteği sonlandırılan Rect.shift
    • (If086a, b/167737376)
  • Ek açıklamalı rootAnimationClockFactory, geçişsEnabled, blinkingCursorEnabled ve textInputServiceFactory'yi @visibleForTesting, 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. Eklenen adımlar AccessibilityRangeInfo'nun (Ia47b0)
  • onInvalidate(), Owner adlı alandan kaldırıldı -- OwnedLayer geçersiz kılmayı ele alır. (Ica72b, b/162061312)
  • Boyut için operatör yöntemleri kaldırıldı Ofset parametrelerini kullanan API. İlgili içeriği oluşturmak için kullanılan Bu işlemlerin sonucu net değil ve sonuç türü beklenmedik bir şekilde bunlar için kullanılabilir. Ör. olmalı - ofset iade farkı içeren bir ofset mi yoksa boyut sonucu mu?

    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, şuradan taşındı: androidx.ui.test.android - androidx.ui.test (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)
  • onNode ve ComposeTestRule'a diğer genel yöntemler şu şekilde eklendi: global olanların desteği sonlandırılacaktır. (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)
  • Dolgu türü için destek eklendi vektör grafik yollarındaki parametreler kesmeye uygun şekilde eşit Odd veya Sıfırdan Olmayan yol doldurma kurallarına göre ayarlayın. (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)
  • Rect işlevi oluşturucusuyla ilgili sorun düzeltildi iki farklı değerde bir Dörtgen oluşturacaktır sırasıyla sol, sağ, üst, alt sol, üst, sağ, alt.

    Rect'te desteği sonlandırılmış tamamlayıcı yöntemler şu aralıkta kaldırıldı: fonksiyon kurucuları tercih eder.

    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ı. Diğer tüm bölümler of vectormath paketi kaldırıldı. (Ibd665, b/160140398)
  • Birleştirilebilir fonksiyonlar için çağrı kuralında değiştirildi. Bu, ikili zarar veren bir değişikliktir. Tüm kitaplıklar olmalıdır derleyici eklentisinin bu sürümüyle çalışmak üzere yeniden derlenmiştir.

    Bu değişiklik, sadece değişen API'ler, etkinleştirin. (I7afd2, b/158123185)

  • Şu durumlarda oluşabilecek kilitlenme düzeltildi: PointerInputFilter'e gönderme işlemi PointerInputFilter'i ekleyin. (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. AndroidView kullanılarak yalnızca beste ağacında bırakılmadığı sürece Görünümler ve Görüntüleme Grupları oluşturma işleminin gelecekte 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 emisyonlara artık bir veya daha fazla atlanıp yeniden düzenlenebilir. (Ibbd13)
  • Vektör sınıfları artık çalışmıyor olarak değiştirildi aynı nesne örneğiyle aynı olduğundan emin olmak için kompozisyon için kullanılır.

    VectorPainter için mutableStateOf işareti eklendi koşullu olarak yeniden çizmek için vektörel değişim.

    VectorComponent örneği şu şekilde yeniden düzenlendi: olarak kullanıldığı için VectorPainter'ın bir bölümü farklı kompozisyonlar bulabilirsiniz.

    GroupComponent ve PathComponent güncellendi (Ieae45, b/151378808)

  • onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler onPositioned ve OnPositionedModifier kullanmalıdır alt düzeninde kullanabilirsiniz. (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 özellik, BirleştirmeAllDescendants anlamında özel politika tanımlamak için kullanılır birleştiriliyor. Varsayılan politika, zaten varsa üst değer kullanılır alt değeri ifade eder. (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ı programlarının herkese açık değildir çünkü ait olmalıdır. Gelecekte herkese açık hale getirilecek. (I32ab1)

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

  • içinde kullanımdan kaldırılan PxBound'lar Rect. Tüm kullanımlar güncellendi dikdörtgen ve eklenmiş PxBound uygun şekilde kullanımdan kaldırma/değiştirme ek açıklamalar taşıma. (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.

  • Erteleme özel etkinliği oluşturuldu ve ilgili sınıflara yönelik olarak bir API'yi etkinleştirecek büyük olasılıkla değişecek. (I56d6f)

  • Artık geçerliliğini yitiren 2 PointerEventPass kaldırıldı gerekir. (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, arama sonuçlarında görünen mutableStateof() (I80ba6) gibi durum nesnelerini izlemek için ek yük

  • 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. Artık savedInstanceState() işlevinde aynı anahtara izin verilir. 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 kullanımdan kaldırıldı ve daha net bir şekilde remember { mutableStateOf(...) } için yapılan uygunsuz çağrılar. Bu, genel API yüzeyini ve durum ile ilgili kavramların sayısını azaltır yönetimi ve sınıf için by mutableStateOf() kalıbıyla eşleşir izin verebilirsiniz. (Ia5727)

  • RRect, RoundRect olarak yeniden adlandırıldı adlandırma kalıplarına daha uygun olması için Benzer işlev kurucuları oluşturuldu RRect işlevine ve desteği sonlandırılan RRect işlevine oluşturucular (I5d325)

Sürüm 0.1.0-dev16

5 Ağustos 2020

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

API Değişiklikleri

  • OnChildPositioned desteği sonlandırıldı. Yerleştirilmiş'i kullan çocuğu kabul edebilir. (I87f95, b/162109766)
  • setViewContent'in desteği sonlandı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 geçerliliğini yitiren 2 PointerEventPass kaldırıldı gerekir. (I33ca7)
  • Veriye dayalı kararlar almak için MotionEvents alma ve Compose ile etkileşimde bulunma olanağı bir Android View uygulamasıymış gibi. (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" daha güçlü bir sipariş sinyaline sahiptir ancak Modifier.padding().background() + anotherModifier yazılmasını yasaklayarak zinciri bozar ve okunması daha zor olur (Iedd58, b/161529964)
  • [Abstract]ComposeView ekle Compose'u barındırmaya ilişkin alt sınıfları ekle emin olun. (I46357)
  • Row ve Column artık önemli ölçüde satır içi işlevi görüyor ve kullanımın ek yükünü azaltır. (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)
  • SemanticsNode.positionInRoot, konumunu almak için eklendi Oluşturma hiyerarşisinin köküne göre Anlamsal Düğümü (Icdf26, b/161336532)
  • MotionEvents tamamen geçti Android'den Compose'a ve için de geçerli. (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üzeni eşzamanlı olarak yeniden ölçmenizi sağlar. 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. Tekliflerinizi otomatikleştirmek ve optimize etmek için getLinevisibleEnd/getLineEnd/isLineEllipdimension'ı seçeceğim. (I85aa2)
  • En iyi uygulama nedeniyle birkaç İşaret/Not ekleyin. (I66b20)
  • TextLayoutResult'da daha fazla satır API'si gösterir. (I79bd2)
  • Yerleşik vektör dönüştürücüler ünitelere artık Foo.VectorConverter üzerinden erişilebiliyor. ör. Dp.VectorConverter, Color.VectorConverter, float.VectorConverter vb. (I3e273)

Hata Düzeltmeleri

  • Genel API düzeltmelerini ele alma (I077bc)
    1. Kullanılmayan OffsetBase arayüzünü kaldırın
    2. Offset ve IntOffset sınıflarını tutarlı bir API yüzeyi
    3. IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın ofset API ile tutarlı olmasını sağlayın
    4. NativeCanvas yöntemi Canvas'tan taşındı oluşturmalarını sağlayan bir arayüze sahip. kendi Canvas örnekleri
    5. Yeniden düzenlemek için BlankCanvas saplama sınıfı oluşturuldu DrawScope alanının lateinit ve alanın null olmadığından emin olun
    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 kullanılamayacak şekilde güncellendi lateinit parametrelerini kullan
    14. DrawScope artık geç yetkilendirme kullanmayacak şekilde güncellendi fillPaint ve walkPaint dahili parametreleri için
    15. Box kullanımını önlemek için composable adlı resim güncellendi (daha az ek yük için)
    16. Outline sınıfı, @Sabit ek açıklamaları içerecek şekilde güncellendi
    17. PathNode, her yol talimatı
    18. Gereksiz öğeleri kaldırmak için vektör alt bileşimi güncellendi oluşturma işlemi zaten işlendiği için eşitlik için koşullu kontroller onlar
    19. Desteği sonlandırılmış Rect tamamlayıcı oluşturucu yöntemleri lehine işlev kurucuları
    20. Fırça sınıfları ve işlev oluşturucuları şununla güncellendi: @Sabit ve @Kararlı API'ler
    21. VertexMode sıralaması PascalCase olarak güncellendi
    22. DrawScope selectPaint yöntemi koşullu olarak güncellendi fırça parametrelerinin üzerine yazıldıysa değişti
    23. Yapıyı bozan API eklemek için Boyut güncellendi, yeniden adlandır BelirtilmemişSize ile Belirtilmemiş ve kullanılmayan yöntemler kaldırıldı
  • Oluşturma BlendMode API tüketimi güncellendi Android çerçevesi BlendModes'u düzgün şekilde eşlemek için ve PorterDuff modları arasında geçiş yapın. İşlem yapması için BlendMode#isSupported API kullanıma sunuldu olarak ayarlamak için kullanılan bir özellik sorgusu olarak kullanılmadan önce cihazda desteklenir. (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ı. Tekliflerinizi otomatikleştirmek ve optimize etmek için Bunun yerine SemanticsNodeInteraction.performGesture. (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 materyali TextField olarak yeniden adlandırıldı ve temel TextField, istenen en basit API'nin kolayca bulunabilmesi ve kullanılması 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ı güncellemeniz gerekir. yukarıdaki Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre.

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ır: 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 atmak için clear() yöntemi gerektiriyor besteler (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)
  • Çeşitli yöntemlere kopyalama yöntemleri eklendi Aşağıdakiler dahil olmak üzere satır içi sınıf türleri:

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

    • Size.copy tamamlayıcı nesne yöntemi desteği sonlandırıldı örnek kopyalama yöntemini tercih etme (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, @Composable bir işlevde (I5205a, b/158123804) bir işlev içinde kuruculara yapılan çağrılara önemsiz 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. IntPxPosition değiştirildi test edebilirsiniz. IntPxSize, IntSize olarak değiştirildi. (Ib7b44)

  • temsil etmek için kullanılan sınıf sayısı beden bilgileri, standart boyut sınıfının kullanımına ilişkin boyutundaki gibi. Bunun sonucunda uzun bir satır içi sınıfın temsil edecek şekilde 2 kayan değer genişlik ve yükseklik kayan öğe olarak gösterilir. (Ic0191)

  • temsil etmek için kullanılan sınıf sayısı konumlandırma bilgisi, standart bunun yerine Offset sınıfının kullanımında PxPosition'tur. Bunun sonucunda uzun bir satır içi sınıfın x'i temsil edecek şekilde 2 kayan noktalı değeri paketlemek ve y ofsetleri kayan noktalı olarak gösterilir. (I3ad98)

  • Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve temel türleri tanımlar. Px sınıfı tamamen silindi (I3ff33)

  • Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (I086f4)

  • Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (Id3434)

  • Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (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)

  • ScaleFit daha önce şu şekilde kullanımdan kaldırıldı: emin olun. Bunun yerine ContentScale'i kullanın. (Ifbc5b)

  • Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (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)

  • Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (I57bff)

  • 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ı Yani artık yalnızca DrawScope ve ContentDrawScope CanvasScope, DrawScope olarak yeniden adlandırıldı. Yoğunluğu uygulamak için DrawScope güncellendi arayüz oluşturun ve LayoutDirection'ı sağlayın ContentDrawScope'taki DrawScope alt sınıfı silindi Painter ve PainterModifier güncellendi artık bir RTL mülkünü tutmamak için zaten DrawScope tarafından manuel olarak sağlamadan (I1798e)

  • DoubleTapHareketFilter şimdi SingleTapHareketFilter'i netleştirir yardımcı oluyor. (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 null değil; ClipToOutline, klip olarak yeniden adlandırıldı; Klip == true ile aynı olduğu için RectangleShape ile aynı olan klip == true etiketi kaldırıldı (I7ef11, b/155075735)

  • Daha üst düzey güncellendi oluşturma API'lerini kullanarak bir Tuval'in CanvasScope'u açın. Bu işlem, koruma ve yönetim ihtiyaçlarının Paint nesnelerini ekleyebilirsiniz. Şu özelliklere sahip tüketiciler için: bir Canvas'a erişim gerektirmesi çizim Tuvali uzantısını kullanabilir Bu yöntem, soruna geri çağırma temel çizgisini gösteren çizim komutlarını Kanvas. (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üyle 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. DrawKatmanModifier'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)

  • Kısıtlamaların bir kopyası olan Constraints2, IntPx yerine yalnızca Int connstraints değerlerini destekler. İntPx tüm tam sayı kısıtlamalarının kaldırılacağı ve tüm tam sayı kısıtlarının piksel olması gerekir.

    • 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, kullanıcı arayüzü grafiklerden kullanıcı arayüzü çekirdeğine taşındı modülün içinde, Hizalama ile aynı modülde API'ye gidin.
    • 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
    • Kombinasyonun Kırpma ve Hizalama Merkezi ayarı aynı sonucu verir ImageView.ScaleType.CENTER_CROP ve Fit olarak Adjust.Center ile kullanıldığında elde edilen sonuç, ImageView.ScaleType.FIT_CENTER Hizalama.Center ile kullanılan iç mekan, aynı performansı Sonuç, ImageView.ScaleType.CENTER_INSIDE olarak
  • Ç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 vedrawKatman() artık varsayılan klipToBounds false (yanlış) değerine ayarlayın. (I0eb8b, b/152810850)

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

  • Düzen değiştiricileri tanımlamaya yönelik yeni bir API olan LayoutModifier2 eklendi; desteği sonlandırılan LayoutModifier (If32ac)

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

  • Destek ekibine TranslationX/Y özellikleri eklendi çizim komutlarının görüntü listesinin belirli bir hakkında konuşacağız. Bu işlem, içerikleri taşımak için kullanışlıdır yanıt olarak etkinleşir. (I8641c)

  • PivotX, pivotY parametreleri eklendi desteklemek için katman API'lerine bir katmandaki belirli bir noktanın çevresinde (Icf7c3)

  • OnPositionedModifier ve OnChildPositionedModifier ekleme OnPositioned ve OnChildPositioned composable'ı değiştirin işlevlerine dahildir. (I2ec8f)

  • Katman modları ve özellikleri Düzen için RenderNode ekleyerek. Bu strateji sayesinde kırpma, opaklık, döndürme, ölçeklendirme ve gölgeler. 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)

  • SağlananHizalamaLines'ın oluşturulması için Layoutords değerleri değiştirildi bir küme oluşturabilir ve LayoutKoordinatları'nın get() operatörünü kullanın. Bu sayede setin bir veya daha fazla değerini değiştirmeden değiştirmek için değiştiriciler her değiştirici için yeni bir koleksiyon oluşturmanız gerekir. (I0245a)

  • Düzen Koordinatları artık konum özelliğine sahip değildir. İlgili içeriği oluşturmak için kullanılan LayoutModifiers göz önüne alındığında konum özelliği bir anlam ifade etmez. döndürme veya ölçeklendirme. Geliştiriciler bunun yerine, ve bottomToLocal() alt öğelerini kullanın. Düzen Koordinatörü.

    Layoutords, boyut özelliği için PxSize'a dokunun. Düzenler, düzenler için tam sayı piksel boyutları kullanır, bu nedenle tüm düzen boyutları tamsayılar kullanılmalıdır. Kayan nokta değerleri kabul edilmez. (I9367b)

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

  • Şunu sarmalayan CanvasScope API oluşturuldu: Durum bilgisiz, bildirimsel bir öğeyi gösterecek Canvas nesnesi çizim API yüzeyini tıklayın. Dönüşümler yer alır alıcı kapsamlarında ve beden bilgilerinde karşılık gelen inset sınırlarının da kapsamındadır. Bir tüketicinin kendi Paint durumunu korumasına gerek yoktur nesnesini ifade eder.

    • CanvasScopeSample ve demo uygulamasını bildirime dayalı bir grafik içerecek şekilde güncelledi demo (Ifd86d)
  • Kullanılmayan MaskFilter API kaldırıldı optimize edilmemiş olduğundan Çoğu kullanım durumunda donanım hızlandırma için (I54f76)

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

  • API'deki tüm null renk kullanımları şununla değiştirildi: null değildir ve null yerine Color.Unset kullanılır (Iabaa7)

  • İsteğe bağlı ek dikdörtgen tanıtın parametresini temel ImageAsset'in alt bölümünü çizmek (I0ea9e)

  • Ayarlanmamış bir değeri temsil etmek için Ayarlanmayan Renk eklendi: boks Renkleri. (If901a)

  • Canvas.rotate ve Canvas.scale uzantı yöntemlerini isteğe bağlı pivot koordinatlarını kullan dönüşümlerine dahil edilir. Bu varsayılanlar düğmenin sol üst köşesine geçerli tuval çevirisi.

    Ayrıca, Canvas.rotateRad şu konuma taşındı: tutarlılık için bir genişletme yöntemi (Ibaca6)

  • Desteklemek için PixelMap API oluşturuldu ImageAsset'teki piksel bilgilerini sorgulamak için kullanabilirsiniz. (I69ad6)

  • toFrameworkRect/toFrameworkRectF olarak yeniden adlandırıldı adlandırma kuralına uygun şekilde toAndroidRect/toAndroidRectF oluşturma ve Android arasındaki nesne dönüşümleri için temel çerçeve API'lerini kullanabilirsiniz. Ayrıca güncellendi bu API'lerle ilgili dokümanlar (I86337)

  • VectorPainter API, şuraya eklendi: mevcut alt beste API'sini değiştir gösteren bir grafiktir. Alt bestenin sonucu yerine bir VectorPainter nesnesidir DrawModifier. Önceki DrawVector desteği sonlandırıldı VectorPainter oldu.

    Image(Painter) API'si PaintBox(Painter) olarak yeniden adlandırıldı Şu şekilde davranan Vector composable oluşturuldu: Bunun yerine VectorAsset dışında resim composable bir ImageAsset'in (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:android.graphics.Bitmap'te uzantı yöntemi oluşturuldu. Bitmap.asImageAsset(), Geleneksel Android'i birleştirmede yararlı ImageAsset oluşturma çerçevesi (Id5bbd) ile uygulama geliştirme

  • 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 paket adı yerine androidx.ui.text to androidx.ui.intl (I8132c)

  • 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 yazılım klavyesini onTextInputStarted tarafından sunulan YazılımKlavye Denetleyicisi geri arama (I8dc44, b/151860051)

  • (Metin/Paragraf/Aralık)Stil için artı operatörü eklendi. Birleştirme() işlevi için yetki verir. (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ılmayan Boyut sınıfı kaldırıldı çünkü yinelenen bir Beden sınıfı olduğundan ui-geometri modülünde emin olabilirsiniz. (I1b602)

  • Yalnızca 20 dakikada bir kaydırma listesi bileşeni olan görünür öğeleri oluşturur ve düzenler. Şu anda bilinen sorunlar yalnızca dikey olduğunu ve tüm reklam birimlerini alt öğelerinde değişiklik yapmak isteyebilir. (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 sonlandırılarak ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
  • runOnIdleCompose, runOnIdle (I83607) olarak yeniden adlandırıldı
  • Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tümü findXYZ API'leri, onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri şu şekilde yeniden adlandırıldı: performansXYZ. (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)
  • Şu özelliklere sahip Gölgelendirici satır içi sınıfı kaldırıldı: NativeShader bekleme sınıfını sarmaladı NativeShader'ın adı Gölgelendirici olarak değiştirildi. Sarmalanmış Gölgelendirici satır içi sınıfı API yüzeyine değerli hiçbir şey eklememelidir satır içi bir sınıf olduğu için NativeShader'ı kullanabilirsiniz. (I25e4d)
  • Yeniden Düzenlenmiş PainterModifier artık şuna göre ölçeklendirme verilen kısıtlamalar ve ContentScale parametresinden sonra bir değer girin. Painter'ın Kullanılması çizim içeriklerini ölçeklendirmek için kendi rollerine yönelik bir DrawScope'u açar.

    VectorPainter önbelleğiyle ilgili sorun düzeltildi bit eşlem, varsayılan boyutuna yeniden boyutlandırıldı boyutunu seçmemiz gerekir.

    ImagePainter güncellendi. PainterModifier'a güvenmek yerine içerikleri yapmayacaktır. (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ı. Metin Alanı bu tür için de destek sonlandırılmıştır. Lütfen şunu kullanın: Bunun yerine androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • İşaretçi girişi ile ilgili sorun düzeltildi bir kilitlenmeye neden olursa PointerInputFiltreler, üzerinden kaldırıldı alt bileşimidir. Bu sorun artık düzeltildi. (I1f48b, b/157998762)

  • İşaretçi girişi gönderme işleminin PointerInputFiltreler, üzerinden kaldırılırsa kilitlenmeye neden olur alt bileşimidir. Bu sorun artık düzeltildi. (Iab398, b/157998762)

  • Yarıçap sınıfı şu şekilde yeniden düzenlendi: satır içi sınıf. Tamamlayıcı oluşturma kaldırıldı fonksiyon oluşturucunun lehine olan yöntemler yarıçapa sahip olacak şekilde varsayılan parametre ile zorunlu olan y eksenindeki çizgiyle aynı olan X ekseni yarıçap parametresidir.

    Kullanılacak DrawScope.drawroundRect değeri güncellendi 2 ayrı yerine tek bir Yarıçap parametresi x ve y boyunca yarıçap için kayan noktalı değerler eksen (I46d1b)

  • Recompose compose artık kullanışlı bir özet 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)

  • Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (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 parametreyi kabul eden bir işleve dönüştürülür. Ek parametreler, bir "anahtar" tam sayısı olan Composer'dır. Çağrılar aracılığıyla meta verileri yaymak için kullanılan bir bit maskesi tam sayısı.

    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ında daha az iş yapılmasını sağlar 5. İş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'lere yönelikti ve normal oluşturma kullanımı bu durumdan etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call desteği sonlandırıldı 5. 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, Function1 yerine Function3 işlevi beklenecek şekilde değiştirildi 7. restartableFunction ve restartableFunctionN, ek derleme süresi parametreleri içerecek şekilde güncellendi. (I60756, b/143464846)

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

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

  • Varsayılan TextDirection'ın davranışı belirlenecek şekilde değiştirildi LayoutDirection'a göre değişir. Örneğin, LayoutDirection (Düzen) yönü RTL ise varsayılan olarak TextDirection, RTL olacak. Daha önce TextDirection.ContentOrLtr/Rtl (I4e803)

  • 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() işlevine yaygın olarak kullanılan parametreleri ekler. Şu anda Text(style = TextStyle(textHizala = Textalign.Center) gibi bu parametrelerden az sayıda iletmek için bir yerel metin stili oluşturuyorsanız, artık parametreleri doğrudan doğrudan sağlayabilirsiniz: Text(textHizala = Textalign.Center) (I82768)

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