Temel Oluşturma
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
17 Nisan 2024 | 1.6.6 | - | - | 1.7.0-alpha07 |
Yapı
Oluşturma işlemi, androidx
içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her biri kendi sürüm notlarına sahip olan hedeflenmiş bir işlev alt kümesi içerir.
Bu tabloda, gruplar ve her sürüm notları grubunun bağlantıları açıklanmaktadır.
Gruplandır | Açıklama |
---|---|
compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun. |
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şenleriyle Jetpack Compose kullanıcı arayüzleri derleyin. Bu, Compose'un daha üst düzey giriş noktasıdır ve www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak için tasarlanmıştır. |
compose.material3 | Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşenler ile Jetpack Compose kullanıcı arayüzleri derleyin. Material 3, güncellenmiş tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri içerir ve yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
compose.runtime | Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanızın veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Modern
dependencies { implementation "androidx.compose.foundation:foundation:1.6.6" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.12" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.6.6") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.12" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme konusuna bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.7
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07
yayınlandı. 1.7.0-alpha07 sürümü bu kayıtları içerir.
Yeni Özellikler
LinkAnnotation
oluşturma ve bağlantılaraMaterialTheme
uygulayan HTML etiketli dizeyi ayrıştırma yöntemleri içeren birTextDefaults
nesnesi eklendi. (I98532, b/139312671)LazyVerticalGrid
veLazyHorizontalGrid
öğelerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Önceden, animasyonları yerleştirme (yeniden sıralama) özelliğini desteklemek içinModifier.animateItemPlacement()
değiştirici eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık veModifier.animateItem()
adında, üç animasyon türünü de desteklemenize olanak tanıyan ve deneysel olmayan yeni bir değiştiriciyi kullanıma sunduk: görünüm (kararak çıkma), kaybolma (sönme) ve yeniden sıralama. (Ib7d12, b/330510929)LazyVerticalStaggeredGrid
veLazyHorizontalStaggeredGrid
öğelerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Önceden, animasyonları yerleştirme (yeniden sıralama) özelliğini desteklemek içinModifier.animateItemPlacement()
değiştirici eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık veModifier.animateItem()
adında, üç animasyon türünü de desteklemenize olanak tanıyan ve deneysel olmayan yeni bir değiştiriciyi kullanıma sunduk: görünüm (kararak çıkma), kaybolma (sönme) ve yeniden sıralama. (I69bc9, b/330511290)
API Değişiklikleri
ContextMenuColors
ve ilişkilendirilmişLocalContextMenuTheme
ProvidableCompositionLocal
ekler. Metin alanlarındaki içerik menüsünün renkleri ve seçilebilir metin, yerel beste sağlanarak değiştirilebilir. (Ifa154)- Metin bağlantıları, üzerine gelindiğinde ve odaklanıldığında normal biçimlendirmeye ek olarak basıldı durumu stil seçeneği de aldı. (I5f864, b/139312671)
- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMargin
uygulamasını tanıtın.BasicTextField
için el yazısı hareketi desteklensin mi? (Ie6e13, b/325660505) - İlgili API yüzeyinin geri kalanını sabitlemeyi bitirecek vaktimiz olmadığından 1.7 sürümünde
DelegatableNode.scrollIntoView
kaldırıldı. Bu işlev, 1.8 sürümünde (I6cf61, b/333421581, b/332900232) yeniden kullanıma sunulacak. - Düzen koordinatlarını sorgularken, artık alt öğelerini
Placeable.PlacementScope.withDirectManipulationPlacement
kullanarak yerleştiren üst Düzenler 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ıkwithDirectManipulationPlacement
öğesini kullanarak bunları yerleştirebilir (varsayılan olarak kullanılan Kaydırma gibi). Bu,approachLayout
tabanlı animasyonların daha sezgisel olmasına yardımcı olur. Böylece animasyon eklenen ofseti ve yaklaşımlarını canlandırmaya karar verirken doğrudan neyin uygulanacağını ayırt etme fırsatına sahip olurlar. (I60ec7) LazyStaggeredGrid
içinrequestScrollToItem
ile tanışın. Müşteri artık her ölçüm geçişi içinrequestScrollToItem
yöntemini çağırarak anahtara dayalı dizinin korunmasını devre dışı bırakabilir. Bu işlem,requestScrollToItem
çağrılmadığı sürece mevcut davranışı hiçbir şekilde değiştirmez. (I63983)- Çağrı Cihazı'nda
requestScrollToPage
uygulamasını tanıtın. Müşteri artık her ölçüm geçişi içinrequestScrollToPage
yöntemini çağırarak anahtara dayalı dizinin korunmasını devre dışı bırakabilir. Bu işlem,requestScrollToPage
çağrılmadığı sürece mevcut davranışı hiçbir şekilde değiştirmez. (Ic4213) LazyGrids
içinrequestScrollToItem
kullanıma sunuldu. Müşteri artık her ölçüm geçişi içinrequestScrollToItem
yöntemini çağırarak anahtara dayalı dizinin korunmasını devre dışı bırakabilir. Bu işlem,requestScrollToItem
çağrılmadığı sürece mevcut davranışı hiçbir şekilde değiştirmez. (I0a7a0)ClickableText
, kullanımdan kaldırıldı olarak işaretlendi. Metne bağlantı eklemek için, bağlantınıza karşılık gelenLinkAnnotation
ile birAnnotatedString
oluşturun ve buAnnotatedString
öğesiniText
composable'ına (I34d4b, b/323346994) iletin.UrlAnnotation
desteği sonlandırıldı. Onun yerineLinkAnnotation.Url
kullanın. Malzeme teması kullanıyorsanızTextDefaults
nesnesini kullanarak ek açıklamayı Malzeme teması uygulanmış halde oluşturun (I8d180, b/323346545)String.parseAsHtml
öğesi,AnnotatedString.Companion.fromHtml
(I43dcd) olarak yeniden adlandırıldıparseAsHtml
yöntemine stil bağımsız değişkenleri (linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) ve bir bağlantı etkileşimi işleyici eklendi. HTML etiketli dizeyi<a>
etiketleriyle ayrıştırırken yöntem, bu tür etiketlerin her biri için birLinkAnnotation.Url
oluşturur ve her bir ek açıklamaya stil nesneleri ve bağlantı etkileşimi işleyiciyi iletir. (I7c977)LinkAnnotation
artık duruma dayalı stil bağımsız değişkenlerini veLinkInteractionListener
parametresini alıyor. Köprü almak için bu ek açıklamayıAnnotatedString
öğesine ekleyin.focusedState
ve/veyahoveredState
öğelerini ileterek bağlantılar için odaklanılan ve/veya fareyle üzerine gelindiğinde görsel yapılandırmayı tanımlayabilirsiniz. (I81ce4, b/139312671)- 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)- Yeni
BasicTextField
ile kullanıma sunulan diğer deneysel API'lerin büyük çoğunluğu sabitlendi. (I714e2) - İçeriklerin kodu karartılırken hangi karakterin kullanılacağını kontrol eden
textObfuscationCharacter
parametresiBasicSecureTextField
öğesine eklendi. (I0588b) NestedScroll
kaynaklarının Sürükle ve Kaydırma işlevi, artık animasyonlar (Yan Efekt) ile Fare Tekerleği ve Klavye (UserInput
) içeren bu kaynakların genişletilmiş tanımına uyum sağlamak içinUserInput
veSideEffect
ile değiştiriliyor. (I40579)- Kaydırılabilir değiştirici katmanına uygulanan, platforma bağlı bir odak kaydırma davranışı olan
LocalBringIntoViewSpec
'i tanıtın. (I27aa5, b/317453911) TextFieldCharSequence
kaldırıldı.TextFieldBuffer.originalValues
,TextFieldBuffer.originalText
veTextFieldBuffer.originalSelection
ile değiştirilir. (I2c7d6)ImeOptions.hintLocales
artık null işareti değil. Boş bir Yerel Ayar listesi iletmek istiyorsanız lütfenLocaleList.Empty
değerini kullanın. (Ic5bc4)getOffsetFractionForPage
,getOffsetDistanceInPages
olarak yeniden adlandırıldı. (Ia05e2)
Hata Düzeltmeleri
InputTransformations
next
ile birleştiğindeKeyboardOptions
artık yeniKeyboardOptions.merge
yöntemi kullanılarak bağımsız seçeneklerle düzgün şekilde birleştirilir. (Ie5304, b/295951492)AnchoredDraggableState
targetValue
artık konum eşiklerini dikkate almıyor. Artık %50'lik bir örtülü eşiğe sahiptir. Bu,targetValue
değerinin iki sabit arasındaki orta noktada değiştiği anlamına gelir. (I82c2c)
Harici Katkı
- 2 scroll API'sinin adı değiştirildi (I56a75)
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06
yayınlandı. 1.7.0-alpha06 sürümü bu kayıtları içerir.
Yeni Özellikler
LazyColumn
veLazyRow
öğelerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Önceden, animasyonları yerleştirme (yeniden sıralama) özelliğini desteklemek içinModifier.animateItemPlacement()
değiştirici eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık veModifier.animateItem()
adında, üç animasyon türünü de desteklemenize olanak tanıyan ve deneysel olmayan yeni bir değiştiriciyi kullanıma sunduk: görünüm (kararak çıkma), kaybolma (sönme) ve yeniden sıralama. (I2d7f7, b/150812265)LazyColumn/LazyRow
müşterileri, artık askıya alınma olmayanLazyListState.requestToScroll
özelliğini çağırarak yaklaşan ölçüm geçişinin anahtarına dayalı dizinlerin korunmasını devre dışı bırakabilir. (I98036, b/209652366)- Stil özellikleri ayarlanmış dizeler için
parseAsHtml
yöntemi eklendi: HTML etiketleriyle işaretlenmiş 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. (I84d3 gün) - Resmi Android API'sini (
ScrollCaptureCallback
) kullanarak Compose kaydırma kapsayıcılarındaki uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumlar doğru şekilde işlenemez. Bu nedenle şu anda varsayılan olarak devre dışıdır. Etkinleştirmek içinComposeFeatureFlag_LongScreenshotsEnabled
işaretini true olarak ayarlayın. Bu işaret, 1.7 beta sürümünden önce kaldırılacaktır. (I2b055, b/329296471) GraphicsLayer
örneklerinin yerleşimi ve oluşturulmasında daha fazla esneklik sağlamak veGraphicsLayer
değiştirici örneklerini belirtmek için Composable uygulamalarıyla koordinasyon sağlamak zorunda kalmadan içsel oluşturma özelliklerini desteklemek üzere yeniGraphicsLayer
API'sini kullanıma sunun.
API Değişiklikleri
- Tüm
KeyboardOptions
parametreleri artık varsayılan olarak belirtilmemiş bir değere sahip.KeyboardOptions.merge
yöntemi eklendi. KeyboardOptions.autoCorrect
öğesiautoCorrectEnabled
olarak yeniden adlandırıldı ve null özellikli hale getirildi. null, herhangi bir değerin belirtilmediğini gösterir. (Ia8ba0, b/295951492)outOfBoundsPageCount
,beyondViewportPageCount
olarak yeniden adlandırıldı. (I129c6)fun ClipEntry.getMetadata()
,val ClipEntry.clipMetadata
olarak değiştirildi. (I50155)TextFieldState.valueAsFlow()
kaldırıldı.snapshotFlow { state.text }
veyasnapshotFlow { TextFieldCharSequence(state.text, state.selection) }
(I7d629) kullanmayı tercih edinInputTransformation.transformInput
parametre yeniden düzenlendi.originalValue: TextFieldCharSequence
kaldırıldı. Bunun yerineTextFieldBuffer
artık bu değeri aynı adla taşır.valueWithChanges: TextFieldBuffer
parametresi de kaldırıldı.TextFieldBuffer
artık işlevin alıcı kapsamıdır. (I919cc)BasicTextField(state)
varyantı veBasicSecureTextField
artık yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek içinKeyboardActions
yerineKeyboardActionHandler
kullanıyor. (I58dda)- "Sahte" metin giriş alanlarında ekran kalemiyle el yazısını desteklemek için ekran kalemiyle el yazısı yetkilendirme API'leri. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus
,showKeyboardOnFocus
olarak yeniden adlandırıldı. (Ib4b7a, b/295951492)Modifier.contentReceiver
öğesindenhintMediaTypes
parametresi kaldırıldı. AlınanTransferableContent
medya türünü, yapılandırılanhintMediaTypes
ile uyumlu olmayabileceğinden geliştiricilerin bu medya türünü kontrol etmeleri zaten teşvik edilmişti. (I82f99)BasicSecureTextField
parametreleri yeniden sıralandı.keyboardType
veimeAction
parametreleri,BasicSecureTextField
için uygun olan aynı varsayılan değerler korunarak tamKeyboardOptions
sınıfı lehine kaldırıldı.scrollState
parametresi de kaldırıldı. (Ibbfa9)TextFieldState.text
öğesininTextFieldCharSequence
olan türü yalnızcaCharSequence
olarak değiştirildi. Bu nedenle, mevcut seçim ve bileşim değerlerini doğrudan durum nesnesinden okumak içinTextFieldState.selection: TextRange
veTextFieldState.composition: TextRange?
eklendi.TextFieldState.forEachTextValue
kaldırıldı. (Idb2a2)ClipboardManager.getClipMetadata
veClipboardManager.hasClip
işlevleri kaldırıldı. Geçerli klip girişinin meta verilerini okumak için lütfenclipEntry.getMetadata()
kullanın. Panonun geçerli bir klibinin olup olmadığını anlamak için boşsaClipboardManager.getClip
sonucunu da kontrol edin. (I50498)ClipboardManager.setClip
, Panoyu temizleyebilmek için artık boş değer kabul ediyor. (I7d2e9)ReceiveContentListener
, bir işlev arayüzüne dönüştürülür. Ayrıca,ReceiveContentListener
artık bir işlev arayüzü olduğundan lambdayı alanModifier.receiveContent
aşırı yüklemesi kaldırıldı.Modifier.receiveContent
,Modifier.contentReceiver
olarak yeniden adlandırıldı. (I1e6af)TransferableContent.consumeEach
,TransferableContent.consume
olarak yeniden adlandırıldı. (I1e462)rememberTextFieldState
, Mevcut Ürün API'sine yükseltildi. (I37999)
Hata Düzeltmeleri
BasicTextField(state)
varyantının CJK(kompozisyon tabanlı) klavyelerle çalışmamasına neden olan hata düzeltildi. (I54425)Modifier.dragAndDropTarget()
ürününün,Modifier.Node
ürününün yeniden kullanımıyla belirli senaryolarda eski verilere referans vermesine neden olan hata düzeltildi. (I05bb1)- Kısa süre önce yapılan ve
anchoredDrag
işleminin sonundaAnchoredDraggableState#anchoredDrag
çağrılarının tutturulacağı bir sözleşme değişikliği geri alındı. (I95715)
Sürüm 1.7.0-alpha05
20 Mart 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha05
yayınlandı. 1.7.0-alpha05 sürümü bu kayıtları içerir.
API Değişiklikleri
- Köprülerin stilini belirlemesi için yerel deneme amaçlı
LocalTextLinkStyle
bestesi kaldırıldı. (Iebfa7) onLinkClicked
bağımsız değişkeniyle yapılanBasicText
deneme amaçlı geçersiz kılması kaldırıldı. Köprü desteği için ileride bunun yerine yeni bir API kullanıma sunulacaktır. (I107d5)TextFieldState
veTextFieldBuffer
altındaki Kod Noktaları ile ilgili yöntemler ve özellikler kaldırıldı. Ayrıca,inChars
son ekleri kalan seçim ve besteyle ilgili API'lerden kaldırıldı. (Ief7ce)AnchoredDraggable
adlı öğenincurrentValue
öğesi artık bir sabitleme noktasından geçerken güncellenecek. ÖncekicurrentValue
semantiği almak içinsettledValue
kullanın, yalnızca sabit bir noktaya vardığınızda güncelleyin. İlerleme, artık bir özellik yerine bir işlev (başlangıç ve bitiş noktası gerektiren) olarak gösteriliyor. (Ibe6e8, b/318707189, b/298271489, b/294991954)BasicTextField(state)
,TextFieldState
,InputTransformation
,OutputTransformation
,TextFieldLineLimits
,TextFieldDecorator
kararlı sürüme yükseltildi. (I9582b)- Alt düzey IME ile ilgili testlerin ve diğer düşük düzey IME kullanım alanlarının yazılmasına yardımcı olması için
InterceptPlatformTextInput
kullanıma sunuldu.PlatformTextInputTestOverride
desteği sonlandırıldı. (I862ed, b/322680547) restrictedConstraints()
öğesini iki yönteme bölün:fitPrioritizingWidth()
vefitPrioritizingHeight()
(I6d7fd)
Harici Katkı
- En son kaydırma işlemi için kaydırma yönünü kontrol etmek üzere 2 yeni API
isLastScrollForward
/isLastScrollBackward
eklendi. Henüz kaydırma işlemi yoksa "false" değerini döndürün. (I63a0e)
Sürüm 1.7.0-alpha04
6 Mart 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha04
yayınlandı. 1.7.0-alpha04 sürümü bu kayıtları içerir.
API Değişiklikleri
- Android U sonrası cihazlarda ekran kalemi el yazısı özelliği desteklenir. (I002e4)
TextFields
uygulamasının, tercih edilen bir dili ayarlamak üzere belirli yerel ayarlarla IME'lere ipucu vermesini sağlamak içinhintLocales
,KeyboardOptions
içine eklendi. (Id18c2)value: String
veonValueChange: () -> String
parametrelerini alan DeneyselBasicTextField2
veBasicSecureTextField
aşırı yüklemeleri kaldırıldı. (I568b4)InputTransformation
öğesinin uygulandığıBasicTextField2
öğesinin anlamını etkilemek için isteğe bağlı birapplySemantics
işlevi ekleyin. (I74a2f, b/170648072)- Bu CL'de, oluşturma sırasında kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için
GetScrollViewportLength
semantik işlemini ekliyoruz. Bu değişiklik belgesi, temel kaydırılabilir listelerde söz konusu mülkün kullanımını da uygular. (Ic5fa2) BasicTextField2
,BasicTextField
olarak yeniden adlandırıldı. (Ie5713)FocusRequester.createRefs
artık kararlı (I4d92c, b/261436820)- Değiştirici düğümlerin doğrudan
scrollIntoView
isteğinde bulunmasına olanak tanımak içinDelegatableNode.scrollIntoView()
özelliği kullanıma sunuldu. (I2b3b7, b/299939840) - Değiştirici düğümlerin yerel bir beste okumadan geçerli Android
View
sürümünü almalarını sağlamak içinDelegatableNode.requireView()
kullanıma sunuldu. (I40768) - Belirtilen konumda kalmak için çizgi dizinini, konumunu ve maksimum genişlik ve yükseklik sınırlamalarını gösteren, İçeriğe Dayalı Akış Satır Kapsamı ve İçeriğe Dayalı Akış Sütun Kapsamı içindeki bağlamsal düzen bilgilerini kullanıma sunuyoruz. Maksimum genişliği/yüksekliği aşan öğeler bir sonraki satıra geçebilir veya taşma ayarlarına bağlı olarak çıkarılabilir. (Id13f8, b/292114798)
Hata Düzeltmeleri
- Belirli durumlarda
TextField
öğesininenabled
veyareadOnly
özelliklerinin açılıp kapatılmasının kilitlenmeye neden olmasına neden olan hata düzeltildi. (Iae17b)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha03
yayınlandı. Sürüm 1.7.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
onPlaced
değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadanModifier.Node
adlı öğenin mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.requireLayoutCoordinates()
kullanıma sunuldu. (Ia8657)onPlaced
değerini geçersiz kılmanıza ve koordinatları kendiniz bir mülkte depolamanıza gerek kalmadanModifier.Node
adlı öğenin mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.currentLayoutCoordinates
kullanıma sunuldu. (Iaebaa)AnchoredDraggable
tarafından kullanılanDraggableAnchors
performans optimizasyonları. (I89cff)BasicTextField2
veandroidx.compose.foundation.text2
paketi kapsamındaki ilgili API'lerandroidx.compose.foundation.text
kuruluş birimine taşındı. (I9f635)BasicTextField2
artıkCodepointTransformation
parametresini kabul etmiyor.BasicSecureTextField
veyaOutputTransformation
kullanın. (Id34ff)- Yalnızca iki
AnnotatedStrings
öğesinin ek açıklamalarını karşılaştırmak için bir yöntem eklendi. (I32659) - Karşınızda
MaxLines
veOverflow
ileContextualFlowRow
ve GeliştirilmişFlowRow
/Column
. Deneme amaçlıFlowRow
veFlowColumn
ile ilgili geliştirmeleri duyurmaktan mutluluk duyuyoruz. ArtıkmaxLines
ve taşma desteğinin yanı sıra ilk olarakContextualFlowRow
veContextualFlowColumn
desteği de sunulmaktadır. Bu güncelleme, en iyi performans bileşenleri sağlamak için tasarlanmıştır.ContextualFlow*
küçük birmaxLines
yapılandırmasından ve dinamik +N daha fazla düğmeden yararlanan çok sayıda öğe için,FlowRow
veFlowColumn
ise 100'den az öğe içeren az sayıda öğe için idealdir. Önemli: Çapraz eksene uygun olup olmamalarından bağımsız olarak 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 uygulamalı örneklerini görmek içinContextualFlowRowSample
veFlowRowSample
özelliklerini keşfedin. (Ib9135, b/293577082)
Hata Düzeltmeleri
- İmleç animasyonu artık açık ve kapalı durumları arasında kare isteğinde bulunmuyor. (Ia2253)
KeyboardOptions
' kullanımdan kaldırılan kopya oluşturucular artık tüm özellikleri doğru şekilde kopyalayacak. (If12de)
Sürüm 1.7.0-alpha02
7 Şubat 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha02
yayınlandı. Sürüm 1.7.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
HorizontalPager
,VerticalPager
vePagerState
, kararlı sürüme yükseltildi. (I67660, b/316966909)- Uygulama genelinde Metin'deki bağlantıların stilini değiştirmeye olanak tanıyan yerel
LocalTextLinkStyle
kompozisyonu eklendi. Uygulamada kendi temanızı kullanıyorsanız bu besteyi temalarınıza göre yerel olarak ayarlamanız gerekir. Malzeme teması kullanılırken, bağlantının rengi varsayılan olarak Malzemenin birincil rengine ayarlanır. (I7eb10) - Geliştiricilere Jetpack Compose'da zengin içerik almak için bir yöntem sağlayan
receiveContent
değiştiricisi kullanıma sunuldu. receiveContent
, yazılım klavyesi tarafından veya Panoya yapıştırma işlemi aracılığıyla sağlanan zengin içeriği kabul etmek içinBasicTextField2
ile entegre olur. (I81b72)- Bu değişiklikte, diğer kullanım alanlarını açığa çıkarmak ve daha fazla esneklik sağlamak için çağrı cihazındaki
SnapFlingBehavior
yerineTargetedFlingBehavior
getiriyoruz. (I762ea) - Bu değişiklikle Snapping API'lerini Kararlı hale getiriyoruz. Ayrıca, test kodunun bir kısmını temizliyor ve Snapping'e daha fazla örnek ekliyoruz. (Id8da9)
- Devam eden animasyonun durumu ve hedef kaydırma ofseti hakkında bilgi yaymaya olanak tanıyan bir
FlingBehavior
olanTargetedFlingBehavior
öğesini tanıtın. (I6a207)
Hata Düzeltmeleri
BasicTextField2
, yazma işlemi görünümün dışına kaydırıldığında veya giriş nedeniyle görünümün dışına çıkarken artık imleci görünümde tutar. (Ieb856, b/237190748)
Harici Katkı
- LazyList'lerin önceden getirme davranışını yapılandırmak için deneysel bir API ekler. (I022a4)
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha01
yayınlandı. Sürüm 1.7.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
- Yeni bir
Indication API
eklendi,IndicationNodeFactory
. Bu durum, önceki (artık kullanımdan kaldırılan)rememberUpdatedInstance
API'ye kıyasla daha etkiliIndication
uygulamaları sağlar. Taşıma bilgileri için developer.android.com adresine bakın. clickable / combinedClickable / selectable / toggleable
artık null özellikliMutableInteractionSource
parametresini kabul ediyor. Null ise ve sağlananIndication
birIndicationNodeFactory
iseIndication
yalnızca gerektiğinde geç yüklenebilir. Bu da performansı artırır.MutableInteractionSource
parametresini kaldırmıyor ve kullanmıyorsanız null değerini iletmeniz önerilir.
API Değişiklikleri
AnchoredDraggable
ürünündeDecayAnimation
özelliği uygulanmaktadır. Bu değişiklik,AnchoredDraggable
öğesine birdecayAnimationSpec
parametresi ekler. Bu parametre, sabitleyicilerden birine ayarlanırken azalma animasyonunun kullanılmasına olanak tanır. Ayrıca, her bir spesifikasyonun kullanım alanının anlaşılmasına yardımcı olmak için mevcutanimationSpec
öğesininsnapAnimationSpec
olarak yeniden adlandırılması da bu değişiklik kapsamındadır.BasicTextField2
deneysel olarak kullanılabilir. Özellik yaklaşık olarakBasicTextField
ile benzer özelliklere sahip olmalı ve davranış, üretime hazır olmalıdır. Ancak API şimdilik deneme aşamasındadır. Sabitlemeden önceBasicTextField
olarak yeniden adlandırılır ve aynı pakete taşınır.BasicTextField2
içinOutputTransformation
API'sinin ilk taslağı kullanıma sunuldu. Bu API, eskiBasicTextField
içindekiVisualTransformation
kullanım alanlarının çoğu yerine geçer. Ancak, henüz tamamlanmamıştır ve bazı işlevler düzgün çalışmayabilir. Ancak kullanım alanlarınızda API kullanılabilirliğiyle ilgili geri bildirimde bulunursanız memnun oluruz. (aosp/2708848)- Metne bağlantı ve tıklanabilir öğe eklemeye olanak tanıyan
LinkAnnotation
kullanıma sunuldu. Bağlantılar özelliği henüz tamamlanmamıştır ve daha fazla API değişikliği yapılacaktır. - Geliştiricilere Jetpack Compose'da zengin içerik almak için bir yöntem sağlayan
receiveContent
değiştiricisi kullanıma sunuldu. receiveContent
, yazılım klavyesi tarafından veya panodan yapıştırma yoluyla sağlanan zengin içeriği kabul etmek içinBasicTextField2
ile entegre olur.KeyboardOptions.shouldShowKeyboardOnFocus
,BasicTextField
odağında yazılım klavyesi isteme işleminin varsayılan davranışını devre dışı bırakmanıza olanak tanır.TextInputService
veLocalTextInputService
desteği sonlandırıldı. Bunun yerine platform IME API'leriyle doğrudan entegrasyon içinPlatformTextInputModifierNode
kullanın. (aosp/2862698)Indication#rememberUpdatedInstance
desteği sonlandırıldı. Kaçınılmaz bir performans kaybına sahiptir ve diğer optimizasyonları önler. Bunun yerine yeniIndicationNodeFactory
API'yi kullanmanız gerekir.
Hata Düzeltmeleri
VisualTransformation
geçirildiğindeBasicTextField
, artık küçük bir ofset eşleme seçkisini önceden doğrulayacak. Bu, daha sonraki ölçümlerde veya çekiliş geçişlerinde giderilemez istisnalara yol açan yaygın kodlama hatalarını yakalamaya yardımcı olur. Oluşturma sırasında yanlış bir şekilde düzenleme yaptığınızda, geliştiricilerin geliştirme sırasında bu hataları görme olasılığı artar ve böylece üretim kilitlenmelerinin önlenmesine yardımcı olursunuz. (I0fd42)- Geçersiz bir dizin için geçersiz bir dizin döndürürseniz
VisualTransformation
tetiklenmez (b/316401857 )
Sürüm 1.6
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.6
yayınlandı. 1.6.6 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Belirli durumlarda
TextField
öğesininenabled
veyareadOnly
özelliklerinin açılıp kapatılmasının kilitlenmeye neden olmasına neden olan hata düzeltildi. (Iae17b)
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.5
yayınlandı. 1.6.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Şu Satır/Sütundaki (b/300280216 ve b/297974033) yeniden oluşturulması zor hatalara hata ayıklama günlükleri ekler
Sürüm 1.6.4
20 Mart 2024
androidx.compose.foundation:foundation-*:1.6.4
yayınlandı. 1.6.4 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Uzun basıp ardından sürükleme hareketinin ilk karesinde metnin düzen sınırlarının dışına çıkan seçim hareketi artık kilitlenmiyor. (Icdf90, b/325307463)
Sürüm 1.6.3
6 Mart 2024
androidx.compose.foundation:foundation-*:1.6.3
yayınlandı. 1.6.3 sürümü bu kayıtları içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.foundation:foundation-*:1.6.2
yayınlandı. 1.6.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Doğru şekilde sıfırlanmayan
AnimateContentSize
sorununu düzeltin. (I07051) - Bazı durumlarda
intrinsicHeight
metnin aşırı önbelleğe alınmasına neden olan sorun düzeltildi. (3cd398, b/217910352)
Sürüm 1.6.1
7 Şubat 2024
androidx.compose.foundation:foundation-*:1.6.1
yayınlandı. 1.6.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Sınırın üzerine kaydırıldığında kademeli ızgara ölçümü düzeltildi. (bffc39)
- Büyük boyutlu düzen kontrolü ekleyin. (e74af5)
- 0 boyutlu öğelerin, kademeli ızgaranın başlangıcındaki yerleşimi düzeltildi. (785f94)
- onRelease geri aramasını, onForgotten ile aynı sırayla arayın. (31ce3b)
Sürüm 1.6.0
24 Ocak 2024
androidx.compose.foundation:foundation-*:1.6.0
yayınlandı. 1.6.0 sürümü bu kayıtları içerir.
1.5.0'dan sonraki önemli değişiklikler
- Önceden tanımlanmış bağlayıcılar arasında sürükleme ve animasyon yapma yeteneğini ortaya çıkaran yeni Değiştirici
Modifier.anchoredDraggable
. Bu değiştiricininModifier.swipeable
öğesinin yerine kullanılması amaçlanmıştır. taşıma rehberinde bu hizmeti nasıl kullanacağınızı veModifier.swipeable
'ten taşıma işlemini nasıl yapacağınızı öğrenebilirsiniz. - Uygulamalar ve bileşenler arasında sürükleme ve bırakma işlevi eklendi. Başlamak için
DragAndDropTarget
,Modifier.dragAndDropSource
ve diğer API'leri inceleyin Modifier.draggable2D
, kolay 2D sürükleme desteğine olanak sağlayan yeni değiştiricidir. Örneğe bakın.- Oluşturma sırasında yüzey temelli bileşenleri eklemeyi kolaylaştırmak için
AndroidExternalSurface
veAndroidEmbeddedExternalSurface
eklendi Pager
vesnapFlingBehaviour
için çeşitli API değişiklikleri ve iyileştirmeler- Kararlı API'lere çeşitli odak, metin ve ek API'ler sunulmuştur.
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.foundation:foundation-*:1.6.0-rc01
yayınlandı. 1.6.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
DragAndDropTarget()
uzantı oluşturucusu kaldırıldı.object: DragAndDropTarget {}
kullanarak yeni bir örnek oluşturun. (I32318)
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.foundation:foundation-*:1.6.0-beta03
yayınlandı. 1.6.0-beta03 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Sonsuz kısıtlamalarla ölçülen çok büyük metinleri etkileyen kilitlenme düzeltildi. (I1a7df, b/312294386)
PlatformImeOptions
artık bir arayüz değil, somut bir sınıf. (If40a4)
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.foundation:foundation-*:1.6.0-beta02
yayınlandı. 1.6.0-beta02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Yalnızca geçişli kaydırmadan sonra
canScroll
güncellenmeme sorunu düzeltildi. (I60a86) - Küçük kaydırmalardan sonra
Modifier.animateItemPlacement()
veLookaheadScope
için düzeltme uygulandı. (I3a2b7)
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.foundation:foundation-*:1.6.0-beta01
yayınlandı. 1.6.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
DragAndDropTarget
değiştiricisi artık alıcıDragAndDropTarget
öğesini açık bir şekilde üstlenir ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda'ya sahiptir. Şu andaDragAndDropModifierNode
için iki fabrika işlevi mevcuttur. Biri aktarımları almak, diğeri veri aktarımı için kullanılır (I69481)maximumFlingVelocity
, Kayan öğe olarak gösterilecek şekilde güncellendi. Dokümanlar,maximumFlingVelocity
birliği hakkında daha net bilgi verecek şekilde güncellendi. (I8adc7)DragAndDropModifierNode
fabrikasındakionDragAndDropStart
,acceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumundan kabul etmesi içindragAndDropTarget
Modifier
öğesine eklendi. Bu lambda, sürükle ve bırak oturumuyla ilgileniyorsanız geçerli birDragAndDropTarget
döndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'lar bu şekilde değiştirilmiştir.sürükle ve bırak oturumlarından veri almak için bir
DragAndDropTarget
fabrika işlevi eklendi (Iebf3a)startDragImmediately
uygulamasınınAnchoredDraggable
içinde gösterilmesi, bu uygulama kullanılırken sürükleme hareketlerinin algılanmasını sağlar. Widget, bir hedef sabiti gösterirken bunu ayarlamak yararlıdır. Örneğe bakın. (Ie6d13, b/285139987)Foundation Tooltip API'leri artık
@ExperimentalFoundationApi
(I30b0b) olduDragAndDropInfo
,DragAndDropModifierNode.drag
türü olarak kaldırıldı ve artıktransferData
, süsleme boyutu ve sürükleme dekorasyonuDrawScope
lambda parametrelerini alıyorDragAndDropTarget
, tek bir soyut yöntem yerine belirli sürükle ve bırak etkinlikleri için yöntemler içeriyorBir
DragAndDropModifierNode
için fabrika işlevindekionDragAndDropEvent
, sağlananDragAndDropTarget
değerinin yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi açıklamak amacıylaonDragAndDropStart
olarak yeniden adlandırıldıDragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
,establishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)OriginalText
yerineTextSubstitution
kullanın. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
,runTextInputSession
olarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere saklanan
SubcomposeLayout
alt öğeleri (ve buna dayalıLazyColumn
gibi düzenler) devre dışı olarak kabul edilir. Bu tür düğümleri test etmek için yeniassertIsDeactivated()
test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, varsayılan olarak devre dışı bırakılmış düğümleri filtreler. (I2ef84, b/187188981)Modifier.magnifier
öğesininclippingEnabled
parametresi,clip
olarak yeniden adlandırıldı.Modifier.magnifier
öğesininmagnifierCenter
parametresi, aynı varsayılan davranış korunarak boş değer atanabilir hale getirildi. (I6aa66)Materyal
SwipeToReveal
API'leri (Kartlar ve Çipler için), artık bu slotları oluşturmak için veri sınıfı tabanlı örnekler yerine slot tabanlı API'leri (Compose tarafından önerildiği gibi) kullanmaktadır. Bu son derece önemli bir değişikliktir. Yeni API'nın nasıl kullanılacağıyla ilgili örnekler için lütfen demoyu ve örnek kodu inceleyin. (Ia8943)
Hata Düzeltmeleri
PageSize.Fixed
için eşittir ve karma kodunu uygulayın. (Ie3ede, b/300134276)minWidth
değiştiğindeBasicText
düzeninin küçülmesine neden olan ve ilk ölçüm kısıtlamalarındanmaxWidth
(maxWidth
Idb19c)minWidth
daha az olan bir hata düzeltildiArcLine
bölgesinde Gradyan Süpürme özelliği için oluşturucu desteği eklendi. (I4d5bb)- Pencere Inset değişikliğiyle ikili program uyumluluğu sorununu düzeltme (Iee695)
- Mikro karşılaştırmalar, bu olmadan daha iyi performans gösterdiğinden Material3 Çip/Düğmesi için malzeme temel katmanını kaldırın. (I55555)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha08
yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.
Yeni Özellikler
Modifier.draggable2D
, kolay 2D sürükleme desteğine olanak sağlayan yeni değiştiricidir. Örnek'i (Id95f5, b/214412658) inceleyin.
API Değişiklikleri
Modifier.dragAndDrawSource
,onDrawDragShadow
lambda'yıdrawDragDecoration
olarak yeniden adlandırdı veDragAndDropInfo
adlı boyut parametresidragDecorationSize
olarak yeniden adlandırıldı. (Id0e30, b/303904810)BasicTextField2
öğesinindecorationBox
parametresi,decorator
olarak yeniden adlandırıldı. Türü de eğlenceli bir arayüz olanTextFieldDecorator
olarak değiştirildi. (I23c1c)
Hata Düzeltmeleri
BasicTextField
ile ilgilionValueChange
şartlarıyla ilgili dokümanlar iyileştirildi. (I90fc9, b/160257648)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha07
yayınlandı. Sürüm 1.6.0-alpha07 bu kayıtları içerir.
API Değişiklikleri
- Özel metin düzenleyicilere yönelik yazma testleri için
PlatformTextInputMethodTestOverride
kullanıma sunuldu. (Id159b) GraphicsSurface
adlı odanın adıAndroidExternalSurface
(I11680) olarak değiştirildi- Doğrusal olmayan yazı tipi ölçeklendirmesini devre dışı bırakmak için
DisableNonLinearFontScalingInCompose
geçici işareti eklendi. Bunları temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = true
değerini ayarlayın. Bu bayrak, Compose 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486) - Ayırmalardan kaçınan
ColorList
veColorSet
koleksiyonları eklendi. (I744bd) - Bu değişiklik sayesinde,
SnapLayoutInfoProvider
uygulamalarının uygulama ayrıntısına dönüştürülmüşshortSnapVelocityThreshold
kaldırılır. (I65f6d) - Sürükle ve bırak oturumlarını başlatmak için
dragAndDropSource
Değiştirici vedragAndDropTarget
sürükle ve bırak oturumlarından almak için Değiştirici ekler (Ib7828, b/286038936) SnapPositionInLayout
belgelerini ve konum yöntemini güncelleyin.SnapPositionInLayout
ürününde konum yöntemine içerik dolgusu ekleyin. (Id7938, b/300116110)TextFieldState
öğesine, kullanıcı tarafından yapılan değişiklikleri geri alma/yeniden yapma olanağı sağlayanUndoState
eklendi. (Icc024)
Hata Düzeltmeleri
- Hız değişikliğinden sonra
basicMarquee
animasyonunun çalışmaması düzeltildi. (Id2e77, b/297974036)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha06
yayınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.
Yeni Özellikler
SurfaceView
,TextureView: GraphicsSurface()
veEmbeddedGraphicsSurface()
için yeni Composable sarmalayıcılar. Bu, deneysel bir API olup üzerinde değişiklik yapılabilir. (I9ddb2)Modifier.magnifier()
artık kararlı bir API. Bu, değiştiricinin kendisindeki satır içi parametrelerin yerineMagnifierStyle
öğesinin kaldırılmasını da içerir. (I83bec, b/298381260, b/262367109, b/261438887)
API Değişiklikleri
ScrollScope
uygulamasındaupdateCurrentPage
veupdateTargetPage
kullanılmaya başlandı. Bunlar,PagerState.scroll
boyunca animasyonlu kaydırmanın özelleştirilebilmesi için gereken son parçalardır. (I9cad5, b/267744105, b/243786897)- Yoğunluğu
SnapFlingBehavior
öğesinden kaldır. TümSnapLayoutInfoProvider
uygulamalarında, halihazırda yoğunluğa erişim için bir yol mevcuttur. Alıcı kapsamı kaldırılabilir. Bu da hemSnapFlingBehavior
hem deSnapLayoutInfoProviders
uygulamalarının daha basit bir şekilde uygulanmasına yol açar. (I153c3) - Kararlı olarak işaretlenen daha fazla değiştirici var. (I56af1, b/298046462)
SnapStepSize
,SnapLayoutInfoProvider
klasöründen kaldırıldı. Hesaplama, Düzen bilgileri kullanılarak yapılmalı ve yaklaşım veya tutturma ofsetleri aracılığıyla sağlanmalıdır. (If320c)
Davranış Değişiklikleri
- Compose'da daha iyi okunabilirlik ve erişilebilirlik sağlamak için artık doğrusal olmayan yazı tipi ölçeklendirme kullanılıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda, küçük metinlerin boyutu normal şekilde artar ancak zaten büyük olan metinlerin boyutu biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğinde amaçlanan yükseklikle orantılı biçimde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar sayfasına bakın. (I11518)
Hata Düzeltmeleri
- İpuçları için
rememberSaveable
kullanımını kaldırın. (Icc131, b/299500338)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha05
yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
- Mevcut
BasicTextField
API'de olduğu gibiBasicSecureTextField
için sabit bir değeri kabul eden aşırı yüklemeler ve bu değeri değiştirmek için geri çağırma ekleyin. (Ia4882) - API 33 ve sonraki sürümlerde kayan pencerelerden kaçınmak için composable olarak işaretlemek üzere
Modifier.preferKeepClear()
ekleyin. (Ib51d5, b/297260115) ScrollView
veRecyclerView
gibi View bileşenlerindeki fırlatma hızlarıViewConfiguration.ScaledMaximumFlingVelocity
ile sınırlıdır. Oluşturma işlemi artıkDraggable
için geçerli olan kendimaximumFlingVelocity
sürümünü içeriyor. (Ibf974)- Kullanımdan kaldırılan
Pager
vePagerState
aşırı yüklemeleri kaldırıldı. (Iea07e) BasicTooltipBox
öğesicompose.foundation
koleksiyonuna eklendi vePlainTooltipBox
ileRichTooltipBox
,TooltipBox
öğesini yeniPlainTooltip
veRichTooltip
composable'larla kullanacak şekilde güncellendi. (I79e1d)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04
yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Alt bestelerin yaşam döngüsünü yönetmek ve yeniden kullanmak için
ReusableComposition
arayüzü ekleyin. (I812d1, b/252846775) Modifier.focusGroup
sürümü, kararlı API'lere yükseltildi. (I7ffa3)- Mevcut
BasicTextField
API'de olduğu gibiBasicTextField2
için sabit bir değeri kabul eden aşırı yüklemeler ve bu değeri değiştirmek için geri çağırma ekleyin. (I3f2b8) GridItemSpan::currentLineSpan
artık kararlı bir API. (Icc29c)contentDescription
kabul eden tuval artık kararlı bir API. (Ib3d29)- Ölçüm gerçekleştikten sonra
ScrollState
kullanan bileşeninviewPort
boyutunu bilmenin bir yolu olanviewportSize
özelliğiScrollState
ürününde kullanıma sunuldu. (I8b85a, b/283102682) - Çağrı Cihazı'ndaki önceden getirmenin Görünümler'deki davranışla eşleşmemesine neden olan sorun düzeltildi. (I93352, b/289088847)
Modifier.consumeWindowInsets(PaddingValues)
artık kararlı.Deprecated Modifier.consumedWindowInsets
API kaldırıldı. Bunun yerineModifier.consumeWindowInsets
politikasını kullanın. (Id72bb)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03
yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- Aşırı
LazyLayout
yüklemesi eklendi.LazyLayoutItemProvider
lambda değerini kabul ediyor, daha önce olduğu gibi düz bir nesne kabul etmiyor. Önceki aşırı yükleme kullanımdan kaldırıldı. (I42a5a) privateImeOptions
(Idb772) yapılandırması için destek eklendi
Hata Düzeltmeleri
- Klavyeyi gösteren ve
readOnly
doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktaykenreadOnly
ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02
yayınlandı. Sürüm 1.6.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
Pager
uygulamasında ölçüm geçişi tamamlandıktan sonra toplanan bilgilerlePagerLayoutInfo
özelliği kullanıma sunuldu.Pager
içinde ölçülen tek bir Sayfa ile ilgili bilgiler olanPageInfo
de kullanıma sunuldu. (Iad003, b/283098900)- composable'lara izin verilen girişleri belirten ek ek açıklamalar (I51109)
SemanticsNodeInteraction.requestFocus
, testlerde odaklanma isteğinde bulunmanın daha kolay ve bulunabilir bir yolu olarak eklendi. (Ie8722)PlatformTextInput*
API tümüyle 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)Modifier.transformable
, kaydırma işleminin yönünü belirlemeye yardımcı olmak için artıkcanPan
parametresinde kaydırma delta değeri sağlıyor. (I692aa, b/266829800)consumeWindowInsets
değiştiricisini,AbstractComposeView
üst sınıfını genişletecek şekilde günceller (Iacd74, b/269479941)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha01
yayınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.
Yeni Özellikler
- Foundation'da yeni bir
AnchoredDraggable
API kullanıma sunuldu. Kalıcı alt sayfalar gibi ayrı durumlar arasında sürüklenebilen bileşenler oluşturmak için kullanılabilir. Bu API, MaterialSwipeable
API'sinin yerini alır. (I4a2ed)
API Değişiklikleri
InputConnection#requestCursorUpdates
(I0c69b) kanalını destekleyin- Özel animasyon özelliklerine izin vermek için
scrollAnimationSpec
kullanıma sunuldu.BringIntoViewCalculator
ayarıBringIntoViewScroller
olarak güncellendi. (Idb741) - Bit eşlem öğeleri yüklenmeye çalışılırken, yüklenemeyen öğe yolunun açıklamasına yer verilen atılabilir öğeleri sarmalamak için
ResourceResolutionException
türünü ekleyin. (I19f44, b/230166331, b/278424788) - Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
Scrollable
gibi bileşenlerinbringIntoView
isteklerine yanıt verme şeklini özelleştirmek için kullanılabilecek birBringIntoViewCalculator
API'si kullanıma sunuldu. İsteğe bağlı olarakBringIntoViewCalculator
örneğini kabul etmek için kaydırılabilir öğenin aşırı yükü değiştirildi. (Iaf5af)
Hata Düzeltmeleri
- Değişebilir durum /
Animatable
oluşturmaya yönelik lint kontrollerine benzer şekilde, bir bileşimdeMutableInteractionSource
oluşturup hatırlamadığınız konusunda uyarı veren bir hata analizi denetimi eklendi. (I5daae) - Fareyle seçme desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişler ve karakter bazında küçülür. (Ic0c6c, b/180639271)
- Özel bir
FocusTarget
oluşturmak için kullanılabilecekFocusTargetModifierNode
arayüzü eklendi. (I9790e)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.foundation:foundation-*:1.5.4
yayınlandı. 1.5.4 sürümü bu kayıtları içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.foundation:foundation-*:1.5.3
yayınlandı. Bu sürümde değişiklik yok.
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.foundation:foundation-*:1.5.2
yayınlandı. 1.5.2 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Metinde, anlamların geçersiz kılındığı belirli durumlarda kilitlenmelere neden olan bir hata düzeltildi.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.foundation:foundation-*:1.5.1
yayınlandı. Sürüm 1.5.1 bu kayıtları içerir.
Hata Düzeltmeleri
- Klavyeyi gösteren ve
readOnly
doğru olduğunda düzenlenebilir olan metin alanları düzeltildi. Ayrıca, odaktaykenreadOnly
ayarı true (doğru) iken false (yanlış) olarak değiştirildiğinde klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.foundation:foundation-*:1.5.0
yayınlandı. 1.5.0 sürümü bu kayıtları içerir.
1.4.0'dan sonraki önemli değişiklikler
Modifier.clickable
,Modifier.draggable
,Modifier.scrollable
, düzen değiştirici ve daha fazlası dahil olmak üzere temel değiştiricilerModifier.Node
API'ye taşındı ve böylece ilk bileşimden kaynaklanan ek yük azaltıldı.- Çağrı Cihazları kararlılığında iyileştirmeler. Birçok hata giderildi.
pageCount
parametreleri artık Çağrı Cihazı yerinePagerState
içinde bulunuyor
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.foundation:foundation-*:1.5.0-rc01
yayınlandı. 1.5.0-rc01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
mutableStateOf()
çağrılarının temel öğeler için karşılık gelen özel türlerine taşınmasını öneren isteğe bağlı bir denetim mevcuttur. lint kimliği:AutoboxingStateCreation
. Daha önce bu inceleme tüm projeler için varsayılan olarak etkindi. Bu uyarıyı Android Studio'nun düzenleyicisinde ve projenizin lint çıkışlarında görmek için, modülünüzünbuild.gradle
veyabuild.gradle.kts
yapılandırmasındawarning "AutoboxingStateCreation"
öğesini aşağıda gösterildiği gibi tanımlayarak önem derecesini bilgi amaçlı iken uyarı (veya daha yüksek) olarak değiştirin:android { lint { warning "AutoboxingStateCreation" } ... }
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.foundation:foundation-*:1.5.0-beta03
yayınlandı. 1.5.0-beta03 sürümü bu kayıtları içerir.
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.foundation:foundation-*:1.5.0-beta02
yayınlandı. 1.5.0-beta02 sürümü bu kayıtları içerir.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.foundation:foundation-*:1.5.0-beta01
yayınlandı. 1.5.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Nabzı ve günlük adım sayısını sağlamak için
PlatformDataProvider
özelliğini uygulayın.SensorGateway
arayüzü, herkese açık API'den kaldırıldı. (I55b84)
Hata Düzeltmeleri
- Geç liste/ızgaralar/vb. ölçümler sırasında ayırmaları azaltın (Iaf9e2)
- Anlık görüntüler uygulanırken azaltılmış ayırmalar (I65c09)
- İlkbahar animasyonlarından ayırmalar kaldırıldı (Ie9431)
- Tahsis
TextLayout
öğesinden kaldırıldı (I0fd11) - İşaretçi hızı izlemedeki birden fazla ayırma kaldırıldı (I26bae)
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.foundation:foundation:1.5.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha04
yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Tam parametre listesine sahip, optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) LazyGridState
ile kullanılabilecek birSnapLayoutInfoProvider
ekleyin. (I92134, b/269237141, b/260914964)- Geçmeli kademeli ızgaralar öğe kapsamına deneysel
Modifier.animateItemPlacement()
eklendi. Otomasyon konum değişimi/animasyonları yeniden düzenleme işlemini gerçekleştirmek için bunu öğelere uygulayabilirsiniz. (I4b62d, b/257034719) GridCells.FixedSize
sürümünü kararlı sürüme yükseltin.FixedSize
, her bir hücrenin çapraz eksende tam boyut aldığı ve kalan alanın çapraz eksen düzenlemesine göre dağıtıldığı birLazyGrid
tanımlar. (I8542f)- Çağrı Cihazı için
PagerScope
alıcı kapsamı ve belirli bir sayfa ofsetinin hesaplanması için bir yardımcı program işlevi kullanıma sunuldu. (If2577) - Hızlı geçiş davranışı oluştururken
snapPositionalThreshold
öğesini ekleyin. Çağrı Cihazı'nda kısa yapıştırma için bir konum eşiği belirtmek üzere bu parametreyi kullanın. (If8f7f) SnapLayoutInfoProvider.calculateSnappingOffsetBounds
,calculateSnappingOffset
ile değiştirildi. Bu yeni yöntemde yalnızca bir sonraki ofseti tutturmak isteriz. Sınırların hesaplanması, tutturma işleminin nasıl gerçekleşmesi gerektiğine bağlı olarak değişebileceğinden uygulama düzeyinde yapılmalıdır. (I923a4)LazyStaggeredGrid
API kararlı sürüme yükseltildi. (I633a5)pageCount
,Horizontal/VerticalPager
hesabından kaldırılsın mı? Bu, durum oluşturulurken sağlanmalıdır.PagerState
verememberPagerState
,pageCount
şartlarını kabul edecek şekilde güncellendi. (Ieb52d, b/266965072)pageCount
,Horizontal/VerticalPager
hesabından kaldırılsın mı? Bu, durum oluşturulurken sağlanmalıdır.PagerState
verememberPagerState
,pageCount
şartlarını kabul edecek şekilde güncellendi. (Ifa3cb, b/266965072)- Çağrı Cihazı'nın
SnapFlingBehavior
ürünündeshortSnapVelocityThreshold
uygulamasını tanıtın. (I7379e, b/275579012) FlowRowScope
veFlowColumnScope
ekler. (I54fe2)
Hata Düzeltmeleri
- Kısıtlamalar
minWidth
veminHeight
nedeniyle artık kilitlenmediğinde Metin'de anlam bilgisi almak için yapılan çağrılar. (İbd072) Dialog
composable tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmemesiyle ilgili regresyon düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.foundation:foundation:1.5.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha03
yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.
Bu sürümde, Compose için yeni metin oluşturma yığını etkinleştirilir. Yeni yığın, performans optimize edilmiştir ve görünür bir değişiklik görmezsiniz.
Oluşturulan metinde değişiklikler görürseniz davranış farkını onaylamak için NewTextRendering1_5 = false
ayarlayarak hata ayıklayabilirsiniz. Bunun ayarlanması, yeniden oluşturma işlemini zorunlu kılar. Lütfen davranış farklılıklarını hata olarak bildirin.
Hata ayıklama işareti, 1.5 beta01 sürümünden önce kaldırılacaktır.(Iada23, b/246960758)
API Değişiklikleri
FlowColumn/FlowRow
satır içi yap. (Idab37)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.foundation:foundation:1.5.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha02
yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
LazyGrid
hücresinde sabit boyutlu hücreler için destek ve çapraz eksen düzenlemesiyle düzenleme desteği eklendi. (I83ed9, b/235121277, b/267942510)LazyStaggeredGrid
bölgesinde sabit boyutlu şeritler için destek eklendi ve bunların çapraz eksen düzenlemesiyle düzenlenmesi. (I7d519)AnnotatedString
içindekiUrlAnnotation
dosyaları artıkTalkBack
gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) - Metinle ilgili test işlemleri (ör.
performTextInput
) artık alanı tıklamak yerine semantik işlemini kullanarak doğrudan odaklanma isteğinde bulunacak. (I6ed05) FlowRow
içindeverticalArrangement
veFlowColumn
içindehorizontalArrangement
kullanarak eksenler arası boşluk bırakma/düzenleme desteği ekler.FlowRow/FlowColumn
içindeki üst düzeyverticalAlignment
vehorizontalAlignment
öğeleri de kaldırılır. Geliştiriciler bunun yerineModifier.align
kullanabilirler. Bu,verticalAlignment
veverticalArrangement
adlandırma kuralları arasındaki karışıklığı azaltır. (I87b60, b/268365538)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.foundation:foundation:1.5.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha01
yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Metin ve
BasicText
, yeni değiştirici sistemi kullanılacak şekilde yeniden düzenlendi. Bu, birçok durumda önemli performans iyileştirmelerinin yapılmasını sağlar. Hiçbir değişiklik görünür olmamalıdır. (If1d17, b/246961435) - Metin düzenleyici düğümlerinde IME işlemini çağırmak için
PerformImeAction
semantik işlemi eklendi. (Ic606f, b/269633506)
Hata Düzeltmeleri
Modifier.hoverable
dahili öğeleri güncellendi.hoverable
değiştiricisi, yalnızca etkinse denetleyicide gösterilir. (I82103)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.foundation:foundation:1.4.3
ve androidx.compose.foundation:foundation-layout:1.4.3
, herhangi bir değişiklik yapılmadan yayınlandı (yalnızca sürüm güncellemesi).
Sürüm 1.4.2
19 Nisan 2023
androidx.compose.foundation:foundation:1.4.2
ve androidx.compose.foundation:foundation-layout:1.4.2
yayınlandı. 1.4.2 sürümü bu kayıtları içerir.
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.foundation:foundation:1.4.1
ve androidx.compose.foundation:foundation-layout:1.4.1
yayınlandı. 1.4.1 sürümü bu kayıtları içerir.
Sürüm 1.4.0
22 Mart 2023
androidx.compose.foundation:foundation:1.4.0
ve androidx.compose.foundation:foundation-layout:1.4.0
yayınlandı. 1.4.0 sürümü bu kayıtları içerir.
1.3.0'dan sonraki önemli değişiklikler
Text
veTextField
sürümlerine emoji uyumluluk entegrasyonuyla birlikte daha düşük düzeyli Paragraf eklendi. Emoji uyumluluğu yapılandırıldığında varsayılan olarak etkinleştirilir.EmojiCompat
,PlatformParagraphStyle
kullanılarak belirli bir Metinde yapılandırılabilir.LazyStaggeredGrid
(I28252) kampanyasına tam satır aralığı desteği eklendi- Deneysel
onHover
,ClickableText
Ekip Drive'ına ekleniyor (I6938f) runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test bestesi ve bestedeki tümLaunchedEffect
ilerememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)FlowRow
veFlowColumn
, ana eksende yeterli alan olmadığında yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütun tabanlı düzenine olanak tanıyan@ExperimentalFoundationApi
olarak kullanılabilir. (I3a7b2)Modifier.basicMarquee()
, kaydırma noktalı çerçeve efektiyle içerik görüntülemek için deneysel olarak kullanılabilir. (I2df44, b/139321650)
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.foundation:foundation:1.4.0-rc01
ve androidx.compose.foundation:foundation-layout:1.4.0-rc01
yayınlandı. 1.4.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Doğrudan platform API'lerine başvuran özel metin girişi uygulamaları oluşturmak için yeni alt düzey
PlatformTextInputAdapter
API'si kullanıma sunuldu. (I58df4) LazyStaggeredGrid
öğesine ters düzen desteği ekleyin. (I3ef4a)
Hata Düzeltmeleri
BasicTextField
adlı uygulamanınSetText
semantik işlemi, metin arabelleğini IME güncellemeleriyle ve test işlevleriyle (ör.performTextReplacement
) aynı kod yolunu kullanarak günceller.- Metin test işlevleri
performTextClearance
,performTextReplacement
veperformTextSelection
artıkSemanticsActions
kullanıyor. (I0807d, b/269633168, b/269624358)
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.foundation:foundation:1.4.0-beta02
ve androidx.compose.foundation:foundation-layout:1.4.0-beta02
yayınlandı. 1.4.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
Layout
yeniden kullanılacağında (örneğin, birLazyColumn
öğesi olarak) durumu düzgün bir şekilde ele almak için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni birModifier.Node.onReset()
geri çağırma işlevi eklendi. Odaklanılan durumu düzgün bir şekilde sıfırlamak içinFocusTargetModifierNode
düzeltildi. (I65495, b/265201972)- Tuval üzerinde metin çizerken farklı harmanlama algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508) modifierElementOf()
API kaldırıldı. Bunun yerine lütfen doğrudanModifierNodeElement
üzerinden uzatın. (Ie6d21)
Hata Düzeltmeleri
- Seçim tutma yerleri düzenlendiğinde artık kısmi karakterler seçilemez. (Idedd1)
- Boş
TextField
üzerinde ctrl+backspace tuşlarına basıldığında oluşan kilitlenmeyi düzelt (I0427f, b/244185537)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.foundation:foundation:1.4.0-beta01
ve androidx.compose.foundation:foundation-layout:1.4.0-beta01
yayınlandı. 1.4.0-beta01 sürümü bu kayıtları içerir.
Yeni Özellikler
- 1.3 sürümünden itibaren,
Text
veTextField
sürümlerine Emoji uyumlu entegrasyon ile birlikte daha alt düzey Paragraf eklendi. Emoji uyumluluğu yapılandırıldığında varsayılan olarak etkinleştirilir. EmojiCompat
,PlatformParagraphStyle
kullanılarak belirli bir Metinde yapılandırılabilir.
API Değişiklikleri
- Kompozisyondan çıkan, ancak yine de etkin olması gereken öğeleri korumak için
LazyLayouts
genelinde kullanılanPinnableContainer
API'sinin genel uygulaması eklendi. (If45a4) PinnableContainer.PinnedHandle.unpin()
,release()
(I4667a) olarak yeniden adlandırıldı
Harici Katkı
LazyListLayoutInfo
,LazyGridLayoutInfo
veLazyStaggeredGridItemInfo
mülklerinemainAxisItemSpacing
özelliği eklendi (I52fad)
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.foundation:foundation:1.4.0-alpha05
ve androidx.compose.foundation:foundation-layout:1.4.0-alpha05
yayınlandı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.
Yeni Özellikler
LazyStaggeredGrid
öğesine tam satır aralığı desteği eklendi (I28252)ClickableText
hedefine deneyselonHover
ekleniyor (I6938f)runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test bestesi ve bestedeki tümLaunchedEffect
ilerememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)
API Değişiklikleri
OverscrollEffect
ön/sonrası API'lerini birleşik "dekoratör"applyToScroll
veapplyToFling
işlevleriyle birleştirir. Yeni API şekli ile fazla kaydırma efektinin nasıl uygulanacağına ilişkin örnekler için belgelerdeki güncellenmiş örneklere bakın. (I8a9c4, b/255554340)- Satır içi/kullanımdan kaldırılan gizli işlevlerin daha fazla tür/boşluk değeri (I24f91)
TextStyle
uygulamasındakiLineBreak
veHyphens
API, kararlı sürüme geçirildi. (Ic1e1d)
Hata Düzeltmeleri
- Animasyonlar devre dışı bırakılsa bile metin alanlarındaki imleç artık yanıp sönmeye devam edecek. (I95e70, b/265177763)
Modifier.basicMarquee
artık sistem ayarlarında animasyonlar devre dışı bırakılmış olsa bile animasyon gösteriyor. (I23389, b/262298306, b/265177763)
Harici Katkı
TextInputSession
veTextInputService
uygulamalarındakinotifyFocusedRect
yöntemlerinin desteği tekrar sonlandırılmadı. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.foundation:foundation:1.4.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.4.0-alpha04
yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.
Yeni Özellikler
FlowRow
veFlowColumn
, ana eksende yeterli alan olmadığında yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütun tabanlı düzenine olanak tanıyan@ExperimentalFoundationApi
olarak kullanılabilir. (I3a7b2)Modifier.basicMarquee()
, kaydırma noktalı çerçeve efektiyle içerik görüntülemek için deneysel olarak kullanılabilir. (I2df44, b/139321650)
API Değişiklikleri
FocusRequesterNode
(I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/2545299} {/15/38b/34FocusRequesterModifier
variationSettings
ileAndroidFont
kurucusu artık kararlı bir API ve yeni yazı tipi açıklayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)- Geçerli öğenin sabitlemesine olanak tanıyan bir yerel beste aracılığıyla geç listeler tarafından dağıtılan
PinnableContainer
API kullanıma sunuldu. Yani bu tür öğeler görünümden aşağı kaydırıldığında atılmaz. Örneğin,Modifier.focusable()
, odaklanılan mevcut öğeyi bu mekanizma aracılığıyla sabitler. (Ib8881, b/259274257, b/195049010) - Bu işlemlerin karmaşıklığını daha iyi modellemek ve daha fazla uç durumu ele almak için kaydırılabilir öğelerin
bringIntoViewRequesters
ve odaklanılabilir öğelere tepki verme şeklini yeniden yazın. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - Kullanımdan kaldırılan gizli işlevlerin daha fazla döndürme türü boş değer atanabilirliği (Ibf7b0)
- Metni
Static(default)
veya Animasyonlu olarak tanımlamak içinTextStyle
öğesine deneme amaçlıTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
kullanın. (I24dd7) - Android platformunda (I00303) odak gezinme davranışını düzeltmek için
TextFieldFocusModifier
ekleyin drawText
içindekimaxSize: IntSize
bağımsız değişkeni, diğerDrawScope
işlevleriyle satır içi olması içinsize: Size
ile değiştirildi.size
varsayılan olarakSize.Unspecified
değerine ayarlanır. Bu ayar, önceki varsayılan davranışı değiştirmez. (Icd27d)
Hata Düzeltmeleri
- Daha doğal bir görünüm için
SnapFlingBehaviour
uygulamasındaki tutturma fiziğinde yapılan düzenlemeler.
Bilinen Sorun
androidx.compose.foundation:1.4.0-alpha03
sürümündenandroidx.compose.foundation:1.4.0-alpha04
sürümüne güncelleme yaparkenjava.lang.NoSuchFieldError
hatasıyla karşılaşabilirsiniz. Sorunun ilk olarak bildirildiği yer burada. Bir düzeltme gönderildi. Bu düzeltme bir sonraki Compose güncellemesinde hazır olacaktır. Geçici bir çözüm olarakandroidx.compose.material
veandroidx.compose.material3
kitaplıklarınızı en son sürüme(1.1.0-alpha04) güncelleyin veyaandroidx.compose.foundation
sürümünüzü 1.4.0-alpha03'e düşürün.
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.foundation:foundation:1.4.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.4.0-alpha03
yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- Oluşturma kuralı kullanılan kullanıcı arayüzü testlerinde,
withFrameNanos
geri çağırmaları sırasında devam ettirilen devamlar, tüm çerçeve geri çağırma işlemlerinin çalışması bitene kadar dağıtılmaz. Bu, normal çalışırken oluşturma davranışıyla eşleşir. Ancak, eski davranışa dayanan testler başarısız olabilir. Bu, yalnızca doğrudanwithFrameNanos
veyawithFrameMillis
çağrısı yapan kodu etkilemelidir ve geri çağırma işlevinin içine taşınması gerekebilecek bu işlevlere aktarılan geri çağırma dışında bir mantığa sahiptir. Örnekler için bu EKL'deki animasyon testi değişikliklerine bakın. withFrameNanos
geri çağırmalarından sonra, ancak arayanların eş yordamlarını devam ettirmeden önce kodu çalıştırmak içinTestMonotonicFrameClock
oluşturucuya ve fabrika işlevine isteğe bağlıonPerformTraversals: (Long) -> Unit
parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)- Sayfa erişilebilirlik işlemlerini tanıtın:
PageUp
,PageDown
,PageLeft
,PageRight
. Bunların yalnızca API 29'dan kullanılabildiğini unutmayın. (Ida4ab) - composable'ları Çağrı Cihazı tarzında göstermenin bir yolu olan
HorizontalPager
veVerticalPager
ile tanışın. Çağrı Cihazlarını kontrol etmenin yanı sıra Çağrı Cihazı'nın mevcut durumu hakkındaki sorgu bilgilerini de kontrol etmek içinPagerState
kullanıma sunuldu. Çağrı Cihazı sayfasının boyutunu kontrol etmenin bir yolu olanPageSize
kullanıma sunuldu. Bu, Çağrı Cihazları gibi bir bant oluşturmak için kullanılabiliyor. Tutturmanın, Çağrı Cihazı'nın hızla kaydırma davranışında nasıl çalışacağını kontrol etmenin bir yolu olanPagerSnapDistance
kullanıma sunuldu. (I01120) - Uçuşun nereye geçeceğini anlamanıza yardımcı olmak için
SnapFlingBehavior.performFling
uygulamasında aşırı yük uyguladı. (I569f6) OverscrollEffect#isEnabled
kaldırıldı. Bu işareti hatırlamanız ve ayarlamanız gerekmez. Fazla kaydırmanın gösterilmesini istemediğiniz durumlarda (örneğin,ScrollableState#canScrollForward/backward
değeri her ikisi de false döndürürse) etkinlikleri fazla kaydırma efektine dağıtmayın. (I1a4b0, b/255554340, b/255557085)ScrollableState
öğesinin her iki yönde de kaydırma için alanı olup olmadığını (aralık aralığının minimum / maksimum olup olmadığı) sorgulamak amacıylaScrollableState#canScrollForward
veScrollableState#canScrollBackward
eklendi. Bu ayar, mevcutScrollableState
uygulamalarıyla geriye dönük uyumluluk için varsayılan olarak doğru değerine ayarlanır. Tüketiciler bu özelliği, kullanıcıya kaydırma için hâlâ alan olduğunu göstermek amacıyla kullanabilir. Ayrıca bu özellik, gereksiz işlerin azaltılması amacıyla deltaların belirli bir yönde kaydırma imkanı olmayanScrollableStates
konumuna yönlendirilmesini önlemek için de kullanılabilir. (Idf1a0, b/255557085)- Üst öğelerin kaydırma bilgilerini sorgulamak için Değiştirici API'si eklendi. (I2ba9d, b/203141462)
- Hareketler kaydırma etkinliğine dönüşebilirken basma etkileşimlerini doğru bir şekilde ertelemek için
Clickable
içinde kullanılır. Clickables
işlevinin,Scrollable ViewGroup
içinde kullanıldığında dalgaları doğru şekilde geciktirmemesi düzeltildi.- Hareketlerin kaydırma etkinliklerine dönüşmesi ihtimaline karşı bastırmaları doğru bir şekilde geciktirecek Çekmeceler ve E-Tablolar güncellendi.
snapStepSize
adlandırmasını,SnapLayoutInfoProvider
içindeki diğer yöntemlerle tutarlı olacak şekilde güncelleyin. (Ife67c)EmojiCompat
öğesiCompose
koleksiyonuna eklendi (Ibf6f9, b/139326806)consumedWindowInsets()
adıconsumeWindowInsets()
,withConsumedWindowInsets()
adı iseonConsumedWindowInsetsChanged()
olarak değiştirildi ve Değiştiriciler herkese açık hale getirildi. (Ie44e1)
Hata Düzeltmeleri
Modifier.animateItemPlacement()
ve Geç ızgaralardaki kilitlenme düzeltildi. Bu sorun, yeni öğe sayısının önceki öğeden küçük olduğu bazı durumlarda gerçekleşiyordu. (I0bcac, b/253195989)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.foundation:foundation:1.4.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.4.0-alpha02
yayınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
awaitFirstDown
vewaitForUpOrCancellation
artık daha fazla esneklik içinPointerEventPass
kabul ediyor. (I7579a, b/212091796)beyondBoundCount
API'yi Lazy* API'lerinden geri döndür (I12197)- Görüntü alanı öğelerinin oluşturulması ve dışına yerleştirilmesi için Lazy API'lere parametre eklendi (I69e89, b/172029355)
BasicText
veBasicTextField
öğelerineminLines
parametresi eklendi. Bu composable'ların satır sayısına göre minimum yüksekliğinin ayarlanmasını sağlar (I24294, b/122476634).
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.foundation:foundation:1.4.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.4.0-alpha01
yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Hareket algılayıcıları için yeni bir yöntem (
awaitEachGesture()
) eklendi.forEachGesture()
ile benzer şekilde çalışır, ancak hareketler üzerindeki döngü tamamenAwaitPointerEventScope
içinde çalıştığından etkinlikler yinelemeler arasında kaybolmaz. - Hareketler arasında etkinliklerin kaybedilmesine izin verdiğinden
forEachGesture()
kullanımdan kaldırılmış ve yerineawaitEachGesture()
getirilmiştir. (Iffc3f, b/251260206) - Animasyonun ilerleme durumunu belirlemek ve animasyon tamamlandıktan sonra IME'nin nerede olacağını bilmek için
WindowInsets.imeAnimationSourc
e veWindowInsets.imeAnimationTarget
eklendi. (I356f1, b/217770337)
Sürüm 1.3
Sürüm 1.3.1
9 Kasım 2022
androidx.compose.foundation:foundation:1.3.1
ve androidx.compose.foundation:foundation-layout:1.3.1
yayınlandı. 1.3.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
BeyondBoundsLayout
hesabındaki performans sorununu düzeltin (aosp/2255266)ContentInViewModifier
, ekli olmadığı sürece düzen koordinatlarını okumaz (aosp/2241316)
Sürüm 1.3.0
24 Ekim 2022
androidx.compose.foundation:foundation:1.3.0
ve androidx.compose.foundation:foundation-layout:1.3.0
yayınlandı. 1.3.0 sürümü bu kayıtları içerir.
1.2.0'dan sonraki önemli değişiklikler
LazyVerticalStaggeredGrid
veLazyHorizontalStaggeredGrid
öğelerinin deneysel sürümleri kullanıma sunuldu.SnapFlingBehavior
,rememberSnapFlingBehavior
ve karşılık gelen diğer API'ler deneysel olarak eklendi.Modifier.clickable
,Modifier.toggleable
veModifier.selectable
artık uzaktan kumandadaki klavye veya d-pad ile tıklandıklarında dalgalar gösteriyor.
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.foundation:foundation:1.3.0-rc01
ve androidx.compose.foundation:foundation-layout:1.3.0-rc01
yayınlandı. 1.3.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Değer kaybının yeterli olduğu hızla akma hızı olmadığında, yaklaşım adımında kullanılan
lowVelocityAnimationSpec
eklendi. (Iaeb27) - Metinde otomatik kısa çizgiyi desteklemek için yeni deneysel API Kısa Çizgileri eklendi (Iaa869)
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.foundation:foundation:1.3.0-beta03
ve androidx.compose.foundation:foundation-layout:1.3.0-beta03
yayınlandı. 1.3.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- Metin'de satır sonunu özelleştirmek için seçenekler ekleyin. (I86907)
BringIntoViewResponder
artık bir isteği işlerken isteğin en güncel sınırlarını alabiliyor. (If86a5, b/241591211)- Deneysel
Staggered Grid
ile öğeler arasındaki boşluk desteği eklendi (I10b82) - Deneme amaçlı
Staggered Grid
ürününe (I342ea) içerik dolgusu ekleyin - 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) WindowInsets
,windowInsetsPadding
dışında kullanılmak üzereModifier.withConsumedWindowInsets()
eklendi.WindowInsets
öğesinin, yeniden düzenleme yapılmadan kolayca değiştirilmesine olanak tanımak içinMutableWindowInsets
eklendi. (I7fd28, b/237019262, b/243119659)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.foundation:foundation:1.3.0-beta02
ve androidx.compose.foundation:foundation-layout:1.3.0-beta02
yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- Deneysel
StaggeredGrid
sürümünün ilk sürümü (Ia48be) FocusDirection.In
veFocusDirection.Out
,FocusDirection.Enter
veFocusDirection.Exit
olarak yeniden adlandırıldı (Ia4262, b/183746982)LazyLists
'da tutturmayı etkinleştirmek için hızlı bir yol sağlayanrememberSnapFlingBehavior
aşırı yüklemesi kullanıma sunuldu. (Ifb48a)snapFlingBehavior
fabrikası, betonSnapFlingBehavior
sınıfıyla değiştirildi.SnapLayoutInfoProvider
yöntemleri, API kullanıcıları için Dp<->Px dönüşümlerini kolaylaştırmak amacıyla Yoğunluk kapsamına alındı. (I54a11)- Döndürülen değerde istenen sabitliği vurgulayarak yerleştirilebilirlerin listesini döndürmek için
LazyLayoutMeasureScope.measure
öğesini güncelleyin. (I48b7c) LazyLists
için bir tutturmaFlingBehavior
özelliğini etkinleştirmek üzere kullanılabilecek birSnapLayoutInfoProvider
örneği oluşturmak içinLazyListState
gerektirenSnapLayoutInfoProvider
kullanıma sunuldu. (I2dd10)
Hata Düzeltmeleri
AwaitPointerEventScope#awaitLongPressOrCancellation
öğesini, diğer bekleme işlevleriyle eşleşecek şekilde yeniden düzenler (I646e6)
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.foundation:foundation:1.3.0-beta01
ve androidx.compose.foundation:foundation-layout:1.3.0-beta01
yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.
API Değişiklikleri
OverscrollEffect
öğesindenpointerPosition
kaldırıldı. İşaretçi konumunu önemseyen efektler, geçerli işaretçi konumunu almak içineffectModifier
içindeModifier.pointerInput { }
kullanabilir. (I9f606, b/241239306)AwaitPointerEventScope#awaitLongPressOrCancellation
, daha karmaşık hareket algılama için ek yapı taşı olarak gösterildi (I04374, b/181577176)- Geç listelerde tutturmayı etkinleştirmek için
lazyListSnapLayoutInfoProvider
kullanıma sunuldu. (I3ecdf) - Liste tutturmayı etkinleştiren bir hızla kaydırma davranışı olan
SnapFlingBehavior
kullanıma sunuldu. Yapışma düzeninizle ilgili bilgileri içeren birSnapLayoutInfoProvider
örneği sağlayın. (Ie754c)
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.foundation:foundation:1.3.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.3.0-alpha03
yayınlandı. Sürüm 1.3.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- Kaynak Yazı Tipleri artık yazı tipi varyasyonu ayarlarının belirlenmesini destekliyor (API 26+). (I900dd, b/143703328)
DeviceFontFamilyNameFont
ürününde değişken yazı tipi desteği (Ic1279, b/143703328)PlatformTextStyle
veLineHeightStyle
adlı uygulamalardan deneysel ek açıklama kaldırıldı. (I64bef)VisualTransformation
tarafından sağlananOffsetMapping
geçersiz dizinler döndürdüğünde, metin alanları artık daha ayrıntılı istisnalar oluşturacaktır. (Ie73f9, b/229378536)- Lazy düzenler arasında öğe sağlayıcı mantığını paylaşmak için deneysel API'leri kullanıma sunun. (Ic891c)
ScrollableDefaults.reverseDirection()
artık deneme aşamasında değil. (Iba646)SemanticsModifier.id
kullanımdan kaldırıldı ve semantik kimliğiLayoutInfo.semanticsId
konumuna taşındı. (Iac808, b/203559524)checkScrollableContainerConstraints()
artık deneme aşamasında değil. (I2c290)Modifier.clipScrollableContainer()
artık deneme aşamasında değil. (Ia2b44)TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Bunun yerine lütfen uygulama kodundaSoftwareKeyboardController
, IME yönetim kodunda iseTextInputSession
kullanın. (I14e4c, b/183448615)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.foundation:foundation:1.3.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.3.0-alpha02
yayınlandı. Sürüm 1.3.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
Canvas
vedrawBehind
gibiDrawScope
üzerinde çalışan composable'lar ve değiştiriciler üzerinde çok stilli metin çizmenin yolunu sağlamak içinDrawScope
öğesinedrawText
uzantı işlevi eklendi. (I16a62, b/190787898)
Hata Düzeltmeleri
- Odaklanma sırasında bir metin alanı devre dışı bırakıldığında sanal klavye artık gizlenir. (I6e3e4, b/237308379)
- Hız İzleyici'ye
InputEventChange
etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede hedef öğe hareket etse bile hızın tüm durumlar için doğru şekilde hesaplanmasını garantileyeceğiz (Icea9d, b/216582726, b/223440806, b/227709803) - Kaydırılabilir bir öğe, odaklanmış bir alt öğeye sahip olduğunda, boyut animasyonlu olsa bile, boyutu küçültüldüğünde odaklanılan alt öğeyi görünümde tutmak için doğru şekilde kaydırılır. (I80867, b/230756508, b/220119990)
- Seçim etkinken
TextField
değerinin temizlenip yeniden doldurulmasına neden olan bir kilitlenme düzeltildi. (I1235b, b/208655565, b/214253689)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.foundation:foundation:1.3.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
AnnotatedString
ürünlerindeTalkBack
bağlantı desteğini desteklemek içinUrlAnnotation
ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)
Hata Düzeltmeleri
BasicTextField
cursorBrush
artık imleç zamanlayıcı yeniden başlatılmadan animasyonlu hale getirilebilir. (I812e6, b/236383522)
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.foundation:foundation:1.2.1
ve androidx.compose.foundation:foundation-layout:1.2.1
yayınlandı. 1.2.1 sürümü bu kayıtları içerir.
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.foundation:foundation:1.2.0
ve androidx.compose.foundation:foundation-layout:1.2.0
yayınlandı. 1.2.0 sürümü bu kayıtları içerir.
1.1.0'dan sonraki önemli değişiklikler
LazyVerticalGrid
veLazyHorizontalGrid
şu anda kararlı.- Artık geç listeler ve ızgaralardaki öğeler için içerik türü belirtebilirsiniz. Bu, bileşenlerin öğeleri daha verimli bir şekilde yeniden kullanmasına olanak tanır.
- Geç listeler ve ızgaralarda artık kullanıcı hareketleri aracılığıyla kaydırmanın devre dışı bırakılmasına olanak tanıyan
userScrollEnabled
parametresi bulunuyor. LazyLayout
adında yeni bir deneysel API eklendi. Bu, geç listeleri ve ızgaraları desteklemek için dahili olarak kullandığımız API'dir.OverscrollEffect
API, deneysel olarak kullanıma sunulmuştur. Özel fazla kaydırma efektleri tanımlayabileceğiniz gibi özel kaydırılabilir kapsayıcılara standart bir platform da ekleyebilirsiniz.- Görünümler ve kaydırma unsurları arasında birlikte çalışabilirlik sağlamak için iç içe kaydırma birlikte çalışabilirlik API'leri kullanıma sunulmuştur.
- Tüm kaydırma kapsayıcılarına fare ve izleme yüzeyi kaydırma özelliği eklendi.
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc03
ve androidx.compose.foundation:foundation-layout:1.2.0-rc03
yayınlandı. 1.2.0-rc03 sürümü bu kayıtları içerir.
- 1.2.0-rc02 sürümünden beri değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc02
ve androidx.compose.foundation:foundation-layout:1.2.0-rc02
yayınlandı. 1.2.0-rc02 sürümü bu kayıtları içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc01
ve androidx.compose.foundation:foundation-layout:1.2.0-rc01
yayınlandı. 1.2.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Özel fazla kaydırma efektlerinin yanı sıra bunu kabul eden
Modifier.scrollable
aşırı yüklemeye izin veren deneysel birOverscrollEffect
kullanıma sunulmuştur. - Deneysel
LocalOverScrollConfiguration
,foundation.gesture
paketinden temel paketine taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) - Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
- Kaydırılabilir kapsayıcıları iç içe yerleştirdiğimizden emin olmamızı sağlayan deneysel bir API
checkScrollableContainerConstraints()
kullanıma sunuldu.LazyLayout
aracılığıyla kendi kaydırılabilir geç düzenlerinizi oluştururken bu özelliği kullanabilirsiniz. (Id6fab, b/233352497) - Kullanımdan kaldırılan
LazyVerticalGrid
,androidx.compose.foundation.lazy
paketinden kaldırıldı. Yeni kararlı API,androidx.compose.foundation.lazy.grid
konumunda (I73c76, b/225192009) bulunmaktadır.
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-beta03
ve androidx.compose.foundation:foundation-layout:1.2.0-beta03
yayınlandı. 1.2.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- Yeni deneysel
IntervalList
veMutableIntervalList
eklendi. Bazı değerler listesinin birden çok aralıkla temsil edilmesine olanak tanır. Bu özellik,LazyColumn
tarafından kullanılana benzer kendi dsl'nizi tanımlamak istediğinizde faydalı olur. Burada liste öğeleri birden çok öğe/öğe çağrısı yoluyla tanımlanabilir. (I2d05e, b/228580728)
Hata Düzeltmeleri
ime
ekin API 23'e kadar raporlandığını, ancak yalnızca 30+ sürümler için animasyonlu olduğunu belirtmek üzereWindowInsets.ime
dokümanlarına açıklık getirildi. (Ia7fc0, b/230756508)- İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
DeleteSurroundingTextCommand
veDeleteSurroundingTextInCodePointsCommand
artık kurucu bağımsız değişkenlerinin negatif olmayan olmasını gerektiriyor. (Ica8e6, b/199919707)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.foundation:foundation:1.2.0-beta02
ve androidx.compose.foundation:foundation-layout:1.2.0-beta02
yayınlandı. 1.2.0-beta02 sürümü bu kayıtları içerir.
- Metin'in veya
TextField
öğesinin düzen boyutunu değiştirmeyen, daha önce yeniden çizilmez ve eski yazı tipi görüntüsüne neden olan indirilebilir yazı tipi çözünürlüğü. Bu hata düzeltmesi, metin düzeninin her zaman yeniden çizimi tetiklemesini sağlar (b/229727404). (I1d49e, b/229727404)
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.foundation:foundation:1.2.0-beta01
ve androidx.compose.foundation:foundation-layout:1.2.0-beta01
yayınlandı. 1.2.0-beta01 sürümü bu kayıtları içerir.
Yeni Özellikler
- Bu, 1.2'nin ilk beta sürümüdür!
API Değişiklikleri
- Öğeleri görünür sınırların dışına yerleştirdiklerinde
LazyList
özel uygulamaları tarafından kullanılabilecek deneme amaçlıBeyondBoundsInterval
eklendi (Ifabfb, b/184670295) LineHeightBehavior
,LineHeightStyle
olarak yeniden adlandırıldıLineVerticalAlignment
,LineHeightStyle.Alignment
olarak yeniden adlandırıldı- Yeniden adlandırma
LineHeightTrim
,LineHeightStyle.Trim
olarak yeniden adlandırıldı LineHeightStyle
öğesinden varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)LazyLayoutItemProvider
arayüzünün isteğe bağlı üyeleri için varsayılan değerler eklendi. (Iba8a0)- composable lambda'yı dizine göre döndüren bir fabrika yerine
LazyLayoutItemProvider
API'de artık dizini kabul eden daha basit bir composable işlev öğesi var. (Id2196) - LazyLayoutItemsProvider, LazyLayoutItemProvider (I0638c) olarak yeniden adlandırıldı
LazyLayoutItemsProvider.itemsCount
,itemCount
(Id409c) olarak yeniden adlandırıldı- Gradyan renklerle metin çizebileceğiniz bir yöntem sağlamak için
TextStyle
veSpanStyle
öğelerine Fırça eklendi. (I53869, b/187839528) trimFirstLineTop
,LineHeightBehavior
öğesinintrimLastLineBottom
özelliği tek bir numaralandırmaya dönüştürüldü:LineHeightTrim
.LineHeightTrim
, iki boole ile tanımlanan 4 durum değerine sahiptir:FirstLineTop
,LastLineBottom
, Her ikisi ve Yok (Ifc6a5, b/181155707)TextStyle
öğelerineLineHeightBehavior
eklendi veParagraphStyle. LineHeightBehavior
, satır yüksekliğinin ilk satırın üstüne ve son satırın altı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ığı duruma benzer bir davranış elde edilebilir.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları yalnızcaincludeFontPadding
yanlış olduğunda düzgün çalışır. (I97332, b/181155707)Geliştiricilerin kaydırma yaparak IME'yi kontrol edebilmeleri için deneysel
imeNestedScroll()
değiştiricisi eklendi. (I60759)
Hata Düzeltmeleri
- Odaklanıldığında besteden kaldırıldığında metin alanlarının klavyeyi gizlemediği regresyon düzeltildi. (I7a410, b/230536793, b/225541817)
- Yükseklik sınırlı olduğunda ve tüm metin satırlarına uymadığında üç nokta desteği (Ie528c, b/168720622)
BringIntoViewRequester.bringIntoView
, istek tamamlanana veya daha yeni, çakışmayan bir istek tarafından kesintiye uğrayana kadar her zaman askıya alır. Çakışan istekler sıraya alınır. (I43e7f, b/216790855)- Tamamen çakışan dikdörtgenler için eşzamanlı
BringIntoViewRequester.bringIntoView
çağrıları artık yalnızca daha büyük olan dikdörtgenin isteğini dikkate alır. (I34be7, b/216790855, b/184760918) - Varsayılan olarak
includeFontPadding
etkinleştirildi.TextStyle.platformTextStyle
özelliğini kullanarakincludeFontPadding
öğesini devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak o zamana kadar, satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre etmemize veTextField
kırpma sorunlarını çözmemize olanak tanıyacağız. (I01423, b/171394808) Modifier.bringIntoViewRequester
artıkonGloballyPositioned
kullanmıyor. (I630f5)
Harici Katkı
MouseInjectionScope.scroll(delta = someDelta)
, Android'de artık dikey olarak kaydırırsak ters çevrilmiş oluyor (someDelta pozitifse aşağı kaydırır) (Ifb697, b/224992993)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.foundation:foundation:1.2.0-alpha08
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha08
yayınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.
API Değişiklikleri
FontFamily.SansSerif
özelliğini kullanırken Android'de sistem yazı tipleri için mevcut tüm ağırlıkları görüntüleyin. API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adları kullanılır. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları desteklendiğinden bu bir davranış değişikliğidir. (I380fe, b/156048036, b/226441992)- Paragraf ve Çoklu Paragraf artık Kısıtlamalar parametresini kabul ediyor.
Constraints.maxHeight
öğesini geçirmek şu anda bir işlem değildir ancak ileride yüksekliğe göre elipsleme gibi bazı hesaplamalar yapılabilir. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
artık yeni öğe eklemeye izin vermeyen özel MutableSet benzeri özel sınıfı kabul ediyor. (Icd314)- Kısmi tüketim (düşüş VEYA konum)
PointerInputChange
içinde kullanımdan kaldırıldı. Değişiklikten tamamen yararlanmak içinconsume()
öğesini kullanabilirsiniz. Başka birinin değişikliği daha önce kullanıp kullanmadığını belirlemek içinisConsumed
kullanabilirsiniz. PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu, kopyalardan biri tüketildiğindePointerInputChange
kopyalarının kullanılacağı anlamına gelir. Bağlantısız birPointerInputChange
oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)- Yeni deneysel
LazyLayout
API kullanıma sunuldu. Bu sayedeLazyColumn
/LazyVerticalGrid
gibi kendi bileşenlerinizi derleyebilirsiniz. API'nin başlangıç aşamasında olduğunu ve gelecekteki sürümlerde değiştirilebileceğini unutmayın. (Iba2bc, b/166591700) AndroidFont
artıktypefaceLoader
parametresini kurucu parametresi olarak kabul ediyor. (I2c971)WindowInsets
tamamlayıcısı artık görünürlüğü (pencereyle kesişip kesişmediklerinden bağımsız olarak ekranda olup olmamaları) ve cihazda varsa ancak o anda etkin değillerse olabilecekleri boyutu gösterir. (I65182, b/217770337)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.foundation:foundation:1.2.0-alpha07
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha07
yayınlandı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.
API Değişiklikleri
- Geç düzenlerin alt öğelerinin, halihazırda oluşturulmuş olan öğelerin atılmasını önlemesine olanak tanıyan bir
PinnableParent
API'si eklendi (Ibbdd0, b/184670295) LazyListLayoutInfo
veLazyGridLayoutInfo
artıkbeforeContentPadding
veafterContentPadding
alanlarına sahip (I3b628, b/200920410)- IME'ye özellikle ondalık ayırıcı eklemek için
Keyboard.Number
yerine alternatif olarakKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) - İsteğe bağlı olarak, yazı tipi yedek zincirleri sırasında sistem tarafından yüklenen yazı tiplerini aramak için yeni yazı tipi açıklayıcısı Font(DeviceFontFamilyName) ekleyin. (I30468, b/219754572)
PointerEventType.Scroll
vePointerEvent.scrollDelta
artık kararlı API'lerdir (I574c5, b/225669674)TextStyle/ParagraphStyle. includeFontPadding
alan adındaincludeFontPadding
için eklenen geçici uyumluluk yapılandırmasıTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
aracılığıyla 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)FontFamily.Resolver
, sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için güncellendi (I6c1e7)ComposeView
öğesininconsumeWindowInsets
uzantı özelliği, geliştiricilerin Android WindowInsets kullanımını devre dışı bırakmasına olanak tanır. Böylece, birbirine müdahale etmeden her birininWindowInsets
uygulamasına hiyerarşide ayrıComposeViews
erişimi sağlanır. (I0ef08, b/220943142)
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.foundation:foundation:1.2.0-alpha06
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha06
yayınlandı. Sürüm 1.2.0-alpha06 bu kayıtları içerir.
API Değişiklikleri
- Odaklanabilir hedefe odaklanma isteği için
RequestFocus
semantik işlemi eklendi. (I17b71) FocusOrder
artıkFocusProperties
olarak birleştirildi vefocusProperties()
artıkfocusOrder()
uygulaması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, değiştiricilerin endişeleri daha iyi ayırmasını sağlar. (I601b7)- Geliştiricilerin, bileşimde olmalarına gerek kalmadan dönüşümü yapabilmeleri için
WindowInsets.asPaddingValues(Density)
eklendi. (I94c35) - Geçerli düzen yönü RTL olduğunda
VectorPainter
öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çekilebilirlerinin ayrıştırılması güncellendi. (I79cd9, b/185760237)
Hata Düzeltmeleri
- Kaydırma alanı yeniden boyutlandırıldıysa ve odaklanılan composable daha önce görünür durumdaysa,kaydırma değiştiricileri (
Modifier.verticalScroll()
,Modifier.horizontalScroll()
veModifier.scrollable()
) artık odaklanmış composable'ı görünür durumda tutmak için kaydırılacak. - Metin alanları artık odaklanıldığında ve klavye gösterildiğinde, tembel olmayan kaydırılabilir bir modda ve yumuşak giriş modu
ADJUST_RESIZE
olduğunda klavyenin üzerinde tutulacak. (I4a485, b/190539358, b/192043120, b/216842427)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.foundation:foundation:1.2.0-alpha05
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha05
yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
LazyVerticalGrid
veLazyHorizontalGrid
kararlı durumda. (I307c0)LazyGridItemInfo.Unknown
, ayrıLazyGridItemInfo.UnknownRow
veLazyGridItemInfo.UnknownColumn
ile değiştirildi (I56d51)LazyVerticalGrid
/LazyHorizontalGrid
ve ilgili tüm API'ler.grid
alt paketine taşındı. Lütfenandroidx.compose.foundation.lazy
olan içe aktarma işlemleriniziandroidx.compose.foundation.lazy.grid
olarak güncelleyin. (I2d446, b/219942574)- Metin:
includeFontPadding
artık varsayılan olarak kapalı.includeFontPadding=false
sonucunda ortaya çıkan kırpma sorunları işlenir ve uzun komut dosyaları için kırpma işlemi yapılmaz. (I31c84, b/171394808) - Ölçülen arayüz artık parentData özelliğini (I3313f) gösteriyor
- Alt öğelere odaklanılan öğelerin sınırlarını gözlemlemeye olanak tanımak için deneysel
Modifier.onFocusedBoundsChanged
kullanıma sunuldu. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - LazyHorizontalGrid eklendi. (I61ae7, b/191238807)
- Çapraz eksen boyutlarını tanımlamak için yeni bir
LazyVerticalGrid
API'si eklendi (I17723) - FocusGroup değiştiricisi eklendi (I64bc0, b/213508274, b/184670295)
Hata Düzeltmeleri
WindowInsets.toString()
artık doğru değerleri gösterecek. (I1585d)
Harici Katkı
- Kotlinx eş 1.6.0 (I3366d) sürümünü kullanacak şekilde güncellendi
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.foundation:foundation:1.2.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha04
yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
BringIntoViewResponders
artık istekleri üst katılımcılara manuel olarak iletmek için gerekli değildir. Bunun yerine, üst katılımcıların görüntülemesini istediği dikdörtgeni hemen döndürmesi gerekir. (I8e66a)- Metin olarak eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
LazyVerticalGrid
, artık kapsamı geçerli satıra sığmayan öğelerden önceline breaking
özelliğini destekliyor. (I05c40, b/207462103)excludeFromSystemGestures
adlı odanın adısystemGesturesExclusion
(I19526) olarak değiştirildiLazyVerticalGrid
artık tersLayout'u destekliyor. (I6d7d7, b/215572963, b/211753558)- Geliştiricilerin yalnızca WindowInsets'teki boyutları dahil etmelerine izin vermek için
WindowInsets.only()
yöntemini ekleyin. (I14c94, b/217768486) Bir composable işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleyen çağrıldığında derleme zamanı raporlamasını sağlayan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
eklendi.Çoğu durumda ek açıklamalar, oluşturucu derleyici eklentisi tarafından tahmin edilebilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadir bir durumdur. Çıkarım yapılamayan durumlar arasında özel uygulayıcı, soyut composable işlevleri (arayüz yöntemleri gibi), alanlar veya composable lambda olan genel değişkenler (yerel değişkenler ve parametreler çıkarım yapılır) oluşturup kullanmak veya
ComposeNode
ya da ilgili composable işlevleri kullanmak yer alır.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
çağıran composable işlevlerin, işlev ve tümcomposable lambda parametre türleri içinCompoableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ek açıklaması içeren bir ek açıklama oluşturmanız ve daha sonra, işaretli ek açıklamanın doğrudanComposableTarget
yerine kullanılması önerilir.ComposableTargetMarker
ile işaretlenmiş bir composable ek açıklama, applier parametresi olarak özellik sınıfının tam adına sahipComposbleTarget
özelliğine eşdeğerdir.ComposableTargetMarker
kullanımına ilişkin örnek içinanroidx.compose.ui.UiComposable
sayfasını inceleyin. (I38f11)
Hata Düzeltmeleri
- Artık negatif kaydırma ofsetlerinin
LazyGridState.scrollToItem()
veLazyGridState.animateScrollToItem()
içine geçirilmesine izin veriliyor. (I025c6, b/211753558) - TextField için eşzamansız yazı tipi yüklemeyi destekleyin. (Icc4bf, b/214587005)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.foundation:foundation:1.2.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha03
yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
TextInputSession
veTextInputService
uygulamalarındakinotifyFocusedRect
yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerineBringIntoViewRequester
kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)- Animasyonlar, Modifier.animateItemplacement() öğesini içeren geç ızgara öğeleri için etkinleştirildi. (Ib6621, b/211753218)
BringIntoViewRequester
artık istekleri barındıran Android View'a yayar. (Ia7a51)FontFamilyResolver
artıkLocalFontFamilyResolver.current
- üzerinden kullanılabilir
- Oluşturma kullanımının dışında yeni FontFamily çözümleyiciler oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi. - Artık Paragraf ve MultiParagraf,
FontFamily.Resolver
kullanıyor TextLayoutResult.layoutInput.fontFamilyResolver
artık bu düzen için kullanılan çözümleyiciyi içeriyor.TextLayoutResult.layoutInput.resourceLoader
artık kullanılmadığı için kullanımdan kaldırıldı. (Id5a45, b/174162090)
- Oluşturma kullanımının dışında yeni FontFamily çözümleyiciler oluşturmak için
- Android'de yeni türlerde yazı tipi kaynağı tanımlayıcıları sağlayan alt düzey yeni bir API olan
AndroidFont
eklendi. Örneğin, uygulamaya özel bir arka uçtan yazı tipi yükleme, isteğe bağlı olarak cihazda önceden yüklenmiş yazı tiplerini bulma veya mevcut Yazı tipi 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 kullanmaları önerilmez. Yeni yazı tipi türleri eklemek için AndroidFont'a bakın. Font.AndroidResourceLoader
uzantı işlevi, kompozisyonun dışındayken birFont.ResourceLoader
oluşturulmasına izin verir.- Kaynak yazı tipi, indirilebilir yazı tipleri XML'ine başvurduğunda eşzamansız yüklemeye izin vermek için kaynak tabanlı yazı tiplerine
loadingStrategy
parametresi eklendi. (Ie5aea, b/174162090)
- İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için
Typeface(FontFamily)
oluşturucu kullanımdan kaldırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. İndirilebilir yazı tiplerinde bu çağrı 10 saniye süreyle engellenebilir. Bunun yerineFontFamilyResolver.preload
kullanınfontResource(FontFamily): Typeface
desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. Bu işlem, indirilebilir yazı tipleri için 10 saniyeye kadar sürebilir. Bunun yerineFontFamilyResolver.preload
kullanın (If8e7c, b/174162090)
- Artık
LazyVerticalGrid
öğelerinin içerik türünü belirtebilirsiniz -LazyGridScope
üzerindeki öğe/öğe işlevleri artık bu tür parametreleri kabul etmektedir. Bu tür bilgilerin sağlanması, öğe bestesinin mantığı daha verimli bir şekilde kullanmasına ve içeriği yalnızca benzer türdeki öğeler arasında yeniden kullanmasına yardımcı olur. (I7b355, b/215372836) LazyListLayoutInfo
veLazyGridLayoutInfo
artık yeni mülklere sahip:viewportSize
,orientation
,reverseLayout
(Ifc8ed, b/200920410)- Artık LazyColumn/LazyRow öğeleri için içerik türünü belirtebilirsiniz - LazyListScope'taki öğe/öğe işlevleri artık bu tür parametreleri kabul ediyor. Bu tür bilgilerin sağlanması, öğe bestesinin mantığı daha verimli bir şekilde kullanmasına ve içeriği yalnızca benzer türdeki öğeler arasında yeniden kullanmasına yardımcı olur. (I26506)
maxSlotsToRetainForReuse
kabul edenSubcomposeLayoutState
oluşturucunun desteği sonlandırıldı. Bunun yerineSubcomposeSlotReusePolicy
özelliğini kabul eden yeni bir oluşturucu vardır. Bu yeni arayüz, hangi alanların gelecekte yeniden kullanılmak üzere saklanacağı konusunda daha ayrıntılı kontrole olanak tanıyan yeni bir arayüzdür. (I52c4d)- WindowInsets için hem dolgu hem de boyutlandırma için Değiştiriciler ekler. Bu, bazı içeriklerin içerideki alana uzanmasına, ancak yine de birincil içeriğin içe eklenen alanın dışında kalmasına izin verir. Örneğin, windowInsetsPadding, içerik alanını tamamen veya kısmen kaplanmış olabilecek alanlardan kaçınmak için doldurmak için kullanılabilir. (Id0395, b/213942085)
Hata Düzeltmeleri
- Metin Alanları artık odaklanıldığında ve yumuşak giriş modu
ADJUST_PAN
olduğunda klavye gösterildiğinde klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolver
için yerel bileşim kullanıyor- Masaüstü
FontLoader
desteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090)
- Masaüstü
- Metin alanları arasında odak değiştirildiğinde, sanal klavye giriş türü artık titremiyor. (I1bf50, b/187746439)
- İmleç tutamacı gösterilirken artık metin alanlarına tekrar basma zorunluluğu yoktur. (Ideb4b, b/205726883)
- Metin seçimi büyüteci davranışı, platform büyüteciyle eşleşecek şekilde ayarlandı. (Idd918, b/206833278)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.foundation:foundation:1.2.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha02
yayınlandı. Sürüm 1.2.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- Karmaşık bir mantığa sahip olmayan mevcut yöntemlerin aşırı yüklendiği yöntemlere
NonRestartableComposable
eklendi. Bu, çağrılan iç fonksiyonda tekrarlanan tüm parametreler için derleyici tarafından oluşturulan not alma kontrollerini azaltır (eşittir). (I90490) - Android'in
setSystemGestureExclusionRects
uygulamasına kolay erişim içinexcludeFromSystemGesture
Değiştiriciler eklendi (I46f07)
Hata Düzeltmeleri
- Metin seçimi büyüteci davranışı, platform büyüteciyle eşleşecek şekilde ayarlandı. (Idd918, b/206833278)
Modifier.scrollable
kullananLazyColumn
,LazyRow
,Modifier.verticalScroll
ve diğer kapsayıcılar artık fare tekerleğiyle kaydırmayı destekliyor. (I2b5e1, b/198214718)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.foundation:foundation:1.2.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha01
yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Kullanıcıların, dokunma hareketleri veya erişilebilirlik işlemleriyle kullanıcı tarafından başlatılan kaydırma işlemini geçici ya da kalıcı olarak devre dışı bırakmasına olanak tanımak için
LazyColumn
,LazyRow
veLazyVerticalGrid
öğelerine yeniuserScrollEnabled
parametresi eklendi. Durumdaki yöntemler aracılığıyla programatik olarak kaydırmaya izin verilmeye devam edilecektir. (I7eae9, b/201150093) - Büyüteç değiştiriciye
onSizeChanged
geri çağırma işlevi ekleyin. (I6879f) - Büyüteç widget'ı artık
SelectionContainer
içindeki seçim tutma yerlerini sürüklerken gösteriliyor. (I30b38, b/139320979)
Hata Düzeltmeleri
- Görünümün dışına kaydırıldığında
TextField
imleç tutamacının gizlenememesi sorununu düzeltir. (I14552, b/208883748)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
hizmetini kullanabilirsiniz.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.foundation:foundation:1.1.1
ve androidx.compose.foundation:foundation-layout:1.1.1
yayınlandı. 1.1.1 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
adresindekiNullPointerException
sorununu düzeltin (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında pano içeriğinin neden kilitlenmesi 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.foundation:foundation:1.1.0
ve androidx.compose.foundation:foundation-layout:1.1.0
yayınlandı. 1.1.0 sürümü bu kayıtları içerir.
1.0.0'dan sonraki ö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 Material bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılayacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olarak ayarlasanız bile Düğme dokunma hedefi minimum 48x48 dp boyuta genişler. Bu işlem, Compose Materyalini Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ve Oluşturma öğelerini birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
- Navigasyon Rail için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir
- Kotlin'in yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.foundation:foundation:1.1.0-rc03
ve androidx.compose.foundation:foundation-layout:1.1.0-rc03
yayınlandı. 1.1.0-rc03 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03 sürümünü desteklemek için güncellendi
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.foundation:foundation:1.1.0-rc01
ve androidx.compose.foundation:foundation-layout:1.1.0-rc01
yayınlandı. 1.1.0-rc01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Artık negatif kaydırma ofsetlerinin
LazyListState.scrollToItem()
veLazyListState.animateScrollToItem()
içine geçirilmesine izin veriliyor. (Iceb90, b/184252837) - Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.foundation:foundation:1.1.0-beta04
ve androidx.compose.foundation:foundation-layout:1.1.0-beta04
yayınlandı. 1.1.0-beta04 sürümü bu kayıtları içerir.
Yeni Özellikler
- Kotlin
1.6.0
ile uyumlu olacak şekilde güncellendi
API Değişiklikleri
androidx.core.view
içindeki boş değer temizlendi(I7078a, b/204917439)- PointerInputchange'in bir bütün olarak kullanılmasına veya tüketilip tüketilmediğini kontrol edilmesine olanak tanıyan deneysel API'lar eklendi. (I2e59d)
- Metin alanlarının içinde imleci veya seçim tutma yerlerini sürüklerken büyüteç widget'ı gösterin. (I5391e, b/203781358)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerlerini düzeltin. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.foundation:foundation:1.1.0-beta03
ve androidx.compose.foundation:foundation-layout:1.1.0-beta03
yayınlandı. 1.1.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- LazyVerticalGrid'e yatay aralık desteği eklendi. (I7e2fa, b/176758183)
Geç listeler öğe konumlarına animasyon ekleme deneysel özelliği eklendi. LazyItemScope içinde
Modifier.animateItemPlacement()
adlı yeni bir değiştirici var. Kullanım örneği:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }
LazyListScope.item
veyaLazyListScope.items
aracılığıyla bir anahtar sağladığınızda bu değiştirici, animasyonların yeniden sıralanmasını etkinleştirir. Öğenin yeniden sıralanmasının yanı sıra, düzenleme veya hizalama değişiklikleri gibi etkinliklerin neden olduğu diğer tüm konum değişikliklerine de animasyon eklenir. (I59e7b, b/150812265)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.foundation:foundation:1.1.0-beta02
ve androidx.compose.foundation:foundation-layout:1.1.0-beta02
yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Dalgalar ve diğer göstergeler artık yalnızca bir
Modifier.scrollable()
kapsayıcısının içinde olduğunda gecikecek ve düşüş etkinliği için her zaman ertelenecektir. (Ibefe0, b/203141462) - Ebeveynlere, bir öğeyi görünüme getirmek için kaydırma isteği göndermenizi sağlayan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
Harici Katkı
- Eklenen
Modifier.pointerHoverIcon
(I95f01)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.foundation:foundation:1.1.0-beta01
ve androidx.compose.foundation:foundation-layout:1.1.0-beta01
yayınlandı. 1.1.0-beta01 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Ebeveynlere, bir öğeyi görünüme getirmek için kaydırma isteği göndermenizi sağlayan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.foundation:foundation:1.1.0-alpha06
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha06
yayınlandı. 1.1.0-alpha06 sürümü bu kayıtları içerir.
API Değişiklikleri
- Layout için iyileştirilmiş verimlilikle çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
SemanticsNodeInteraction.performSemanticsAction
şimdi işlevin çağrıldığıSemanticsNodeInteraction
değerini döndürüyor. (I9e5db)- Belirli bir eşleştirici ile eşleşen içeriğe kaydırılabilir bir kapsayıcıyı kaydıran
performScrollToNode(matcher: SemanticsMatcher)
eklendi. (Ic1cb8)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha05
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha05
yayınlandı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
- PointerEventChange'e deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
Hata Düzeltmeleri
- Kaydırılabilir öğeler (hem geç hem tembel olmayan) için kaydırma ile ilgili sabit erişilebilirlik desteği (I6cdb0)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha04
yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
performTouchInput
veTouchInjectionScope
ile değiştirilenperformGesture
veGestureScope
kullanımdan kaldırıldı. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin minimum erişilebilirlik değerlerini karşılamasını sağlayabilmek için
SemanticsNode
öğesine, minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214)
Hata Düzeltmeleri
- Android 12 cihazlarda esneme fazla kaydırma desteği eklendi. (Iccf3c, b/171682480)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha03
yayınlandı. Sürüm 1.1.0-alpha03 bu kayıtları içerir.
Yeni Özellikler
1.1.0-alpha03
oluşturma işlemi, Kotlin1.5.30
biçimini temel alacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Kaydırma için parlaklık efekti eklendi. Fazla kaydırmalı görsel efektinin yapılandırılmasına olanak tanımak için yeni deneysel Over ScrollConfiguration API eklendi. Fazla kaydırma etkisini devre dışı bırakmak için null değerini girin. (I0c304, b/171682480)
- AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() öğelerini içeriyor (I507f0, b/179239764, b/182397793)
- Kesilen sınırları almak için test yöntemi eklendi. (I6b28e)
- Erişilebilirlik sağlamak amacıyla anlambilimde ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.foundation:foundation:1.1.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha02
yayınlandı. Sürüm 1.1.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
Modifier.size
verequiredSize
için DpSize sürümleri eklendi (I3fc7e, b/194219828)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.foundation:foundation:1.1.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha01
yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- İsteğe bağlı bir filterQuality parametresini kullanmak için kaynak ve hedef dikdörtgenlerini tüketen
DrawScope#drawImage
yöntemi güncellendi. Bu özellik, piksel tabanlı sanat için ölçeklendirildiğinde pikselleştirilmesi amaçlanan piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı birFilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607) - TextField artık geri düğmesine basıldığında seçimi temizliyor. Bu, Android EditText davranışıyla eşleşiyor. (I3ca16, b/174173645)
- İmleç tutamacı ekleyin. (I07a82, b/173016579)
Hata Düzeltmeleri
- Geç listeler ve normal kaydırma bileşenleri için anlamsal işlemler aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)
Harici Katkı
LazyVerticalGrid
artık hem yatay hem de dikey düzenleme parametrelerini kabul ediyor. (If9c92)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.foundation:foundation:1.0.5
ve androidx.compose.foundation:foundation-layout:1.0.5
yayınlandı. 1.0.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- türvedStateOf örneklerinin kilitlenmesini izlemeyle ilgili bir sorun düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.foundation:foundation:1.0.4
ve androidx.compose.foundation:foundation-layout:1.0.4
yayınlandı. 1.0.4 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
temel alınarak güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.foundation:foundation:1.0.3
ve androidx.compose.foundation:foundation-layout:1.0.3
yayınlandı. 1.0.3 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
temel alınarak güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.foundation:foundation:1.0.2
ve androidx.compose.foundation:foundation-layout:1.0.2
yayınlandı. 1.0.2 sürümü bu kayıtları içerir.
Compose 1.0.2
sürümünü desteklemek için güncellendi. 1.0.2
oluşturma işlemi, Kotlin 1.5.21
ile hâlâ uyumlu.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.foundation:foundation:1.0.1
ve androidx.compose.foundation:foundation-layout:1.0.1
yayınlandı. 1.0.1 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
temel alınarak güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0
ve androidx.compose.foundation:foundation-layout:1.0.0
yayınlandı. 1.0.0 sürümü bu kayıtları 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 Sürüm Oluşturma 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+ sürümüne yükseltin. Bu sorun, Android Studio Bumblebee ve AGP7.1
sürümünün bir sonraki sürümünde düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0-rc02
ve androidx.compose.foundation:foundation-layout:1.0.0-rc02
yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.
- Sabit boyutlarla tanımlanmış yollardaki sorunları gidermek amacıyla genel şekillere ilişkin kenarlık oluşturma güncellendi. (aosp/1748871, b/191817116)
Sürüm 1.0.0-rc01
1 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0-rc01
ve androidx.compose.foundation:foundation-layout:1.0.0-rc01
yayınlandı. 1.0.0-rc01 sürümü bu kayıtları içerir.
API Değişiklikleri
- Tuval artık erişilebilirlik için contentDescription parametresini desteklemektedir. (Ib547c)
Hata Düzeltmeleri
- Devre Dışı Bırakılan Düğme, Kart, Onay Kutuları ve genel
Modifier.clickable(enabled=false)
, tıklamaların üst öğeye gitmesini engeller. (Ic2c3b, b/183908811)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.foundation:foundation:1.0.0-beta09
ve androidx.compose.foundation:foundation-layout:1.0.0-beta09
yayınlandı. 1.0.0-beta09 sürümü bu kayıtları içerir.
API Değişiklikleri
ManualFrameClock
kaldırıldı. Animasyonları kontrol etmeniz gerekirse bunun yerinecomposeTestRule.mainClock
işlevini kullanın. (I3c3e8, b/189951065)- enum Rolü ve LiveRegionMode'u, özel oluşturucuya (Id1890) sahip satır içi sınıflarla değiştirin
- Klavye büyük harf kullanımı satır içi sınıfa dönüştürüldü. (Id5a1c)
- TextOverflow, satır içi sınıf olarak değiştirildi. (I433af)
Hata Düzeltmeleri
- Artık LazyColumn/Row öğeleri için benzersiz anahtarlar belirttiğinizde, kaydırma konumu anahtara göre korunuyor. Diğer bir deyişle, geçerli görünür öğeden önce öğe ekler veya kaldırırsanız belirtilen anahtara sahip öğe ilk görünür öğe olarak tutulur. (Id263f, b/184257857)
- Anahtar sabitleri şimdilik @DeneyselalComposeUiApi'dir. Kod tüketmek, sabitlemeden önce özel sabitleri bildirebilir. (Ia5d48)
- Durağamayı beklemek veya sorunu çözmek için alternatif bir mekanizma yüklemek üzere test çerçeveleri tarafından kullanılabilecek IdlingStrategy AndroidComposeTestRule'a eklendi. Kendi stratejinizi yüklemek için testiniz başlamadan önce
AndroidComposeTestRule.setIdlingStrategyFactory()
kullanın. (I608fa)
Eklenmiş Profil Kuralları
Bu sürümde aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları eklenir:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.temel
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-dalga
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığa ilişkin profil kuralları,
src/main
veya eşdeğer dizinde bulunanbaseline-prof.txt
metin dosyasında belirtilir. Dosya, satır başına bir kural belirtir. Bu örnekte, bir kural kitaplıktaki yöntemler veya sınıflarla eşleştirme kalıbıdır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan, kullanıcılar tarafından 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>
Bir sınıf kuralı 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şaretlenmemesi gerektiğini belirtmek içinH
,S
veP
karakterlerinden bir veya daha fazlasını içerir.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfı tanımlar. Örneğin,androidx.compose.runtime.SlotTable
sınıfındaLandroidx/compose/runtime/SlotTable;
tanımlayıcısı olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yöntemiisPlaced()Z
imzasına sahiptir.Tek bir kuralın birden fazla yöntemi veya sınıfı kapsamasını sağlamak 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 "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini belirtir.S
işaretine sahip bir yöntem, bunun başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemi başlatma sırasında yorumlama maliyetinden kaçınmak için önceden derlenmesi gerektiğini belirtir.P
işaretine sahip bir yöntem, bunun başlatma sonrasında ç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ığında önceden ayrılması gerektiğini gösteriyor.
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ştirilen kurallar, uygulamaya özel kompakt bir ikili program ART profili oluşturmak için kullanılır. Uygulama cihazlara yüklendiğinde ART, uygulamanın performansını özellikle ilk çalıştırmada iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla bu profilden yararlanabilir. Bu işlemin hata ayıklaması yapılabilir uygulamalar üzerinde etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.foundation:foundation:1.0.0-beta08
ve androidx.compose.foundation:foundation-layout:1.0.0-beta08
yayınlandı. 1.0.0-beta08 sürümü bu kayıtları içerir.
API Değişiklikleri
- Nested ScrollSource enum'un yerine bir satır içi sınıf gelir. (Ie321b, b/187055290)
- Yeni enum değerleri eklendiğinde kapsamlı ifadelerle ilgili sorunları önlemek için enum kullanımları satır içi sınıflarda yeniden düzenlendi. (I2b5eb)
- Kaydırma / sürükleme sırasında dalga gösterilmesini engellemek için tıklanabilir / değiştirilebilir özelliğine dokunma zaman aşımı ekler (Ia2704, b/168524931)
- ContentDescription ve Text semantics özellikleri artık tek değerler değil, listelerdir. Böylece birleştirme yapmak yerine, olduğu halde birleştirebilirsiniz. Ayrıca bu değişiklikleri kullanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırılmış olup yerineModifier.focusTarget()
(I6c860) ile değiştirilmiştir- KlavyeType sıralaması bir satır içi sınıfla değiştirildi. (I73045, b/187055290)
FocusState
sıralaması,FocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- ImeAction enum'un yerine bir satır içi sınıf getirildi. (I18be5, b/187055290)
AnnotatedString.withAnnotation
işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi'dir. (I0cd0a)- TextUnitType içeren TextUnit oluşturucu, artık ExperimentalComposeApi yerine DeneyselalTextApi olmuştur.
- PaddingValues artık
@Immutable
yerine@Stable
(I88c50)
Hata Düzeltmeleri
- Boş olmayan metinde boş alana uzun basmaktan kaynaklanan kilitlenmeler düzeltildi. (I33ab5, b/187437299)
- SelectAll (Tümünü Seç) ifadesinden sonra Araç Çubuğunu göster (I495d9, b/185919613)
- Çapraz eksende alt öğelerini kırpan kaydırılabilir kapsayıcılar için düzeltme yapıldı. Kart öğeleri içeren bir LazyRow ile kolayca yeniden oluşturulabiliyordu. Artık gölge kırpılmayacak. (Icb635, b/186318448)
- Modifier.combinedClickable (I2298c, b / 186223077) kullanılırken dalgaların/diğer işaretlerin bazen uzun tıklamalarda takılması sorunu giderildi
- Artık
detectDragGesures
,detectVerticalGestures
vedetectHorizontalGestures
konum değişikliğini otomatik olarak kullanacak; onDrag geri çağırmalarında change.consumePositionChange çağrılmasına gerek yoktur (I42fc4, b/185096350, b/187320697) Modifier.onGloballyPositioned()
, tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirmek için değiştirildi. Bu, artık değiştiricilerin sıralamasının, hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.foundation:foundation:1.0.0-beta07
ve androidx.compose.foundation:foundation-layout:1.0.0-beta07
yayınlandı. 1.0.0-beta07 sürümü bu kayıtları içerir.
API Değişiklikleri
- Bir sonraki görünür öğe önceden getirme mantığı, LazyColumn/Row için sunulmuştur (I8a4bc, b/184940225)
- Klip Seçimi Tutma Yeri eklendi (Iff80d, b/183408447)
Hata Düzeltmeleri
- LazyColumn/Row artık, daha önce aşağı kaydırılmış olsalar bile önceden görünür olan en fazla 2 öğeyi etkin (atılmayan) tutacak. Bu, kaydırma performansını iyileştiren yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt kompozisyonları yeniden kullanmasına olanak verir. (Ie5555)
- PaintArka planı kaldırın. (I38660)
- DrawScope kullanarak seçim arka planı çiz. (I73c61, b/186674472)
- Ağırlıklı alt öğeleri düzenlemek için SpacedBy düzenlemelerini kullanan Satır/Sütun'u etkileyen bir beta06 regresyonu düzeltildi. (Ifaf8c, b/187326588)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.foundation:foundation:1.0.0-beta06
ve androidx.compose.foundation:foundation-layout:1.0.0-beta06
yayınlandı. 1.0.0-beta06 sürümü bu kayıtları içerir.
API Değişiklikleri
- Gezinme Hareketiyle Çakışmayı Çöz (I1145e)
- Koleksiyonun ve öğelerinin erişilebilirlik hizmetleri için işaretlenmesine olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
- Dizine eklenmiş öğeler içeren bir listeyi belirli bir dizine sahip öğeye kaydırmak için
SemanticsActions.ScrollToIndex
ve anahtarlı öğeler içeren bir listedeki öğ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
- AnnotatedString işlevinin TextFieldValue.Saver'e kaydetme desteği. AnnotatedString.Builder'a (I8cbdc, b/178446304) addTtsAnnotation ve withAnnotation yardımcı program işlevleri eklendi
PaddingValues(horizontal, vertical)
öğesine varsayılan0.dp
parametre değerleri eklendi (I05571, b/181336792)
Hata Düzeltmeleri
weight(fill = false)
içeren satır ve sütun alt öğeleri, artık üst öğeyi mevcut ana eksen alanının tamamını doldurmuyor. (Ied94d, b/186012444, b/184355105)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.foundation:foundation:1.0.0-beta05
ve androidx.compose.foundation:foundation-layout:1.0.0-beta05
yayınlandı. 1.0.0-beta05 sürümü bu kayıtları içerir.
API Değişiklikleri
- FlingBehavior arayüzü artık @Stable olarak işaretlendi. Tüm uygulamalar
@Stable
sözleşmesine uygun olmalıdır. (I93354, b/184830577)
Hata Düzeltmeleri
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
erişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0)- ui-test-manifest veui-tooling-data içindeki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumlu.
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.foundation:foundation:1.0.0-beta04
ve androidx.compose.foundation:foundation-layout:1.0.0-beta04
yayınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.
API Değişiklikleri
- SoftwarekeyboardController'daki hideYazılımKlavye ve showSoftwareKlavyesini sırasıyla
hide()
veshow()
olarak yeniden adlandırın.- LocalYazılımKlavyeDenetleyicisi için tam CompositionLocal arayüzünü sağlayın. Bu arayüz, ayarlanmasına izin verin (özellikle testlerde kullanışlıdır) (I579a6)
TextOverflow.Visible
kullanıma sunuldu. (Ic8f89)RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
adlı uygulamanın herkese açık örnekleri kaldırıldı. (I4e83e, b/181869067)
Hata Düzeltmeleri
- Kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin, hızlı kaydırmadan sonra yanlış konumlandırılmasıyla ilgili sorun düzeltildi (Ie4d13, b/183877420) Bu değişiklikten önce, yerel composable işlevler parametrelerine göre atlanabilirdi. Bu değişiklikten sonra hiçbir yerel composable işlev atlanmayacak. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri yakalaması yaygın ve beklenen bir uygulama olduğu ve bunların atlanması yaygın bir hata kaynağı olduğu için yapılmaktadır.
Özetlemek gerekirse:
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }
Bu değişiklikten önce,
ShowCount
composable işlevicount
parametresi güncellendikten sonra bile her zaman atlanıyordu. Bu durum artık geçerli değil. (I5648a)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.foundation:foundation:1.0.0-beta03
ve androidx.compose.foundation:foundation-layout:1.0.0-beta03
yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
DefaultMonotonicFrameClock
desteği sonlandırıldı.MonotonicFrameClock
olmadanwithFrameNanos
veyaRecomposer.runRecomposeAndApplyChanges
araması, artıkIllegalStateException
bildirimine yol açacaktır. (I4eb0d)
Hata Düzeltmeleri
FlingBehavior.performFling()
artık hız 0 olduğunda bile çağrılıyor (I0b6e5, b/181237123)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.foundation:foundation:1.0.0-beta02
ve androidx.compose.foundation:foundation-layout:1.0.0-beta02
yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- LazyColumn ölçüm mantığına birden çok küçük optimizasyon eklendi (Ic6889)
- TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel API'si eklendi. (I5951e, b/168778053) - TextField'te önceki SoftwareKeyboardController arayüzünün yerine yeni
LocalSoftwareKeyboardController
beste yerel API'si eklendi. (I84472, b/168778053)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımında kısıtlamalar uygula (I6aa29, b/174531520)
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.foundation:foundation:1.0.0-beta01
ve androidx.compose.foundation:foundation-layout:1.0.0-beta01
yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- onStart geri çağırma özelliği
detectDragGestures
grubuna eklendi (I67269, b/179995594) - Yerleşik özelliklere göre boyutlandırmayla ilgili değiştiriciler artık deneysel değildir. (I15744)
- dp onaylamaları kaldırıldı (I798d2)
- Kısa bir süre içinde yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma özelliği tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
- MeasureBlocks, eğlenceli bir arayüz haline gelen MeasurePolicy olarak yeniden adlandırıldı. Layout API'leri, MeasurePolicy kullanacak şekilde güncellendi veya basitleştirilmiştir. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, Etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
interactionState = remember { InteractionState() }
öğesiniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
işlevini kullanın.Interaction.Pressed in interactionState
yerine, EngagementSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmalısınız.- Karmaşık kullanım örneklerinde, Etkileşimlerin akışını gözlemlemek için EtkileşimKaynak.interactions'ı kullanabilirsiniz. Daha fazla bilgi için EngagementSource belgelerine ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı, locationInParent ve boundsInParent için özellik yerine işlevi kullanın (I580ed, b/169874631, b/175142755)
- CoreTextField gibi alt düzey metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Placeable, artık alt düzenin gerçekte ölçtüğü boyutu temsil eden measurementSize özelliğini gösterir. Bu boyut, ölçüm sınırlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla Sekme veya Radyo Düğmesi koleksiyonunu işaretlemeye olanak tanıyan seçim grubu değiştiricisi ekleyin (Ie5c29)
LazyListState.animateScrollToItem ekle
Bu yöntem, listedeki belirli bir öğeye sorunsuz bir şekilde kaydırma yapar. (I4bfd7)
ScrollableState.smoothScrollBy(), CanındakitürültmeBy() (I35ded) olarak yeniden adlandırıldı. LazyListState.snapToItemIndex(), scrollToItem() olarak yeniden adlandırılmıştır KaydırmaState.smoothScrollTo(), canlananScrollTo() (I35ded) olarak yeniden adlandırıldı
Modifier.zoomable, Modifier.transformable kutum ile değiştirildi. İşlevler olarak smoothPanBy, smoothRotationBy eklendi. (Ifc32b, b/175294473)
compositionLocalOf
vestaticCompositionLocalOf
için artık isteğe bağlı yerinedefaultFactory
zorunludur.Bu değişiklik, varsayılan fabrikanın sağlanmadığı, boş değerli olmayan türler için olası tür hatasını ortadan kaldırır. Önceden bu, null yapılamayan bir tür için boş referans sağlıyordu.
Boş değer atanabilen türler için varsayılan fabrika ayarı olarak
{ null }
değerini sağlayın.Makul bir varsayılan sağlanmadığı sürece, null yapılamayan türlere sahip yerel halkın kullanılması önerilmez. Makul bir varsayılan yoksa
defaultFactory
lambda bir istisna atmalıdır. Bununla birlikte, istisna uygulamak yerel tüketicilerin, tür sistemi tarafından zorunlu kılınmayan, sağlanan dolaylı bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Indication#createIndication()
parametresiIndication#rememberUpdatedIndication(InteractionState)
olarak değiştirildi veInteractionState
parametresi IndicationInstance#drawIndication()
öğesinden kaldırıldı. IndicationInstance, yalnızca görsel efektler çizmekten sorumlu olmalı ve EngagementState değişikliklerine yanıt olarak animasyonları başlatmamalıdır / yazma durumu oluşturmamalıdır. Bu animasyonlar ve durum yazmaları bunun yerinerememberUpdatedIndication()
içinde gerçekleşmelidir.Modifier.indication
öğesindekiindication
parametresi de zorunlu parametre olacak şekilde değiştirildi. (Ic1764, b/152525426)Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
runBlockingWithManualClock
kaldırıldı (I15cdc, b/179664814)Modifier.verticalKaydırma()/YAtayKaydırma() işlevindeki kaydırma konumu, artık Ints ile temsil edilir (I81298)
smoothScrollBy and scrollBy yöntemlerinin paketleri
androidx.compose.foundation.gestures.*
olarak değiştirildi (I3f7c1, b/175294473)FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decays yerine askıya alma animasyonunun özelleştirilmesine izin veriliyor. (I02b86, b/175294473)
Boyut değiştiriciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)
defaultMinSizeConstraints, defaultMinSize olarak yeniden adlandırıldı. (I4eaae)
Modifier.tapHareketFilter kaldırıldı. Bunun yerine
Modifier.pointerInput { detectTapGestures(...) }
politikasını kullanın. (I266ed, b/175294473)işaretçi giriş sisteminden kısmi tüketim kaldırıldı. Kısmi tüketimin koordinasyonu 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)
AnimationClockObservable ve alt sınıflar kaldırıldı. Animasyonlu Kayan öğe kaldırıldı. (Icde52, b/177457083)
drawerState.open() vedrawerState.close() artık işlevleri askıya alıyor. HatırlanabilirCoroutineScope() çağrısı yaparak bestenin kapsamını alın (I16f60, b/175294473)
Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı
- Beste oluşturucu artık anahtar parametresi kabul etmediğinden kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey mülke dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- ComposableLambdaN, beton bir sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- SnapshotFlow işlevi androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
@TestOnly
üst düzey clearRoots işlevi kaldırıldı. Buna artık gerek yoktur.- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceBilgileri kaldırıldı. Buna artık gerek yoktur.
- isjoinedKey, birbirine katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
- Çeşitli üst düzey API'ler taşındı ve farklı dosyalar halinde yeniden düzenlendi. Kotlin’in dosya sınıfı semantiği nedeniyle bu, ikili uyumluluğu keser ancak kaynak uyumluluğunu keser. Bu nedenle çoğu kullanıcı için sorun teşkil etmeyecektir.
- (I99b7d, b/177245490)
Modifier.scrollable yeniden düzenlendi. Şimdi ScrollableController sınıfının yerine Scrollable arayüzünü kullanır (I4f5a5, b/174485541, b/175294473)
Modifier.draggable artık basit bir lambda yerine DraggableState'i kabul eder. Öncekiyle aynı davranışı elde etmek için
rememberDraggableState { delta -> }
aracılığıyla durum oluşturabilirsiniz (Ica70f, b/175294473)Yerleşik boyutlara gerekli boyutlandırma için requiredWidth(IntrinsicSize) ve requiredHeight(IntrinsicSize) değiştiricileri eklendi. (I0a6b4)
Desteği sonlandırılan
emptyContent()
kaldırıldı. Bunun yerine{}
politikasını kullanın. (Idb33f, b/179432510)Daha önce kullanımdan kaldırılmış bazı API'ler silindi (Ice5da, b/178633932)
Hata Düzeltmeleri
- TextField'te önceki SoftwarekeyboardController arayüzünün yerini almak üzere yeni LocalSoftwareKlavyeController yerel API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.foundation:foundation:1.0.0-alpha12
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha12
yayınlandı. 1.0.0-alpha12 sürümü bu kayıtları içerir.
API Değişiklikleri
- Modifier.pointerInput artık işaretçi girişi algılama eşinin yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek için tuşları hatırlamayı gerektiriyor. (I849cd)
- Test güncellemesi: hasText(), metin alanında (Iab803) hem girişi hem de etiket/ipucu/yer tutucu metinleri kontrol eder
- PaddingValues.absolute eklendi ve PaddingValues kabul eden API'lerde kullanılabilir. (Ia5f30)
- onImeActionPerformed desteği sonlandırıldı. Bunun yerine Klavyeİşlemleri kullanın (If0bbd, b/179071523)
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter'ın adı, BitmapPainter olarak, paralel VectorPainter olarak değiştirildi. (Iba381, b/174565889)
- Alt dizenin artık bağımsız değişken olarak kullanıldığı daha iyi alt dize test API'leri (Icbe78)
- Sonsuz animasyonlara uygulanacak bir
InfiniteAnimationPolicy
eş yordam bağlam öğesi kullanıma sunuldu. Varsayılan olarak, testlerinComposeTestRule
ile çalıştırıldığı durumlar dışında herhangi bir politika yüklenmez. (I50ec4, b/151940543) - Animatable.snapTo ve Animatable.stop artık askıya alma işlevleri (If4288) oldu
- ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
- Destructure ve copy() yöntemleri, nadiren kullanıldıkları çeşitli sınıflardan kaldırılmıştır. (I26702, b/178659281)
LazyColumn/LazyRow için özel anahtar desteği eklendi. Bu, yeniden sipariş edilen ürünleri daha akıllı bir şekilde ele almamıza olanak tanır. Dolayısıyla, öğeleri yeniden sıraladığınızda veya öğeyi ortadan kaldırdığınızda {} bloklarında sakladığınız durum, öğeyle birlikte taşınır.
LazyColumn { items(users, key = { user -> user.id }) { ... } }
Indication#createInstance, @Composable olarak değiştirildi ve LocalIndication, () -> Indication öğesini değil bir Göstergeyi içerecek şekilde değiştirildi. (I5eeea, b/157150564)
Constraints.enforce
,Constraints.constrain
ile değiştirildi. (I8b8ea)loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, VektörResource ve loadVectorResource için destek sonlandırılmıştır. Bunun yerine PaintterResource kullanın. (I6b809)
Performansı korumak için ScrollAxisRange semantiği, artık doğrudan Kayan noktalı değerler yerine Kayan noktalı öğeleri döndüren lambda'ları almaktadır. (If4a35, b/178657186)
Erişilebilirlik için metin alanında düzenlenebilir giriş metnini işaretlemek amacıyla EditableText semantiği eklendi. Anlamı kontrol etmek için ilgili test yöntemleri de eklendi (I8e07a)
Modifier.clickable artık çift ve uzun tıklama desteği sunmuyor. Bu işlevselliğe ulaşmak için Modifier.combinedClickable'ı kullanın. (Iafad1)
toIntPx(), roundToPx() olarak yeniden adlandırıldı. (I9b7e4, b/173502290)
IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
Modifier.dragMoveFilter kullanımdan kaldırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, bir eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473)Ambiyans, Ambiyans -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Eskiden AmbientFoo adı verilen ambiyanslar artık CompositionLocals olarak LocalFoo olarak adlandırılıyor. (I2d55d)
Seçim temele taşındı. (I7892b)
state { 0 }
composable'ı kaldırdığımız ve artıkremember { mutableStateOf(0) }
gibi kullanımı teşvik ettiğimiz şekildesavedInstanceState { 0 }
composable'ı da kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmanız gerekir. MutableState içinde kullanılan tür pakette depolanıyorsa otomatik olarak kaydedilip geri yüklenir. Daha önce bir özel koruyucu nesnesi iletirken şimdistateSaver
parametresine sahip Hatırlanabilirlik özelliğinin yeni bir aşırı yüklenmesini kullanmanız gerekir. Kullanım şöyle görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004)Erişilebilirlik için şifre anlamı eklendi (I231ce)
Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere İlerlemeBarRangeInfo.Indeterminate eklendi (I6fe05)
Animasyondaki oynatma süresi artık nanosaniyelere ayarlanmıyor (If776a)
@ComposableContract kullanımdan kaldırılarak yerine üç özel ek açıklama eklendi.
@ComposableContract(restartable = false)
,@NonRestartableComposable
oldu@ComposableContract(readonly = true)
,@ReadOnlyComposable
oldu@ComposableContract(preventCapture = true)
,@DisallowComposableCalls
oldu@ComposableContract(tracked = true)
kaldırıldı. (I60a9d)emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programları, artık performans üzerinde herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)Yeniden toplayıcılar artık kapatılabilir. Kapalı yeniden düzenleyiciler, beste alt eş yordamları tamamlanana kadar yeniden oluşturma işlemine devam eder. Recomposer.shutDown, kapatma işlemiyle kontrast oluşturmak üzere iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
LazyVerticalGrid ile ilgili API'ler deneysel olarak işaretlenmiştir (Ia53e3, b/178519862)
HatırlatıcıInstanceState(), comeSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
RestorableStateHolder, SaveableStateHolder olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. İç yöntem RestorableStateProvider, SaveableStateProvider olarak yeniden adlandırıldı. Herhangi birini anahtar olarak geçirebilmeniz için genel tür kaldırıldı. Deneysel ek açıklamaya artık ihtiyaç yoktur. (I0902e, b/174598702)
Saver, listSaver(), mapSaver(), autoSaver androidx.compose.runtime.savedinstancestate durumundan androidx.compose.runtime.saveable (I77fe6) konumuna taşındı
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 sonlandırılmış API'lerin çoğu silindi. (I2f2dc)
Composer:runtime-dispatch yapısı kullanımdan kaldırıldı. MonotonicFrameClock artık write:runtime'da, AndroidUiDispatcher ise Composer:ui'de bulunabilir. (Ib5c36)
RounderCornerShape, CutCornerShape ve CornerBasedShape ile ilgili parametreler, şeklin rtl yönünde otomatik yansıtmasını desteklemek için sol/sağ'dan başlangıç/bitiş olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için MutlakRounderCornerShape ve absoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
canDrag, Modifier.scrollable'dan kaldırıldı. (Id66e7, b/175294473)
Compose derleyici eklentisinin hedeflediği API, beton sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüz artık "type" parametresi kullanmamaktadır.
Bu, kaynak kodu uyumluluğunu etkilememesi gereken dahili bir değişikliktir. Ancak ikili programlara zarar veren bir değişikliktir. (I3b922, b/169406779)
Modifier.scalePositionFilter kaldırıldı. Bunun yerine Modifier.zoomable'ı kullanın. Alternatif olarak
Modifier.pointerInput { detectMultitouchGestures { ... }}
(Id5da1, b/175294473) hesabını kullanınCanlandırma Değeri/Kayan artık kullanımdan kaldırıldı. Lütfen bunun yerine Animasyonu kullanın. (I71345, b/177457083)
- CoreText ve CoreTextField, herkese açık API'den kaldırıldı
- Kullanımdan kaldırılan SelectionContainer aşırı yüklemesi (I99c19) kaldırıldı
Kullanımdan kaldırılan, askıya alınma olmayan kaydırma işlevlerini kaldırın Son sürümdeki değişikliklerle devam eden, askıya alınma olmayan kaydırma işlevleri artık tamamen kaldırıldı. Lütfen aynı ada sahip askıya alma işlevlerine dönüştürün. Eş ünite kapsamı,rememberCoroutineScope() işleviyle elde edilebilir. (I3d39c, b/178169563)
androidx.compose.foundation.layout.ConstraintLayout desteği sonlandırıldı ve yerine androidx.restrictiontlayout.compose.ConstraintLayout kullanıma sunuldu.
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
için bir bağımlılık eklemeniz gerekir. (I87adc)dokununhareket filtresi, çiftehafizasi hareketFiltresi, uzunBasın Hareket Filtresi ve basIndicaitonHareket Filtresi kullanımdan kaldırılmıştır. Bunun yerine, Detfier.clickable'ı ya da Modifier.pointerInput'u tespit etmek için Dokunma Hareketleri işleviyle kullanın. (I6baf9, b/175294473)
Recomposer.current()
kaldırıldı. [Abstract]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönlendirilen yavaş bir şekilde oluşturulmuş, pencere kapsamlı Recomposer'ları kullanıyor. Yeniden oluşturma ve withFrameNanos tabanlı animasyon onay işaretleri, ana makine Yaşam Döngüsü durdurulurken duraklatılır. (I38e11)Recomposer.runningRecomposers artık süreçte devam eden beste durumunu gözlemlemek için küresel bir RecomposerInfo salt okunur StateFlow'u sunuyor. Artık kullanımdan kaldırılmış olan Recomposer.current() için bu API'yi tercih edin. (If8ebe)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.foundation:foundation:1.0.0-alpha11
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha11
yayınlandı. Sürüm 1.0.0-alpha11 bu kayıtları içerir.
API Değişiklikleri
Askıya alınma olmayan scrollBy öğesini kullanımdan kaldır, askıya alınma olmayan scrollTo öğesini kaldır
Artık kaydırmayı kontrol etmek için askıya alma işlevlerini kullanmanızı ve kaydırmanın bitmesini beklemenizi öneririz. Bu geçiş kapsamında bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz ve/veya kaldırıyoruz. (Ie9ced)
Askıya alınmayan smooth scrollBy için desteği sonlandırın Artık kaydırmayı kontrol etmek için askıya alma işlevlerini kullanmanızı ve kaydırmanın bitmesini beklemenizi öneririz. Bu geçiş kapsamında bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz. (I12880)
Resim ve Simge'ye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetleriyle (I2ac4c) ilgili açıklama sağlamak için kullanılır
BasicTextField, "decorationBox" adlı yeni bir parametre aldı. Simge, yer tutucu, etiket ve metin alanına benzer süslemelerin eklenmesine ve bu alanın isabet hedef alanının genişletilmesine olanak tanır. (I16996)
canDrag parametresi, Modifier.draggable dosyasından kaldırıldı (Ic4bec, b/175294473)
FlingConfig'i kabul eden Animasyon Kayan.fling dosyası kaldırıldı. Lütfen bunun yerine Animatable.animateDecay askıya alma işlevini kullanın. (I4659b, b/177457083)
data class
şu sınıflardan kaldırıldı:- Satır İçiMetinİçeriği
- Yerel Ayar Listesi
- (I605c7)
Artık beste dışında tıklanabilir, geçiş yapılabilir ve seçilebilir olarak oluşturulabilir (I0a130, b/172938345, b/175294473)
ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn ile yalnızca görünür öğeleri oluşturma/ölçme/çıkarmamız mümkün olduğundan, büyük bir kaydırma içeriğiniz olduğunda LazyColumn'u kullanmak, LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımını teşvik etmeye karar verdik. Kullanıcılar yine de geç davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.vertical ülkeler(rememberScrollState())) (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ı kullanıldıklarında manuel olarak içe aktarmanız gerekir. Diziler için yeni uzantı aşırı yüklemeleri: items(items: Array) ve itemsIndexed(Array) (I803fc, b/175562574)Kullanımdan kaldırılan MutlakArrangement kaldırıldı. (Iffa96, b/177641870)
Gelen minimum kısıtlamaların Box içeriğine aktarılıp aktarılmayacağını belirtmek için ForestMinConstraints parametresi Box'a eklendi. Varsayılan değer, false (yanlış) değeridir. (I0125b, b/152613457)
Hata Düzeltmeleri
- onCommit, onDispose ve onActive desteği sonlandırıldı ve yerini SideEffect ve DisposableEffect API'leri (If760e) aldı.
- WithConstraints, BoxWithConstraints olarak yeniden oluşturulması ve foundation.layout'a taşındı. (I9420b, b/173387208)
Font/FontFamily/Yazı Tipi için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Küçük ilk harfle kullanımdan kaldırılan önceki fabrika işlevleri
- Yeni fabrika işlevleri, alt sınıflar yerine FontFamily döndürürken
- Alt sınıfların kurucuları, yalnızca fabrika işlevleri aracılığıyla oluşturulabilecek şekilde gizlendi.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı
- (I42aa7)
ComposeTestRule
kapsamını genişleten veComposeTestRule
öğesinden kaldırılmış olansetContent
öğesini tanımlayanComposeContentTestRule
kullanıma sunuldu.ComposeTestRule
döndüren ve sizin için Etkinlik başlatmayan bir fabrika yöntemi (createEmptyComposeRule()
) eklendi. Testiniz sırasında Etkinliğinizi başlatmak istediğinizde, ör.ActivityScenario.launch
kullanarak (I9d782, b/174472899) bunu kullanın.canlandırmaAsState artık animasyonluFooAsState oldu. Burada Foo, animasyonlu değişkenin türüdür. Ör. Kayma, Dp, Offset vb. (Ie7e25)
Yoğunluk artık Düzenleme arayüzlerinin alıcı kapsamıdır. (I18aad)
TextFieldValue, AnnotatedString'i kabul eder. Ancak bu yalnızca API'de yapılan bir değişikliktir ve çok stilli metin düzenleme henüz uygulanmamıştır.
- EditBuffer oluşturucu parametrelerinden
initial
kaldırıldı. (I326d5)
- EditBuffer oluşturucu parametrelerinden
inverify ve engagementReference() işlevleri artık sırasıyla currentRecomposeScope ve remindersCompositionReference koduyla kullanımdan kaldırılmıştır. (I583a8)
AnnotatedString, kotlin.CharSequence değerinden genişletilecek şekilde değiştirildi. Bu nedenle, uzunluk ve alt Sekans artık örnek işlevleri oldu ve uzantı işlevleri kaldırıldı. (Iaf429)
Süre ve Çalışma Süresi, Uzun milisaniyelerle değiştirilir ve bu adım, bu sınıflardaki işaretçi girişinin bağımlılığını ortadan kaldırır. (Ia33b2, b/175142755, b/177420019)
ThankObserver, CompositionLifecycleObserver'ın yerini almıştır. CompositionLifecycleObserver için de destek sonlandırılmıştır.
RememberObserver
,CompositionLifecycleObserver
yerine değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemler kullanır. Yalnızca bir kez hatırlanan ve önerilen uygulama olmaya devam eden nesneler için mekanik olarak yeni API'ye geçiş yapılabilir. Bununla birlikte, bir referans bir bestede birden çok kez hatırlandıysa her bir referans içinonRemembered
çağrılır. Burada,onEnter
yalnızca bir kez çağrılır. Nesne alt kompozisyonlarda kullanılmışsaonEnter
birden çok kez çağrıldı (örneğin,WithConstraints
veScaffold
) tekonEnter
çağrısı garantisini güvenilmez hale getiriyor veRememberObserver
için kaldırıldı.RememberObserver
,RememberObserver
örneğininremember
öğesine iletilen geri çağırmadan döndürülmesi durumunda çağrılanonAbandoned
ifadesini ekler. Ancak bu işlev, bileşim durumunda hatırlanmaz ve bu nedenle, hiçbir zamanonRemembered
çağrılmaz. Bu durum, beste tamamlanmadan önce bir istisnanın sonlandırılması veya bestenin artık güncel olmadığı ya da başka bir şekilde gerekli olmaması nedeniyle bestenin çıkarılması durumunda meydana gelebilir. Yukarıdaki tek referans önerisini izleyenRememberObserver
örneğinin hemonForgotten
hem deonAbandoned
harici bir kaynağı izlemesi, kaynağa artık ihtiyaç duyulmadığını gösterir. Nesne,onRemembered
çağrılırsa çağrılmayacağı içinonAbandoned
, başlatılan işleri veyaonRemembered
içinde ayrılan kaynakları izliyorsa yoksayılabilir. (I02c36)TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı
- TransformedText artık bir veri sınıfı (Ie672a) değil
Aşağıdaki sınıflar artık veri sınıfı değildir:
- Ek Açıklamalı Dize
- Paragraf Stili
- Aralık Stili
- Metin Stili
- Yazı TipiAğı
- Metin Dekorasyonu
- MetinGeometrikDönüşüm
- Metin Dizini
- MetinDüzeniSonuçları
- MetinLayoutInput (Iaff99)
Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
Global koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (Iee284)
Lütfen ImeAction.NoAction yerine ImeAction.None kullanın
- Lütfen ImeAction.Unspecified (Ie1bcc) yerine ImeAction.Default kullanın
FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiş. (I2d898, b/177000821)
SemanticsPropertyRecipientr.hidden, invisibleToUser olarak yeniden adlandırıldı ve @DeneyselalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, progressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityKayState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, Yatay ScrollAxisRange olarak yeniden adlandırılmıştır. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırılır. (Id3148)
VisualTransformation, işlevsel bir arayüz olarak değiştirildi (I3bba4)
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
PointerInputData kaldırıldı ve tüm PointerInputData alanlarını vermek için PointerInputChange ile değiştirildi. Herkese açık API'lerde kullanılmadıkları için PointerInputEvent ve PointerInputEventData verilerini dahili hale getirdi. (Ifff97, b/175142755)
TextInputService.onStateUpdated, updateState (Id4853) olarak değiştirildi
DisplaySize, kaçınılması gerektiği için bu etiketi kaldırın. Genellikle, en azından onRoot() boyutunu veya pencere boyutunu kullanmak daha iyidir. (I62db4)
Sürüm 1.0.0-alfa10
13 Ocak 2021
androidx.compose.foundation:foundation:1.0.0-alpha10
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha10
yayınlandı. Sürüm 1.0.0-alpha10 bu kayıtları içerir.
API Değişiklikleri
- ImeOptions ve KeyboardOptions artık bir veri sınıfı değil (I3c898, b/168684531)
- VisualTransformation API Değişiklikleri
- OffsetMap, OffsetMapping olarak yeniden adlandırıldı
- OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı
- PasswordTransformation artık veri sınıfı değil
- OffsetMapping kendi dosyasına taşındı
- (I0bdf3)
- Editİşlemler API'sında Yapılan Değişiklikler
- EditOperation'ın adı, EditCommand olarak değiştirildi
- EditOperation somut uygulamaları için Komut son eki eklendi
- EditCommand artık veri sınıfı değil
- EditProcess.process işlevi, applyTo olarak yeniden adlandırıldı
- InputEventListener, InputEventCallback olarak yeniden adlandırıldı
- (I0a366)
- Değiştirilmiş Hız, bileşen parçaları ve matematiksel işlemlere sahip olacak şekilde değiştirildi. (Ib0447)
- @ExperimentalTesting, benzer deneysel API ek açıklamalarıyla tutarlı olacak şekilde @ExperimentalTestApi olarak yeniden adlandırıldı (Ia4502, b/171464963)
- LazyColumn/LazyRow için deneysel stickyHeader yöntemi eklendi (I0a81d)
- Color.useOrElse(), Color.takeOrElse() (Ifdcf5) olarak yeniden adlandırıldı
- Kullanımdan Kaldırılmış TestUiDispatcher. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
- Temel Strings.kt öğesine geçiş anahtarı ekleyin (I4a5b7, b/172366489)
- NativeClass'ı UI modülüne taşıyıp dahili hale getirdim. Uygulamalarda NativeClass'ın güncellenen kullanımları, bunun yerine "is MyClass" kullanılacak şekilde eşittir. (I4f734)
- FlowRow ve FlowColumn kullanımdan kaldırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
- Modifier.focus() ve Modifier.focusRequester() işlevlerin desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() öğelerini kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
- Seçim Yöneticisi'ne Seçilebilir güncellemelerin bildirilmesi için SelectionRegistrar.notifySelectableChange kullanıma sunuldu. (I6ff30, b/173215242)
fun Dp.isFinite()
,val Dp.isFinite
(I50e00) olarak değiştirildi- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Belirsiz sabit değeri olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
Hata Düzeltmeleri
- Animasyonları arasında karşılıklı dışlama sağlayan yeni eş yordam tabanlı API
Animatable
. Çok boyutlu azalma animasyonunu destekleyecek yeni DecayAnimationSpec (I820f2, b/168014930) - Devre dışı bırakılan ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
animate()
artıkT
yerineState<T>
döndürenanimateAsState()
ile değiştiriliyor. Geçersiz kılma kapsamı State değerinin okunduğu yere daraltılabileceği için bu daha iyi performans sağlar. (Ib179e)- Semantics rol API'sini ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak Rol ekleyin. Modifier.progressSemantics değiştirildi, böylece Kaydırma Çubuğu da kullanılabilir. (I216cd)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden (I87c57, b/173086397) erişilebilir.
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.foundation:foundation:1.0.0-alpha09
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha09
yayınlandı. Sürüm 1.0.0-alpha09 bu kayıtları içerir.
API Değişiklikleri
Kaydırılabilir arayüz ekleyin
Bu, ScrollState ve LazyListState'in ortak bir tür olarak ele alınmasına ve özel kaydırmanın her iki türe de uygulanmasına olanak tanır.
Bu, aynı zamanda smoothScrollBy öğesini Kaydırılabilir üzerindeki bir uzantı işlevine taşır ve bu işlevden faydalanılır. (I2153b)
LazyVerticalGrid eklendi. (I17267, b/162213211)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed" değerlerini kullanımdan kaldırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)
İşaretçi giriş API'lerinin askıya alınması için HandlePointerInputScope, AwaitPointerEventScope vehandlePointerInput() adı awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)
Şu anda görünür olan öğelerin boyut ve ofset listesini gösteren LazyListState.layoutInfo eklendi (If8678, b/170472532)
ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
TextFields için EngagementState desteği eklendi. (I61d91)
LazyColumn/Row için TersLayout parametresi ekleyin.
true
öğe alttan yukarıya doğru oluşturulacak veLazyListState.firstVisibleItemIndex == 0
, ilk öğenin en altta yer alacağı anlamına gelir. (I552ae, b/166589935)LazyColumn için verticalArrangement parametresi eklendi. LazyRow için YatayArrangement parametresi eklendi. Düzenleme, öğeler arasına boşluk eklememize ve minimum boyutun tamamını doldurmaya yetecek kadar öğemizin olmadığı durumlarda, öğelerin düzenini belirtmemize olanak tanır. (Icf79a, b/170394300)
DetectMultiTouchHarekets artık birleştirilmiş merkez, kaydırma, yakınlaştırma ve döndürme parametreleriyle tek bir geri çağırma kullanır. (Ie6e1c)
ContentDrawScope, DrawScope'u içerecek şekilde ui-graphics modülüne taşındı. (Iee043, b/173832789)
Hata Düzeltmeleri
- Ofset değiştiricilerindeki lambda'lar artık Kayma yerine IntOffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
Genel API'den SlotTable, SlotReader ve SlotWriter kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık oluşturma modülünün dahilindedirler.
Kullanıcı arayüzü araçları API'sinin kompozisyon bilgilerini çıkarmak için kullanılması amacıyla CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak kullanıcı arayüzü araçları API'sinin yorumladığı ham bilgileri sağladığı için (I31a9c) kullanıcı arayüzü araçları API'sinin dışında kullanılması amaçlanmamıştır.
ShaderBrush, çizim ortamının bilgileri hazırlanırken gölgelendirici örneği oluşturmak için yeniden düzenlendi. Bu, özel DrawModifier uygulamalarını uygulamak zorunda kalmadan composable'ın tüm çizim sınırlarını kaplayan renk geçişlerini tanımlamak için yararlıdır.
Bir Gradyan nesnesinde fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)
Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent öğelerini kullanın (I30f17, b/168511863, b/168511484)
Otomatik Doldurma API'si artık deneysel bir API olup etkinleştirilmesini gerektirir (I0a1ec)
FocusRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
AccessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
SelectionRegistrar'da birkaç yeni işlev kullanılmaya başlandı ve ayrıca, onPositionChange adını NotificationPositionChange olarak değiştirdi. (Ifbaf7)
AndroidSahibi dahili (Ibcad0, b/170296980)
InfiniteRepeatableSpec (I668e5) oluşturmak için yeni infiniteRepeatable işlevi
Applier
arayüzü, ağaç oluşturmayı yukarıdan aşağı değil, aşağıdan yukarıya basitleştirecek şekilde değiştirildi.insert()
yöntemi,insertTopDown()
olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()
) eklendi.Uygulama geliştiricileri, düzenlediği ağaca düğüm ekleme işlemi için hangisinin daha iyi performans gösterdiğine bağlı olarak
insertTopDown()
veyainsertBottomUp()
seçeneklerini kullanır.LayoutNode
veView
gibi bazı ağaçlar, aşağıdan yukarıya doğru inşa etmekte yukarıdan aşağıya doğru çok daha etkilidir. Bu değişiklikten önce, performans için aşağıdan yukarıya yapı gerektiren her uygulamaya kopyalanan, aşağıdan yukarıya doğru bir ekleme yığını gerekiyordu. Bu değişiklikle birlikte birApplier
, ağacı aşağıdan yukarıya oluşturmak içininsertBottomUp()
öğesini, yukarıdan aşağıya doğru derlemek için deinsertTopDown()
politikasını geçersiz kılar. (Icbdc2)Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables'dan opak şekilde yüklenen Painter nesnelerini işlemek için boyaterResource API'si eklendi. Tüketiciler artık öğe türünü önceden belirlemek zorunda değil. Resim composable'larında veya boya değiştiricilerde kullanılacak bir Painter nesnesi edinmek için bu yöntemi çağırabilirler. (I2c703, b/173818471)
AnnotatedString öğesi oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Kullanımdan kaldırılan captiondString oluşturucu işlevi. (Idfe0b)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.foundation:foundation:1.0.0-alpha08
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.
API Değişiklikleri
maxLines
parametresiCoreTextField
öğesinden kaldırıldı. Metin alanının yüksekliğini satır sayısıyla sınırlamak istiyorsanız bunun yerineBasicTextField
işlevini kullanın. (Iec002)await*TouchSlop()
yöntemleri, aşağı işaretçiyi algılamayacak şekilde değiştirildi ve*OrCancellation
olarak yeniden adlandırıldı.orientationLock
parametresine duyulan ihtiyaç da kaldırıldı. (Ie96e1)- Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla, composable lambda parametresi adlandırma ve konumu için lint denetimi eklendi.
Ayrıca, hata analizi ve yönlendirmelerine uygun şekilde, sonraki lambda'nın adı olarak
children
kullanan bazı API'lericontent
konumuna taşıdı. (Iec48e) foundation:foundation-text
apifoundation:foundation
konumuna taşındı. Paket yapısı aynı kaldı (Id3eb2)- Döndürme, yakınlaştırma ve kaydırmayı algılamaya yönelik yardımcılar da dahil olmak üzere yeni çok noktalı hareket algılayıcı. (Ic459d)
- Yeni sürükleme hareketi algılayıcı, yön kilitleme de dahil olmak üzere işaretçi giriş API'sini askıya alıyor. (Icef25)
- VectorAsset adı ImageVector olarak değiştirildi. Uyumluluk için ImageVector.Builder bağlantısına VectorAssetBuilder öğesinin typealias özelliği eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- Temel semantik özellikleri kullanıcı arayüzüne taşındı (I6f05c)
Eş yordam tabanlı kaydırma API'leri ekleyin:
LazyListState.snapToItem ve LazyListState.smoothScrollBy öğesinin yanı sıra kaydırma denetimi için alt düzey API'leri ekler. Bu API'ler, dönmeden önce kaydırmanın bitmesini bekleyen kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)
BasicTextField, TextField ve OutlineTextField öğelerine bir singeLine parametresi eklendi. Metin alanını yatay olarak kaydırılabilir tek bir satıra dönüştürmek için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)
Yeni askıya alma işaretçisi girişi kullanılarak dokunma, iki kez dokunma, uzun basma ve basma bildirimi için hareket dedektörü eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmalarını kolaylaştıran birkaç yardımcı program da eklendi. (I00807)
Modifier.focusable'ın temele eklenmesi gerekiyor. Bir bileşene doğru anlam ve erişilebilirlikle odaklanılabilir davranış eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)
Daha önce desteği sonlandırılan API'ler kaldırıldı: Border kaldırıldı. Bunun yerine BorderStroke'u kullanın. Modifier.drawBorder kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Modifier.gravity kaldırıldı. Bunun yerine Modifier.align'ı kullanın. Yığın kaldırıldı, bunun yerine Box'ı kullanın (I32c2b, b/172470874)
MutlakArrangement, Düzenleme.Mutlak olarak yeniden adlandırıldı. (If26f2)
Hata Düzeltmeleri
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Kullanımdan kaldırılan API'lerden mevcut API'lere geçişe yardımcı olacak typealiases/helper yöntemlerini eklemek için DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
- Değiştirme. (I0bd29, b/173834241)
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- PointerInputData'nın çalışma süresi ve konum alanlarını boş değerli hale getirdi. (Id468a)
- MaterialTheme, seçim tutma yerleri ve seçim arka planı için artık doğru renkleri ayarlıyor. Materyal dışı uygulamalar, seçim için kullanılan renkleri özelleştirmek için AmbientTextSelectionColors öğelerini manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
- OffPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık State yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
- Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TextInputService#onStateUpdated değerine (I3e8f5, b/172239032, b/171860947) resetInput parametresi eklendi
- TextFieldValue API güncellendi
- TextFieldValue.composition salt okunur yapıldı
- geçersiz seçim aralığı için atılan istisna kaldırıldı (I4a675, b/172239032)
- Kullanımdan kaldırılmış Ambiyanslar ve Compose API kurallarına uyarak son eki
Ambient
olan Ambiyans sonekleri, ön ekinde Ambiyans olan yeni özelliklerle değiştirildi. (I33440) - Android Yazı Tipi sarmalayıcı eklendi. Bir Android Yazı Tipini
typeface
işleviyle (ör.typeface(Typeface.DEFAULT)
) yükleyebilirsiniz.typefaceFromFontFamily()
alanı datypeface()
olarak yeniden adlandırıldı (I52ab7) - Değiştirici fabrikalarının
@Composable
olarak işaretlenmek yerine dahili olarakandroidx.compose.ui.composed {}
kullandığını kontrol etmek için lint kontrolü eklendi. (I3c4bc) - Değiştirici'nin fabrika işlevlerinin, Modifier'da uzantı olarak tanımlandığını, dolayısıyla bunların sorunsuz bir şekilde birbirine bağlanabilmesini sağlayan lint denetimi eklendi. (I07981)
- Anlamsal bağımsız değişken birleştirmeTümDescendants,mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
- Eski kullanıcı arayüzü testi modülünü ve saplamalarını kaldırın (I3a7cb)
- TextUnit.Inherit, TextUnit olarak yeniden adlandırılır.Diğer birimlerle tutarlı olarak belirtilmemiştir. (Ifce19)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
foundation:foundation-text
modülüfoundation:foundation
(Idac0f) ile birleştirildi- Yer (yer (Ofset)) ve yergöreli(Ofset) seçimini kaldırın. Bunun yerine, aşırı yüklemeleri tam ofsetlerle kullanın (I4c5e7)
id
,LayoutIdParentData
içinlayoutId
olarak yeniden adlandırıldı.Measurable.id
,Measurable.layoutId
olarak yeniden adlandırıldı. (Iadbcb, b/172449643)
Sürüm 1.0.0-alpha07
11 Kasım 2020
androidx.compose.foundation:foundation:1.0.0-alpha07
, androidx.compose.foundation:foundation-layout:1.0.0-alpha07
ve androidx.compose.foundation:foundation-text:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.
API Değişiklikleri
Modifier.fillMaxSize[Width|Height]
ile benzer şekilde, artıkLazyColumn/Row
kapsamındaModifier.fillParentMaxSize[Width|Height]
öğesinde kesirli değerleri destekliyoruz (I797e2, b/166586426)KeyboardOptions.toImeOptions
, herkese açık API'den kaldırıldı. (Ic2e45)- AmbientTextStyle, ProvideTextStyle ve AmbientContentColor kullanımdan kaldırıldı. Bunun yerine, Malzeme kitaplığındaki yeni sürümleri kullanın. Materyal dışı uygulamalar için bunun yerine, kendi bileşenlerinizde kullanılabilen kendi tasarım sisteminize özel tema ortamları oluşturmanız gerekir. (I74acc, b/172067770)
- foundation.Text desteği sonlandırıldı ve text.Text ile değiştirildi. Temadaki değerleri kullanmayan, temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
- TextFields'e maxLine'lar eklendi (Ib2a5b)
- TextFields öğesini KlavyeOptions'ı kabul edecek şekilde güncelleyin (Ida7f3)
- Metin Alanları'nda kullanılmak üzere eklenen Klavye Seçenekleri (I9ca32)
- BasicText'i, BasicTextField'e paralel olarak metin için tasarımsız bir API olarak ekler. (I28268)
- ExperimentalLazyDsl ek açıklaması kaldırıldı. LazyColumn/LazyRow artık @OptIn (Idab7a, b/166584730) eklenmeden kullanılabilir
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField politikasını kullanın. (I896eb)
- BasicTextField, hem CoreTextField hem de BaseTextField öğelerinin yerine (Id4cea) eklendi
- Kullanımdan kaldırılan LazyColumnItems/LazyRowItems (I1d8a8) öğelerini kaldırma
- Doğal ölçümlere göre boyutlandırma için desteği sonlandırılan composable'lar kaldırıldı. (I18537, b/171811496)
- göreliPaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin referans çizgilerine olan mesafeleri belirtme kolaylığı sağlamak için paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
- matchHeightConstraintsFirst parametresi, en boy oranı değiştiricisine eklendi. Bu parametre, genişlik karşılıklarını denemeden önce boyut-yükseklik kısıtlamalarına ilişkin değiştiriciyi belirtmek için kullanılabiliyor. (Ie7c43, b/155290593)
- Kullanımdan kaldırılan DpConstraints kaldırıldı. (I87884, b/171702471)
Hata Düzeltmeleri
- Eşit olmayan ölçeklendirme kullanım alanlarını desteklemek amacıyla, birbirinden bağımsız yatay ve dikey eksenler için ölçek faktörlerini temsil eden ScaleFactor satır içi sınıfı kullanıma sunuldu.
- ContentScale'e "computeScaleFactor" yöntemi eklendi
- Hedefi tam olarak kaplaması için src sınırlarını genişletmek amacıyla, tek tip olmayan ölçeklendirme gerçekleştirmek için ContentScale.FillBounds eklendi.
- Boyut parametreleriyle ScaleFactor parametrelerini hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- createToBitmap, captureToImage'a taşındı. (I86385)
- CoreText'i @InternalTextApi olarak işaretler. Bunun yerine BasicText öğesini kullanın. (I6aaeb)
- KlavyeSeçenekleri ImeOptions olarak yeniden adlandırın (I82f36)
- KlavyeType ve ImeAction, KlavyeOptions'a taşındı (I910ce)
- CoreTextField, @InternalTextApi olarak işaretlendi. Bunun yerine BasicTextField politikasını kullanın (Ie2469)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn (I708ad) eklenmeden kullanılabilir
- ui-test-junit4 modülünü tanıtın (Ib91f8)
- Simge API, Color.Unspecified şeklinde, sağlanan öğeyi veya boyacıyı ColorFilter olmadan çizecek olası bir ton rengi olarak alacak şekilde güncellendi. Önceden renk tonlamayı yok saymaya çalışıyordu.Belirtilmemişse, şeffaf bir renk tonuyla tonlama yapılır ve hiçbir şey oluşturulmazdı. (I049e2, b/171624632)
- MeasureResult, MeasureScope dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli simgeler androidx.compose.ui'den androidx.compose.layout.ui konumuna taşındı. (I0fa98, b/170475424)
- androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
- Seçim kapsayıcısı, geri çağırma olmadan eklendi (Ibfadb)
- SeçimKapsayıcısı'nda SelectionHandles'ın Konumları İçin Testler Ekle. (Ie93db)
- Eklenen Klavye otomatik düzeltme IME Seçeneği (I57b8d)
Sürüm 1.0.0-alpha06
28 Ekim 2020
androidx.compose.foundation:foundation:1.0.0-alpha06
, androidx.compose.foundation:foundation-layout:1.0.0-alpha06
ve androidx.compose.foundation:foundation-text:1.0.0-alpha06
yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.
API Değişiklikleri
- androidx.compose.foundation.Icon, androidx.compose.material.Icon'a taşındı. Malzeme kitaplığını kullanmak istemiyorsanız Boyacı ile Resim bileşenini / Modifier.paint() kullanabilirsiniz. (I9f622)
- Etkileşim Durumu, Modifier.scrollable, ScrollableColumn ve LazyColumnFor'a eklendi (I81566, b/169509805)
- alignByBaseline, RowScope'a eklendi ve alignWithSiblings, alignBy (I06503, b/170628732) olarak yeniden adlandırıldı
- Box, satır içi bir işleve sahip. (Ibce0c, b/155056091)
- CoreTextField'e maxLine'lar eklendi (Ibee58, b/143687793)
- softwrap, CoreTextField'e eklendi. (I21a4b)
Hata Düzeltmeleri
- Bir composable API'nin, verileri kompozisyonlar genelinde tutmak için dahili olarak "hatırla" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı silmeden VectorPainter özelliğini uygulayın. (Ifda43)
- ComposeTestRule'da geçişleri etkinleştirin; yanıp sönen imleci etkinleştirmek için ComposeTestRule'daki seçeneği kaldırın. (If0de3)
- CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
- Compose genelinde nasıl kullanıldığını daha iyi ifade etmek için Radius API'yi CornerRadius olarak yeniden adlandırdı. Belgeler, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
- Oluşturulan değiştiriciye denetçi bilgilerini belirtme olanağı ekleyin (Idee08, b/163494569)
- Klavyede Büyük Harf Kullanımı IME Seçeneği Eklendi (I8ac38)
- Rtl Tutma Yeri Konumunu Düzeltin. (I6e1e0)
- Kırıcı değişiklik: İşaretçi etkinliklerinde değiştirilebilecek tek değerin tüketim verileri olduğu düşünüldüğünde, döndürülen değer PointerInputFilter.onPointerEvent(...) öğesinden kaldırıldı. Artık PointerInputFilter.onPointerEvent(...) kaynağından veri döndürmek yerine, aktarılan PointerEvents'in tüketim verilerini değiştirebilirsiniz. (I6acd0)
- Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
Sürüm 1.0.0-alpha05
14 Ekim 2020
androidx.compose.foundation:foundation:1.0.0-alpha05
, androidx.compose.foundation:foundation-layout:1.0.0-alpha05
ve androidx.compose.foundation:foundation-text:1.0.0-alpha05
yayınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.
API Değişiklikleri
- CoreTextField artık imleç işlevini destekliyor (Id23aa)
contentColor() ve currentTextStyle() API'lerini kullanımdan kaldırır ve bunları sırasıyla AmbientContentColor ve AmbientTextStyle ambients ile değiştirir. Geçerli değere, ambiyans özelliğinde (diğer ambiyanslarda olduğu gibi)
.current
kullanarak erişebilirsiniz. Bu değişiklik, tutarlılık amacıyla ve aynı şeyi birden çok yolla başarmamak için yapılmıştır. Ek olarak, amaçlarını daha iyi açıklamak için bazı ambiyans özelliklerini aşağıdaki şekilde yeniden adlandırır:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- Vurgu Ortamı -> AmbiyansEmphasisLevels
- Dalga TemasıAmbient -> Ambiyans Dalgası Teması (I37b6d)
Hata Düzeltmeleri
- Satır içi sınıflarda koruyucu değerlerin standartlaştırılması kapsamında, Color.Unset to Color olarak yeniden adlandırıldı.Diğer satır içi sınıflarla tutarlılık için belirtilmedi (I97611, b/169797763)
- Eklenen Kopyalama/Yapıştırma/Kesme erişilebilirlik işlemleri (I6db4f)
- TextOverflow.None sunuldu. Taşma Yok olduğunda, Metin artık taşmayı işlemeyecek ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
- Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, Size.Unspecified ve sonlu olmayan Boyutlar ile uyumlu olacak şekilde güncellendi. (I95a7e)
- Sayfalandırma Oluşturma modülü ve sayfa oluşturma entegrasyonu eklendi (Ib85da)
- Boş değer atanabilir değerleri almak için LazyListScope'u değiştirme (I1765b)
- OnPositionedModifier, OnGloballyPositionedModifier ve onPositioned() olarak onGloballyPositioned() olarak yeniden adlandırılır. (I587e8, b/169083903)
- LazyColumn/Row (Idc16d) için örnekler eklendi
- blankList'e (I06647) izin vermek için öğeler ve itemsIndexed yöntemleri için düzeltme
- Denetleyici bilgilerini belirtmek için bir DSL ekleme (Ic9a22)
- Uzun Bas'ı Metne Taşıyın. (Iff2bc)
- Metin ve Demo Seçimi'ni devre dışı bırakın. (Ie7e97)
- Erişilebilirlik için AnnotatedString'in SpannableString dönüşümüne destek sağlama. (Ief907)
PointerInputFilter.onPointerInput(...)
kaldırıldı. Bunun yerinePointerInputFilter.onPointerEvent(...)
kullanılmalıdır. (I6f04a)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.foundation:foundation:1.0.0-alpha04
, androidx.compose.foundation:foundation-layout:1.0.0-alpha04
ve androidx.compose.foundation:foundation-text:1.0.0-alpha04
yayınlandı. Sürüm 1.0.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan foundation.Box kullanımdan kaldırılacak ve bunun yerine create.foundation.layout'taki yeni Box kullanıma sunulacak. Yeni Box'ın davranışı, birden fazla alt öğeye sahip olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer şekilde davranan önceki Box'tan farklıdır. (I94893, b/167680279)
- Kutu süsleme parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279) kullanın
- Yeni bir LazyListState sınıfı ekleyin. Bu, LazyRow ve LazyColumn bileşenlerinin kaydırma konumunun gözlemlenmesine ve denetlenmesine olanak tanır. Örnekler, RememberLazyListState() kullanılarak oluşturulabilir ve bileşenin durum parametresine geçirilebilir. Şu anda, ilk görünür öğe ve ofsetler bu başlangıç sürümünde gözlemlenebilir. (Ic7cb7, b/159307669)
- Geç liste konumu ve kaydırma ofseti artık Etkinlik yeniden oluşturma genelinde (Ie045f, b/166589058) kaydedilip geri yükleniyor.
- Uzun tıklama semantik işlemi ekle (I6281b, b/156468846)
- Zaman içinde tek bir paylaşılan durum mutatörünü korumak ve çakışan mutatörleri öncelik sırasına göre iptal etmek için MutatorMutex yardımcı programı eklendi (I3f975)
- Ek açıklamalı rootAnimationClockFactory, migrationsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @VisibleForTesting öğelerini dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
- Dize girişli Metin'den inlineContent parametresi kaldırıldı. inlineContent'in AnnotatedString ile çalışması gerektiğinden kullanılmayacaktır. (Ief403)
- Kullanımdan kaldırılan özel Düzenleme API'leri kaldırıldı. (Ic576d, b/168297922, b/168297923)
unbounded
parametresi, düzen öğesinin sonsuz maksimum kısıtlamayla ölçülmesine olanak tanıyan wrapContentSize değiştiricilerine eklendi. (I77951, b/158559319)- Düzen kapsamlarının içeriklerinin (ör. RowScope içindeki alignWithSiblings) statik içe aktarılmasını engelledik. Bunun yerine açık kapsam alternatifi kullanılmalıdır:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Hata Düzeltmeleri
- Birçok Grafik API güncellendi
- Ölçek ve rotasyon dönüşüm API'leri, DrawScope ve DrawTransform'daki x/y koordinatları için ayrı float parametreleri yerine, pivot koordinatı temsil eden tek bir Offset parametresi kullanacak şekilde güncellendi.
- Rect.expandToinclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap belgeleri, eliptik bisiklete ek olarak oval olarak güncellendi
- Satır içi Yarıçap sınıfı için herkese açık oluşturucunun doğrudan çağrılmaması gerektiğini, bunun yerine Yarıçap nesnelerinin işlev kurucuları aracılığıyla örneklendirmesi gerektiğini belirten belgeler eklendi
- topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.translate'in yerini alan Rect.shift desteği sonlandırıldı
- RoundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı.
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
- RoundRect.center, iş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ıçapa yıkıcı bir API eklendi
- Çeşitli RoundRect uzantı işlevlerini mülk olacak şekilde taşıdılar.
- (I8f5c7, b/168762961)
- Her kaydırma sırasında gereksiz yeniden oluşturmalardan kaçınarak LazyColumnFor/LazyRowFor kaydırma için performans optimizasyonları (I64f65, b/168293643, b/167972292, b/165028371)
- Kaydırma yapıp öğeleri değiştirdikten ve daha önce görünür olan öğe kaldırıldığında otomatik yukarı kaydırma uygulandığında, artık sondaki boş boşlukların gösterilmemesi için LazyColumnFor/LazyRowFor'daki kilitlenme düzeltildi (I220ab, b/161480164, b/167855468)
- ScrollableContainer ve LazyColumnFor gibi, kaydırılabilir öğelerin aynı yöne sahip kapsayıcılarda iç içe yerleştirilmesine artık izin verilmiyor. Hiçbir zaman desteklenmiyordu ve LazyColumnFor (I6e101) öğelerini bestelemenin getirdiği titizliği bozuyordu
- Birçok Grafik API güncellendi
- Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için DrawScope API'leri kapsamlı dönüşüm yöntemleriyle güncellendi
- KlipPath dokümanları, yuvarlatılmış dikdörtgen yerine Path'e başvuruda bulunacak şekilde
- KlipPath'de sağ parametreye ilişkin dokümanlardaki aralık sabitlendi
- DrawScope.drawCanvas adınıdrawIntoCanvas olarak yeniden adlandırdı ve boyut parametresini kaldırdı
- inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınırın hepsine aynı içe değer değerini sağlayan ek aşırı yük eklendi.
- Inset yönteminde, inset'in 4 tarafa da uygulanacağını belirten belgeler kaldırıldı
- Rect sınıfıyla ilgili dokümanlar güncellendi
- 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ük oluşturuldu ve Rect.shift kullanımdan kaldırıldı
- (If086a, b/167737376)
- semantik özelliklerine Accessibility ScrollState ekleyin. (Ifeda9)
- Nesne oluşturulmasını önlemek için TextRange'i satır içi yapın. (Id034b)
- ParagrafKısıtlamaları kaldırıldı. Genişlik artık doğrudan Paragraf'a aktarılıyor. (Ica712)
Sürüm 1.0.0-alpha03
16 Eylül 2020
androidx.compose.foundation:foundation:1.0.0-alpha03
, androidx.compose.foundation:foundation-layout:1.0.0-alpha03
ve androidx.compose.foundation:foundation-text:1.0.0-alpha03
yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.
API Değişiklikleri
- InnerPadding, PaddingValues olarak yeniden adlandırıldı. (I195f1, b/167389171)
- Yer çekimi kullanımları tutarlı bir şekilde, düzen API'leriyle uyumlu hale gelecek şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Yığına bir hizalama parametresi eklendi. Bu parametre, tüm Yığın alt öğeleri için varsayılan hizalamanın belirtilmesini sağlar. (Ie80ca, b/164085265)
Hata Düzeltmeleri
- Bunu kullanan DpConstraints ve API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
widthIn
adlı kümeninminWidth
vemaxWidth
parametrelerimin
vemax
olarak yeniden adlandırıldı. Benzer şekildepreferredWidthIn
,heightIn
,preferredHeightIn
için de durum benzer. (I0e5e1, b/167389544)- Mevcut genel yöntemler kullanımdan kaldırılacağı için onNode ve ComposeTestRule'a diğer genel yöntemler eklendi. (Ieae36)
- motionScope'taki boyut ve konum hesaplamalarının diğerlerine neden olan sabit boyut ve konum hesaplamaları (Iaf358, b/166589947)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
konumundanandroidx.ui.test
konumuna taşındı (Idef08, b/164060572)
Sürüm 1.0.0-alpha02
2 Eylül 2020
androidx.compose.foundation:foundation:1.0.0-alpha02
, androidx.compose.foundation:foundation-layout:1.0.0-alpha02
ve androidx.compose.foundation:foundation-text:1.0.0-alpha02
yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.
Hata Düzeltmeleri
- TestUiDispatcher deneysel olarak işaretlenmiş (Iae99d, b/161247083)
Bu saatten kare bekleyen bir şey olup olmadığını görmek için
ManualFrameClock.hasAwaiters
eklendi; ManualFrameClock gerektiren testleri çalıştırırkenrunBlocking
yerinerunWithManualClock
, testlerinizde ana kullanıcı arayüzü görev dağıtıcısına kolay erişim sağlayanTestUiDispatcher.Main
eklendi.Örnek:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.foundation:foundation:1.0.0-alpha01
, androidx.compose.foundation:foundation-layout:1.0.0-alpha01
ve androidx.compose.foundation:foundation-text:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.foundation:foundation:0.1.0-dev17
, androidx.compose.foundation:foundation-layout:0.1.0-dev17
ve androidx.compose.foundation:foundation-text:0.1.0-dev17
yayınlandı. 0.1.0-dev17 sürümü bu kayıtları içerir.
API Değişiklikleri
- Sabit aralıkla konumlandırma düzeni alt öğelerini etkinleştirmek için Satır ve Sütun'a boşlukla düzenleme eklendi. Alt öğeleri yan yana konumlandırmayı ve Satır/Sütun'da bir Hizalamaya göre hizalanmasını sağlamak için, hizalanan Düzen de eklendi. Önceki Arrangement.Vertical#arrange ve Arrangement.Horizontal#arrange yöntemleri kullanımdan kaldırılmıştır ve özel Düzenlemelerin yazılması gelecekte desteklenmeyecektir. (I6733d, b/161985975)
- Başlangıç, satır içi sınıf (Iaec70) haline geldi
- TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder kullanımdan kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Sınır veri sınıfı, BorderStroke ile değiştirildi (I4257d, b/158160576)
- Dikey Kaydırma ve Yatay Kaydırmaer kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Modifier.drawbackground kaldırıldı. Değiştirici.background'ı (I73b0d, b/163019183) kullanma
- Kullanımdan kaldırılan fillMax* değiştiricilerini, LazyColumnFor'un (Ifa78d) doğrudan alt öğesi olmayan öğeler için bu tür değiştiricileri doğru şekilde eklemeyi zorlaştırdığı için LazyItemScope'tan kaldırın
- LazyColumn/LazyRow uygulaması DSL olarak eklendi (I93cc6)
- Sınırlamalar artık satır içi bir sınıf (I88736) oldu
- FillMaxWidth, fillMaxHeight ve fillMaxSize değiştiricilerini kullanarak, bir düzeni mevcut alanın küçük bir kısmına boyutlandırma özelliği eklendi. (I945bb, b/161562591)
Hata Düzeltmeleri
- Seçim Container'ına bir değiştirici parametre eklendi (I4aada, b/161487952)
- SemanticsPropertyKey'eMergePolicy lambda eklendi. Bu, birleştirmeAllDescendants semantik birleştirmesi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten varsa üst değeri, aksi halde alt değeri kullanmaktır. (Iaf6c4, b/161979921)
PlacementScope.placeAbsolute()
,PlacementScope.place()
olarak yeniden adlandırıldı ve öncekiPlacementScope.place()
,PlacementScope.placeRelative()
olarak yeniden adlandırıldı. Sonuç olarakPlacementScope.place()
yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmaz. Dilerseniz bunun yerinePlacementScope.placeRelative()
politikasını kullanabilirsiniz. (I873ac, b/162916675)- Kullanımdan kaldırılan FilledTextField bileşeni kaldırıldı. Doldurulmuş metin alanının Materyal Tasarım uygulamasını almak için lütfen bunun yerine Metin Alanı'nı kullanın. (I5e889)
- DoğrusalİlerlemeIndicator'a backgroundColor parametresi eklendi ve CircularProgressIndicator'dan dahili dolgu kaldırıldı. Değerler arasındaki ilerlemeyi canlandırırken varsayılan AnimationSpec olarak kullanılabilen yeni İlerlemeIndicatorConstants.DefaultİlerlemeAnimationSpec eklendi (If38b5, b/161809914, b/161804677)
- Artık
state { ... }
composable'ı kullanımdan kaldırılarak yerine açıkremember { mutableStateOf(...) }
çağrısı yapılması gerekiyor. Bu, genel API yüzeyini ve durum 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) - RRect, oluşturma adlandırma kalıplarına daha iyi sığması için RoundRect olarak yeniden adlandırıldı RRect'e ve kullanımdan kaldırılan RRect işlev kurucularına (I5d325) benzer işlev kurucuları oluşturuldu
- onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine alt düzende onPositioned ve OnPositionedModifier'ı kullanmalıdır. (I4522e, b/162109766)
- IntSize artık bir satır içi sınıftır (I2bf42)
- Düzenlemek için Boş Alana Uzun Basın. (Ib1e5b)
- Metne Dokunduktan Sonra Kayan Araç Çubuğunu Gizle. (If4525)
- Seçimi Güncellerken Kayan Araç Çubuğunu Gizle. (I8444c)
- Bulanıklaştırıldığında seçimini kaldır. (I781a2)
Sürüm 0.1.0-dev16
5 Ağustos 2020
androidx.compose.foundation:foundation:0.1.0-dev16
, androidx.compose.foundation:foundation-layout:0.1.0-dev16
ve androidx.compose.foundation:foundation-text:0.1.0-dev16
yayınlandı. 0.1.0-dev16 sürümü bu kayıtları içerir.
API Değişiklikleri
- Lazy listelerinin itemContent parametresi için LazyItemScope eklendi. Üst maksimum boyutu dolduracak değiştiriciler sağlar. Bu da, öğenin görüntü alanını doldurması gerektiğinde kullanım alanını çözer ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() çalışmaz. (İbd3b2, b/162248854)
- İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
- LazyColumnForIndexed/LazyRowForIndexed - itemCallback'te hem dizin hem de öğe sağlayan LazyColumnFor/LazyRowFor sürümleri eklendi. Mevcut bir öğeye ek olarak geçerli bir dizini bilmeniz gerektiğinde yararlıdır. (I65ff3)
- Modifier.deternimateİlerlemesi, Modifier.progressSemantics olarak yeniden adlandırıldı (I9c0b4)
- LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor olarak yeniden adlandırıldı (I84f84)
- En iyi uygulama nedeni için İşaretler/Ek Açıklamalar ekleyin. (I66b20)
- foundation.shape.corner paketi, foundation.share'e düzleştirildi (I46491, b/161887429)
- LazyRowItems/LazyColumnItems için сrossrise yerçekimi parametresi eklendi. LazyRowItems/LazyColumnItems artık içerik sarmalama davranışını destekliyor. (Ib39fc)
- ZoomableState, ZoomableController olarak yeniden adlandırıldı. smoothScale için özel eğri desteği eklendi.
enabled
veonZoomStarted
işlevi eklendi (If8b8f) - Material FilledTextField, TextField olarak, temel TextField'in adı ise BaseTextField olarak değiştirildi. Böylece, istenen API'nin en basit şekilde keşfedilip kullanılmasını kolaylaştırdı (Ia6242, b/155482676)
- Daha önce desteği sonlandırılmış AdapterList kaldırılmış. Bunun yerine LazyColumnItems'ı kullan (I12b9b)
- Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
- Eski ConstraintLayout DSL kaldırıldı. ConstraintSet2, ConstraintSet olarak yeniden adlandırıldı. (If58d1, b/162450908)
- Modifier.absoluteOffset() ve Modifier.absoluteOffsetPx() eklendi
Row
veColumn
artık satır içi işlevlerle bunları kullanmanın ek yükünü önemli ölçüde azaltıyor. (I75c10)
Hata Düzeltmeleri
- Genel API düzeltmelerini ele alın (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve IntOffset sınıflarını tutarlı bir API yüzeyine sahip olacak şekilde
- Offset API ile tutarlı olması için IntOffset.Origin adını IntOffset.Zero olarak yeniden adlandırın
- Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için yerelCanvas yöntemi Canvas arayüzünün dışına taşındı.
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş bırakılamamasını sağlamak için saplama BlankCanvas sınıfı oluşturuldu
- ClipOp numaralandırmaları Pascal Kılıfı olarak yeniden adlandırıldı
- Filtre Quality enum'ları Pascal Case olarak yeniden adlandırıldı
- Strokejoin enum'ları, Pascal Case olarak yeniden adlandırıldı
- PointMode sıralamaları Pascal Case olarak yeniden adlandırıldı
- PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
- PathFillType numaralandırmaları Pascal Case olarak yeniden adlandırıldı
- StrokeCap sıralamaları Pascal Case olarak yeniden adlandırıldı
- DrawCache uygulaması, artık lateinit parametrelerini kullanmayacak şekilde güncellendi.
- DrawScope, fillPaint ve stroPaint dahili parametreleri için geç yetkiyi kullanacak şekilde güncellendi
- Daha az ek yük için Box kullanımını önlemek üzere Image composable güncellendi
- Outline sınıfı, @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- Oluşturma bunları zaten işlediğinden eşitlik için gereksiz koşullu denetimleri kaldırmak üzere Vector alt bileşimi güncellendi
- İşlev kurucuları lehine, kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemleri
- @Immutable ve @Stable API'leriyle güncellenmiş Fırça sınıfları ve işlev kurucuları
- VertexMode sıralaması PascalCase olarak güncellendi
- Değiştiyse boyadaki çizgi parametrelerinin üzerine koşullu olarak yazmak için DrawScope selectPaint yöntemi güncellendi
- Boyut güncellendi, böylece yıkıcı API eklendi, UnspecifiedSize yeniden adlandırılıp Belirsiz olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
Yeni eş yordam tabanlı saatler ile eski geri çağırmaya dayalı saatleri kullanmaya devam eden API'ler arasındaki boşluğu doldurmak için bir AnimationClockObservable olarak MonotonicFrameClock kullanmanızı sağlayan MonotonicFrameAnimationClock eklendi.
ManualAnimationClock'ın MonotonicFrameClock eşdeğeri artık ManualFrameClock'tur. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
kullanın. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
adıSemanticsNodeInteraction.getUnclippedBoundsInRoot()
olarak değiştirildi (Icafdf, b/161336532)Sağdan sola desteğine yönelik API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient özelliği eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
Modifier.plus kullanımdan kaldırıldı, bunun yerine Modifier.then kullanın. "Ardından" daha güçlü bir sipariş sinyaline sahiptir. Ayrıca, zinciri bozan ve okunması daha zor olan
Modifier.padding().background() + anotherModifier
yazmayı da yasaklar (Iedd58, b/161529964)isFocused()
veisNotFocused()
SemanticsMatcher eklendi. (I0b760)RemeasurementModifier eklendi. Kullanıcıların düzeni eşzamanlı olarak yeniden ölçmesine olanak tanır. Genel olarak, yeniden ölçüm/geçiş otomatik olarak gerçekleştiğinden hiçbir zaman buna ihtiyacınız yoktur ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
isSystemInDarkTheme artık her zaman sistem genelinde koyu tema ayarını dikkate alıyor ve son yönergeye göre Q'dan önceki güç tasarrufu durumunu yok sayıyor. (I0c10c)
OnChildPositioned kullanımdan kaldırıldı. Bunun yerine alt öğede OnPositioned'ı kullanın. (I87f95, b/162109766)
AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
TextLayoutResult'ı (I9d6e6) almak için erişilebilirlik işlemi ekleyin
Sürüm 0.1.0-dev15
22 Temmuz 2020
androidx.compose.foundation:foundation:0.1.0-dev15
, androidx.compose.foundation:foundation-layout:0.1.0-dev15
ve androidx.compose.foundation:foundation-text:0.1.0-dev15
yayınlandı. 0.1.0-dev15 sürümü bu kayıtları içerir.
Oluştur'un 0.1.0-dev15
sürümünü kullanmak için şunları yapmanız gerekir:
Bağımlılıkları Güncelleme
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıklarınızı yukarıda Bağımlılık bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
- ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems içindeki yeni parametreye benzer şekilde, artık içerik kırpıldıktan sonra içerik için dolgu eklemeye olanak tanıyan contentPadding parametresi de bulunmaktadır. Bu, yalnızca bir değiştirici parametreyle yapılamaz. Ayrıca, yalnızca ilk öğeden önce/son öğeden sonra bir boşluk eklenmesine olanak tanır. (Ibc24e)
- Metin alanlarındaki onFocusChange geri çağırması, onFocusChanged (Ida4a1) olarak yeniden adlandırıldı
- Vertical Scroller ve Horiziontal Scroller kullanımdan kaldırıldı. Sütun/Satır davranışı ve parametreleriyle ilgili yerleşik deneyim için ScrollableColumn ve ScrollableRow'u kullanın veya kendi öğenizde Modifier.vertical Scroll ve Modifier.YAYA kaydırıcılarını kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırıldı ve yerini ScrollState (I400ce, b/157225838, b/149460415, b/154105299) kullanıma sunun.
- Modifier.draggable ve Modifier.scrollable API'leri yeniden düzenlendi. DragDirection kaldırılmış ve yerini Yön aldı. Kaydırılabilir için gereken durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
- Tek değerli anlambilim özellikleri artık bir çağrı stili kullanıyor.
Örneğin, 'semantik { gizlendi = true }' artık şu şekilde yazıldı:
semantics { hidden() }
. (Ic1afd, b/145951226, b/145955412) - RoundedCornerShape ve CutCornerShape tarafından kullanılan köşe boyutları artık %50'den fazla olabilir (Id2340, b/160400213)
- Image composable için varsayılan ContentScale parametresi, "Inside" yerine "Sığdırma" olarak değiştirildi. Bu işlem, en boy oranı korunarak düzen boyutu, boyacının doğal boyutundan daha büyükse alttaki boyanın ölçeğini artırma davranışı elde etmek için yapılmıştır. Bu davranış, Resme sabit boyutlar sağlama beklentilerini daha iyi karşılar ancak composable'ın boyutunu hesaplamak için yalnızca içsel boyut kullanılırsa varsayılan davranışı etkilemez. (I40ae3, b/159838006)
- Statik animasyon spesifikasyonu kavramını netleştirmek için üst düzey API'larda AnimationBuilder yerine AnimationSpec nesnesini kullanın -Tween, bahar gibi AnimationSpecs oluşturmak için lambda gereksinimini kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine kurucu parametrelerini doğrudan alırlar. -Oluşturuculara güvenmek yerine kurucuların açılmasını sağlayan AnimationSpec uygulamasının genel kullanım kolaylığını artırma -KeyFrames ve Tween için süre ve gecikmeyi İnt olarak değiştirin. Bu, gereksiz tür yayınlarını ve yöntem aşırı yüklemesini ortadan kaldırır (hem Long hem de Int'i desteklemek için). (Ica0b4)
- Tıklanabilir kaldırıldı. Modifier.clickable (I84bdf) dosyasını kullanın
- LazyRowItems eklendi - LazyColumnItems'in yatay olarak kaydırılan analogu (Ibbcf7)
- Alt düzey durum bilgisiz animasyon API'leri kullanıma sunuldu. Bu API'ler (I63bf7)
- androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue kullanımdan kaldırıldı. Bu türü kullanan TextField,FilledTextField ve CoreTextField composable öğeleri de kullanımdan kaldırılmıştır. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)
- IntPx kullanımı Int ile değiştirildi. IntPxPosition değeri IntOffset olarak değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
- androidx.ui.foundation.shape.RectangleShape kaldırıldı; androidx.ui.graphics.RectangleShape (I94939, b/154507984) kullanın
- Boyutlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxSize yerine Beden sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak gösterilen genişliği ve yüksekliği temsil etmek için uzun bir paket halinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (Ic0191)
- Konumlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan öğe olarak temsil edilen x ve y ofsetlerini temsil etmek için uzun bir paket şeklinde 2 kayan reklam değerinden faydalanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)
- Sıkıştırarak yakınlaştırma işlevi için Değiştirici.zoomable özelliği eklendi (Id5d63)
- Geçiş yapılabilir bileşen kullanımdan kaldırıldı. Bunun yerine Modifier.toggleable'ı kullanın (I35220, b/157642842)
- MutuallyCustomSetItem kullanımdan kaldırıldı. Bunun yerine Modifier.selectable'ı kullanın. (I02b47, b/157642842)
- TestTag artık kullanımdan kaldırıldı. Bunun yerine Modifier.testTag'i kullanın. (If5110, b/157173105)
- Metne, yanlışlıkla daha önce eklenmemiş olan fontweight parametresini ekler (I56937)
- Piksel parametreleri (I19d02) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi
- Dikey Scroller artık Column (Sütun) özelliğini kutudan çıkarır. Horizontal Scroller artık Row'u kutudan çıkarır. (Ieca5d, b/157020670)
- Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b)
- Modifier.indication temel paketine eklendi. Özel olarak etkileşimde bulunulabilir öğelerinizde "bas/sürükle/başka bir eylem" göstermek için kullanın (I8425f, b/155287131)
- Dikey Kaydırma ve Yatay Kaydırma, artık ters kaydırmayı destekliyor isReversed, ScrollerPosition (I953bd) için ayarlı.
- Metin düzenine composable'lar ekleme desteği. (I1373c)
- Birleştirilmiş CanvasScope uygulamaları artık sadece DrawScope ve ContentDrawScope oluyor. CanvasScope'u DrawScope olarak adlandırıyoruz. DrawScope, Density arayüzünü uygulamak ve ContentDrawScope'ta LayoutDirection'da LayoutDirection'ı Silinmiş DrawScope alt sınıfı sağladı Painter ve PainterModifier artık RTL özelliğini sağlamayacak şekilde güncellendi (DrawScope bunu manuel olarak sağlamadan zaten sunduğu için (I1798e))
- Modifier'dadrawArka Plan uzantı API'leri yerine, kullanımdan kaldırılan Drawbackground API'si kaldırıldı. Kod yollarını azaltmak için renk, fırça ve boya çizimiArka plan uygulamaları yeniden düzenlendi ve kompozisyonun bir parçası olarak Değiştirici'nin oluşturulması gerekliliği kaldırıldı. (I0343a)
- Bunun yerine CanvasScope'u kullanıma sunmak için Tuval sunan daha üst düzey oluşturma API'leri güncellendi. Bu, tüketicilerin kendi Paint nesnelerini koruma ihtiyacını ortadan kaldırır. Hâlâ bir Tuval'e erişmesi gereken tüketiciler, çizim komutu vermek için alttaki Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilirler. (I80afd)
- HorizontalScroller ve Vertical Scroller kayıtlı örnek durumunu kullanarak kaydırma konumlarını geri yüklemez. (Ia0fae, b/155075048)
- FocusManagerAmbient kaldırıldı. Odaklanmak için FocusModifier.requestFocus öğesini kullanın. (Ic4826)
- Tablo düzeni, yenilenmiş bir API ile tekrar kullanıma sunulana kadar geçici olarak kaldırılmıştır. (Id88a7)
Durum bilgisiz ve bildirim temelli bir çizim API'si yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır. Boyutlandırma bilgileri de ilgili inset sınırlarına dahil edilir. Tüketicinin çizim işlemlerini yapılandırmak için kendi Boya durumu nesnesini korumasına gerek yoktur.
CanvasScopeSample eklendi ve demo uygulaması bildirim temelli bir grafik demosu içerecek şekilde güncellendi (Ifd86d)
ColoredRect kaldırıldı. Çizimler Arka plan değiştiricisi olan Kullanıcı Kutusu (I983c7, b/152753731)
Metin Alanı'na imleç rengini özelleştirme özelliği ekleyin (I6e33f)
Artık onTextInputStarted geri çağırma işlevi (I8dc44, b/151860051) ile sunulan SoftwareKeyboardController'ı kullanarak yazılım klavyesini gizlemek/göstermek mümkündür.
TextField ile birlikte kullanılan TextFieldValue, şu şekilde kullanıldığında artık etkinlik yeniden oluşturma etkinliği olarak kullanılabilir:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Text() öğesine sık kullanılan parametreleri ekler. Şu anda
Text(style = TextStyle(textAlign = TextAlign.Center))
gibi az sayıda parametre ileten bir yerel metin stili oluşturuyorsanız parametreleri doğrudan sağlayabilirsiniz:Text(textAlign = TextAlign.Center)
(I82768)Odak alt sistemiyle entegrasyon sağlamak için CoreTextField/TextField odakIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)
Metin Alanı güncellemesi: Yatay boyutta kendisine verilen tüm kullanılabilir alanı kaplar (Ib08df, b/154638552)
Etkileşim Durumu ve Etkileşim eklendi. Böylece, basma ve sürükleme gibi kullanıcı arayüzü durumu değişikliklerine tepki veren bileşenlerin oluşturulması kolaylaştırıldı (Icfe25, b/152525426)
RectangleShape, androidx.ui.foundation.shape.* biçiminden androidx.ui.graphics'e taşındı.* (Ia74d5, b/154507984)
API'deki tüm null yapılabilir Renk kullanımları, null özelliği olmayanlarla değiştirildi ve null yerine Color.Unset (Iabaa7) değeri kullanıldı
TextField API güncellemesi - onFocus ve onBlur geri çağırmaları, (I66cd3) parametresiyle tek bir onFocusChange (Boole) geri çağırmasında birleştirildi
ScaleFit, ContentScale olarak yeniden adlandırılarak Hizalama API'si ile aynı modülde yaşanacak şekilde, ContentScale kullanıcı arayüzü grafiklerden arayüz çekirdek modülüne taşındı. FillMaxDimension Kırp'ı Kırpma, ImageView.ScaleType5 ile kullanılan Resim Görünümü.ScaleType.CENTER_CROP ve Fit ile aynı sonucu elde etmenin, Kırpma ve Hizalama
ProvideContentColor'ı kaldırır, bunun yerine doğrudan
Providers
(Iee942) ile ContentColorAmbient'i kullanınMetne renk parametresi ekleyerek, temada sağlanan stille manuel olarak birleştirmeye gerek kalmadan metin stilinin renginin geçersiz kılınmasına olanak tanır. (I41a66)
DrawModifier API'sını iyileştirin:
- Draw() ContentDrawScope için alıcı kapsamı oluşturuldu
- Draw() üzerindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahip
- ContentDrawScope'tadrawContent() yöntemi (Ibaced, b/152919067) bulunur
ColoredRect kullanımdan kaldırıldı. Bunun yerine
Box(Modifier.preferredSize(width, height).drawBackground(color))
politikasını kullanın. (I499fa, b/152753731)Şekil tema sistemi, Materyal tasarım spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğu tarafından kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz (Ifb4d1)
Değiştirici artı operatörü fabrika uzantı işlevleriyle değiştirildi (I225e4)
Sürüklenebilir öğe değiştiriciye taşındı (Id9b16, b/151959544)
Text
, androidx.ui.core'dan androidx.ui.foundation paketine taşındı. (I87ce5)Onay Kutusu, Switch ve Geçiş Özellikli'ye (I41c16)
enabled
parametresi ekleRipple artık bir Değiştirici. Tıklanabilir henüz dönüştürülmese de önerilen kullanım
Clickable(onClick = { ... }, modifier = ripple())
olur (Ie5200, b/151331852, b/150060763)Vektör grafikleri için mevcut alt bileşim API'sinin yerini alması için VectorPainter API'si eklendi. Alt kompozisyonun sonucu DrawModifier yerine bir VectorPainter nesnesidir. Önceki DrawVector composable'lar kullanımdan kaldırıldı ve yerine VectorPainter geldi.
Image(Painter)
API'sinin adıPaintBox(Painter)
olarak değiştirildi. ImageAsset yerine VectorAsset (I9af9a, b/149030271) hariç, Image composable gibi davranan Vector composable oluşturulduBelirli bir ImageAsset'i ekrana çizmeye ek olarak boyutlandırma/düzeni işlemek için Image composable oluşturuldu. Bu composable, doğal boyutuna uygun olarak rastgele bir Painter örneği çizmeyi ve belirli bir sabit veya minimum boyutu (Ibcc8f) desteklemeyi de destekler.
Button, FloatingActionButton ve Clickable'ın artık ayrı bir
enabled
parametresi vardır. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)Resim verileri ile düzene katılmak ve içerik çizmek için kullanılan Image composable arasındaki farkı daha iyi ayırt etmek amacıyla Image, ImageAsset olarak yeniden adlandırıldı.
Geleneksel Android uygulaması geliştirmeyi oluşturma çerçevesiyle birleştirmek için yararlı olan bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap'te (
Bitmap.asImageAsset()
) uzantı yöntemi oluşturuldu. (Id5bbd)DrawImage composable kaldırıldı. Mevcut düzende resim çizmek için ImagePainter'ı veya yer kaplayan Resim tanıtmak için SimpleImage'ı kullanın (I595e1, b/149827027)
Yığın bileşeni sağdan sola yönü destekler (Ic9e00)
Simge, Simge Düğmesi ve SimgesiToggleButton eklendi, AppBarIcon kaldırıldı. Mevcut AppBarIcon kullanımlarını doğrudan iconButton ile değiştirebilirsiniz. Böylece artık doğru dokunma hedefine sahip olurlar. Kullanım bilgileri için örneklere ve doğrudan bu bileşenlerle birlikte kullanabileceğiniz, sağlanan Malzeme Simgelerine ait Simgelere bakın. (I96849)
DrawShape composable kaldırıldı. Bunun yerine Drawbackground değiştiricisini kullanın. (I7ceb2)
Yalnızca görünür öğeleri oluşturan ve düzenleyen bir kaydırma listesi bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında, yalnızca dikey yönde olması ve alt öğelerinde yapılan değişikliklerin tüm durumlarını tam olarak ele almaması yer almaktadır. (Ib351b)
Özel Kaydırıcıların/Listelerin oluşturulmasına olanak tanıyan Kaydırılabilir bileşen eklendi (I5fd37)
Arka plan, Drawbackground olarak yeniden adlandırıldı ve varsayılan olarak ezberlenmesi için ayarlandı (Ia0bd3)
Box'a dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)
Tuval bileşeni eklendi. Bu composable yalnızca bir boyut kaplar (kullanıcı tarafından sağlanır) ve CanvasScope (I0d622) özelliğini kullanarak çizim yapmanıza olanak tanır.
Border
değiştiricisiniDrawBorder
olarak yeniden adlandır (I8ffcc)Düzen ve çizim ortak işlevlerini birleştirmek için Box bileşeni eklendi. (I6e2a7)
Kaydırma araçları artık yerel Android hızlı hareket davranışı sergiliyor. (I922af, b/147493715)
DrawBorder yerine Kenarlık Değiştirici'yi (Id335a) kullanıma sunduk
Modifier.testTag ile karışıklık olmaması için Modifier.tag'in adı Modifier.layoutId olarak değiştirildi. (I995f0)
ConstraintLayout yönergeleri oluşturulurken yüzde parametresi kesir olarak yeniden adlandırıldı. (Ida2db)
ConstraintLayout bariyerlerinin kenar boşlukları için destek eklendi. (I47ffe)
ConstraintLayout'ta RTL desteği düzeltildi. RTL'nin farkında olmayan API'ler eklendi. (I3b1c7)
ConstraintLayout için yeni bir DSL eklendi. Daha fazla bilgi için lütfen örneklere bakın. (Icaa9a)
@DeneyselalLayout ek açıklaması eklendi. ConstraintLayout, FlowRow ve FlowColumn, API'lerinin değişeceğini belirtmek için artık bu etiketle etiketleniyor. (I412a8)
Modifier.padding(InnerPadding)
eklendi (I94985, b/157133803)Kullanımdan kaldırılan Rowalign, Column boyunca ve Column öğeleri kaldırıldı. (If60d4, b/155858731)
Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() öğesini kullanın. (If8044)
ofsetleri (dinamik) piksel cinsinden tanımlamak için kullanılabilen ofsetPx düzen değiştiricisi eklendi. (I5af57)
HizalamaLineOffset composable kullanımdan kaldırıldı. Lütfen bunun yerine relevantPaddingFrom() değiştiricisini kullanın. CenteralignmentLine composable kaldırıldı. (I60107)
Yalnızca gelen karşılık gelen kısıtlamalar belirtilmediğinde sarmalanmış düzene boyut kısıtlamaları ayarlayan defaultMinSizeConstraints düzen değiştiricisi eklendi (minimum kısıtlamalar için 0, maksimum kısıtlamalar için sonsuz). (I311ea, b/150460257)
Kapsayıcı kaldırıldı. Bunun yerine Box kullanın (Ibbc2b, b/151407926)
Kullanımdan kaldırılan LayoutWidth/Yükseklik/Boyut değiştiricileri kaldırıldı. (Ib0bc1)
Ofset değiştiricisi için varsayılan parametre değerleri eklendi. (I37f06)
Simetrik dolgu değiştiricisi eklendi. (I39840)
Kullanımdan kaldırılan LayoutAspectRatio değiştiricisi kaldırıldı. (I65a74)
Kullanımdan kaldırılan LayoutLayout değiştiricileri kaldırıldı. (I10877)
Genişlik ve yükseklik değiştiricilerde, sarmalanmış düzenin ters eksen kısıtlamaları olmadan ölçülmesine neden olan bir hata düzeltildi. (I210b8, b/154797971)
Satır ve Sütuna sırasıyla verticalGravity ve horizontalGravity parametreleri eklendi. (I7dc5a)
wrapContentWidth ve wrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama beklenecek şekilde güncellendi. Yerçekimi değiştiricisi, dikey veya yatay Hizalamayı kabul edecek şekilde güncellendi. Satır, Sütun ve Yığın, özel sürekli Hizalamaları destekleyecek şekilde güncellendi. (Ib0728)
Hizalama, rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar eklendi. (Ia0c05)
EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Malzeme Düğmeleri'nin innerPadding parametresi pedal çevirme olarak yeniden adlandırıldı. (I66165)
alignToSiblings artık Yerleştirilebilir yerine Ölçülmüş kabul eder. (I5788d)
Doğal ölçümlere boyutlandırma için değiştiriciler eklendi ve bu amaca hizmet eden bileşenler kullanımdan kaldırıldı. (I8295d)
ConstraintLayout (Idb1a5) alt öğelerinin boyutlarını özelleştirme desteği eklendi
Kullanımdan kaldırılan Wrap and Center composable'ları kaldırıldı. (I29e23)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi; kullanımdan kaldırılan LayoutModifier (If32ac)
RowScope ve ColumnScope üyelerine artık Satır ve Sütun dışından erişilebilir. (I3a641)
Kapsayıcının desteği sonlandırıldı. Bunun yerine Box'ı kullanın. (I675ce, b/151407926)
Düzen konumunu dengelemek için LayoutOffset değiştiricisi eklendi (I0b8a3)
Oluşturma düzeninde Rtl için ilk destek (Ia5519)
LayoutLayout, mevcut alanı artık doldurmayacak şekilde güncellendi (I2b14f)
AspectRatio composable, bunun yerine değiştiriciyi devreye girdi. Eski FlexColumn, FlexRow composables ve Boşluk değiştirici (Iec8a7) silindi
Satır ve Sütun için LayoutInflexible değiştiricisi kaldırıldı (I0d820)
TextField seçimini değiştirmek için Sürükleme Seçimi Tutma Yerlerini uygulayın. (I27032)
Metin Alanı Seçimi için LongPressAndDrag yöntemini uygular. (I17919)
Hata Düzeltmeleri
- FocusModifier kullanımdan kaldırılmış ve bunun yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver sitesine yapılmıştır. FocusState ve FocusDetailsState desteği, onun yerine FocusState2 (I46919, b/160822875, b/160922136)
runOnIdleCompose
,runOnIdle
(I83607) olarak yeniden adlandırıldı- Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri, performansXYZ olarak yeniden adlandırıldı. (I7f164)
- Daha önce kullanımdan kaldırılan Modifier.ripple'ı kaldırır. Tıklanabilir artık varsayılan gösterge olarak dalgaları kullanıyor (uygulamanızda bir MaterialTheme {} ayarlıysa). Böylece çoğu durumda sadece tıklanabilir özelliğini kullanabilir ve ücretsiz dalga gösterimi alabilirsiniz. Dalga için renk / boyut / sınırlı parametresini özelleştirmeniz gerekirse manuel olarak bir RippleIndication URL'si oluşturup gösterge parametresi olarak tıklanabilir parametreye aktarabilirsiniz. (I663b2, b/155375067)
- Eski boyut testi API'leri kaldırıldı. (Iba0a0)
- LayoutNode deneysel API'sı yapıldı (I4f2e9)
- Kaydırma yönü kilitlemesinin 1. sürümü, Compose'da uygulanır. (I1ce7a, b/150289741)
- Pop-up'lar, İletişim Kutuları ve Menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)
- 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) aracılığıyla geri çağırma içinde kullanılabilir
- MutlakArrangement Ekle: Satır içindeki alt öğelerin RTL (I3a1df) biçiminde otomatik yansıtma olmadan düzenlenmesini sağlar
- @Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) (Id211e) ile değiştirin
- Bu değişiklikten önce, bir @Composable işlevi (I5205a, b/158123804) varsa oluşturma derleyici eklentisi, bir @Composable işlevinin içindeki kuruculara yapılan çağrılarda önemsiz bir şekilde engelleniyordu.
- Etkinlik veya Fragment'teki (I5fdd1) benzer bir şekilde ViewModel oluşturmaya veya daha önceden oluşturulmuş bir görünüm oluşturmanıza olanak tanıyan
viewModel()
composable ekleyin Yarıçap sınıfı yeniden düzenleyerek satır içi bir sınıf oldu. Tamamlayıcı oluşturma yöntemleri, varsayılan parametresi olan işlev kurucunun lehine olan ve y ekseni boyunca yarıçapı zorunlu x ekseni yarıçap parametresinin yarıçapıyla aynı olacak şekilde ayarlanarak kaldırıldı.
DrawScope.drawRoundRect, yarıçap için x ve y ekseni boyunca 2 ayrı kayan nokta değeri yerine tek bir Radius parametresi kullanacak şekilde güncellendi (I46d1b)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmeyi amaçlayan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon 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ürlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)
Piksel parametreleri (Id3434) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi
Piksel parametreleri için yalnızca Dp ve temel türlere (I97a5a) dayalı büyük yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi
TextField'in imleci yanıp sönen bir animasyon içeriyor (Id10a7)
Kısmi hareketler için artık Hareket Jetonu'nun (Id7ae5) geçirilmesi gerekmiyor
Piksel parametreleri (I57bff) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi
Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırılmıştır. (I4cfdc)
AnnotatedString.Builder.addNotlarString'i addStringnot olarak yeniden adlandırın. (I5059e)
Hizalama API'si güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtmaz) (I38cd3)
Layout ve LayoutModifier alt öğeleri, farklı bir düzen yönüyle ölçülebilir. (Ibd731)
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizimini desteklemek için ImagePainter'a isteğe bağlı ek rect parametresi ekleyin
Öğeler kaldırılırken AdapterList'te yaşanan bir kilitlenme düzeltildi (Ic64b0, b/153195921)
activity.setContent { } bloğuna yerleştirdiğiniz ilk düzeni ölçme yöntemimizi değiştirdik. Daha önce tüm etkinlik ekranını doldurması gerekiyordu, şimdi ise düzeninizi bir Grubun içine yerleştirmiş gibi davranır: Bir ekrandan daha küçük olabilir ve sol üst ekrana yerleştirilir. Eski davranışı istiyorsanız düzeniniz için Modifier.fillMaxSize() öğesini uygulayabilirsiniz. (Ie88a7, b/153453714)
ui-text-compose modülünün adı ui-text olarak değiştirildi. Kullanıcı arayüzü metin artık CoreText ve CoreTextField composable'larını (Ib7d47) içeriyor
kullanıcı arayüzü modülü, ui-text-core (I57dec) olarak yeniden adlandırıldı
ui-framework/CoreText, CoreTextField composable'ları ui-text-compose altına taşındı. Projenize ui-text-compose eklemek isteyebilirsiniz. (I32042)
runOnIdleCompose
verunOnUiThread
artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)[Mutable]Eyalet mülk delege operatörleri, Kotlin 1.4 mülk yetkilendirmesi optimizasyonlarını desteklemek için uzantılara taşındı. Arayanların
by state { ... }
veyaby mutableStateOf(...)
kullanmaya devam etmek için içe aktarma işlemleri eklemeleri gerekir. (I5312c)DrawtierModifier vedrawLayer() öğelerini artık varsayılan olarakClipToBounds ve klipToOutline'ı false olarak ayarlayın. (I0eb8b, b/152810850)
LayoutResult'ın adı MeasureResult olarak değiştirildi. (Id8c68)
Kullanımdan kaldırılan Center composable. Bu öğe, LayoutSize.Fill + LayoutLayout.Center değiştiricisi ile veya uygun değiştiricilerin uygulandığı Box ya da Stack composable'larından biriyle (Idf5e0) değiştirilmelidir.
LayoutEsnek, Layoutweight olarak yeniden adlandırıldı. Sıkı parametre, doldurulacak şekilde yeniden adlandırıldı. (If4738)
DrawVector, normal bir composable işlevinden, vektörü bir düzene arka plan olarak çizecek bir DeğiştiricidrawVector() işlevi döndürecek şekilde değiştirildi. (I7b8e0)
ClipToBounds adlı composable işlev işlevini,drawClip() değiştiricisiyle değiştirin. DrawClipToBounds, yalnızca katman sınırlarını bir dikdörtgen şekli ile kırpmanız gerektiğinde kullanmak için kullanışlı bir değiştiricidir. (If28eb)
DrawShadow composable işlevidrawShadow() değiştiricisiyle değiştirildi. Gölgeler artık LayerModifier'ın parçası olarak çiziliyor. (I0317a)
androidx.compose.ViewComposer, androidx.ui.node.UiComposer androidx.compose.Emittable'a taşındı. ComponentNode ile yedekliyordu. androidx.compose.ViewAdapters kaldırıldı. Bunlar artık desteklenen bir kullanım alanı değildir. Compose.composeInto kullanımdan kaldırıldı. Bunun yerine
setContent
veyasetViewContent
kullanın. Compose.disposeComposition kullanımdan kaldırıldı. Bunun yerine,setContent
tarafından döndürülenComposition
üzerindekidispose
yöntemini kullanın. androidx.compose.Compose.subcomposeInto androidx.ui.core.subcomposeInto'ya taşındı ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı ComponentNode#emitRemoveAt, ComponentNode#removeAt ComponentNode#emitMode0 olarak yeniden adlandırıldıComponentNode#removeAt#emitMode0 olarak yeniden adlandırıldıKullanımdan kaldırılan Wrap composable. LayoutLayout değiştiricisi veya Stack composable (Ib237f) ile değiştirilebilir
Düzen yönü, üst düzen düğümünden alt öğelere yayıldı. Düzen yönü değiştiricisi eklendi. (I3d955)
Yeni oluşturulan Değiştiricinin birden fazla Değiştirici örneği arasında paylaşılabilecek bir orijinal Painter referansı olduğundan Painter.toModifier'ın adını Painter.asModifier olarak değiştirin. (I7195b)
LayoutPadding değiştiricisinde sağdan sola yönü destekleme (I9e8da)
Density ve DensityScope tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kodunu kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)
ValueHolder sınıfı kaldırıldı. Animasyon değeri alanını soyut hale getirerek alt sınıfların değer güncellemesini izleyebilmesini sağlamak için Animasyon Değerini, Animasyonu kaydırma sınıflarını yeniden yapılandırdı.
- Canlandırma Değeri, Canlandırma Kayanlığı vb. için model sınıfları eklendi.
- Değerler arasında animasyon oluşturmak için yeni bir basit @Composable API grubu eklendi.
- (I79530)
Ambients API'deki önemli değişiklikler. Ayrıntılar için günlüğe ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)Placeable#get(HizalamaSatırı) öğesinden döndürülen hizalama çizgisi tam konumları artık boş değil. Sorgulanan hizalama çizgisi eksikse Hizalama Satırı.Belirtilmemiş döndürülür. (I896c5, b/158134875)
Yeniden oluşturmalarda kilitlenmeye neden olan bir ConstraintLayout hatası düzeltildi. (Ibee5a, b/158164341)
WithConstraints sondaki lambda API'si değiştirildi. Şimdi iki parametre yerine bir alıcı kapsamına sahiptir. Bu alıcı kapsamı, sınırlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlar (I91b9a, b/149979702)
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Layout ve LayoutModifier2'deki içsel ölçüm işlevleri, artık örtülü bir şekilde yayılmış düzen yönüyle intrinsics query API'si sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)
LayoutDirectionAmbient desteği sonlandırıldı. Yerel ayar tarafından tanımlanan düzen yönünü okumak için ConfigurationAmbient'te (I851b1) localeLayoutDirection'ı kullanın
LayoutKoordinatları için locationInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
ParentData composable desteği sonlandırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya yalnızca düzen alt öğelerini ölçüm bloğunda tanımak için etiketlemeniz gerekiyorsa LayoutTag değiştiricisini kullanmanız gerekir. (I51368, b/150953183)
OnPositioned ve OnChildPositioned composable işlevlerini değiştirmek için OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)
LayoutPadding'de negatif dolguya izin verme. Bunun yerine, negatif konum ofsetleri için LayoutOffset kullanılmalıdır. (Ifb5b1)
WithConstraints, LayoutDirection parametresini (I6d6f7) aldı
ComposeFlags.COMPOSER_PARAM
işareti, oluşturma eklentisi için kod oluşturma stratejisini değiştirecek şekildetrue
olarak güncellendi. Yüksek düzeyde bu durum, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün bir şekilde yönetebilmesi için sonraki @Composable çağrılarına geçirilir. Bu, ikili programlarda önemli bir bozulma değişikliği olsa da, onaylı tüm oluşturma işlemlerinde kaynak düzeyinde uyumluluğun korunması gerekir. (I7971c)LayoutKoordinatları, sağlananHizalamaSatırlarını bir Harita yerine bir kümeye dönüştürmek ve LayoutKoordinatlarının, bir değeri almak için bunun yerine get() operatörünü uygulamasını sağlamak amacıyla değiştirildi. Bu, değiştiricilerin her biri için yeni bir koleksiyon oluşturmadan kümedeki bir veya daha fazla değeri değiştirmesini kolaylaştırır. (I0245a)
Düzen koordinatlarının artık bir konum özelliği yoktur. LayoutModifier'lar, rotasyon veya ölçeklendirme düşünüldüğündeposition özelliği anlamlı değildir. Bunun yerine, geliştiriciler bir LayoutKoordinatör'den diğerine dönüşümü hesaplamak için ebeveyniniz Koordinatör'ü ve AltToLocal() işlevini kullanmalıdır.
LayoutCoordinates, boyut özelliği için PxSize yerine IntPxSize kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullanır. Bu nedenle, tüm düzen boyutlarında kayan nokta değerleri değil tamsayı değerleri kullanılmalıdır. (I9367b)
Kısıtlamaların API yüzeyinde yapılan iyileştirmeler (I0fd15)
TextDirection.Content eklendi (I48f36)
Kopyalama, kesme ve yapıştırma işlemlerinin düzgün şekilde gösterilmesi için Araç Çubuğu Menüsü'nü tıklayın. (Id3955)
Metin Alanı Seçimi için Kayan Araç Çubuğu Ekleyin. (Ie8b07)
TextDirectionAlgorithm, TextDirection (I75ce8) olarak yeniden adlandırıldı
TextDirection, resolvedTextDirection (I3ff38) olarak yeniden adlandırıldı
Metin Alanı Seçimine HapticFeedback ekleyin. (I58050)
Metin Alanı Seçimi'ne Kopyalama, Kes ve Yapıştırma yöntemleri ekleyin. (Idb70b)
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i kullanın (I15ff0, b/158841414)
Locale ve LocaleList için androidx.ui.text olan paket adı, androidx.ui.intl (I8132c) olarak değiştirildi
API değişikliği:
AnnotatedString(builder: Builder)
,annotatedString(builder: Builder)
olarak yeniden adlandırıldı. (Ia6377)API değişikliği:
AnnotatedString.Item
,AnnotatedString.Range
olarak yeniden adlandırıldı. (I2d44d)Metinle ilgili işlemler için Araç Çubuğu'nu ekleyin. (I49d53)
Yeni Yaşam Döngüsü SahibiAmbient özelliği artık kullanılabilir. Artık Compose kullanıcı arayüzüyle kullandığınız bir Etkinlik androidx.activity.ComponentActivity (veya AppCompatActivity) işlevini genişletmelidir. android.app.Activity'deki setContent artık kullanımdan kaldırılmıştır (Idb25a, b/153141084)
androidx politikasıyla uyumlu olması için ui-android-text paket adı (androidx.text), androidx.ui.text.platform ile değiştirildi. (I42711)