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 belgelerine bakın
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
10 Temmuz 2024 | 1.6.8 | - | 1.7.0-beta05 | - |
Yapı
Oluşturma, androidx
içindeki 7 Maven grubu kimliğinin kombinasyonudur. Her Grup, her biri kendi sürüm notu kümesine sahip olan hedeflenen bir işlev alt kümesi içerir.
Bu tabloda, gruplar ve her sürüm notu grubunun bağlantıları açıklanmaktadır.
Gruplandır | 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 projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünün build.gradle
dosyasına ihtiyaç duyduğunuz yapılar için bağımlılıkları ekleyin:
Modern
dependencies { implementation "androidx.compose.ui:ui:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.14" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.14" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme bölümüne bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.
Sürüm 1.7
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ı ayar ve Boyut satır içi sınıflarında halihazırda mevcut olan belirtilmeyen sabit değerler yerineUnsetOffset/UnsetSize IntSize
sentinel değeri kaldırıldı (I2fb03, b/333863462)- Testler sırasında fare girişi eklenirken
MouseInjectionScope.click()
,MouseInjectionScope.doubleClick()
,MouseInjectionScope.tripleClick()
,MouseInjectionScope.longClick()
, evrensel olarak daha uygulanabilir hale getirmek için artı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
öğelerindeki öğeleri önceden getirmek için destek 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ı bekleniyor. 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ğını ve yaklaşım animasyonunu uygulamaya karar verirken doğrudan neyin uygulanacağını ayırt etme fırsatına sahip olur. (I60ec7) - Uzun ekran görüntüleri için özellik bayrağı kaldırıldı. (I28648, b/329128246)
LazyColumn
artık uzun ekran görüntülerinde yapışkan başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)NestedScroll
kaynakların Sürükleme ve Kaydırma işlevi, artık animasyonlar (Yan Efekt) ile Fare Tekerleği ve Klavyeyi (UserInput
) de içeren bu kaynakların genişletilmiş tanımına uymak iç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çerenGraphicsContext
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 (ör.java.util.Locale
) döndürenplatformLocale
özelliğini gösterin. (I921c6)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.ui:ui-*:1.7.0-alpha03
yayınlandı. 1.7.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Karşınızda
ContextualFlowRow
ve MaxLines ve Overflow içeren GeliştirilmişFlowRow
/Column
.ContextualFlowRow
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. - Test edilen içeriğin davranışını yerel olarak geçersiz kılmaya (ör. kullanılabilir bir boyut, yerel ayar, düzen yönü, yazı tipi ölçeği veya tema belirtmek) olanak tanımak için
ui-test
ürününeDeviceConfigurationOverride
API'si ekler.
Sürüm 1.6
Sürüm 1.6.8
12 Haziran 2024
androidx.compose.ui:ui-*:1.6.8
yayınlandı. Sürüm 1.6.8 bu taahhütleri içerir.
Hata Düzeltmeleri
- Yazı tipi ölçeği tanımlanan en alt tablodan küçük olduğunda yazı tipi ölçeklendirmesindeki tutarsızlıklar düzeltildi. Bu örnekte, şimdi doğrusal 1x ölçeği ile tanımlı en düşük tablo arasında arapolasyon yapıyoruz. Böylece, ölçekler büyüdükçe yazı tipi boyutu monoton olarak artar. (Icbae3)
Sürüm 1.6.7
1 Mayıs 2024
androidx.compose.ui:ui-*:1.6.7
yayınlandı. Sürüm 1.6.7 bu taahhütleri içerir.
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.ui:ui-*:1.6.6
yayınlandı. Sürüm 1.6.6 bu taahhütleri içerir.
Hata Düzeltmeleri
- Nadir görülen
BasicTextField
kilitlenmelerini düzeltir.
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.ui:ui-*:1.6.5
yayınlandı. Sürüm 1.6.5 bu taahhütleri içerir.
Sürüm 1.6.4
20 Mart 2024
androidx.compose.ui:ui-*:1.6.4
yayınlandı. Sürüm 1.6.4 bu kaydetmeleri içerir.
Sürüm 1.6.3
6 Mart 2024
androidx.compose.ui:ui-*:1.6.3
yayınlandı. Sürüm 1.6.3 bu taahhütleri içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.ui:ui-*:1.6.2
yayınlandı. 1.6.2 sürümü bu kaydetmeleri içerir.
Sürüm 1.6.1
7 Şubat 2024
androidx.compose.ui:ui-*:1.6.1
kullanıma sunuldu. Sürüm 1.6.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
SemanticsPropertyReceiver.performImeAction
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 bununla değiştirilmiştir. Sürükleyip bırakma oturumlarından almak içinDragAndDropTarget
fabrika işlevi eklenmiştir (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. Sistem ayarlarında yazı tipi ölçeği% 100'ün üzerinde olduğunda, küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinler yalnızca küçük bir kısmı büyütülür. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğin istenen yükseklikle orantılı kalması için otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirme ile İlgili En İyi Uygulamalar'a bakın. (I11518)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.ui:ui-*:1.6.0-alpha05
yayınlandı. 1.6.0-alpha05 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
AndroidComposeViewAccessibilityDelegateCompat
uygulamasında içerik yakalamayı etkinleştirin. (Ib2969)ScrollView
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
- Giriş ve çıkış animasyonu sırasında içeriği animasyon kapsayıcısının boyutuna göre ölçeklendiren yeni giriş/çıkış geçişi türü.
LookaheadScope
Oluşturulabilir eğlence ve arayüz artık kararlı. (Ifb2ce) privateImeOptions
(Idb772) yapılandırması için destek eklendi
Hata Düzeltmeleri
PopupPositionProvider.calculatePosition
artık hesaplamadaki okuma durumu değiştiğinde pop-up'ın konumunu otomatik olarak güncelleyecek. (I676a1, b/292257547)readOnly
doğru değerine ayarlandığında klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Odaklanıldığı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 kaydırmadaki sürüklemeden ayırma işlemi için Çark ekler (özellikle
NestedScrollConnection
'de). (Ie57e4) - Döndürülen nesne orijinal
android.graphics.Paint
(I22b4c) öğesini sarmaladığı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) - İlerideki 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üştürme API'sini ekleyin. (I23434, b/233772232) ColorProducer
yönteminin adıproduce
. (I78bde)toFrameworkColorSpace
öğesinin adınıtoAndroidColorSpace
olarak değiştir (I4f547)ColorLambda
listesinin adınıColorProducer
olarak değiştir. (I73b1a)- Android ve Compose renk alanı türleri arasında dönüşüm yapmanızı sağlayacak API'leri kullanıma sunun. (Ie7db4, b/279979665)
- Metin renginin verimli bir şekilde animasyona veya ayarlanmasına olanak tanımak için
BasicText
öğesine bir renk parametresi eklendi. (Iffd88, b/246961787) TextRange.constrain
adlı 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 vermek için geliştirilmiş bir özellik 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. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/25}b/25} - Platformlarda
IsContainer
anlamsal özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamlarına dayalı olarak geçiş sırasını belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379) DropdownList
adlı yeni erişilebilirlik rolü eklendi. Bu,android.widget.Spinner
cihazına odaklanılı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 boşta olmak üzere kareler yürütürken (ör.
waitForIdle
ile) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının ayrı kareleri üzerinde hak iddia eden testleri etkileyebilir. (I8ea08, b/222093277) - Metni
Static(default)
veya Animasyonlu olacak şekilde tanımlamak iç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 düzgün ş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 geçirildi. (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. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/25}b/25} - Platformlarda
IsContainer
anlamsal özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamlarına dayalı olarak geçiş sırasını belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379) - Yeni erişilebilirlik rolü (
DropdownList
) eklendi. Bu,android.widget.Spinner
odaklama sırası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 boşta olmak üzere kareler yürütürken (ör.
waitForIdle
ile) her kare için düzen geçişlerini çalıştıracak. Bu durum, düzen animasyonlarının ayrı kareleri üzerinde hak iddia eden testleri etkileyebilir. (I8ea08, b/222093277) - Metni
Static(default)
veya Animasyonlu olacak şekilde tanımlamak iç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 derlenmiş modüllerden yapılan satır içi composable işlevlere yapılan çağrılar için değer false (yanlış) olabilir. (Idb846)- Daha önce deneysel olan bir dizi API'yi kararlı sürüme geçirdi
- Rotary Scroll Event API artık kararlı durumda (I42ad3, b/261561229)
FontVariation
API artık kararlı (I8779f, b/241016309)- Tüm
Font()
oluşturucuları artık kararlı API (I5948b, b/261435386) oldu DeviceFontFamilyName
artık kararlı durumda (I8b640, b/261435386)variationSettings
özelliğine 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 öğe kaydırma bilgilerini sorgulamaya bir Değiştirici API eklendi. (I2ba9d, b/203141462)
- Hareketler kaydırma etkinliklerine dönüştüğünde, basma etkileşimlerini doğru şekilde ertelemek için
Clickable
ürününde kullanılır. Clickables
öğesinin,Scrollable ViewGroup
içinde kullanıldığında dalgaları doğru şekilde geciktirmemesi düzeltildi.- Hareketlerin kaydırma etkinliklerine dönüşmesi durumunda basmaları doğru şekilde geciktirmek için Çekmeceler ve E-Tablolar güncellendi.
CompositingStrategy.Always
öğesi,graphicsLayer
öğesinin her zaman ara arabelleğe (I47dc1) oluşturulacağını belirtecek ş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ğırmalarından sonra, arayanların eş yordamları devam ettirilmeden önce kodu çalıştırmak içinTestMonotonicFrameClock
oluşturucusuna ve fabrika işlevine isteğe bağlıonPerformTraversals: (Long) -> Unit
parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)- EmojiCompat'ı, beste yazmaya eklendi (Ibf6f9, b/139326806)
- Dinamik renk desteği için
@Preview
parametresine yeni duvar kağıdı parametresi eklendi (I9f512)
Hata Düzeltmeleri
- Anlık görüntü uygulama bildirimleri artık
Recomposer
tarafından değişikliklerin uygulanması tamamlandıktan sonra gönderiliyor. (Iad6c0, b/222093277) captureToImage
ürününde, çok pencereli ekran görüntülerinin yakalanmasına olanak tanıyan değişiklikler yapıldı. Bu seçenek, oluşturulan Pop-up'ları kullanan ekran görüntüsü testleri için yararlıdır. (I169c5)
Bağımlılık Güncellemeleri
- Kullanıcı Arayüzü Oluşturma ve Materyal Oluşturma artık Yaşam Döngüsü 2.5.1'e bağlı. (I05ab0, b/258038814)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.ui:ui-*:1.4.0-alpha02
yayınlandı. 1.4.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
GraphicsLayerScope
,graphicsLayer
öğesinin mevcut boyutunu gösterecek şekilde güncellendi. Bu, Oluşturulabilir boyutunun bir işlevi 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şime geçilebilir ve okunabilir olmasını sağlamak geliştiricinin sorumluluğundadır.
API Değişiklikleri
- Yapılandırma değişikliklerinde
painterResource
ürününün güncellenmemesine neden olan bir sorun düzeltildi (I58e73, b/228862715) rememberTextMeasurer
artıkFontFamily.Resolver
,Density
veyaLayoutDirection
parametrelerini almıyor. Bu parametrelere özel değerler sağlamak için lütfenTextMeasurer
oluşturucuyu kullanın. (Ia1da3)- İletişim kutularının
WindowInsets
desteklemesine izin vermek içinDialogProperties.decorFitsSystemWindows
özelliği eklendi. (I57742, b/229378542) - İkili program uyumluluğunu korumak için yazı tipi oluşturucuları orijinal kotlin dosyasına geri taşındı. Son kararlı sürümden bu yana değişiklik yok. (Ieb2f3)
- Birkaç eşittir tanımından gereksiz operatör kaldırıldı. Bu işlemin herhangi bir etkisi olmadı. (I6c309)
FontVariation.Setting
, gelecekteki sınırlama API'lerine izin veren mühürlü bir arayüzdür. (I11021, b/143703328)CompositionGroup.findParameters
adlı 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ı (API 26+) destekliyor. (I900dd, b/143703328)
DeviceFontFamilyNameFont
ürününde değişken yazı tipi desteği (Ic1279, b/143703328)- Yazı tipi oluşturucuları artık O+ cihazlarda değişken yazı tiplerini yapılandırmak için bir
FontVariation.Setting
listesini kabul ediyor. (I11a9d, b/143703328) - Değişken yazı tiplerini tanımlamak ve kullanmak için
FontVariation
API ekleyin. (I3c40c, b/143703328) LineHeightStyle.Alignment
kurucusu artık herkese açık (deneysel) (I4bbbe, b/235876330)- Paragraf artık Android ve Masaüstü için beklenen|gerçek ve tanımlanmıştır. (Id387e, b/239962983)
- Arayüz Paragrafı artık Paragarph arayüzü mühürlü. Paragrafın alt sınıflandırılması için herhangi bir kullanım alanı yoktur. Bu değişiklikten etkileniyorsanız benimle iletişime geçmenizi öneririz. (If5247, b/239962983)
- Deneysel ek açıklama
PlatformTextStyle
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ı, "Millis" son ekini içerecek şekilde yeniden düzenlendi. Burada, söz konusu sabit değer ve parametre birimlerinin birimi milisaniyedir. (Iabef5)- Metin düzenleme sorunlarının giderilmesine yardımcı olmak için
EditCommand
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 Denetleyici için bu, yaklaşık 10 faktörde bir performans iyileştirmesi sağlar. (I5e113)- Geliştiricilerin kitaplıklardaki
MultiPreview
ek açıklamalarını yazmasına ve yeniden kullanmasına olanak tanımak için Oluşturma Önizlemesi, ikili program çıkış dosyalarında depolanacak şekilde değiştirildi. (I85699, b/233511976)
Hata Düzeltmeleri
Velocity
İzleyici'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. Bu da,FontFamily.Resolver
öğesinin üzerine yazılması durumunda kilitlenmelere neden oluyordu. (I4609d) - İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
DeleteSurroundingTextCommand
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)TestRule
gerekmeden Compose Ui testlerini çalıştırmak için kullanılabilecek yeni deneysel, platformdan bağımsız, test API'si (interface ComposeUiTest
vefun runComposeUiTest(block: ComposeUiTest.() -> Unit)
) kullanıma sunuldu.ComposeTestRule
olmadan bir test çalıştırmak için testirunComposeUiTest
adresine lambda olarak geçirin veComposeUiTest
alıcı kapsamındaki yöntemler ve üyeleri kullanın. Bu yöntemlerComposeContentTestRule
kapsamındakilerle aynıdır.Android'e özgü
interface AndroidComposeUiTest
vefun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
,AndroidComposeTestRule
gibi temel Etkinliğe erişim sağlamak için eklenir. Daha fazla kontrol için kendinizclass AndroidComposeUiTestEnvironment
oluşturabilirsiniz.Masaüstü uygulaması
class DesktopComposeUiTest
, ancak şu anda masaüstüne özgü çalıştırma işlevleri sunulmamaktadır.Bir test
ComposeTestRule
ürünündenComposeUiTest
ürününe taşınabilir (Android örneği). Gönderen:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }
Şunları yapmak için:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }
ComposeContentTestRule
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
,LineHeightBehavior
öğesinintrimLastLineBottom
özelliği tek bir sıralamada değiştirildi:LineHeightTrim
.LineHeightTrim
, iki boole ile tanımlanmış 4 duruma sahip değerlere sahiptir:FirstLineTop
,LastLineBottom
, Her ikisi ve Hiçbiri (Ifc6a5, b/181155707)LineHeightBehavior
,TextStyle
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'nin
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
aracılığıyla tanımladığı gibi bir davranış elde edilebilir.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları yalnızcaincludeFontPadding
yanlış değerine ayarlandığında doğru şekilde çalışır. (I97332, b/181155707)PlatformParagraphStyle.lerp
vePlatformSpanStyle.lerp
işlevleri, üst düzey işlevler (I9a268) olarak değiştirildi
Hata Düzeltmeleri
PointerInputChange::copy
dokümanlarında artık bunun yüzeysel bir kopya olduğu doğru bir şekilde belirtiliyor. (I182f5)- Yükseklik sınırlı olduğunda ve tüm metin satırlarına sığmadığında üç nokta desteği (Ie528c, b/168720622)
- Varsayılan
includeFontPadding
etkinleştirildi.includeFontPadding
,TextStyle.platformTextStyle
özelliğini kullanarak devre dışı bırakılabilir. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak o zamana kadar satır yüksekliği iyileştirmelerini daha iyi entegre edebilir (aosp/2058653) 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ştur > Görüntüle yönünde Oluştur ve Görüntüle yönü arasında İç İçe Yerleştirilmiş Kaydırma birlikte çalışabilirlik özelliğini etkinleştirin. Bu, oluşturma ana yayıncısının, iç içe yerleştirilmiş bir kaydırma görünümünden iç içe yerleştirilmiş kaydırma deltaları alabileceği anlamına gelir. (If7949, b/174348612)
- Compose'un View sistemi için tasarlanan UIAutomator testleriyle uyumlu olmasını sağlamak için kullanılabilecek yeni
SemanticsProperty testTagsAsResourceId
. (I39c20) FontFamily.SansSerif
kullanılırken Android'deki sistem yazı tipleri için mevcut tüm ağırlıkları görüntüleyin. Bu, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adlarını kullanır. API 21-28'de daha önce yalnızca 400 ve 700 ağırlıkları desteklendiği için bu davranış değişikliğidir. (I380fe, b/156048036, b/226441992)- Paragraf ve Çok paragraflı eğitmenler, konumsal bağımsız değişkenlerin yerini isteğe bağlı bağımsız değişkenlerden önce olacak şekilde yeniden sıraladı. (Idafaa)
AndroidFont
, artık typefaceLoader'ı oluşturucu parametre olarak alıyor. (I2c971)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
yayınlandı. 1.2.0-alpha07 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Yeni
Snapshot.withoutReadObservation { ... }
işlevi eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan iletilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak, ancak gereksiz yeniden birleşmeye veya yeniden ölçüme neden olmadan değeri okuyabilmek istediğiniz kullanım durumlarında bu özellikten yararlanabilirsiniz. (I9f365, b/214054486) ComposeView
ürününü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 yönü RTL ise
VectorPainter
öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizimlerinin ayrıştırılması güncellendi. (I79cd9, b/185760237) Gölge/ortam renkleri, API uyumluluğu için sondaki
Modifier.graphicsLayer
parametreleri olacak şekilde güncellendi (I3f864, b/160665122)Bozulmayan API değişiklikleri sağlamak için
GraphicsLayerScope
tarihinde gölge/ortam rengine varsayılan uygulamalar 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ıkActionCallback
yerine lambda bağımsız değişkenlerini alıyor. (Ib2eb9, b/197950089)- Çekirdek ve uygulamadaki boş değer, Tiramisu DP2 (I0cbb7) ile eşleşecek şekilde güncellendi
- Ölçülen arayüz artık parentData mülkünü (I3313f) gösteriyor.
Modifier.onPlaced
veOnPlacedModifier
arayüzü artık kararlı. (Ib5482)- Harika! Animasyon oluşturma animasyonu artık Geliştirici Seçenekleri'ndeki "Animatör süre ölçeği" ayarını destekliyor. (I5a4fc, b/161675988)
- Yerel bir
BeyondBoundsLayout
değiştiricisi eklendi (If8b51, b/184670295) - Metin: includeFontPadding artık varsayılan olarak devre dışı.
includeFontPadding=false
nedeniyle ortaya çıkan kayma sorunları ele alınır ve uzun komut dosyaları için klip oluşturmamanız gerekir. (I31c84, b/171394808)
Hata Düzeltmeleri
ComposeContentTestRule.setContent
, halihazırda içerik varken içerik ayarlamaya çalışırsanızIllegalStateException
işlevi gönderir. (I888a5, b/199631334)- Android'de panodan okuma yaparken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (I06020, b/197769306)
- RSB kaydırma örneklerini iyileştirin. (I6a596)
Harici Katkı
- Kotlinx eş yordamları 1.6.0 (I3366d) kullanılacak şekilde güncellendi
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha04
yayınlandı. 1.2.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
composable işlevin, kullanmak üzere tasarlanmadığı bir uygulayıcıyı hedefleme olarak adlandırıldığı durumların derleme zamanı raporlanmasına olanak tanıyan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
özellikleri eklendi.Çoğu durumda, ek açıklamalar, derleyici eklentisi tarafından tahmin edilebilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Tahmin edilemeyen durumlar arasında özel uygulayıcı, soyut composable işlevleri (arayüz yöntemleri gibi), composable lambda olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler tahmin edilir) oluşturup kullanma veya
ComposeNode
ya da ilgili bir composable işlevlerinin kullanılması yer alır.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
çağrısı yapan composable işlevlerin, işlev ve composable lambda parametre türleri için birComposableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ile ek açıklama eklenen bir ek açıklama oluşturmanız ve daha sonra, doğrudanComposableTarget
yerine işaretlenen ek açıklamanın kullanılması önerilir.ComposableTargetMarker
ile işaretlenmiş bir composable ek açıklama, uygulayıcı parametresi olarak özellik sınıfının tam nitelikli adına sahip birComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımıyla ilgili bir örnek içinanroidx.compose.ui.UiComposable
bölümüne bakın. (I38f11)Font(resId, ...)
, artık kararlı API'de loadstratejisini kullanmaya başlıyor. (Ief3d2)FontLoadingStrategy
artık kararlı bir API oldu. (I1ee35, b/174162090)Metinde (I77057, b/214587005) eşzamansız yazı tipi yükleme desteği
Özel
Font.ResourceLoader
öğesiniFontFamily.Resolver
biçimine dönüştürmek için köprü API'si ekleyin. (Ia0060)
Hata Düzeltmeleri
- Sağlanan
FontFamily.Resolver
, Popup gibi alt bileşenlere iletilir. - Sağlanan
Font.ResourceLoader
, Popup gibi alt bileşenlere iletilir. (I48fa5)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
yayınlandı. 1.2.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
TextInputSession
veTextInputService
işlevlerindekinotifyFocusedRect
yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerineBringIntoViewRequester
kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)RenderNode
saplama sınıfındadestroyDisplayListData
yöntemi kullanıldı (I1e659, b/216660268)- Önceden oluşturduğunuz
SubcomposeLayout
öğesinin alt öğelerini önceden ölçmeye olanak tanıyan yeni bir API eklendi. (I857ea) Oluşturulabilir bir lambdayı, durumunu ve karşılık gelen düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştüren
movableContentOf
eklendi. Önceki çağrı besteden ayrıldığında durum geçici olarak korunur ve besteye yeni bir lambda çağrısı girerse durum ve ilişkili düğümler yeni çağrının konumuna taşınır. Yeni bir çağrı eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.Bir
movableContentOf
lambda'sı aynı bileşimde birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur. Ayrıca, çağrılar besteden çıkıp yeni çağrılar girdikçe durum, ilk çıkış çağrılarından girdikleri sırayla giriş çağrılarına taşınır. Yeni çağrılar tarafından hak talebinde bulunulmayan tüm durumlar kalıcı olarak kaldırılır. (Ib4850)FontFamilyResolver
artıkLocalFontFamilyResolver.current
üzerinden kullanılabilirOluşturma kullanımının dışında yeni FontFamily çözümleyiciler oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi.Paragraf ve MultiParagraph artık
FontFamily.Resolver
yer alıyorTextLayoutResult.layoutInput.fontFamilyResolver
artık bu düzen için kullanılan çözümleyiciyi içeriyor. Artık kullanılmadığındanTextLayoutResult.layoutInput.resourceLoader
desteği sonlandırıldı. (Id5a45, b/174162090)Yedek davranışlı eşzamansız ve isteğe bağlı yazı tipi yükleme desteği. Bu yol, Text ve TextField tarafından kullanılır ve FontFamilymamışr üzerinden
FontFamilyResolver.preload
aracılığıyla yazı tiplerini önceden yükleme desteğiFontFamilyResolver.setAsyncLoadContext
, eşzamansız yazı tiplerini yüklemek için kullanılan genel eş hat bağlamının ayarlanmasına olanak tanır. (I87fe8, b/174162090)Android'de yeni yazı tipi kaynak tanımlayıcı türleri sağlamaya yönelik yeni bir alt düzey API olan
AndroidFont
eklendi. Örneğin, uygulamaya özel bir arka uçtan yazı tipleri yükleme, isteğe bağlı olarak cihaz üzerinde önceden yüklenmiş yazı tiplerini bulma veya mevcut Font fabrikaları tarafından sağlanmayan bir kaynaktan yazı tipi yükleme.İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için
Font.ResourceLoaded
API genişletildi. Uygulama geliştiricilerin doğrudan bu API'yi kullanması önerilmez. Yeni yazı tipi türleri eklemek içinAndroidFont
bölümüne bakın.Font.AndroidResourceLoader
uzantı işlevi, bileşim dışında olduğundaFont.ResourceLoader
oluşturulmasına olanak tanır.Kaynak tabanlı yazı tiplerine, kaynak yazı tipi indirilebilir yazı tipleri XML'e başvurduğunda eş zamansız yüklemeye olanak tanımak için
loadingStrategy
parametresi eklendi. (Ie5aea, b/174162090)Typeface(FontFamily)
oluşturucu desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri 10 saniyeyi bulabilir. İndirilebilir yazı tipleriyle bu çağrı 10 saniye boyunca bloke olabilir. Bunun yerineFontFamilyResolver.preload
politikasını kullanın.fontResource(FontFamily): Typeface
desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri 10 saniyeyi bulabilir. Bunun 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
ürününde HSV ve HSL işlevini deneysel olmayan API olarak sunar. Oklab renk alanı artık herkese açık API oldu. (I08fb6, b/180731008)Genel API'de olması amaçlanmayan ve hiçbir faydası olmayan
AndroidComposeTestRule.AndroidComposeStatement
desteği sonlandırıldı. (Ibc46b)Dahili olarak oluşturulmuş kt sınıfı yeniden adlandırması (Ia0b9e, b/174162090)
Kaldırılan
FontLoadingStrategy.values
(I42a9d, b/174162090)Global yazı tipi yükleyicinin adı
FontFamilyResolver
olarak değiştirildi. (I4f773, b/174162090)Masaüstü için yeni yazı tipi yükleme sistemini kullanın. (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
,State<Any>
değerini döndürür (I4406c, b/174162090)
Hata Düzeltmeleri
- Metin alanları artık odaklanıldığında ve klavye gösterildiğinde (yumuşak giriş modu
ADJUST_PAN
) klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120) - Masaüstünde,
FontFamily.Resolver
için yerel beste kullanılır - Masaüstü
FontLoader
desteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090) - Odak metin alanları arasında değiştirilirken yumuşak klavye giriş türü artık titreşmiyor. (I1bf50, b/187746439)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
yayınlandı. 1.2.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Yandaki dönen düğmesi olan Wear cihazlar için
Modifier.onRotaryScrollEvent()
veModifier.onPreRotaryScrollEvent()
eklendi (I18bf5, b/210748686) - Deneysel
View.createLifecycleAwareRecomposer
uzantısını (I0cde6) ekleyin
Harici Katkı
PointerEvent.scrollDelta.y
artık Android'de ters çevrilmiş durumda (fare tekerleğini sağa doğru yatırırsak -1 yerine 1 değerini döndürüyor) (Ia9811)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
yayınlandı. Sürüm 1.2.0-alpha01 bu kaydetmeleri içerir.
API Değişiklikleri
FontFamily.canLoadSynchronously
kullanımdan kaldırıldı. Bu özelliğin anlamsal bir anlamı yoktur. (Ica5ef)- Düzen İnceleyici'de değişken kimlikler oluşturmak için
CompositionData
öğesine kimlik alanı eklendi. (Ic116e) - Wear OS cihaz kimlikleri, Cihaz önizleme listesine eklendi (I93232)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
bağlı.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.ui:ui-*:1.1.1
yayınlandı. Sürüm 1.1.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
içinNullPointerException
düzeltme (aosp/1947059, b/206677462)- Android'de panodan okuma yaparken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (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 uygun olacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olacak şekilde ayarlasanız bile düğmenin dokunma hedefi en az 48x48 dp boyutuna genişler. Bu, Oluştur Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ile Oluştur'u birlikte kullandığınızda tutarlı davranış sağlar. Bu değişiklik, Materyal Oluşturma bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda, dokunma hedefi erişilebilirliğiyle ilgili minimum gereksinimlerin karşılanmasını da sağlar.
- Navigasyon Rayı için Kararlı Destek
- Daha önce deneysel olan bir dizi API'yi kararlı sürüme geçirir
- Kotlin'in daha yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.ui:ui-*:1.1.0-rc03
yayınlandı. Sürüm 1.1.0-rc03 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03'ü destekleyecek şekilde güncellendi
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.ui:ui-*:1.1.0-rc01
yayınlandı. Sürüm 1.1.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Erişilebilirlik kaydırma işlemlerinin eksik olmasına yol açan bir hata düzeltildi (I7cbfb)
SemanticsNodeInteraction.captureToImage()
artı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)
- Eşitlik için karşılaştırılacak anahtarları kabul eden ve optimizasyonların atlanmasına uygun olan deneysel
Modifier.composed
aşırı yüklemeleri ekleyin. (Ice799, b/205851704) ComposeNotIdleException
artık doğrudanThrowable
yerineException
ile destekleniyor. Bu,Exception
yakalayan yakalama ifadelerinin daha önce yakalayamadığıComposeNotIdleException
'ları artık yakalayabileceği anlamına gelir. (I9c217)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerleri düzeltildi. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta03
yayınlandı. Sürüm 1.1.0-beta03 bu kaydetmeleri içerir.
API Değişiklikleri
- Yerleşim değişikliğinin gözlemlenmesine izin vermek için yeni değiştirici Değiştirici.onPlaced eklendi. Bu nedenle, gözlemlenen yerleşim değişikliğine dayalı olarak alt değiştiricinin ofsetinde ek değişiklikler yapılabilir. (I558fd)
InjectionScope.flush()
veInjectionScope.dispose()
kaldırıldı. Tüm etkinlikler temizlenir ve kapsam kaldırılır. Artık önceki gibi, "make*Input()" adlı yöntemin sonunda işlem tamamlanmış olur. (I2bed8)MultiModalInjectionScope.Touch
veMultiModalInjectionScope.Mouse
kaldırıldı. Çok modlu hareketler için dokunma ve fare etkinlikleri eklemek amacıyla artıkMultiModalInjectionScope.touch()
veMultiModalInjectionScope.mouse()
kullanabilirsiniz. Her ikisi de bu modalitenin alıcı kapsamına sahip lambda'ları kabul eder. (Idde18)
Hata Düzeltmeleri
TouchInjectionScope.swipeWithVelocity
içindekidurationMillis
için varsayılan değer, artık kaydırmanın uygun olacağı şekilde hesaplanıyor. (I19deb)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.ui:ui-*:1.1.0-beta02
yayınlandı. Sürüm 1.1.0-beta02 bu kaydetmeleri içerir.
API Değişiklikleri
- Ebeveynlerin ekranı kaydırarak öğeyi görünüme getirmeleri için istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459)
- Araçları desteklemek için yeni animasyon API'leri. Özellikle, araçların geçişlerdeki animasyonları ve yapılandırmalarını incelemesine olanak tanırlar. (I4116e)
Harici Katkı
- Değiştirici.pointerHoverIcon eklendi (I95f01)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-beta01
yayınlandı. Sürüm 1.1.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
- Ebeveynlere, ekranı kaydırarak öğeyi ekrana getirebilmeleri için istek göndermenize olanak tanıyan deneysel
BringIntoView
API'si eklendi (Ib918d, b/195353459) - Araçları desteklemek için yeni animasyon API'leri. Özellikle, araçların geçişlerdeki animasyonları ve yapılandırmalarını incelemesine olanak tanırlar. (I4116e)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
yayınlandı. 1.1.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
ExperimentalComposeUiApi
öğesiniViewRootForInspector
veLayoutInfo.ownerViewId
(I5c2e3) öğelerinden kaldırın- Düzen için, verimlilik artırılarak çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
- Modüller arası (I1aa0b) olarak çağrılması gereken
InternalCompilerApi
, Composer yöntemlerinden kaldırıldı SemanticsNodeInteraction.performSemanticsAction
, artık işlevin çağrıldığıSemanticsNodeInteraction
değerini döndürüyor. (I9e5db)- TouchMode/NonTouchMode'un algılanması için LocalInputModeManager CompositionLocal öğesi eklendi. (I6a83c, b/175899786)
- Tüketicilerin uzun basma zaman aşımı gibi işlemlerde doğru değeri alabilmesi için
LayoutInfo
paketineviewConfiguration: ViewConfiguration
eklendi. (I76ca6)- Testlerin uzun basma zaman aşımı veya dokunma geçişi gibi unsurlara göre giriş yerleştirmeyi ayarlamasına izin vermek için
InjectionScope
ürününeviewConfiguration: ViewConfiguration
eklendi. - Hem dokunma hem de fare girişi için uzun basma ve iki kez dokunma işleminin varsayılan süresi
InjectionScope.viewConfiguration
içindeki değerlere dayalı olacak şekilde değiştirildi.
- Testlerin uzun basma zaman aşımı veya dokunma geçişi gibi unsurlara göre giriş yerleştirmeyi ayarlamasına izin vermek için
- İçerisinde TextField ve Dropdown Menu bulunan (If60b2) ExposedDropdown MenuBox temel alınarak ExposedDropdown Menu'nün uygulanması
- offOnOutClick, PopupProperties'e eklendi ve desteği sonlandırılan CloseOnClickOutside'ın yerini aldı. Yeni mülk, tıklama konumunu ve bağlantı sınırlarını alarak oncloseRequest'in çağrılıp çağrılamayacağı konusunda daha hassas kontrol sağlar. Örneğin bu, sabite yapılan dokunuşlar için çapanın kapatılmasını önlemek için yararlı olabilir.
- UpdateAndroidWindowManagerFlags, PopupProperties'e eklendi ve pop-up tarafından Android WindowManager'a geçirilen işaretler üzerinde alt düzey kontrol sağladı. Lambda parametresi, WindowManager flag'leriyle sonuçlanan PopupProperties değerlerinden hesaplanan işaretler olacaktır: Ör. odaklanılabilir. Lambda'nın sonucu, Android WindowManager'a aktarılacak son flag'ler olur. Varsayılan olarak, updateAndroidWindowManagerFlags parametrelerden hesaplanan işaretleri değiştirmez. Bu API, yalnızca pop-up'ın çok belirli davranış gereksinimlerinin olduğu durumlarda dikkatli kullanılmalıdır. (I6e9f9)
Recomposer.state
desteği sonlandırıldı ve türünü StateFlow (Ic2ab3, b/197773820) olarak değiştirmek içinRecomposer.currentState
ile değiştirildiflush()
vedispose()
,InjectionScope
koleksiyonuna eklendi. Bunları, sıraya alınmış tüm etkinlikleri hemen temizlemek ve kapsamı silmek istediğinizde kullanabilirsiniz. (Ifb73a)- Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştiriciyle eşleşen içeriğe kaydıran
performScrollToNode(matcher: SemanticsMatcher)
eklendi. (Ic1cb8) InjectionScope
artıkDensity
özelliğini uygulayarakperformTouchInput
ve arkadaşlarınızda px ile dp arasında kolayca dönüştürme yapmanızı sağlar. (I8fe1f)
Hata Düzeltmeleri
- AndroidView artık ViewTreeLifecycleOwner ve ViewTreeSavedStateRegistryOwner makalelerindeki LocalLifecycleSahip ve LocalSavedStateRegistryOwner öğelerini görünümüne uygular. (I38f96, b/179708470)
- WearOS Hızlı Kaydırma Kutusu'nun bazen kaydırma işlemlerini yapmaması sorununu düzeltin. (I9387e)
- Yerleştirilen giriş etkinlikleri arasındaki varsayılan süre 10 ms. olarak 16 ms. olarak değiştirildi. Bu, belirli bir kaydırma gibi giriş hareketlerini gerçekleştiren testlerin sonucunu değiştirebilir. (I829fd)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha05
yayınlandı. 1.1.0-alpha05 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Moderler arası iletişim desteği eklendi (Id5467, b/198826874)
- PointerEventChange'e deneysel geçmiş işaretçiler eklendi. (Ic1fd8, b/197553056, b/199921305)
density: Density
velayoutDirection: LayoutDirection
,LayoutInfo
koleksiyonuna eklendi. Bu,LayoutInfo
tüketicilerininLayoutInfo
içinde gösterilen boyutları ve konumu doğru bir şekilde yorumlamasına olanak tanır. (I002f1)- Fare etkinlikleri eklemek için deneysel destek eklendi. Fare etkinlikleri göndermeye başlamak için
performMouseInput
kullanın veyaperformMultiModalInput
ile çok modlu giriş hareketi yaparkenMultiModalInjectionScope
öğesininMouse
özelliği üzerinden fare etkinlikleri gönderin. Kullanılabilir API ile ilgili belgeler içinMouseInjectionScope
adresini ziyaret edin. (Iaa4a8, b/190493367)
Hata Düzeltmeleri
- Kaydırmayla ilgili kaydırılabilir öğeler (hem geç hem de geç olmayan) için sabit erişilebilirlik desteği (I6cdb0)
TouchInjectionScope.swipeWithVelocity
iyileştirildi. Artık daha çeşitli giriş değişkenlerini kabul ediyor ve kaydırma yapılamıyorsa girişte değişiklik yapılmasını öneriyor (I40fbe, b/182477143)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
yayınlandı. 1.1.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
PointerEvent
, fareyle üzerine gelme etkinliklerini destekleyen birPointerEventType
özelliğine sahip. (I091fa)- Çocukların, ebeveynin işaretçi giriş sınırlarının dışında işaretçi girişini kabul etmesine izin ver. Ebeveynler bu çağrılara PointerInputScope.alwaysInterceptChildEvents özelliği (I9eae3, b/192479655) ile müdahale edebilir.
performGesture
veGestureScope
kullanımdan kaldırıldı. Bunların yeriniperformTouchInput
veTouchInjectionScope
aldı. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin, minimum erişilebilirlik değerlerini karşılayabilmesi için
SemanticsNode
bölümüne minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214) - İncelenebilir (I927bc, b/191017532) uygulamasını yeniden yap
- İncelenebilir olan parametre adı, oluşturulanlarla eşleşecek şekilde değiştirildi (I3a482, b/191017532)
performTouchInput
veTouchInjectionScope
yerineperformTouchInput
veTouchInjectionScope
kullanılmaya başlanarak diğer yöntemlere (ör. fare) de zemin hazırlandı.TouchInjectionScope
,updatePointerTo
veupdatePointerBy
olarak yeniden adlandırılmışmovePointerTo
vemovePointerBy
hariç olmak üzereGestureScope
ile aynı yöntemlere sahiptir. Diğer tüm yöntemler aynıdır.TouchInjectionScope
davranışı, iki küçük ayrıntı dışındaGestureScope
ile neredeyse aynıdır:- İşaretçiler bir taşıma etkinliği gönderilmeden taşınmış durumdayken (diğer bir deyişle,
updatePointerTo()
kullanılmış ancakmove()
kullanılmamış ve ardındandown()
çağrıldığında) bir aşağı etkinliği gönderirken, önceki uygulama etkinlik zamanını ilerletir ve aşağı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama, taşıma etkinliğini göndermeye devam eder ancak bu senaryoda etkinlik süresini uzatmaz. - Taşıma etkinliği gönderilmeden işaretçiler taşınırken (yukarıdaki gibi) bir yukarı etkinlik gönderildiğinde (yukarıdakine benzer şekilde), önceki uygulama etkinlik zamanını ilerletir ve yukarı etkinliği göndermeden önce bir taşıma etkinliği gönderir. Yeni uygulama şunları da yapmaz: İşaretçilerin yeni konumları yalnızca yukarı etkinliği aracılığıyla yansıtılır.
Son olarak
TouchInjectionScope
, belirtilen işaretçinin geçerli konumunu almak için yeni bircurrentPosition(pointerId: Int)
yöntemini sunar. (If1191, b/190493367)- İşaretçiler bir taşıma etkinliği gönderilmeden taşınmış durumdayken (diğer bir deyişle,
Hata Düzeltmeleri
- Minimum dokunma hedefi amacıyla klibin dokunma hedefi sınırlarını klip bölgesinin dışına çıkarmasına izin verin. (I43e10, b/171509422)
- Android 12 cihazlara fazladan kaydırma desteği eklendi. (Iccf3c, b/171682480)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.ui:ui-*:1.1.0-alpha03
yayınlandı. 1.1.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Oluşturma
1.1.0-alpha03
, 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) - Bulanıklaştırma kullanım alanlarını basitleştirmek için daha yaygın olarak kullanılan klip işareti ve TileMode kombinasyonlarına
BlurredEdgeTreatment
API eklendi. Çoğu kullanım alanı, bulanıklaştırılmış içeriğin orijinal içerik sınırlarının dışında oluşturulmasına izin vermeyi ve şeffaf siyah ile bu sınırların dışındaki bölgeleri bulanıklaştırmayı ya da içerik sınırlarını aşan bulanıklaştırma çekirdekleri için en yakın kenardan örnek alarak içeriği içerik sınırlarına kırpmayı içerir. (I6b4b7, b/166927547) - Oluşturma masaüstünde RenderEffect desteği eklendi. Kompozisyon hiyerarşisinin bir bölümüne bulanıklaştırma görsel efektleri eklemenin basit bir yolu olarak OffsetEffect'in yanı sıra bulanıklaştırma değiştiricisi de kullanıma sunuldu. (I0f6aa, b/166927547)
- Katmanın içeriğini değiştirmek için isteğe bağlı olarak
Modifier.graphicsLayer
ile yapılandırılabilen RenderEffect API kullanıma sunuldu. Bu özellik, bir beste hiyerarşisindeki bir composable'ın ve alt composable'ların içeriklerini bulanıklaştırmak için kullanılabilir. (I47c4d, b/166927547) - AwaitPointerEventScope artık withYasaklama() ve withSFTPOrNull() işlevini içeriyor (I507f0, b/179239764, b/182397793)
- Erişilebilirliği sağlamak amacıyla, anlambilim ve işaretçi girişinde kullanılması için ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
- Bulanıklaştırma tabanlı RenderEffects için uç davranışını tanımlamada yararlı olan TileMode.Decal desteği ekleyin. (I7e8ed, b/166927547)
performScrollToIndex
,performScrollToKey
,hasScrollToIndexAction
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
- Şekil parametresinin null olup olmadığını açıkça kontrol etmek amacıyla bulanıklaştırılan isBounded yöntemi bulanıklaştırılmıştır. (I85d68)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha02
yayınlandı. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- PointerEvent'te artık fare düğmesi durumunu ve klavye değiştirici durumunu okuma destekleniyor. (I6310c, b/180075467)
- Eklenen hareketler artık zaman için doğru kaynak olarak MainTestClock'un saatini kullanıyor.
performGesture
hücresindeki yerleştirilen etkinliklerin mevcut saati, MainTestClock'un geçerli saatine göre başlatılır. (Ifb364, b/192064452) DpRect(DpOffset, DpSize)
oluşturucu eklendi (I2cf16, b/194219828)- Eklenen DpSize sınıfı (I7abb1, b/194219828)
Hata Düzeltmeleri
- VectorDrawables'ta ColorStateLists kök renk tonu özellikleri olarak desteklemek için Vector grafik xml ayrıştırması güncellendi. (I86915, b/195668138)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.ui:ui-*:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kaydetmeleri içerir.
API Değişiklikleri
RelocationRequester.bringIntoView
, artık composable'ın bir bölümünü görünüme getirmemizi sağlayan dikdörtgenleri parametre olarak kabul ediyor (Ice2c5, b/194330245)AnimatedImageVector
ve ilgili API'ler artık yeniandroidx.compose.animation:animation-graphics
modülünde. (I60873)- Yer değiştirme isteklerini işlemek için deneysel değiştirici eklendi. (I65a97, b/178211874)
ColorPainter'a benzer şekilde, bir Boyacı'da rastgele bir Fırça çizimini desteklemek için BrushPainter API'yi kullanıma sunduk
Brush API, BrushPainter içinde sorgulanan dahili bir boyut parametresine sahip olacak şekilde güncellendi (Ia2752, b/189466433)
İsteğe bağlıFilter Quality parametresini kullanmak için kaynak ve hedef dikdörtgenleri tüketen DrawScope#drawImage yöntemi güncellendi. Bu, piksel tabanlı resimler için ölçeklendirildiğinde pikselleştirilmek üzere tasarlanmış piksel sanatı için faydalıdır. Biteş
Bir hareketteki etkinliklerin zamanlaması üzerinde daha fazla kontrol sağlamak için
GestureScope.advanceEventTime
yöntemi eklendi (Ibf3e2)
Hata Düzeltmeleri
- Çizim değiştiricileri zincirlemesini daha iyi desteklemek için Değiştirici.paint uygulamasının çizimler
için çağrı yaptığından emin olun.
Daha önce Modifier.paint'in Değiştiriciler zincirinde bir yaprak düğümü olması bekleniyordu. Ancak bu şekilde, bir composable container (ör. kutu) üzerinde yapılandırılması ya da üstüne
Modifier.paint().border()
gibi ilave süsleme eklenmesi engelleniyordu. Belirli bir boyacının içeriğini çizdikten sonra Modifier.paint çağrısı yaptıktan sonradrawContent'i çağırırsanız, değiştirici kalıbıyla davranış açısından daha iyi bir davranış tutarlılığı sağlanır. (Ibb2a7, b/178201337, b/186213275) - İletişim kutuları artık platform boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
politikasını false (yanlış) olarak ayarlayın. (Iffaed, b/192682388) InfiniteAnimationPolicy
, :compose:ui (I5eb09, b/160602714) klasörüne taşındı- Tembel listeler ve normal kaydırma bileşenleri için anlamsal işlemler aracılığıyla kaydırma işlemi artık animasyonlu (Id9066, b/190742024)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.ui:ui-*:1.0.5
yayınlandı. 1.0.5 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- TüretilmişStateOf örneklerindeki kilitlenme izleme sorunu düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.ui:ui-*:1.0.4
yayınlandı. 1.0.4 sürümü bu kaydetmeleri içerir.
Bağımlılık Güncellemeleri
- Kotlin'e (
1.5.31
) bağlı olarak güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.ui:ui-*:1.0.3
yayınlandı. 1.0.3 sürümü bu kaydetmeleri içerir.
Bağımlılık Güncellemeleri
- Kotlin'e (
1.5.30
) bağlı olarak güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.ui:ui-*:1.0.2
yayınlandı. 1.0.2 sürümü bu kaydetmeleri içerir.
Compose 1.0.2
sürümünü desteklemek üzere güncellendi. Oluşturulan 1.0.2
, Kotlin 1.5.21
ile hâlâ uyumlu.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.ui:ui-*:1.0.1
yayınlandı. Sürüm 1.0.1 bu kaydetmeleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
kaynağına bağlı olarak güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.ui:ui-*:1.0.0
yayınlandı. 1.0.0 sürümü bu kaydetmeleri içerir.
1.0.0'ın temel özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Sürüm bloguna göz atın!
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız şu kilitlenmeyle karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Sorunu düzeltmek için
build.gradle
dosyanızda minSdkVersion değerini geçici olarak 24'ün üzerine çıkarın. Bu sorun, Android Studio Bumblebee ve AGP'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 erişilebilirlik için contentDescription parametresini desteklemektedir. (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 renk temsilleri için deneysel destek eklendi. (Id7cf8, b/180731008)
Davranış Değişiklikleri
- Compose
@Preview
artık mevcut sahibe bağlırememberLauncherForActivityResult()
gibi API'ler kullanan Bestelenebilir Öğeleri önizlemenize olanak tanıyan birLocalActivityResultRegistryOwner
sağlıyor. (Ib13d1, b/185693006) - Compose
@Preview
artık mevcut sahibe bağlıBackHandler
gibi API'ler kullanan Bestelenebilir Öğeleri önizlemenize olanak tanıyan birLocalOnBackPressedDispatcherOwner
sağlıyor. (Ia1c05, b/185693006)
Hata Düzeltmeleri
InfiniteAnimationPolicy
,androidx.compose.ui:ui
adlı kuruluş birimine taşındı (I5eb09, b/160602714)- AnimasyonluImageVector, modül yapısını değiştirmek için geçici olarak kaldırıldı. (I41906, b/160602714)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta09
yayınlandı. Sürüm 1.0.0-beta09 bu kaydetmeleri içerir.
API Değişiklikleri
- Sıralama Rolünü ve LiveRegionMode'u özel oluşturucuyla (Id1890) satır içi sınıflara değiştirme
- Klavye Büyük Harf Kullanımı satır içi sınıfa dönüştürülür. (Id5a1c)
- HapticFeedbackType'ı satır içi sınıf olarak değiştirin. (I255ec)
- Modifier.pointerInteropFilter: @DeneyselComposeUiApi. (Iede6c)
- Textalign, FontSynthesis ve TextDirection artık satır içi sınıflardır. (I212fe)
- TextOverflow, satır içi sınıf olarak değiştirildi. (I433af)
- FontStyle artık satır içi bir sınıf. (I9e48b)
Hata Düzeltmeleri
- Anahtar sabit değerleri şimdilik @DeneyselComposeUiApi'dir. Kodu kullanmak, sabitlemeden önce özel sabit değerleri bildirebilir. (Ia5d48)
- Compose testleri artık Robolectric'te çalıştırılabilir. Şu ana kadar aşağıdaki sınırlamalar tespit edilmiştir:
- Yerel bit eşlem olmadığından
ImageBitmap()
, bir NullPointerException oluşturur. - Çizim yok. Bu nedenle
captureToImage()
, süresiz olarak bir sonraki çekiliş pasını (yani, kilitlenmeyi) bekleyecek. - Yazı tipi yüklenmediğinden metinler yanlış ölçülecek. Tüm karakterlerin yüksekliği yaklaşık 20 piksel, genişliği ise 1 piksel sabittir.
ComposeTestRule.waitUntil {}
, ana iş parçacığını beklemedeyken çalıştırmadığı içinComposeTestRule.mainClock.advanceTimeUntil {}
ile tamamen aynı işleve sahiptir. Gelecekte daha fazla kısıtlamanın tanımlanması 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 "kullanışlı" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.S
işaretine sahip bir yöntem, bu yöntemin başlangıçta çağrılan bir yöntem olduğunu ve derleme ve başlatma sırasında yöntemi yorumlama maliyetinden kaçınmak için önceden derlenmesi gerektiğini belirtir.P
işaretine sahip bir yöntem, bunun başlatmadan sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetinden kaçınmak için yığına önceden ayrılması gerektiğini belirtir.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda, bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özel kompakt bir ikili ART profili oluşturmak için kullanılır. Daha sonra ART, uygulamanın performansını iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla, özellikle ilk çalıştırmada uygulamanın performansını önceden derleyebilmek için bu profilden yararlanabilir. Bunun, hata ayıklaması yapılabilecek uygulamalar üzerinde herhangi bir etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.ui:ui-*:1.0.0-beta08
yayınlandı. Sürüm 1.0.0-beta08 bu kaydetmeleri içerir.
API Değişiklikleri
NestedScrollSource
sıralaması satır içi bir sınıfla değiştirildi. (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true)
,FocusManager.clearFocus(force = true)
(Ia0c41) olarak yeniden adlandırıldı- Yeni enum değerleri eklendiğinde ifadelerle ilgili olası sorunları önlemek için enum kullanımları satır içi sınıflarda yeniden düzenlendi. (I2b5eb)
@ExperimentalComposeUiApi
kullanıcısınıPopupProperties
sitesinden kaldır. (I01fa6)PointerType
, numaralandırmadan satır içi sınıf olarak değiştirildi (If5058)- ContentDescription ve Metin anlamları özellikleri artık tek değerler değil, listeler. Bu sayede, birleştirme yerine oldukları gibi birleştirilebilirler. Ayrıca bu değişikliklerden yararlanmaları için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırıldı 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 artık ExperimentalComposeApi yerine ExperimentalTextApi. (I0cd0a)- TextUnitType içeren TextUnit oluşturucusu, ExperimentalComposeApi yerine artık ExperimentalTextApi oldu.
Hata Düzeltmeleri
- Beta07'de kullanıma sunulan, LazyColumn/Satır öğelerinin kaydırmadan sonra kısmen gösterildiği hata düzeltildi (I8c9ac, b/188566058)
- Şimdi
detectDragGesures
,detectVerticalGestures
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
üzerindekiTextGeomerticTransform
veTextDecoration
belirtildiği şekilde uygulanır. (I61900, b/184760917)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.ui:ui-*:1.0.0-beta06
yayınlandı. Sürüm 1.0.0-beta06 bu kaydetmeleri içerir.
API Değişiklikleri
- Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
@ComposeCompilerApi
artık@RequiresOptIn
(Iab690) değil- Erişilebilirlik hizmetleri için koleksiyonu ve öğelerini işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
- Dizine eklenmiş öğeler içeren listeyi belirli bir dizine sahip öğeye kaydırmak için
SemanticsActions.ScrollToIndex
ve anahtarlı öğeler içeren listedeki bir öğenin dizinini almak içinSemanticsProperties.IndexForKey
eklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirtilen dizine kaydıran
SemanticsNodeInteraction.performScrollToIndex
ve listeyi belirtilen anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKey
eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirtilen dizine kaydıran
- ownerViewId'yi GraphiclayerInfo'ya eklendi (I19f62)
- Öğeler, File ve FileDescriptor (I5d382) öğelerinden yazı tipleri yüklemek için Font() aşırı yüklemeleri eklendi
- Geçersiz giriş içeren bir düğümün işaretlenmesine olanak tanıyan
error
Erişilebilirlik API'si eklendi (I12997, b/180584804, b/182142737) - Öğeler, Dosya ve Dosya Tanımlayıcısı'ndan (I43007) yazı tipleri
yüklemeye
Font()
aşırı yüklemesi eklendi - AnnotatedString, desteği şuraya kaydeder:
TextFieldValue.Saver
.AnnotatedString.Builder
(I8cbdc, b/178446304) içinaddTtsAnnotation
ve with Notlar yardımcı programı işlevleri eklendi - TextUnit oluşturucu işlevi eklendi
TextUnit(value: Float, type: TextUnitType)
(I7ecce, b/178446304)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta05
yayınlandı. Sürüm 1.0.0-beta05 bu kaydetmeleri içerir.
API Değişiklikleri
- Deneme amaçlı
FocusManager.moveFocus(In)
veFocusManager.moveFocus(Out)
eklendi (Ic5534, b/183746743) - Deneysel
performTextInputSelection
API'si eklendi (I2dcbb, b/178510628) InputEventCallback
arayüzü kullanımdan kaldırıldı. Bu arayüz herkese açık herhangi bir API'de kullanılamıyordu ve kodda bu kullanılmadı. (I34a02, b/184003208)TextLayoutResult/createTextLayoutResult
işlevi kullanımdan kaldırıldı. Test için eklenmiş, kullanılmayan herkese açık bir işlevdir. İşlev, Compose metin API'leri için kullanılabilecek herhangi bir şey yapmaz. Bu işlev artık kullanımdan kaldırıldı ve daha sonra kaldırılacak. (I80413)
Hata Düzeltmeleri
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
erişilebilirlik kaydırma işlemi düzeltildi. Kaydırılabilir öğenin sonuna kadar kaydırmak yerine, verilen yönde bir ekran kaydırılır. (Ieccb0)- ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumludur.
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.ui:ui-*:1.0.0-beta04
yayınlandı. Sürüm 1.0.0-beta04 bu kaydetmeleri içerir.
API Değişiklikleri
SoftwareKeyboardController
üzerindekihideSoftwareKeyboard
veshowSoftwareKeyboard
öğelerini sırasıylahide()
veshow()
olarak yeniden adlandırın.- LocalYazılımKlavyeController için CompositionLocal arayüzünün tam sürümünü sağlayın ve bu arayüzün ayarlanmasını sağlayın (özellikle testlerde yararlıdır) (I579a6)
- LiveRegion Accessibility API eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri, kullanıcıyı değişiklikleri hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946)
- TextOverflow.visible kullanıma sunuldu. (Ic8f89)
Hata Düzeltmeleri
- Hızlı kaydırmadan sonra kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin yanlış yerleştirilmesi sorunu düzeltildi (Ie4d13, b/183877420) AndroidViewBinding
artık oluşturma hiyerarşisindenAndroidViewBinding
kaldırıldığındaFragmentContainerView
ile şişirilmiş parçaları düzgün şekilde kaldırıyor. (Ib0248, b/179915946)AndroidViewBinding
,ComposeView
öğenizFragment
içinde olduğundaFragmentContainerView
ile şişirilen parçaları artık doğru şekilde iç içe yerleştirir ve bu parçaların durumunu kaydedip geri yüklemeyle ilgili sorunları düzeltir. (I70eb0, b/179915946)- Compose ViewBinding, artık Parça
1.3.2
'a bağlı ve artık yapılandırma değişikliklerinden sonra parçalarıFragmentContainerView
aracılığıyla şişirilmiş olarak gösteriyor. (I0743d, b/179915946)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta03
yayınlandı. Sürüm 1.0.0-beta03 bu kaydetmeleri içerir.
API Değişiklikleri
- ComposeView'un ViewTree bağımlılıkları için ertelenen kontrol (I8dbbf, b/182466548)
GestureScope
içindekiswipeUp
/swipeDown
/swipeLeft
/swipeRight
işlevlerine isteğe bağlıstartX
/endX
vestartY
/endY
parametreleri eklendi. (I49e2d, b/182063305)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.ui:ui-*:1.0.0-beta02
yayınlandı. Sürüm 1.0.0-beta02 bu kaydetmeleri içerir.
API Değişiklikleri
- TextField'deki önceki SoftwareKlavyeController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardController
bileşimi yerel API'si eklendi. (I5951e, b/168778053) - TextField'deki önceki SoftwareKlavyeController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardController
bileşimi yerel API'si eklendi. (I84472, b/168778053) - Aşağıdaki
SemanticsMatcher
kaldırıldı:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(If16bd)
- Aşağıdaki
SemanticsMatchers
, @DeneyselTestApi olarak işaretlendi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(Ia600c)
- Aşağıdaki
SemanticsMatcher
öğeleri eklendi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(I2f502)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılın (I6aa29, b/174531520)
androidx.compose.ui:ui
artık AppCompat veya Fragment'a bağlı değil. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 ve / veya Fragment 1.3 veya sonraki sürümleri kullandığınızdan emin olun. Bu sürümler, ComposeView için gerekli yaşam döngüsünü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak amacıyla gereklidir. (I1d6fa, b/161814404)- Gezinme oluşturma hedefinin içinde kullanıldığında bozuk
rememberSaveable { mutableStateOf(0) }
sorunu düzeltildi. (I1312b, b/180042685, b/180701630) - TextField'deki önceki SoftwareKlavyeController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardController
bileşimi yerel API'si eklendi. (I658b6, b/168778053) ComposeRootRegistry
öğesinintearDownRegistry()
(Iddce1) içindeki nadir görülen NoSuchElementException sorunu düzeltildi
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-beta01
yayınlandı. Sürüm 1.0.0-beta01 bu kaydetmeleri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
detectDragGestures
numaralı telefona başlangıçta geri çağırma özelliği eklendi (I67269, b/179995594)- Yerleşik öğelere göre boyutlandırma değiştiricileri artık deneysel değildir. (I15744)
- MeasureBlocks, MeasurePolicy olarak yeniden adlandırılarak eğlenceli bir arayüze dönüştü. Düzen API'leri, MeasurePolicy kullanılacak şekilde güncellendi / basitleştirilmiş. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, Etkileşim etkinliklerinin yayınlanmasından / toplamasından sorumludur.
interactionState = remember { InteractionState() }
öğ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)
- CompositionLocals'a (I53520) AccessibilityMananger arayüzünü ve LocalAccessibilityMananger'ı ekleme
- Kullanımdan kaldırılan LayoutKoordinatlar yöntemleri kaldırıldı, locationInParent ve boundsInParent özelliği yerine işlevi kullanın (I580ed, b/169874631, b/175142755)
- Tür takma adları, temel türlerle değiştirilir:
ColorStop
adlı bankanın yeni adıPair<Float, Color>
SpanStyleRange
artık "AnnotatedString.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
vestaticCompositionLocalOf
içindefaultFactory
artık isteğe bağlı yerine zorunludur.Bu değişiklikler, varsayılan fabrikanın sağlanmadığı, boş değer atanamayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, null olmayan bir tür için boş bir referans sağlıyordu.
Boş değer atanabilen türler için varsayılan fabrika olarak
{ null }
sağlamayı deneyin.Makul bir varsayılan sağlanmadığı sürece, null olmayan türlere sahip yerellerin kullanılmasını önerilmez. Makul bir varsayılan yoksa
defaultFactory
lambdası bir istisna bildirmelidir. Ancak bir istisna atmak, yerel tüketicilerin tür sistemi tarafından zorunlu kılınmayan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Kullanıcı arayüzü modüllerinden desteği sonlandırılmış yöntemler kaldırıldı (I646f6)
Boyut değiştiricileri yeniden adlandırıldı. Değiştirici.genişlik/yükseklik/boyut, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Değiştirici.tercihWidth/PreferenceHeight/PreferenceSize, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)
Modifier.tapGestureFilter
kaldırıldı. Bunun 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 sırasıyla ImageBitmap ve ImageVector tamamlayıcılarında uzantı işlevleridir.
load{Image,Vector,Font}Resource
işlev silindi. (I89130)AnimationClockObservable ve alt sınıflar kaldırıldı. Animasyonlu Kayan öğe kaldırıldı. (Icde52, b/177457083)
Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı
- Beste oluşturucu artık anahtar parametreleri kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst seviye bir işlev yerine derlenebilir üst düzey bir mülke dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
- ComposableLambdaN, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
- SnapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil
- @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.
- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
- Composer.collectKeySourceInfo bilgileri kaldırıldı. Artık gerekli değildir.
- isJoinedKey,joinKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar artık gerekli değildir.
- Çeşitli üst düzey API'ler taşındı ve farklı dosyalara yeniden düzenlendi. Bu, Kotlin'in dosya sınıfı semantiği nedeniyle ikili program uyumluluğunu bozar ancak kaynak uyumluluğunu bozmaz. Bu nedenle çoğu kullanıcı için sorun olmayacaktır.
- (I99b7d, b/177245490)
ComponentActivity.setContent()
, generate:ui öğesinden kaldırıldı.androidx.activity:activity-compose:1.3.0-alpha01
tarafından sağlanan adresi kullanın.viewModel()
veLocalViewModelStoreOwner
, generate:ui'den kaldırıldı.androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
(I6f36b) kapsamındakileri kullanınDeğiştirici.scrollable yeniden düzenlendi. Artık ScrollableController sınıfının yerine Kaydırılabilir arayüz kullanılıyor (I4f5a5, b/174485541, b/175294473)
PointerInputModifier'ın Customevens desteği kaldırıldı (I02707, b/175294473)
SnapshotStateObserver artık Deneysel değil (Id2e6a)
Desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932)
long PressHareketFilter ve doubleClickAdvertiserFilter kaldırıldı.
String.format API'nin dahili olarak String.format'tan yararlanmaması için çeşitli toString yöntemlerindeki kullanımlar yeniden düzenlendi. (Id1290)
Kaldırılan dp onayları (I798d2)
androidx.compose.runtime:runtime-dispatch (I55feb) kaldırıldı
Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
Kaldırılan
runBlockingWithManualClock
(I15cdc, b/179664814)Modifier.vertical Scroll()/Yatay Kaydırma() işlevinde kaydırma konumu artık Ints ile temsil ediliyor (I81298)
FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)
Tüm ImeAction geri çağırmaları için aynı işlemi ayarlamaya yardımcı olan bir yardımcı işlev eklendi (I63447, b/179226323)
Tüm metin alanlarından yazılım klavyesi geri çağırması kaldırıldı ve kısa süre içinde yeni bir API ile değiştirilecek. (Iae869, b/168778053)
FontSpan ve FontWeigthStyleSpan artık kullanılmıyor ve kaldırılıyor. (Ie5b56, b/177423444)
Aşağıdaki Material API değişiklikleri yapıldı:
- Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
- BackdropScaffold'deki parametreler, gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesi için API yönergelerine uygun olacak şekilde yeniden sıralandı.
- BottomGezinmeItem kutusundaki
icon
parametresi,selected
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. AnimasyonluResim Vektörü olarak
<animated-vector>
XML yüklemek ve bunu PainterFor (I8ea91) ile canlandırmak için animatedVectorResource öğesini kullanın. - TextField'deki önceki SoftwareKlavyeController arayüzünün yerini alacak yeni LocalYazılımKlavyeController bileşimi yerel API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.ui:ui-*:1.0.0-alpha12
yayınlandı. 1.0.0-alpha12 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- UiApplier'dan ViewGroups desteği kaldırıldı. Desteği sonlandırılmış emitView composable'ları kaldırıldı. (Ifb214)
- Modifier.pointerInput, artık işaretçi girişi algılama eş anlamlısının yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek için hatırlama tuşlarının kullanılmasını gerektiriyor. (I849cd)
- CompositionReference, CompositionContext (I53fcb) olarak yeniden adlandırıldı
- Sınırlar, DpRect (I4b32a) olarak yeniden adlandırıldı
- Güncelleme testi: hasText(), metin alanında (Iab803) hem giriş hem de etiket/hint/yer tutucu metinleri kontrol eder.
- viewModel() composable ve LocalViewModelStoreOwner, androidx.lifecycle.viewmodel.compose konumuna taşındı. Şimdi, bu etiketi kullanmak için ayrı bir bağımlılık (androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01) eklemeniz gerekir. (I7a374)
- AccessibilityAction'da null işleme izin ver, AccessibilityAction ve CustomAccessibilityAction'da işlem etiketini CharSequence'dan String'e (I0dc82) değiştirin.
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek amacıyla ImagePainter, paralel VectorPainter olarak BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Artık bağımsız değişken olarak alt dize bulunan daha iyi alt dize test API'leri (Icbe78)
- Lambda özel odaklama siparişi belirtmeden FocusRequester'ı kabul eden
Modifier.focusOrder()
eklendi. Bu, bir composable için özel odak sırası (I4f52a, b/179180978) değil, yalnızca referans belirtmemiz gerektiğinde faydalıdır - ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
- Yıkım ve Copy() yöntemleri, nadiren kullanıldıkları bazı sınıflardan kaldırılmıştır. (I26702, b/178659281)
- Pop-up, platforma özel olacak şekilde taşındı. AndroidPopupProperties, PopupProperties olarak yeniden adlandırıldı ve
isFocusable
,PopupProperties
(Ieeea5) içindeki 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 desteği kullanımdan kaldırılır. Bunun yerine PainterResource öğesini kullanın. (I6b809)
- Performans nedeniyle, ScrollAxisRange semantiği artık doğrudan Kayma değerleri yerine Kayan Durumlar döndüren lambdalar almaktadır. (If4a35, b/178657186)
- Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantiğini ve anlamı kontrol etmek için ilgili test yöntemlerini ekledi (I8e07a)
- Sahip Katmanı/SahipScope/OwnerSnapshotObserver yapısı dahili (I4ffaf, b/175103944)
- toIntPx(), roundToPx() olarak yeniden adlandırıldı. (I9b7e4, b/173502290)
- IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
- Snapshot API, API yönergeleriyle daha tutarlı olacak ve dahili uygulama sınıflarını herkese açık API'den gizleyecek şekilde güncellendi. (Id9e32)
- Genişletme ve daraltma anlamsal işlemleri eklendi. ModalBottomSheetState'e (Ib5064) "expand ve "throughexpand" özelliği eklendi
- Değiştirici.dragmotionFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, bir eksendeki sürüklemeler için Değiştirici.draggable'ı kullanın (I0ba93, b/175294473) - Ambients, Ambient -> CompositionLocal adıyla eşleşecek şekilde yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılıyorken CompositionLocals artık LocalFoo olarak adlandırılıyor. (I2d55d)
- Kullanımdan kaldırılan BaseTextField alanı artık kaldırılmıştır. Bunun yerine BasicTextField alanını kullanın. (I71368)
- Seçim, temele taşındı. (I7892b)
- Daha önce
state { 0 }
composable'ı kaldırı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 deneysel değildir (I6a45f)- Recomposer'lar artık kapatılabilir. Kapalı yeniden derlemeciler, beste alt eş yordamları tamamlanana kadar yeniden düzenleme işlemine devam eder. Recomposer.shutDown, kapatmayla kontrast olarak iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
- UiSavedStateRegistry, SaveableStateRegistry, AmbientUiSavedStateRegistry yeniden adlandırılarak AmbientSaveableStateRegistry olarak yeniden adlandırıldı ve her ikisi de androidx.compose.runtime.saveable paketine taşındı. (I30224)
- Yapı androidx:compose:runtime:runtime-saved-instance-state, androidx:compose:runtime:runtime-saveable (I6dcac) olarak yeniden adlandırıldı.
- Kullanıcı arayüzü paketindeki uzun süredir desteği olmayan birçok API silinir. (I2f2dc)
- create:runtime-dispatch yapısının desteği sonlandırıldı. MonotonicFrameClock, generate:runtime içinde, AndroidUiDispatcher ise oluşturucu:ui içinde bulunabilir. (Ib5c36)
- Outline.* sınıfları artık veri sınıfı değil (I4879e, b/178001427)
view.captureToImage()
, herhangi bir değişim yapılmadan kaldırıldı. (I7fcd2)- Kaynak içeriğin rgb değerlerini değiştirmek için kullanılan ColorMatrix API kullanıma sunuldu. ColorFilter API bir arayüz olacak ve PathEffect'in uygulanmasına uygun olacak şekilde yeniden düzenlendi. (Ica1e8)
- Şekil'in createOutline öğesine layoutDirection parametresi ekleyin. Bu, düzen yönüne duyarlı şekiller oluşturulmasına olanak tanır. (I57c20, b/152756983)
- onImeActionPerformed desteği sonlandırıldı. Bunun yerine Klavye Eylemlerini kullanın (If0bbd, b/179071523)
- Sonsuz animasyonlara uygulanacak bir
InfiniteAnimationPolicy
eş anlamlı bağlam öğesi kullanıma sunuldu.ComposeTestRule
ile testlerin çalıştırıldığı durumlar dışında varsayılan olarak hiçbir politika yüklenmez. (I50ec4, b/151940543) - canDrag, Değiştirici.scrollable dosyasından kaldırıldı. (Id66e7, b/175294473)
- LayoutKoordinatlar, yeni birparentcoordinates özelliğine olanak tanımak için LayoutKoordinatlar.parentLayoutKoordinatları olarak yeniden adlandırıldı. Üst Koordinatlar özelliği artık üst değiştiricinin LayoutCoordintes özelliğini sunuyor. Böylece onSizeChanged() ve onGloballyPositioned() (Idfbfd, b/177926591) için daha kapsamlı kullanım alanları sunulur.
- TapHareketFilter, doubleTapHareketFilter, long PressHareketFilter ve pressIndicaitonmotionFilter kullanımdan kaldırılmıştır. Bunun yerine Değiştirici.clickable veya Modifier.pointerInput değişkeni kullanın. (I6baf9, b/175294473)
- SaveableStateRegistry'nin unregisterProvider öğesi kaldırıldı. Bunun yerine recordProvider() artık kaydı silmek için kullanabileceğiniz SaveableStateRegistry.Entry nesnesini döndürüyor (Ic4274, b/178583739)
- receiveSavedInstanceState(), offerSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
- CoreText ve CoreTextField, genel API'den kaldırıldı
- Kullanımdan kaldırılan SelectContainer aşırı yüklemesi kaldırıldı
- (I99c19)
- Doğrudan WindowManager'a eklenen/kaldırılan hiyerarşilerde Compose'un kullanıldığı testler artık daha kararlıdır. (Ie81ed, b/175765614)
- Recomposer.current() kaldırıldı. [Abstract]ComposeView artık varsayılan olarak, pencere için ViewTreeLifecycleOwner tarafından desteklenen, geç oluşturulan, pencere kapsamlı recomposer'ları içerir. Ana makine yaşam döngüsü durdurulurken yeniden beste vewithFrameNanos tabanlı animasyon çizgileri duraklatılır. (I38e11)
- Recomposer.RunRecomposers, süreçte devam eden beste durumunu gözlemlemek için artık global bir StateFlow olan salt okunur RecomposerInfo sunuyor. Bu API'yi, desteği sonlandırılan Recomposer.current() için tercih edin. (If8ebe)
- Tasarruf, listSaver(), MapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate değerinden androidx.compose.runtime.saveable (I77fe6) değerine taşındı.
- EditCommands, AnnotatedString'i kabul eder. Ancak bu yalnızca bir API değişikliğidir ve birden fazla stilde metin düzenleme henüz kullanıma sunulmamıştır. (I4c3ea)
- Çalışma Süresi ve Süre kaldırıldı. (Ib9bf4, b/177420019)
- CompositionData.asTree() ve ilgili API'ler ayrı ui-tooling-data modülüne taşındı ve deneysel (Ic95b8) olarak işaretlendi
- RounderCornerShape, CutCornerShape ve CornerbasedShape parametreleri, şeklin rtl yönünde otomatik yansıtmasını desteklemek için soldan/sağdan başlangıç/bitiş olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için MutlakrounderCornerShape ve MutlakCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
Compose derleyici eklentisinin hedeflediği API, somut sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüz artık type parametresi kullanmıyor.
Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir ancak ikili programları bozan bir değişikliktir. (I3b922, b/169406779)
Yanlışlıkla herkese açık olan StringBuilder.deleteAt işlevini (Id6ed9) kaldırın
Hata Düzeltmeleri
- Başka bir bestenin alt öğeleri olan görünüm hiyerarşilerine yerleştirilen ComposeView'lar artık üst öğelerinin alt bestelerini barındırıyor (I92883)
- ImageBitmap nesneleri yüklenirken kaynak çekilebilir önbelleğini yeniden kullanmak amacıyla, oluşturma özelliğinin imageFromResource API'si güncellendi. (If3627, b/178751994)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.ui:ui-*:1.0.0-alpha11
yayınlandı. Sürüm 1.0.0-alpha11 bu kaydetmeleri içerir.
API Değişiklikleri
- WithConstraints BoxWithConstraints olarak yeniden düzenlendi ve Foundation.layout öğesine taşındı. (I9420b, b/173387208)
- Key.DPadUp desteği sonlandırıldı. Bunun yerine Key.DirectionUp'ı kullanın. (Iab335, b/177954892)
- Şu andan itibaren dahili olarak sahip arayüzü. (If8e35)
- Odağı programatik olarak taşımak için FocusManager.moveFocus() API'si eklendi. (I045cb, b/177681839)
- PopupPositionProvider'ı genel koordinatları değil, pencereye bağlı koordinatları kullanacak şekilde değiştirir. parentGlobalBounds'u anchorBounds olarak yeniden adlandırır ve windowGlobalBounds değerini windowSize: IntSize (I2994a) olarak değiştirir.
- Süre ve Çalışma Süresi, Uzun milisaniye olarak değiştirilir ve bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını ortadan kaldırır. (Ia33b2, b/175142755, b/177420019)
- AmbientSavedStateRegistryOwner, mevcut AmbientLifecycleOwner ve AmbientViewModelStoreOwner'a benzer şekilde eklendi (I9a3e8, b/176756365)
- Vektör grafiklerinin köküne uygulanan tonlamanın ayrıştırılmasını desteklemek üzere vektör grafikleri API'si güncellendi. (Id9d53, b/177210509)
- Cihazları ayırt etmek için PointerInputChange'e toolType eklendi (Iac787, b/175142755)
- AmbientWindowManager, AmbientWindowInfo (I2686a, b/177084714, b/177084983) olarak yeniden adlandırılır
- Küresel koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (Iee284)
- İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Değiştirici.toolingGraphicslayer eklendi. (I315df)
- FocusRequester.createRefs, değişebileceği için deneysel olarak işaretlendi. (I2d898, b/177000821)
- SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı.stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. Accessibility ScrollState, ScrollAxisRange olarak yeniden adlandırıldı. YatayErişilebilirlikKaydırmaState, yatay Kaydırma AxisRange olarak yeniden adlandırıldı. verticalAccessibility ScrollState, dikey Kaydırma AxisRange olarak yeniden adlandırıldı. (Id3148)
- PointerInputData kaldırıldı ve PointerInputData'nın tüm alanlarını içerecek şekilde PointerInputChange değiştirildi. PointerInputEvent ve PointerInputEventData, herkese açık herhangi bir API'de kullanılmadığı için dahili hale getirildi. (Ifff97, b/175142755)
- Güncellenen GraphicsKatmanScope, dp'nin ham piksellere dönüşümünü desteklemek için yoğunluğu uygular. (Ied528, b/176819695)
- Matris API'si, ana sıralamayı takip edecek ve SkMatrix ile Matrix4 arasındaki çerçeve dönüşüm mantığını dahili olarak eşleştirmek için farklı matris temsilleri arasındaki dönüşümlere yardımcı olmak üzere dizin sabitleri sağlayacak şekilde güncellendi. (I432e6)
- Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
- String.fintPrecedingBreak ve String.fing FollowingBreak'i InternalTextApi'ye taşıyın. (I657c4)
- androidx.compose.ui.util.isSurrogatePair, herkese açık API'den kaldırıldı. (Ia9494)
- TransformedText.conversionsedText, TransformedText.text olarak yeniden adlandırıldı
- TransformedText artık bir veri sınıfı (Ie672a) değil
data class
şu sınıflardan kaldırıldı:- Satır İçi Metin İçeriği
- Yerel Ayar (I605c7)
- Aşağıdaki sınıflar artık veri sınıfı değil:
- Ek AçıklamalıDize
- Paragraf Stili
- Aralık Stili
- Metin Stili
- Yazı Tipi Ağırlığı
- Metin Dekorasyonu
- MetinGeometrik Dönüşümü
- Metin Dizini
- Metin DüzeniSonucu
- TextLayoutInput (Iaff99)
- VisualTransformation işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4)
- İşlev referans parametresi türü (I5e1bd) eklendi
- Dönüştürülmüş sınırları InspectorNode'a (Ice42f) ekleyin
Hata Düzeltmeleri
- SideEffect ve DisposableEffect API'leri (If760e) yerini alarak onCommit, onDispose ve onActive desteği sonlandırılmıştır.
Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Küçük ilk harfler içeren eski fabrika işlevleri kullanımdan kaldırıldı
- Yeni fabrika işlevleri, alt sınıfların yerine FontFamily
- Alt sınıfların kurucuları gizlenmiştir, böylece bu sınıflar yalnızca fabrika fonksiyonları ile oluşturulabilir.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı (I42aa7)
ComposeTestRule
öğesini genişleten veComposeTestRule
öğesinden kaldırılansetContent
öğesini tanımlayanComposeContentTestRule
kullanıma sunuldu.ComposeTestRule
döndüren ve sizin için bir Etkinlik başlatmayancreateEmptyComposeRule()
fabrika yöntemi eklendi. Bunu testiniz sırasında Etkinliğinizi başlatmak istediğinizde (ör.ActivityScenario.launch
(I9d782, b/174472899) kullanarak) kullanınanimasyonluAsState artık animasyonluFooAsState. Burada Foo ise animasyon uygulanan değişkenin türüdür. Ör. float, Dp, Offset vb. (Ie7e25)
Resim ve Simge'ye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine (I2ac4c) açıklama sağlamak için kullanılır
Kaçınılması gerektiği için displaySize değerini kaldırın. Genellikle onRoot() veya pencere boyutunun boyutunu kullanmak daha iyidir. (I62db4)
OnSizeChanged, düzen içeriğinin boyutunu raporluyordu. Artık boyutu, değiştirici zincirindeki konumunda raporluyor. (I36b78, b/177562900)
emit() API'si ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler tamamen aynıdır, yalnızca Compose'un (I4137b) adlandırma kurallarına uygun olarak farklı bir ada sahiptir
TextFieldValue, AnnotatedString'i kabul eder. Ancak bu yalnızca bir API değişikliğidir ve birden fazla stilde metin düzenleme henüz kullanıma sunulmamıştır.
initial
, EditBuffer kurucu parametrelerinden kaldırıldı. (I326d5)
in Verify ve bestReference() yöntemi desteği sonlandırılarak, sırasıyla currentRecomposeScope ve chooseCompositionReference yerine kullanılmaya başlandı. (I583a8)
AnnotatedString, kotlin.CharSequence'dan farklı olacak şekilde değiştirildi. Bu nedenle uzunluk ve alt sıra, artık örnek işlevleri haline gelmiştir ve uzantı işlevleri kaldırılmıştır. (Iaf429)
CompositionLifecycleObserver'ın yerine CompositionLifecycleObserver desteği sonlandırılmıştır.
RememberObserver
, değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler ileCompositionLifecycleObserver
öğesinin yerine geçer. Yeni API'ye geçiş, yalnızca bir kez hatırlanan nesneler için mekanik olarak yapılabilir. Bu nesneler, önerilen uygulamadır. Bununla birlikte, bir referans bir bestede birden fazla kez hatırlanırsaonEnter
öğesinin yalnızca bir kez çağrıldığı her referans içinonRemembered
çağrılır. Nesne alt bileşimlerde kullanıldıysaonEnter
birden fazla kez çağrıldı. ÖrneğinWithConstraints
veScaffold
, tekonEnter
çağrısı garantisini güvenilmez hale getiriyor veRememberObserver
için kaldırıldı.RememberObserver
,RememberObserver
örneğiremember
öğesine iletilen geri çağırmadan döndürülürse ancak beste durumunda hatırlanmazsa çağrılanonAbandoned
öğesini ekler ve bu nedenleonRemembered
hiçbir zaman çağrılmaz. Bu durum, bir istisna nedeniyle beste tamamlanmadan sonlandırılırsa veya bestenin üretildiği durum artık güncel olmadığı ya da artık gerekli olmadığı için beste silinir. Yukarıdaki tek referans önerisini izleyenRememberObserver
örneği harici bir kaynağı izliyorsa hemonForgotten
hem deonAbandoned
, kaynağa artık ihtiyaç duyulmadığını belirtir. Nesne, başlatılan işi veyaonRemembered
içinde ayrılan kaynakları izliyorsaonRemembered
çağrıldığındaonAbandoned
çağrılmayacağı için yoksayılabilir. (I02c36)2 veya daha fazla TextUnit arasındaki aritmetik işlemler kullanımdan kaldırıldı. Int.sp ve Int.em gibi uzantı işlevleri yerine, kullanımdan kaldırılan TextUnit.Sp ve TextUnit.Em işlevleri (I48369)
Açıkça bildirilmiş herkese açık kaynak bulunmayan kitaplıklardaki kaynaklar (ör. public.xml aracılığıyla) artık varsayılan olarak gizlidir. (Ia1dcc, b/170882230)
ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturabildiğimiz/ölçebildiğimiz/çizdiğimiz için, ScrollableColumn kullanımı, büyük bir kayan içeriğiniz olan LazyColumn ile karşılaştırıldığında daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunların yerine LazyColumn ve LazyRow kullanımlarını teşvik etmeye karar verdik. Kullanıcılar hâlâ tembel davranışa ihtiyaç duymadıklarına karar vererek değiştiricileri doğrudan şu şekilde kullanabilirler: Column(Modifier.vertical Scroll(remember ScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)
fabrika yöntemi.items(items: List)
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 derleyici API'sinin yeniden yapılandırılması, tüm
@Composable
işlevleri tamamlandıktan sonra bileşimin sonucu olarak oluşturulan düğümlerde değişikliklerin "değişiklikleri uygulama" aşamasına "yapılandırma" aşamasına toplu olarak işlenmesine olanak tanır.Bu, değişiklikler uygulanana kadar dahili ve deneysel API'lerde artık düğümler kullanılamadığından uygulama kodunu etkileyebilecek davranışsal yıkıcı bir değişikliktir. Bu işlem genellikle, kodun yürütülmesini, düğümler oluşturulup başlatılana kadar ertelemek için kodun bir
SideEffect
composable içinde bu tür bağımlılıklarla çevrelenmesiyle çözülebilir. (I018da)
API Değişiklikleri
- Özel bir odak geçiş sırasını belirtmek için kullanılabilecek Modifier.focus Order() (I90cf5, b/175899543, b/170155556, b/170155429) eklendi
- Desteği sonlandırılan odakObserver kullanımı, onFocusChanged veya onFocusEvent kaldırıldı (I3ecb9, b/175156387)
- EditOperations API Değişiklikleri
- EditOperation, EditCommand olarak yeniden adlandırıldı
- EditOperation beton uygulamaları için Komut son eki eklendi
- EditCommand'ler artık veri sınıfı değil
- EditOperation.process işlevi, applyTo olarak yeniden adlandırıldı
- Giriş Etkinliği Listeer'ı, ReturnEventCallback olarak yeniden adlandırdı
- (I0a366)
- Kullanılmayan PxSquared, PxCubed, PxInverse kaldırıldı. Size.center() özelliği bir özellik olarak değiştirildi. (I973f7)
- ui-test modülü artık test edilen kullanıcı arayüzleri için Recomposer oluşturmayı yapılandırabilecek (Ibebd8)
- Hız, bileşen parçalarına ve matematiksel işlemlere sahip olacak şekilde değiştirilmiştir. (Ib0447)
@ExperimentalTesting
öğesi, benzer deneysel API ek açıklamalarıyla tutarlı olacak şekilde@ExperimentalTestApi
olarak yeniden adlandırıldı (Ia4502, b/171464963)- Color.useOrElse(), Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5)
- Kullanılmayan DpInverse, DpSquared ve DpCubed sınıfları kaldırıldı. (I4d62b)
- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Düzen düğümü sınırları değiştiğinde Sahip'i bilgilendirmek için bir geri arama ekleyin. (I72fd1)
- Belirtilmemiş bir sabite sahip satır içi sınıflar için isSpecified, isUnspecified ve useOrElse özellikleri eklendi. (I93f7b, b/174310811)
[Abstract]ComposeView API'lerini genişleterek Compose tabanlı görünümlerin geri dönüştürülmesini sağlayabilir ve bestelerini daha sonra yeniden oluşturabilirsiniz. Alt besteler oluşturmak için pencere kapsamlı Recomposer'ları ve CompositionReferences'ı yükleyip keşfetmek için API'ler ekleyin.
[Abstract]ComposeViews öğesinin beste çıkarma stratejisini yapılandırmak için ViewCompositionPolicy'yi ekleyin. Varsayılan davranış, pencere ayırma işlemiyle kaldırılır. (I860ab)
Any.identityHashCode() herkese açık API'si (I025d7) kaldırıldı
Bunun yerine doğrudan String.format'ın kullanılması yerine toStringAsFixed API'si kaldırıldı. (Iaba6b)
Temel Strings.kt öğesine açma/kapatma düğmesini ekleyin (I4a5b7, b/172366489)
NativeClass'ı arayüz modülüne taşıdı ve dahili hale getirdi. NativeClass'ın güncellenmiş kullanımları, "is MyClass" olacak şekilde uygulamalara eşittir. (I4f734)
Değiştirici.focus() ve Modifier.focusRequester() desteğine son verilmez. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference()'ı kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
Seçim Yöneticisi'ne, Seçilebilir güncellemeleri bildirmek için SeçimRegistrar.notifySelectableChange kullanıma sunuldu. (I6ff30, b/173215242)
Çeşitli dış çizgi uygulamaları için sınırlayıcı dikdörtgeni elde etmek amacıyla Outline.bounds özelliği kullanıma sunuldu. (I16e74, b/175093504)
TestUiDispatcher desteği sonlandırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
ImeOptions ve keyboardOptions artık bir veri sınıfı değildir (I3c898, b/168684531)
VisualTransformation API Değişiklikleri
- Offsetmap, Offset Eşleme olarak yeniden adlandırıldı
- Offsetmap.identityOfsetMap, OffsetMatch.Identity olarak yeniden adlandırıldı
- PasswordTransformation artık veri sınıfı değil
- OffsetEşleme kendi dosyasına taşındı
- (I0bdf3)
Konum, DpOfset olarak yeniden adlandırıldı ve getDISTANCE() (Ib2dfd) kaldırıldı.
Dp.isFinite() eğlencesi değeri val Dp.isFinite (I50e00) olarak değiştirildi
Hata Düzeltmeleri
- Recomposer, artık bir Akışın geçerli durumunu açığa çıkararak etkinliğini ve ilişkili efektlerin etkinliğini izleyebilir. (Ifb2b9)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent (I87c57, b/173086397) üzerinden erişilebilir.
animate()
, artıkanimateAsState()
ile değiştirilmiştir. Bu,T
yerineState<T>
değerini döndürür. Geçersiz kılma kapsamı, State değerinin okunduğu yere indirgenebileceği için bu sayede daha iyi performans elde edebilirsiniz. (Ib179e)- Semantics role API'yi ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak Rol ekleyin. Slider'ın da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
- Animasyonları arasında karşılıklı ayrıcalıklılık sağlayan, eş yordam tabanlı yeni API
Animatable
.- Çok boyutlu azalma animasyonunu destekleyen yeni DecayAnimationSpec
- (I820f2, b/168014930)
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha09
yayınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.
API Değişiklikleri
- Kullanımdan Kaldırılan KeyEvent.Alt artık kaldırıldı. Bunun yerine KeyEvent.isAlt Pressed kullanın. (Idd695)
- Modifier.keyInputFilter ve Modifier.previewKeyInputFilter, bunun yerine Modifier.onKeyEvent ve Modifier.onPreviewKeyEvent öğelerini kullanın (Idbf1b, b/175156384)
- Değiştirici.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
- İşaretçi giriş API'lerini askıya almak için HandlePointerInputScope olarak AwaitPointerEventScope vehandlePointerInput() öğesini awaitPointerEventScope() olarak yeniden adlandırdınız. (Idf0a1, b/175142755)
- Autofill API artık deneysel bir API olup etkinleştirilmesini gerektiriyor (I0a1ec)
- FocuSRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
- erişilebilirlikLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
- Özel etkinlikler, askıya alma işaretçi girişi API'sinden (Ia54d5, b/175142755) kaldırıldı
- SelectRegistrar'da birkaç yeni işlev tanıtıldı ve onPositionChange, NotificationPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
- Dahili olarak işaretlediğimiz diğer LayoutNode üyeleri (I443c6)
- LayoutInfo, araç ve test ile kullanılmak üzere sunulmuştur (I9b190)
- Dahili Android Sahibi (Ibcad0, b/170296980)
- ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
- İç içe kaydırma sistemi eklendi. Daha ayrıntılı bilgi için Değiştirici.nestedKaydırma başlıklı makaleye bakın (I36e15, b/162408885)
- subcomposeInto(LayoutNode) dahili olarak yapıldı (Id724a)
Applier
arayüzü, ağaçları yukarıdan aşağıya değil, aşağıdan yukarıya oluşturmayı basitleştirecek şekilde değiştirildi.insert()
yöntemiinsertTopDown()
olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()
) eklendi.Bir uygulayıcı, hangisinin daha iyi performans gösterdiğine bağlı olarak
insertTopDown()
veyainsertBottomUp()
kullanarak düzenlediği ağaca düğüm ekler.LayoutNode
veView
gibi bazı ağaçlar, yukarıdan aşağıya doğru yapısına kıyasla aşağıdan yukarıya yapı oluşturma konusunda çok daha verimlidir. Bu değişiklikten önce, aşağıdan yukarıya uygulamak için bir dizi ekleme ve bunun performans için aşağıdan yukarıya yapıya ihtiyaç duyan her uygulamaya kopyalanması gerekiyordu. Bu değişiklikle birlikteApplier
, aşağıdan yukarıya bir ağaç oluşturmak içininsertBottomUp()
politikasını, yukarıdan aşağıya bir ağaç oluşturmak içininsertTopDown()
değerini geçersiz kılar. (Icbdc2)AndroidDialogProperties'e offOnBack Press ve closedOnClickOutside özellikleri eklendi. Bunlar, iletişim kutusunun onKapatmaRequest lambda'sı çağrıldığında yapılandırmaya olanak tanır. (If5e17)
Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables'tan opak bir şekilde yüklenen Painter nesnelerini işlemek için PainterResource API eklendi. Tüketiciler artık öğe türünü önceden belirlemek zorunda değildir ve Resim composable'larında veya ressam değiştiricilerinde kullanacakları Boyacı nesnesi için bu yöntemi çağırabilirler. (I2c703, b/173818471)
Alt öğelerin anlamını temizlemek ve yenilerini belirlemek için Değiştirici.clearAndSetSemantics eklendi. (I277ca)
ContentDrawScope, DrawScope ile çalışacak şekilde kullanıcı arayüzü modülüne taşındı. (Iee043, b/173832789)
Çizgili şekillere farklı kalıplar sağlamak için PathEffect grafik API'si kullanıma sunuldu. NativePathEffect'in desteği sonlandırıldığından, PathEffect'in beklenen/gerçek uygulanması yönünde tercih edilmiştir. (I5e976, b/171072166)
Espresso'nun boşta kalma kaynaklarının Compose destekli bir varyantı olarak Compose'a IdlingResource arayüzleri eklendi. ComposeTestRule (I433f3) aracılığıyla kaydedilebilir ve kaydı iptal edilebilir.
ComposeIdlingResource'nın genel kaydı (kaldırılan) ve ComposeIdlingResource'daki (I32660) saatlerin genel kaydı kaldırıldı
Hata Düzeltmeleri
- Ofset değiştiricilerdeki Lambda'lar artık Kayma yerine IntOffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader ve SlotWriter genel API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretlenmişti. Bunlar artık oluşturma modülünde yer alıyor.
ui-tooling API'nin bileşim bilgilerini ayıklamak için kullanacağı bir yedek olarak CompositionData ve CompositionGroup eklenmiştir. Bunlar herkese açıktır ancak ui-tooling API'nin yorumladığı ham bilgileri (I31a9c) sağladığı için ui-tooling API'sinin dışında kullanılması amaçlanmamıştır.
Çizim ortamının boyut bilgilerinin mevcut olması durumunda geç yavaş bir gölgelendirici örneği oluşturmak için ShaderBrush yeniden düzenlendi. Bu, beste zamanında özel DrawModifier uygulamaları uygulamak zorunda kalmadan bir composable'ın tüm çizim sınırlarını kaplayan renk geçişleri tanımlamak için yararlıdır.
Gradyan nesnesinde fabrika yöntemlerinin tercih edilmesi için desteği sonlandırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed'in desteğini sonlandırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)
Desteği sonlandırılan BuildCompat.isAtLeastR (Idb37e)
AnnotatedString oluşturmak için buildAnnotatedString'in fabrika işlevi eklendi. Ek açıklamalıString oluşturucu işlevi kullanımdan kaldırıldı. (Idfe0b)
Değerleri radyana dönüştürmek için Kayan ve Çift moddaki uzantı yöntemleri kaldırıldı. Kullanıldığı tek yer olan PathParser uygulaması içinde özel bir işlev olarak kullanılmaya başlandı (I25f52)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Anlamsal işlem ekleme işlemi Kapat (I2b706)
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılan API'lerden mevcut API'lere geçişe yardımcı olacak typealiases/helper yöntemlerini içerecek şekilde DrawModifier U güzelleştirilmiştir. (Id6044, b/173834241)
- Modifier.drawKatmanlar, Modifier.graphicsKatman olarak yeniden adlandırıldı. Ayrıca, API geri bildirimlerine göre ilgili sınıflar da GraphicsKatman olarak güncellendi. (I0bd29, b/173834241)
- Özel düzenlerin ve düzen değiştiricilerin, çizimlerine bir grafik katmanı ekleyerek alt öğe yerleştirmesine olanak tanıyan yeni Placeable.placeWithKatmanlar() ve placeable.placePlaceWithKatman() yöntemleri eklendi. Böylece öncelikle yeniden çizimleri optimize edebiliyoruz. Böylece bir çocuğun yerini değiştirmemiz gerektiğinde içeriğini yeniden çizmek zorunda kalmıyoruz. İkinci olarak, alt öğe için çizim dönüşümlerini uygulayabiliriz (Ibd8f6, b/170296989, b/171493718, b/173030831).
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- Çizimler'e kolaylık sağlamak amacıyla Değiştirici.scale/rotate API'leri eklendi.
Modifier.drawOpacity
adlı dosyaModifier.alpha
olarak yeniden adlandırıldıModifier.drawShadow
listesiModifier.shadow
olarak yeniden adlandırıldı (I264ca, b/173208140)
- PointerInputData'nın çalışma ve konum alanları null olamaz. (Id468a)
- MaterialTheme, artık seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Materyal olmayan uygulamalar, seçimde kullanılan renkleri özelleştirmek için AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağrısı sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TransformOrigin API,
pivotFractionX
vepivotFractionY
değerlerinicomponent1
vecomponent2
olarak döndürecek şekilde yapı bozucu söz dizimi içerecek şekilde güncellendi (If43c4, b/173586560) - Oluşturma yönergeleriyle tutarlılığı kontrol etmek üzere composable lambda parametresi adı ve konumu için lint denetimi eklendi.
Ayrıca, lint kontrolü ve rehberlik doğrultusunda, sondaki lambdaların adı olarak
children
kullanılan bazı API'ler 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 tanımlarken durum değişikliği gerçekleştiğinde yeniden düzenleme ve düzenleme adımını atlarsınız. DrawKatmanModifier, mantığını LayoutModifier'ın Placeable.placeWithKatmanlar() yöntemine (I15e9f, b/173030831) taşımaya hazırlanmak için artık dahilidir - Sonek olarak
Ambient
adını taşıyan ve desteği sonlandırılmış Ambiyanslar, diğer Ambients and Compose API kurallarına uyarak Ambient ön ekini taşıyan yeni özellikler eklendi. (I33440) androidx.compose.ui.text.Typeface
,androidx.compose.ui.text.font.Typeface
(Ic2b81) hedefine taşındı- Anlamsal bağımsız değişken birleştirmeAllDescendants, "mergeDescendants" olarak yeniden adlandırıldı. (Ib6250)
- Yön kilitleme dahil olmak üzere, işaretçi giriş API'sini askıya alan yeni sürükleme hareketi algılayıcı. (Icef25)
- VectorAsset, ImageVector olarak yeniden adlandırıldı. VectorAsset, API yönergelerine göre ImageVector'ın iç sınıfı olacak şekilde oluşturucu olarak yeniden adlandırıldı. Karşılaştırma için ImageVector.Builder bağlantısına, VectorAssetBuilder adında tür takma adı eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- Değiştirici.zIndex() öğesinin artık bir LayoutModifier olarak çalışması ve herhangi bir özel düzenin doğrudan yerleşim bloğunda (I711f7, b/171493718) alt öğeleri için zIndexe'leri ayarlayabilmesi için PlacementScope'un Place() öğesi için zIndex parametresi ekleyin
- Temel anlamsal özellikleri kullanıcı arayüzüne taşındı (I6f05c)
- Yer(Ofset) ve Placeground(Ofset) değerlerini kullanımdan kaldırın. Bunun yerine int ofsetleriyle aşırı yüklemeleri kullanın (I4c5e7)
- Daha önce kullanımdan kaldırılan API'ler kaldırıldı: Değiştirici.onPositioned kaldırıldı, Değiştirici.onGloballyPositioned kullanın. Değiştirici.onDraw kaldırıldı, Değiştirici.onDrawBehind öğesini kullanın. Değiştirici.plus kaldırıldı, Değiştirici.ardından kullanın. Renk.Ayarlanmadı, Renk.Belirtilmedi seçeneğini kullanın. PxBounds sınıfı kaldırıldı, onun yerine Rect'i kullanın. (Ie9d02, b/172562222)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
- Dokunma, iki kez dokunma, uzun basma ve basma göstergesi için hareket dedektörü, yeni askıya alma işaretçisi girişi kullanılarak eklendi. Ayrıca, geliştiricilerin kendi hareket dedektörlerini yazmalarını kolaylaştıran birkaç yardımcı program da eklendi. (I00807)
id
,LayoutIdParentData
içinlayoutId
olarak yeniden adlandırıldı.Measurable.id
,Measurable.layoutId
olarak yeniden adlandırıldı. (Iadbcb, b/172449643)- Döndürme, yakınlaştırma ve kaydırmayı algılamaya yönelik yardımcılar da içeren yeni çok noktalı hareket dedektörü. (Ic459d)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Testlerde zaman kontrolü (TestAnimationClock ve kullanımları) artık deneysel (I6ef86, b/171378521)
Eş yordam tabanlı kaydırma API'leri ekleyin:
Kaydırma kontrolü için LazyListState.snapToItem ve LazyListState.smooth ScrollBy ile alt düzey API'ler ekler. Bu API'ler, geri dönmeden önce kaydırmanın bitmesini bekleyen kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)
Modifier.focusable'ın temele eklenmesi gerekiyor. Bir bileşene doğru anlamlar ve erişilebilirlikle odaklanılabilir davranış eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)
AnimasyonClockTestRule'da
clock
öğesine devredilebilecek yöntemlerin ve özelliklerin varsayılan uygulamalarını sağlayın (I7ea3d, b/173399709)AndroidComposeTestRule artık özel etkinlik başlatıcıları (Ib8288, b/153623653, b/154135019) kabul edebilir
TextLayoutResult.getLinevisibleEnd desteği sonlandırıldı. Bunun yerine, artık TextLayoutResult.getLineEnd için yeni bir visibleEnd parametresi bulunmaktadır. (I73282)
TextFieldValue API'si güncellendi
- TextFieldValue.composition salt okunur yapıldı
- geçersiz seçim aralığı (I4a675, b/172239032) nedeniyle kaldırıldı istisna
Metin okuma motoru için TtsDescription desteği. (I54cc6)
Eş yordamlarda animasyon çalıştırmak için yeni API'ler (Ied662)
Hata Düzeltmeleri
- Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
- ofPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık State yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
- TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947) öğesine sıfırlamaInput parametresi eklendi
- Oluşturulabilir işlevlerde Değiştirici parametreleri için lint kontrolü eklendi. Bu hata analizi kontrolü, parametrenin adını, döndürme türünü, varsayılan değerini ve sırasını Yazma yönergeleriyle tutarlılık açısından kontrol eder. (If493b)
- TestAnimationClock'ın MonotonicFrameClock tarafından çalıştırılmasına izin vermek için geçici olarak eklenen seçenek (I1403b, b/173402197)
- Android Yazı Tipi sarmalayıcı eklendi. Bir Android Yazı Tipini
typeface
işlevi (ör.typeface(Typeface.DEFAULT)
) aracılığıyla yükleyebilirsiniz.typefaceFromFontFamily()
adlı dosya 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ı (I3a7cb) kaldırın
- Recomposer artık EmbeddingContext kabul etmemektedir. Gerekli planlama bağımlılıkları forceCoroutineContext'ten alınır. FrameManager kullanımdan kaldırıldı. Platform entegrasyonları, kendi küresel anlık görüntü işlemelerini başlatmalıdır. (I02369)
- Stil bilgilerini erişilebilirlik düğümüne geçirin. (If5e8d)
- TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmemiş. (Ifce19)
Oluşturma Kullanıcı Arayüzü Sürüm 1.0.0-alpha07
11 Kasım 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Düzgün olmayan ölçeklendirme kullanım alanlarını desteklemek üzere yatay ve dikey eksenler için birbirinden bağımsız ölçek faktörlerini temsil eden ScaleFactor satır içi sınıfı kullanıma sunuldu.
- ContentScale'e computeScaleFactor yöntemi eklendi
- src sınırlarını genişletmek için hedefi tamamen işgal etmek üzere tek tip olmayan ölçeklendirme yapmak üzere ContentScale.FillBounds eklendi.
- Boyut parametreleriyle ScaleFactor parametrelerini hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- Hizalamalar oluşturmak için Önyargı Hizalama ve Önyargı Mutlak Hizalama fabrikaları eklendi. (Iac836, b/169406772)
- Geliştiricinin odağı zorla temizlemesine izin ver. (I90372)
- Oluşturma içindeki Görünümler için yükseltilerin çizilmemesine neden olan bir hata düzeltildi. (If7782)
- Adlandırma kuralını Modifier.drawBehind ile eşleştirmek için ContentDrawScope içinde onDrawBehind API oluşturuldu. (I4fc3a, b/171955269)
- Katman API'lerinde 3D dönüştürmeleri RotationX/rotationY'yı tamamlamak için kamera mesafesi desteği ekleyin. (I40213, b/171492100)
- Geri çağırma içermeyen Seçim Container'ı eklendi (Ibfadb)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout, artık @OptIn öğesi eklenmeden kullanılabilir (I708ad)
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
- Kafa karıştırıcı olduğu içindrawShadow() değiştiricisinden opaklık kaldırıldı. (I82c62, b/171624638)
- MeasureResult, MeasureScope dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)
- Desteği sonlandırılmış FocusState2 (I686cb, b/168686446) kaldırıldı
- ZIndexModifier artık dahili (I1808b, b/171493718)
- Gereksiz kutulamayı önlemek için boş olmayan bir Boyut döndürmek amacıyla Boyut parametrelerinde lerp yönteminin dönüş türü güncellendi. (Ib0044)
- Kompozisyon çerçevesi etkinliklerini beklemek için Compose'un MonotonicFrameClock'una dayanan kodun test edilmesi için TestMonotonicFrameClock ve kotlinx-coroutines-test'in run blockTest (I4402f) özelliği eklendi
- HareketScope.localToGlobal (I15299, b/171462785) kaldırıldı
onAllNodesWithSubstring
bulucu eklendi (I81dd7, b/171462889)- androidx.ui.test modülü kullanımdan kaldırıldı. Lütfen androidx.compose.ui.test ve androidx.compose.ui.test.junit4 (I452e8) sürümlerine geçin
Hata Düzeltmeleri
- receiveToBitmap, captureToImage öğesine taşındı. (I86385)
- Foundation.Text desteği sonlandırılmış ve asset.Text ile değiştirildi. Temadan değer kullanmayan temel ve işlemsiz metin API'leri için androidx.compose.foundation.BasicText adresini ziyaret edin. (If64cb)
- TextFields'i KlavyeSeçenekleri (Ida7f3) kabul edecek şekilde güncelleyin
- Klavye Seçeneklerini ImeOptions olarak yeniden adlandırın (I82f36)
- Klavye Türü ve ImeAction, KlavyeSeçeneklerine taşındı (I910ce)
- Ambiyans sağlamak için bir alternatif olarak OfferDefault eklendi ve yalnızca henüz herhangi bir ambient değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField alanını kullanın. (I896eb)
- ui-test-junit4 modülünü tanıtın (Ib91f8)
relativePaddingFrom
,paddingFrom
olarak yeniden adlandırıldı. Düzen sınırlarından metin referans değerlerine olan mesafeleri kolayca belirlemek amacıylapaddingFromBaseline
değiştirici eklendi. (I0440a, b/170633813)- LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak amacıyla LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek amacıyla, konu parametresi olmayan LaunchedEffect'e izin verilmez. (Ifd3d4)
- Yapılandırma güncellendiğinde yeniden derlenen kaynaklar kullanıma sunuldu. (I6387c, b/167352819)
- Recomposer artık yapım sırasında bir CoroutineContext gerektiriyor (Ic4610)
- Birden çok
Modifier.zIndex()
uygulandığındazIndex
değerlerini toplayın. Daha önce ilki kazanıyordu. (Ic514c, b/170623936) - Dahili SlotTable uygulamasında yapılan ve herkese açık API'yi etkilememesi gereken değişiklikler. (If9828)
- Klavye otomatik düzeltme IME Seçeneği eklendi (I57b8d)
- androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
- KlavyeOptions.toImeOptions, genel API'den kaldırıldı. (Ic2e45)
Harici Katkı
- Dahili yapı androidx.compose.ui:ui-text-android (Ib93fa) yayınlanması devre dışı bırakıldı
Sürüm 1.0.0-alpha06
28 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha06
yayınlandı. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Recomposer artık bir CompositionReference ve geçerli bir beste üst öğesi oldu. Açık Yeniden Oluşturucu artık daha az yerde gerekiyor. (I4036f)
- composable API'nin, bileşimler genelinde verileri kalıcı hale getirmek için dahili olarak "hatırladığından" yararlandığını daha iyi belirtmek amacıyla HatVectorPainter'ın yerine VectorPainter'ı kullanımdan kaldırın. (Ifda43)
- Modifier.drawWithCache API, uygulamalara çizim komutlarını yeniden sıralama olanağı sunmak için ContentDrawScope'u DrawScope yerine alıcı kapsamı olarak kullanıma sunacak şekilde güncellendi. Bu, karşılık gelen karıştırma modu algoritmasının doğru bir şekilde uygulanması için önce içerik piksellerinin oluşturulması gereken kullanım alanlarını karıştırma/renklendirme açısından faydalıdır. (Ie7ec8)
- SimpleContainer'ı PopupTestUtils.kt (I78c57) dosyasına taşıyın
- ConsumedData artık bir veri sınıfı değil. Ayrıntılar için https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 adresine göz atın (I1737f)
- Rtl Tutma Yeri Konumunu Düzeltin. (I6e1e0)
- DrawScope ve ContentDrawScope soyut sınıflar yerine arayüz olacak şekilde yeniden düzenlendi
- DrawScope uygulaması oluşturuldu ve CanvasDrawScope
- Bunun yerine CanvasScope kullanmak için DrawScope uygulamaları yeniden düzenlendi
- DrawScope için bağımlılıkları sarmalamak amacıyla DrawContext oluşturuldu
- DrawScope'ta desteği sonlandırılmış yöntemler kaldırıldı (I56f5e)
- Önemli değişiklik: İşaretçi etkinliklerinde değiştirilebilmesi gereken tek değer tüketim verileri olduğu için döndürülen değer
PointerInputFilter.onPointerEvent(...)
öğesinden kaldırıldı.PointerInputFilter.onPointerEvent(...)
uygulamasından veri döndürmek yerine, artık iletilen PointerEvents tüketim verilerini değiştirebilirsiniz. (I6acd0) - MeasureScope ve IntrinsicMeasureScope arayüzleri yapıldı. (I1a087, b/170461665)
- HelloLine için birleştirme işlevi gizlendi. (I9da1a, b/170612900, b/170611568)
- Oluşturulan değiştiricide inceleyici bilgilerini belirtme özelliği ekleyin (Idee08, b/163494569)
- Seçim menüsüne SelectAll seçeneği eklendi (Ief02b)
- DrawTransform.rotate, dokümanlarla eşleşecek şekilde ortadaki varsayılan pivot parametresini alacak şekilde güncellendi.
- DrawScope.rotateRad, diğer dönüştürme yöntemleriyle eşleşecek şekilde pivot noktası için bir ofset kullanacak şekilde güncellendi.
- Pivotun x ve y koordinatı için kayan, kullanımdan kaldırılan DrawScope.rotateRad aşırı yüklemesi.
- (Iffcbb, b/170434992)
Hata Düzeltmeleri
- androidx için kayıpGetterMatchingBuilder API lint kontrolü etkin (I4bbea, b/138602561)
- Test ekle'yi tıklayın. (I6b8ae)
- ComposeTestRule'da geçişleri etkinleştir; yanıp sönen imleci ComposeTestRule'dan etkinleştirmek için seçeneği kaldırın. (If0de3)
- Klavye Büyük Harf Kullanımı IME Seçeneği Eklendi (I8ac38)
- CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
- SimpleContainer'ı PopupTestUtils.kt'ye (I65c3e) taşıyın
- Compose'da nasıl kullanıldığını daha iyi ifade etmek için Radius API'yi CornerRadius olarak yeniden adlandırdı. Dokümanlar, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
ACTION_DOWN
hariç tüm işlemler için onTouchEvent için yanlış döndüren alt Android Görünümlerine MotionEvents göndermeye devam ederek Android birlikte çalışma özelliği iyileştirildi (I94c5a, b/170320973)- Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)
Harici Katkı
AnnotatedString.capitalize
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, bunun yerine sağlanan PointerInputChange'i değiştirir.
Bu, diğer işaretçi verilerinin kullanıcı kodu tarafından düzenlenememesi için PointerEvent verilerini değişken hale getirmenin 2 adımlı sürecinin ilk adımıdır. İkinci adım,
List<PointerInputChange>
dönüş türünüPointerInputFilter.onPointerEvent(...)
öğesinden kaldırmaktır. (Id067e)Metinde Seçimi Devre Dışı Bırak ve bir Demo. (Ie7e97)
Yerel olarak konumlandırılmış bir satır içi işlevde yapıldı (I15830)
OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() onGloballyPositioned() olarak yeniden adlandırılır. (I587e8, b/169083903)
hasPendingMeasureOrLayout özelliği, Sahibin beklemede düzen çalışması olup olmadığını belirtmek üzere Sahip bölümüne eklendi. (I3d9f8, b/169038599)
Odağı programatik olarak netleştirmeye API eklendi (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)
kaldırıldı. Bunun 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ı
Satır içi sınıflar için koruyucu değerlerinin standartlaştırılmasının bir parçası olarak Color.Unset (Renk Ayarlanmadı) değerini yeniden adlandırın.Diğer satır içi sınıflarla tutarlılık için belirtilmemiş (I97611, b/169797763)
TextOverflow.None kullanıma sunuldu. Taşma değeri Yok olduğunda, Metin artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
AnnotatedString.Builder.addStringDescription içindeki kapsam parametresi, API tutarlılığı için etiket olarak yeniden adlandırıldı. (I7c8cb)
Hata Düzeltmeleri
- LazyColumn/Row'un kaydırma performansı, her kaydırmada alt bileşim üzerinde daha az iş yapılarak iyileştirildi. Beste sınıfı için yeni hasGeçersizations() yöntemi eklendi. Recomposer'dan alınan hasPendingChanges() yöntemi has Invalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371)
- Boyut Güncellendi.Belirtilmemiş parametreler, Kayma.POSITIVE_INFINITY yerine Kayma.NaN olacak. Boyut.Belirtilmemiş ve sonlu olmayan Boyutlar'a göre kontrol etmek için Boyacı uygulamaları güncellendi. (I95a7e)
- Özel Layout'lardaki Place() çağrılarının sırası artık alt öğeler için çizim sırasını (Ibc9f6) tanımlar.
- Erişilebilirlik için AnnotatedString'i SpannableString'e dönüştürme desteği. (Ief907)
- Mümkün olduğunda yansıtma kullanımından kaçınmak amacıyla, eski platformlardaki Android sınıfları için taslaklar eklendi. (Ia1790)
- Hata Düzeltildi: Gösterilen yazılım klavyesi uygulamanın çevrilmesine neden olduysa işaretçi giriş koordinatları hatalı hale geliyordu. (Ic4cec, b/163077821)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Artık geçerli olmayan düzen ve çizim gözlem kapsamlarının toplanmasına izin vermek için OwnerScope eklendi. (Ic4cf8)
- İçerik düzeni yeniden ölçüldüğünde ve boyut değiştiğinde geri çağırma almak için OnRemeasuredModifier ve onSizeChanged() eklendi. (I657cf, b/154108792)
- Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
- FocusManager gizli hale getirildi. (I7872f)
Uygulama, DrawModifier'a isteğe bağlı özellikler eklemek yerine özel bir DrawCacheModifier uygulaması oluşturacak şekilde güncellendi.
Çeşitli yöntemler için güncellenmiş dokümanlar (Ibd166)
Nesne oluşturulmasını önlemek için TextRange'i satır içi yapın. (Id034b)
PlacementScope#parentWidth ve PlacementScope#parentLayoutDirection, özel bir düzenin yerleşim bloğundan artık okunamaz. (Icc1ae, b/168295623)
Anlamsal özelliklerine Accessibility ScrollState'i ekleyin. (Ifeda9)
Boyut/durum bilgilerine (I376dc) bağlı bağımlılıkları koşullu olarak yeniden oluşturan bir çizim nesnesi oluşturmayı desteklemek için Modifier.drawWithCache kullanıma sunuldu)
ParagrafKısıtlamaları kaldırıldı. Genişlik şimdi doğrudan Paragraf'a geçirilir. (Ica712)
Hata Düzeltmeleri
- Birçok Graphics API'si güncellendi
- Ölçek ve döndürme dönüşüm API'leri, DrawScope ve DrawTransform'da x/y koordinatları için ayrı kayan noktalı parametreler yerine pivot koordinatını temsil edecek tek bir Offset parametresi kullanacak şekilde güncellendi
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap dokümantasyonu, eliptik bisikletin yanı sıra oval de
- Satır içi Yarıçap sınıfı için genel oluşturucunun doğrudan çağrılamayacağını, bunun yerine Yarıçap nesnelerinin işlev oluşturucuları aracılığıyla örneklendirilmesi gerektiğini gösteren dokümanlar eklendi
- topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.shift desteği sonlandırıldı ve Rect.translate'ye geçiş yapıldı
- roundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect paketinin adı Rect.boundingRect olarak yeniden adlandırıldı.
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı.
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
- roundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
- RoundRect.center işlev yerine bir özellik olarak değiştirildi
- RoundRect oluşturucusu, x/y yarıçap değerleri için bağımsız parametreler yerine Yarıçap özelliklerini kullanacak şekilde güncellendi
- Kaynağı 0,0 olan Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
- Yarıçap'a yıkıcı bir API eklendi
- Çeşitli RoundRect uzantı işlevleri mülk olacak şekilde taşındı
- (I8f5c7, b/168762961)
- Foundation.Box desteği sonlandırıldı. Lütfen bunun yerine Foundation.layout.Box'ı kullanın. (Ie5950, b/167680279)
- Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box kullanımdan kaldırılarak, generate.foundation.layout içindeki yeni Box'a geçiş yapılacak. Yeni Box'ın davranışı, birden çok alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer davranışlarda bulunan önceki Box'tan farklıdır. (I94893, b/167680279)
- Box dekorasyon parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgular olmasını istiyorsanız bunun yerine Değiştiriciler'i kullanın (Modifier.background, Değiştirici.gider, Değiştirici.Dolgu) (Ibae92, b/167680279)
- Birçok Graphics API'si güncellendi
- DrawScope API'leri, dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtecek şekilde kapsamlı dönüşüm yöntemleriyle güncellendi
- ClipPath belgeleri, yuvarlatılmış dikdörtgen yerine Path'i işaret edecek şekilde güncellendi
- ClipPath'de sağ parametre için belgelerdeki boşluk düzeltildi
- DrawScope.drawCanvas,drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
- Inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınıra da aynı inset değerini sağlayan ek aşırı yükleme eklendi.
- Inset yönteminde, ekin 4 tarafa da uygulanacağını gösteren dokümanlar kaldırıldı
- Rect sınıfı için güncellenen dokümanlar
- Rect parametrelerindeki yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yükleme oluşturuldu ve kullanımdan kaldırılan Rect.shift
- (If086a, b/167737376)
- Ek açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @visibleForTesting, bunları dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
- Varsayılan seçimi devre dışı bırakmak ve beklenmedik davranışları önlemek için Seçim Kapsayıcısını En Üstten Kaldırın. Bunun yerine seçilebilir olması gereken içeriği sarmalamak için özel olarak bir SelectContainer etiketi kullanılabilir. (I8dfe0, b/158459594)
Sürüm 1.0.0-alpha03
16 Eylül 2020
androidx.compose.ui:ui-*:1.0.0-alpha03
yayınlandı. 1.0.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- İleri/geri kaydırma anlamsal işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
onInvalidate()
,Owner
--OwnedLayer
herkese açık kullanıcı rızasının geçersiz kılınmasından kaldırıldı. (Ica72b, b/162061312)Ofset parametrelerini kullanan Size API'deki operatör yöntemleri kaldırıldı. Bu işlemlerin sonucu belirsizdir ve bunlar için beklenmedik sonuç türü vardır. Ör. boyut - uzaklık, bir ofset mi yoksa farkı içeren bir boyut sonucu mu döndürmelidir?
Ayrıca, Boyut sınıfı için desteği sonlandırılmış yöntemler kaldırıldı. (Iec902, b/166514214)
Hata Düzeltmeleri
- Bazen yanlış çizilen LazyColumn öğeleri için düzeltme uygulandı. Bu da bazı durumlarda kilitlenmelere neden oluyordu. (Ibcf17, b/163066980, b/165921895)
- Bunu kullanan DpConstraints ve API'ler kullanımdan kaldırıldı. (I90cdb, b/167389835)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
konumundanandroidx.ui.test
konumuna taşındı (Idef08, b/164060572)- Yer çekimi kullanımları, düzen API'lerinde hizalama veya hizalama için tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- ComposeTestRule'a eklenen onNode ve diğer genel yöntemler, mevcut global yöntemlerin desteği sonlandırılacak. (Ieae36)
Sürüm 1.0.0-alpha02
2 Eylül 2020
androidx.compose.ui:ui-*:1.0.0-alpha02
yayınlandı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Düzen düğümü sınırları değiştiğinde Sahip'i bilgilendirmek için geri çağırmayı kaldırın. (If654e, b/166106882)
- Hatta Odd veya Sıfır Olmayan yol doldurma kurallarına göre şekillerin kesimlerini desteklemek amacıyla vektör grafik yollarında dolgu türü parametreleri desteği eklendi. (I43dd2)
- Çalışma Süresi ve Hız artık satır içi sınıflardır (I48f4a)
- Süre artık satır içi bir sınıftır (I565eb)
- Düzen düğümü sınırları değiştiğinde Sahip'i bilgilendirmek için bir geri arama ekleyin. (Ic40b3)
Ofset ve yarıçap içeren Rect işlevi oluşturucusunun Dikdörtgeni sol, üst, sağ, alt yerine sol, sağ, üst, alt sıraya göre oluşturması sorunu düzeltildi.
Rect'te desteği sonlandırılmış tamamlayıcı yöntemler kaldırılarak işlev oluşturucuları eline geçmiştir.
Rect.kt'deki yöntemleri doğrulamak için eklenen testler (I08460, b/165822356)
Hata Düzeltmeleri
- Değiştirilebilen bir dikdörtgen olan MutableRect eklendi. (I71bd2, b/160140398)
- Matris4'ün yerini Matris aldı. Vektörmath paketinin diğer tüm parçaları kaldırılmıştır. (Ibd665, b/160140398)
Birleştirilebilir işlevler için çağrı kuralı değişti. Bu, ikili zarar veren bir değişikliktir. Tüm kitaplıklar, oluşturma derleyici eklentisinin bu sürümüyle çalışacak şekilde yeniden derlenmelidir.
Değişen tek API'ler açık bir şekilde etkinleştirilen derleyici API'leri olduğundan, bu değişiklik kaynak düzeyinde zarar verici bir değişiklik oluşturmaz. (I7afd2, b/158123185)
PointerInputFilter'e yapılan dağıtım, PointerInputFilter'in eşzamanlı olarak kaldırılmasına neden olduğunda oluşabilecek kilitlenme düzeltildi. (I58f25)
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü bu kaydetmeleri içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev17
yayınlandı. Sürüm 0.1.0-dev17 bu kaydetmeleri içerir.
API Değişiklikleri
emitView
desteği sonlandırıldı. Compose içinde Görünümler yayınlamak için mümkü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 emisyonlar, artık bir veya daha fazla seter'ın atlanabileceğini ve emisyonlardan bağımsız olarak yeniden düzenlenebileceğini bildirebiliyor. (Ibbd13)
Oluşturma için aynı nesne örneği kullanıldığından Vector sınıfları artık veri sınıfı olmayacak şekilde değiştirildi.
Vektörün içeriği değişirse koşullu olarak yeniden çizmek amacıyla VectorPainter için mutableStateOf işareti eklendi.
Kompozisyonlarda yeniden kullanıldığı için VectorPainter'ın bir parçası olacak şekilde yeniden düzenlendi.
GroupComponent ve PathComponent, ad alanlarının değişken olmasını sağlayacak şekilde güncellendi (Ieae45, b/151378808)
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine alt öğe düzenindeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)Zaman farkı satır içi bir sınıf oldu (Iaec70)
Seçim Kapsayıcısına bir değiştirici parametre eklendi (I4aada, b/161487952)
Desteği sonlandırılan FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) kaldırıldı
SemanticsPropertyKey
klasörünemergePolicy
lambda eklendi. Bu, birleştirmeAllDescendants anlamsal birleştirme işlemi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten varsa üst değer, değilse alt değer kullanılır. (Iaf6c4, b/161979921)Kısıtlamalar artık satır içi bir sınıf (I88736)
Ortak odaklama mantığını AndroidComposeView'un dışına taşıyan FocusManager eklendi (I528ef, b/161487952, b/162206799)
Alfa sürümü için PointerEventPass adları güncellendi. (Ifda6f)
IntOffset artık satır içi bir sınıf (Iac0bf) oldu
IntSize artık satır içi bir sınıftır (I2bf42)
PlacementScope.placeAbsolute()
,PlacementScope.place()
, ö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ılarını ait oldukları yerde olmadıkları için herkese açık hale getirdiler. Gelecekte herkese açık hale getirilecek. (I32ab1)
İşaretçi giriş kodunun düzeni yeniden düzenlendi. (Ie3f45)
PxBound'lar kullanımdan kaldırıldı, rect'in yerini aldı. PxBounds'un tüm kullanımları dikişli olacak şekilde güncellendi ve taşımaya yardımcı olacak ek açıklamalarla uygun şekilde kullanımdan kaldırıldı/değiştirildi. (I37038, b/162627058)
Kullanımdan Kaldırılan KeyEvent2 kaldırıldı. Bunun yerine KeyEvent'i kullanın. (Ied2d0, b/162097587)
KeyEvent, belirtilen anahtar ve meta tuş durumu kombinasyonu (If3afc) tarafından oluşturulan unicode karakterini almak için kullanılabilecek bir unicode özelliğine sahiptir.
Büyük olasılıkla değiştirileceği için Ertelemeli Özel etkinliği ve ilgili sınıfları bir API'ye dahil hale getirdi. (I56d6f)
Artık ihtiyaç duyulmayan 2 PointerEventPass kaldırıldı. (I3dd9d)
Paragraph.paint uygulamasına renk, gölge ve TextDecoration parametresi ekleyin. Bu işlev, gereksiz Paragraf yeniden oluşturma işlemlerinden kaçınmanıza yardımcı olur. (I81689)
Hata Düzeltmeleri
- TextField'den onFocusChanged geri çağırması kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Değiştirici.drawBorder desteği sonlandırıldı. Bunun yerine Değiştirici.sınırı kullanın. Sınır veri sınıfı BorderStroke (I4257d, b/158160576) ile değiştirildi
Desteği sonlandırılan FrameManager çağrıları kaldırıldı.
Dahili yazma API'leri,
mutableStateof()
(I80ba6) gibi durum nesnelerini izlemek için gereken ek yükü azaltacak şekilde değiştirildiVertical Scroller ve Horizontal Scroller kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Değiştirici.drawArka Plan kaldırıldı. Değiştirici.background'ı kullanma (I73b0d, b/163019183)
For döngüsü içinde kullanılan durumu kaydeden bir şey düzeltildiğinde kilitlenme. SaveInstanceState() işlevinde aynı anahtarın kullanılmasına artık izin veriliyor. UiSavedStateRegistry API'si artık bu yeni gereksinime (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561) göre ayarlanmıştır
state { ... }
composable, artık daha net bir ifadeyleremember { mutableStateOf(...) }
öğesine yapılan açık çağrılar için kullanımdan kaldırıldı. Bu, genel API yüzeyini ve eyalet yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkisi içinby mutableStateOf()
kalıbıyla eşleşir. (Ia5727)Oluşturma adlandırma kalıplarına daha uygun olması için RRect'in adı RoundRect olarak değiştirildi RRect'e benzer işlev oluşturucuları ve desteği sonlandırılan RRect işlev oluşturucuları (I5d325) oluşturuldu
Sürüm 0.1.0-dev16
5 Ağustos 2020
androidx.compose.ui:ui-*:0.1.0-dev16
yayınlandı. Sürüm 0.1.0-dev16 bu kaydetmeleri içerir.
API Değişiklikleri
- OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned kullanın. (I87f95, b/162109766)
- setViewContent kullanımdan kaldırıldı. Bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
- ViewBinding'e göre düzen kaynaklarını şişirmek ve oluşturmak için AndroidViewBinding API eklendi. (I081c6)
- KeyEvent2, KeyEvent ile değiştirilir (I2d770, b/162097585)
- Alternatif donanım anahtarı (I9036b) için destek eklendi
- FocusManager Desteği Sonlandırıldı. Bunun yerine Modifier.focus(), Modifier.focusObserver() ve Modifier.focusRequester()'ı kullanın. (I74ae4, b/162211322)
- loadVectorResource, trimPath özelliklerini (I808fe) destekler
- İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
- Artık ihtiyaç duyulmayan 2 PointerEventPass kaldırıldı. (I33ca7)
- MotionEvents alma ve Compose ile Android View uygulaması gibi etkileşimde bulunma olanağı sağlayan PointerInteropModifier uygulandı. (Ieb08c)
- Kullanımdan kaldırılan etiket değiştirici kaldırıldı. Lütfen bunun yerine layoutId değerini kullanın. (Idaa05, b/162023919)
- Sağdan sola destek API'leri güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient özelliği eklendi. Değiştirici.rtl ve Modifier.ltr kaldırıldı. (I080b3)
- Vektör grafiklerinde yol kırpma desteği (Ie16c9, b/158188351)
- Kolay bir şekilde özel bir düzen değiştirici oluşturmaya olanak tanıyan Modifier.layout() eklendi (I73b69, b/161355194)
- Yeni bir AndroidView API eklendi ve mevcut API'ler kullanımdan kaldırıldı. (I5bcfd)
- Değiştirici.plus desteği sonlandırıldı. Bunun yerine Değiştirici.then'i kullanın. "O zaman" ifadesi daha güçlü bir sıralama sinyaline sahiptir ancak
Modifier.padding().background() + anotherModifier
yazılmasını yasaklayarak zinciri bozar ve okunması daha zordur (Iedd58, b/161529964) - Compose içeriğini Görünüm hiyerarşisinde barındırmak için [Abstract]ComposeView alt sınıflarını ekleyin. (I46357)
Row
veColumn
artık satır içi işlevler sunuyor ve bu şekilde kullanım ek yükünü önemli ölçüde azaltıyor. (I75c10)- SubcomposeLayout eklendi. Bu, ancak daha sonra alt ağaç bileşimi ölçümü sırasında kullanılabilir olan bazı değerleri kullanmak istersek, ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan alt düzey bir temel öğedir. Örneğin, WithConstraints SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)
- Oluşturma hiyerarşisinin (Icdf26, b/161336532) köküne göre bir SemanticsNode'un konumunu almak için
SemanticsNode.positionInRoot
eklendi - MotionEvents, Android'den tamamen Compose'a ve ardından tekrar Android'e geçirdi. (I14be8, b/158034713)
- AçılırPop-up kaldırıldı. (I00430)
- Kesik ekranlardaki pop-up konumu sabitlendi. (Idd7dd)
- TextLayoutResult (I9d6e6) öğesini almak için erişilebilirlik işlemi ekleyin
- RemeasurementModifier eklendi. Düzenin eşzamanlı olarak yeniden ölçülmesine olanak tanır. Genel olarak, yeniden ölçüm/yeniden düzenleme otomatik olarak gerçekleştiğinden bunlara hiçbir zaman ihtiyacınız yoktur ancak kaydırma sırasında LazyColumnItems'in içinde kullanırız. (I5f331, b/160791058)
- getLineEllipsisOffset/getLineEllipsisCount öğesini kaldırın. Bunun yerine getLinevisibleEnd/getLineEnd/isLineEllipdimension'ı kullanın. (I85aa2)
- En iyi uygulama nedeniyle birkaç İşaret/Not ekleyin. (I66b20)
- TextLayoutResult'da daha fazla satır API'si gösterir. (I79bd2)
- Yerleşik birimleri dönüştürmek için kullanılan dahili vektör dönüştürücülere artık Foo.VectorConverter üzerinden erişilebiliyor. ör.Dp.VectorConverter, Color.VectorConverter, float.VectorConverter vb. (I3e273)
Hata Düzeltmeleri
- Genel API düzeltmelerini adresleyin (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Tutarlı bir API yüzeyine sahip olacak şekilde Ofset ve IntOffset sınıflarını hizalayın
- Offset API ile tutarlı olması için IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın
- Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için NativeCanvas yöntemi Canvas arayüzünün dışına taşındı
- DrawScope'u lateinit yerine boş olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın null olmadığından emin olmak için BlankCanvas saplama sınıfı oluşturuldu
- 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 lateinit parametrelerini kullanmayacak
- DrawScope güncellendi, artık dolguPaint ve stepPaint dahili parametreleri için geç yetki kullanılmayacak
- Daha az ek yük için Box kullanımını önlemek için composable'ı güncelleme
- Outline sınıfı, @Sabit ek açıklamaları içerecek şekilde güncellendi
- PathNode, her yol talimatı için @Immutable ek açıklamaları içerecek şekilde güncellendi
- Oluşturma işlemi bunları zaten işlediğinden eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere Vektör alt bileşimi güncellendi
- Kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemleri, işlev kurucularının lehine
- Fırça sınıfları ve işlev oluşturucuları, @Immutable ve @Stable API'lerle güncellendi
- VertexMode sıralaması PascalCase olarak güncellendi
- DrawScope selectPaint yöntemi, değişmesi durumunda boyadaki çizgi parametrelerinin üzerine koşullu olarak yazılacak şekilde güncellendi
- Yapıyı kaldıran API'yi eklemek, UnspecifiedSize adını Belirtilmemiş olarak değiştirmek ve kullanılmayan yöntemleri kaldırmak için Boyut güncellendi
- Oluşturma BlendMode API tüketimi, API düzeyine bağlı olarak Android çerçevesi BlendModes ile PorterDuff modları arasında doğru eşleme sağlamak için güncellendi. BlendMode'un, kullanılmadan önce cihazda desteklenip desteklenmediğini belirlemek için yetenek sorgusu görevi görmesi için BlendMode#isSupported API kullanıma sunuldu. (I0ef42)
- LazyItemScope, Geç listelerin itemContent parametresi için eklendi. Üst maksimum boyutu doldurmak için değiştiriciler sağlar. Böylece, öğenin görüntü alanını doldurması gerektiğinde kullanım alanı çözülür ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğünden normal Modifier.fillMaxSize() çalışmaz. (Ibd3b2, b/162248854)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
kullanın. (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ı yukarıdaki Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
- FocusModifier; Değiştirici.focus, Modifier.focusRequester, Modifier.focusObserver'ın yerini alması için kullanımdan kaldırılmıştır. FocusState ve FocusAyrıntılıState kullanımdan kaldırılarak, FocusState2'nin kullanılması (I46919, b/160822875, b/160922136)
- Odak durumu değişikliğini gözlemlemek için bir değiştirici eklendi. (I05866, b/160924455, b/160923326)
- Odak değişikliği isteğine düzenleyici eklendi (I8dd73, b/161182057, b/160924778)
- Kopyalama, kesme ve yapıştırma işlemlerini düzgün bir şekilde göstermek için Araç Çubuğu Menüsünü ayarlayın. (Id3955)
- Tek değerli anlamsal özellikler artık bir çağrı stili kullanır.
Örneğin, "anlamsal {gizli = doğru }", artık şu şekilde yazılıyor:
semantics { hidden() }
. (Ic1afd, b/145951226, b/145955412) - FocusModifier'ın yerini alan Değiştirici.focus eklendi. (Ib852a, b/160924778)
- Metin Alanı Seçimi için Kayan Araç Çubuğu ekleyin. (Ie8b07)
- Anahtar girişleriyle ilgili API (I53c0a) için deneysel bir API ek açıklaması eklendi
- Focus ile ilgili tüm API'ler için deneysel bir API ek açıklaması eklendi (I53b24, b/160903352)
- FocusAyrıntılıState'in yerini alacak FocusState2 eklendi (I0a3ba, b/160822595)
- Focus API için @OptIn ek açıklaması olan ExperimentalFocus eklendi. (I1544b, b/160820961)
- Düzenden tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'sı bunu kullanacak şekilde güncellendi. (I0d8d0, b/159596546)
- Applier artık besteleri atmak için clear() yöntemi gerektiriyor (Ibe697)
- KeyEvent'in desteği sonlandırılmıştır. Bu etkinliğin yerini KeyEvent2 (I68730) alır.
- Test bulanlara isteğe bağlı yeni bir useUnmergedTree işareti eklendi. (I2ce48)
- Made LayoutNode deneysel API'sı (I4f2e9)
Aşağıdakiler de dahil olmak üzere çeşitli satır içi sınıf türlerine kopyalama yöntemleri eklendi:
- Zaman farkı
- Boyut
- Yarıçap
- Hareket
Dönüşüm Kaynağı
Kullanımdan kaldırılan Size.copy tamamlayıcı nesne yöntemi, örnek kopyalama yöntemi lehinedir (Ife290, b/159905651)
Pop-up'lar, iletişim kutuları ve menüler artık içeriğe dayalı MaterialTema'yı (Ia3665, b/156527485) devralıyor
TextDirection, SolutiondTextDirection (I3ff38) olarak yeniden adlandırıldı
Layout() işlevinin ölçüm bloğundan düzen yönü parametresi kaldırıldı. Bununla birlikte düzen yönü, ölçüm kapsamı nesnesi (Ic7d9d) ile geri çağırma içinde kullanılabilir
Yeniden kullanmak için Seçim Tutamaklarını yeniden düzenleyin. (I420e0)
Tıklanabilir öğe kaldırıldı. Değiştirici.clickable'ı kullan (I84bdf)
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i kullanın (I15ff0, b/158841414)
Bu değişiklikten önce, oluşturma derleyici eklentisi, @Composable işlevinin içinde bir (I5205a, b/158123804) bulunan kuruculara yapılan çağrılara sıra dışı bir şekilde müdahale ediyordu.
Değiştirici.tag, Modifier.testTag ile karışmasını önlemek için Değiştirici.layoutId olarak yeniden adlandırıldı. (I995f0)
Placeable#get(alignmentLine)'dan döndürülen hizalama satırı Int konumları artık null değildir. Sorgulanan hizalama satırı eksikse HizalamaÇizgisi.Belirtilmemiş döndürülür. (I896c5, b/158134875)
AndroidView composable'a bir değiştirici parametre eklendi. (I48a88, b/158746303)
Semantics() desteği sonlandırıldı. Bunun yerine Değiştirici.semantics() işlevini kullanın. (I72407, b/158841414)
Etkinlik veya Parça (I5fdd1) içindeki çalışma şekline benzer şekilde ViewModel oluşturulmasına veya önceden oluşturulmuş ViewModel'in oluşturulmasına olanak tanıyan viewModel() composable ekleyin
IntPx kullanımı Int ile değiştirildi. IntPxPosition, IntOffset olarak değiştirildi. IntPxSize, IntSize olarak değiştirildi. (Ib7b44)
Boyutlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek için PxSize yerine Boyut sınıfının kullanımını standartlaştırın. Bu, satır içi sınıfın, kayan olarak temsil edilen genişlik ve yüksekliği temsil eden uzun paket 2 kayan değerinden yararlanma avantajını sağlar. (Ic0191)
Konumlandırma bilgilerini temsil eden sınıf sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, satır içi sınıfın x ve y ofsetlerini hareketli olarak temsil edilen x ve y ofsetlerini temsil etmesi için uzun paket 2 kayan değerden yararlanma avantajını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve temel türleri temel alan büyük yeniden düzenleme çalışmaları kapsamında, çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve temel türleri temel almaya yönelik büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (I086f4)
Piksel parametreleri için yalnızca Dp ve temel türleri temel almaya yönelik büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (Id3434)
Piksel parametreleri için yalnızca Dp ve temel türlere dayanacak şekilde yapılan büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (I97a5a)
TestTag'in desteği sonlandırıldı. Bunun yerine Değiştirici.testTag'i kullanın. (If5110, b/157173105)
Varsayılan, işlemsiz ParentDataModifier#modifyParentData uygulaması kaldırılmıştır. Bu, en başta arayüzün uygulanmamasıyla eşdeğerdir. (I0deaa)
Daha önce ScaleFit'in desteği kaldırılmıştı. Bunun yerine ContentScale'i kullanın. (Ifbc5b)
Piksel parametreleri için yalnızca Dp ve temel türleri temel almaya yönelik büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (I19d02)
ui-material öğesine DropdownMenü bileşeni, bir Materyal Tasarım menü uygulaması eklendi. (I9bb3d)
Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Değiştirici.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Değiştirici.matchParentSize() işlevini kullanın. (If8044)
Piksel parametreleri (I57bff) için yalnızca Dp ve temel türleri temel alan büyük yeniden düzenleme çalışmaları kapsamında, çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi
Değiştirici.semantik özelliği, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırıldı. (I4cfdc)
Birleştirilmiş CanvasScope uygulamaları artık yalnızca DrawScope ve ContentDrawScope yeniden adlandırıldı CanvasScope, DrawScope olarak adlandırıldı. DrawScope, Yoğunluk arayüzünü uygulamak ve ContentDrawScope'ta LayoutDirection (LayoutDirection) Silinen DrawScope alt sınıfını sağlamak için güncellendi DrawScope bunu manuel olarak sağlamadan zaten RTL özelliğini sağladığından artık RTL mülkünü sürdürmeyecek şekilde güncellendi (I1798e)
DoubleTapHareketFilter artık ağaç genelinde SingleTapHareketFilter ayırır. (If92b1)
Hizalama API'si güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)
DrawKatman değiştiricileri api'si değiştirildi: outlineShape, şekil olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip ve artık nullable değil. KlipToOutline, klip olarak yeniden adlandırıldı; RectangleShape ile gösterilen klip == true ile aynı olduğu için klibin kaldırılması (I7ef11, b/155075735)
Bunun yerine CanvasScope'u açığa çıkarmak için bir Tuval'i açığa çıkaran daha üst düzey oluşturma API'leri güncellendi. Bu, tüketicilerin kendi Paint nesnelerini yönetme ihtiyacını ortadan kaldırır. Hâlâ bir Tuval'e erişmesi gereken tüketiciler, temel Canvas'la çizim komutları vermek için geri çağırma sağlayan "drawCanvas" uzantı yöntemini kullanabilir. (I80afd)
WithConstraints takip eden lambda API değiştirildi. Artık iki parametre yerine, sınırlamalara ve layoutDirection'a ek olarak, Dp'de (I91b9a, b/149979702) minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Kullanımdan kaldırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Layout ve LayoutModifier2 üzerindeki içsel ölçüm işlevlerinde, artık örtülü olarak yayılan düzen yönü ile intrinsics sorgu API'si sağlayan bir IntrinsicMeasureScope alıcısı bulunuyor. (Id9945)
Layout ve LayoutModifier alt öğeleri, farklı bir düzen yönüyle ölçülebilir. (Ibd731)
Aynı üst düzen içinde alt öğelerin çizim sırasını kontrol etmek için yeni Değiştirici.zIndex() eklendi. DrawlayerModifier'daki yükselti özelliği shadowElevation olarak yeniden adlandırılır ve artık çizim sırasını kontrol etmez. DrawShadow parametre sıralaması değiştirildi: Yükseklik artık ilk sırada, şekil ise RectangleShape varsayılanıyla ikinci sırada. (I20150, b/152417501)
Sahip bölümündeki onSizeChange ve onPositionChange kaldırıldı. (I5c718)
IntPx yerine yalnızca Int connstraints değerlerini destekleyen Kısıtlamaların kopyası Constraints2 eklendi. IntPx kaldırılır ve tüm tam sayı kısıtlamalarının Android gibi piksel olduğu varsayılır.
- IntSize da eklendi. Bu boyut, IntPxSize'ın yerini alacaktır. (I4b43a)
Hizalama rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar Eklendi. (Ia0c05)
levelToSiblings artık Yerleştirilebilir yerine Ölçülmüş kabul etmeyi kabul ediyor. (I5788d)
-
- ScaleFit, ContentScale olarak yeniden adlandırıldı
- ContentScale, Hizalama API'si ile aynı modülde yayınlanmak üzere kullanıcı arayüzü grafiklerden kullanıcı arayüzü modülüne taşındı.
- FillMaxDimension, Kırpılacak olarak yeniden adlandırıldı
- FillMinDimension Fit olarak yeniden adlandırıldı
- Daha iyi eşleşecek şekilde Fit, Inside olarak yeniden adlandırıldı
- ImageView.ScaleType eşdeğerleri
- Kırpma ve Hizalama Merkezi kombinasyonunun ImageView.ScaleType.CENTER_CROP ile birlikte kullanılan Fit, ImageView.ScaleType.FIT_CENTER ile aynı sonucu sağladığını ve ImageView.ScaleType.FIT_CENTER ile aynı sonucu elde ettiğini gösteren dokümanlar eklendi.
Çizim değiştiricileri için Rtl desteği. (I0aaf9)
Android Görünümlerini XML'den şişirmek için API yayınlandı. Daha fazla bilgi için ViewInCompose demosuna bakın. (I42916)
DrawModifier API'sini iyileştirin:
- Paint() ContentDrawScope için alıcı kapsamı oluşturuldu
- Çizimler() işlevindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahiptir
- ContentDrawScopedrawContent() yöntemini içerir (Ibaced, b/152919067)
LayoutKoordinatlar içinpositionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
DrawKatmanModifier vedrawlayer() artık varsayılan olarakClipToBounds ve klipToOutline için false (yanlış) değerini alır. (I0eb8b, b/152810850)
LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)
Düzen değiştiricileri tanımlamak için kullanılan yeni bir API olan LayoutModifier2 eklendi, LayoutModifier (If32ac) kullanımdan kaldırıldı.
Değiştirici artı operatörü, fabrika genişletme işlevleriyle değiştirildi (I225e4)
Belirli bir Katman için çizim komutlarının görüntüleme listesinin ofsetini değiştirmeyi desteklemek üzere translateX/Y özellikleri eklendi. Bu, içeriğin animasyonlara veya dokunma etkinliklerine yanıt olarak taşınmasında yararlıdır. (I8641c)
Bir katmandaki belirli bir nokta etrafında döndürme ve ölçeklendirmeyi desteklemek için Katman API'lerine pivotX ve pivotY parametreleri eklendi (Icf7c3).
OnPositioned ve OnChildPositioned composable işlevlerinin yerine geçmek için OnPositionedModifier ve OnChildPositionedModifier ekleyin. (I2ec8f)
Düzen için RenderNode eklenmesine olanak tanıyan bir değiştirici olan KatmanModifier eklendi. Kaydırma, opaklık, döndürme, ölçeklendirme ve gölge ayarlamalarına olanak tanır. Bu, RepaintBoundary'nin yerini alacak. (I7100d, b/150774014)
Düzen yönünün, üst düzen düğümünden alt öğelere yayılması yapıldı. Düzen yönü değiştiricisi eklendi. (I3d955)
Yığın bileşeni, sağdan sola yönü destekler (Ic9e00)
Compose düzeninde Rtl için ilk destek (Ia5519)
Yoğunluk ve Yoğunluk Kapsamı tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kullanabilirsiniz. withDensity(yoğunluk) yerine sadece(yoğunluk) (I11cb1)
LayoutKoordinatlar, providedalignmentLines'ı Harita yerine bir Set olarak kullanmak ve LayoutKoordinatlar'ın bir değer almak için bunun yerine get() operatörünü uygulamasını sağlamak amacıyla değiştirilmiştir. Bu sayede, her değiştirici için yeni bir koleksiyon oluşturmadan değiştiricilerin, kümenin bir veya daha fazla değerini kolayca değiştirmesi kolaylaşır. (I0245a)
Düzen Koordinatları artık konum özelliğine sahip değildir. LayoutModifiers, rotasyon veya ölçeklendirme göz önünde bulundurulduğunda konum özelliği bir anlam ifade etmez. Bunun yerine, geliştiriciler bir LayoutKoordinatör'den diğerine dönüşümü hesaplamak için parentcoordinates ve childToLocal() kullanmalıdır.
Layoutords, boyut özelliği için PxSize yerine IntPxSize kullanır. Düzenler, düzenler için tam sayı piksel boyutlarını kullanır. Bu nedenle tüm düzen boyutları, kayan nokta değerleri yerine tam sayılar kullanmalıdır. (I9367b)
Kısıtlamaların API yüzeyinde yapılan iyileştirmeler (I0fd15)
Durum bilgisiz, bildirim temelli bir çizim API yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır. Boyutlandırma bilgileri de ilgili iç sınırların kapsamına alınır. Bir tüketicinin, çizim işlemlerini yapılandırmak için kendi Boyama durumu nesnesini tutmasını gerektirmez.
- CanvasScopeSample eklendi ve demo uygulaması bildirime dayalı grafik demosu (Ifd86d) içerecek şekilde güncellendi.
Kullanılmayan MaskFilter API, kullanımın sınırlı olduğu ve çoğu kullanım alanında donanım hızlandırma için optimize edilmediği için kaldırıldı (I54f76)
RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics* konumuna taşındı. (Ia74d5, b/154507984)
API'deki tüm null değer içeren Color kullanımları null olmayan değer ile değiştirildi ve null yerine Color.Unset kullanılır (Iabaa7)
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizilmesini desteklemek için ImagePainter'a isteğe bağlı ek rect parametresi ekleyin
Renkler kutusu eklenmeden, ayarlanmamış bir değeri temsil etmek için Ayarlanmayan Renk özelliği eklendi. (If901a)
Dönüşümler için isteğe bağlı pivot koordinatlarını kullanmak amacıyla Canvas.rotate ve Canvas.scale genişletme yöntemleri eklendi. Bunlar varsayılan olarak geçerli tuval çevirisinin sol üst köşesinde görünür.
Ayrıca Canvas.rotateRad, tutarlılık için bir uzantı yöntemi olarak taşındı (Ibaca6)
ImageAsset'teki piksel bilgilerinin sorgulanmasını desteklemek için PixelMap API'si oluşturuldu. (I69ad6)
ToFrameworkRect/toFrameworkRectF'in adı, oluşturma ve temel alınan Android çerçeve API'leri arasındaki nesne dönüşümleri için adlandırma kuralına uygun şekilde toAndroidRect/toAndroidRectF olarak yeniden adlandırıldı. Bu API'lerle ilgili dokümanlar da güncellendi (I86337)
Vektör grafikleri için mevcut alt bileşen API'sinin yerini alması amacıyla VectorPainter API eklendi. Alt bestenin sonucu, DrawModifier yerine bir VectorPainter nesnesidir. Önceki DrawVector composable'larının desteği, VectorPainter'ın adına kullanımdan kaldırıldı.
Image(Painter) API, PaintBox(Painter) olarak yeniden adlandırıldı ImageAsset yerine VectorAsset hariç olmak üzere Resim composable gibi davranan Vektör composable'ı oluşturuldu (I9af9a, b/149030271)
Resim verileri ile düzene katkıda bulunmak ve içerik çizmek için kullanılan yeni Image composable arasındaki farkı daha iyi ayırt etmek için Resim, ImageAsset olarak yeniden adlandırıldı. _Body:Geleneksel Android uygulaması geliştirmeyi, yazma çerçevesiyle (Id5bbd) birleştirmeye yarayan bir ImageAsset örneği oluşturmak için android.graphics.Bitmap, Bitmap.asImageAsset() üzerinde bir uzantı yöntemi oluşturuldu.
TextDirection.Content eklendi (I48f36)
TextDecoration.plus operatörü eklendi (I0ad1a)
Force
, TextDirectionAlgorithm enum değerlerinden (Icc944) kaldırıldıTextDirectionAlgorithm, TextDirection (I75ce8) olarak yeniden adlandırıldı
Metin Alanı Seçimi için Long PressAndDrag uygular. (I17919)
Aralık içindeki tüm ek açıklamaları döndüren AnnotatedString.getStringDescriptions eklendi. (I1fa00)
Yerel Ayar ve Yerel Liste için androidx.ui.text olan paket adı androidx.ui.intl (I8132c) olarak değiştirildi
TextField'in imlecinde yanıp sönen bir animasyon var (Id10a7)
API değişikliği: AnnotatedString(builder: Builder), structureddString(builder: Builder) olarak yeniden adlandırılır. (Ia6377)
API değişikliği: AnnotatedString.Item, AnnotatedString.Range olarak yeniden adlandırıldı. (I2d44d)
AnnotatedString.Builder.addDescriptionString olarak addStringDescription değerini yeniden adlandırın. (I5059e)
Artık onTextInputStarted geri çağırması (I8dc44, b/151860051) tarafından sunulan SoftwareMusicController kullanılarak yazılım klavyesi gizlenebilir/gösterilebilir.
(Text/Paragraf/Span)Style için birleştirme() işlevine yetki veren artı operatörü eklendi. (Ia1add)
Fontweight.lerp artık tutturulmuyor. Yine de bir veri sınıfıdır. (I521c2)
Fontweight oluşturucu artık herkese açık ve artık veri sınıfı değil. (Id6b1f)
TextLayoutResult'a getLineStart, getLineEnd, getEllipsisOffset ve getEllipsisCount'u ekleyin (Ibc801)
ui-text modülü, ui-text-core (I57dec) olarak yeniden adlandırıldı
Kullanılmakta olan ui-geometry modülünde yinelenen bir Boyut sınıfı olduğu için kullanılmayan Boyut sınıfı kaldırıldı. (I1b602)
Yalnızca görünür öğeleri oluşturan ve düzenleyen bir kaydırma liste bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerindeki değişikliklerin tüm durumlarını tam olarak ele almaması yer alır. (Ib351b)
Box'a dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)
Hata Düzeltmeleri
- Metin alanlarında onFocusChange geri çağırması onFocusChanged olarak (Ida4a1)
- Vertical Scroller ve Horiziontal Scroller desteği sonlandırıldı. Column/Row davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u ya da kendi öğenizde Değiştirici.verticalKaydırma ve Modifier.Yatay Kaydırma'yı kullanın. Benzer şekilde, ScrollerPosition desteği ise ScrollState'in (I400ce, b/157225838, b/149460415, b/154105299) kullanılmasıyla sonlandırılmıştır.
runOnIdleCompose
,runOnIdle
(I83607) olarak yeniden adlandırıldı- Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. TümfindXYZ API'leri, onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri, performXYZ olarak yeniden adlandırıldı. (I7f164)
- Oluşturma kullanıcı arayüzü, artık yeni oluşturma işlemi gerekmeden ViewGroups içinde oluşturulabilir. Örnek için ViewInteropDemo konusuna bakın. (I9ab0b, b/160455080)
- MutableVector'a SortWith ve removeRange özellikleri eklendi (Icccf7)
- TextField seçimini değiştirmek için Seçim Tutamaçlarını Sürükleyin. (I27032)
- NativeShader bekleme sınıfını sarmalayan Gölgelendirici satır içi sınıfı kaldırıldı. Bu sınıf, NativeShader'ı Gölgelendirici olarak yeniden adlandırdı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklemedi ve satır içi bir sınıftı. Bu nedenle doğrudan NativeShader sınıfını kullanın. (I25e4d)
PainterModifier, artık verilen kısıtlamalara ve ContentScale parametresine göre ölçeklendirme sağlamayacak şekilde yeniden düzenlendi. Painter'ın uygulamaları, çizim içeriklerinin kendilerini, çizdikleri DrawScope'un belirtilen boyutuna göre ölçeklendirmektir.
VectorPainter'ın önbellek bit eşleminin, kullanılacak belirli boyut yerine varsayılan boyutuna göre boyutlandırılması sorunu düzeltildi.
ImagePainter'ı güncelleyerek PainterModifier'ın bunu yapmasına güvenmek yerine içeriğini ölçeklendirmesini sağladı. (I6ba90)
animasyon zamanlaması için üst düzey withFrameNanos işlevi ekleyin (Ie34c5)
@Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) (Id211e) ile değiştirin
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'ları da kullanımdan kaldırıldı. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)
Disptach sırasında alt bileşim aracılığıyla PointerInput Controls kaldırılırsa işaretçi giriş gönderme işleminin kilitlenmeye neden olması sorunu düzeltildi. Bu sorun artık düzeltildi. (I1f48b, b/157998762)
Disptach sırasında alt bileşim aracılığıyla PointerInputFiltreler kaldırılırsa işaretçi giriş göndermenin kilitlenmeye neden olmasıyla ilgili sorun düzeltildi. Bu sorun artık düzeltildi. (Iab398, b/157998762)
Yarıçap sınıfı, satır içi sınıf olacak şekilde yeniden düzenlendi. Y eksenindeki yarıçapın zorunlu x ekseni yarıçap parametresiyle aynı olması için varsayılan parametreye sahip işlev oluşturucu yerine tamamlayıcı oluşturma yöntemleri kaldırıldı.
DrawScope.drawroundRect, x ve y eksenindeki yarıçap için 2 ayrı kayan alan değeri (I46d1b) yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi.
Recompose compose, artık kullanışlı bir soyutlama değil. Çoğu yeniden oluşturma işlemi, MutableState atamalarının sonucu olarak gerçekleşir. Bunun dışındaki her şey için geçerli kapsamın yeniden oluşturulmasını tetiklemek üzere
invalidate
işlevini kullanmanız önerilir. (Ifc992)Piksel parametreleri için yalnızca Dp ve temel türlere dayanacak şekilde yapılan büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (Iede0b)
Compose'un derleyicisinin kod oluşturma stratejisini değiştirir. Değişiklikten önce, oluşturma derleyicisi çağrıları composable işlevlere dönüştürüyordu. Bu değişiklikle birlikte, composable işlevin gövdesini değiştiriyor ve çağrı sitesini (çoğunlukla) değiştirmeden bırakıyoruz.
Bu, oluşturma çalışma zamanıyla iletişim kurma mantığının büyük kısmının, çağrı sitesi yerine işlev gövdesinin başında gerçekleştiği anlamına gelir.
Bu, tüm oluşturma kullanımı için kaynakla uyumlu bir değişiklik olmalıdır. Oluşturmayı kullanan çoğu kullanıcı, bu değişikliğin sonucunda herhangi bir kodu güncellemek zorunda kalmaz.
Bu çalışmayı desteklemek için tüm composable işlevlerin JVM imzası değişti. Tek bir parametreyi kabul eden Oluşturulabilir işlev, 3 parametre kabul eden bir işleve dönüştürülür. Ek parametreler, "anahtar" tam sayısı ve çağrılar aracılığıyla meta verileri yaymak için kullanılan bir bit maskesi tam sayısı olan Composer'dır.
Compose, artık varsayılan bağımsız değişkenleri de composable işleve dönüştürüyor. Bunu, işlevin kendisine varsayılan olarak fazladan bir yapay varsayılan aşırı yükleme getirmeden gerçekleştirir. Dolayısıyla bu değişiklik, daha az işlevin tanımlanmasına neden olur.
Bu durumdan kaynaklanan bilinen, kasıtlı davranış değişiklikleri:
- 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ı boyunca daha az iş yapılmasını sağlar 4. İşlevlere yönelik kullanılmayan dağıtım ve alıcı parametreleri, işlevin gövdesinde kullanılmıyorsa işlevin atlanabilirliğinin belirlenmesine dahil edilmez.
Zarar veren değişikliklerin çoğu, derleyicinin doğrudan hedeflediği API'lerle ilgiliydi ve tipik oluşturma kullanımı bundan etkilenmeyecek: 1. Composer::startExpr kaldırıldı 2. Composer::endExpr kaldırıldı 3. Composer::call desteği sonlandırıldı 4.
key
öğesinin vararg olmayan aşırı yüklemeleri kaldırıldı. Bundan sonravararg
sürümünü kullanın. 5. Pivotal ek açıklaması kullanımdan kaldırıldı. Alternatif olarakkey
kullanın. 6. ScopeUpdateScope::updateScope, İşlev1 yerine bir Function3 beklenecek şekilde değiştirildi. Yeniden çalıştırılabilir işlev ve yeniden başlatılabilirFunctionN, ek derleme süresi parametrelerini içerecek şekilde güncellendi (I60756, b/143464846)Kullanımdan kaldırılan Layoutalign değiştiricileri kaldırıldı. (I10877)
DrawKatmanModifier (I00aa4) adına RepaintBoundary kaldırıldı
Button, floatingActionButton ve Clickable artık ayrı bir
enabled
parametresine sahip. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)ButtonStyle, farklı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenmiş örneklere göz atın. (If63ab, b/146478620, b/146482131)
Ambiyans API'sinde büyük değişiklikler yapılıyor. Ayrıntılar için günlüğe ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)LayoutDirection tarafından belirlenecek varsayılan TextDirection davranışı değiştirildi. Yani, LayoutDirection (Düzen) yönü RTL ise varsayılan TextDirection, RTL olur. Daha önce TextDirection.ContentOrLtr/Rtl (I4e803) idi
Hata düzeltmesi: Yazı tipi ağırlığı ve yazı tipi stili, bir AnnotatedString üzerinde iç içe yerleştirildiğinde metin doğru şekilde oluşturulmuyor. (I77a9d)
Text()'ye yaygın olarak kullanılan parametreleri ekler. Şu anda Text(style = TextStyle(textHizala = TextHizala.Center) gibi bu parametrelerin az sayıda kopyasını iletmek için bir yerel metin stili oluşturuyorsanız, artık parametreleri doğrudan sağlayabilirsiniz: Text(textHizala = Textalign.Center) (I82768)
ui-android-text modülü, ui-text-android (I68cbe) olarak yeniden adlandırıldı