Temel Oluşturma
androidx.compose.foundation
androidx.compose.foundation.layout
androidx.compose.foundation.gestures
androidx.compose.foundation.selection
androidx.compose.foundation.lazy
androidx.compose.foundation.interaction
androidx.compose.foundation.text
(Tüm oluşturma paketleri için API referans dokümanlarına göz atın)
Son Güncelleme | Kararlı Sürüm | Yayın Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
21 Ağustos 2024 | 1.6.8 | 1.7.0-rc01 | - | - |
Yapı
Oluşturma, androidx
içindeki 7 Maven grubu kimliğinin kombinasyonudur. Her Grup
Her biri kendi sürüm kümesine sahip olan, hedeflenmiş bir işlev alt kümesi içerir
notlar.
Bu tabloda, gruplar ve her sürüm notu grubunun bağlantıları açıklanmaktadır.
Grup | Açıklama |
---|---|
compose.animation | Jetpack Compose uygulamalarında animasyonlar oluşturarak kullanıcı deneyimini zenginleştirin. |
compose.derleyici | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. |
compose.temel | Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin. |
compose.material | Kullanıma hazır Materyal Tasarım Bileşenleri ile Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, Compose'un www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarım'ın yeni evrimi olan Materyal Tasarım 3 Bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenmiş tema ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özellikleri içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak. |
compose.runtime | Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler eklentisinin hedefleyeceği temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken yazma kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlılık eklemek için Google Maven deposunu belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.
build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin.
uygulamanız veya modülünüz:
Eski
dependencies { implementation "androidx.compose.foundation:foundation:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme bölümüne bakın.
Geri bildirim
Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.
Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.
Sürüm 1.7
Sürüm 1.7.0-rc01
21 Ağustos 2024
androidx.compose.foundation:foundation-*:1.7.0-rc01
yayınlandı. Sürüm 1.7.0-rc01 bu kayıtları içerir.
Hata Düzeltmeleri
- Herhangi bir öğe odaklanılabilir (veya tıklanabilir) ve devre dışı bir üst öğeye odaklanıldığında kilitlenmenin gerçekleştiği regresyon düzeltildi. (b/317561689)
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07
yayınlandı. Sürüm 1.7.0-beta07 bu kayıtları içerir.
Hata Düzeltmeleri
- Metin girişiyle ilgili
SemanticsNodeInteraction
işlevleriperformTextReplacement
,performTextInput
veperformTextClearance
artık salt okunurTextFields
üzerinde çağrıldığında onay hataları bildiriyor. (I4ae8f) - Köprülerdeki görsel bir arıza düzeltildi. (I23311)
- Bazı IME'lerle çalışmayan
contentReceiver
değiştiricisi düzeltildi. - Hız oluşturma: Compose kullanıcı arayüzünde ve temelde NaN değerlerinin yayılmasını engelleyin.
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.foundation:foundation-*:1.7.0-beta06
yayınlandı. Sürüm 1.7.0-beta06 bu kayıtları içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.foundation:foundation-*:1.7.0-beta05
yayınlandı. Sürüm 1.7.0-beta05 bu kayıtları içerir.
Hata Düzeltmeleri
SnapFlingBehavior
ve Çağrı Cihazı'nda Nan değerlerinin işlenmesi için düzeltme yapıldı.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.foundation:foundation-*:1.7.0-beta04
yayınlandı. Sürüm 1.7.0-beta04 bu kayıtları içerir.
Hata Düzeltmeleri
- Çok büyük metin satırlarını (ör. 10 bin karakter) ölçerken kilitlenmeleri önleme (8157ab)
- Yeni
BasicTextField
sürümünde (6b7575) kilitlenmeye neden olan çok büyük metinlerin ölçümü düzeltildi - Satır/Sütun ölçümünde, belirli senaryolarda metin kullanımını kesintiye uğratan bir davranış değişikliğini geri döndürür (69e8ba)
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.foundation:foundation-*:1.7.0-beta03
yayınlandı. Sürüm 1.7.0-beta03 bu kayıtları içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-beta02
yayınlandı. Sürüm 1.7.0-beta02 bu kayıtları içerir.
API Değişiklikleri
LazyGrids
öğesinin önceden getirme davranışını yapılandırmak üzereLazyLists
için mevcut deneysel API'ye benzer bir deneysel API ekler. Buna, iç içe yerleştirilmişLazyGrids
içindeki öğeleri önceden getirme desteği de dahildir.LazyListPrefetchStrategy
özelliğine benzer şekilde, uygulama varsayılanı her ızgaranın iç içe yerleştirilmiş ilk 2 öğesini önceden getirmektir, ancak bu ayar yeniLazyGridPrefetchStrategy(nestedPrefetchItemCount)
veLazyListPrefetchStrategy#onNestedPrefetch
API'leri tarafından yapılandırılabilir. (I591c4)SemanticsProperties.Editable
,IsEditable
olarak yeniden adlandırıldı veSemanticsPropertyReceiver.editable
,isEditable
değeri olarak değiştirildi. Özellik artık boole değeridir ve her zaman metin alanlarıyla belirtilmektedir. (I8acd8)basicMarquee
varsayılan değerMarqueeDefaults
nesnesine taşındı. (I12ff6)basicMarquee
delayMillis
parametresirepeatDelayMillis
olarak yeniden adlandırıldı. (I12ff6)- Bağlantıların stilini belirlemek için güncelleme API'si:
TextLinkStyles
öğesiTextStyle
öğesine taşındı veTextDefaults
öğesi materyalden kaldırıldı (I5477b)
Hata Düzeltmeleri
LayoutCoordinates.introducesFrameOfReference
, amacını daha iyi yansıtacak şekildeLayoutCoordinates.introducesMotionFrameOfReference
olarak yeniden adlandırıldı. İlgili işlev, koordinatları bu bayrağa göre hesaplayacak şekilde yeniden adlandırıldı. (I3a330)- "Varsayılan" kaldırıldı
MarqueeDefaults
özelliklerinden yararlanın. (I1d8a0) - "Noktalı çerçeve" kaldırıldı
MarqueeDefaults
mülk. (Iad4f4) TextLinkStyles
,TextStyle
sınıfından kaldırıldı. Bunun yerine,TextLinkStyles
,LinkAnntation
oluşturucunun veAnnotatedString.fromHtml
yönteminin (I90b2b) bir parçasıdır- Çağrı Cihazı'nın sınırda durmuş durumdayken bir sınıra doğru sallanırken kapanmasına yol açan hata düzeltildi. (I9f373, b/339171222)
- BTF2 artık doğru fare seçimi hareketlerine sahip. (Ibe8c6)
Harici Katkı
- "Doğruluğu artırmak için önceden getirmede zaman hesaplaması içerik türünü oluştur/ölç"ü yeniden gönderin. (Iea622)
- Doğruluğu artırmak için zaman hesaplaması içerik türünü önceden getirmeyi temel alarak oluşturma/ölçme (Ibccb1)
- Ortak kaynak kümesinden (I070b2)
WindowInsetsPadding
değiştiricileri kullanılabilir hale getirin
Sürüm 1.7.0-beta01
14 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-beta01
yayınlandı. Sürüm 1.7.0-beta01 bu kayıtları içerir.
API Değişiklikleri
KeyboardOptions.shouldShowKeyboardOnFocus
özelliği, ikili program uyumluluğu için desteği sonlandırıldığı için tekrar gizli olarak eklendi. (I15cfe)Modifier.anchoredDraggable
artık RTL düzeninde kullanıldığında Yatay yöne sahip bileşenler için sürükleme deltalarını varsayılan olarak tersine çeviriyor. (I3c6d9)AnnotatedString.hasEqualsAnnotations
artıkhasEqualAnnotations
. (I685c0)- Metinde Materyal temalı bağlantılar almaya yönelik API güncellendi. Özellikle, temalı
LinkAnnotations
oluşturma ve temalı bağlantılara sahip HTML ayrıştırma yöntemleriTextDefaults
öğesinden kaldırıldı. Bunun yerine, bağlantıları metin composable'a parametre olarak biçimlendirmeye olanak tanıyan birTextLinkStyles
sınıfı eklendi. (I31b93) onDragStarted
veonDragStopped
askıya alma işlemi yapılmayan geri çağırmalarla değiştirildi. (I59de8)
Hata Düzeltmeleri
contentPadding
gelen kısıtlamalardan büyük olduğunda Çağrı Cihazı'nın kilitlenmesine neden olan hata düzeltildi. Çağrı cihazı artıkPageSize
değerinden 0 değerine döndürülen negatif değerleri zorluyor. (Iba5d8, b/314008560)
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08
yayınlandı. Sürüm 1.7.0-alpha08 bu kaydetmeleri içerir.
Yeni Özellikler
BasicTextField
veSelectionContainer
sürümlerine kesme, kopyalama, yapıştırma ve tümünü seçme işlemlerine yönelik öğelerin bulunduğu sağ tıklama içerik menüsü eklendi. (If8c93, Ia2b49, I6f268)
API Değişiklikleri
LazyLayout
önceden getirme isteği artık acil olarak işaretlenebilir. Bu, bir sonraki karede bu öğenin gerekli olacağını ve önceden daha fazla iş yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f).isPositionedByParentWithDirectManipulation
adlı dosyaintroducesFrameOfReference
olarak yeniden adlandırıldı. Artık ters etkiye sahip olduğunu, yani varsayılan olarak çoğuLayoutCoordinates
özelliğinin bir referans çerçevesi içerdiğini ve yalnızca doğrudan manipülasyon altında bu mülkün yanlış olacağını unutmayın. Konumu yalnızca bir referans çerçevesi sunanlarla sorgulamak içinpositionInLocalFrameOfReference(...)
işlevini kullanın. Alternatif olarak,LookaheadScope
üzerindenpositionInLocalLookaheadFrameOfReference
. (Ifc5f7)LinkInteractionListener
içindekionClicked
öğesionClick
olarak yeniden adlandırıldı (Iaa35c)- API konseyi geri bildirimine göre
getScrollViewportLength
işlem lambda'sını değiştirin. (Ibc74a) - Ekran kalemi el yazısı yetkilendirme API'leri yeniden adlandırıldı. (Ica45f, b/327271923)
TextInclusionStrategy.isInside
listesinin adınıisIncluded
olarak değiştir.Paragraph/MultiParagraph#getRangeForRect()
dönüş türünü boş değer olamaz. (I51f26)
Hata Düzeltmeleri
- "Tümünü seç" eklendi
SelectionContainer
adresindeki tüm bağlamsal metin menülerine ekleyin. (Ib750e, b/240143283) reverseScrolling=true
içeren kapsayıcıları kaydırmak için uzun ekran görüntüsü yakalama sorunu düzeltildi. (I7c59c)- Eyalet sınırlarına yaklaşıldığında
AnchoredDraggableState
öğesinincurrentValue
değerinin değişmesine neden olan sorun düzeltildi. (Iea30b, b/333846848)
Harici Katkı
PrefetchExecutor
yeniden adlandırıldı ->PrefetchScheduler
adresinde karar mercii olarak kabul edilir. (Ib9154)- İç içe yerleştirilmiş
LazyLists
içindeki öğeleri önceden getirme desteği eklendi (ör. iç içe yerleştirilmişLazyRows
öğesini oluşturan birLazyColumn
). Bu değişikliğin, buLazyLists
için kaydırma sırasında kare düşüşlerini azaltması beklenir. Uygulama varsayılanı, iç içe yerleştirilmiş ilk 2 öğeyi önceden getirmektir ancak bu davranış, yeniLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
veLazyListPrefetchStrategy#onNestedPrefetch
API'leri tarafından kontrol edilebilir. (I51952)
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07
yayınlandı. Sürüm 1.7.0-alpha07 bu kaydetmeleri içerir.
Yeni Özellikler
LinkAnnotation
oluşturma ve bağlantılaraMaterialTheme
işlemini uygulayan HTML etiketli dizeyi ayrıştırma yöntemlerini içeren birTextDefaults
nesnesi eklendi. (I98532, b/139312671)LazyVerticalGrid
veLazyHorizontalGrid
bölümlerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Daha önce, yerleşim animasyonlarını (yeniden sıralama) desteklemek içinModifier.animateItemPlacement()
değiştiricisi eklenebiliyordu. Bu düzenleyicinin desteğini sonlandırdık ve deneysel olmayan yeni bir değiştiriciyi kullanıma sunduk.Modifier.animateItem()
, üç animasyon türünü de desteklemenize olanak tanıyor: görünüm (belirleme), kaybolma (belirleme) ve yeniden sıralama. (Ib7d12, b/330510929)LazyVerticalStaggeredGrid
veLazyHorizontalStaggeredGrid
bölümlerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Daha önce, yerleşim animasyonlarını (yeniden sıralama) desteklemek içinModifier.animateItemPlacement()
değiştiricisi eklenebiliyordu. Bu düzenleyicinin desteğini sonlandırdık ve deneysel olmayan yeni bir değiştiriciyi kullanıma sunduk.Modifier.animateItem()
, üç animasyon türünü de desteklemenize olanak tanıyor: görünüm (belirleme), kaybolma (belirleme) ve yeniden sıralama. (I69bc9, b/330511290)
API Değişiklikleri
ContextMenuColors
ve ilişkiliLocalContextMenuTheme
ProvidableCompositionLocal
ekler. Metin alanlarındaki ve seçilebilir metindeki içerik menüsünün renkleri, bestenin yerel olarak sağlanmasıyla değiştirilebilir. (Ifa154)- Metin bağlantılarına, normal stile ek olarak basılı durum stil seçeneği eklendi, imleçle üzerine gelindi ve odaklanıldı. (I5f864, b/139312671)
- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMargin
özelliğini tanıtın.BasicTextField
için el yazısı hareketini destekleyin. (Ie6e13, b/325660505) - İlgili API yüzeyinin geri kalanını sabitlemeyi tamamlamaya vaktimiz olmadığı için 1.7 sürümünde
DelegatableNode.scrollIntoView
kaldırıldı. Bu işlev, 1.8 sürümünde yeniden kullanıma sunulacaktır (I6cf61, b/333421581, b/332900232) - Artık Düzen koordinatlarını sorgularken, alt öğelerini
Placeable.PlacementScope.withDirectManipulationPlacement
kullanarak yerleştiren üst Layouts tarafından ayarlanan ofseti hariç tutmak içinexcludeDirectManipulationOffset
bağımsız değişkenini kullanabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir Düzen artık bunlarıwithDirectManipulationPlacement
kullanarak yerleştirebilir (örneğin, Kaydırma, varsayılan olarak uygulanır). Bu,approachLayout
tabanlı animasyonların daha sezgisel olmasına yardımcı olur. Artık hangi ofseti animasyonlayacağını ve yaklaşım animasyonunu uygulamaya karar verirken doğrudan neyin uygulanacağını ayırt etme fırsatına sahip olur. (I60ec7) LazyStaggeredGrid
içinrequestScrollToItem
ile tanışın. Müşteri artık her ölçüm geçişi içinrequestScrollToItem
yöntemini çağırarak anahtara dayalı dizini korumayı 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ı dizini korumayı 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ı dizini korumayı devre dışı bırakabilir. Bu işlem,requestScrollToItem
çağrılmadığı sürece mevcut davranışı hiçbir şekilde değiştirmez. (I0a7a0)ClickableText
desteği sonlandırıldı olarak işaretlendi. Metne bağlantı eklemek için bağlantınıza karşılık gelenLinkAnnotation
öğesini içeren birAnnotatedString
oluşturun ve buAnnotatedString
öğesiniText
composable'a (I34d4b, b/323346994) iletinUrlAnnotation
desteği sonlandırıldı. Bunun yerineLinkAnnotation.Url
kullanın. Materyal teması kullanıyorsanız ek açıklamayı Materyal temasıyla (I8d180, b/323346545) oluşturmak içinTextDefaults
nesnesini kullanınString.parseAsHtml
,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şleyicisi eklendi. HTML etiketli dize<a>
etiketleriyle ayrıştırılırken bu yöntem, bu tür her etiket için birLinkAnnotation.Url
oluşturur ve her ek açıklamaya stil nesneleri ile bağlantı etkileşimi işleyicisini iletir. (I7c977)LinkAnnotation
artık durum tabanlı stil bağımsız değişkenlerini veLinkInteractionListener
alıyor. Köprü almak için bu ek açıklamayıAnnotatedString
öğesine ekleyin.focusedState
ve/veyahoveredState
öğesini ileterek, odaklanılan ve/veya fareyle üzerine gelinen bağlantılar için gö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 çoğu sabitlendi. (I714e2) BasicSecureTextField
öğesine, içerikler karartılırken hangi karakterin kullanılacağını kontrol edentextObfuscationCharacter
parametresi eklendi. (I0588b)NestedScroll
kaynakların Sürükle ve Kaydırma işlevi, artık animasyonlar (Yan Efekt) ile Fare Tekerleği ve Klavyeyi (UserInput
) de içeren bu kaynakların genişletilmiş tanımına uyum sağlamak içinUserInput
veSideEffect
tarafından değiştiriliyor. (I40579)- Kaydırılabilir değiştirici katmanında uygulanan, platforma bağlı bir odak kaydırma davranışı olan
LocalBringIntoViewSpec
ile tanışın. (I27aa5, b/317453911) TextFieldCharSequence
kaldırıldı.TextFieldBuffer.originalValues
,TextFieldBuffer.originalText
veTextFieldBuffer.originalSelection
ile değiştirildi. (I2c7d6)ImeOptions.hintLocales
artık boş değerli değil. Boş bir Yerel Ayar listesini iletmek istiyorsanız lütfenLocaleList.Empty
kullanın. (Ic5bc4)getOffsetFractionForPage
adlı dosyagetOffsetDistanceInPages
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 bir şekilde birleştirilecek. (Ie5304, b/295951492)AnchoredDraggableState
adlı müşterinintargetValue
özelliği artık konum eşiklerini değerlendirmemektedir. Artık %50'lik bir örtülü eşiğe sahiptir. YanitargetValue
, iki sabit reklam arasındaki orta noktada değişir. (I82c2c)
Harici Katkı
- 2 kaydırma API'si yeniden adlandırıldı (I56a75)
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06
yayınlandı. Sürüm 1.7.0-alpha06 bu kaydetmeleri içerir.
Yeni Özellikler
LazyColumn
veLazyRow
bölümlerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Daha önce, yerleşim animasyonlarını (yeniden sıralama) desteklemek içinModifier.animateItemPlacement()
değiştiricisi eklenebiliyordu. Bu düzenleyicinin desteğini sonlandırdık ve deneysel olmayan yeni bir değiştiriciyi kullanıma sunduk.Modifier.animateItem()
, üç animasyon türünü de desteklemenize olanak tanıyor: görünüm (belirleme), kaybolma (belirleme) ve yeniden sıralama. (I2d7f7, b/150812265)LazyColumn/LazyRow
müşterileri artık, askıya alma işlemi uygulanmayan birLazyListState.requestToScroll
çağırarak yaklaşan ölçüm geçişinin anahtarına dayalı bir dizinin saklanmasını devre dışı bırakabilir. (I98036, b/209652366)- Stil özellikleri ayarlanmış dizeler için
parseAsHtml
yöntemi eklendi: HTML etiketleriyle işaretlenen bir dizeninAnnotatedString
biçimine dönüştürülmesine olanak tanır. Tüm etiketlerin desteklenmediğini, örneğin henüz madde işaretli listeleri görüntüleyemeyeceğinizi unutmayın. (I84d3d) - Resmi Android API'sini (
ScrollCaptureCallback
) kullanarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. Bu özellik deneyseldir ve şu anda tüm durumları doğru şekilde işlemeyebilir. Bu nedenle, özellik şu anda varsayılan olarak devre dışıdır. Etkinleştirmek içinComposeFeatureFlag_LongScreenshotsEnabled
işaretini doğru değerine ayarlayın. Bu işaret, 1.7 beta sürümünden önce kaldırılacaktır. (I2b055, b/329296471) GraphicsLayer
örneklerinin yerleştirilmesi ve oluşturulmasında daha fazla esneklik sağlamak veGraphicsLayer
değiştirici örneklerini belirtmek için Composable uygulamalarıyla koordine olmak zorunda kalmadan dahili oluşturma özelliklerini desteklemek için yeniGraphicsLayer
API'yi kullanıma sunun.
API Değişiklikleri
- Artık tüm
KeyboardOptions
parametreleri varsayılan olarak belirtilmemiş bir değere sahip.KeyboardOptions.merge
yöntemi eklendi. KeyboardOptions.autoCorrect
,autoCorrectEnabled
olarak yeniden adlandırıldı ve boş değerli hale getirildi. Buradaki null, herhangi bir değer belirtilmediğini gösterir. (Ia8ba0, b/295951492)outOfBoundsPageCount
adlı dosyabeyondViewportPageCount
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 ediyorumInputTransformation.transformInput
parametreleri yeniden düzenlendi.originalValue: TextFieldCharSequence
kaldırıldı. Bunun yerine,TextFieldBuffer
artık bu değeri aynı adla taşımaktadır.valueWithChanges: TextFieldBuffer
parametresi de kaldırıldı.TextFieldBuffer
artık işlevin alıcı kapsamıdır. (I919cc)BasicTextField(state)
varyantı veBasicSecureTextField
, yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için artıkKeyboardActions
yerineKeyboardActionHandler
kullanıyor. (I58dda)- "Sahte" yazılarda ekran kalemiyle el yazısını desteklemek için ekran kalemiyle el yazısı yetkilendirme API'leri metin giriş alanları. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus
adlı dosyashowKeyboardOnFocus
olarak yeniden adlandırıldı. (Ib4b7a, b/295951492)hintMediaTypes
parametresiModifier.contentReceiver
parametresinden kaldırıldı. YapılandırılmışhintMediaTypes
ile uyumlu olmayabileceğinden geliştiricilerin, aldıklarıTransferableContent
öğesinin medya türünü kontrol etmeleri zaten tavsiye edildi. (I82f99)BasicSecureTextField
parametreleri yeniden sıralandı.keyboardType
veimeAction
parametreleri tamKeyboardOptions
sınıfının kullanılması amacıyla kaldırıldı. Diğer yandan,BasicSecureTextField
için uygun varsayılan değerler korundu.scrollState
parametresi de kaldırıldı. (Ibbfa9)TextFieldState.text
öğesininTextFieldCharSequence
olan türü yalnızcaCharSequence
olarak değiştirildi. Bu nedenle, geçerli seçim ve beste 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. Panoda mevcut bir klibin olup olmadığını anlamak için ayrıcaClipboardManager.getClip
işlevinin boş olup olmadığını kontrol edin. (I50498)ClipboardManager.setClip
, Pano'yu temizleyebilmek için artık null değerini kabul ediyor. (I7d2e9)ReceiveContentListener
, işlev arayüzüne dönüştürülür. Ayrıca,ReceiveContentListener
artık bir işlev arayüzü olduğundan, lambda alanModifier.receiveContent
aşırı yüklemesi kaldırıldı.Modifier.receiveContent
,Modifier.contentReceiver
olarak yeniden adlandırıldı. (I1e6af)TransferableContent.consumeEach
adlı dosyaTransferableContent.consume
olarak yeniden adlandırıldı. (I1e462)rememberTextFieldState
, Kararlı API'ye geçirildi. (I37999)
Hata Düzeltmeleri
BasicTextField(state)
varyantının CJK(kompozisyona dayalı) klavyelerle çalışmamasına neden olan hata düzeltildi. (I54425)Modifier.Node
ürününün yeniden kullanımı söz konusu olduğundaModifier.dragAndDropTarget()
ürününün, belirli senaryolarda eski verilere başvuruda bulunmasına neden olan hata düzeltildi. (I05bb1)- Bir
anchoredDrag
işleminin sonundaAnchoredDraggableState#anchoredDrag
çağrılarının yapılabileceği son 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ı. Sürüm 1.7.0-alpha05 bu kaydetmeleri içerir.
API Değişiklikleri
- Köprülerin stil özelliklerini ayarlamak için kullanılan yerel deneysel
LocalTextLinkStyle
bileşimi kaldırıldı. (Iebfa7) BasicText
öğesininonLinkClicked
bağımsız değişkeniyle deneysel geçersiz kılması kaldırıldı. Gelecekte köprüler desteğinin yerini alacak bir API kullanıma sunulacaktır. (I107d5)TextFieldState
veTextFieldBuffer
altındaki kod noktalarıyla ilgili yöntemler ve özellikler kaldırıldı. AyrıcainChars
son ekleri, kalan seçim ve kompozisyonla ilgili API'lerden kaldırıldı. (Ief7ce)AnchoredDraggable
adlı kullanıcınıncurrentValue
değeri artık bir sabitleme noktasından geçerken güncellenecek. ÖncekicurrentValue
anlamını almak içinsettledValue
kullanın. Yalnızca sabit bir yere varırken güncelleme yapabilirsiniz. İlerleme artık bir özellik yerine bir işlev (başlangıç ve bitiş noktası gerektirir) olarak gösterilir. (Ibe6e8, b/318707189, b/298271489, b/294991954)BasicTextField(state)
,TextFieldState
,InputTransformation
,OutputTransformation
,TextFieldLineLimits
,TextFieldDecorator
, kararlı sürüme yükseltildi. (I9582b)- Düşük düzey IME ile ilgili testleri ve diğer düşük düzey IME kullanım alanlarını yazmaya yardımcı olması için
InterceptPlatformTextInput
kullanıma sunuldu.PlatformTextInputTestOverride
desteği sonlandırıldı. (I862ed, b/322680547) restrictedConstraints()
öğesini iki yönteme bölün:fitPrioritizingWidth()
vefitPrioritizingHeight()
(I6d7fd)
Harici Katkı
- En son kaydırma işleminin kaydırma yönünü kontrol etmek için 2 yeni API (
isLastScrollForward
/isLastScrollBackward
) eklendi. Henüz kaydırma işlemi yoksa "yanlış" değerini döndürür. (I63a0e)
Sürüm 1.7.0-alpha04
6 Mart 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha04
yayınlandı. Sürüm 1.7.0-alpha04 bu kaydetmeleri içerir.
API Değişiklikleri
- Android U sürümünden sonra cihazlarda ekran kalemi el yazısı özelliği desteklenir. (I002e4)
TextFields
uygulamasına, tercih edilen dili önceden ayarlamak için IME'lere belirli yerel ayarlarla ipucu verme olanağı sağlamak amacıylahintLocales
özelliğiKeyboardOptions
ürününe eklendi. (Id18c2)value: String
veonValueChange: () -> String
parametrelerini alan deneyselBasicTextField2
veBasicSecureTextField
aşırı yüklemeleri kaldırıldı. (I568b4)- Uygulandığı
BasicTextField2
kodunun anlamını etkilemek içinInputTransformation
öğesine isteğe bağlı birapplySemantics
işlevi ekleyin. (I74a2f, b/170648072) - Oluşturma sırasında kaydırılan bileşenler hakkındaki bilgileri a11y sistemine aktarabilmemiz için
GetScrollViewportLength
anlamsal işlemini bu CL'de ekliyoruz. Bu CL, söz konusu özelliğin Temel Kaydırılabilir Listelerde kullanımını da uygular. (Ic5fa2) BasicTextField2
,BasicTextField
olarak yeniden adlandırıldı. (Ie5713)FocusRequester.createRefs
artık kararlı durumda (I4d92c, b/261436820)- Değiştirici düğümlerin doğrudan
scrollIntoView
isteğinde bulunmasına izin vermek içinDelegatableNode.scrollIntoView()
kullanıma sunuldu. (I2b3b7, b/299939840) - Değiştirici düğümlerin yerel bir besteyi okumadan mevcut Android
View
bilgisini almasını sağlamak içinDelegatableNode.requireView()
kullanıma sunuldu. (I40768) - Bağlamsal Akış Satır Kapsamı ve İçeriğe Dayalı Akış Sütun Kapsamı içinde içeriğe dayalı düzen bilgilerinin sunulması, çizgi dizini, konum ve belirtilen konumda kalmak için maksimum genişlik ve yükseklikle ilgili kısıtlamalara sahiptir. Maksimum genişliği/yüksekliği aşan öğeler sonraki satıra aktarılabilir veya taşma ayarlarına bağlı olarak atlanabilir. (Id13f8, b/292114798)
Hata Düzeltmeleri
TextField
öğesininenabled
veyareadOnly
özelliklerinin değiştirilmesi, belirli koşullarda kilitlenmeye 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ı. 1.7.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
onPlaced
öğesini geçersiz kılmanıza ve koordinatları bir mülkte saklamanıza gerek kalmadanModifier.Node
ürününün mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.requireLayoutCoordinates()
kullanıma sunuldu. (Ia8657)onPlaced
öğesini geçersiz kılmanıza ve koordinatları bir mülkte saklamanıza gerek kalmadanModifier.Node
ürününün mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.currentLayoutCoordinates
kullanıma sunuldu. (Iaebaa)AnchoredDraggable
tarafından kullanılanDraggableAnchors
uygulamasındaki performans optimizasyonları. (I89cff)androidx.compose.foundation.text2
paketi altındakiBasicTextField2
ve ilgili API'lerandroidx.compose.foundation.text
hedefine taşındı. (I9f635)BasicTextField2
, artıkCodepointTransformation
parametresini kabul etmiyor.BasicSecureTextField
veyaOutputTransformation
kullanın. (Id34ff)- Yalnızca iki
AnnotatedStrings
ek açıklamasını karşılaştırma yöntemi eklendi. (I32659) MaxLines
veOverflow
ileContextualFlowRow
ve GeliştirilmişFlowRow
/Column
ile tanışın.ContextualFlowRow
veContextualFlowColumn
olarak kullanıma sunulduktan sonra artıkmaxLines
ve taşma desteği sunan deneyselFlowRow
veFlowColumn
yeniliklerini duyurmaktan mutluluk duyuyoruz. Bu güncelleme, en uygun performans bileşenlerini sağlamak üzere tasarlanmıştır.ContextualFlow*
; küçük birmaxLines
yapılandırması ve dinamik +N "Daha fazla göster" düğmesi kullanan çok sayıda öğe için mükemmeldir.FlowRow
veFlowColumn
ise 100'den az öğe içeren az sayıda öğe için mükemmeldir. Önemli: Çapraz eksende maksimum değere sahip olup olmadıklarına bakılmaksızın tüm öğelerin oluşturulduğuFlowRow
veyaFlowColumn
ürününde mevcut davranışı korumak için başlatma sırasındaoverflow
değeriniFlowRowOverflow.Visible
veyaFlowColumnOverflow.Visible
olarak ayarlayın. Bu yeni özelliklerin kullanım örnekleri içinContextualFlowRowSample
veFlowRowSample
keşfedin. (Ib9135, b/293577082)
Hata Düzeltmeleri
- İmleç animasyonu artık açık ve kapalı durumları arasındaki kareleri istemiyor. (Ia2253)
KeyboardOptions
dk. Desteği sonlandı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ı. 1.7.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
HorizontalPager
,VerticalPager
vePagerState
, kararlı sürüme yükseltildi. (I67660, b/316966909)- Uygulamadaki Metin'deki bağlantıların stilinin değiştirilmesine olanak tanıyan yerel
LocalTextLinkStyle
kompozisyonu eklendi. Uygulamada kendi temanızı kullanıyorsanız bu besteyi temanıza göre yerel olarak ayarlamanız gerekir. Materyal teması kullanırken bağlantının rengi varsayılan olarak Malzemenin birincil rengine ayarlanır. (I7eb10) - Geliştiricilere Jetpack Compose'da zengin içerik alma yöntemi sağlayan
receiveContent
değiştirici kullanıma sunuldu. receiveContent
, yazılım klavyesi tarafından sağlanan veya Pano 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şiklikle birlikte, diğer kullanım alanlarının kilidini açmak ve daha fazla esneklik sağlamak için sayfa ayırıcıdaki
SnapFlingBehavior
yerineTargetedFlingBehavior
kodunu ekliyoruz. (I762ea) - Bu değişiklikle birlikte, API'leri Tutturmayı 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 bilgilerin yayılmasına olanak tanıyan bir
FlingBehavior
olanTargetedFlingBehavior
özelliğini tanıtın. (I6a207)
Hata Düzeltmeleri
BasicTextField2
artık yazı yazarken görünüm dışına çıktığında veya giriş nedeniyle görünüm dışına çıkarken imleci görünür durumda tutuyor. (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ı. 1.7.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Yeni bir
Indication API
eklendi:IndicationNodeFactory
. Bu, önceki (artık kullanımdan kaldırılmış)rememberUpdatedInstance
API'ye kıyasla daha başarılıIndication
uygulamalarına yol açıyor. Taşıma bilgileri için developer.android.com adresine bakın. clickable / combinedClickable / selectable / toggleable
artık boş değer atanabilen birMutableInteractionSource
parametresini kabul ediyor. Null ise ve sağlananIndication
birIndicationNodeFactory
iseIndication
yalnızca gerektiğinde geç oluşturulabilir ve bu da performansı artırır. Kaldırmıyor veMutableInteractionSource
değerini kullanmıyorsanız null değerini iletmeniz önerilir.
API Değişiklikleri
AnchoredDraggable
öğesindeDecayAnimation
özelliğini kullanıma sunduk. Bu değişiklik,AnchoredDraggable
öğesinedecayAnimationSpec
parametresi ekleyerek sabitlerden birine ayarlanırken azalma animasyonu kullanılmasına olanak tanır. Bu değişiklik, her bir spesifikasyonun kullanım alanını anlamaya yardımcı olmak için mevcutanimationSpec
öğesininsnapAnimationSpec
olarak yeniden adlandırılmasını da içerir.BasicTextField2
, deneysel olarak kullanılabilir. 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 önce,BasicTextField
olarak yeniden adlandırılır ve aynı pakete taşınır.BasicTextField2
içinOutputTransformation
API'nin ilk taslağı kullanıma sunuldu. Bu API, eskiBasicTextField
içindeVisualTransformation
kullanım alanlarının çoğunun yerini alır. Yine de henüz tamamlanmadı ve bazı işlevler düzgün çalışmayacaktır. Ancak API'lerin kullanım alanlarınız için kullanılabilirliğiyle ilgili geri bildirimlerinizi öğrenmekten memnuniyet duyarız. (aosp/2708848)- Metne bağlantı ve tıklanabilir öğe eklemeye olanak tanıyan
LinkAnnotation
kullanıma sunuldu. Bağlantılar özelliği henüz tamamlanmadı ve daha fazla API değişikliği yapılacak. - Geliştiricilere Jetpack Compose'da zengin içerik alma yöntemi sağlayan
receiveContent
değiştirici kullanıma sunuldu. receiveContent
, yazılım klavyesi tarafından sağlanan veya Pano'dan yapıştırma işleviyle sağlanan zengin içeriği kabul etmek içinBasicTextField2
ile entegre olur.KeyboardOptions.shouldShowKeyboardOnFocus
, varsayılan olarakBasicTextField
ürününün odakta olan bir yazılım klavyesi isteme davranışını devre dışı bırakmanıza olanak tanır.TextInputService
veLocalTextInputService
desteği sonlandırıldı. Bunun yerine doğrudan platform IME API'leriyle entegrasyon yapmak içinPlatformTextInputModifierNode
kullanın. (aosp/2862698)Indication#rememberUpdatedInstance
desteği sonlandırıldı. Kaçınılmaz bir performans cezası içerir ve diğer optimizasyonları önler. Bunun yerine yeniIndicationNodeFactory
API'yi kullanmalısınız.
Hata Düzeltmeleri
BasicTextField
artıkVisualTransformation
geçildiğinde bazı ofset eşlemelerinin ön doğrulamasını yapacak. Bu, daha sonra yapılan ölçüm veya çizim pasolarında düzeltilemeyen istisnalara yol açan yaygın kodlama hatalarının yakalanmasına yardımcı olur. Besteleme sırasında atarsanız, geliştiricilerin geliştirme sırasında üretim kilitlenmelerini önlemeye yardımcı olmak üzere bu hataları görme olasılığı artar. (I0fd42)- Geçersiz bir dizin (b/316401857 ) için geçersiz bir dizin döndürürseniz
VisualTransformation
bildirmez
Sürüm 1.6
Sürüm 1.6.8
12 Haziran 2024
androidx.compose.foundation:foundation-*:1.6.8
yayınlandı. Sürüm 1.6.8 bu taahhütleri içerir.
Sürüm 1.6.7
1 Mayıs 2024
androidx.compose.foundation:foundation-*:1.6.7
yayınlandı. Sürüm 1.6.7 bu taahhütleri içerir.
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.6
yayınlandı. Sürüm 1.6.6 bu taahhütleri içerir.
Hata Düzeltmeleri
TextField
öğesininenabled
veyareadOnly
özelliklerinin değiştirilmesi, belirli koşullarda kilitlenmeye neden olan hata düzeltildi. (Iae17b)
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.5
yayınlandı. Sürüm 1.6.5 bu taahhütleri içerir.
Hata Düzeltmeleri
- Şu satır/sütundaki yeniden oluşturulması zor hatalara hata ayıklama günlükleri ekler: (b/300280216 ve b/297974033)
Sürüm 1.6.4
20 Mart 2024
androidx.compose.foundation:foundation-*:1.6.4
yayınlandı. Sürüm 1.6.4 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Sürüklemenin ilk karesinde metnin düzen sınırlarının dışına çıkan uzun basma ve ardından sürükleme seçim hareketi artık kilitlenmez. (Icdf90, b/325307463)
Sürüm 1.6.3
6 Mart 2024
androidx.compose.foundation:foundation-*:1.6.3
yayınlandı. Sürüm 1.6.3 bu taahhütleri içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.foundation:foundation-*:1.6.2
yayınlandı. 1.6.2 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Düzgün ş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ı. Sürüm 1.6.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Sınırın üzerine kaydırıldığında kademeli ızgara ölçümü düzelt. (bffc39)
- Büyük boyutlu düzen için kontrol ekleyin. (e74af5)
- 0 boyutlu öğelerin, çapraz ızgaranın başındaki yerleşimini düzeltin. (785f94)
- onRelease geri çağırmasını, onForgotten ile aynı sırayla çağırı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 kaydetmeleri içerir.
1.5.0'dan bu yana önemli değişiklikler
- Önceden tanımlanmış bağlayıcılar arasında sürükleme ve animasyon yapma olanağı sağlayan yeni Değiştirici
Modifier.anchoredDraggable
. Bu değiştirici,Modifier.swipeable
ürününün yerini almak üzere tasarlanmıştır. Uygulamayı nasıl kullanacağınızı veModifier.swipeable
ürününden nasıl geçiş yapacağınızı öğrenmek için taşıma rehberini inceleyin. - Uygulamalar ve bileşenler arasında sürükleyip bırakma işlevi eklendi. Başlamak için
DragAndDropTarget
,Modifier.dragAndDropSource
ve diğer API'lere bakın Modifier.draggable2D
, kolay 2D sürükleme desteğine olanak tanıyan yeni değiştiricidir. Örneğe bakın.- Oluşturmaya yüzeye dayalı bileşenleri eklemeyi kolaylaştırmak için
AndroidExternalSurface
veAndroidEmbeddedExternalSurface
eklendi Pager
vesnapFlingBehaviour
ile ilgili çeşitli API değişiklikleri ve iyileştirmeleri- Çeşitli odak, metin ve inset API'leri kararlı API'lere yükseltildi
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.foundation:foundation-*:1.6.0-rc01
yayınlandı. Sürüm 1.6.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
DragAndDropTarget()
uzantısı 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ı. Sürüm 1.6.0-beta03 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Sonsuz kısıtlamayla ölçülen çok büyük metinleri etkileyen kilitlenme düzeltildi. (I1a7df, b/312294386)
PlatformImeOptions
artık arayüz yerine 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ı. Sürüm 1.6.0-beta02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Yalnızca geçişe yönelik kaydırmadan sonra
canScroll
güncellenmemesi için düzeltme uygulandı. (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ı. Sürüm 1.6.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
DragAndDropTarget
değiştiricisi artık alıcıDragAndDropTarget
öğesini açıkça alıyor ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda içeriyor. Şu anda birDragAndDropModifierNode
için iki fabrika işlevi vardır. Biri aktarımları, diğeri veri aktarmak için kullanılır (I69481)maximumFlingVelocity
, kayan noktalı olarak temsil edilecek şekilde güncellendi. Dokümanlar,maximumFlingVelocity
birliği hakkında daha net olacak şekilde güncellendi. (I8adc7)DragAndDropModifierNode
içindekionDragAndDropStart
fabrikasıacceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumundan kabul edilmesi içindragAndDropTarget
Modifier
alanına eklendi. Bu lambda, uygun bir Sürükleyip bırakma etkinliğiyle ilgileniyorsanızDragAndDropTarget
. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'lar bu şekilde değiştirilmiştir.Sürükleyip bırakma oturumlarından almak üzere
DragAndDropTarget
fabrika işlevi eklendi (Iebf3a)AnchoredDraggable
içindestartDragImmediately
öğesinin gösterilmesi, bu özelliği kullanırken sürükleme hareketlerini algılama kontrolünün elde edilmesini sağlar. Widget'ı bir hedef çapasına göre gösterirken bu özelliği ayarlamak fayda sağlar. Örneğe bakın. (Ie6d13, b/285139987)Temel İpucu API'leri artık
@ExperimentalFoundationApi
(I30b0b) olduDragAndDropModifierNode.drag
türü olarakDragAndDropInfo
kaldırıldı. ArtıktransferData
, dekorasyon boyutu ve sürükleme dekorasyonuDrawScope
lambda için parametreler alınıyor.DragAndDropTarget
, tek bir soyut yöntem yerine belirli sürükle ve bırak etkinlikleri için yöntemler içeriyorDragAndDropModifierNode
ürününün fabrika işlevindekionDragAndDropEvent
, sağlananDragAndDropTarget
parametresinin yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi bildirmek amacıylaonDragAndDropStart
olarak yeniden adlandırıldıDragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
adlı dosyaestablishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)OriginalText
öğesiniTextSubstitution
ile değiştirin. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
adlı dosyarunTextInputSession
olarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere saklanan
SubcomposeLayout
alt öğeleri (ve buna dayalıLazyColumn
gibi düzenler) devre dışı bırakılmış olarak kabul edilir. Bu düğümleri test etmek için yeniassertIsDeactivated()
test API'si kullanıma sunuldu. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)Modifier.magnifier
işlevininclippingEnabled
parametresiclip
olarak yeniden adlandırıldı.Modifier.magnifier
öğesininmagnifierCenter
parametresi, aynı varsayılan davranış korunarak boş değerli hale getirildi. (I6aa66)Material
SwipeToReveal
API'leri (kartlar ve çipler için) artık bu alanları oluşturmak için veri sınıfı tabanlı örnekler yerine alan tabanlı bir API'den (Compose tarafından önerildiği gibi) yararlanıyor. Bu, zarar veren bir değişikliktir. Yeni API'nin nasıl kullanılacağına dair örnekler için lütfen demoyu ve örnek kodu inceleyin. (Ia8943)
Hata Düzeltmeleri
PageSize.Fixed
için eşittir ve karma kodu uygulayın. (Ie3ede, b/300134276)minWidth
değiştiğinde ve ilk ölçüm kısıtlamalarımaxWidth
(Idb19c) değerindenminWidth
az olduğundaBasicText
düzeninin küçülmesine neden olan bir hata düzeltildiArcLine
sürümünde Süpürme Gradyan için oluşturucu desteği ekleyin. (I4d5bb)- Pencere Inset değişikliğiyle ikili program uyumluluk sorununu düzeltme (Iee695)
- Mikro karşılaştırmalar olmadan daha iyi performans gösterdiği için Material3 Çipi/Düğmesi için temel malzeme katmanını kaldırın. (I55555)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha08
yayınlandı. 1.6.0-alpha08 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
Modifier.draggable2D
, kolay 2D sürükleme desteğine olanak tanıyan yeni değiştiricidir. Örneği (Id95f5, b/214412658) inceleyin
API Değişiklikleri
Modifier.dragAndDrawSource
,onDrawDragShadow
lambdasınıdrawDragDecoration
olarak yeniden adlandırdı veDragAndDropInfo
için boyut parametresidragDecorationSize
olarak yeniden adlandırıldı. (Id0e30, b/303904810)BasicTextField2
parametresidecorationBox
parametresidecorator
olarak yeniden adlandırıldı. Ayrıca türü, eşdeğer bir eğlenceli arayüzTextFieldDecorator
ile değiştirildi. (I23c1c)
Hata Düzeltmeleri
onValueChange
gereksinimleriyle ilgiliBasicTextField
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ı. 1.6.0-alpha07 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Özel metin düzenleyiciler için yazma testleri ile ilgili
PlatformTextInputMethodTestOverride
kullanıma sunuldu. (Id159b) GraphicsSurface
,AndroidExternalSurface
(I11680) olarak yeniden adlandırıldı- Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için
DisableNonLinearFontScalingInCompose
geçici işareti eklendi. Temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = true
özelliğini ayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacak. (Ic9486) - Tahsislerden kaçınan
ColorList
veColorSet
koleksiyonları eklendi. (I744bd) - Bu değişiklik,
SnapLayoutInfoProvider
uygulamalarının uygulama ayrıntısı haline getirilenshortSnapVelocityThreshold
özelliğini kaldırır. (I65f6d) - Sürükleyip bırakma oturumlarını başlatmak için
dragAndDropSource
Değiştirici ve sürükle ve bırak oturumlarından almak içindragAndDropTarget
Değiştirici (Ib7828, b/286038936) ekler SnapPositionInLayout
dokümanlarını ve konum yöntemini güncelleyin.SnapPositionInLayout
öğesindeki konum yöntemine içerik dolguları ekleyin. (Id7938, b/300116110)TextFieldState
uygulamasına, 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
öğesinin animasyon göstermemesi 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ı. 1.6.0-alpha06 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
SurfaceView
,TextureView: GraphicsSurface()
veEmbeddedGraphicsSurface()
için yeni Oluşturulabilir sarmalayıcılar. Bu, deneysel bir API olup üzerinde değişiklik ve değişikliklere tabidir. (I9ddb2)Modifier.magnifier()
artık kararlı bir API. Buna, değiştiricide satır içi parametrelerin kullanılması içinMagnifierStyle
'nin kaldırılması dahildir. (I83bec, b/298381260, b/262367109, b/261438887)
API Değişiklikleri
ScrollScope
ürünündeupdateCurrentPage
veupdateTargetPage
kullanıma sunuldu. Bunlar,PagerState.scroll
içinde animasyonlu kaydırmanın özelleştirilmesine olanak tanımak için gerekli olan son öğelerdir. (I9cad5, b/267744105, b/243786897)SnapFlingBehavior
cihazından yoğunluğu kaldır. TümSnapLayoutInfoProvider
uygulamaları yoğunluğa erişmek için zaten bir yol sunuyor. Alıcı kapsamı kaldırılabilir ve böylece hemSnapFlingBehavior
hem deSnapLayoutInfoProviders
daha basit bir şekilde uygulanır. (I153c3)- Kararlı olarak işaretlenen daha fazla değiştirici var. (I56af1, b/298046462)
SnapStepSize
,SnapLayoutInfoProvider
adlı alandan 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, artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirme özelliğini kullanıyor. Yazı tipi ölçeklendirildiğinde > %100'e ayarlanırsa küçük metin boyutu normal olarak büyütülür. Ancak zaten büyük olan metinlerin boyutu biraz artar. Ayrıca, SP'de tanımlanan satır yükseklikleri, %100 ölçeğin istenen yükseklikle orantılı kalması için otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirme En İyi Uygulamaları'na bakın. (I11518)
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ı. 1.6.0-alpha05 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
BasicSecureTextField
için, şu ankiBasicTextField
API'de olduğu gibi sabit bir değer ve bu değeri değiştirmek için bir geri çağırma kabul eden aşırı yüklemeler ekleyin. (Ia4882)- API 33 ve sonraki sürümlerde kayan pencereleri önlemek için
Modifier.preferKeepClear()
öğesini ekleyerek composable olarak işaretleyin. (Ib51d5, b/297260115) ScrollView
veRecyclerView
gibi görünüm bileşenlerindeki salınım hızlarıViewConfiguration.ScaledMaximumFlingVelocity
ile sınırlıdır. Oluşturma işleminde artık,Draggable
için geçerli olan kendimaximumFlingVelocity
sürümü bulunuyor. (Ibf974)- Kullanımdan kaldırılan
Pager
vePagerState
aşırı yüklemeleri kaldırıldı. (Iea07e) BasicTooltipBox
,compose.foundation
paketine eklendi vePlainTooltipBox
ileRichTooltipBox
,TooltipBox
öğeleri yeniPlainTooltip
veRichTooltip
composable'larla kullanılacak ş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ı. 1.6.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için
ReusableComposition
arayüzü ekleyin. (I812d1, b/252846775) Modifier.focusGroup
, kararlı API'lere yükseltildi. (I7ffa3)BasicTextField2
için, şu ankiBasicTextField
API'de olduğu gibi sabit bir değer ve bu değeri değiştirmek için bir geri çağırma kabul eden aşırı yüklemeler ekleyin. (I3f2b8)GridItemSpan::currentLineSpan
artık kararlı bir API. (Icc29c)contentDescription
kabul eden tuval artık kararlı bir API'dir. (Ib3d29)- Ölçümden sonra
ScrollState
kullanan bileşeninviewPort
boyutunu öğrenmenin bir yolu olanviewportSize
özelliğiScrollState
için kullanıma sunuldu. (I8b85a, b/283102682) - Çağrı Cihazı'ndaki önceden getirme işleminin Görünümler'deki davranışla eşleşmemesine neden olan sorun düzeltildi. (I93352, b/289088847)
Modifier.consumeWindowInsets(PaddingValues)
artık kararlı durumda.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ı. 1.6.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
LazyLayout
aşırı yüklemesi eklendi. Önceden olduğu gibi basit bir nesne değil,LazyLayoutItemProvider
lambda'sını kabul ediyor. Önceki aşırı yükleme desteği sonlandırıldı. (I42a5a)privateImeOptions
(Idb772) yapılandırması için destek eklendi
Hata Düzeltmeleri
readOnly
doğru değerine ayarlandığında klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. OdaklanıldığındareadOnly
doğru değerinden yanlış değerine ayarlandığında klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02
yayınlandı. 1.6.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
PagerLayoutInfo
,Pager
ürününde önlem aldıktan sonra toplanan bilgilerle kullanıma sunuldu. Ayrıca,Pager
ayında ölçülen tek bir Sayfa ile ilgili bilgiler olanPageInfo
kullanıma sunuldu. (Iad003, b/283098900)- composable'lara izin verilen girişleri belirtmek için ek ek açıklamalar (I51109)
- Testlerde odak isteğinde bulunmanın daha kolay ve keşfedilebilir bir yolu olarak
SemanticsNodeInteraction.requestFocus
eklendi. (Ie8722) PlatformTextInput*
API tamamen yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)SoftwareKeyboardController
veLocalSoftwareKeyboardController
artık deneme aşamasında değil.LocalSoftwareKeyboardController
artık uygun birCompositionLocal
. (I4c364)Modifier.transformable
, izin verilecek veya izin vermeyecek kaydırma yönünün belirlenmesine yardımcı olmak için artıkcanPan
parametresinde yatay kaydırma deltası sağlıyor. (I692aa, b/266829800)consumeWindowInsets
değiştiricisini,AbstractComposeView
üst sınıfını genişletmek için 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ı. 1.6.0-alpha01 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Foundation'da yeni bir
AnchoredDraggable
API kullanıma sunuldu. Kalıcı alt sayfalar gibi ayrı durumlar arasında sürüklenebilecek bileşenleri oluşturmak için kullanılabilir. Bu API, Material'ınSwipeable
API'sinin yerini alıyor. (I4a2ed)
API Değişiklikleri
InputConnection#requestCursorUpdates
desteği (I0c69b)- Özel animasyon özelliklerine izin vermek için
scrollAnimationSpec
kullanıma sunuldu.BringIntoViewCalculator
ayarıBringIntoViewScroller
olarak güncellendi. (Idb741) - Yüklenemeyen öğe yolunun açıklamasıyla bit eşlem öğeleri yüklenmeye çalışıldığında, yayınlanan gönderilebilir öğeleri sarmalamak için
ResourceResolutionException
türünü ekleyin. (I19f44, b/230166331, b/278424788) - Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
Scrollable
gibi bileşenlerinbringIntoView
isteklerine yanıt verme biçimini özelleştirmek için kullanılabilecek birBringIntoViewCalculator
API kullanıma sunuldu. Kaydırılabilir öğenin aşırı yüklenmesi, isteğe bağlı olarakBringIntoViewCalculator
öğesinin bir örneğini kabul edecek şekilde değiştirildi. (Iaf5af)
Hata Düzeltmeleri
- Değişebilir durum /
Animatable
oluşturmaya yönelik lint kontrollerine benzer şekilde, kompozisyondaMutableInteractionSource
oluşturuyorsanız uyarlanması için lint denetimi eklendi. (I5daae) - Fareyle seçim yapma desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişletilir ve karakter bazında daralır. (Ic0c6c, b/180639271)
- Özel
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 kaydetmeleri 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ı. Sürüm 1.5.2 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Anlamların geçersiz kılındığı belirli durumlarda kilitlenmelere neden olan metin hatası 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 kaydetmeleri içerir.
Hata Düzeltmeleri
readOnly
doğru değerine ayarlandığında klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. OdaklanıldığındareadOnly
doğru değerinden yanlış değerine ayarlandığında klavyenin gösterilmemesi de düzeltildi. (I34a19, b/246909589)
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.foundation:foundation-*:1.5.0
yayınlandı. 1.5.0 sürümü bu kaydetmeleri içerir.
1.4.0'dan bu yana önemli değişiklikler
Modifier.clickable
,Modifier.draggable
,Modifier.scrollable
, düzen değiştirici gibi birçok temel değiştirici,Modifier.Node
API'ye taşındı ve böylece ilk bileşimin getirdiği ek yük azaltıldı.- Çağrı cihazları kararlılığında iyileştirmeler. Birçok hata giderildi.
pageCount
parametresi 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ı. Sürüm 1.5.0-rc01 bu kaydetmeleri 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 inceleme mevcuttur. Kodun lint kimliğiAutoboxingStateCreation
. Daha önce bu inceleme tüm projeler için varsayılan olarak etkindi. Bu uyarıyı Android Studio düzenleyicisinde ve projenizin lint çıkışlarında görmek istiyorsanız modülünüzünbuild.gradle
veyabuild.gradle.kts
yapılandırmasında gösterildiği gibi (I34f7e)warning "AutoboxingStateCreation"
öğesini tanımlayarak bilgi önem derecesini bilgi amaçlı yerine 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ı. Sürüm 1.5.0-beta03 bu kaydetmeleri içerir.
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.foundation:foundation-*:1.5.0-beta02
yayınlandı. Sürüm 1.5.0-beta02 bu kaydetmeleri içerir.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.foundation:foundation-*:1.5.0-beta01
yayınlandı. Sürüm 1.5.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
- Nabız 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
- Tembel liste/ızgara vb. sırasında ayırmaları azaltın. ölçümler (Iaf9e2)
- Anlık görüntüler uygulanırken daha az ayırmalar (I65c09)
- Yay animasyonlarından (Ie9431) ayırmalar kaldırıldı
TextLayout
adlı reklam grubundan (I0fd11) tahsis kaldırıldı- İşaretçi hızı izlemedeki (I26bae) birden fazla ayırma kaldırıldı
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
serbest bırakıldı. 1.5.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Tam parametre listesiyle optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) LazyGridState
ile kullanılabilecek birSnapLayoutInfoProvider
tanıtın. (I92134, b/269237141, b/260914964)- Deneysel
Modifier.animateItemPlacement()
, kademeli ızgara öğe kapsamı için eklendi. Otomasyon konumu değişimini/animasyonları yeniden sıralamak için bunu öğelere uygulayabilirsiniz. (I4b62d, b/257034719) GridCells.FixedSize
uygulamasını kararlı sürüme yükseltin.FixedSize
, her bir hücrenin çapraz eksende tam boyut aldığı birLazyGrid
tanımlar ve kalan boşluk çapraz eksende dağıtılır. (I8542f)- Çağrı Cihazı için
PagerScope
alıcı kapsamı ve belirli bir sayfa ofsetinin hesaplanmasında kullanılan bir yardımcı program işlevi tanıtıldı. (If2577) - Hızlıca kaydırma davranışı oluştururken
snapPositionalThreshold
özelliğini tanıtın. Çağrı Cihazı'nda kısa yapışkanlık için konum eşiği belirtmek üzere bu parametreyi kullanın. (If8f7f) SnapLayoutInfoProvider.calculateSnappingOffsetBounds
,calculateSnappingOffset
ile değiştirildi. Bu yeni yöntemde, tutturulacak bir sonraki ofseti istememiz yeterlidir. Sınırların hesaplanması, uygulama düzeyinde yapılmalıdır, çünkü bu işlem, tutturma işleminin nasıl gerçekleşmesi gerektiğine bağlı olarak farklılık gösterebilir. (I923a4)LazyStaggeredGrid
API kararlı sürüme yükseltildi. (I633a5)pageCount
kullanıcısınıHorizontal/VerticalPager
sitesinden kaldır. Bu bilgi, eyalet oluşturulurken sağlanmalıdır.PagerState
verememberPagerState
,pageCount
hükümlerini kabul edecek şekilde güncellendi. (Ieb52d, b/266965072)pageCount
kullanıcısınıHorizontal/VerticalPager
sitesinden kaldır. Bu bilgi, eyalet oluşturulurken sağlanmalıdır.PagerState
verememberPagerState
,pageCount
hükümlerini kabul edecek şekilde güncellendi. (Ifa3cb, b/266965072)- Çağrı Cihazı
SnapFlingBehavior
uygulamasındashortSnapVelocityThreshold
özelliğini tanıtın. (I7379e, b/275579012) FlowRowScope
veFlowColumnScope
ekler. (I54fe2)
Hata Düzeltmeleri
- Kısıtlamalar
minWidth
veminHeight
olduğunda artık kilitlenmediğinde Metinde anlamı almak için yapılan çağrılar. (Ibd072) Dialog
composable tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmemesine neden olan regresyon düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.foundation:foundation:1.5.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha03
serbest bırakıldı. 1.5.0-alpha03 sürümü bu kaydetmeleri içerir.
Bu sürümde, Compose için yeni metin oluşturma yığını etkinleştirilir. Yeni grup, performans optimize edilmiştir ve görünür herhangi bir değişiklik görmemeniz gerekir.
Oluşturulan metinde değişiklikler görürseniz davranış farkını onaylamak için NewTextRendering1_5 = false
öğesini ayarlayarak hata ayıklayabilirsiniz. Bunu ayarladığınızda yeniden beste yapmaya zorlanırsınız. 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
öğesini satır içi yapın. (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
serbest bırakıldı. 1.5.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
LazyGrid
hücrelerinde sabit boyutlu hücreler için destek eklendi ve bu hücreler çapraz eksen düzenlemesi ile düzenlendi. (I83ed9, b/235121277, b/267942510)LazyStaggeredGrid
bölgesinde sabit boyutlu şeritler için destek eklendi ve bunların çapraz eksen düzenlemesi ile düzenlendi. (I7d519)AnnotatedString
saniye içindekiUrlAnnotation
öğeleri artıkTalkBack
gibi erişilebilirlik hizmetleriyle açılabilir. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursor
semantiği işlemi eklendi. (I11ed5) - Metinle ilgili test işlemleri (ör.
performTextInput
) artık alanı tıklamak yerine anlamsal işlemi kullanarak doğrudan odaklanma isteğinde bulunacak. (I6ed05) FlowRow
içindeverticalArrangement
veFlowColumn
içindehorizontalArrangement
kullanarak çapraz eksen aralığı/düzenleme desteği ekler. AyrıcaFlowRow/FlowColumn
içinde üst düzeyverticalAlignment
vehorizontalAlignment
kaldırılır. Geliştiriciler bunun yerineModifier.align
kullanabilir. Bu daverticalAlignment
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
serbest bırakıldı. 1.5.0-alpha01 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Metin ve
BasicText
, yeni değiştirici sistemi kullanacak şekilde yeniden düzenlendi. Bu, birçok durumda performansta önemli bir artış sağlar. Hiçbir değişiklik görünmemelidir. (If1d17, b/246961435) - Metin düzenleyici düğümlerinde IME işlemini çağırmak için
PerformImeAction
anlamsal işlemi eklendi. (Ic606f, b/269633506)
Hata Düzeltmeleri
Modifier.hoverable
dahili öğeleri güncellendi.hoverable
değiştiricisi, yalnızca etkinleştirilirse inceleyicide 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
hiçbir değişiklik yapılmadan yayınlandı (yalnızca sürüm yükseltmesi).
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
serbest bırakıldı. Sürüm 1.4.2 bu kaydetmeleri 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
serbest bırakıldı. Sürüm 1.4.1 bu kaydetmeleri 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
serbest bırakıldı. 1.4.0 sürümü bu kaydetmeleri içerir.
1.3.0'dan bu yana önemli değişiklikler
Text
veTextField
özelliklerine Emoji uyumluluğu entegrasyonu ile alt düzey Paragraf eklendi. Emojicompat yapılandırıldığında varsayılan olarak etkindir.EmojiCompat
,PlatformParagraphStyle
kullanılarak belirli bir metinde yapılandırılabilir.LazyStaggeredGrid
(I28252) ürününe tam hat aralığı desteği eklendi- Deneme amaçlı
onHover
,ClickableText
(I6938f) hesabına ekleniyor runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test bileşimi ve bestedeki tümLaunchedEffect
verememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)FlowRow
veFlowColumn
artık@ExperimentalFoundationApi
olarak sunuluyor. Bu sayede, ana eksende yeterli alan yoksa yeni bir satıra bölünen bileşenlerin satır ve sütun tabanlı düzeninin daha esnek olmasını sağlıyorlar. (I3a7b2)Modifier.basicMarquee()
, kayan 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
serbest bırakıldı. Sürüm 1.4.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
- Doğrudan platform API'lerine yönlendiren özel metin girişi uygulamaları oluşturmak için yeni alt düzey
PlatformTextInputAdapter
API kullanıma sunuldu. (I58df4) LazyStaggeredGrid
öğesine ters düzen desteği ekleyin. (I3ef4a)
Hata Düzeltmeleri
BasicTextField
öğesininSetText
anlamsal işlemi artık metin arabelleğini, IME güncellemeleriyle aynı kod yolunu ve test işlevleriyle (ör.performTextReplacement
) kullanarak günceller.performTextClearance
,performTextReplacement
veperformTextSelection
metin testi işlevlerinde artıkSemanticsActions
kullanılıyor. (I0807d, b/269633168, b/269624358)
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.foundation:foundation:1.4.0-beta02
ve androidx.compose.foundation:foundation-layout:1.4.0-beta02
serbest bırakıldı. Sürüm 1.4.0-beta02 bu kaydetmeleri içerir.
API Değişiklikleri
Layout
yeniden kullanılacağı zaman (örneğin,LazyColumn
öğesi olarak) destek kaydının düzgün şekilde ele alınması için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni birModifier.Node.onReset()
geri çağırması eklendi. Odaklanma durumunu doğru şekilde sıfırlamak içinFocusTargetModifierNode
sorunu düzeltildi. (I65495, b/265201972)- Tuval'de metin çizerken farklı karıştırma algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508) modifierElementOf()
API kaldırıldı. Lütfen bunun yerine doğrudanModifierNodeElement
üzerinden iletişim kurun. (Ie6d21)
Hata Düzeltmeleri
- Seçim tutamaçları ayarlandığında artık kısmi karakter seçilemez. (Idedd1)
- Boş
TextField
üzerinde ctrl+backspace olduğunda 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
serbest bırakıldı. Sürüm 1.4.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
- 1.3 sürümünden itibaren,
Text
veTextField
özelliklerine Emoji uyumluluğu entegrasyonu ile alt düzey Paragraf eklendi. Emojicompat yapılandırıldığında varsayılan olarak etkindir. EmojiCompat
,PlatformParagraphStyle
kullanılarak belirli bir metinde yapılandırılabilir.
API Değişiklikleri
- Oluşturulan ancak yine de etkin olması gereken öğeleri korumak için
LazyLayouts
tamamında kullanılanPinnableContainer
API'nin genel uygulaması eklendi. (If45a4) PinnableContainer.PinnedHandle.unpin()
,release()
(I4667a) olarak yeniden adlandırıldı
Harici Katkı
mainAxisItemSpacing
özelliğiLazyListLayoutInfo
,LazyGridLayoutInfo
veLazyStaggeredGridItemInfo
özelliklerine 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
serbest bırakıldı. 1.4.0-alpha05 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
LazyStaggeredGrid
ürününe tam hat aralığı desteği eklendi (I28252)- Deneme amaçlı
onHover
,ClickableText
hedefine 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 bileşimi ve bestedeki tümLaunchedEffect
verememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)
API Değişiklikleri
OverscrollEffect
öncesi/sonrası API'lerini birleşik "decorator"da birleştirirapplyToScroll
veapplyToFling
işlevleri. Yeni API şekli ile fazla kaydırma efektinin nasıl uygulanacağına ilişkin örnekler için dokümanlardaki güncellenmiş örneklere bakın. (I8a9c4, b/255554340)- Satır içi/kullanımdan kaldırılan gizli işlevlerin diğer tür/boşluk özellikleri (I24f91)
TextStyle
kapsamındakiLineBreak
veHyphens
API'leri kararlı sürüme geçirildi. (Ic1e1d)
Hata Düzeltmeleri
- Artık animasyonlar devre dışı bırakılsa bile metin alanlarındaki imleç yanıp sönmeye devam edecek. (I95e70, b/265177763)
Modifier.basicMarquee
artık sistem ayarlarında animasyonlar devre dışı bırakıldığında bile animasyon kullanıyor. (I23389, b/262298306, b/265177763)
Harici Katkı
TextInputSession
veTextInputService
uygulamalarındakinotifyFocusedRect
yöntemleri tekrar kullanımdan kaldırılmadı. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.foundation:foundation:1.4.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.4.0-alpha04
serbest bırakıldı. 1.4.0-alpha04 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
FlowRow
veFlowColumn
artık@ExperimentalFoundationApi
olarak sunuluyor. Bu sayede, ana eksende yeterli alan yoksa yeni bir satıra bölünen bileşenlerin satır ve sütun tabanlı düzeninin daha esnek olmasını sağlıyorlar. (I3a7b2)Modifier.basicMarquee()
, kayan noktalı çerçeve efektiyle içerik görüntülemek için deneysel olarak kullanılabilir. (I2df44, b/139321650)
API Değişiklikleri
FocusRequesterModifier
FocusRequesterNode
variationSettings
özelliğine sahipAndroidFont
oluşturucu artık kararlı bir API ve yeni yazı tipi açıklayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)- Geçerli öğenin sabitlenmesini sağlayan, yerel bir beste aracılığıyla geç listeler tarafından dağıtılan
PinnableContainer
API kullanıma sunuldu. Yani görünümden uzağa kaydırıldığında bu tür öğeler atılmaz. ÖrneğinModifier.focusable()
, mevcut odaklanılan öğ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 yanıt verme biçimini yeniden yazıldı. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - Desteği sonlandırılan gizli işlevlerin (Ibf7b0) daha fazla dönüş türü null değeri
- Metni
Static(default)
veya Animasyonlu olacak şekilde tanımlamak içinTextStyle
uygulamasına deneyselTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
öğesini kullanın. (I24dd7) - Android platformundaki odaklanma gezinme davranışını düzeltmek için
TextFieldFocusModifier
ekleyin (I00303) drawText
içindekimaxSize: IntSize
bağımsız değişkeni, diğerDrawScope
işlevleriyle satır içi olacak şekildesize: Size
ile değiştirildi.size
varsayılan olarakSize.Unspecified
değerine ayarlanır. Bu, önceki varsayılan davranışı değiştirmeyecektir. (Icd27d)
Hata Düzeltmeleri
- Daha doğal bir his için
SnapFlingBehaviour
uygulamasında fotoğraf çekme fiziğinde düzenlemeler yapıldı.
Bilinen Sorun
androidx.compose.foundation:1.4.0-alpha03
sürümündenandroidx.compose.foundation:1.4.0-alpha04
sürümüne güncellerkenjava.lang.NoSuchFieldError
hatasıyla karşılaşabilirsiniz. Sorun ilk olarak burada bildirilmiştir. Bir düzeltme gönderildi. Bir sonraki Oluştur güncellemesinde kullanıma sunulacak. 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ü 1.4.0-alpha03 sürümüne geçirin.
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
serbest bırakıldı. 1.4.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Oluşturma kuralının kullanıldığı kullanıcı arayüzü testlerinde,
withFrameNanos
geri çağırması sırasında devam ettirilen devamlılıklar tüm çerçeve geri çağırmalarının çalıştırılması tamamlanana kadar gönderilmez. Bu, normal şekilde çalışırken ileti oluşturma davranışıyla aynıdır. Ancak, eski davranışa dayalı testler başarısız olabilir. Bu durum yalnızca doğrudanwithFrameNanos
veyawithFrameMillis
çağrısı yapan kodu etkiler. Geri çağırmanın dışında, geri çağırmaların içine taşınması gerekebilecek işlevlere aktarılmış bir mantık içerir. Örnekler için bu CL'de animasyon testi değişikliklerine bakın. withFrameNanos
geri çağırma işleminden sonra, arayanların devam ettirilmesinden önce kod çalıştırmak içinTestMonotonicFrameClock
oluşturucusuna ve fabrika işlevine isteğe bağlıonPerformTraversals: (Long) -> Unit
parametresi eklendi eş yordamlar. (Idb413, b/254115946, b/222093277, b/255802670)- Sayfa erişilebilirlik işlemlerini tanıtın:
PageUp
,PageDown
,PageLeft
,PageRight
. Bunların yalnızca API 29'da kullanılabildiğini unutmayın. (Ida4ab) - composable'ları Çağrı Cihazı biçiminde göstermenin bir yolu olan
HorizontalPager
veVerticalPager
özelliklerini tanıtın. Çağrı Cihazları'nı ve Çağrı Cihazı'nın mevcut durumu hakkındaki sorgu bilgilerini kontrol etmek içinPagerState
kullanıma sunuldu. Çağrı Cihazı sayfasının boyutunu kontrol etmenin bir yolu olanPageSize
kullanıma sunuldu. Bu ayrıca, Çağrı Cihazları gibi bir bant oluşturmak için kullanılabilir. Çağrı Cihazı'nın hızlı kaydırma davranışında tutturma işleminin nasıl çalışacağını kontrol etmenin bir yolu olanPagerSnapDistance
kullanıma sunuldu. (I01120) - Kısa süreli hamlenin nerede sona ereceğini anlamanıza yardımcı olmak için
SnapFlingBehavior.performFling
cihazında aşırı yüklenmeye yol açtı. (I569f6) OverscrollEffect#isEnabled
kaldırıldı. Bu işareti hatırlamak ve ayarlamak yerine, fazla kaydırmanın gösterilmesini istemediğiniz durumlarda (örneğin,ScrollableState#canScrollForward/backward
her ikisi de yanlış değerini döndürürse) etkinlikleri fazla kaydırma efektine göndermeyin. (I1a4b0, b/255554340, b/255557085)- Bir
ScrollableState
öğesinin iki yönde (aralığının minimum / maksimum değerlerinde olup olmadığını) kaydırmak için yeterli alan olup olmadığını sorgulamak amacıylaScrollableState#canScrollForward
veScrollableState#canScrollBackward
eklendi. Bu, mevcutScrollableState
uygulamalarıyla geriye dönük uyumluluk için varsayılan olarak doğru değerine ayarlanır. Tüketiciler, kullanıcıya kaydırmak için hâlâ alan olduğuna dair bir işaret göstermek için bunu kullanabilir. Gereksiz iş yükünü azaltmak için bu özellik, belirli bir yönde kaydırmaya yer olmayan deltanınScrollableStates
hedefine gönderilmesini önlemek amacıyla da kullanılabilir. (Idf1a0, b/255557085) - Üst öğelerin kaydırma bilgilerini sorgulamak için Değiştirici API eklendi. (I2ba9d, b/203141462)
- Hareketler kaydırma etkinliklerine dönüştüğünde, basma etkileşimlerini doğru şekilde ertelemek için
Clickable
ürününde kullanılır. Clickables
öğesinin,Scrollable ViewGroup
içinde kullanıldığında dalgaları doğru şekilde geciktirmemesi düzeltildi.- Hareketlerin kaydırma etkinliklerine dönüşmesi durumunda basmaları doğru şekilde geciktirmek için Çekmeceler ve E-Tablolar güncellendi.
snapStepSize
adlandırmayıSnapLayoutInfoProvider
alanındaki diğer yöntemlerle tutarlı olacak şekilde güncelleyin. (Ife67c)Compose
öğesineEmojiCompat
eklendi (Ibf6f9, b/139326806)consumedWindowInsets()
öğesiconsumeWindowInsets()
vewithConsumedWindowInsets()
olarak yeniden adlandırılıponConsumedWindowInsetsChanged()
olarak değiştirildi ve Değiştiriciler herkese açık hale getirildi. (Ie44e1)
Hata Düzeltmeleri
Modifier.animateItemPlacement()
ve Tembel ızgaralar ile kilitlenme düzeltildi. Yeni öğe sayısının önceki öğe sayısından daha az olduğu bazı durumlarda bu hata oluşuyordu. (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
serbest bırakıldı. 1.4.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Daha fazla esneklik için
awaitFirstDown
vewaitForUpOrCancellation
artıkPointerEventPass
kabul ediyor. (I7579a, b/212091796) beyondBoundCount
API'sini Lazy* API'lerinden (I12197) geri döndür- Görüntü alanı öğelerini oluşturmak ve bunların dışına yerleştirmek için Tembel API'lerde parametre eklendi (I69e89, b/172029355)
BasicText
veBasicTextField
bölümlerineminLines
parametresi eklendi. Bu composable'ların minimum yüksekliğinin ne kadarının satır sayısı (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
serbest bırakıldı. 1.4.0-alpha01 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Hareket algılayıcıları için yeni bir yöntem (
awaitEachGesture()
) eklendi.forEachGesture()
işlevine benzer, ancak döngü hareketleri tamamenAwaitPointerEventScope
içinde çalışır. Böylece etkinlikler, yinelemeler arasında kaybolamaz. - Hareketler arasında etkinliklerin kaybolmasına izin verdiğinden
forEachGesture()
desteği,awaitEachGesture()
ile kullanımdan kaldırıldı. (Iffc3f, b/251260206) - Animasyon ilerlemesini 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
serbest bırakıldı. Sürüm 1.3.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
BeyondBoundsLayout
ürünündeki performans sorununu düzeltin (aosp/2255266)ContentInViewModifier
, eklenmediği 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
serbest bırakıldı. 1.3.0 sürümü bu kaydetmeleri içerir.
1.2.0'dan bu yana önemli değişiklikler
LazyVerticalStaggeredGrid
veLazyHorizontalStaggeredGrid
için deneysel sürümler kullanıma sunuldu.SnapFlingBehavior
,rememberSnapFlingBehavior
ve ilgili diğer API'ler deneysel olarak eklendi.Modifier.clickable
,Modifier.toggleable
veModifier.selectable
, klavye veya uzaktan kumandadaki d-pad ile tıklandığında artık 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
serbest bırakıldı. Sürüm 1.3.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
- Değerin azalması için yeterli hızla salınma hızı olmadığında yaklaşım adımında kullanılan
lowVelocityAnimationSpec
özelliği tanıtıldı. (Iaeb27) - Metinde otomatik tirelemeyi 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
serbest bırakıldı. Sürüm 1.3.0-beta03 bu kaydetmeleri içerir.
API Değişiklikleri
- Metinde satır sonunu özelleştirme seçenekleri ekleyin. (I86907)
BringIntoViewResponder
kullanıcıları artık isteği işlerken en güncel sınırlarını alabiliyor. (If86a5, b/241591211)- Deneysel
Staggered Grid
(I10b82) ile öğeler arasındaki boşluklara yönelik destek eklendi - Deneysel
Staggered Grid
'e (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) Modifier.withConsumedWindowInsets()
,windowInsetsPadding
dışında kullanılmak üzereWindowInsets
tüketimi için eklendi.WindowInsets
adlı öğeyi yeniden düzenlemeden kolayca değiştirmek 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
serbest bırakıldı. Sürüm 1.3.0-beta02 bu kaydetmeleri içerir.
API Değişiklikleri
- Deneysel
StaggeredGrid
(Ia48be) ilk sürümü FocusDirection.In
veFocusDirection.Out
,FocusDirection.Enter
veFocusDirection.Exit
olarak yeniden adlandırıldı (Ia4262, b/183746982)LazyLists
içinde tutturmayı etkinleştirmenin hızlı bir yolunu sağlayan birrememberSnapFlingBehavior
aşırı yüklemesi eklendi. (Ifb48a)snapFlingBehavior
fabrikası, betonSnapFlingBehavior
sınıfıyla değiştirildi. Dp<->Px dönüşümlerini API kullanıcıları için kolaylaştırmak amacıylaSnapLayoutInfoProvider
yöntemleri Yoğunluk olarak ayarlandı. (I54a11)LazyLayoutMeasureScope.measure
öğesini, döndürülen değerin istenen sabitliğini vurgulayarak yerleştirilebilir öğelerin listesini döndürecek şekilde güncelleyin. (I48b7c)LazyLists
için ekFlingBehavior
özelliğini etkinleştirmek üzere kullanılabilecek birSnapLayoutInfoProvider
örneği oluşturmak içinLazyListState
kullananSnapLayoutInfoProvider
kullanıma sunuldu. (I2dd10)
Hata Düzeltmeleri
AwaitPointerEventScope#awaitLongPressOrCancellation
öğesini, diğer bekleme işlevleriyle (I646e6) eşleşecek şekilde yeniden düzenler
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
serbest bırakıldı. Sürüm 1.3.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
pointerPosition
,OverscrollEffect
öğesinden kaldırıldı. İşaretçi konumunu önemseyen efektler, bunun yerine geçerli işaretçi konumunu almak içineffectModifier
üzerindeModifier.pointerInput { }
özelliğini kullanabilir. (I9f606, b/241239306)- Daha karmaşık hareket algılama için ek yapı taşı olarak
AwaitPointerEventScope#awaitLongPressOrCancellation
kullanıma sunuldu (I04374, b/181577176) - Tembel listelerde tutturmayı etkinleştirmek için
lazyListSnapLayoutInfoProvider
kullanıma sunuldu. (I3ecdf) - Liste tutturmayı sağlayan bir hızlı kaydırma davranışı olan
SnapFlingBehavior
kullanıma sunuldu. Tutturma düzeniniz hakkında bilgi 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
serbest bırakıldı. 1.3.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Kaynak yazı tipleri artık yazı tipi varyasyonu ayarlarını destekliyor (API 26+). (I900dd, b/143703328)
DeviceFontFamilyNameFont
ürününde değişken yazı tipi desteği (Ic1279, b/143703328)- Deneysel ek açıklama
PlatformTextStyle
veLineHeightStyle
reklam grubundan 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)- Geç düzenler arasında öğe sağlayıcı mantığını paylaşmak için deneysel API'ler kullanın. (Ic891c)
ScrollableDefaults.reverseDirection()
artık deneysel değil. (Iba646)SemanticsModifier.id
desteği sonlandırıldı ve anlamsal kimlikLayoutInfo.semanticsId
değerine taşındı. (Iac808, b/203559524)checkScrollableContainerConstraints()
artık deneysel değil. (I2c290)Modifier.clipScrollableContainer()
artık deneysel değil. (Ia2b44)TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Bunun yerine lütfen uygulama kodundaSoftwareKeyboardController
ve IME yönetimi kodundaTextInputSession
kullanın. (I14e4c, b/183448615)
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
serbest bırakıldı. 1.3.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
Canvas
vedrawBehind
gibiDrawScope
üzerinde çalışan composable'larda ve değiştiricilerde birden fazla stilde metin çizme imkanı sağlamak içinDrawScope
eklentisinedrawText
uzantı işlevi eklendi. (I16a62, b/190787898)
Hata Düzeltmeleri
- Odaklanılmış bir metin alanı devre dışı bırakıldığında ekran klavyesi artık gizlenir. (I6e3e4, b/237308379)
- Hız İzleyici'ye
InputEventChange
etkinliklerini eklerken artık konumlar yerine deltaları dikkate alırız. Böylece hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanmasını garanti ederiz (Icea9d, b/216582726, b/223440806, b/227709803). - Kaydırılabilir bir öğenin odaklandığı bir alt öğe olduğunda, boyutu küçültüldüğünde (boyut animasyonlu olsa bile) odaklanılan alt öğeyi ekranda düzgün şekilde kaydıracak. (I80867, b/230756508, b/220119990)
- Seçim etkinken
TextField
öğesinin temizlenip yeniden doldurulmasına neden olan 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
serbest bırakıldı. 1.3.0-alpha01 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
AnnotatedString
içindeTalkBack
bağlantı desteğini desteklemek içinUrlAnnotation
ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)
Hata Düzeltmeleri
BasicTextField
cursorBrush
artık imleç zamanlayıcısı yeniden başlatılmadan animasyonlu olabilir. (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
serbest bırakıldı. Sürüm 1.2.1 bu kaydetmeleri 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
serbest bırakıldı. 1.2.0 sürümü bu kaydetmeleri içerir.
1.1.0'dan bu yana önemli değişiklikler
LazyVerticalGrid
veLazyHorizontalGrid
şu anda kararlı.- Artık Tembel listeler ve ızgaralardaki öğeler için bir içerik türü belirtebilirsiniz. Bu, bileşenlerin öğeleri daha verimli bir şekilde yeniden kullanmasına olanak tanır.
- Tembel 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 var. LazyLayout
adında yeni bir deneysel API eklendi. Bu, geç listeleri ve tabloları desteklemek için dahili olarak kullandığımız API'dir.OverscrollEffect
API deneysel olarak kullanıma sunuldu. Özel fazla kaydırma efektlerinin yanı sıra özel kaydırılabilir kapsayıcılara standart bir platform ekleyebilirsiniz.- Görünümler ve oluşturma kaydırıcıları arasında birlikte çalışabilirlik sağlamak için iç içe yerleştirilmiş kaydırma birlikte çalışabilirlik API'leri kullanıma sunulmuştur.
- Tüm kaydırma kapsayıcılarına fare ve dokunmatik yüzey kaydırması 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
serbest bırakıldı. Sürüm 1.2.0-rc03 bu kaydetmeleri içerir.
- 1.2.0-rc02'den bu yana değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc02
ve androidx.compose.foundation:foundation-layout:1.2.0-rc02
serbest bırakıldı. Sürüm 1.2.0-rc02 bu kaydetmeleri 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
serbest bırakıldı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
- Özel fazla kaydırma efektlerinin yanı sıra bunu kabul eden
Modifier.scrollable
aşırı yüklemelere olanak tanımak için deneysel birOverscrollEffect
kullanıma sunulmuştur. - Deneysel
LocalOverScrollConfiguration
,foundation.gesture
klasöründen temel paketine taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) - Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturulmuştur.
- Kaydırılabilir kapsayıcıları iç içe yerleştiremediğ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 bunu kullanabilirsiniz. (Id6fab, b/233352497) - Desteği sonlandırılmış
LazyVerticalGrid
,androidx.compose.foundation.lazy
paketinden kaldırıldı. Yeni kararlı APIandroidx.compose.foundation.lazy.grid
(I73c76, b/225192009) konumunda 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
serbest bırakıldı. Sürüm 1.2.0-beta03 bu kaydetmeleri içerir.
API Değişiklikleri
- Yeni deneme amaçlı
IntervalList
veMutableIntervalList
eklendi. Bazı değerler listesinin birden çok aralıkla temsil edilmesine olanak tanır. Bu,LazyColumn
tarafından kullanılana benzer bir şekilde kendi dsl'inizi tanımlamak istediğinizde kullanışlıdır. Bu DSL'de liste öğeleri birden çok öğe/öğe çağrısıyla tanımlanabilir. (I2d05e, b/228580728)
Hata Düzeltmeleri
WindowInsets.ime
ile ilgili dokümanlarda, API 23'e kadar olanime
eklerin raporlandığı, ancak yalnızca 30 ve sonraki sürümlerde animasyon görüldüğü belirtiliyor. (Ia7fc0, b/230756508)- İmleç bir metin alanının sonundayken ileri sil tuşuna basmak artık kilitlenmez.
DeleteSurroundingTextCommand
veDeleteSurroundingTextInCodePointsCommand
artık oluşturucu bağımsız değişkenlerinin negatif olmamasını gerektiriyor. (Ica8e6, b/199919707)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.foundation:foundation:1.2.0-beta02
ve androidx.compose.foundation:foundation-layout:1.2.0-beta02
serbest bırakıldı. Sürüm 1.2.0-beta02 bu kaydetmeleri içerir.
- Metin'in düzen boyutunu değiştirmeyen veya
TextField
ürününün daha önce yeniden çizilmediği indirilebilir yazı tipi çözünürlüğü, eski yazı tipi görüntüsüne neden oluyor. Bu hata düzeltmesi, metin düzeninin her zaman yeniden çizimi tetiklemesini (b/229727404) sağlar. (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
serbest bırakıldı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
- Bu, 1.2'nin ilk beta sürümüdür.
API Değişiklikleri
- Kullanılabilecek deneme amaçlı
BeyondBoundsInterval
eklendi Öğeleri görünür sınırların dışında düzenlediklerindeLazyList
özel uygulamalarıyla (Ifabfb, b/184670295) LineHeightBehavior
,LineHeightStyle
olarak yeniden adlandırıldıLineVerticalAlignment
,LineHeightStyle.Alignment
olarak yeniden adlandırıldıLineHeightTrim
adlı cihazın adıLineHeightStyle.Trim
olarak değiştirildiLineHeightStyle
öğesinden varsayılan oluşturucu değerleri kaldırıldı (I582bf, b/181155707)LazyLayoutItemProvider
arayüzünün isteğe bağlı üyeleri için varsayılan değerler eklendi. (Iba8a0)LazyLayoutItemProvider
API'sinde, composable lambda'yı dizine göre döndüren bir fabrika yerine artık dizini kabul eden daha basit bir composable işlevimiz var. (Id2196)- LazyLayoutItemsProvider, LazyLayoutItemProvider (I0638c) olarak yeniden adlandırıldı
LazyLayoutItemsProvider.itemsCount
,itemCount
(Id409c) olarak yeniden adlandırıldı- Gradyan renklendirmeyle metin çizme yöntemi sağlamak için
TextStyle
veSpanStyle
özelliklerine Fırça özelliği eklendi. (I53869, b/187839528) trimFirstLineTop
,trimLastLineBottom
özellikleriLineHeightBehavior
, tek bir sıralama olarak değiştirildi:LineHeightTrim
.LineHeightTrim
, iki boole ile tanımlanmış 4 durum değerine sahiptir:FirstLineTop
,LastLineBottom
, Her ikisi ve Hiçbiri (Ifc6a5, b/181155707)TextStyle
veParagraphStyle. LineHeightBehavior
öğelerine eklenenLineHeightBehavior
, satır yüksekliğinin ilk satırın üst kısmına ve son satırın altına uygulanıp uygulanmayacağını kontrol eder. Ayrıca,TextStyle
(lineHeight
) tarafından sağlanan boşluktaki çizginin hizalamasını da tanımlar.Örneğin, CSS'dekine benzer bir davranış
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
aracılığıyla tanımlar.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları düzgün çalışıyor yalnızcaincludeFontPadding
yanlış olduğunda. (I97332, b/181155707)Geliştiricilerin IME'yi kaydırma yoluyla kontrol edebilmesi için deneysel
imeNestedScroll()
değiştirici eklendi. (I60759)
Hata Düzeltmeleri
- Odaklanılan 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 sığmadığında üç nokta desteği (Ie528c, b/168720622)
BringIntoViewRequester.bringIntoView
artık istek tamamlanana veya daha yeni, çakışmayan bir istek nedeniyle kesintiye uğrayana kadar askıya alınacak. Çakışan istekler sıraya alınır. (I43e7f, b/216790855)- Tamamen örtüşen dikdörtgenler için eşzamanlı
BringIntoViewRequester.bringIntoView
çağrıları artık yalnızca daha büyük dikdörtgenin isteğine yol açar. (I34be7, b/216790855, b/184760918) - Varsayılan
includeFontPadding
etkinleştirildi.includeFontPadding
,TextStyle.platformTextStyle
özelliğini kullanarak devre dışı bırakılabilir. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak o zamana kadar satır yüksekliği iyileştirmelerini daha iyi entegre edebilir (aosp/2058653) veTextField
kırpma sorunlarını daha kolay çözebiliriz. (I01423, b/171394808) Modifier.bringIntoViewRequester
artıkonGloballyPositioned
kullanmıyor. (I630f5)
Harici Katkı
- Android'de artık dikey olarak kaydırdığımızda
MouseInjectionScope.scroll(delta = someDelta)
ters çevrilmiş durumda (bazıDelta değerleri pozitifse aşağı doğru kaydırılır) (Ifb697, b/224992993)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.foundation:foundation:1.2.0-alpha08
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha08
serbest bırakıldı. 1.2.0-alpha08 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
FontFamily.SansSerif
kullanılırken Android'deki sistem yazı tipleri için mevcut tüm ağırlıkları görüntüleyin. Bu, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adlarını kullanır. API 21-28'de daha önce yalnızca 400 ve 700 ağırlıkları desteklendiği için bu davranış değişikliğidir. (I380fe, b/156048036, b/226441992)- Paragraf ve MultiParagraph, artık Constraints parametresini kabul ediyor.
Constraints.maxHeight
adlı adımı geçmek şu anda bir işlem değildir ancak şunları yapabilirsiniz: gelecekte bazı hesaplamalar yapabilir, örneğin yüksekliğe dayalı elipsleştirme gibi. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
artık yeni öğelerin eklenmesine izin vermeyen MutableSet benzeri bir özel sınıfı kabul ediyor. (Icd314)PointerInputChange
için kısmi tüketim (aşağı VEYA konum) kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()
kullanabilirsiniz. Başka birinin daha önce değişikliği yapıp yapmadığını belirlemek içinisConsumed
kullanabilirsiniz.PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu,PointerInputChange
kopyalarının, kopyalardan biri kullanıldığında tüketileceği anlamına gelir. Bağlı olmayan birPointerInputChange
oluşturmak istiyorsanız bunun yerine oluşturucu kullanın. (Ie6be4, b/225669674)- Yeni, deneysel
LazyLayout
API kullanıma sunuldu. Bu şekilde kendi bileşenlerinizi oluşturabilirsiniz (ör.LazyColumn
/LazyVerticalGrid
). API'nin erken aşamalarında olduğunu ve gelecekteki sürümlerde değiştirilebileceğini unutmayın. (Iba2bc, b/166591700) AndroidFont
,typefaceLoader
değerini artık oluşturucu parametre olarak alıyor. (I2c971)WindowInsets
tamamlayıcı artık görünürlüğü (pencereyle kesişip kesişmelerinden bağımsız olarak ekranda olup olmadıklarından bağımsız olarak) ve cihazda mevcutsa ancak o anda etkin değilse gösterebilecekleri boyutu gösteriyor. (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
serbest bırakıldı. 1.2.0-alpha07 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Tembel düzenlerin alt öğelerinin şu anda oluşturulan öğ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)- Özellikle IME'de ondalık ayırıcı eklemek için
Keyboard.Number
yerineKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) - Yeni yazı tipi açıklayıcı Font(DeviceFontFamilyName) öğesini yazı tipi yedek zincirleri sırasında isteğe bağlı olarak sistem tarafından yüklenmiş yazı tiplerini arayın. (I30468, b/219754572)
PointerEventType.Scroll
vePointerEvent.scrollDelta
artık kararlı API'ler (I574c5, b/225669674)TextStyle/ParagraphStyle. includeFontPadding
içindekiincludeFontPadding
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 edecek şekilde güncellendi (I6c1e7)ComposeView
ürünününconsumeWindowInsets
uzantı özelliği, geliştiricilerin Android WindowInset kullanımını devre dışı bırakmasına olanak tanır. Bu, hiyerarşide birbirinden farklıComposeViews
öğelerinin, birbirlerine müdahale etmeden her birineWindowInsets
uygulamasına olanak tanır. (I0ef08, b/220943142)
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
serbest bırakıldı. 1.2.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Odaklanabilir hedefe odaklanma isteğinde bulunmak için
RequestFocus
semantik işlemi eklendi. (I17b71) FocusOrder
,FocusProperties
adı altında birleştirildi vefocusProperties()
artıkfocusOrder()
ürününün tüm özelliklerine sahip.FocusOrder
vefocusOrder()
desteği sonlandırıldı.focusRequester
kabul edenfocusOrder()
,focusProperties()
ile birliktefocusRequester()
değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler, endişeleri daha etkili bir şekilde ayırabiliyor. (I601b7)WindowInsets.asPaddingValues(Density)
, geliştiricilerin bileşim hâlinde olmalarına gerek kalmadan dönüşümü gerçekleştirmelerine olanak tanımak için eklendi. (I94c35)- Geçerli düzen geçerliyse
VectorPainter
öğesinin içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizimlerinin ayrıştırılması güncellendi. RTL'dir. (I79cd9, b/185760237)
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 kaydırılarak odaklanılan composable'ın görünür kalmasını sağlayacak. - TextFields artık odaklanıldığında ve klavye gösterildiğinde klavyenin üzerinde tutuluyor, tembel kaydırılabilir olmayan bir sayfada ve yumuşak giriş modu
ADJUST_RESIZE
iken. (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
serbest bırakıldı. 1.2.0-alpha05 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
LazyVerticalGrid
veLazyHorizontalGrid
artık kararlı. (I307c0)LazyGridItemInfo.Unknown
, ayrıLazyGridItemInfo.UnknownRow
veLazyGridItemInfo.UnknownColumn
(I56d51) ile değiştirilmiştirLazyVerticalGrid
/LazyHorizontalGrid
ve ilgili tüm API'ler.grid
alt pakete taşındı. Lütfenandroidx.compose.foundation.lazy
olan içe aktarma işlemleriniziandroidx.compose.foundation.lazy.grid
olarak güncelleyin. (I2d446, b/219942574)- Kısa mesaj:
includeFontPadding
artık varsayılan olarak devre dışı. İlgili içeriği oluşturmak için kullanılanincludeFontPadding=false
nedeniyle oluşan kırpma sorunları ele alındı Uzun alfabelerde kırpma yapılmamalıdır. (I31c84, b/171394808) - Ölçülen arayüz artık parentData mülkünü (I3313f) gösteriyor.
- İzin vermek için deneme amaçlı
Modifier.onFocusedBoundsChanged
kullanıma sunuldu bunların sınırlarına dikkat etmelisiniz. (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 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ş yordamları 1.6.0 (I3366d) kullanılacak ş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
serbest bırakıldı. 1.2.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
BringIntoViewResponders
kullanıcısının artık manuel olarak işlem yapması gerekmiyor velilerin isteklerini üst katılımcılara iletebilmesidir. Bunun yerine, ebeveynlerinin getirmesini istedikleri dikdörtgeni hemen görünür. (I8e66a)- Metinde (I77057, b/214587005) eşzamansız yazı tipi yükleme desteği
LazyVerticalGrid
artık kapsamı geçerli satıra sığmayan öğelerden önceline breaking
değerini destekliyor. (I05c40, b/207462103)excludeFromSystemGestures
,systemGesturesExclusion
(I19526) olarak yeniden adlandırıldıLazyVerticalGrid
artık sideLayout'u destekliyor. (I6d7d7, b/215572963, b/211753558)- Geliştiricilere izin vermek için
WindowInsets.only()
yöntemini ekleyin kullanarak yalnızca WindowInsets'teki boyutları dahil edebilirsiniz. (I14c94, b/217768486) ComposableTarget
,ComposableTargetMarker
ve eklendi Aşağıdaki durumların derleme zamanı raporlanmasına olanak tanıyanComposableOpenTarget
: composable işlev, olmadığı bir uygulayıcıyı hedefleme olarak adlandırılır tasarladık.Çoğu durumda, ek açıklamalar oluşturma sırasında derleyici eklentisidir. Bu nedenle, bu ek açıklamayı doğrudan nadir . Tahmin edilemeyen durumlar, soyut composable işlevler (ör. arayüz yöntemleri), alanları veya değişkenleri composable lambda'lar (yerel değişkenler ve parametreler tahmin edilir), veya
ComposeNode
ya da ilgili composable işlevleri kullanılırken sorun yaşanmaz.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
tarafındanCompoableTarget
fonksiyon ve diğer herhangi bir composable lambda parametre türleri. Bununla birlikte, veComposableTargetMarker
ve ardından işaretlenen ek açıklama kullanılır. kullanabilirsiniz.ComposableTarget
Oluşturulabilir bir ek açıklamaComposableTargetMarker
ile işaretlenen bir Özelliğin tam adını içerenComposbleTarget
class'ı uygulayın. Örnek olarakComposableTargetMarker
bkz.anroidx.compose.ui.UiComposable
. (I38f11)
Hata Düzeltmeleri
- Artık negatif kaydırma ofsetlerinin
LazyGridState.scrollToItem()
veLazyGridState.animateScrollToItem()
özelliklerine aktarılmasına izin veriliyor. (I025c6, b/211753558) - TextField için eşzamansız yazı tipi yükleme desteği. (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
serbest bırakıldı. 1.2.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
TextInputSession
ve içinnotifyFocusedRect
yöntemTextInputService
artık kullanımdan kaldırıldığı için çağrılmayacak. Tekliflerinizi otomatikleştirmek ve optimize etmek için Bunun yerineBringIntoViewRequester
. (Ia4302, b/192043120, b/216842427, b/178211874)- Animasyonlar, Değiştirici.animateItemYerleşim() ile geç ızgara öğeleri için etkinleştirildi. (Ib6621, b/211753218)
BringIntoViewRequester
, istekleri artık barındırıcıya yayar Android Görünümü. (Ia7a51)FontFamilyResolver
artık şurada kullanılabilir:LocalFontFamilyResolver.current
createFontFamilyResolver(context)
ve Yeni öğe oluşturmak içincreateFontFamilyResolver(context, coroutineScope)
Oluşturma kullanımı dışındaki FontFamily çözümleyicileri.- Paragraf ve MultiParagraph artık
FontFamily.Resolver
yer alıyor TextLayoutResult.layoutInput.fontFamilyResolver
artık içeriyor bu düzen için kullanılan çözümleyici, kullanımdan kaldırıldı Artık kullanılmadığı içinTextLayoutResult.layoutInput.resourceLoader
. (Id5a45, b/174162090)
- Yeni türler sağlamak için yeni bir alt düzey API olan
AndroidFont
eklendi yazı tipi kaynak açıklayıcılarının sayısı. Örneğin, isteğe bağlı olarak önceden yüklenmiş yazı tiplerini bulabilen uygulamaya özel bir arka uç veya geçerli web sitesi tarafından sağlanmayan bir kaynaktan yazı tipi yüklenmesi; Yazı tipi fabrikaları.- İsteğe bağlı ve eşzamansız desteği desteklemek için
Font.ResourceLoaded
API genişletildi Yazı tipi yükleniyor. Uygulama geliştiricilerin, API'yi kullanabilirsiniz. Yeni yazı tipi türleri eklemek için AndroidFont'a bakın. Font.AndroidResourceLoader
uzantısı işlevi kompozisyonun dışındaFont.ResourceLoader
inşası.- İzin vermek için kaynak tabanlı yazı tiplerine
loadingStrategy
parametresi eklendi kaynak yazı tipi indirilebilir yazı tipleri XML'sine başvurduğunda eşzamansız yükleme. (Ie5aea, b/174162090)
- İsteğe bağlı ve eşzamansız desteği desteklemek için
Typeface(FontFamily)
oluşturucu desteği sonlandırıldı. Bu Önceden yazı tiplerini önceden yüklemek için kullanılır. Bu işlem, indirilebilir yazı tipleri. İndirilebilir yazı tipleriyle bu çağrı 10 gün boyunca saniye. Bunun yerineFontFamilyResolver.preload
politikasını kullanfontResource(FontFamily): Typeface
desteği sonlandırıldı. Bu Önceden yazı tiplerini önceden yüklemek için kullanılır. Bu işlem, indirilebilir yazı tipleri. Bunun yerineFontFamilyResolver.preload
kullanın (If8e7c, b/174162090)
- Artık
LazyVerticalGrid
öğeleri için içerik türünü belirtebilirsiniz.LazyGridScope
üzerindeki öğe/öğe işlevleri artık bu parametreyi kabul etmektedir. Bu tür bilgilerin sağlanması, öğe bestesinin yeniden kullanılarak mantığın daha verimli bir şekilde kullanılmasına ve içeriğin yalnızca benzer türdeki öğeler arasında yeniden kullanılmasına yardımcı olur. (I7b355, b/215372836) LazyListLayoutInfo
veLazyGridLayoutInfo
artık yeni özelliklere sahip:viewportSize
,orientation
,reverseLayout
(Ifc8ed, b/200920410)- Artık LazyColumn/LazyRow öğeleri için içerik türünü belirtebilirsiniz. LazyListScope'taki item/items işlevleri artık bu parametreleri kabul ediyor. Bu tür bilgilerin sağlanması, öğe bestesinin yeniden kullanılarak mantığın daha verimli bir şekilde kullanılmasına ve içeriğin yalnızca benzer türdeki öğeler arasında yeniden kullanılmasına yardımcı olur. (I26506)
maxSlotsToRetainForReuse
kabul edenSubcomposeLayoutState
oluşturucunun desteği sonlandırıldı. Bunun yerineSubcomposeSlotReusePolicy
öğesini kabul eden yeni bir oluşturucu var. Bu oluşturucu, gelecekte yeniden kullanılmak üzere hangi alanların tutulması gerektiği konusunda daha ayrıntılı denetime olanak tanıyan yeni bir arayüzdür. (I52c4d)- Hem dolguya hem de WindowInsets için Değiştiriciler ekler seçmeniz gerekir. Bu, bazı içeriklerin ek alana uzanmasına olanak tanır. ve birincil içeriğin hâlâ başlangıç alanının dışında kalmasını sağlayabilirsiniz. Örneğin, windowInsetsPadding, içeriğe dolgu yapmak için kullanılabilir. kapsam dışı bırakılmalıdır. (Id0395, b/213942085)
Hata Düzeltmeleri
- Metin Alanları artık klavyenin üzerinde tutuluyor.
yumuşak giriş modu seçiliyken odaklanıldığında
ADJUST_PAN
(I8eaeb, b/190539358, b/192043120) - Masaüstünde,
FontFamily.Resolver
için yerel beste kullanılır- Masaüstü
FontLoader
desteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090)
- Masaüstü
- Yumuşak klavye giriş türü değiştirilirken artık titreşmiyor metin alanları arasında odaklanmaktır. (I1bf50, b/187746439)
- imleç tutamacı gösteriliyor. (Ideb4b, b/205726883)
- Metin seçimi büyüteci davranışı şu şekilde ayarlandı: platform büyüteciyle eşleştirilir. (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
serbest bırakıldı. 1.2.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Aşırı yükleme olan yöntemlere
NonRestartableComposable
eklendi mevcut yöntemlerin toplamıdır. Bu, derleyiciyi azaltır oluşturulan not denetimlerine eşittir (eşittir) çağrılan iç fonksiyonda tekrarlanır. (I90490) - Şunun için
excludeFromSystemGesture
Değiştirici eklendi: Android'insetSystemGestureExclusionRects
(I46f07) hizmetine kolay erişim
Hata Düzeltmeleri
- Metin seçimi büyüteci davranışı şu şekilde ayarlandı: platform büyüteciyle eşleştirilir. (Idd918, b/206833278)
LazyColumn
,LazyRow
,Modifier.verticalScroll
veModifier.scrollable
kullanan diğer kapsayıcılar artık fare tekerleğiyle kaydırmayı desteklemektedir. (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
serbest bırakıldı. Sürüm 1.2.0-alpha01 bu kaydetmeleri içerir.
API Değişiklikleri
- Kullanıcıların dokunma hareketleri veya erişilebilirlik işlemleri aracılığıyla kullanıcı tarafından başlatılan kaydırmayı geçici veya kalıcı olarak devre dışı bırakmasına olanak tanımak için
LazyColumn
,LazyRow
veLazyVerticalGrid
bölümlerineuserScrollEnabled
adlı yeni parametre eklendi. Durumla ilgili yöntemler aracılığıyla programatik olarak kaydırmaya izin verilmeye devam edilir. (I7eae9, b/201150093) - Büyüteç değiştiriciye
onSizeChanged
geri çağırması ekleyin. (I6879f) - Büyüteç widget'ı artık seçim sürüklenirken gösteriliyor
SelectionContainer
olarak herkese açık kullanıcı adları. (I30b38, b/139320979)
Hata Düzeltmeleri
TextField
imleç tutamacının dışına kaydırıldığında gizlenmeme sorununu düzeltir görünüm. (I14552, b/208883748)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
bağlı.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.foundation:foundation:1.1.1
ve androidx.compose.foundation:foundation-layout:1.1.1
serbest bırakıldı. Sürüm 1.1.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
içinNullPointerException
düzeltme (aosp/1947059, b/206677462)- Şuradan okurken pano içeriğinden kaynaklanan kilitlenme düzeltildi panosuna bakacağız. (I06020, b/197769306)
LazyVerticalGrid
içinde sabit RTL (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.foundation:foundation:1.1.0
ve androidx.compose.foundation:foundation-layout:1.1.0
serbest bırakıldı. 1.1.0 sürümü bu kaydetmeleri içerir.
1.0.0'dan bu yana önemli değişiklikler
- Android 12 Fazla kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmasıyla ilgili iyileştirmeler
- Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını dokunma hedefi boyutu ile ilgili Materyal erişilebilirlik yönergelerine uyacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olacak şekilde ayarlasanız bile düğmenin dokunma hedefi en az 48x48 dp boyutuna genişler. Bu, Oluştur Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ile Oluştur'u birlikte kullandığınızda tutarlı davranış sağlar. Bu değişiklik, Materyal Oluşturma bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda, dokunma hedefi erişilebilirliğiyle ilgili minimum gereksinimlerin karşılanmasını da sağlar.
- Gezinme Rayı için kararlı destek
- Daha önce deneysel olan bir dizi API'yi kararlı sürüme geçirir
- Kotlin'in daha yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.foundation:foundation:1.1.0-rc03
ve androidx.compose.foundation:foundation-layout:1.1.0-rc03
serbest bırakıldı. Sürüm 1.1.0-rc03 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03'ü destekleyecek şekilde güncellendi
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.foundation:foundation:1.1.0-rc01
ve androidx.compose.foundation:foundation-layout:1.1.0-rc01
serbest bırakıldı. Sürüm 1.1.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Artık negatif kaydırma ofsetlerinin
LazyListState.scrollToItem()
veLazyListState.animateScrollToItem()
özelliklerine aktarılmasına izin veriliyor. (Iceb90, b/184252837) - Erişilebilirlik kaydırma işlemlerinin eksik olmasına yol açan 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
serbest bırakıldı. Sürüm 1.1.0-beta04 bu kaydetmeleri içerir.
Yeni Özellikler
- Kotlin
1.6.0
ile uyumlu olacak şekilde güncellendi
API Değişiklikleri
androidx.core.view
içindeki null değerleri temizlendi(I7078a, b/204917439)- PointerInputchange'in bir bütün olarak kullanılmasına veya kullanılıp kullanılmadığının kontrol edilmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
- İmleci sürüklerken büyüteç widget'ını gösterme veya metin alanlarının içindeki seçim tutamaçları. (I5391e, b/203781358)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerleri düzeltildi. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.foundation:foundation:1.1.0-beta03
ve androidx.compose.foundation:foundation-layout:1.1.0-beta03
serbest bırakıldı. Sürüm 1.1.0-beta03 bu kaydetmeleri içerir.
API Değişiklikleri
- LazyVerticalGrid'e yatay aralık desteği eklendi. (I7e2fa, b/176758183)
Geç liste öğe konumlarını canlandırmaya yönelik deneysel özellik eklendi. LazyItemScope'ta
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 tuş sağladığınızda bu değiştirici, animasyonların yeniden sıralanmasını sağlar. Öğelerin yeniden sıralanması dışında, düzenleme veya hizalama değişiklikleri gibi etkinliklerden kaynaklanan diğer tüm konum değişiklikleri de animasyonlu olarak gösterilir. (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
serbest bırakıldı. Sürüm 1.1.0-beta02 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Dalgalar ve diğer göstergeler artık kapalı bir etkinlik için her zaman gecikmeli olarak değil, yalnızca bir
Modifier.scrollable()
kapsayıcısının içinde olduklarında gecikecek. (Ibefe0, b/203141462) - Ebeveynlerin ekranı kaydırarak öğeyi görünüme getirmeleri için istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459)
Harici Katkı
Modifier.pointerHoverIcon
eklendi (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
serbest bırakıldı. Sürüm 1.1.0-beta01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Ebeveynlerin ekranı kaydırarak öğeyi görünüme getirmeleri için istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459)
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
serbest bırakıldı. 1.1.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Düzen için, verimlilik artırılarak çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
SemanticsNodeInteraction.performSemanticsAction
şimdi iade edildi fonksiyonun çağrıldığıSemanticsNodeInteraction
. (I9e5db)- Şunları ekledi:
performScrollToNode(matcher: SemanticsMatcher)
Kaydırılabilir bir kapsayıcıyı eşleştirmeye yardımcı olur. (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
serbest bırakıldı. 1.1.0-alpha05 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- PointerEventChange'e deneysel geçmiş işaretçiler eklendi. (Ic1fd8, b/197553056, b/199921305)
Hata Düzeltmeleri
- Kaydırılabilir reklamlar için sabit erişilebilirlik desteği (hem geç hem de (I6cdb0) kaydırmaya göre
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
serbest bırakıldı. 1.1.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Şu özelliklere sahip
performGesture
veGestureScope
kullanımdan kaldırıldı:performTouchInput
veTouchInjectionScope
ile değiştirildi. (Ia5f3f, b/190493367) touchBoundsInRoot
SemanticsNode
içine eklendi geliştiricilerin minimum dokunma hedefi boyutunu içermesi , dokunma hedeflerinin erişilebilirlik minimum değerlerini karşılamasını sağlayabilir. (I2e14b, b/197751214)
Hata Düzeltmeleri
- Android 12 cihazlara fazladan kaydırma desteği eklendi. (Iccf3c, b/171682480)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha03
serbest bırakıldı. 1.1.0-alpha03 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
- Oluşturma
1.1.0-alpha03
, Kotlin1.5.30
öğesine bağlı olacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Kaydırma için parlama efekti eklendi. Fazla kaydırmadan görsel efektin yapılandırılmasına olanak tanımak için yeni deneysel Over ScrollConfiguration API eklendi. Fazla kaydırma efektini devre dışı bırakmak için null değeri sağlayın. (I0c304, b/171682480)
- AwaitPointerEventScope artık withTensorFlow() işlevini içeriyor ve withSFTPOrNull() (I507f0, b/179239764, b/182397793)
- Kısaltılmış sınırları almak için test yöntemi eklendi. (I6b28e)
- ViewConfiguration'a minimum dokunma hedefi boyutu eklendi Bu özellik, erişilebilirliği sağlamak adına anlambilim ve işaretçi girişi için kullanılabilir. (Ie861c)
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
serbest bırakıldı. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
Modifier.size
verequiredSize
(I3fc7e, b/194219828) için DpSize sürümleri eklendi
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
serbest bırakıldı. Sürüm 1.1.0-alpha01 bu kaydetmeleri içerir.
API Değişiklikleri
- Şu özelliklere sahip
DrawScope#drawImage
yöntemi güncellendi: kaynak ve hedef dikdörtgenleri tüketir kullanmak için isteğe bağlı filtre kalitesi parametresinden sonra bir değer girin. Bu, piksel için yararlıdır pikselleştirilmek üzere tasarlanmış sanat eserleri büyütüldüğünden emin olun. BitmapPainter + composable resim güncellendi kullanabilirsiniz. parametre (Ie4fb0, b/180311607) - TextField artık geri düğmesine basıldığında seçimi temizliyor ifadesini kullanabilirsiniz. (I3ca16, b/174173645)
- İmleç tutma yeri ekleyin. (I07a82, b/173016579)
Hata Düzeltmeleri
- Tembel listeler ve normal kaydırma bileşenleri için anlamsal işlemler aracılığıyla kaydırma işlemi artık animasyonlu (Id9066, b/190742024)
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
serbest bırakıldı. 1.0.5 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- TüretilmişStateOf örneklerindeki kilitlenme izleme sorunu düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.foundation:foundation:1.0.4
ve androidx.compose.foundation:foundation-layout:1.0.4
serbest bırakıldı. 1.0.4 sürümü bu kaydetmeleri içerir.
Bağımlılık Güncellemeleri
- Kotlin'e (
1.5.31
) bağlı olarak güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.foundation:foundation:1.0.3
ve androidx.compose.foundation:foundation-layout:1.0.3
serbest bırakıldı. 1.0.3 sürümü bu kaydetmeleri içerir.
Bağımlılık Güncellemeleri
- Kotlin'e (
1.5.30
) bağlı olarak güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.foundation:foundation:1.0.2
ve androidx.compose.foundation:foundation-layout:1.0.2
serbest bırakıldı. 1.0.2 sürümü bu kaydetmeleri içerir.
Compose 1.0.2
sürümünü desteklemek üzere güncellendi. Oluşturulan 1.0.2
, Kotlin 1.5.21
ile hâlâ uyumlu.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.foundation:foundation:1.0.1
ve androidx.compose.foundation:foundation-layout:1.0.1
serbest bırakıldı. Sürüm 1.0.1 bu kaydetmeleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
kaynağına bağlı olarak güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0
ve androidx.compose.foundation:foundation-layout:1.0.0
serbest bırakıldı. 1.0.0 sürümü bu kaydetmeleri içerir.
1.0.0'ın temel özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Sürüm bloguna göz atın!
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız şu kilitlenmeyle karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Sorunu düzeltmek için
build.gradle
dosyanızda minSdkVersion değerini geçici olarak 24'ün üzerine çıkarın. Bu sorun, Android Studio Bumblebee ve AGP'nin7.1
sonraki sürümünde düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0-rc02
ve androidx.compose.foundation:foundation-layout:1.0.0-rc02
serbest bırakıldı. Sürüm 1.0.0-rc02 bu kaydetmeleri içerir.
- Yollarla ilgili sorunları gidermek amacıyla genel şekiller için kenarlık oluşturma güncellendi her zaman sabit boyutlarla tanımlanır. (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
serbest bırakıldı. Sürüm 1.0.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
- Tuval artık şunlar için bir contentDescription parametresini destekliyor: erişilebilirlik. (Ib547c)
Hata Düzeltmeleri
- Devre dışı bırakılan Düğme, Kart, Onay kutuları ve genel olarak
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
serbest bırakıldı. Sürüm 1.0.0-beta09 bu kaydetmeleri içerir.
API Değişiklikleri
ManualFrameClock
kaldırıldı. Animasyonları kontrol etmeniz gerekiyorsa bunun yerinecomposeTestRule.mainClock
kullanın. (I3c3e8, b/189951065)- enum rolünü ve LiveRegionMode'u satır içi sınıflar olarak değiştirme özel kurucuyla (Id1890)
- Klavye Büyük Harf Kullanımı satır içi sınıfa dönüştürülür. (Id5a1c)
- 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 korunur. Diğer bir deyişle, geçerli görünür öğeden önce öğe ekler/kaldırırsanız, belirtilen anahtara sahip öğe ilk görünür öğe olarak tutulur. (Id263f, b/184257857)
- Anahtar sabit değerleri şimdilik @DeneyselComposeUiApi'dir. Tüketme kod sabitlemeden önce özel sabit değerler tanımlayabilir. (Ia5d48)
- AndroidComposeTestRule'a boşta kalma stratejisi eklendi.
bekleme amacıyla alternatif bir mekanizma kurmak için test çerçeveleri tarafından kullanılır
ya da sessizliğe
ulaşmayı öğreteceğim. Tekliflerinizi otomatikleştirmek ve optimize etmek için
Testinizden
AndroidComposeTestRule.setIdlingStrategyFactory()
önce stratejinizi yüklemeye başlar. (I608fa)
Eklenen Profil Kuralları
Bu sürüm, aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları ekler:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.temel
- androidx.compose.foundation-layout
- androidx.compose.malzeme
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.grafikler
- androidx.compose.ui.metin
- androidx.compose.ui.metin
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığa ilişkin profil kuralları,
src/main
veya eşdeğer dizinde bulunan bir metin dosyasında (baseline-prof.txt
) belirtilir. Dosya, her satır için bir kural belirtir. Bu durumda kural, kitaplıktaki yöntemler veya sınıflarla eşleştirmeye yönelik bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan, okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.Bir yöntem kuralı aşağıdaki kalıba sahip olur:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Sınıf kuralı da aşağıdaki kalıba sahip olur:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek içinH
,S
veP
karakterlerinden bir veya daha fazlasını göstermektedir.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin,androidx.compose.runtime.SlotTable
sınıfının tanımlayıcısıLandroidx/compose/runtime/SlotTable;
olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürme türlerini içerir. Örneğin,LayoutNode
sitesindekifun isPlaced(): Boolean
yöntemiisPlaced()Z
imzasına sahiptir.Tek bir kuralın birden fazla yöntem veya sınıfı kapsaması için bu kalıplar joker karakterler (
**
,*
ve?
) içerebilir.
Kurallar ne işe yarar?
H
işaretine sahip bir yöntem, bu yöntemin "çalışıyor" olduğunu gösterir yöntemidir ve önceden derlenmesi gerekir.S
işaretine sahip bir yöntem, bu yöntemin başlangıçta çağrılan bir yöntem olduğunu ve derleme ve başlatma sırasında yöntemi yorumlama maliyetinden kaçınmak için önceden derlenmesi gerektiğini belirtir.P
işaretine sahip bir yöntem, bunun başlatmadan sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetinden kaçınmak için yığına önceden ayrılması gerektiğini belirtir.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda, bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özel küçük bir ikili ART profili oluşturmak için kullanılır. ART, daha sonra uygulamanın belirli bir alt kümesini önceden derleyerek uygulamanın performansını, özellikle de ilk çalıştırmada performansını iyileştirmek için uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bunun, hata ayıklaması yapılabilecek uygulamalar üzerinde herhangi bir etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.foundation:foundation:1.0.0-beta08
ve androidx.compose.foundation:foundation-layout:1.0.0-beta08
serbest bırakıldı. Sürüm 1.0.0-beta08 bu kaydetmeleri içerir.
API Değişiklikleri
- Nested ScrollSource sıralaması satır içi bir sınıfla değiştirildi. (Ie321b, b/187055290)
- Kaçınılması için satır içi sınıflarda enum kullanımları yeniden düzenlendi aşağıdaki durumlarda tüm teslimatlar ile ilgili yeni enum değerleri eklenir. (I2b5eb)
- Kaydırma / sürükleme sırasında dalga gösterilmesini önlemek için tıklanabilir / açılabilir öğe için bir dokunma zaman aşımı ekler (Ia2704, b/168524931)
- ContentDescription ve Metin anlamsal özellikleri artık kullanılmıyor listeler. Bu işlem, bu öğeleri oldukları gibi birleştirmenize olanak tanır. yardımcı olabilir. Ayrıca bunları kullanmak için daha iyi test API'leri sağlandı değişiklikler (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırıldı veModifier.focusTarget()
(I6c860) ile değiştirildi- KlavyeType sıralaması satır içi bir sınıfla değiştirildi. (I73045, b/187055290)
FocusState
sıralamasıFocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- ImeAction sıralaması satır içi bir sınıfla değiştirilir. (I18be5, b/187055290)
AnnotatedString.withAnnotation
işlevleri Şimdi ExperimentalComposeApi yerine ExperimentalTextApi. (I0cd0a)- TextUnitType içeren TextUnit oluşturucusu ExperimentalComposeApi yerine ExperimentalTextApi.
- PaddingValues artık
@Immutable
yerine@Stable
(I88c50)
Hata Düzeltmeleri
- Boş olmayan metinde boş alana uzun basma kilitlenmeleri düzeltildi. (I33ab5, b/187437299)
- SelectAll (I495d9, b/185919613) sonrasında Araç Çubuğunu Göster
- Alt öğelerini çapraz eksende kırpan kaydırılabilir kapsayıcılarda düzeltme Kart öğeleri içeren bir LazyRowınız varsa bu işlem kolayca yeniden oluşturulabilir. gölge kırpılmaz. (Icb635, b/186318448)
- Değiştirici.combinedClickable (I2298c, b / 186223077) kullanılırken uzun tıklamalarda dalgaların/diğer göstergelerin zaman zaman takılmasına neden olan sorun düzeltildi
- Şimdi
detectDragGesures
,detectVerticalGestures
vedetectHorizontalGestures
konum değişikliğini otomatik olarak kullanacak, onDrag geri çağırmalarında change.consumePositionChange çağrılmaya gerek yok (I42fc4, b/185096350, b/187320697) Modifier.onGloballyPositioned()
, tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirinde bu değiştiricinin koordinatlarını raporlayacak şekilde değiştirildi. Bu, artık değiştiricilerin sırasının, hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.foundation:foundation:1.0.0-beta07
ve androidx.compose.foundation:foundation-layout:1.0.0-beta07
serbest bırakıldı. Sürüm 1.0.0-beta07 bu kaydetmeleri içerir.
API Değişiklikleri
- LazyColumn/Row için bir sonraki görünür öğe önceden getirme mantığı kullanıma sunuldu (I8a4bc, b/184940225)
- Klip seçimi için tutma yeri eklendi (Iff80d, b/183408447)
Hata Düzeltmeleri
- LazyColumn/Row, önceden kaydırılmış olsalar bile artık önceden görünür olan en fazla 2 öğeyi etkin (imha edilmez) tutacak. Bu, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt besteleri yeniden kullanmasına olanak tanır. (Ie5555)
- paintArka planı kaldırın. (I38660)
- DrawScope'u kullanarak seçim arka planını çizin. (I73c61, b/186674472)
- Düzen ağırlıklı alt öğelerde aralıklı düzenlemeleri kullanan Satır/Sütunu etkileyen 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
serbest bırakıldı. Sürüm 1.0.0-beta06 bu kaydetmeleri içerir.
API Değişiklikleri
- Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
- Erişilebilirlik hizmetleri için koleksiyonu ve öğelerini işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
SemanticsActions.ScrollToIndex
ile listede kaydırma yapmak için eklendi belirli bir dizine sahip öğeye dizine eklenmiş öğeler ve Listedeki bir öğenin dizinini almak içinSemanticsProperties.IndexForKey
anahtarlı öğelerle. Her iki işlem de LazyList tarafından uygulanır.- Şunları ekledi:
SemanticsNodeInteraction.performScrollToIndex
bir listeyi belirtilen dizine kaydırır veSemanticsNodeInteraction.performScrollToKey
öğesine sahip olmayabilir. (I4fe63, b/178483889, b/161584524)
- Şunları ekledi:
- AnnotatedString'in desteğini şuna kaydet: TextFieldValue.Saver. addTtsDescription eklendi Ek açıklama yardımcı programı işlevleri ile AnnotatedString.Builder (I8cbdc, b/178446304)
- Varsayılan
0.dp
parametre değerleriPaddingValues(horizontal, vertical)
öğesine eklendi (I05571, b/181336792)
Hata Düzeltmeleri
- Satır ve
weight(fill = false)
içeren 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
serbest bırakıldı. Sürüm 1.0.0-beta05 bu kaydetmeleri içerir.
API Değişiklikleri
- FlingBehavior arayüzü artık @Kararlı olarak işaretlendi. Tüm uygulamalar
@Stable
sözleşmesine uygun olmalıdır. (I93354, b/184830577)
Hata Düzeltmeleri
- Düzeltildi:
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
erişilebilirlik kaydırma işlemleri. Sonuna kadar kaydırmak yerine kaydırılabilir hale getirildiğinde, verilen yönde bir ekran kaydırılır. (Ieccb0) - ui-test-manifest ve ui-tooling-data artık Android 12 (I6f9de, b/184718994) ile uyumlu
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.foundation:foundation:1.0.0-beta04
ve androidx.compose.foundation:foundation-layout:1.0.0-beta04
serbest bırakıldı. Sürüm 1.0.0-beta04 bu kaydetmeleri içerir.
API Değişiklikleri
- hideYazılımKlavye'yi ve showYazılımKlavyesini açık olarak yeniden adlandır
Yazılımı Klavye Denetleyicisi'ni sırasıyla
hide()
veshow()
olarak ayarlayın.- için tüm CompositionLocal arayüzünün tamamını sağlayın (özellikle testlerde faydalı) (I579a6)
TextOverflow.Visible
kullanıma sunuldu. (Ic8f89)- Herkese açık
RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
örnekleri kaldırıldı. (I4e83e, b/181869067)
Hata Düzeltmeleri
- Hızlı kaydırmadan sonra kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin yanlış yerleştirilmesi sorunu 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şlevi atlanmayacaktır. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri yakalaması yaygın ve beklenen bir uygulamadır ve bunların atlanması hataya neden olan yaygın bir kaynaktır.
Özetlemek gerekirse aşağıdaki örneği düşünün:
@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şlevi,count
parametresi güncellendikten sonra bile her zaman atlı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
serbest bırakıldı. Sürüm 1.0.0-beta03 bu kaydetmeleri içerir.
API Değişiklikleri
DefaultMonotonicFrameClock
desteği sonlandırıldı. Telefon etme Hayır,withFrameNanos
veyaRecomposer.runRecomposeAndApplyChanges
MonotonicFrameClock
şimdiIllegalStateException
atacak. (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
serbest bırakıldı. Sürüm 1.0.0-beta02 bu kaydetmeleri içerir.
API Değişiklikleri
- LazyColumn ölçüm mantığına birden çok küçük optimizasyon eklendi (Ic6889)
- Yeni
LocalSoftwareKeyboardController
bestesi yerel eklendi üzerindeki önceki SoftwareKlavyeController arayüzünün yerini alacak API TextField'i (Metin Alanı) seçin. (I5951e, b/168778053) - Yeni
LocalSoftwareKeyboardController
bestesi yerel eklendi üzerindeki önceki SoftwareKlavyeController arayüzünün yerini alacak API TextField'i (Metin Alanı) seçin. (I84472, b/168778053)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılın (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
serbest bırakıldı. Sürüm 1.0.0-beta01 bu kaydetmeleri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
detectDragGestures
numaralı telefona başlangıçta geri çağırma özelliği eklendi (I67269, b/179995594)- Yerleşik öğelere göre boyutlandırma değiştiricileri artık deneysel değildir. (I15744)
- Kaldırılan dp onayları (I798d2)
- Tüm metinlerden SoftwareKlavyeController geri çağırması kaldırıldı alanları kısa süre içinde yeni bir API ile değiştirilecektir. (Iae869, b/168778053)
- MeasureBlocks, MeasurePolicy olarak yeniden adlandırılarak eğlenceli bir arayüze dönüştü. Düzen API'leri, MeasurePolicy kullanılacak şekilde güncellendi / basitleştirilmiş. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, Etkileşim etkinliklerinin yayınlanmasından / toplamasından sorumludur.
interactionState = remember { InteractionState() }
öğesiniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
kullanın.Interaction.Pressed in interactionState
yerine, InteractiveSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmanız gerekir.- Karmaşık kullanım alanları için EngagementSource.interactions akışını gözlemleyerek Etkileşimlerin akışını gözlemleyebilirsiniz. Daha fazla bilgi için EngagementSource belgelerine ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Kullanımdan kaldırılan LayoutKoordinatlar yöntemleri kaldırıldı, locationInParent ve boundsInParent özelliği yerine işlevi kullanın (I580ed, b/169874631, b/175142755)
- CoreTextField gibi alt düzey metin bileşenlerinden giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Placeable artık, alt düzenin gerçekte ölçüldüğü boyutu temsil edenmeasureSize değerini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla Sekme veya RadioButton koleksiyonunu işaretlemeye olanak tanıyan seçim Grubu değiştiricisi ekleyin (Ie5c29)
LazyListState.animate ScrollToItem Ekle
Bu yöntem, sorunsuz bir şekilde listedeki belirli bir öğeye kaydırır. (I4bfd7)
ScrollableState.smooth ScrollBy(),Animation ScrollBy() olarak yeniden adlandırıldı. LazyListState.snapToItemIndex(), ScrollToItem() olarak yeniden adlandırıldı. ScrollState.smoothKay
Değiştirici.zoomable, Değiştirici.Dönüştürülebilir öğemin yerini aldı. işlev olarak smoothPanBy, smoothRotationBy eklenmiştir. (Ifc32b, b/175294473)
compositionLocalOf
ve içindefaultFactory
staticCompositionLocalOf
artık şunun yerine zorunludur: isteğe bağlıdır.Bu değişiklikler, null olmayan değer için olası bir tür hatasını kaldırır varsayılan fabrikanın sağlanmadığı türler bulunur. Daha önce bu değeri, null olmayan bir tür için boş bir referans sağlar.
Boş değer atanabilen türler için varsayılan olarak
{ null }
sağlayabilirsiniz fabrika ayarlarına dönelim.Aşağıdaki durumlarda, null olmayan türlere sahip yerellerin kullanılmasını önermiyoruz: makul bir varsayılan değer sağlanabilir. Makul bir varsayılan ayar yoksa
defaultFactory
lambda bir istisna yapar. Ancak bir istisna uygulamak, yerel tüketicilerin zorunlu kılınmayan örtülü bağımlılık yapabilirsiniz. (Ifbd2a)Indication#createIndication()
parametresiIndication#rememberUpdatedIndication(InteractionState)
olarak değiştirildi veInteractionState
parametresi IndicationInstance#drawIndication()
'den kaldırıldı. IndicationInstance yalnızca görsel efektleri çizmekten ve EngagementState değişikliklerine yanıt olarak animasyonları / yazma durumunu başlatmamaktan sorumlu olmalıdır. Bu animasyonlar ve durum yazma işlemleri, bunun yerinerememberUpdatedIndication()
içinde gerçekleştirilmelidir.Modifier.indication
tablosundakiindication
parametresi de gerekli bir parametre olarak değiştirildi. (Ic1764, b/152525426)Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
Kaldırılan
runBlockingWithManualClock
(I15cdc, b/179664814)Modifier.vertical Scroll()/Yatay Kaydırma() işlevinde kaydırma konumu artık Ints ile temsil ediliyor (I81298)
smoothWrapBy ve ScrollBy yöntemleri' paketler
androidx.compose.foundation.gestures.*
olarak değiştirildi (I3f7c1, b/175294473)FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)
Boyut değiştiricileri yeniden adlandırıldı. Değiştirici.genişlik/yükseklik/boyut, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Değiştirici.tercihWidth/PreferenceHeight/PreferenceSize, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)
defaultMinSizeConstraints defaultMinSize olarak yeniden adlandırıldı. (I4eaae)
Değiştirici.tapmotionFilter kaldırıldı. Bunun yerine
Modifier.pointerInput { detectTapGestures(...) }
politikasını kullanın. (I266ed, b/175294473)İşaretçi giriş sisteminden kısmi tüketim kaldırıldı. Kısmi tüketimi koordine etmek için önerilen yöntem Modifier.nested Scroll'dur. (Ie9c9b)
Yön, temel paketine taşındı. VelocirtTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)
AnimationClockObservable ve alt sınıflar emin olun. Animasyonlu Kayan öğe kaldırıldı. (Icde52, b/177457083)
drawerState.open() vedrawerState.close(), artık işlevleri askıya alıyor. Çağrı yapmak istediğiniz bestenin kapsamını almak için leadCoroutineScope() işlevini kullanın (I16f60, b/175294473)
Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı
- Beste oluşturucu artık anahtar parametreleri kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst seviye bir işlev yerine derlenebilir üst düzey bir mülke dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
- ComposableLambdaN, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
- SnapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil
@TestOnly
üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
- Composer.collectKeySourceInfo bilgileri kaldırıldı. Artık gerekli değildir.
- isJoinedKey,joinKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar artık gerekli değildir.
- Çeşitli üst düzey API'ler taşındı ve farklı dosyalara yeniden düzenlendi. Bu, Kotlin'in dosya sınıfı semantiği nedeniyle ikili program uyumluluğunu bozar ancak kaynak uyumluluğunu bozmaz. Bu nedenle çoğu kullanıcı için sorun olmayacaktır.
- (I99b7d, b/177245490)
Değiştirici.scrollable yeniden düzenlendi. Şimdi ScrollableController sınıfının yerine Kaydırılabilir arayüzü kullanıyor (I4f5a5, b/174485541, b/175294473)
Değiştirici.draggable artık basit bir lambda yerine DraggableState'i kabul ediyor. Önceden olduğu gibi aynı davranışı elde etmek için
rememberDraggableState { delta -> }
aracılığıyla durum oluşturabilirsiniz (Ica70f, b/175294473)Yerleşik boyutlara yönelik gerekli boyutlandırmalar için requiredWidth(IntrinsicSize) ve requiredHeight(IntrinsicSize) değiştiricileri eklendi. (I0a6b4)
Desteği sonlandırılmış
emptyContent()
kaldırıldı. Bunun yerine{}
politikasını kullanın. (Idb33f, b/179432510)Desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932)
Hata Düzeltmeleri
- Yeni Yerel Yazılım Klavye Denetleyicisi bileşimi eklendi üzerindeki önceki SoftwareKlavyeController arayüzünün yerini alacak API TextField'i (Metin Alanı) seçin. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.foundation:foundation:1.0.0-alpha12
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha12
serbest bırakıldı. 1.0.0-alpha12 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Değiştirici.pointerInput, artık tuşların şunu belirtmek için hatırlanmasını gerektiriyor: yeni için işaretçi girişi algılama eş anlamlısının yeniden başlatılması gerektiğinde ve bildirmeyi konuştuk. (I849cd)
- Güncelleme testi: hasText(), metin alanında (Iab803) hem giriş hem de etiket/hint/yer tutucu metinleri kontrol eder.
- PaddingValues.Mutlak eklendi ve PaddingValues kabul eden API'lerde kullanılabilir. (Ia5f30)
- onImeActionPerformed desteği sonlandırıldı. bunun yerine Klavyeİşlemler'i kullanın (If0bbd, b/179071523)
- Adlandırmayla daha iyi eşleşme için ve ImageBitmap ve ImageVector ile ImagePainter, BitmapPainter olarak yeniden adlandırıldı VectorPainter'a paralel yapabilirsiniz. (Iba381, b/174565889)
- Artık bağımsız değişken olarak alt dize bulunan daha iyi alt dize test API'leri (Icbe78)
InfiniteAnimationPolicy
eş yordam bağlam eklendi öğesi bulunmalıdır. Varsayılan olarak hayır politikası yüklenir (ComposeTestRule
ile testlerin çalıştırıldığı durumlar hariç). (I50ec4, b/151940543)- Animatable.snapTo ve Animatable.stop, askıya alma işlevleri olarak değiştirildi (If4288)
- ComponentActivity.setContent, şuraya taşındı: androidx.activity.compose.setContent androidx.activity:activity-compose modülü. (Icf416)
- Yıkım ve Copy() yöntemleri, bazı sınıflara üye olmak için faaliyet sergilediler. (I26702, b/178659281)
LazyColumn/LazyRow için özel anahtar desteği eklendi. Bu sayede, öğelerin sıralanması sürecini daha akıllıca ele alabiliriz. Dolayısıyla, {} blokta hatırladığınız durum, öğeleri yeniden sıraladığınızda veya öğeyi ortadan kaldırdığınızda öğeyle birlikte hareket eder.
LazyColumn { items(users, key = { user -> user.id }) { ... } }
Gösterge#createInstance, @Composable olarak değiştirildi ve LocalIndication, () -> yerine bir Gösterge içerecek şekilde değiştirildi Gösterge. (I5eeea, b/157150564)
Constraints.enforce
,Constraints.constrain
ile değiştirildi. (I8b8ea)loadFontResource desteği sonlandırıldı. Bunun yerine fontResource öğesini kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource kullanımdan kaldırılmıştır. Bunun yerine PainterResource öğesini kullanın. (I6b809)
Performans nedeniyle, ScrollAxisRange semantiği artık lambda'lar doğrudan Kayan değerler yerine Kayan değerler döndürüyor. (If4a35, b/178657186)
Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantiğini ve anlamı kontrol etmek için ilgili test yöntemlerini ekledi (I8e07a)
Değiştirici.clickable'da artık çift ve uzun tıklama desteği yoktur. Bu işlevi elde etmek için Değiştirici.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)
Değiştirici.dragmotionFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, bir eksendeki sürüklemeler için Değiştirici.draggable'ı kullanın (I0ba93, b/175294473)Ambiyanslar, Ambiyans ile eşleşecek şekilde yeniden adlandırıldı -> CompositionLocal yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılıyorken CompositionLocals artık LocalFoo olarak adlandırılıyor. (I2d55d)
Seçim, temele taşındı. (I7892b)
Daha önce
state { 0 }
composable'ı kaldırıpremember { mutableStateOf(0) }
gibi kullanımları teşvik etme şeklimize benzer şekilde,savedInstanceState { 0 }
composable'ı da kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmanız gerekir. MutableState içinde kullanılan tür Paket'te depolanabiliyorsa dosya otomatik olarak kaydedilip geri yüklenir. Önceden bir özel koruyucu nesnesi iletiyorsanız şimdistateSaver
parametresine sahip yeni birhatırlanabilirlik türü aşırı yüklemesi kullanmanız gerekir. Kullanım şu şekilde görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004)Erişilebilirlik için şifre anlamları eklendi (I231ce)
ProgressBarRangeInfo eklendi.Erişilebilirlik için belirsiz ilerleme çubuklarının işaretlenmemesi (I6fe05)
Animasyondaki oynatma süresi artık nanosaniye olarak ayarlanmamış (If776a)
@ComposableContract desteği sonlandırıldığı için yerine üç ek 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ı, performans üzerinde artık olumlu bir etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)Recomposer'lar artık kapatılabilir. Kapatılan derleyiciler: beste alt eş yordamları tamamlanana kadar yeniden düzenleme işlemine devam edin. Recomposer.shutDown, kapatmayla kontrast olarak iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)
LazyVerticalGrid ile ilgili API'ler deneysel olarak işaretlenmiş (Ia53e3, b/178519862)
receiveSavedInstanceState(), offerSaveable() 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ı. RestorableStateProvider adlı iç yöntem SaveableStateProvider olarak yeniden adlandırıldı. Herhangi bir öğeyi anahtar olarak geçirebilmeniz için genel tür kaldırıldı. Deneysel ek açıklama artık gerekli değil. (I0902e, b/174598702)
Tasarruf, listSaver(), MapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate değerinden androidx.compose.runtime.saveable (I77fe6) değerine 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 olmayan birçok API silinir. (I2f2dc)
create:runtime-dispatch yapısının desteği sonlandırıldı. MonotonicFrameClock, artık generate:runtime ve AndroidUiDispatcher komutu düzenleyicinin içinde bulunabilir:ui. (Ib5c36)
RounderCornerShape, CutCornerShape ve CornerbasedShape parametreleri, şeklin rtl yönünde otomatik yansıtmasını desteklemek için soldan/sağdan başlangıç/bitiş olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için MutlakrounderCornerShape ve MutlakCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
canDrag, Değiştirici.scrollable dosyasından kaldırıldı. (Id66e7, b/175294473)
Compose derleyici eklentisinin hedeflediği API yerine bir arayüz kullanmak üzere yeniden düzenlendi: beton sınıfı. Ayrıca arayüz artık bir tür parametresidir.
Bu, kaynağı etkilememesi gereken dahili bir değişikliktir kod uyumluluğu sağlar ancak ikili programları bozan bir değişikliktir. (I3b922, b/169406779)
Değiştirici.scaleHareketFiltresi kaldırıldı. Bunun yerine Değiştirici.zoomable kullanın. Alternatif olarak
Modifier.pointerInput { detectMultitouchGestures { ... }}
kullanın (Id5da1, b/175294473)AnimasyonluDeğer/Kayan Öğe için destek sonlandırıldı. Lütfen şunu kullanın: Animasyonlarla oluşturulabilir. (I71345, b/177457083)
- Herkese açık API'den CoreText ve CoreTextField kaldırıldı
- Desteği sonlandırılan SelectContainer aşırı yüklemesi kaldırıldı (I99c19)
Kullanımdan kaldırılan ve askıya alınmamış kaydırma işlevlerini kaldırın Son sürümdeki değişikliklerle devam edelim. Askıya alınmadan önce kaydırma işlemi işlevleri tamamen kaldırıldı. Lütfen askıya alma işlemine dönüştürün işlevleridir. Eş yordam şu şekilde edinilebilir: receiveCoroutineScope() ekleyin. (I3d39c, b/178169563)
androidx.compose.foundation.layout.ConstraintLayout desteği, androidx.Restricttlayout.compose.ConstraintLayout sürümü kullanılarak kaldırıldı.
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
öğesine bir bağımlılık eklemeniz gerekir. (I87adc)TapHareketFilter, doubleTapHareketFilter, long PressHareketFilter ve pressIndicaitonmotionFilter kullanımdan kaldırılmıştır. Bunun yerine Değiştirici.clickable veya Modifier.pointerInput değişkeni kullanın. (I6baf9, b/175294473)
Recomposer.current()
kaldırıldı. [Abstract]Şimdi görüntüle tarafından sağlanan gecikmeli şekilde oluşturulan, pencere kapsamlı Yeniden derleyicilere Pencerede ViewTreeLifecycleOwner'ı seçin. Yeniden düzenleme ve withFrameNanos tabanlı animasyon çizgileri, ana makine Yaşam Döngüsü sırasında duraklatılır durdurulur. (I38e11)Recomposer.RunRecomposers, artık global bir StateFlow sunuyor devam eden beste durumunu gözlemlemek için salt okunur RecomposerInfo daha fazla bilgi edineceksiniz. Şu anda ayarlı olan Recomposer.current() için bu API'yi tercih edin. desteği sonlandırıldı. (If8ebe)
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
serbest bırakıldı. Sürüm 1.0.0-alpha11 bu kaydetmeleri içerir.
API Değişiklikleri
Askıya alınmadan önce
Artık kaydırmayı kontrol etmek ve beklemek için askıya alma işlevlerini kullanmanızı öneririz. devam edin. Şu anda askıya alınmamış sürümlerini de bu geçişin parçası olarak ele alacağız. (A9 kez verilmiş)
Askıya alınmayan smooth ScrollBy desteğini sonlandırma Artık kaydırmayı kontrol etmek ve beklemek için askıya alma işlevlerini kullanmanızı öneririz. devam edin. Askıya alınmamış sürümler kullanımdan kaldırılıyor bu işlevlerin kullanımına daha sonra geri döneceğiz. (I12880)
Resim ve Simge'ye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine (I2ac4c) açıklama sağlamak için kullanılır
BasicTextField, "decorationBox" adlı yeni bir parametre aldı. Metin alanına simge, yer tutucu, etiket vb. süslemeler eklemenizi ve bunun isabet hedef alanını genişletmeyi sağlar. (I16996)
canDrag parametresi Değiştirici.draggable'dan kaldırıldı (Ic4bec, b/175294473)
FlingConfig'i kabul eden hareketlifloat.fling kaldırıldı. Lütfen askıya alma özelliğini kullanın Animatable.animateDecay'i seçin. (I4659b, b/177457083)
data class
şu sınıflardan kaldırıldı:- Satır İçi Metin İçeriği
- Yerel Ayar Listesi
- (I605c7)
Artık bestenin dışında tıklanabilir, geçiş yapılabilir ve seçilebilir hale getirilebilir (I0a130, b/172938345, b/175294473).
ScrollableColumn/Row kullanımdan kaldırıldı. ScrollableColumn kullanımı, büyük bir kayan içeriğiniz olan LazyColumn ile karşılaştırıldığında daha az verimlidir, çünkü LazyColumn ile yalnızca görünür öğeleri oluşturabiliyoruz/ölçebiliyor/çizebiliyoruz. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunların yerine LazyColumn ve LazyRow kullanımlarını teşvik etmeye karar verdik. Kullanıcılar hâlâ tembel davranışa ihtiyaç duymadıklarına karar vererek değiştiricileri doğrudan şu şekilde kullanabilirler: Column(Modifier.vertical Scroll(remember ScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)
fabrika yöntemi.items(items: List)
veitemsIndexed(items: List)
artık uzantı işlevleri olduğundan bunları kullandığınızda manuel olarak içe aktarmanız gerekir. Diziler için yeni uzantı aşırı yüklemeleri: items(items: Array) ve itemsIndexed(Array) (I803fc, b/175562574)Desteği sonlandırılan MutlakArrangement kaldırıldı. (Iffa96, b/177641870)
Gelen minimum kısıtlamaların Box'ın içeriğine iletilip iletilmeyeceğini belirtmek için generateMinConstraints parametresi Box'a eklendi. Varsayılan değer, false'tur. (I0125b, b/152613457)
Hata Düzeltmeleri
- SideEffect ve DisposableEffect API'leri (If760e) yerini alarak onCommit, onDispose ve onActive desteği sonlandırılmıştır.
- WithConstraints BoxWithConstraints olarak yeniden düzenlendi ve Foundation.layout öğesine taşındı. (I9420b, b/173387208)
Font/FontFamily/Typeface için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Küçük harfli eski fabrika işlevleri kullanımdan kaldırıldı ilk harfler
- Yeni fabrika işlevleri alt sınıflar
- Alt sınıfların oluşturucularını gizlediler. yalnızca fabrika fonksiyonları yoluyla üretilebilir.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı
- (I42aa7)
ComposeContentTestRule
kullanıma sunulduComposeTestRule
ve şu klasörden kaldırılansetContent
öğesini tanımlar:ComposeTestRule
.createEmptyComposeRule()
fabrika yöntemi eklendiComposeTestRule
döndüren ve şunun için bir Etkinlik başlatmayan: siz. Bunu, testiniz sırasında Etkinliğinizi başlatmak istediğinizde kullanın. ör.ActivityScenario.launch
kullanılarak (I9d782, b/174472899)animasyonluAsState artık animasyonluFooAsState. Foo ise animasyon uygulanan değişkenin türü. ör. Kayan, Dp, Offset vb. (Ie7e25)
Yoğunluk artık Düzenleme arayüzleri için alıcı kapsamı oldu. (I18aad)
TextFieldValue, AnnotatedString'i kabul eder. Ancak bu yalnızca API değişiklikleri ve çoklu stil metin düzenleme, uygulanmadığını unutmayın.
initial
, EditBuffer kurucu parametrelerinden kaldırıldı. (I326d5)
in Verify ve bestReference() yöntemi desteği sonlandırılarak, sırasıyla currentRecomposeScope ve chooseCompositionReference yerine kullanılmaya başlandı. (I583a8)
AnnotatedString, kotlin.CharSequence'dan farklı olacak şekilde değiştirildi. Bu nedenle uzunluk ve alt sıra, artık örnek fonksiyonlardır. ve uzantı işlevleri kaldırılır. (Iaf429)
Süre ve Çalışma Süresi, Uzun milisaniye olarak değiştirilir. ve bu adım, işaretçi girişinin mevcut kaynaklara olan bağımlılığını sınıflar. (Ia33b2, b/175142755, b/177420019)
AllowObserver, CompositionLifecycleObserver'ın yerini aldı ve CompositionLifecycleObserver desteği sonlandırıldı.
RememberObserver
, şunun yerine geçer: Değiştirilmiş anlamlara sahipCompositionLifecycleObserver
yeniden adlandırıldı. Yeni API'ye geçiş mekanik olarak yapılabilir hatırlanan ve unutulan bu nesneler için olması önerilir. Ancak bir referans bir bestede birden çok kez hatırlananonRemembered
değerineonEnter
değerinin yalnızca bir kez çağrıldığı her referans için.onEnter
. nesne alt bileşimlerde kullanılmışsa birden çok kez çağrılır, Örneğin,WithConstraints
veScaffold
single'ı yapıyoronEnter
arama garantisi güvenilir değil ve şu nedenle kaldırıldı:RememberObserver
.RememberObserver
,onAbandoned
Geçilen geri çağırmadanRememberObserver
örnek döndürüldüremember
olarak kaydedildi ancak beste durumunda hatırlanmadı ve dolayısıylaonRemembered
hiçbir zaman çağrılmaz. Bu bir istisna besteyi tamamlanmadan veya tamamlamadan feshederse eyalet üretim aşamasındaki için bestenin güncel olmaması veya artık güncel olmaması gerekir. Single'ın ardındanRememberObserver
örneği yukarıdaki referans öneri, harici bir kaynağın izlenmesidir hemonForgotten
hem deonAbandoned
, gerekli değildir. Nesne işi izliyorsaonRemembered
,onAbandoned
içinde başlatılan kaynaklaronRemembered
ise çağrılmayacağından yoksayılabilir çağrıldı. (I02c36)TransformedText.conversionsedText, DönüştürülmüşText.text olarak yeniden adlandırıldı
- TransformedText artık bir veri sınıfı (Ie672a) değil
Aşağıdaki sınıflar artık veri sınıfı değil:
- Ek AçıklamalıDize
- Paragraf Stili
- Aralık Stili
- Metin Stili
- Yazı Tipi Ağırlığı
- Metin Dekorasyonu
- MetinGeometrik Dönüşümü
- Metin Dizini
- Metin DüzeniSonucu
- TextLayoutInput (Iaff99)
Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
Genel koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri. (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 deneysel olarak işaretlendi. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. Accessibility ScrollState, ScrollAxisRange olarak yeniden adlandırıldı. YatayErişilebilirlikKaydırmaState, yatay KaydırmaAxisRange olarak yeniden adlandırıldı. dikeyAccessibility ScrollState, vertical ScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
VisualTransformation işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4)
Testlerde TestCoroutineDispatcher'dan yararlanın (I532b6)
PointerInputData kaldırıldı ve PointerInputChange değiştirildi tüm PointerInputData alanlarını veriyorum. İşaretçi Giriş Etkinliği Oluşturuldu ve PointerInputEventData dahili herkese açık API'ler. (Ifff97, b/175142755)
TextInputService.onStateUpdated, updateState (Id4853) olarak yeniden adlandırıldı
Kaçınılması gerektiği için displaySize değerini kaldırın. Genellikle en azından onRoot() veya pencere boyutu boyutunu kullanmak daha iyi. (I62db4)
Sürüm 1.0.0-alpha10
13 Ocak 2021
androidx.compose.foundation:foundation:1.0.0-alpha10
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha10
serbest bırakıldı. 1.0.0-alpha10 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- ImeOptions ve keyboardOptions artık bir veri sınıfı değildir (I3c898, b/168684531)
- VisualTransformation API Değişiklikleri
- Offsetmap, Offset Eşleme olarak yeniden adlandırıldı
- Offsetmap.identityOfsetMap, OffsetMatch.Identity olarak yeniden adlandırıldı
- PasswordTransformation artık veri sınıfı değil
- OffsetEşleme kendi dosyasına taşındı
- (I0bdf3)
- EditOperations API Değişiklikleri
- EditOperation, EditCommand olarak yeniden adlandırıldı
- EditOperation beton uygulamaları için Komut son eki eklendi
- EditCommand'ler artık veri sınıfı değil
- EditOperation.process işlevi, applyTo olarak yeniden adlandırıldı
- Giriş Etkinliği Listeer'ı, ReturnEventCallback olarak yeniden adlandırdı
- (I0a366)
- Hız, bileşen parçaları olacak şekilde değiştirilmiş ve matematiksel anlamına gelir. (Ib0447)
- @DeneyselTesting öğesinin adı @DeneyselTestApi olarak değiştirildi: benzer deneysel API ek açıklamalarıyla tutarlı (Ia4502, b/171464963)
- LazyColumn/LazyRow için deneysel stickyHeader yöntemi eklendi (I0a81d)
- Color.takeOrElse() için Ranamed Color.useOrElse() (Ifdcf5)
- TestUiDispatcher desteği sonlandırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
- Temel Strings.kt öğesine açma/kapatma düğmesini ekleyin (I4a5b7, b/172366489)
- NativeClass şuraya taşındı: ui modülünden geçti ve dahili hale getirdik. Şurada yerelClass kullanımları güncellendi: kullanılacak uygulama sayısına eşittir "MyClass" . (I4f734)
- FlowRow ve FlowColumn desteği sonlandırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
- Değiştirici.focus() ve Modifier.focusRequester() desteğine son verilmez. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference()'ı kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
- Seçim Yöneticisi'ne, Seçilebilir güncellemeleri bildirmek için SeçimRegistrar.notifySelectableChange kullanıma sunuldu. (I6ff30, b/173215242)
fun Dp.isFinite()
,val Dp.isFinite
(I50e00) olarak değiştirildi- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Şunun için isSpecified, isUnspecified ve useOrElse eklendi. Belirtilmemiş sabite sahip satır içi sınıflar. (I93f7b, b/174310811)
Hata Düzeltmeleri
- Karşılıklı münhasırlık sağlayan eş yordam tabanlı yeni API
Animatable
son derece başarılı. Çok boyutlu azalma animasyonunu destekleyen yeni DecayAnimationSpec desteği (I820f2, b/168014930) - Devre dışı bırakılan ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
animate()
,animateAsState()
ile değiştirildi. Bu değer,T
yerineState<T>
değerini döndürür. Böylece daha iyi daraltılabilir. Bunun nedeni, performansın eyalet değerinin okunacağı yere ekleyin. (Ib179e)- Anlamsal rol API'sini ekleyip parametre olarak Rol'ü seçilebilir ve devre dışı bırakılabilir SemanticsModifier ile çalışır. Değiştirildi Değiştirici.progressSemantics, böylece Slider bunu da kullanabilir. (I216cd)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent (I87c57, b/173086397) üzerinden 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
serbest bırakıldı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.
API Değişiklikleri
Kaydırılabilir arayüz ekleyin
Bu, ScrollState ve LazyListState'in ortak özel kaydırmanın her iki türde de uygulanmasına olanak tanır.
Bu aynı zamanda smooth ScrollBy'ı Kaydırılabilir'deki bir uzantı işlevine taşır. bu işlevden yararlanmaktır. (I2153b)
LazyVerticalGrid eklendi. (I17267, b/162213211)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed'in desteğini sonlandırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)
İşaretçi giriş API'lerini askıya almak için yeniden adlandırıldı HandlePointerInputScope to AwaitPointerEventScope ve allowPointerInput() işlevini kullanarak awaitPointerEventScope() öğesini ayarlayın. (Idf0a1, b/175142755)
Şu anda görünür olan öğelerin boyut ve ofsetlerinin 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 tersineLayout parametresi ekleyin. alttan yukarıya doğru
true
öğe oluşturulduğunda veLazyListState.firstVisibleItemIndex == 0
, ilk öğenin en altta yer aldığı anlamına gelir. (I552ae, b/166589935)LazyColumn için verticalArrangement parametresi eklendi. LazyRow için YatayArrangement parametresi eklendi. Düzenleme, öğeler arasında bir boşluk bırakmamızı ve minimum boyutun tamamını dolduracak kadar yeterli olmadığında öğelerin yerleşimini belirlememizi sağlar. (Icf79a, b/170394300)
"DetectMultiDokunmatik Hareketler" artık birleşik öğe ile tek bir geri çağırma kullanıyor merkez, kaydırma, yakınlaştırma ve döndürme parametreleri. (Ie6e1c)
ContentDrawScope kullanıcı arayüzü grafiklerine taşındı modülünü kullanabilirsiniz. (Iee043, b/173832789)
Hata Düzeltmeleri
- Ofset değiştiricilerdeki Lambda'lar artık Kayma yerine IntOffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader ve kaldırıldı Genel API'den SlotWriter. Bunlar şu şekilde işaretlendi: InternalComposeAPI'yi kullanmıştım. Artık bunlar şirket içi modülüne geçelim.
CompositionData ve CompositionGroup ayıklamak için kullanılacak ui-tooling API'sinin yerine beste bilgisidir. Bunlar herkese açıktır ancak herkese açık değildir. sağladığı için ui-tooling API'sinin dışında kullanılmak üzere tasarlanmıştır. ui-tooling API'nin yorumladığı ham bilgiler (I31a9c)
GölgelendiriciBrush'ı şu şekilde yeniden düzenledi: bir gölgelendirici örneği oluşturarak çizimin boyut bilgileri kullanılabilir durumda olduğundan emin olun. Bu yöntem, farklı renklerdeki gradyanları composable'ın tüm çizim sınırlarını kaplar bestelemenize gerek kalmadan uygulamaları hakkında bilgi edinin.
Desteği sonlandırılan gradyan işlevi oluşturucu API'leri tercih ettik. (I511fc, b/173066799)
Değiştirici.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
Autofill API artık deneysel bir API olup etkinleştirilmesini gerektiriyor (I0a1ec)
FocusRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
AccessibilityLabel, contentDescription olarak yeniden adlandırıldı. erişilebilirlikValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
SelectRegistrar'da birkaç yeni işlev tanıtıldı ve onPositionChange, NotificationPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
Dahili Android Sahibi (Ibcad0, b/170296980)
Infinite RepeatableSpec oluşturmak için yeni infinite Repeatable işlevi (I668e5)
Applier
arayüzü basitleştirilecek şekilde değiştirildi yukarıdan aşağıya değil, aşağıdan yukarıya doğru inşa edebilirsiniz.insert()
yöntemiinsertTopDown()
olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()
) eklendi.Bir uygulayıcı, düzenlediği ağaca düğüm ekler bağlı olarak
insertTopDown()
veyainsertBottomUp()
kullanılıyor ve daha iyi performans gösterdiğini göreceksiniz.LayoutNode
veView
gibi bazı ağaçlar çok daha fazladır yukarıdan aşağıya doğru oluşturmak yerine aşağıdan yukarıya doğru oluşturmak daha etkilidir. Bu değişiklikten önce aşağıdan yukarıya uygulamak için bir dizi ekleme gerekiyordu. her uygulayıcıya kopyalanması gerekti. her şeyi öğreteceğim. Bu değişiklikle birlikte birApplier
aşağıdan yukarıya ağaç oluşturmak içininsertBottomUp()
değerini geçersiz kılar ve Ağacı yukarıdan aşağıya inşa etmek içininsertTopDown()
. (Icbdc2)PainterResource API eklendi opak biçimde yüklenen Painter nesnelerini işlemek için Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables. Tüketiciler artık Böylece öğe türünü önceden belirlemek ve bir Painter nesnesi almak için bu yöntemi çağırabilir resim composable'larında veya ressam değiştiricilerinde kullanılacak. (I2c703, b/173818471)
BuildAnnotatedString fabrika işlevi sırayla eklendi kullanarak AnnotatedString oluşturun. Kullanımdan kaldırıldı Ek Açıklama Dizesi oluşturucu işlevi. (Idfe0b)
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
serbest bırakıldı. 1.0.0-alpha08 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
maxLines
parametresiCoreTextField
reklam grubundan kaldırıldı. Metin alanının yüksekliğini satır sayısıyla sınırlamak istiyorsanız bunun yerineBasicTextField
değerini kullanın. (Iec002)await*TouchSlop()
yöntemleri şu şekilde değiştirildi: aşağı işaretçiyi algılamadı ve*OrCancellation
. AyrıcaorientationLock
parametresinden yararlanın. (Ie96e1)- Oluşturma yönergeleriyle tutarlılığı kontrol etmek üzere composable lambda parametresi adı ve konumu için lint denetimi eklendi.
Ayrıca, lint kontrolü ve rehberlik doğrultusunda, sondaki lambdaların adı olarak
children
kullanılan bazı API'ler decontent
ortamına taşındı. (Iec48e) foundation:foundation-text
API,foundation:foundation
hedefine taşındı. Paket yapısı aynı kaldı (Id3eb2)- Yeni çoklu dokunma hareket algılayıcı: döndürme, yakınlaştırma ve kaydırmayı algılamaya yönelik yardımcılar. (Ic459d)
- Yeni sürükleme hareketi algılayıcı askıya alma işaretçisi giriş API'si (yön kilitleme dahil). (Icef25)
- VectorAsset, ImageVector olarak yeniden adlandırıldı VectorAsset, Builder olarak taşındı ve yeniden adlandırıldı. şuna göre ImageVector'ın iç sınıfı olmalıdır: API konseyi yönergeleri. VectorAssetBuilder için tür takma adı şuna eklendi: ImageVector.Builder bağlantısını kullanabilirsiniz. (Icfdc8)
- Yeniden Adlandırılan ImageAsset ve benzer yöntemler kullanır. (Ia2d99)
- Temel anlamsal özellikleri kullanıcı arayüzüne taşındı (I6f05c)
Eş yordam tabanlı kaydırma API'leri ekleyin:
LazyListState.snapToItem ve LazyListState.smooth ScrollBy ile alt düzey ekler Kaydırma kontrolü API'leri. Bu API'ler, kaydırmayı kontrol eden bir askıya alma arayüzü sağlar bekleyene kadar bir e-posta alırsınız. (Ie5642)
BasicTextField, TextField ve OutlinedTextField öğelerine singeLine parametresi eklendi. Metin alanını yatay olarak kaydırılabilir tek bir satır yapmak için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)
Dokunma, iki kez dokunma, uzun basma için hareket dedektörü ve basın göstergesi, yeni askıya alma işaretçisi kullanılarak eklendi. giriş. Ayrıca, işinizi kolaylaştıran ve geliştiricilerin kendi hareket dedektörlerini yazmalarını sağlayın. (I00807)
Modifier.focusable'ın temele eklenmesi gerekiyor. Bir bileşene doğru anlamlar ve erişilebilirlikle odaklanılabilir davranış eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)
Daha önce kullanımdan kaldırılan API'ler kaldırıldı: Sınır kaldırıldı, bunun yerine BorderStroke'u kullanın. Değiştirici.drawBorder kaldırıldı, bunun yerine Değiştirici.sınırını kullanın. Değiştirici.gravity kaldırıldı, bunun yerine Değiştirici.align'ı kullanın. Yığın kaldırıldı, onun yerine Box'ı kullanın (I32c2b, b/172470874)
MutlakArrangement, Arrangement.Mutlak olarak yeniden adlandırıldı. (If26f2)
Hata Düzeltmeleri
- DrawModifier API'leri androidx.compose.ui paketini androidx.compose.ui.draw paketinde bulabilirsiniz. DrawModifier Uyumsuz.kt dosyası oluşturuldu: yardımcı olacak tiptaktikler/yardımcı yöntemler içermelidir desteği sonlandırılandan güncel API'ler. (Id6044, b/173834241)
- Değiştirici.drawKatmanlar, Değiştirici.graphicsKatman olarak yeniden adlandırıldı Ayrıca, ilgili sınıflar şu şekilde GraphicsKatman olarak güncellendi: API konseyi geri bildirimi. (I0bd29, b/173834241)
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- PointerInputData'nın çalışma süresini konum alanları boş bırakılamaz. (Id468a)
- MaterialTheme, artık seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Materyal olmayan uygulamalar, seçimde kullanılan renkleri özelleştirmek için AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
- ofPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık State yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
- Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağrısı sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947) öğesine sıfırlamaInput parametresi eklendi
- TextFieldValue API'si güncellendi
- TextFieldValue.composition salt okunur yapıldı
- geçersiz seçim aralığı (I4a675, b/172239032) nedeniyle kaldırıldı istisna
- Sonek olarak
Ambient
adını taşıyan ve desteği sonlandırılmış Ambiyanslar, diğer Ambients and Compose API kurallarına uyarak Ambient ön ekini taşıyan yeni özellikler eklendi. (I33440) - Android Yazı Tipi sarmalayıcı eklendi. Android hesap yükleyebilir
typeface
işlevi (ör.typeface(Typeface.DEFAULT)
) aracılığıyla yazı karakteri.typefaceFromFontFamily()
adlı dosya datypeface()
olarak yeniden adlandırıldı (I52ab7) - Değiştirici fabrikaların
@Composable
olarak işaretlenmek yerine dahili olarakandroidx.compose.ui.composed {}
kullanıp kullanmadığını kontrol etmek için lint denetimi eklendi. (I3c4bc) - Değiştirici fabrika işlevlerinin, akıcı bir şekilde birbirine zincirlenebilmesi için Değiştirici'de uzantılar olarak tanımlandığını kontrol etmek için lint denetimi eklendi. (I07981)
- Anlamsal bağımsız değişken birleştirmeAllDescendants olarak yeniden adlandırıldı birleşim. (Ib6250)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneysel (I6ef86, b/171378521)
- Eski kullanıcı arayüzü testi modülünü ve uçlarını kaldırın (I3a7cb)
- TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlı olarak belirtilmemiş. (Ifce19)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
foundation:foundation-text
modülü,foundation:foundation
(Idac0f) modülünde birleştirildi- Yer(Ofset) ve Placeground(Ofset) değerlerini kullanımdan kaldırın. Bunun yerine int ofsetleriyle aşırı yüklemeleri 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
serbest bırakıldı. 1.0.0-alpha07 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
Modifier.fillMaxSize[Width|Height]
işlevine benzer şekilde, artıkModifier.fillParentMaxSize[Width|Height]
dilindeki kesirli değerleriLazyColumn/Row
(I797e2, b/166586426) kapsamında destekliyoruz.KeyboardOptions.toImeOptions
, herkese açık API'den kaldırıldı. (Ic2e45)- AmbientTextStyle, OfferTextStyle ve AmbientContentColor temelinin desteği sonlandırıldı. Bunun yerine Materyal kitaplığında mevcut olan yeni sürümleri kullanın. Materyal olmayan uygulamalar için bunun yerine, kendi bileşenlerinizde tüketilebilecek kendi tasarım sisteminize özel tema ambiyanslarını oluşturmalısınız. (I74acc, b/172067770)
- Foundation.Text desteği sonlandırılmış ve asset.Text ile değiştirildi. Temadan değer kullanmayan temel ve işlemsiz metin API'leri için androidx.compose.foundation.BasicText adresini ziyaret edin. (If64cb)
- Metin Alanlarına maxLines eklendi (Ib2a5b)
- TextFields'i KlavyeSeçenekleri (Ida7f3) kabul edecek şekilde güncelleyin
- Metin Alanlarında (I9ca32) kullanım için Klavye Seçenekleri eklendi
- BasicTextField'e paralel olarak BasicText'i, metin için tasarımsız bir API olarak ekler. (I28268)
- DeneyselLazyDsl ek açıklaması kaldırıldı. LazyColumn/LazyRow artık @OptIn ifadesi eklenmeden kullanılabilir (Idab7a, b/166584730)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField alanını kullanın. (I896eb)
- BasicTextField, hem CoreTextField hem de BaseTextField (Id4cea) seçeneklerinin yerine eklendi
- Desteği sonlandırılan LazyColumnItems/LazyRowItems (I1d8a8) kaldırma
- İçsel ölçümlere göre boyutlandırma için desteği sonlandırılmış composable'lar kaldırıldı. (I18537, b/171811496)
- relPaddingFrom, FILLFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin temel çizgilerine olan mesafeleri belirtmeyi kolaylaştırmak amacıyla FILLFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
- matchHeightConstraintsFirst parametresi, en boy karşılık gelenleri denemeden önce boyut-yükseklik kısıtlamalarına göre değiştiriciyi belirtmek için kullanılabilecek en boy oranı değiştiricisine eklendi. (Ie7c43, b/155290593)
- Kullanımdan kaldırılan DpConstraints kaldırıldı. (I87884, b/171702471)
Hata Düzeltmeleri
- ScaleFactor kullanıma sunuldu
ölçeği temsil edecek satır içi sınıf
yatay ve dikey faktörleri
sırayla ve birbirinden bağımsız eksenler
destekleyici araçlar da sunar.
- computeScaleFactor yöntemi, İçerikÖlçeklendirme
- Gerçekleştirilecek ContentScale.FillBounds eklendi src öğesini genişletmek için tek tip olmayan ölçeklendirme başlangıç noktasının tamamını kaplayacak.
- İşlem için operatör yöntemleri eklendi Boyut parametrelerine sahip ScaleFactor parametreleri.
- (Ic96a6, b/172291582)
- receiveToBitmap, captureToImage öğesine taşındı. (I86385)
- CoreText'i @DahiliTextApi olarak işaretler. Bunun yerine BasicText'i kullanın. (I6aaeb)
- Klavye Seçeneklerini ImeOptions olarak yeniden adlandırın (I82f36)
- Klavye Türü ve ImeAction, KlavyeSeçeneklerine taşındı (I910ce)
- CoreTextField, @DahiliTextApi olarak işaretlendi. Bunun yerine BasicTextField'i kullanın (Ie2469)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout, artık @OptIn öğesi eklenmeden kullanılabilir (I708ad)
- ui-test-junit4 modülünü tanıtın (Ib91f8)
- Color.Unspecified için simge API'si güncellendi. mümkün olan bir ton rengi kullanarak herhangi bir öğe veya boyaya sahip olmayabilir. Önceden renk tonlamayı göz ardı etmeye çalışıyor.Belirtilmemiş tonlamaya başlar ve sonunda şeffaf bir ve hiçbir şey oluşturulmaz. (I049e2, b/171624632)
- MeasureResult, MeasureScope dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)
- androidx.ui.test, androidx.compose.ui.test adresine taşındı (I9ffdb)
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
- Geri çağırma içermeyen Seçim Container'ı eklendi (Ibfadb)
- Seçim İşleyicileri için Testler Ekle SelectContainer'daki konumlar. (Ie93db)
- Klavye otomatik düzeltme IME Seçeneği eklendi (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
serbest bırakıldı. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- androidx.compose.foundation.Icon, androidx.compose.material.Icon konumuna taşındı. Materyal kitaplığını kullanmak istemiyorsanız Resim bileşenini / Değiştirici.paint() işlevini bir Painter ile de kullanabilirsiniz. (I9f622)
- Değiştirici.scrollable, ScrollableColumn ve LazyColumnFor'a engagementState eklendi (I81566, b/169509805)
- alignByBaseline, RowScope'a eklendi ve levelWithSiblings, "squareBy" olarak yeniden adlandırıldı (I06503, b/170628732)
- Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)
- CoreTextField'e maxLines eklendi (Ibee58, b/143687793)
- CoreTextField'e yumuşak sarma eklendi. (I21a4b)
Hata Düzeltmeleri
- VectorPainter'ı kullanımdan kaldır: hatırlamak için VectorPainter'ın composable API'nin dahili olarak “hatırla” farklı platformlarda bileşimler. (Ifda43)
- ComposeTestRule'da geçişleri etkinleştir; seçeneği kaldır ComposeTestRule'da yanıp sönen imleci etkinleştirin. (If0de3)
- CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
- Radius API şu şekilde yeniden adlandırıldı: Daha iyi ifade etmek için Köşe Yarıçapı nasıl kullanıldığına bakalım. Dokümanları negatif köşe yarıçaplarının sabitlendiği sıfıra eşittir. (I130c7, b/168762961)
- Oluşturulan değiştiricide inceleyici bilgilerini belirtme özelliği ekleyin (Idee08, b/163494569)
- Klavye Büyük Harf Kullanımı IME Seçeneği Eklendi (I8ac38)
- Rtl Tutma Yeri Konumunu Düzeltin. (I6e1e0)
- Önemli değişiklik: İşaretçi etkinliklerinde değiştirilebilmesi gereken tek değer tüketim verileri olduğu için döndürülen değer PointerInputFilter.onPointerEvent(...) öğesinden kaldırıldı. PointerInputFilter.onPointerEvent(...) öğesinden veri döndürmek yerine, artık yalnızca iletilen PointerEvents tüketim verilerini değiştirebilirsiniz. (I6acd0)
- Seçim menüsüne SelectAll 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
serbest bırakıldı. 1.0.0-alpha05 sürümü bu kaydetmeleri 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 ambiyanslarla değiştirir. Geçerli değere, diğer ambiyanslarda olduğu gibi ambiyans özelliğinde
.current
kullanarak erişebilirsiniz. Bu değişiklik, tutarlılık ve aynı şeyi başarmak için birden çok yöntemden kaçınmanız amacıyla yapılmıştır. Ayrıca aşağıdaki ortam özelliklerini daha iyi tanımlayabilmek için bazı ambiyans özelliklerini de yeniden adlandırıyor:- ContentColorAmbient -> Ambiyans İçerik Rengi
- TextStyleAmbient -> Ambiyans Metin Stili
- IndicationAmbient -> Ambiyans Göstergesi
- EmphasisAmbient (Ambiyans Vurgusu) -> Ambiyans Vurgu Seviyeleri
- Dalga Teması (Ambiyans) -> Ambiyans Dalgası Teması (I37b6d)
Hata Düzeltmeleri
- Standartlaştırma sürecinin bir parçası olarak sentinel değerlerinden farklıdır. Rengi yeniden adlandır.Ayarlanmadı. Renk.Belirtilmemiş diğer satır içi sınıflarla tutarlılık için (I97611, b/169797763)
- Eklenen Kopyalama/Yapıştırma/Kesme erişilebilirlik işlemleri (I6db4f)
- TextOverflow.None kullanıma sunuldu. Taşma değeri Yok olduğunda, Metin artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
- Boyut Güncellendi.Belirtilmemiş gibi parametreleri kullanabilirsiniz. Kayan.POSITIVE_INFINITY. Painter uygulamaları size veya boyuta göre de kontrol edilir. Boyutlar. (I95a7e)
- Sayfa Oluşturma modülü ve sayfa oluşturma entegrasyonu eklendi (Ib85da)
- Boş değer atanabilir değerler almak için LazyListScope'u değiştirin (I1765b)
- OnPositionedModifier, OnGloballyPositionedModifier olarak yeniden adlandırıldı ve onPositioned(), onGloballyPositioned() olarak yeniden adlandırılır. (I587e8, b/169083903)
- LazyColumn/Satır (Idc16d) için örnekler eklendi
- emptyList'e izin vermek için itemsIndexed yöntemleri ve itemsIndexed yöntemleriyle ilgili düzeltme (I06647)
- Denetleyici bilgilerini belirtmek için bir DSL ekleyin (Ic9a22)
- Long Press'i Metne Taşı. (Iff2bc)
- Metinde Seçimi Devre Dışı Bırak ve bir Demo. (Ie7e97)
- Erişilebilirlik için AnnotatedString'i SpannableString'e dönüştürme desteği. (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
serbest bırakıldı. 1.0.0-alpha04 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Foundation.Box kullanımdan kaldırılarak, generate.foundation.layout içindeki yeni Box'a sahip olacak. Yeni Box'ın davranışı, birden çok alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer davranışlarda bulunan önceki Box'tan farklıdır. (I94893, b/167680279)
- Box dekorasyon parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgular olmasını istiyorsanız bunun yerine Değiştiriciler'i kullanın (Modifier.background, Değiştirici.gider, Değiştirici.Dolgu) (Ibae92, b/167680279)
- Yeni LazyListState sınıfı ekleyin. Bu, öğelerin kaydırma konumunun gözlemlenmesine ve kontrol edilmesine olanak tanır. LazyRow ve LazyColumn bileşenleri Örnekler, HatırlamaLazyListState() ve öğenin durum parametresine bir bileşenidir. Şu anda, ilk görünür öğe ve ofsetler gözlemledik. (Ic7cb7, b/159307669)
- Geç liste konumu ve kaydırma ofseti artık kaydediliyor ve Etkinlik yeniden oluşturma genelinde geri yüklendi (Ie045f, b/166589058)
- Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
- zaman içinde paylaşılan durumun ve çelişen mutatörlerin önceliğe göre iptal edilmesi (I3f975)
- Ek açıklamalı rootAnimationClockFactory, geçişsEnabled, blinkingCursorEnabled ve textInputServiceFactory'yi @visibleForTesting, dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
- Dize girişli Metin'den inlineContent parametresi kaldırıldı. Satır içi Content'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ıtlamalarıyla ölçülmesini sağlayan WrapContentSize değiştiricilerine eklendi. (I77951, b/158559319)- Düzen kapsamlarının içeriklerinin statik içe aktarılmasını önledik (ör. RowScope'ta alignWithSiblings). Bunun yerine açık kapsam alternatifi kullanılmalıdır:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Hata Düzeltmeleri
- Çok sayıda Graphics API'si güncellendi
- Ölçek ve rotasyon güncellendi dönüşüm API'lerini kullanarak tek bir Özeti temsil eden ofset parametresi koordinatı koordine etmeye çalışın x/y koordinatlarına ilişkin parametreler DrawScope ve DrawTransform
- Rect.expandToInclude ve Rect.join kaldırıldı yöntemler
- Yarıçap dokümanları oval ifadesi içerecek şekilde güncellendi eliptik bisiklete ek olarak
- satır içi Yarıçapı genel kurucusu sınıfın doğrudan çağrılması değil, Yarıçap nesneleri şu şekilde örneklenmelidir: işlev kurucuları
- topRight'ı sorgulamak için RoundRect API'ler kaldırıldı. bottomRight, bottomCenter vb.
- Rect.shift desteği sonlandırıldı ve Rect.translate'ye geçiş yapıldı
- roundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect paketinin adı Rect.boundingRect olarak yeniden adlandırıldı.
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect kaldırıldı ve Rect.isStadium yöntemlerinin yanı sıra
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
- roundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
- RoundRect.center işlev yerine bir özellik olarak değiştirildi
- Radius özelliklerini tüketecek şekilde RoundRect oluşturucu güncellendi x/y yarıçap değerleri için bağımsız parametreler yerine
- Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı. başlangıç noktası 0,0
- Yarıçap'a yıkıcı bir API eklendi
- Şuraya taşındı: mülkler
- (I8f5c7, b/168762961)
- Her kaydırma sırasında gereksiz yeniden düzenleme yapmayarak LazyColumnFor/LazyRowFor kaydırmaya yönelik performans optimizasyonları (I64f65, b/168293643, b/167972292, b/165028371)
- Kaydırma işleminden ve ardından öğelerin değiştirilmesinden sonra LazyColumnFor/LazyRowFor'daki kilitlenme düzeltildi. Artık sonda boş boşluklar göstermemek için, önceden görünür olan öğe kaldırıldığında otomatik yukarı kaydırma uygulanmaya başlandı (I220ab, b/161480164, b/167855468).
- ScrollableContainer ve LazyColumnFor gibi aynı yön kapsayıcılarına artık kaydırılabilir yerleştirmeye izin verilmiyor. Bu hizmet hiçbir zaman desteklenmiyordu, LazyColumnFor (I6e101) öğelerini derlemenin tembelliğinden kurtulmaya çalışıyordu
- Çok sayıda Graphics API'si güncellendi
- Kapsamlı DrawScope API'leri güncellendi yöntemlerinin mevcut olduğunun yalnızca geri çağırma ve geri çağırma çağrıldıktan sonra kaldırılır
- ClipPath dokümanları Yol değerine başvuracak şekilde güncellendi yerine yuvarlatılmış dikdörtgen
- Sağ parametre için belgelerdeki boşluk sabitlendi ClipPath'de
- DrawScope.drawCanvas,drawIntoCanvas ve boyut parametresi kaldırıldı
- Inset yöntemindeki dx/dy parametreleri şu şekilde yeniden adlandırıldı: yatay ve dikey
- Aynı 4 sınıra inset değeri
- Inset yönteminde, aşağıdakileri gösteren dokümanlar kaldırıldı: bu ek, 4 tarafın tümüne uygulanır
- Rect sınıfı için güncellenen dokümanlar
- Rect parametrelerindeki yorumlar kdoc ile eşleşecek şekilde güncellendi stil
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) ve için aşırı yük oluşturuldu desteği sonlandırılan Rect.shift
- (If086a, b/167737376)
- Anlamsal özelliklerine Accessibility ScrollState'i 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 şimdi doğrudan Paragraf'a geçirilir. (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
serbest bırakıldı. 1.0.0-alpha03 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- InnerPadding, PaddingValues olarak yeniden adlandırıldı. (I195f1, b/167389171)
- Yer çekimi kullanımları, düzen API'lerinde hizalama veya hizalama için tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Yığına, tüm Yığın alt öğeleri için varsayılan hizalamanın belirtilmesini sağlayan bir hizalama parametresi eklendi. (Ie80ca, b/164085265)
Hata Düzeltmeleri
- Bunu kullanan DpConstraints ve API'ler kullanımdan kaldırıldı. (I90cdb, b/167389835)
widthIn
parametrelerindenminWidth
vemaxWidth
parametrelerimin
vemax
olarak yeniden adlandırıldı. Benzer şekildepreferredWidthIn
,heightIn
,preferredHeightIn
için de geçerlidir. (I0e5e1, b/167389544)- onNode ve ComposeTestRule'a diğer genel yöntemler şu şekilde eklendi: global olanların desteği sonlandırılacaktır. (Ieae36)
- Hareket Kapsamı'ndaki sabit boyut ve konum hesaplamaları diğer kullanıcılar arasında geçersiz kaydırma hareketlerine neden oldu (Iaf358, b/166589947)
createAndroidComposeRule
veAndroidInputDispatcher
, şuradan taşındı:androidx.ui.test.android
-androidx.ui.test
(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
serbest bırakıldı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.
Hata Düzeltmeleri
- TestUiDispatcher deneysel olarak işaretlendi (Iae99d, b/161247083)
Herhangi bir şey olup olmadığının anlaşılması için
ManualFrameClock.hasAwaiters
eklendi o saatten bir kare bekleyebilir; Yedek olarakrunWithManualClock
ManualFrameClock gerektiren testler çalıştırırkenrunBlocking
için; Ana kullanıcı arayüzü sevk görevlisine kolay erişim sağlayanTestUiDispatcher.Main
güven kazanmanın bir yoludur.Ö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
serbest bırakıldı. 1.0.0-alpha01 sürümü bu kaydetmeleri içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.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
serbest bırakıldı. Sürüm 0.1.0-dev17 bu kaydetmeleri içerir.
API Değişiklikleri
- Konumlandırma düzeni alt öğelerini sabit aralıkla etkinleştirmek amacıyla Satır ve Sütun için aralıklı Düzenleme öğesi eklendi. Düzen alt öğelerini yan yana konumlandırmayı ve Hizalamaya göre Satır/Sütunda hizalamayı etkinleştirmek için hizalı Bağımsız değişken de eklendi. Önceki Arrangement.Vertical#arrange ve Arrangement.Horizontal#arrange yöntemleri kullanımdan kaldırılmış olup özel Düzenlemeler yazma ileride desteklenmeyecektir. (I6733d, b/161985975)
- Zaman farkı satır içi bir sınıf oldu (Iaec70)
- TextField'den onFocusChanged geri çağırması kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Değiştirici.drawBorder desteği sonlandırıldı. Bunun yerine Değiştirici.sınırı kullanın. Sınır veri sınıfı BorderStroke (I4257d, b/158160576) ile değiştirildi
- Vertical Scroller ve Horizontal Scroller kaldırıldı. Bunun yerine ScrollableColumn/Row'u kullanın. Değiştirici.drawArka Plan kaldırıldı. Değiştirici.background'ı kullanma (I73b0d, b/163019183)
- LazyItemScope'tan (LazyColumnFor (Ifa78d) doğrudan alt öğeleri olmayan öğeler için bu tür değiştiricileri doğru şekilde eklemeyi zorlaştırdığı için, desteği sonlandırılmış dolguMax* değiştiricileri olarak işaretlenmiş olanları) kaldırın.
- LazyColumn/LazyRow uygulamasını DSL (I93cc6) olarak ekledi
- Kısıtlamalar artık satır içi bir sınıf (I88736)
- FillMaxWidth, dolguMaxHeight ve dolguMaxSize değiştiricileri kullanılarak düzeni, kullanılabilir alanın daha küçük bir kısmına boyutlandırma özelliği eklendi. (I945bb, b/161562591)
Hata Düzeltmeleri
- Seçim Kapsayıcısına bir değiştirici parametre eklendi (I4aada, b/161487952)
- SemanticsPropertyKey'e birleştirmePolitikası lambda eklendi. Bu özellik, BirleştirmeAllDescendants anlamında özel politika tanımlamak için kullanılır birleştiriliyor. Varsayılan politika, zaten varsa üst değer kullanılır alt değeri ifade eder. (Iaf6c4, b/161979921)
PlacementScope.placeAbsolute()
,PlacementScope.place()
, öncekiPlacementScope.place()
isePlacementScope.placeRelative()
olarak yeniden adlandırıldı. Sonuç olarak,PlacementScope.place()
yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmaz. Bunun yerinePlacementScope.placeRelative()
kullanın. (I873ac, b/162916675)- 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 TextField'i kullanın. (I5e889)
- DoğrusalProgressIndicator'a backgroundColor parametresi eklendi ve CircularProgressIndicator'daki dahili dolgu kaldırıldı. Değerler arasındaki ilerlemeyi canlandırırken varsayılan AnimationSpec olarak kullanılabilen yeni ProgressIndicatorConstants.DefaultProgressAnimationSpec öğesi eklendi (If38b5, b/161809914, b/161804677)
state { ... }
composable artık kullanımdan kaldırıldı ve daha net bir şekilderemember { mutableStateOf(...) }
için yapılan uygunsuz çağrılar. Bu, genel API yüzeyini ve durum ile ilgili kavramların sayısını azaltır yönetimi ve sınıf içinby mutableStateOf()
kalıbıyla eşleşir izin verebilirsiniz. (Ia5727)- RRect, RoundRect olarak yeniden adlandırıldı adlandırma kalıplarına daha uygun olması için Benzer işlev kurucuları oluşturuldu RRect işlevine ve desteği sonlandırılan RRect işlevine oluşturucular (I5d325)
- onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler, onPositioned ve OnPositionedModifier kullanmalıdır. alt düzeninde kullanabilirsiniz. (I4522e, b/162109766)
- IntSize artık satır içi bir sınıftır (I2bf42)
- Düzenlemek için Boş Alana Uzun Basın. (Ib1e5b)
- Metne Dokunmadan 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ın. (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
serbest bırakıldı. Sürüm 0.1.0-dev16 bu kaydetmeleri içerir.
API Değişiklikleri
- LazyItemScope, Geç listelerin itemContent parametresi için eklendi. Üst maksimum boyutu doldurmak için değiştiriciler sağlar. Böylece, öğenin görüntü alanını doldurması gerektiğinde kullanım alanı çözülür ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğünden normal Modifier.fillMaxSize() çalışmaz. (Ibd3b2, b/162248854)
- İ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. Bu özellik, mevcut bir öğeye ek olarak mevcut bir dizini bilmeniz gerekiyorsa yararlıdır. (I65ff3)
- Değiştirici.deternimateProgress, Değiştirici.progressSemantics (I9c0b4) olarak yeniden adlandırıldı
- LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor (I84f84) olarak yeniden adlandırıldı
- En iyi uygulama nedeniyle birkaç İşaret/Not ekleyin. (I66b20)
- Foundation.shape.corner paketi, Foundation.share olarak düzleştirilmiştir (I46491, b/161887429)
- LazyRowItems/LazyColumnItems için Mutlak yer çekimi parametresi eklendi. LazyRowItems/LazyColumnItems artık içerik sarmalama davranışını desteklemektedir. (Ib39fc)
- ZoomableState, ZoomableController olarak yeniden adlandırıldı. smoothScale için özel eğri desteği eklendi.
enabled
veonZoomStarted
işlevleri eklendi (If8b8f) - Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, istenen en basit API'nin kolayca keşfedilmesi ve kullanılması için BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676)
- Daha önce desteği sonlandırılan AdapterList kaldırıldı. Bunun yerine LazyColumnItems'i kullanın (I12b9b)
- Değiştirici.drawbackground, Değiştirici.background (I13677) olarak yeniden adlandırıldı
- Eski ConstraintLayout DSL'si kaldırıldı. ConstraintSet2, ConstraintSet olarak yeniden adlandırıldı. (If58d1, b/162450908)
- Modifier.exactOffset() ve Modifier.strictOffsetPx() eklendi. Ofset değiştiricilerinden farklı olarak, mutlak uzaklık değiştiricileri sağdan sola bağlamda otomatik olarak yansıtılmaz (I3aa21)
Row
veColumn
artık önemli ölçüde satır içi işlevi görüyor ve kullanımın ek yükünü azaltır. (I75c10)
Hata Düzeltmeleri
- Genel API düzeltmelerini ele alma (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve IntOffset sınıflarını tutarlı bir API yüzeyi
- IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın ofset API ile tutarlı olmasını sağlayın
- NativeCanvas yöntemi Canvas'tan taşındı oluşturmalarını sağlayan bir arayüze sahip. kendi Canvas örnekleri
- Yeniden düzenlemek için BlankCanvas saplama sınıfı oluşturuldu DrawScope alanının lateinit ve alanın null olmadığından emin olun
- ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı
- Filtre Kalitesi enum'ları Pascal Case olarak yeniden adlandırıldı
- StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı
- PointMode enum'ları Pascal Case olarak yeniden adlandırıldı
- PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
- PathFillType sıralamaları, Pascal Case olarak yeniden adlandırıldı
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı
- DrawCache uygulaması artık kullanılamayacak şekilde güncellendi lateinit parametrelerini kullan
- DrawScope artık geç yetkilendirme kullanmayacak şekilde güncellendi fillPaint ve walkPaint dahili parametreleri için
- Box kullanımını önlemek için composable adlı resim güncellendi (daha az ek yük için)
- Outline sınıfı, @Sabit ek açıklamaları içerecek şekilde güncellendi
- PathNode, her yol talimatı
- Gereksiz öğeleri kaldırmak için vektör alt bileşimi güncellendi oluşturma işlemi zaten işlendiği için eşitlik için koşullu kontroller onlar
- Desteği sonlandırılmış Rect tamamlayıcı oluşturucu yöntemleri lehine işlev kurucuları
- Fırça sınıfları ve işlev oluşturucuları şununla güncellendi: @Sabit ve @Kararlı API'ler
- VertexMode sıralaması PascalCase olarak güncellendi
- DrawScope selectPaint yöntemi koşullu olarak güncellendi fırça parametrelerinin üzerine yazıldıysa değişti
- Yapıyı bozan API eklemek için Boyut güncellendi, yeniden adlandır BelirtilmemişSize ile Belirtilmemiş ve kullanılmayan yöntemler kaldırıldı
MonotonicFrameAnimationClock eklentisine sahip olan MonotonicFrameAnimationClock Boşluğu doldurmak için bir AnimationClockObservable olarak MonotonicFrameClock yeni eş yordamlara dayalı saatler ile hâlâ eskiyi kullanan API'ler arasında saatlere dayanıyor.
ManualAnimationClock'ın MonotonicFrameClock eşdeğeri artık ManualFrameClock'ı seçin. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Tekliflerinizi otomatikleştirmek ve optimize etmek için Bunun yerineSemanticsNodeInteraction.performGesture
. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
adlı dosya şu şekilde yeniden adlandırıldı:SemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)Sağdan sola destek API'leri güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient özelliği eklendi. Değiştirici.rtl ve Modifier.ltr kaldırıldı. (I080b3)
Değiştirici.plus desteği sonlandırıldı. Bunun yerine Değiştirici.then'i kullanın. "O zaman" daha güçlü bir sipariş sinyaline sahiptir ancak
Modifier.padding().background() + anotherModifier
yazılmasını yasaklayarak zinciri bozar ve okunması daha zor olur (Iedd58, b/161529964)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çme/yeniden düzenleme otomatik olarak gerçekleştiğinden bunlara hiçbir zaman ihtiyacınız olmaz ancak kaydırma sırasında LazyColumnItems'in içinde kullanılır. (I5f331, b/160791058)
isSystemInDarkTheme artık her zaman sistem genelindeki koyu tema ayarını dikkate alıyor ve en son yönergeleri uygulayarak Q'dan önceki güç tasarrufu durumunu yok sayıyor. (I0c10c)
OnChildPositioned desteği sonlandırıldı. Yerleştirilmiş'i kullan çocuğu kabul edebilir. (I87f95, b/162109766)
AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
TextLayoutResult (I9d6e6) öğesini 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
serbest bırakıldı. Sürüm 0.1.0-dev15 bu kaydetmeleri içerir.
Oluşturma'nın 0.1.0-dev15
sürümünü kullanmak için şunları yapmanız gerekir:
Bağımlılık Güncellemesi
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıklarınızı güncellemeniz gerekir. yukarıdaki Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre.
API Değişiklikleri
- KaydırılabilirSütun/Kaydırılabilir Satır LazyColumnItems/LazyRowItems içindeki yeni parametreye benzer bir şekilde, artık kırpıldıktan sonra içeriğe dolgu eklenmesine olanak tanıyan contentPadding parametresi de bulunmaktadır. Bu, yalnızca bir değiştirici parametreyle mümkün değildir. Ayrıca, yalnızca ilk öğeden önce/son öğeden sonra boşluk eklenmesine olanak tanır. (Ibc24e)
- Metin alanlarında onFocusChange geri çağırması onFocusChanged olarak (Ida4a1)
- Vertical Scroller ve Horiziontal Scroller desteği sonlandırıldı. Column/Row davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u ya da kendi öğenizde Değiştirici.verticalKaydırma ve Modifier.Yatay Kaydırma'yı kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırılarak ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
- Değiştirici.draggable ve Modifier.scrollable API'leri yeniden işlendi. Sürükleme Yönü, Yön yönünden kaldırıldı. Kaydırılabilir öğe için gereken durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
- Tek değerli anlamsal özellikler artık bir çağrı stili kullanır.
Örneğin, "anlamsal {gizli = doğru }" artık şu şekilde yazılır:
semantics { hidden() }
(Ic1afd, b/145951226, b/145955412) - RoundedCornerShape ve CutCornerShape tarafından kullanılan köşe boyutları artık %50'den büyük olabiliyor (Id2340, b/160400213)
- Varsayılan ContentScale değiştirildi Image composable için parametre yeni bir tarza sahiptir. Bu adım sırasıyla temeldeki ölçeği artırmaya yönelik davranışlar Düzen boyutu ressamın içsel boyutunu en boy oranını korumak. Bu beklentileri daha iyi karşıladığını Resim'e sabit boyutlar sağlamak için varsayılan davranışı etkilemeden, yalnızca içsel boyut kullanılırsa composable'ın boyutunu hesaplıyoruz. (I40ae3, b/159838006)
- Üst düzey API'lerde AnimationBuilder yerine AnimationSpec kullan statik animasyon spesifikasyonu kavramını netleştirmek için -Şunun için lambda gereksinimini kaldırarak geçiş DSL'sini iyileştirin: tween, spring gibi AnimationSpecs değerleri oluşturun. Bunun yerine oluşturabilirsiniz. - AnimationSpec uygulamasının açılış sayfası daha kolay tasarımcılara güvenmek yerine kurucular -KeyFrame'ler ve Tween (Tween) için süreyi ve gecikmeyi Int olarak değiştirin. Bu gereksiz tür yayınları ve yöntemin aşırı yüklenmesini ortadan kaldırır ( hem Long hem de Int desteklenir). (Ica0b4)
- Tıklanabilir öğe kaldırıldı. Değiştirici.clickable'ı kullan (I84bdf)
- LazyRowItems eklendi - LazyColumnItems'in (Ibbcf7) yatay olarak kaydırılan analogu
- Alt düzey durum bilgisiz animasyon API'leri kullanıma sunuldu. Bu API'ler (I63bf7)
- androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Metin Alanı bu tür için de destek sonlandırılmıştır. Lütfen şunu kullanın: Bunun yerine androidx.ui.input.TextFieldValue (I4066d, b/155211005)
- IntPx kullanımı, Int. IntPxPosition değiştirildi test edebilirsiniz. IntPxSize, IntSize olarak değiştirildi. (Ib7b44)
- androidx.ui.foundation.shape.RectangleShape kaldırıldı; androidx.ui.graphics.RectangleShape'i (I94939, b/154507984) kullanın
- temsil etmek için kullanılan sınıf sayısı beden bilgileri, standart boyut sınıfının kullanımına ilişkin boyutundaki gibi. Bunun sonucunda uzun bir satır içi sınıfın temsil edecek şekilde 2 kayan değer genişlik ve yükseklik kayan öğe olarak gösterilir. (Ic0191)
- temsil etmek için kullanılan sınıf sayısı konumlandırma bilgisi, standart bunun yerine Offset sınıfının kullanımında PxPosition'tur. Bunun sonucunda uzun bir satır içi sınıfın x'i temsil edecek şekilde 2 kayan noktalı değeri paketlemek ve y ofsetleri kayan noktalı olarak gösterilir. (I3ad98)
- İki parmak ucunu yakınlaştırma ya da uzaklaştırma işlevi için Değiştirici.yakınlaştırılabilir özelliği eklendi (Id5d63)
- Geçiş yapılabilir bileşen kullanımdan kaldırıldı. Bunun yerine Değiştirici.toggleable'ı kullanın (I35220, b/157642842)
- MutuallyÖzelSetItem desteği sonlandırıldı. Bunun yerine Değiştirici.selectable'ı kullanın. (I02b47, b/157642842)
- TestTag'in desteği sonlandırıldı. Bunun yerine Değiştirici.testTag'i kullanın. (If5110, b/157173105)
- Metne yanlışlıkla daha önce eklenmemiş olan fontweight parametresini ekler (I56937)
- Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (I19d02)
- Dikey Kaydırma aracı, artık Dikey Sütunu kullanıma hazır hale getiriyor. HorizontalKaydırıcı artık Row'u kullanıma hazır olarak sunuyor. (Ieca5d, b/157020670)
- Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (Iede0b)
- Değiştirici.indication, temel paketine eklendi. Özel etkileşimli öğelerinizde (I8425f, b/155287131) bas/sürükle/diğer göstergelerini göstermek için kullanın
- Dikey Kaydırma ve HorizontalKaydırma özelliği artık ScrollerPosition'ta (I953bd) ayarlı ters kaydırmayı destekliyor
- Metin düzenine composable ekleme desteği. (I1373c)
- Birleştirilmiş CanvasScope uygulamaları Yani artık yalnızca DrawScope ve ContentDrawScope CanvasScope, DrawScope olarak yeniden adlandırıldı. Yoğunluğu uygulamak için DrawScope güncellendi arayüz oluşturun ve LayoutDirection'ı sağlayın ContentDrawScope'taki DrawScope alt sınıfı silindi Painter ve PainterModifier güncellendi artık bir RTL mülkünü tutmamak için zaten DrawScope tarafından manuel olarak sağlamadan (I1798e)
- Desteği sonlandırılan DrawBackground kaldırıldı Drawbackground uzantısının tercih edildiği API Değiştirici'deki API'ler. Yeniden düzenlendi renk, fırça ve boyama Arka planı kod yollarını da azaltmaya yönelik uygulamaları Değiştirici'nin oluşturulması için kaldırma şartı olarak bir parçası olarak bulunuyor. (I0343a)
- Daha üst düzey güncellendi oluşturma API'lerini kullanarak bir Tuval'in CanvasScope'u açın. Bu işlem, koruma ve yönetim ihtiyaçlarının Paint nesnelerini ekleyebilirsiniz. Şu özelliklere sahip tüketiciler için: bir Canvas'a erişim gerektirmesi çizim Tuvali uzantısını kullanabilir Bu yöntem, soruna geri çağırma temel çizgisini gösteren çizim komutlarını Kanvas. (I80afd)
- Horizontal Scroller ve Vertical Scroller, kayıtlı örnek durumunu kullanarak kaydırma konumlarını geri yüklemez. (Ia0fae, b/155075048)
- FocusManagerAmbient kaldırıldı. Odağı elde etmek için FocusModifier.requestFocus işlevini kullanın. (Ic4826)
- Tablo düzeni, yeni bir API ile tekrar kullanılabilir hale gelene kadar geçici olarak kaldırıldı. (Id88a7)
Şunu sarmalayan CanvasScope API oluşturuldu: Durum bilgisiz, bildirimsel bir öğeyi gösterecek Canvas nesnesi çizim API yüzeyini tıklayın. Dönüşümler yer alır alıcı kapsamlarında ve beden bilgilerinde karşılık gelen inset sınırlarının da kapsamındadır. Bir tüketicinin kendi Paint durumunu korumasına gerek yoktur nesnesini ifade eder.
CanvasScopeSample ve demo uygulamasını bildirime dayalı bir grafik içerecek şekilde güncelledi demo (Ifd86d)
ColoredRect kaldırıldı. Bunun yerine çizim arka planı değiştiricili kullanıcı kutusu (I983c7, b/152753731)
Metin alanına imleç rengini özelleştirme (I6e33f) ekleme
Artık yazılım klavyesini onTextInputStarted tarafından sunulan YazılımKlavye Denetleyicisi geri arama (I8dc44, b/151860051)
TextField ile kullanılan TextFieldValue, artık şu şekilde kullanıldığında etkinlik yeniden oluşturma işleminden sonra geçerli olabilir:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Text() işlevine yaygın olarak kullanılan parametreleri ekler. Şu anda bu parametrelerin az sayıda (ör.
Text(style = TextStyle(textAlign = TextAlign.Center))
) iletmek için bir yerel metin stili oluşturuyorsanız artık parametreleri doğrudan doğrudan sağlamanız yeterlidir:Text(textAlign = TextAlign.Center)
(I82768)CoreTextField/TextFieldFocusIdentifier değiştirildi parametresini FocusNode ile entegre etmek için kullanabilirsiniz. (I7ea48)
Metin Alanı güncellemesi - yatay boyutta, kendisine verilen mevcut tüm alanı kaplar (Ib08df, b/154638552)
Basma ve sürükleme gibi kullanıcı arayüzü durumu değişikliklerine tepki veren bileşenler oluşturmayı kolaylaştıran EngagementState ve engagement eklendi (Icfe25, b/152525426)
RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics* konumuna taşındı. (Ia74d5, b/154507984)
API'deki tüm null renk kullanımları şununla değiştirildi: null değildir ve null yerine Color.Unset kullanılır (Iabaa7)
TextField API güncellemesi: onFocus ve onBlur geri çağırmaları, (I66cd3) parametresiyle tek bir onFocusChange (Boolean) geri çağırması olarak birleştirildi
ScaleFit, ContentScale olarak yeniden adlandırıldı ContentScale, kullanıcı arayüzü grafiklerden kullanıcı arayüzü çekirdeğine taşındı modülün içinde, Hizalama ile aynı modülde API'ye gidin. FillMaxDimension, Kırpılacak olarak yeniden adlandırıldı FillMinDimension Fit olarak yeniden adlandırıldı Daha iyi eşleşecek şekilde Fit, Inside olarak yeniden adlandırıldı ImageView.ScaleType eşdeğerleri Kombinasyonun Kırpma ve Hizalama Merkezi ayarı aynı sonucu verir ImageView.ScaleType.CENTER_CROP ve Fit olarak Adjust.Center ile kullanıldığında elde edilen sonuç, ImageView.ScaleType.FIT_CENTER Hizalama.Center ile kullanılan iç mekan, aynı performansı Sonuç ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)
OfferContentColor'ı kaldırır. Bunun yerine ContentColorAmbient'i doğrudan
Providers
(Iee942) ile kullanmanız yeterlidir.Metne renk parametresi ekleyerek metin stilinin renginin, temada sağlanan stille manuel olarak birleştirmeye gerek kalmadan geçersiz kılınmasına olanak tanır. (I41a66)
DrawModifier API'sini iyileştirin:
- Paint() ContentDrawScope için alıcı kapsamı oluşturuldu
- Çizimler() işlevindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahiptir
- ContentDrawScopedrawContent() yöntemini içerir (Ibaced, b/152919067)
ColoredRect desteği sonlandırıldı. Bunun yerine
Box(Modifier.preferredSize(width, height).drawBackground(color))
politikasını kullanın. (I499fa, b/152753731)Şekil teması oluşturma sistemi, Materyal tasarım spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğu (Ifb4d1) tarafından kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz.
Değiştirici artı operatörü, fabrika genişletme işlevleriyle değiştirildi (I225e4)
Sürüklenebilir, değiştiriciye taşındı (Id9b16, b/151959544)
Text
, androidx.ui.core kaynağından androidx.ui.foundation paketine taşındı. (I87ce5)Onay Kutusu, Değiştir ve Geçiş Yapılabilir özelliğine (I41c16)
enabled
parametresi ekleRipple artık bir Değiştirici oldu. Tıklanabilirlik henüz dönüştürülmemiş olsa da önerilen kullanım
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763) şeklindedir.VectorPainter API, şuraya eklendi: mevcut alt beste API'sini değiştir gösteren bir grafiktir. Alt bestenin sonucu yerine bir VectorPainter nesnesidir DrawModifier. Önceki DrawVector desteği sonlandırıldı VectorPainter oldu.
Image(Painter)
API,PaintBox(Painter)
olarak yeniden adlandırıldı Şu şekilde davranan Vector composable oluşturuldu: Bunun yerine VectorAsset dışında resim composable ImageAsset'in (I9af9a, b/149030271)İşlenmesi için composable resim oluşturuldu yanı sıra boyutunu/düzeni çizmeye ek olarak ImageAsset'i kullanabilirsiniz. Bu composable rastgele bir Boyacının çizimini de doğal boyutuna uygun bir örnek sabit bir proje yönetimi yaklaşımını boyut veya minimum boyut (Ibcc8f)
Button, floatingActionButton ve Clickable artık ayrı bir
enabled
parametresine sahip. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)Daha iyi ayırt edilmesi için Resim ImageAsset olarak yeniden adlandırıldı ile görüntü verileri arasındaki fark Düzen ve çizime katılmak için kullanılan composable içerik.
android.graphics.Bitmap'te uzantı yöntemi oluşturuldu.
Bitmap.asImageAsset()
, bir Geleneksel Android'i birleştirmede yararlı ImageAsset uygulama geliştirmeyi ele alacağız. (Id5bbd)DrawImage composable kaldırıldı. Mevcut düzen üzerine 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, iconButton ve iconToggleButton eklendi, AppBarIcon kaldırıldı. Mevcut AppBarIcon kullanımlarını doğrudan iconButton, Böylece doğru dokunma hedefine sahip olurlar. Şuna ait örneklere bakın: görebilir ve sağlanan Malzeme Simgeleriyle ilgili Simgeler'e göz atabilirsiniz. bu bileşenleri doğrudan kullanabilirsiniz. (I96849)
DrawShape composable kaldırıldı. Bunun yerine DrawBackground değiştiricisini kullanın. (I7ceb2)
Yalnızca 20 dakikada bir kaydırma listesi bileşeni olan görünür öğeleri oluşturur ve düzenler. Şu anda bilinen sorunlar yalnızca dikey olduğunu ve tüm reklam birimlerini alt öğelerinde değişiklik yapmak isteyebilir. (Ib351b)
Özel Kaydırıcılar/Listelerin (I5fd37) oluşturulmasına olanak tanıyan kaydırılabilir bileşen eklendi
Arka plan, DrawBackground olarak yeniden adlandırıldı ve arka planın varsayılan olarak hafızaya alınması olacak şekilde ayarlandı (Ia0bd3)
Box'a dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)
Tuval bileşeni eklendi. Bu composable, kullanıcı tarafından sağlanan bir boyut kaplar ve CanvasScope (I0d622) kullanarak çizim yapmanızı sağlar.
Border
değiştiricisiniDrawBorder
olarak yeniden adlandırın (I8ffcc)Düzen ve ortak çizim işlevlerini birleştirmek için Kutu bileşeni eklendi. (I6e2a7)
Kaydırıcılar artık yerel Android hızlı kaydırma hareketi davranışı sergiliyor. (I922af, b/147493715)
DrawBorder yerine Sınır Değiştirici'nin (Id335a) kullanılması
Değiştirici.tag, Modifier.testTag ile karışmasını önlemek için Değiştirici.layoutId olarak yeniden adlandırıldı. (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'den haberdar olmayan API'ler eklendi. (I3b1c7)
ConstraintLayout için yeni DSL eklendi. Daha fazla bilgi için lütfen örneklere bakın. (Icaa9a)
@ ExperimentalLayout ek açıklaması eklendi. ConstraintLayout, FlowRow ve FlowColumn olarak da API'lerinin değişeceğini belirtmek için artık bu öğelerle etiketleniyor. (I412a8)
Modifier.padding(InnerPadding)
eklendi (I94985, b/157133803)Kullanımdan kaldırılan Satır ve Sütun sütunlarında Row mı, ColumnHizalama ise kaldırıldı. (If60d4, b/155858731)
Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Değiştirici.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Değiştirici.matchParentSize() işlevini kullanın. (If8044)
Ofsetleri px cinsinden (dinamik) tanımlamak için kullanılabilecek ofsetPx düzen değiştiricisi eklendi. (I5af57)
AdjustLineOffset composable kullanımdan kaldırıldı. Lütfen bunun yerine göreliPaddingFrom() değiştiricisini kullanın. CenterHimentLine 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 (minimum kısıtlamalar için 0, maksimum kısıtlamalar için sonsuzluk). (I311ea, b/150460257)
Kapsayıcı kaldırıldı. Bunun yerine Box'ı kullanın (Ibbc2b, b/151407926)
Kullanımdan kaldırılan DüzenGenişliği/Yükseklik/Boyut değiştiricileri kaldırıldı. (Ib0bc1)
Ofset değiştirici için varsayılan parametre değerleri eklendi. (I37f06)
Simetrik dolgu değiştirici eklendi. (I39840)
Desteği sonlandırılan LayoutAspectRatio değiştiricisi kaldırıldı. (I65a74)
Kullanımdan kaldırılan Layoutalign değiştiricileri kaldırıldı. (I10877)
Sarmalanmış düzenin karşıt eksen kısıtlamaları olmadan ölçülmesine neden olan genişlik ve yükseklik değiştiricilerinde bulunan bir hata düzeltildi. (I210b8, b/154797971)
Sırasıyla Satır ve Sütun sütununa verticalGravity ve landscapeGravity 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)
EdgeInset'ler InnerPadding olarak yeniden adlandırıldı. Material Buttons'ın innerPadding parametresi, yatay kaydırma olarak yeniden adlandırıldı. (I66165)
levelToSiblings artık Yerleştirilebilir yerine Ölçülmüş kabul etmeyi kabul ediyor. (I5788d)
İçsel ö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ştirmek için destek eklendi
Desteği sonlandırılan Sarma ve Center composable'ları kaldırıldı. (I29e23)
Düzen değiştiricileri tanımlamaya yönelik yeni bir API olan LayoutModifier2 eklendi; desteği sonlandırılan LayoutModifier (If32ac)
RowScope ve ColumnScope üyelerine artık Satır ve Sütun dışından erişilebilir. (I3a641)
Container'ın desteği sonlandırıldı. Bunun yerine Box'ı kullanın. (I675ce, b/151407926)
Ofset ayarlama konumu için LayoutOfset değiştiricisi eklendi (I0b8a3)
Compose düzeninde Rtl için ilk destek (Ia5519)
Layoutalign özelliği, kullanılabilir alanı artık doldurmayacak şekilde güncellendi (I2b14f)
AspectRatio composable yerine değiştirici kaldırıldı. Silindi (eski) FlexColumn, FlexRow composables ve Aralık değiştiricisi (Iec8a7)
Satır ve Sütun için LayoutInflexible değiştiricisi (I0d820) kaldırıldı
TextField seçimini değiştirmek için Seçim Tutamaçlarını Sürükleyin. (I27032)
Metin Alanı Seçimi için Long PressAndDrag uygular. (I17919)
Hata Düzeltmeleri
- FocusModifier; Değiştirici.focus, Modifier.focusRequester, Modifier.focusObserver'ın yerini alması için kullanımdan kaldırılmıştır. FocusState ve FocusAyrıntılıState kullanımdan kaldırılarak, FocusState2'nin kullanılması (I46919, b/160822875, b/160922136)
runOnIdleCompose
,runOnIdle
(I83607) olarak yeniden adlandırıldı- Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tümü findXYZ API'leri, onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri şu şekilde yeniden adlandırıldı: performansXYZ. (I7f164)
- Kullanımdan kaldırılmış olan Değiştirici.ripple kaldırılır. Tıklanabilirlik, artık varsayılan gösterge olarak ripple'ı (uygulamanızda ayarlanmış bir MaterialTheme {} öğesi varsa) kullanıyor. Çoğu durumda, sadece tıklanabilir ve ücretsiz olarak dalga gösterimi alabilirsiniz. Dalga için renk / boyut / sınırlı parametreyi özelleştirmeniz gerekirse manuel olarak bir Dalga Göstergesi oluşturabilir ve bunu, gösterge parametresi olarak tıklanabilir hale geçirebilirsiniz. (I663b2, b/155375067)
- Eski boyut testi API'leri kaldırıldı. (Iba0a0)
- Made LayoutNode deneysel API'sı (I4f2e9)
- Kaydırma yönü kilitlemenin 1. sürümü: ve Compose genelinde uygulandı. (I1ce7a, b/150289741)
- Pop-up'lar, iletişim kutuları ve menüler artık içeriğe dayalı MaterialTema'yı (Ia3665, b/156527485) devralıyor
- Layout() işlevinin ölçüm bloğundan düzen yönü parametresi kaldırıldı. Bununla birlikte düzen yönü, ölçüm kapsamı nesnesi (Ic7d9d) ile geri çağırma içinde kullanılabilir
- MutlakArrangement ekleme: Alt satırdaki alt öğelerin, RTL'de (I3a1df) otomatik yansıtma olmadan düzenlenmesine olanak tanır.
- @Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) (Id211e) ile değiştirin
- Bu değişiklikten önce, oluşturma derleyici eklentisi, @Composable işlevinin içinde bir (I5205a, b/158123804) bulunan kuruculara yapılan çağrılara sıra dışı bir şekilde müdahale ediyordu.
- Etkinlik veya Parça (I5fdd1) içindeki çalışma şekline benzer şekilde ViewModel oluşturulmasına veya önceden oluşturulmasına olanak tanıyan
viewModel()
composable'ı ekleyin Yarıçap sınıfı şu şekilde yeniden düzenlendi: satır içi sınıf. Tamamlayıcı oluşturma kaldırıldı fonksiyon oluşturucunun lehine olan yöntemler yarıçapa sahip olacak şekilde varsayılan parametre ile zorunlu olan y eksenindeki çizgiyle aynı olan X ekseni yarıçap parametresidir.
Kullanılacak DrawScope.drawroundRect değeri güncellendi 2 ayrı yerine tek bir Yarıçap parametresi x ve y boyunca yarıçap için kayan noktalı değerler eksen (I46d1b)
Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve temel türleri tanımlar. Px sınıfı tamamen silindi (I3ff33)
Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (I086f4)
Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (Id3434)
Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (I97a5a)
TextField'in imlecinde yanıp sönen bir animasyon var (Id10a7)
Kısmi hareketler için artık bir HareketToken (Id7ae5)
Çeşitli alanlarda Px sınıfı kullanımı değiştirildi bir parçası olarak sınıfları yalnızca Dp'ye bağımlı olacak şekilde yeniden düzenleme ve piksel parametreleri için temel türler (I57bff)
Değiştirici.semantik özelliği, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırıldı. (I4cfdc)
AnnotatedString.Builder.addDescriptionString olarak addStringDescription değerini yeniden adlandırın. (I5059e)
Hizalama API'si güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)
Layout ve LayoutModifier alt öğeleri, farklı bir düzen yönüyle ölçülebilir. (Ibd731)
İsteğe bağlı ek dikdörtgen tanıtın parametresini temel ImageAsset'in alt bölümünü çizmek (I0ea9e)
Öğeler kaldırılırken Bağdaştırıcı Listesi'ndeki bir kilitlenme düzeltildi (Ic64b0, b/153195921)
activity.setContent { } bloğuna yerleştirdiğiniz ilk düzeni ölçme şeklimizi değiştirdik. Önceden, etkinlik ekranının tamamını doldurmaya zorlanırken şimdi düzeninizi bir Yığının içine yerleştiriyormuş 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() uygulayabilirsiniz. (Ie88a7, b/153453714)
ui-text-compose modülünün adı ui-text olarak değiştirildi. arayüz-metin artık CoreText ve CoreTextField composable'larını içeriyor (Ib7d47)
ui-text modülü, ui-text-core (I57dec) olarak yeniden adlandırıldı
ui-framework/CoreText, CoreTextField composable'ları altına taşındı ui-text-compose. URL'nize ui-text-compose adresini belirler. (I32042)
runOnIdleCompose
verunOnUiThread
artık genel işlevler oldu ComposeTestRule'daki yöntemlerdir. (Icbe8f)[Mutable]Eyalet mülk yetkisi operatörleri uzantılara taşındı . Arayanlar eklemelidir içe aktarmaları için
by state { ... }
veyaby mutableStateOf(...)
kullanmaya devam edebilirsiniz. (I5312c)DrawKatmanModifier vedrawKatman() artık varsayılan klipToBounds false (yanlış) değerine ayarlayın. (I0eb8b, b/152810850)
LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)
Desteği sonlandırılmış Center composable. Bunun yerine LayoutSize.Fill + Layouturl.Center değiştiricisiyle veya uygun değiştiricilerin uygulandığı Box ya da Stack composable'larından biriyle değiştirilmelidir (Idf5e0).
LayoutEsnek, LayoutAğırlık olarak yeniden adlandırıldı. Sıkı parametre, doldurulacak şekilde yeniden adlandırıldı. (If4738)
DrawVector, normal bir composable fonksiyonunu geri çevirerek vektörü bir düzenin arka planı olarak çizer. (I7b8e0)
Oluşturulabilir işlev klibini değiştiriciyle değiştir PaintClip(). DrawClipToBounds uygulaması basit bir değiştiricidir yalnızca katman sınırlarına klip oluşturmanız gerektiğinde kullanılacak elde ettiniz. (If28eb)
DrawShadow composable işlevidrawShadow() ile değiştirildi kullanabilirsiniz. Gölgeler artık layerModifier'ın bir parçası olarak çizilir. (I0317a)
androidx.compose.ViewComposer, androidx.ui.node.UiComposer klasörüne taşındı androidx.compose.Emittable kaldırıldı. ComponentNode ile gereksizdi. androidx.compose.ViewAdapters kaldırıldı. Bunlar artık desteklenen bir kullanım alanı değildir. Compose.composeInto desteği sonlandırıldı. Bunun yerine
setContent
veyasetViewContent
kullanın. Compose.disposeComposition kullanımdan kaldırıldı. Bunun yerine,setContent
tarafından döndürülenComposition
üzerindedispose
yöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto adresine taşındı ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı. ComponentNode#emitRemoveAt, ComponentNode#removeAt olarak yeniden adlandırıldı. ComponentNode#emitMode, ComponentNode#move (Idef00) olarak yeniden adlandırıldıDesteği sonlandırılmış Wrap composable. Bunun yerine, LayoutHizala düzenleyici veya Stack composable (Ib237f) değiştiricisiyle değiştirilebilir.
Düzen yönünün, üst düzen düğümünden alt öğelere yayılması yapıldı. Düzen yönü değiştiricisi eklendi. (I3d955)
Yeni oluşturulan Değiştirici, birden çok Değiştirici örneğinde paylaşılabilecek orijinal Painter'a bir referans içerdiğinden Painter.toModifier olarak yeniden adlandırın (I7195b)
LayoutPadding değiştiricide sağdan sola yön desteği (I9e8da)
Yoğunluk ve Yoğunluk Kapsamı tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kullanabilirsiniz. withDensity(yoğunluk) yerine sadece(yoğunluk) (I11cb1)
ValueHolder sınıfı kaldırıldı. Animasyon Değerini, Animasyon Kayanlığını Alt sınıfların değer güncellemesini izleyebilmesi için animasyon değeri alanını soyut hale getirin.
- Animasyon Değeri, Animasyonlu Kayan 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)
Ambiyans API'sinde büyük değişiklikler yapılıyor. Ayrıntılar için günlüğe ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)Placeable#get(alignmentLine)'dan döndürülen hizalama satırı Int konumları artık null değildir. Sorgulanan hizalama satırı eksikse HizalamaÇizgisi.Belirtilmemiş döndürülür. (I896c5, b/158134875)
Yeniden düzenlemelerde kilitlenmeye neden olan ConstraintLayout hatası düzeltildi. (Ibee5a, b/158164341)
WithConstraints takip eden lambda API değiştirildi. Artık iki parametre yerine, sınırlamalara ve layoutDirection'a ek olarak, Dp'de (I91b9a, b/149979702) minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Layout ve LayoutModifier2 üzerindeki içsel ölçüm işlevlerinde, artık örtülü olarak yayılan düzen yönüyle intrinsics sorgu API'si sağlayan bir IntrinsicMeasureScope alıcısı bulunuyor. (Id9945)
LayoutDirectionAmbient desteği sonlandırıldı. Yerel ayarın tanımladığı düzen yönünü okumak için ConfigurationAmbient'te (I851b1) localeLayoutDirection'ı kullanın
LayoutKoordinatlar içinpositionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
ParentData composable desteği sonlandırıldı. Ya ParentDataModifier arayüzünü uygulayan bir değiştirici olmalı ya da düzen alt öğelerini ölçüm bloğunda tanımak için sadece düzen alt öğelerini etiketlemeniz gerekiyorsa LayoutTag değiştiricisini kullanmalısınız. (I51368, b/150953183)
OnPositionedModifier ve OnChildPositionedModifier ekleme OnPositioned ve OnChildPositioned composable'ı değiştirin işlevlerine dahildir. (I2ec8f)
LayoutPadding'te negatif dolguya izin verme. Negatif konum ofsetleri için bunun yerine LayoutOfset kullanılmalıdır. (Ifb5b1)
WithConstraints LayoutDirection parametresini (I6d6f7) aldı
ComposeFlags.COMPOSER_PARAM
işaretitrue
olarak güncellendi. Bu işlem, oluşturma eklentisinin kod oluşturma stratejisini değiştirecek. Genel olarak bu, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametreler, çalışma zamanının yürütmeyi düzgün şekilde yönetmesi için sonraki @Composable çağrılarına iletilir. Bu, ikili programları bozan önemli bir değişikliktir ancak tüm yaptırım uygulanan oluşturma kullanımlarında kaynak düzeyinde uyumluluğun korunması gerekir. (I7971c)SağlananHizalamaLines'ın oluşturulması için Layoutords değerleri değiştirildi bir küme oluşturabilir ve LayoutKoordinatları'nın get() operatörünü kullanın. Bu sayede setin bir veya daha fazla değerini değiştirmeden değiştirmek için değiştiriciler her değiştirici için yeni bir koleksiyon oluşturmanız gerekir. (I0245a)
Düzen Koordinatları artık konum özelliğine sahip değildir. İlgili içeriği oluşturmak için kullanılan LayoutModifiers göz önüne alındığında konum özelliği bir anlam ifade etmez. döndürme veya ölçeklendirme. Geliştiriciler bunun yerine, ve bottomToLocal() alt öğelerini kullanın. Düzen Koordinatörü.
Layoutords, boyut özelliği için PxSize'a dokunun. Düzenler, düzenler için tam sayı piksel boyutları kullanır, bu nedenle tüm düzen boyutları tamsayılar kullanılmalıdır. Kayan nokta değerleri kabul edilmez. (I9367b)
Kısıtlamaların API yüzeyinde yapılan iyileştirmeler (I0fd15)
TextDirection.Content eklendi (I48f36)
Kopyalama, kesme ve yapıştırma işlemlerini düzgün bir şekilde göstermek için Araç Çubuğu Menüsünü ayarlayın. (Id3955)
Metin Alanı Seçimi için Kayan Araç Çubuğu ekleyin. (Ie8b07)
TextDirectionAlgorithm, TextDirection (I75ce8) olarak yeniden adlandırıldı
TextDirection, SolutiondTextDirection (I3ff38) olarak yeniden adlandırıldı
Metin Alanı Seçimine HapticFeedback'i ekleyin. (I58050)
Metin Alanı Seçimi'ne Kopyala, Kes ve Yapıştır yöntemleri ekleyin. (Idb70b)
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i kullanın (I15ff0, b/158841414)
Yerel Ayar ve Yerel Liste için paket adı yerine androidx.ui.text to androidx.ui.intl (I8132c)
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 LifecycleSahipAmbient özelliği artık kullanılabilir. Compose kullanıcı arayüzüyle kullandığınız bir etkinlik artık androidx.activity.ComponentActivity (veya AppCompatActivity) öğesini genişletmelidir. android.app.Activity üzerindeki setContent'in desteği sonlandırıldı (Idb25a, b/153141084)
ui-android-text paket adı (androidx.text) şununla değiştirildi: androidx politikasına uygun hale getirmek için androidx.ui.text.platform adresini ziyaret edin. (I42711)