Oluşturma kullanıcı arayüzü
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(Tüm oluşturma paketleri için API referans dokümanlarını inceleyin)
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
7 Ağustos 2024 | 1.6.8 | - | 1.7.0-beta07 | - |
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.
Grup | Açıklama |
---|---|
compose.animation | Jetpack 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.temel | Kullanı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.material | Kullanı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.material3 | Materyal 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.runtime | Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler eklentisinin hedefleyeceği temel çalışma zamanı. |
compose.ui | 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. |
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:
Modern
dependencies { implementation "androidx.compose.ui:ui:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.6.8") } 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.
Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.
Sürüm 1.7
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şlevleriperformTextReplacement
,performTextInput
veperformTextClearance
artık salt okunurTextFields
ü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ı veSemanticsPropertyReceiver.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ıkLinkAnnotation
oluşturucunun veAnnotatedString.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 şekildeLayoutCoordinates.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ı dosyaperformCustomAccessibilityActionWithLabel
veperformCustomAccessibilityActionWhere
adlı dosyaperformCustomAccessibilityActionWithLabelMatching
olarak yeniden adlandırıldı. (I5387f)AnnotatedString.hasEqualsAnnotations
artıkhasEqualAnnotations
(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öntemleriTextDefaults
öğesinden kaldırıldı. Bunun yerine, bağlantıları metin composable'a parametre olarak biçimlendirmeye olanak tanıyan birTextLinkStyles
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ı dosyaintroducesFrameOfReference
olarak yeniden adlandırıldı. Artık ters etkiye sahip olduğunu, yani varsayılan olarak çoğuLayoutCoordinates
ö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çinpositionInLocalFrameOfReference(...)
işlevini kullanın. Alternatif olarak,LookaheadScope
üzerindenpositionInLocalLookaheadFrameOfReference
. (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çinUnsetOffset/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ıkbutton: MouseButton
parametresini kabul ediyor. Tüm yöntemler için varsayılan değerMouseButton.Primary
şeklindedir. (I31a23, b/190493367, b/261439695) LinkInteractionListener
içindekionClicked
öğesionClick
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 birLazyColumn
). Bu değişikliğin, buLazyLists
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ış, yeniLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
veLazyListPrefetchStrategy#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 gelenLinkAnnotation
ile birAnnotatedString
oluşturun ve buAnnotatedString
öğ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çinJoinOrSplit
hareketini destekle (Ie6e13, b/325660505) FocusProperties.enter
veFocusProperties.exit
artık deneme aşamasında değil.FocusDirection.Enter
veFocusDirection.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çinexcludeDirectManipulationOffset
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ğına ve yaklaşımlarına animasyon 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çinUserInput
veSideEffect
tarafından değiştiriliyor. (I40579)ApproachLayoutModifierNode
veModifier.approachLayout
stabildir. EskiisMeasurementApproachComplete()
veisPlacementApproachComplete()
yerine yeniisMeasurementApproachInProgress()
veisPlacementApproachInProgress()
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çinGraphicsLayer#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 yerineLinkAnnotation.Url
kullanın. Materyal teması kullanıyorsanız ek açıklamayı Materyal temasıyla (I8d180, b/323346545) oluşturmak içinTextDefaults
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 birLinkAnnotation.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 veLinkInteractionListener
alıyor. Köprü almak için bu ek açıklamayıAnnotatedString
öğesine ekleyin.focusedState
ve/veyahoveredState
öğesini ileterek, odaklanılan ve/veya fareyle üzerine gelinen bağlantılar için görselconfiguration
tanımlayabilirsiniz. (I81ce4, b/139312671)ImeOptions.hintLocales
artık boş değerli değil. Boş bir Yerel Ayar listesini iletmek istiyorsanız lütfenLocaleList.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 dizeninAnnotatedString
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çinComposeFeatureFlag_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
veClipboardManager.hasClip
işlevleri kaldırıldı. Geçerli klip girişinin meta verilerini okumak için lütfenclipEntry.getMetadata()
kullanın. Panoda mevcut bir klibin olup olmadığını anlamak için ayrıcaClipboardManager.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çinGraphicsLayer#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ı veBasicSecureTextField
, yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için artıkKeyboardActions
yerineKeyboardActionHandler
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 aksineGraphicsLayer
, 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 yerineDrawScope.drawLayer(GraphicsLayer)
uzantısı işlevini kullanın. (I7a7c0)restrictedConstraints()
öğesini iki yönteme bölün:fitPrioritizingWidth()
vefitPrioritizingHeight()
(I6d7fd)- Android L kullanımı için
HardwareCanvas
saplaması sunuldu (I1c3b5, b/288494724) - Oluşturma çerçevesini güncelleyerek Sahip,
DelegateableNode
vedrawWithCache
Düzenleyici uygulamalarını güncellemenin yanı sıra, Kapsamlı erişim için, Değiştiriciler yıkıldığındaGraphicsLayer
örneklerini otomatik olarak temizleyecekGraphicsContext
öğesine erişimi açığa çıkarmak için birGraphicsContext
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çinGraphicsContext
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
öğesininonLinkClicked
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çerecekGraphicsContext
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ündenlifecycle-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çinDelegatableNode.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ıylahintLocales
özelliğiKeyboardOptions
ürününe eklendi.Locale
öğesinden, temel platform nesnesini döndürenplatformLocale
ö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
veContextualFlowColumn
özelliklerinin yanı sıra deneyselFlowRow
veFlowColumn
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 birmaxLines
yapılandırması ve dinamik +N "Daha fazla göster" düğmesi kullanan çok sayıda öğe için mükemmeldir.FlowRow
veFlowColumn
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ğuFlowRow
veyaFlowColumn
ürününde mevcut davranışı korumak için başlatma sırasındaoverflow
değeriniFlowRowOverflow.Visible
veyaFlowColumnOverflow.Visible
olarak ayarlayın. Bu yeni özelliklerin kullanım örnekleri içinContextualFlowRowSample
veFlowRowSample
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ştiricilerinModifierNodeElement
üzerindeinspectableProperties()
yöntemini uygulamaları önerilir. (Ib3236)WindowManager.LayoutParams
işaretleri üzerinde tam kontrol sağlayan yeniPopupProperties
oluşturucu. (Ibb33e, b/312485503)onPlaced
öğesini geçersiz kılmanıza ve koordinatları bir mülkte saklamanıza gerek kalmadanModifier.Node
ürününün mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.requireLayoutCoordinates()
kullanıma sunuldu. (Ia8657)onPlaced
öğesini geçersiz kılmanıza ve koordinatları bir mülkte saklamanıza gerek kalmadanModifier.Node
ürününün mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.currentLayoutCoordinates
kullanıma sunuldu. (Iaebaa)androidx.compose.foundation.text2
paketi altındakiBasicTextField2
ve ilgili API'lerandroidx.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 deneyselDeferredTargetAnimation
API'si de eklendi. (I60745) - Bir Yolun yönünü sorgulamak ve
Path
'den konturları ayıklamak için kullanılan yeniPath
API'leri. (I63d04) Path
öğesinin belirli bir nokta içerip içermediğini kontrol etmek içinPathHitTest
vePath.contains(Offset)
eklendi. (I3b218)TextLayoutResult
, artıkgetLineBaseline(lineIndex)
yöntemini sunuyor. Bu şekilde,firstBaseline
velastBaseline
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
veSemanticsActions.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 alanPopupProperties
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 özellikisOpaque
. (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ı durumundaVelocityTrackerAddPointsFix
"false" değerine ayarlanarak düzeltmeyi devre dışı bırakabilirsiniz. (Ib3877, b/269487059)TextStyle
veParagraphStyle
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
veClipMetadata
eklenerekClipboardManager
genişletildi. - Yerel olarak izin vermek için
ui-test
hizmetineDeviceConfigurationOverride
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
veSemanticsActions.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
veLocalTextInputService
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 birDragAndDropModifierNode
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ındakionDragAndDropStart
,acceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumundan kabul edilmesi içindragAndDropTarget
Değiştirici'ye eklendi. Sürükle ve bırak oturumuyla ilgileniyorsanız bu lambda uygun birDragAndDropTarget
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 üzereDragAndDropTarget
fabrika işlevi eklendi (Iebf3a)DragAndDropModifierNode.drag
türü olarakDragAndDropInfo
kaldırıldı. ArtıktransferData
, dekorasyon boyutu ve sürükleme dekorasyonuDrawScope
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çeriyorDragAndDropModifierNode
ürününün fabrika işlevindekionDragAndDropEvent
, sağlananDragAndDropTarget
parametresinin yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi bildirmek amacıylaonDragAndDropStart
olarak yeniden adlandırıldıDragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
adlı dosyaestablishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)Geçirilebilir düğüm API'si adlarını iyileştirerek daha anlaşılır hale getirir. (Ia4474)
OriginalText
öğesiniTextSubstitution
ile değiştirin. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
adlı dosyarunTextInputSession
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 yeniassertIsDeactivated()
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
veFocusDirection.Out
, bunun yerineFocusDirection.Enter
veFocusDirection.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 yerineFontStyle.Normal
veyaFontStyle.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 iletilenTestDispatcher
'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ı veDragAndDropInfo
için boyut parametresidragDecorationSize
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()
veSemanticsNodeInteraction.isNotDisplayed()
özelliklerini kullanın. (I2c196, b/302100809) ParagraphTextStyle
öğesininTextAlign
,TextDirection
,Hyphens
veLineBreak
alanları içinnull
yerine özel birUnspecified
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ıkDispatchers.Main
kullanıyor. (Ie8dd9)AndroidViewBinding
artıkcommitNow
kullanarakonRelease
düzeninizin bir parçası olarak düzeninizeFragmentContainerView
ekleyerek şişirilmişFragment
örneği eşzamanlı olarak kaldırıyor (daha önce kullandığıcommit
yerinecommitNow
). 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 dedragAndDropTarget
Değiştirici ekler. (Ib7828, b/286038936) - Tahsislerden kaçınan
ColorList
veColorSet
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 testlerinizdeDisableNonLinearFontScalingInCompose = 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ınashowSystemUi=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
veRecyclerView
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 kendimaximumFlingVelocity
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çinedeviceId
ekleyinui-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ığındareadOnly
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
veLocalSoftwareKeyboardController
artık deneme aşamasında değil.LocalSoftwareKeyboardController
artık uygun birCompositionLocal
. (I4c364)LookaheadLayout
veLookaheadLayoutScope
birkaç sürümde kullanımdan kaldırıldı ve artık kaldırıldı. Yeni API'ler her Layout ile çalışabilenLookaheadScope
ş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şlevininupdate
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ştirilirseupdate
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ştekiLazyList
öğ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 sonraLazyList
ç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
veFocusRequester.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ılabilecekFocusTargetModifierNode
arayüzü eklendi. (I9790e) TextMeasurer
oluşturucudakifallback*
parametreleridefault*
olarak yeniden adlandırıldı. (I940a5)SemanticsPropertyReceiver.performImeAction
adlı dosyaonImeAction
veSemanticsActions.PerformImeAction
adlı dosyaOnImeAction
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ığındantoComposePaint
yerineasComposePaint
API eklendi SemanticsProperties.imeAction
öğesini kullanımdan kaldırın veSemanticsActions.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ştirenParagraph
yöntemleri artıkMultiParagraph
gibiIllegalArgumentException
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ığındareadOnly
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çindeSubcomposeLayout
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çinasComposePaint
API eklendi
Hata Düzeltmeleri
- Döndürülen nesne orijinal
android.graphics.Paint
(I22b4c) öğesini sarmaladığındantoComposePaint
yerineasComposePaint
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) - Gelecekteki sonuçları gözlemlemek ve istenirse ana geçişi etkilemek için
MeasureScope
tarihinden itibaren erişilebilenisLookingAhead
mülküyle tanışın. (Ibf4c3) TalkBack
geçişindeki düğümleri yeniden sıralamak için kullanılan yeni anlamsal özelliktraversalIndex
(düşük değerler daha önce gelir). (I9a81b, b/186443263)isContainer
anlamsal özelliğiisTraversalGroup
(I121f6) olarak yeniden adlandırılıyorColorProducer
artıkproduce
(I4a9a2) yerine biroperator fun invoke
sunuyor- Yol nesnelerine çeviri/ölçek/döndürme dönüşümleri uygulamak için
Path
dönüşüm 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üştürme için API'leri kullanmaya başlayın. (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ı dosyaTextRange.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)
veMultiParagraph.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çindekiUrlAnnotation
öğeleri artıkTalkBack
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
veMultiParagraph.paint
yöntemlerineBlendMode
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ünebrush
,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 BirDelegatingNode
öğesinden diğerModifier.Node
örneklerine yetki verme özelliği eklendi. Bu işlemdelegate
veundelegate
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
olanNestedScrollModifierNode
özelliğini kullanın. (I69513) AndroidViewBinding
composable'aonReset
veonRelease
parametreleri eklendi. BöyleceAndroidView
composable yansıtıldı veViewBinding
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)
veMultiParagraph.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çindekiSubcomposeLayout
için yeni varsayılan davranış: Koşullu alanları (ör.TabRow
,Scaffold
,BoxWithConstraints
vb.) olmayanSubcomposeLayouts
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
veBoxWithConstraints
gibi koşullu slotlar olmadanSubcomposeLayout
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ızcawithFrameNanos
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 veyawithFrameNanos
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çinPlatformTextStyle.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çinSuspendingPointerInputModifierNode
örneği gösterme yöntemi ekler. (Ic4933) AnnotatedString
saniye içindekiUrlAnnotation
öğeleri artıkTalkBack
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 ilgiliAndroidView
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ırkenTalkBack
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çinTextStyle
uygulamasına deneyselTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.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 edenAndroidView
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 özellikleLazyRows
veLazyColumns
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
öğesininSetText
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
veperformTextSelection
metin testi işlevlerinde artıkSemanticsActions
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ğrudanModifierNodeElement
ü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 birModifier.Node.onReset()
geri çağırması eklendi. Odaklanma durumunu doğru şekilde sıfırlamak içinFocusTargetModifierNode
sorunu düzeltildi. (I65495, b/265201972)- Tuval'de metin çizerken farklı karıştırma algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
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 olarakwaitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
vewaitUntilDoesNotExist
eklendi. BöylecewaitUntil
API, herhangi bir eşleştiriciyi ve herhangi bir düğüm sayısını kabul edecek şekilde genişletildi. Diğer belgeler içinComposeTestRule
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 veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test bileşimi ve bestedeki tümLaunchedEffect
verememberCoroutineScope()
ç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 alanDialogProperties
oluşturucudan deneysel ek açıklamayı kaldırın. (Ic4048)PathMeasure.getPosition()
vePathMeasure.getTangent()
(I3b47c) ile bir yol üzerindeki belirli bir mesafedeki hesaplama konumuna ve teğet işlevine işlev eklendiPlatformParagraphStyle
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 alanTextMeasurer.measure
işlevi için yeni bir aşırı yükleme eklendi. (I47b2d, b/242705342) - TextStyle'daki
LineBreak
veHyphens
API'leri kararlı sürüme yükseltildi. (Ic1e1d)
Harici Katkı
TextInputSession
veTextInputService
uygulamalarındakinotifyFocusedRect
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ındaTalkBack'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çinTextStyle
uygulamasına deneyselTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
öğesini kullanın. (I24dd7)
API Değişiklikleri
drawText
içindekimaxSize: IntSize
bağımsız değişkeni, diğerDrawScope
işlevleriyle satır içi olacak şekildesize: Size
ile değiştirildi.size
varsayılan olarakSize.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 birisInline
alanı var.isInline
değeritrue
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 sahipAndroidFont
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 şekildeOffscreen
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 {}
vePerfettoTraceRule
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ğrudanwithFrameNanos
veyawithFrameMillis
ç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çinTestMonotonicFrameClock
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 olarakgraphicsLayer
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çinCompositingStrategy
kullanıma sunuldu. Otomatik, alfa uygulanırsa veya birRenderEffect/Overscroll
uygulandığında dahili olarak bir katmandan yararlanan varsayılan davranışı korur. Her zaman ekran dışı bir arabellek eklenir. Bu arabellekteModulateAlpha
, ekran dışı arabelleği kullanmaktan kaçınır ve bunun yerine kaydedilen çizim talimatlarınıgraphicsLayer
içinde ayarlar.ModulateAlpha
kullanımında daRenderEffect/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
öğesineinvalidateSubtree()
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ğiObserverNode
arayüzü eklendi (I5728b, b/247716483) Paint
öğesine yerelandroid.graphics.Paint
kabul eden yeni bir oluşturucu eklendi. Ayrıca, mevcut bir yerel Paint nesnesini Compose Paint'e dönüştürentoComposePaint()
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
veOutlinedTextField
özelliklerineminLines
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 tamamenAwaitPointerEventScope
içinde çalışır. Böylece etkinlikler, yinelemeler arasında kaybolamaz. forEachGesture()
, etkinliklerin hareketler arasında kaybolmasına izin verdiği için artıkawaitEachGesture()
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
veSpanStyle
özelliklerine Deneysel özellik olarakDrawStyle
eklendi. (If24b8, b/155421273) AnnotatedString.Builder
, artıkkotlin.text.Appendable
uygulamasını uyguluyor. (I1a061, b/231030444)AnnotatedString.Builder
artıkAnnotatedString
alt dizesini ve kesişen stilleri eklemek içinappend(AnnotatedString, start: Int, end: Int)
yöntemine sahip.Paragraph
veMultiParagraph
boyama işlevlerine, dış çizgili metinlerin çizilmesini etkinleştirenDrawStyle
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
veital
varyasyon ayarlarını varsayılan olarak yapılandırmaz. Bunun yerine, yüklenenTypeface
için platform ayarı kullanılır. (Ia7a6d, b/246989332)LazyColumn
bellek sızıntısı düzeltildi: Değiştiriciler yeniden kullanıldığındaonModifierLocalsUpdated
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öntemindeconstraints: Constraints
içerensize:IntSize
bağımsız değişkeni değiştirildi. (I37530, b/242707525)
Hata Düzeltmeleri
- AndroidX Activity'nin
BackHandler
API'si artıkDialog
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
veFocusDirection.Out
desteği sonlandırılıp bunların yeriniFocusDirection.Enter
veFocusDirection.Exit
aldı. (Ia4262, b/183746982)FocusManager.moveFocus(Enter)
veFocusManager.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ıkFontFamily.Resolver
,Density
veyaLayoutDirection
parametrelerini almıyor. Bu parametrelere özel değerler sağlamak için lütfenTextMeasurer
oluşturucuyu kullanın. (Ia1da3)DialogProperties.decorFitsSystemWindows
mülk eklendi ve iletişim kutularınınWindowInsets
ö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ı yeriSlotTree.kt
alanına ekleyin. Bu sayede araçlar, alan tablosunun tamamını ayrıştırmak zorunda kalmadanCompositionGroup
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çindeLayoutCoordinates
öğ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çinLayoutCoordinates.transformFrom
eklendi. (Ic5ab1, b/238632578) SemanticsModifier.id
desteği sonlandırıldı ve anlamsal kimlikLayoutInfo.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
veLineHeightStyle
reklam grubundan kaldırıldı. (I64bef) TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Bunun yerine lütfen uygulama kodundaSoftwareKeyboardController
ve IME yönetimi kodundaTextInputSession
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çinrememberTextMeasurer
eklendi. (I8d66e) Rect
,RoundRect
veMutableRect
artıkcontains
işlevini çağırmak için Kotlinin
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
vekeysUp
. (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
hizmetinetoStringForLog()
yöntemi eklendi. (I53354, b/228862731) Canvas
vedrawBehind
gibiDrawScope
üzerinde çalışan composable'larda ve değiştiricilerde birden fazla stilde metin çizme imkanı sağlamak içinDrawScope
eklentisinedrawText
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ıyanTextMeasurer
adlı yeni bir deneysel API'yi kullanıma sunun. (I17101) mapTree
adlı yeriSlotTree.kt
alanına ekleyin. Bu sayede araçlar, önce asTree'nin yaptığı gibi hafızada kopya oluşturmadanSlotTree
öğ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'yeInputEventChange
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çinTextStyle
veSpanStyle
özelliklerinin Fırça aromasına isteğe bağlı alfa parametresi ekleyin. (Ic2fac, b/234117635) AnnotatedString
içindeTalkBack
bağlantı desteğini desteklemek içinUrlAnnotation
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
TextLayoutResult.getLineForOffset
atış yapmıyor. (Idc5d6, b/235876324)
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
veFocusProperties
için yeni davranış özelleştirme API'leri- Fiziksel klavye veya TV uzaktan kumandasıyla iyileştirilmiş davranış
- Tembel listelerde odak odaklı kaydırma artık yeni
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
dahilGraphicsLayer
ö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ındawithKeysDown
,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çinisCtrlDown
gibi özellikler eklendi. Her işlevle ilgili belgeler içinKeyInjectionScope
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 birOverscrollEffect
kullanıma sunulmuştur. - Deneysel
LocalOverScrollConfiguration
,foundation.gesture
klasöründen temel paketine taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) runComposeUiTestWithoutActivity {}
öğesinin adınırunEmptyComposeUiTest {}
olarak değiştirerekcreateEmptyComposeRule()
(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ünepressKeyTimes
,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 veyaperformMultiModalInput
ile çok modlu giriş hareketi sırasındaMultiModalInjectionScope
öğesininkey
özelliği üzerinden gönderin. API belgeleri içinKeyInjectionScope
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
veDeleteSurroundingTextInCodePointsCommand
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 şekildeDisposeOnDetachedFromWindowOrReleasedFromPool
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 deneyselBeyondBoundsInterval
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
vefun runComposeUiTest(block: ComposeUiTest.() -> Unit)
TestRule
olmadan.ComposeTestRule
, testirunComposeUiTest
için lambda olarak geçin ve alıcı kapsamındakiComposeUiTest
kapsamındaki yöntemler ve üyelerComposeContentTestRule
ile aynı olanlar.Android'e özel
interface AndroidComposeUiTest
vefun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
şunlardır: temel Etkinliğe erişim sağlamak içinAndroidComposeTestRule
. Daha da fazla kontrol için, bir Kendinizclass AndroidComposeUiTestEnvironment
.Masaüstü uygulaması
class DesktopComposeUiTest
, ancak hayır Şu anda masaüstüne özel çalıştırma işlevleri sunulmaktadır.Test,
ComposeTestRule
öğesindenComposeUiTest
öğ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
veComposeTestRule
şimdilikComposeUiTest
uzantısından desteklenmemektedir. DolayısıylaComposeUiTest
üzerindeki uzantı işlevleri henüzTestRule
arayüzünde çağrılamaz.ComposeUiTest
kararlı API'ye geçtiğindeComposeContentTestRule
veComposeTestRule
,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ştirildiLineHeightStyle
öğesinden varsayılan oluşturucu değerleri kaldırıldı (I582bf, b/181155707)Gradyan renklendirmeyle metin çizme yöntemi sağlamak için
TextStyle
veSpanStyle
özelliklerineBrush
eklendi. (I53869, b/187839528)trimFirstLineTop
,trimLastLineBottom
özellikleriLineHeightBehavior
, 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
veParagraphStyle
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ızcaincludeFontPadding
yanlış değerine ayarlandığında doğru şekilde çalışır. (I97332, b/181155707)PlatformParagraphStyle.lerp
vePlatformSpanStyle.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) veTextField
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çinconsume()
kullanabilirsiniz. Başka birinin daha önce değişikliği yapıp yapmadığını belirlemek içinisConsumed
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 birPointerInputChange
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ünconsumeWindowInsets
uzantı özelliği, geliştiricilerin AndroidWindowInsets
kullanımını devre dışı bırakmasına olanak tanır. Bu, hiyerarşide birbirinden farklıComposeViews
öğelerinin, birbirlerine müdahale etmeden her birineWindowInsets
uygulamasına olanak tanır. (I0ef08, b/220943142)- Özellikle IME'de ondalık ayırıcı eklemek için
Keyboard.Number
yerineKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) PointerEventType.Scroll
vePointerEvent.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ı veFont(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 üzereGoogleFont.Provider
oluşturucu ekleyin (Ic5ee1, b/225984280)Compose GoogleFont
artıkFont(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 eklendiRSB etkinliklerine (Ief8ae) etkinlik zamanı eklendi
FocusOrder
,FocusProperties
adı altında birleştirildi vefocusProperties()
artıkfocusOrder()
ürününün tüm özelliklerine sahip.FocusOrder
vefocusOrder()
desteği sonlandırıldı.focusRequester
kabul edenfocusOrder()
,focusProperties()
ile birliktefocusRequester()
değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler, endişeleri daha etkili bir şekilde ayırabiliyor. (I601b7)Hem
RecyclerView
hem deCompose
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
eklemeYeni 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
öğesineambientShadowColor
vespotShadowColor
ö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 ediyorActionCallback
. (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
veOnPlacedModifier
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ızIllegalStateException
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ıyanComposableOpenTarget
: 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
veyaReusableComposeNode
tarafındanComposableTarget
fonksiyon ve diğer herhangi bir composable lambda parametre türleri. Bununla birlikte, veComposableTargetMarker
ve ardından işaretlenen ek açıklama kullanılır. kullanabilirsiniz.ComposableTarget
Oluşturulabilir bir ek açıklamaComposableTargetMarker
ile işaretlenen bir Özelliğin tam adını içerenComposbleTarget
class'ı uygulayın. Örnek olarakComposableTargetMarker
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
öğesiniFontFamily.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çinnotifyFocusedRect
yöntemTextInputService
artık kullanımdan kaldırıldığı için çağrılmayacak. Tekliflerinizi otomatikleştirmek ve optimize etmek için Bunun yerineBringIntoViewRequester
. (Ia4302, b/192043120, b/216842427, b/178211874)destroyDisplayListData
tarihinde kullanıma sunulduRenderNode
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 bunlara 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ıkLocalFontFamilyResolver.current
üzerinden kullanılabilirYeni oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi Oluşturma kullanımı dışındaki FontFamily çözümleyicileri.Paragraf ve MultiParagraph artık
FontFamily.Resolver
yer alıyorTextLayoutResult.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çinTextLayoutResult.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ğiFontFamilyResolver.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çinAndroidFont
bölümüne bakın.Font.AndroidResourceLoader
uzantısı işlevi kompozisyonun dışındaFont.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 yerineFontFamilyResolver.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 yerineFontFamilyResolver.preload
kullanın (If8e7c, b/174162090)maxSlotsToRetainForReuse
kabul edenSubcomposeLayoutState
oluşturucunun desteği sonlandırıldı. Bunun yerineSubcomposeSlotReusePolicy
öğ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()
veModifier.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
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
içinNullPointerException
düzeltme (aosp/1947059, b/206677462)- Şuradan okurken pano içeriğinden kaynaklanan kilitlenme düzeltildi panosuna bakacağız. (I06020, b/197769306)
LazyVerticalGrid
içinde sabit RTL (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.ui:ui-*:1.1.0
yayınlandı. 1.1.0 sürümü bu 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ıkHardwareRenderer.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ıkException
yerine genişletiliyor (doğrudanThrowable
aracılığıyla). Bunun, Yakalama ifadelerininException
yakalayanları artık yakalayabilirsinizComposeNotIdleException
, 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()
veInjectionScope.dispose()
. Tüm etkinliklerin temizlenmesi ve verilerin bertaraf edilmesi kapsam artık, kontrol edin. (I2bed8)MultiModalInjectionScope.Touch
veMultiModalInjectionScope.Mouse
. Dokunma ve fare eklemek için etkinlikleri kolayca etkinleştirebilirsiniz.MultiModalInjectionScope.touch()
veMultiModalInjectionScope.mouse()
ve her ikisi de alıcı kapsamına sahiptir. (Idde18)
Hata Düzeltmeleri
durationMillis
için varsayılan değerTouchInjectionScope.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 veLayoutInfo.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çinInjectionScope
: 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çinRecomposer.currentState
(Ic2ab3, b/197773820)flush()
vedispose()
,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ıkDensity
ö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
velayoutDirection: LayoutDirection
,LayoutInfo
koleksiyonuna eklendi. Bu sayedeLayoutInfo
tüketicileriLayoutInfo
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
öğesininMouse
özelliği aracılığıylaperformMultiModalInput
ile çok modlu giriş hareketi. Görüntüleyin Kullanılabilir API ile ilgili belgeler içinMouseInjectionScope
. (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ıkPointerEventType
var içeren bir e-tablo kullanabilirsiniz. (I091fa)- Çocukların, üst öğe 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
veGestureScope
kullanımdan kaldırıldı:performTouchInput
veTouchInjectionScope
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
veTouchInjectionScope
performTouchInput
veTouchInjectionScope
yerine, zemin döşeme modalitelerin (fare gibi) önünü açıyor.TouchInjectionScope
,GestureScope
ile aynı yöntemlere sahiptir ve hariç tutulanmovePointerTo
vemovePointerBy
updatePointerTo
veupdatePointerBy
olarak yeniden adlandırıldı. Diğer tüm yöntemler aynıdır.TouchInjectionScope
işlevinin davranışı, İki küçük ayrıntıylaGestureScope
:- İş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, ancakmove()
kullanılmaz, ardındandown()
çağrılır), önceki etkinlik süresini uzatır ve bir taşıma etkinliği gönderir. işlemi tekrarlamanız gerekir. Yeni uygulama hâlâ ancak bu belirli işlemde etkinlik süresini ilerletmiyor senaryoyu izler. - İş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çincurrentPosition(pointerId: Int)
girin. (If1191, b/190493367)- İşaretçiler taşınmadan taşınmış olan bir aşağı etkinlik gönderirken
taşıma etkinliği gönderme (başka bir deyişle
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
, Kotlin1.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 withTensorFlow() işlevini 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
vehasScrollToKeyAction
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ümdeandroidx.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ından
çağrısının yapacak öğelerdir.
Ö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 ve ressam olarak ortaya koyduğumuzda, davranışta 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'nin7.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
veui-tooling-preview
olarak bölün (Iefa28, b/190649014)
API Değişiklikleri
- Kullanımdan kaldırılan deneysel
FocusManager#moveFocusIn
veFocusManager#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ümandakiuseDefaultMaxWidth
,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ıyanLocalActivityResultRegistryOwner
: 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ıyanLocalOnBackPressedDispatcherOwner
: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çinComposeTestRule.mainClock.advanceTimeUntil {}
ile tamamen aynıdır. Gelecekte daha fazla kısıtlamanın belirlenmesi bekleniyor. (I284fa)
- Yerel bit eşlem olmadığından
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çinH
,S
veP
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
sitesindekifun isPlaced(): Boolean
yöntemiisPlaced()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ı veModifier.focusTarget()
(I6c860) ile değiştirildiModifier.onSizeChanged()
veModifier.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
vedetectHorizontalGestures
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
tarihindeTextGeomerticTransform
veTextDecoration
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çinSemanticsProperties.IndexForKey
anahtarlı öğelerle. Her iki işlem de LazyList tarafından uygulanır.- Şunları ekledi:
SemanticsNodeInteraction.performScrollToIndex
bir listeyi belirtilen dizine kaydırır veSemanticsNodeInteraction.performScrollToKey
öğesine sahip olmayabilir. (I4fe63, b/178483889, b/161584524)
- Şunları ekledi:
- 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 ileAnnotatedString.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)
veFocusManager.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
veaccessibilityActionScrollDown
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
veshowSoftwareKeyboard
açık SırasıylaSoftwareKeyboardController
-hide()
veshow()
.- için tüm CompositionLocal arayüzünün tamamını sağlayın (ö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 durumlardaFragmentContainerView
aracılığıyla şişirilen parçalarAndroidViewBinding
, 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 durumlardaFragmentContainerView
aracılığıyla şişirilen parçalarComposeView
metriğinizFragment
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 sonraFragmentContainerView
. (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
vestartY
/endY
parametreleri eklendi şuradaswipeUp
/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üzeltilditearDownRegistry()
(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() }
öğesiniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = 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.Rangeoldu 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çindefaultFactory
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 dönelim.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 yerineModifier.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()
veLocalViewModelStoreOwner
, generate:ui öğesinden kaldırıldı.androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
(I6f36b) kapsamındakileri kullanınDeğ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
veonClick
tarihinden sonra olacak şekilde taşındı. - BottomClicksItem öğesi içindeki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametre yalnızcacontent
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()
öğesinesecondaryVariant
parametresi eklendi. Bu renk, genellikle koyu temadakisecondary
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
öğesindekionValueChangeEnd
,onValueChangeFinished
olarak yeniden adlandırıldı ve boş değer olarak değiştirildi.- Tutarlılık sağlamak için
Snackbar
öğesindekitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolgunun özelleştirilmesine olanak tanımak için
DropdownMenuItem
öğesinecontentPadding
parametresi eklendi vecontent
,RowScope
öğesinde uzantı yapıldı. ModalDrawerLayout
adlı dosyaModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
adlı dosyaBottomDrawer
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 SoftwareKlavyeController arayüzünün yerini alacak API TextField'i (Metin Alanı) seçin. (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 birfocusable
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ıpremember { mutableStateOf(0) }
gibi kullanımları teşvik etme şeklimize benzer şekilde,savedInstanceState { 0 }
composable'ı da kaldıracağız. Bunun yerinerememberSaveable { 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 şimdistateSaver
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
vewithMutableSnapshot
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, TransformedText.text olarak yeniden adlandırıldı.
- TransformedText artık bir veri sınıfı (Ie672a) değil
data class
şu sınıflardan kaldırıldı:- Satır İçi Metin İçeriği
- Yerel Ayar (I605c7)
- Aşağıdaki sınıflar artık veri sınıfı değil:
- Ek AçıklamalıDize
- Paragraf Stili
- Aralık Stili
- Metin Stili
- Yazı Tipi Ağırlığı
- Metin Dekorasyonu
- MetinGeometrik Dönüşümü
- Metin Dizini
- Metin DüzeniSonucu
- TextLayoutInput (Iaff99)
- VisualTransformation işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4)
- İşlev referans parametresi türü (I5e1bd) eklendi
- Dönüştürülmüş sınırları InspectorNode'a (Ice42f) ekleyin
Hata Düzeltmeleri
- SideEffect ve DisposableEffect API'leri (If760e) yerini alarak onCommit, onDispose ve onActive desteği sonlandırılmıştır.
Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Küçük 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 sunulduComposeTestRule
ve şu klasörden kaldırılansetContent
öğesini tanımlar:ComposeTestRule
.createEmptyComposeRule()
fabrika yöntemi eklendiComposeTestRule
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 sahipCompositionLifecycleObserver
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ırlananonRemembered
değerineonEnter
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
veScaffold
single'ı yapıyoronEnter
arama garantisi güvenilir değil ve şu nedenle kaldırıldı:RememberObserver
.RememberObserver
,onAbandoned
Geçilen geri çağırmadanRememberObserver
örnek döndürüldüremember
olarak kaydedildi ancak beste durumunda hatırlanmadı ve dolayısıylaonRemembered
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ındanRememberObserver
örneği yukarıdaki referans öneri, harici bir kaynağın izlenmesidir hemonForgotten
hem deonAbandoned
, gerekli değildir. Nesne işi izliyorsaonRemembered
,onAbandoned
içinde başlatılan kaynaklaronRemembered
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)
veitemsIndexed(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)
veitemsIndexed(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
yerineState<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öntemiinsertTopDown()
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()
veyainsertBottomUp()
kullanılıyor ve daha iyi performans gösterdiğini göreceksiniz.LayoutNode
veView
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 birApplier
aşağıdan yukarıya ağaç oluşturmak içininsertBottomUp()
değerini geçersiz kılar ve Ağacı yukarıdan aşağıya inşa etmek içininsertTopDown()
. (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ılan notesdString 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ı dosyaModifier.alpha
olarak yeniden adlandırıldıModifier.drawShadow
listesiModifier.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
vepivotFractionY
:component1
vecomponent2
(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 decontent
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 atlamaya izin verecek ş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çinlayoutId
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 hale getirildi
- 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 uygulamasına geçici olarak eklenen seçenek MonotonicFrameClock (I1403b, b/173402197) tarafından sürüldü
- Android Yazı Tipi sarmalayıcı eklendi. Android hesap yükleyebilir
typeface
işlevi (ör.typeface(Typeface.DEFAULT)
) aracılığıyla yazı karakteri.typefaceFromFontFamily()
adlı dosya datypeface()
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ı kaldırın (I3a7cb)
- 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 geçirin. (If5e8d)
- TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmemiş. (Ifce19)
Oluşturma Kullanıcı Arayüzü Sürüm 1.0.0-alpha07
11 Kasım 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- 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, captureToImage öğesine taşındı. (I86385)
- Foundation.Text desteği sonlandırılmış ve asset.Text ile değiştirildi. Temadan değer kullanmayan temel ve işlemsiz metin API'leri için androidx.compose.foundation.BasicText adresini ziyaret edin. (If64cb)
- TextFields'i KlavyeSeçenekleri (Ida7f3) kabul edecek şekilde güncelleyin
- Klavye Seçeneklerini ImeOptions olarak yeniden adlandırın (I82f36)
- Klavye Türü ve ImeAction, KlavyeSeçeneklerine taşındı (I910ce)
- Ambiyans sağlamak için bir alternatif olarak OfferDefault eklendi ve yalnızca henüz herhangi bir ambient değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField alanını kullanın. (I896eb)
- ui-test-junit4 modülünü tanıtın (Ib91f8)
relativePaddingFrom
,paddingFrom
olarak yeniden adlandırıldı. Düzen sınırlarından metin referans değerlerine olan mesafeleri kolayca belirlemek amacıylapaddingFromBaseline
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 dosyası kapalı 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ığındazIndex
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)
- KlavyeOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)
Harici Katkı
- Dahili yapı androidx.compose.ui:ui-text-android (Ib93fa) yayınlanması devre dışı bırakıldı
Sürüm 1.0.0-alpha06
28 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha06
yayınlandı. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Recomposer artık bir CompositionReference ve geçerli bir bileşim üst öğesidir. Açık Yeniden Oluşturucu 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
veAnnotatedString.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 yerinePointerInputFilter.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
veAndroidInputDispatcher
, ş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ünseAndroidView
kullanın. Bu işlemlerin AndroidView kullanılarak yapılabildiği durumlarda, beste ağacında bırakılmadığı sürece Görünümler ve ViewGroups oluşturma işlemlerinin doğrudan desteklenmeyeceğini unutmayın. (I29b1e, b/163871221)FocusState2
desteği sonlandırıldı ve bu öğenin yerineFocusState
(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
veOnChildPositionedModifier
kaldırıldı. GeliştiricileronPositioned
veOnPositionedModifier
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ünemergePolicy
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()
, öncekiPlacementScope.place()
isePlacementScope.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 yerinePlacementScope.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ükVertical 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 şekilderemember { 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çinby 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
veColumn
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)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve IntOffset sınıflarını tutarlı bir API yüzeyi
- IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın ofset API ile tutarlı olmasını sağlayın
- NativeCanvas yöntemi Canvas'tan taşındı oluşturmalarını sağlayan bir arayüze sahip. kendi Canvas örnekleri
- 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
- ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı
- Filtre Kalitesi enum'ları Pascal Case olarak yeniden adlandırıldı
- StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı
- PointMode enum'ları Pascal Case olarak yeniden adlandırıldı
- PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
- PathFillType sıralamaları, Pascal Case olarak yeniden adlandırıldı
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı
- DrawCache uygulaması artık kullanılamayacak şekilde güncellendi lateinit parametrelerini kullan
- DrawScope artık geç yetkilendirme kullanmayacak şekilde güncellendi fillPaint ve walkPaint dahili parametreleri için
- Box kullanımını önlemek için composable adlı resim güncellendi (daha az ek yük için)
- Outline sınıfı, @Sabit ek açıklamaları içerecek şekilde güncellendi
- PathNode, her yol talimatı
- 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
- Desteği sonlandırılmış Rect tamamlayıcı oluşturucu yöntemleri lehine işlev kurucuları
- Fırça sınıfları ve işlev oluşturucuları şununla güncellendi: @Sabit ve @Kararlı API'ler
- VertexMode sıralaması PascalCase olarak güncellendi
- DrawScope selectPaint yöntemi koşullu olarak güncellendi fırça parametrelerinin üzerine yazıldıysa değişti
- 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 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 yerineSemanticsNodeInteraction.performGesture
. (Id9b62)LazyColumnItems
,LazyColumnFor
olarak yeniden adlandırıldı.LazyRowItems
,LazyRowFor
(I84f84) olarak yeniden adlandırıldıfoundation.shape.corner
paketifoundation.share
(I46491, b/161887429) olarak hizalandıAndroidComposeTestRule
adlı dosyacreateAndroidComposeRule
olarak yeniden adlandırıldı. (I70aaf)TextLayoutResult
API'lerine daha fazla API eklendi. (Id7e04)FilledTextField
malzemesi,TextField
olarak yeniden adlandırıldı ve temelTextField
, istenen en basit API'nin keşfedilmesini ve kullanımını kolaylaştırmak içinBaseTextField
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, oluşturma derleyici eklentisi, @Composable işlevinin içinde bir (I5205a, b/158123804) bulunan kuruculara yapılan çağrılara sıra dışı bir şekilde müdahale ediyordu.
Değiştirici.tag, Modifier.testTag ile karışmasını önlemek için Değiştirici.layoutId olarak yeniden adlandırıldı. (I995f0)
Placeable#get(alignmentLine)'dan döndürülen hizalama satırı Int konumları artık null değildir. Sorgulanan hizalama satırı eksikse HizalamaÇizgisi.Belirtilmemiş döndürülür. (I896c5, b/158134875)
AndroidView composable'a bir değiştirici parametre eklendi. (I48a88, b/158746303)
Semantics() desteği sonlandırıldı. Bunun yerine Değiştirici.semantics() işlevini kullanın. (I72407, b/158841414)
Etkinlik veya Parça (I5fdd1) içindeki çalışma şekline benzer şekilde ViewModel oluşturulmasına veya önceden oluşturulmuş ViewModel'in oluşturulmasına olanak tanıyan viewModel() composable ekleyin
IntPx kullanımı, Int. 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)
-
- 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-geometry 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:
- Bazı görüşmelerde daha önce olmayacak şekilde atlanır
- 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 sonravararg
sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı. Alternatif olarakkey
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ı