Compose Foundation
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 Compose paketleri için API referans belgelerine bakın)
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 19 Kasım 2025 | 1.9.5 | 1.10.0-rc01 | - | - |
Yapı
Compose, androidx içindeki 7 Maven Group kimliğinin birleşimidir. Her grup, kendi sürüm notları kümesine sahip, hedeflenen bir işlevsellik alt kümesini içerir.
Bu tabloda gruplar açıklanmakta ve her bir sürüm notu grubuna bağlantı verilmektedir.
| Grup | Açıklama |
|---|---|
| compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun. |
| compose.compiler | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. |
| compose.foundation | Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin. |
| compose.material | Kullanıma hazır Materyal Tasarım bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklanan bileşenleri sağlamak üzere tasarlanmış, Compose'un daha üst düzey giriş noktasıdır. |
| compose.material3 | Materyal Tasarım'ın bir sonraki evrimi olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3; güncellenmiş temalar ve bileşenler, dinamik renk gibi Material You kişiselleştirme özelliklerini içerir. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
| compose.runtime | Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Plugin'in hedefleyeceği temel çalışma zamanı. |
| compose.ui | Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken temel Compose kullanıcı arayüzü bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.compose.foundation:foundation:1.9.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.9.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.10
Sürüm 1.10.0-rc01
19 Kasım 2025
androidx.compose.foundation:foundation-*:1.10.0-rc01 iptal edilir. 1.10.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
isCacheWindowForPagerEnabledişareti devre dışı bırakıldı. (Iffdec, b/458193632)
Sürüm 1.10.0-beta02
5 Kasım 2025
androidx.compose.foundation:foundation-*:1.10.0-beta02 iptal edilir. 1.10.0-beta02 sürümü bu commit'leri içerir.
Sürüm 1.10.0-beta01
22 Ekim 2025
androidx.compose.foundation:foundation-*:1.10.0-beta01 iptal edilir. 1.10.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
- Tüm dolaylı dokunma API'lerini, işaretçi giriş API'leriyle eşleşecek şekilde dolaylı işaretçi API'leri adını kullanacak şekilde günceller. (I238ce, b/451607214)
PagerState.currentPageOffsetFraction,@FrequentlyChangingValueile açıklama eklenmiş. (Idfaab)
Hata Düzeltmeleri
- Sağdan sola düzen yönleri için kayan yazı davranışını düzeltir. (Ib8be3)
Sürüm 1.10.0-alpha05
8 Ekim 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha05 iptal edilir. 1.10.0-alpha05 sürümü bu commit'leri içerir.
API Değişiklikleri
PaddingValuesartık yaygın dolgu hesaplamalarını basitleştirmek için toplama ve çıkarma işlemlerini destekliyor. (I327e1, b/244468479)
Hata Düzeltmeleri
ComposeFoundationFlags.isPausableCompositionInPrefetchEnabledvarsayılan olarak etkindir. Bu, önceden getirme sırasında yapmamız gereken işi daha iyi dağıtmamıza olanak tanıyan bir performans optimizasyonudur. Örneğin,LazyColumnöğesinin sonraki öğesinin parçaları için yalnızca bir kullanıcı arayüzü karesi sırasında kompozisyon oluşturabilir ve ardından geri kalanını sonraki karelerde oluşturmaya devam edebiliriz. (I4c7fe)
Sürüm 1.10.0-alpha04
24 Eylül 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha04 iptal edilir. 1.10.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
ScrollIndicatorStateuygulamasıPagerStateiçin eklendi. (I113b7)ScrollIndicatorStateuygulamasıLazyStaggeredGridStateiçin eklendi. (I1028e)ScrollIndicatorStateuygulamasıLazyGridStateiçin eklendi. (I9e50c)ScrollIndicatorStateuygulamasıLazyListStateiçin eklendi. (I5ee29)ScrollIndicatorStateuygulamasıScrollStateiçin eklendi. (I27f66)ScrollableStatearayüzündescrollIndicatorStateözelliğini kullanıma sunma (Idca93)isWindowInsetsModifierLocalNodeImplementationEnabledişareti kaldırıldı (I15e8f, b/440964232)scrollableArea()değiştiricisini kullanıma sunun. Bu değiştirici, bileşenin içeriği sınırlarına kırpma ve içeriğin kaydırma yönünü Oryantasyon, RTL vescrollableArea()işaretine göre otomatik olarak işleme davranışlarıyla kaydırılabilir hale getirmek için kullanılabilir.reverseScrolling(I9471b, b/316559454)
Sürüm 1.10.0-alpha03
10 Eylül 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha03 iptal edilir. 1.10.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
ComposeFoundationFlags.isNonComposedClickableEnabledkaldırıldı (I0dfc0, b/406228525)FillableDataörnekleri oluşturmak için kullanılan fabrika işlevlerini eşlik eden nesneye taşıyın.FillableData(value)işlevini çağırmak yerine yeni fabrika yöntemlerini (FillableData.createFrom(value)) kullanın. (I2e200, b/441719650)- Odak arama için sınırlı düzenin ötesinde performans göstermek üzere
BeyondBoundsLayoutModifierNodeyeni bir Değiştirici düğümü kullanıma sunuldu. (I39be1, b/416133658) ScrollState.value,@FrequentlyChangingValuemülkü olarak işaretlenmiş olmalıdır. (I4723d)LazyLayoutKeyIndexMapve varsayılan uygulama için bir fabrika kullanıma sunuldu. (I4fd0c, b/415038029)
Hata Düzeltmeleri
- Sütun ve satır artık öğenin gerçek boyutunu
Modifier.align'ya doğru şekilde iletiyor. Böylece, özelModifier.alignuygulamasının yanlış bir 0 değeri almasına neden olan sorun çözülüyor. (I8194f, b/439716351)
Sürüm 1.10.0-alpha02
27 Ağustos 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha02 iptal edilir. 1.10.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
isFlingContinuationAtBoundsEnabledişareti kaldırıldı. (I6b84f)isAdjustPointerInputChangeOffsetForVelocityTrackerEnabledişareti kaldırıldı. (I62380)isOnScrollChangedCallbackEnabledişareti kaldırıldı. (I667dc)isAutomaticNestedPrefetchEnabledişareti kaldırıldı. (I4f416)DragGesturePickUpEnabledişareti kaldırıldı. (Ib8500)- Kaydırma çubuğu durumunu temsil etmek için
ScrollIndicatorStateAPI'sini kullanıma sunma (I5e229)
Hata Düzeltmeleri
Modifier.anchoredDraggablekullanıldığındaconfirmValueChange'nin çağrılmamasına neden olan hata düzeltildi. (Iff7cc)
Sürüm 1.10.0-alpha01
13 Ağustos 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha01 iptal edilir. 1.10.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Pager'ın önceden getirme stratejisini, kaydırma yönünde varsayılan 1 öğe yerine önbellek penceresini kullanacak şekilde güncelleyin. Artık Pager'da ilk önceden getirme işlemi varsayılan olarak etkinleştiriliyor ve önceden getirme işlemi, 1 görüntü alanı değerindeki pencerenin boyutuna göre yapılıyor. Yani, 1 görüntü alanının tamamını önceden getirilmiş öğelerle doldurmaya çalışacağız. Öğeler daha uzun süre saklanır. (I4d45e, b/292136289)
- Yeni uygulama davranış değişikliğine neden olursa
WindowInsetsperformans optimizasyonunun devre dışı bırakılmasına olanak tanıyan birComposeFoundationLayoutFlags.isWindowInsetsOptimizationEnabledişareti eklendi. (I8e912) SnapFlingBehaviorartık tutturma sırasında tutturma animasyonu özelliklerinin aşılmasına izin veriyor. Bu, örneğin,snapAnimationSpecolarak esnek bir yay özelliği belirleyerek esnek bir tutturma animasyonu oluşturmanıza olanak tanır. Yaklaşma işlemi, Snap spesifikasyonuyla gerçekleştirilirken aşırı yüksek değerler yoksayılmaya devam ediyor. (I373c2)ComposeViewiçindeki fare veya dokunmatik alan ile yapılan işaretçi aşağı hareketleri, işaretçi aşağı hareketi odaklanılan düğümün sınırları içinde gerçekleşmezse artık odağı otomatik olarak temizleyecek. Bu, işaretçi giriş cihazları kullanılırken mevcut davranıştan daha çok beklenen bir "odaklanmayı temizlemek için dokunma" kullanıcı deneyimiyle sonuçlanır. Bu davranış, yeni birAbstractComposeView.isClearFocusOnPointerDownEnabledAPI ile devre dışı bırakılabilir. (I6322b, b/282963174)- Kaydırılabilir artık 2 boyutlu fare tekerleği kaydırma etkinliklerini daha iyi destekliyor.
MouseInjectionScope'daki kullanım alanlarını test etmeye yardımcı olacak yeni bir test API'si kullanıma sunuldu. Ayrıca,MouseInjectionScopeiçinde kaydırma yöntemleri için yeni bir aşırı yükleme veisMouseWheel1DAxisLockingEnabled(I136df) adlı yeni davranışı kontrol etmek için bir işaretçi kullanıma sunduk. - Optimizasyon için işaretçi girişini askıya almak yerine ham işaretçi girişi kullanacak şekilde
DragGestureNodegüncellendi. DeğişikliklerisNonSuspendingPointerInputInDraggableEnabled(I0fa4b) işaretinin arkasına eklenir. - Bazı
AnchoredDraggableAPI'leri@FrequentlyChangingValueile açıklama ekledik.offset,requireOffsetveprogresssık sık değişir ve kompozisyon içinde okunmamalıdır. Lütfen bu değerlere düzen ve çizim aşamalarından, efektlerden veya kompozisyonun dışındaki diğer yerlerden erişin. (I05539) isOnScrollChangedCallbackEnabled,isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled,isFlingContinuationAtBoundsEnabled,isAutomaticNestedPrefetchEnabled,DragGesturePickUpEnabled,isPointerInteropFilterDispatchingFixEnabled,isNestedScrollInteropPostFlingFixEnabled,isNestedScrollDispatcherNodeFixEnabledişaretleri kaldırıldı (I36c18)- Otomatik doldurma özelliğinin başarılı doldurma vurgusunun fırçasını değiştirmek için kullanılabilecek
CompositionLocal'ı kullanıma sunduk. (I52329) FocusProperties'ya özelleştirilebilir odak dikdörtgeni eklendi. Artık odaklanılabilir öğenin sınırlandırıcı kutusunu varsayılan olarak ayarlamak yerine özel bir odak alanı tanımlayabilirsiniz. Bu bilgiler, odak geçişi sistemi ve kaydırılabilir kapsayıcıların görünümde tutma mantığı tarafından kullanılır. (Id6555, b/368378073)Tightadlı yeni birLineHeightStyle.Modeeklendi. Bu mod, daha uzun glifleri kesebilecek olsa bile daha küçük satır yüksekliklerinin uygulanmasına yardımcı olur. (Id3849)- Bir türün diğerinden nasıl dönüştürüleceğini bildiği varsayılarak farklı türler arasında otomatik enterpolasyona olanak tanıyan yeni bir Interpolatable arayüzü kullanıma sunuldu. Bu arayüz, Fırça ve Şekil gibi çeşitli beste türlerinde kullanılır ancak harici olarak da kullanılabilir. (I58eab)
- Dolaylı giriş etkinlikleri ve kaydırma için kullanılacak koordinat eksenini belirtme yöntemi ekler. (I58e7c)
- Ekran kesiminin yolunu almak için yeni
WindowInsets.cutoutPathAPI'si eklendi (Ib90b1, b/279636456) isWindowInsetsDefaultPassThroughEnabledişareti kaldırıldı. Alt görünümlerin varsayılan olarakWindowInsetsalabilmesi için WindowInsets varsayılan olarak tüketilmeyecek şekilde ayarlandı. (I888e0, b/412469666)
Hata Düzeltmeleri
isNonSuspendingPointerInputInDraggableEnabledşimdilik devre dışı bırakılmalıdır. (Ia41c4)- Varsayılan minSdk'nın API 21'den API 23'e taşınması (Ibdfca, b/380448311, b/435705964, b/435705223)
- Bu API'lerin diğer
DraggableAnchorsAPI'leriyle uyumlu olarak Float.NaN döndürmesi gerektiğini belirtmek içinDraggableAnchors'minPosition/maxPositiondokümanları güncellendi. (I0460a) - Sabitler boşsa
DraggableAnchors#closestAnchoruygulamasının kilitlenmesine neden olan hata düzeltildi (I4e646). DraggableAnchorsiçin performans iyileştirmeleri (If4065, I0460a)TextFieldState.edit { }artık geri alma geçmişini temizlemiyor. Bunun yerine bağımsız bir geri alma girişi oluşturur. İstenen davranış,editçağrısından sonra geri alma yığınını temizlemekse lütfenTextFieldState.undoState.clearHistory()kullanın. (I12c14)SelectionContainerveBasicTextField(value, onValueChange)aşırı yüklenmesinde kelime seçmek için iki kez dokunma desteği eklendi. (Ibb06a)AutoboxingStateValuePropertyDetectoröğesinin hem K1 hem de K2 ile uyumlu olması için küçük bir hata düzeltildi (Ie81c1).requestRectangleOnScreenAndroidView'lar tarafından yapılan istekler artık Compose'a doğru şekilde yayılıyor. Bu sayede,EditTextgibi görünümlerle etkileşimde bulunulduğunda ekran üzerinde kalır. (Ibbf4c)- Sütun ve satır artık öğenin gerçek boyutunu
Alignment.Vertical.alignveAlignment.Horizontal.align'ye doğru şekilde iletiyor. Böylece, özel hizalama uygulamalarının yanlış 0 değeri almasına neden olan sorun çözülüyor. (I3e460, b/349722072)
Sürüm 1.9
Sürüm 1.9.5
19 Kasım 2025
androidx.compose.foundation:foundation-*:1.9.5 iptal edilir. 1.9.5 sürümü bu commit'leri içerir.
Sürüm 1.9.4
22 Ekim 2025
androidx.compose.foundation:foundation-*:1.9.4 iptal edilir. 1.9.4 sürümü bu commit'leri içerir.
Sürüm 1.9.3
8 Ekim 2025
androidx.compose.foundation:foundation-*:1.9.3 iptal edilir. 1.9.3 sürümü bu commit'leri içerir.
Sürüm 1.9.2
24 Eylül 2025
androidx.compose.foundation:foundation-*:1.9.2 iptal edilir. 1.9.2 sürümü bu commit'leri içerir.
Sürüm 1.9.1
10 Eylül 2025
androidx.compose.foundation:foundation-*:1.9.1 iptal edilir. 1.9.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
LazyListsiçindeLazyLayoutCacheWindowkullanılırken yaşanan kilitlenme sorunu düzeltildi (c39f5f3).
Sürüm 1.9.0
13 Ağustos 2025
androidx.compose.foundation:foundation-*:1.9.0 iptal edilir. 1.9.0 sürümü bu commit'leri içerir.
1.8.0 sürümünden beri yapılan önemli değişiklikler
- Compose ile birlikte gelen Lint kontrolleri artık minimum AGP sürümü olarak 8.8.2'yi gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine
gradle.propertiesdosyanızdaandroid.experimental.lint.version=8.8.2(veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir. - Kapsamlı değişiklik: Bir Indication parametresi içermeyen
clickable,combinedClickable,selectable,toggleablevetriStateToggleableaşırı yüklemeleri artık yalnızcaLocalIndicationkullanılarak sağlananIndicationNodeFactoryörneklerini destekliyor. Bu değişiklik, Compose'un bu sürümünü kullanarak bu değiştiricilerin kullanımlarını yeniden derlediğinizde uygulanır. İkili / geçişli bağımlılıklar etkilenmez.LocalIndicationiçin kullanımdan kaldırılmış bir Indication uygulaması sağlıyorsanız ve bu API'leri kullanıyorsanız bu durum, çalışma zamanında kilitlenmeye neden olur. Bu davranış değişikliği, performansın iyileştirilmesi ve bu değiştiricileri kullanan Composable işlevlerinin yeniden oluşturma sırasında atlanabilmesi için gereklidir. Bu davranış değişikliğini geçici olarak devre dışı bırakmak içinComposeFoundationFlags.isNonComposedClickableEnabled=falseseçeneğini kullanabilirsiniz. Böylece, bu taşıma işleminde engellenmeden Compose'u yükseltebilirsiniz. Bu işaret, kararlı bir sürümden sonra kaldırılacaktır. Bu sorunu çözmek için kullanımdan kaldırılan tüm Indication uygulamalarınıIndicationNodeFactorykullanacak şekilde taşıyın. Aşırı yüklemeleri açık bir Indication parametresiyle de kullanabilirsiniz. Bu aşırı yüklemeler, performans nedenleriyle önerilmese de Indication'ınIndicationNodeFactoryolmayan örneklerini desteklemeye devam eder. (I6bcdc, b/316914333) - İç içe kaydırmada atma yayılımıyla ilgili bir sorunu düzeltmek için
isFlingCancellationWithNestedScrollFixEnabledişlevi kullanıma sunuldu. Bu CL'de, I9326a'da kaldırılan kaydırma devam ettirme davranışını geri yüklüyoruz. Çocuk kompozisyondan çıkarılırsa yine de fırlatma animasyonunu iptal ederiz. (I467f4, b/405910180, b/419049142, b/416784125) ContentInViewNodeuygulamasındascrollAnimationSpeckullanımını yeniden ekleyin. Bu davranış,scrollAnimationSpecdesteği sonlandırılırken kaldırıldı ve bu durum, kullanım alanlarının bozulmasına neden oldu. (I1436a, b/403301605)- Sabitlenmiş
LazyLayout. (If5db4),LazyLayoutPrefetchStateve planlama yöntemischedulePrecompositionveschedulePrecompositionAndPremeasure. (I4362f, b/252853717) veLazyLayoutItemProvider(Icce09,b/261565751) - Oluşturma özelliğinin
ViewTreeObserver.OnScrollChangedtetiklemesine izin verin. Bu davranış,isOnScrollChangedCallbackEnabledişaretiyle kullanıma sunulmuştur. AyrıcaDelegatableNode dispatchOnScrollChanged'nın bir uzantı işlevini de kullanıma sunduk. (I34b9d, b/238109286) - Durum oluşturma için
Modifier.scrollable2D,Scrollable2DStateve tamamlayıcı API'leri kullanıma sunun. Ayrıca, yaygın kaydırma uzantısı işlevleri de kullanıma sunuldu. (Ic61c8, b/214410040) PrefetchSchedulerve özelleştirme, tüm işleri otomatik olarak yapan dahili uygulama lehine kullanımdan kaldırıldı. (I3a9a6, b/420551535)TextFieldState.edit { }artık geri alma geçmişini temizlemiyor. Bunun yerine bağımsız bir geri alma girişi oluşturur. İstenen davranış, düzenleme çağrısından sonra geri alma yığınını temizlemekse lütfenTextFieldState.undoState.clearHistory()kullanın. (I12c14)- Bağlam menüsü ve seçim araç çubuğu artık Akıllı Öğeleri (Akıllı Seçim) destekliyor
stateaşırı yüklemesi kullanılarakTextFieldçıkışının biçimlendirilmesine olanak tanımak için biçimlendirilmiş metinOutputTransformationeklendi.TextField: Desteklenen bağlam menüsü (sağ tıklama menüsü).- Artık
SelectionContaineriçindeki birden fazla Text composable'dan kopyalanan metinlerin arasına, ayrı Text composable'lardan gelen metinler arasında satır ayırıcı \n eklenir. (I25332, b/285036739) AnnotatedStringaracılığıyla özel madde işaretli listeler oluşturmak için API'yi kullanıma sunma (I1d066, b/383269496, b/139326648)stateBasicTextFieldaşırı yüklemesi, boyutu değiştiğinde imlecin görünümde kaydırılmasını sağlar. (I0eb41, b/406187741)- Önemli değişiklik:
backgroundveborderdeğiştirici düğümleri artıkSemanticsModifierNode'yi uyguluyor. Bu durum, semantik ağacına yeniSemanticsNodeseklenmesine ve dolayısıyla semantik ağaç yapısı hakkında varsayımlarda bulunan testlerde test hatalarına yol açabilir. Örneğin,onChild,onParent,onSiblingve benzeri yöntemleri kullanarak onaylamalar yapan testler, mevcut ve hedef düğümler arasına yeni bir düğüm eklenirse başarısız olabilir. Bu hataları düzeltmenin tercih edilen yolu, doğrudan hedef düğüme birtestTageklemektir. Bir diğer yaklaşım iseonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))gibi daha esnek bir eşleştirici kullanmaktır. (I638b5)
Sürüm 1.9.0-rc01
30 Temmuz 2025
androidx.compose.foundation:foundation-*:1.9.0-rc01 iptal edilir. 1.9.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
TextFieldState.edit { }artık geri alma geçmişini temizlemiyor. Bunun yerine bağımsız bir geri alma girişi oluşturur. İstenen davranış,editçağrısından sonra geri alma yığınını temizlemekse lütfenTextFieldState.undoState.clearHistory()kullanın. (I12c14)
Sürüm 1.9.0-beta03
16 Temmuz 2025
androidx.compose.foundation:foundation-*:1.9.0-beta03 iptal edilir. 1.9.0-beta03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Boş üstbilgi içeriği sağlandığında tembel ızgaralarda sabit üstbilgi davranışını bozan gerileme hatası düzeltildi. (e3e3400)
Sürüm 1.9.0-beta02
2 Temmuz 2025
androidx.compose.foundation:foundation-*:1.9.0-beta02 iptal edilir. 1.9.0-beta02 sürümü bu commit'leri içerir.
Yeni Özellikler
- İçerik menüsünde ve seçim araç çubuğunda akıllı öğeleri destekler.
API Değişiklikleri
- Belirli donanım klavyelerinin veya TV kumandalarının, yön tuşlarını kullanarak imleci yeni
TextFieldsiçinde hareket ettirememesi ve bunun yerine odağı başka bir composable'a kaydırmasıyla ilgili hata düzeltildi. Geri alınamaz şekilde istenmeyen davranışlara neden olması durumunda bu düzeltmenin geçici olarak devre dışı bırakılabilmesi içinComposeFoundationFlag.isTextFieldDpadNavigationFixEnabledeklendi. (Ie1922)
Hata Düzeltmeleri
- Sabitlenmiş bir öğe varsa yapışkan üstbilgilerin yapışmamasına neden olan sorun düzeltildi. (I9198d, b/385006133)
TextObfuscationMode.RevealLastTypedartık "TEXT_SHOW_PASSWORD" sistem ayarını takip ediyor. (I41c0c)- Metin araç çubuğu ilk kez açıldığında
BasicTextFieldsimgesinin yanlışlıkla "Pano yapıştırıldı" uyarısı göstermesine neden olan hata düzeltildi. (I5fda2)
Sürüm 1.9.0-beta01
18 Haziran 2025
androidx.compose.foundation:foundation-*:1.9.0-beta01 iptal edilir. 1.9.0-beta01 sürümü bu commit'leri içerir.
Zarar Veren Değişiklikler
backgroundveborderdeğiştirici düğümleri artıkSemanticsModifierNode'yi uyguluyor. Bu durum, semantik ağacına yeniSemanticsNodeseklenmesine ve dolayısıyla semantik ağaç yapısı hakkında varsayımlarda bulunan testlerde test hatalarına yol açabilir. Örneğin,onChild,onParent,onSiblingve benzeri yöntemleri kullanarak onaylamalar yapan testler, mevcut ve hedef düğümler arasına yeni bir düğüm eklenirse başarısız olabilir. Bu hataları düzeltmenin tercih edilen yolu, doğrudan hedef düğüme birtestTageklemektir. Bir diğer yaklaşım iseonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))gibi daha esnek bir eşleştirici kullanmaktır. (I638b5)
API Değişiklikleri
Modifier.addTextContextMenuComponentsöğesiniappendTextContextMenuComponentsolarak yeniden adlandırın. (I4c43f)AnnotatedOutputTransformationkaldırıldı veaddStyleişlevleriTextFieldBuffer'ye taşındı.addStyleyalnızcaOutputTransformationüzerinden aranabilir. (I9930a, b/417991824)- Clickable, askıya alınmış işaretçi girişini optimizasyon olarak kullanmayacak şekilde yeniden yazıldı. Bu özellik bir işaretle etkinleştirilir. Yeni uygulamada bir hatayla karşılaşırsanız
ComposeFoundationFlags.isNonSuspendingPointerInputInClickableEnabledişaretini kullanarak özelliği devre dışı bırakabilirsiniz. (I85b65) - İç içe kaydırmada atma yayılımıyla ilgili bir sorunu düzeltmek için
isFlingCancellationWithNestedScrollFixEnabledişlevi kullanıma sunuldu. Bu CL'de, aosp/3260391 içinde kaldırılan, kaydırma devam ettirme davranışını geri yüklüyoruz. Çocuk kompozisyondan çıkarılırsa yine de fırlatma animasyonunu iptal ederiz. (I467f4, b/405910180, b/419049142, b/416784125) WindowInsetsRulers:rulersIgnoringVisibility, maksimum olarak değiştirildi.getDisplayCutoutBounds(),PlacementScope'nin uzantı işlevi olarak değiştirildi.WindowInsetsAnimationProperties,WindowInsetsAnimationolarak,getAnimationProperties()isegetAnimation()olarak değiştirildi. (I3816f)InsetsRulers,WindowInsetsRulersadıyla ortak kodda olacak şekilde değiştirildi. API'yi basitleştirerek tüm iç kısımlarınWindowInsetsRulersolmasını sağladık. Cetvel dışı animasyon özellikleriAnimationPropertiessınıfına çıkarıldı.WindowInsetsRulers.innermostOf(), birden fazlaWindowInsetsRulersöğesini birleştirmek için kullanılabilir. (I2f0c6, b/415012444)
Hata Düzeltmeleri
ContentInViewNodeuygulamasındascrollAnimationSpeckullanımını yeniden ekleyin. Bu davranış,scrollAnimationSpecdesteği sonlandırılırken kaldırıldı ve bu durum, kullanım alanlarının bozulmasına neden oldu. (I1436a, b/403301605)
Sürüm 1.9.0-alpha04
4 Haziran 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha04 iptal edilir. 1.9.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
PrefetchSchedulerve özelleştirme, tüm işleri otomatik olarak yapan dahili uygulama lehine kullanımdan kaldırıldı. (I3a9a6, b/420551535)Scrollable2DState, açıyı kullanmak yerinecanScrollyönteminde bir ofset kullanacak şekilde güncellendi. (I28694, b/417268474)AnnotatedOutputTransformationiçindekiaddAnnotation,addStyleile değiştirildi. (I91c6f, b/417991824)- Sabitlenmiş
LazyLayout. (If5db4) LazyLayoutPrefetchStateve planlama yöntemischedulePrecompositionveschedulePrecompositionAndPremeasureiçin boş bir oluşturucu sabitlendi. (I4362f, b/252853717)ProcessTextKeyniyet işlemleri için eklenen içerik menüsü öğelerinde kullanılan Android'dekiProcessTextKeysimgesi kullanıma sunuldu.PROCESS_TEXT(If0ac4)- Bağlam menüsü API'lerini herkese açık hale getirin. İçerik menüsüne öğe eklemek ve öğe kaldırmak için
Modifier.addTextContextMenuComponentsveModifier.filterTextContextMenuComponentsseçenekleri eklendi. Ayrıca, özelleştirilmiş bir bağlam menüsü oluşturulabilmesi için aşağıdaki temel API'ler herkese açık hale getirildi:TextContextMenuProviderTextContextMenuDataProviderTextContextMenuDataTextContextMenuComponentLocalTextContextMenuDropdownProviderLocalTextContextMenuToolbarProvider(I1b7b0)
LazyLayoutItemProvider'yı kararlı hale getirin (Icce09, b/261565751)ComposeFoundationFlags.isSmartSelectionEnabledüzerinden etkinleştirilebilen/devre dışı bırakılabilen Android akıllı seçim özellikleri kullanıma sunuldu. Ayrıca,TextClassificationişinin başlatıldığıCoroutineContext'ı belirtmek için kullanılabilecek statik bircompositionLocalLocalTextClassifierCoroutineContextda kullanıma sunuldu. (I1dbaa, b/139321320)
Sürüm 1.9.0-alpha03
20 Mayıs 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha03 iptal edilir. 1.9.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
TextFieldöğesine oluşturmadan önce ek açıklamalar eklemenizi sağlayanAnnotatedOutputTransformationeklendi. (Ibc6f0, b/389978748)LazyLayoutMeasurePolicyözelliğini tanıtın veLazyLayoutMeasureScopeözelliğini kararlı hale getirin. (I8c5df, b/252853717)BasicSecureTextFieldartık kendiBasicTextFieldöğesinin ScrollState'ini kullanıyor. (I6e576)Modifier.onFirstVisibleveModifier.onVisibilityChangeddeğiştiricileri kullanıma sunuldu. Bu değiştiriciler,Modifier.onLayoutRectChangedüzerine inşa edilmiş üst düzey değiştiricilerdir. Bu değiştiriciler, özellikle gösterimleri kaydetme ve videoları otomatik oynatma gibi birçok yaygın uygulama koşulunu karşılamak için tasarlanmıştır. Kaydırma performansından ödün verme riski olmadan kritik liste tabanlı senaryolarda kullanılabilmeleri için performans göz önünde bulundurularak geliştirilmiştir. Bu değiştirici API'lerine ek olarak, bu kullanım alanlarını desteklemek ve geliştiricilerin kullanım alanlarına tam olarak uyan benzer özel değiştiricileri kolayca oluşturmasını sağlamak içinRelativeLayoutBoundsek API'ler de eklenmiştir. (I759b8)- Dokunma eğimi ve yön kilidi kontrolü olan bir
detectDragGesturesaşırı yüklemesi kullanıma sunuldu. (Iadb0d) - Durum oluşturma için
Modifier.scrollable2D,Scrollable2DStateve tamamlayıcı API'leri kullanıma sunuyoruz. Ayrıca, yaygın kaydırma uzantısı işlevleri de kullanıma sunuldu. (Ic61c8, b/214410040) - Renk alanı kimlikleri bazı renk alanları için sıralı olmadığından Compose 64 bit renk değerleri doğrudan Android
ColorLongsile karşılaştırılamaz. Android renk alanlarına dönüştürme ve bu alanlardan dönüştürme için iki yeni API eklendi:toColorLong()vefromColorLong(). (I36899)
Hata Düzeltmeleri
- Artık
SelectionContaineriçindeki birden fazla Text composable'dan kopyalanan metinlerin arasına, ayrı Text composable'lardan gelen metinler arasında satır ayırıcı\neklenir. (I25332, b/285036739)
Sürüm 1.9.0-alpha02
7 Mayıs 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha02 iptal edilir. 1.9.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
- İşaretçi girişi değişikliklerinin
DragGestureNodeiçindekiVelocityTrackeröğesine eklenme şekli düzeltildi. Bu işlem, yeniisOffsetPositionBeforeAddingToVelocityTrackerEnabledişaretiyle kontrol edilebilir. (Ic7992, b/292556787, b/236451818) await[Vertical/Horizontal]PointerSlopOrCancellationherkese açık hale getirme (I6968b, b/298903681)AbstractComposeView.consumeWindowInsetsartık varsayılan olarak false değerini alır.WindowInsets, yanlış olarak ayarlandığında çocuğun boyutuna ve konumuna göre otomatik olarak ayarlanır. Bu nedenle, artık varsayılan olarak doğru ayarlanması gerekmez. Bu düzeltme, alt görünümlerin varsayılan olarakWindowInsetsgüncellemelerini almaması sorununu giderir. Geliştiriciler, deneyselComposeFoundationLayout.isWindowInsetsDefaultPassThroughEnableddeğerini true olarak değiştirerek veya tercihen tüm Compose görünümü örneklerindeAbstractComposeView.consumeWindowInsetsdeğerini true olarak ayarlayarak güncellemeyi devre dışı bırakabilir. (I6fa0a, b/411868840)
Harici Katkı (External Contribution)
- beyondViewportPageCount değerleri çok büyük olduğunda Pager'ın kilitlenmesi sorunu düzeltildi (Idb2db)
Sürüm 1.9.0-alpha01
23 Nisan 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha01 iptal edilir. 1.9.0-alpha01 sürümü bu commit'leri içerir.
Davranış Değişiklikleri
Compose ile birlikte gelen Lint kontrolleri artık minimum AGP sürümü olarak 8.8.2'yi gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine
gradle.propertiesdosyanızdaandroid.experimental.lint.version=8.8.2(veya daha yeni bir sürüm) kullanarak Lint'i tek başına yükseltebilirsiniz. IDE'de Compose lint kontrollerini çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.Kapsamlı değişiklik:
clickable,combinedClickable,selectable,toggleablevetriStateToggleableaşırı yüklemeleri, artık yalnızcaLocalIndicationkullanılarak sağlananIndicationNodeFactoryörneklerini destekliyor. Bu değişiklik, Compose'un bu sürümünü kullanarak bu değiştiricilerin kullanımlarını yeniden derlediğinizde uygulanır. İkili / geçişli bağımlılıklar etkilenmez.LocalIndicationiçin kullanımdan kaldırılmış bir Indication uygulaması sağlıyorsanız ve bu API'leri kullanıyorsanız bu durum, çalışma zamanında kilitlenmeye neden olur. Bu davranış değişikliği, performansın iyileştirilmesi ve bu değiştiricileri kullanan Composable işlevlerinin yeniden oluşturma sırasında atlanabilmesi için gereklidir. Bu davranış değişikliğini geçici olarak devre dışı bırakmak içinComposeFoundationFlags.isNonComposedClickableEnabled=falseseçeneğini kullanabilirsiniz. Böylece, bu taşıma işleminde engellenmeden Compose'u yükseltebilirsiniz. Bu işaret, kararlı bir sürümden sonra kaldırılacaktır. Bu sorunu çözmek için kullanımdan kaldırılan tüm Indication uygulamalarınıIndicationNodeFactorykullanacak şekilde taşıyın. Aşırı yüklemeleri açık bir Indication parametresiyle de kullanabilirsiniz. Bu aşırı yüklemeler, performans nedenleriyle önerilmese de Indication'ınIndicationNodeFactoryolmayan örneklerini desteklemeye devam eder. (I6bcdc, b/316914333)
API Değişiklikleri
AnnotatedStringaracılığıyla özel madde işaretli listeler oluşturmak için API'yi kullanıma sunma (I1d066, b/383269496, b/139326648)- Oluşturma özelliğinin
ViewTreeObserver.OnScrollChangedtetiklemesine izin verin. Bu davranış,isOnScrollChangedCallbackEnabledişaretiyle kullanıma sunulmuştur. AyrıcaDelegatableNode dispatchOnScrollChanged'nın bir uzantı işlevini de kullanıma sunduk. (I34b9d, b/238109286) - Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir (Idb6b5).
TextFieldStateiçin lint kontrolü desteği eklendi. Böylece, bu karakterin kompozisyon içinde hatırlanması sağlanır. Bunun yerinerememberTextFieldStatekullanabilirsiniz. (I53d74)FocusRequesteröğesinin kompozisyon içinde hatırlanmasını sağlamak için lint kontrolü desteği eklendi (I6bf91).BringIntoViewRequesteriçin lint kontrolü desteği eklendi. Böylece, bu karakterin kompozisyon içinde hatırlanması sağlanır. (Ibfba6)schedulePrefetchçağrıları için kapsamlar kullanıma sunuldu. Bu kapsamlar, boyut ve dizin bilgisi sağlamaLazyListPrefetchStateözellikleriyle uyumlu olacak şekilde ızgara ve liste stratejilerinde kullanılıyor. (Iad80c)- Kapsamlı değişiklik:
clickable,combinedClickable,selectable,toggleablevetriStateToggleableaşırı yüklemeleri, artık yalnızcaLocalIndicationkullanılarak sağlananIndicationNodeFactoryörneklerini destekliyor. Bu değişiklik, Compose'un bu sürümünü kullanarak bu değiştiricilerin kullanımlarını yeniden derlediğinizde uygulanır. İkili / geçişli bağımlılıklar etkilenmez.LocalIndicationiçin kullanımdan kaldırılmış bir Indication uygulaması sağlıyorsanız ve bu API'leri kullanıyorsanız bu durum, çalışma zamanında kilitlenmeye neden olur. Bu davranış değişikliği, performansın iyileştirilmesi ve bu değiştiricileri kullanan Composable işlevlerinin yeniden oluşturma sırasında atlanabilmesi için gereklidir. Bu davranış değişikliğini geçici olarak devre dışı bırakmak içinComposeFoundationFlags.isNonComposedClickableEnabled=falseseçeneğini kullanabilirsiniz. Böylece, bu taşıma işleminde engellenmeden Compose'u yükseltebilirsiniz. Bu işaret, kararlı bir sürümden sonra kaldırılacaktır. Bu sorunu çözmek için kullanımdan kaldırılan tüm Indication uygulamalarınıIndicationNodeFactorykullanacak şekilde taşıyın. Aşırı yüklemeleri açık bir Indication parametresiyle de kullanabilirsiniz. Bu aşırı yüklemeler, performans nedenleriyle önerilmese de Indication'ınIndicationNodeFactoryolmayan örneklerini desteklemeye devam eder. (I6bcdc, b/316914333) - Otomatik iç içe önceden getirme davranışını kontrol etmek için bir işaretleme ekleyin:
isAutomaticNestedPrefetchEnabled(I8d448) LazyGridStateverememberLazyGridStateiçinLazyLayoutCacheWindowalan bir aşırı yükleme tanıtın. (I51151)- Pencere iç kısımları için cetveller ekler. Başka bir cetvelden cetvel hesaplanmasına izin vermek için
DerivedRulerekler. Yoğunluğu uygulamak içinPlacmentScopedeğiştirilir. (I658bc, b/359260964) - Boş
WindowInsetsoluşturmayı kolaylaştırmak için sıfır bağımsız değişkenliWindowInsets()fabrika işlevi eklendi. (I65f62, b/395311689) - Boş
PaddingValuesiçinPaddingValues.Zeroeklendi. (If193e, b/386255688)
Hata Düzeltmeleri
stateBasicTextFieldaşırı yüklemesi, boyutu değiştiğinde imlecin görünümde kaydırılmasını sağlar. (I0eb41, b/406187741)- İlk durum hakkında bilgi vermek için
LazyListPrefetchStrategyveLazyGridPrefetchStrategy'dekionVisibleItemsUpdatedAPI'leri güncellendi. (If2cfa)
Sürüm 1.8
Sürüm 1.8.3
18 Haziran 2025
androidx.compose.foundation:foundation-*:1.8.3 iptal edilir. 1.8.3 sürümü bu commit'leri içerir.
Sürüm 1.8.2
20 Mayıs 2025
androidx.compose.foundation:foundation-*:1.8.2 iptal edilir. 1.8.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Odak arama için yüklenecek öğe sayısının hesaplanmasının sıfıra bölmeye neden olmasını engelleyen bir düzeltme uygulandı. Kontrolü,
LazyLayoutBeyondBoundsStatekullanan tüm düzenlere uyguladıysanız. (8e6dc8)
Sürüm 1.8.1
7 Mayıs 2025
androidx.compose.foundation:foundation-*:1.8.1 iptal edilir. 1.8.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
BasicTextveTextAutoSize'de,TextOverflow.Ellipsizekullanıldığında metnin idealden daha küçük olmasına neden olan hata düzeltildi. (I1e1d8, b/396582066)BasicTextField'da,TextFieldDecorator'nininnerTextField'ı çağırmayı atlaması durumunda çeşitli kilitlenmelere neden olan hata düzeltildi. (I2638c), b/308398612TextFieldiçinde,TextFieldStateörneği değiştirildiğinde metin araç çubuğunun ve seçim tutamaçlarının tamamen kaybolmasına neden olan hata düzeltildi. (I8068a), b/390477786BasicTextiçinde, minimum genişlik kısıtlamasının değiştirilmesinin,textAlignvarsayılan olmayan bir değere ayarlandığında metnin yerleşimini güncellememesine neden olan hata düzeltildi. (I77a96), b/406305552
Sürüm 1.8.0
23 Nisan 2025
androidx.compose.foundation:foundation-*:1.8.0 iptal edilir. 1.8.0 sürümü bu commit'leri içerir.
Sürüm 1.8.0-rc03
9 Nisan 2025
androidx.compose.foundation:foundation-*:1.8.0-rc03 iptal edilir. 1.8.0-rc03 sürümü bu commit'leri içerir.
Sürüm 1.8.0-rc02
26 Mart 2025
androidx.compose.foundation:foundation-*:1.8.0-rc02 iptal edilir. 1.8.0-rc02 sürümü bu commit'leri içerir.
Sürüm 1.8.0-rc01
12 Mart 2025
androidx.compose.foundation:foundation-*:1.8.0-rc01 iptal edilir. 1.8.0-rc01 sürümü bu commit'leri içerir.
Sürüm 1.8.0-beta03
26 Şubat 2025
androidx.compose.foundation:foundation-*:1.8.0-beta03 iptal edilir. 1.8.0-beta03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Çıkış dönüşümü uygulanmadan önce bir metin alanının değerini yakalayan yeni bir semantik özellik
InputTexteklendi. (Iae46a, b/395911609, b/176949051) - Desteği sonlandırılmış
AutoSizeaşırı yüklemeleri kaldırıldı. LütfenTextAutoSizeaynı işlevi sunan API'leri kullanın. (I2c90f) - Aynı kısıtlamalara sahip ikinci bir düzen geçişinin, en büyük yerine ikinci en büyük uygun yazı tipi boyutunun kullanılmasına neden olabileceği
TextAutoSizeile ilgili bir önbelleğe alma sorunu düzeltildi. (Id367f)
Sürüm 1.8.0-beta02
12 Şubat 2025
androidx.compose.foundation:foundation-*:1.8.0-beta02 iptal edilir. 1.8.0-beta02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
LayoutModifierNodekullanılarak yapılan aşırı kaydırma uygulamalarının kaydırma kapsayıcılarında doğru şekilde çalışmamasına neden olan sorun düzeltildi.
Sürüm 1.8.0-beta01
29 Ocak 2025
androidx.compose.foundation:foundation-*:1.8.0-beta01 iptal edilir. 1.8.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
SemanticsNodeInteraction.semanticsId()kaldırıldı. Bunun yerineSemanticsNodeInteraction.fetchSemanticsNode().idpolitikasını kullanın. (Ie397a)- Otomatik doldurma yöneticisinin dışında var olacak şekilde
requestAutofillAPI'yi yeniden yazın. (Id1929) ContextualFlowRowveContextualFlowColumn, kullanımdan kaldırıldı olarak işaretlendi. Bu deneysel bileşen 1.7 sürümünde kullanıma sunulmuştu ve henüz kararlı hale getirilmemişti. Ayrıca, uygulamanın istenmeyen bir durum olduğu düşünülüyordu. Gelecekte, bu bileşenin çözmesi amaçlanan kullanım alanlarını çözen bir bileşen sağlanabilir.FlowRowveFlowColumn, 1.7 sürümünde kullanıma sunulan veoverflowparametresini içeren deneysel aşırı yüklemelere sahiptir. Bu parametrenin kullanımı kullanımdan kaldırıldı. Bunun yerine bu parametre olmadan aşırı yüklemeler kullanılabilir. Bu aşırı yüklemeler için varsayılan "taşma" davranışı, kullanıma sunulduğundan beri olduğu gibi "Kırp" olacaktır.ContextualFlowRowiçin birçok kullanım alanıFlowRowkullanılarak gerçekleştirilebilir ancak bunun her durumda geçerli olmadığını kabul ediyoruz.ContextualFlowRow, kullanıcı alanında tamamen uygulanabilir ve istenirse uygulaması kopyalanıp uyarlanabilir. Gelecekte bu kullanım alanlarını farklı bir şekilde çözmeyi umuyoruz. (Ibafec)
Hata Düzeltmeleri
- Üç nokta içeren metin düzeninin, animasyonlar sırasında bazen yanlış çevrilmesi sorunu düzeltildi. Daha fazla bilgi için b/389707025 adresini inceleyin (Ie55b1, b/389707025).
BasicTextiçindeTextAutoSizevemaxLinesdeğerleri 1 olarak ayarlandığında ortaya çıkan hata düzeltildi. (Ic0450, b/376834366)- Metnin minimum doğal yüksekliği artık
minLinesparametresini dikkate alıyor. Bu, bildirilen minimum doğal yükseklik değerinin,minLinesparametresini (I225f9, b/388299762) karşılamak için gereken yükseklikten daha küçük olmayacağı anlamına gelir.
Sürüm 1.8.0-alpha08
15 Ocak 2025
androidx.compose.foundation:foundation-*:1.8.0-alpha08 iptal edilir. 1.8.0-alpha08 sürümü bu commit'leri içerir.
API Değişiklikleri
- AutoSize:
AutoSize,TextAutoSizeolarak yeniden adlandırıldı ve özelTextAutoSizeuygulamaları oluşturmayı sağlayan API'ler yayınlandı. Özel metin otomatik boyutlandırma uygulaması örneği içinTextAutoSizeSamplebölümüne bakın. (I85756) DetectTapGesturesEnableNewDispatchingBehaviorözellik işaretiniComposeFoundationFlagskonumuna taşıyıpisDetectTapGesturesImmediateCoroutineDispatchEnabledolarak yeniden adlandırdı. Eski işaret artık kullanılmamaktadır ve bunun yerineComposeFoundationFlags.isDetectTapGesturesImmediateCoroutineDispatchEnabled'ya devredilecektir. (I62932)
Hata Düzeltmeleri
- Varsayılan olarak
DetectTapGesturesEnableNewDispatchingBehavioretkindir.TapGestureDetectorAPI'leri artık varsayılan olarak yeni gönderme davranışını (anında gönderme) kullanıyor. (I9f2bc, b/369648479) - Doğal boyutların düzgün şekilde işlenmesi için
requiredWidth/Height/Sizedeğiştiricileri düzeltildi. (Ie3d7d, b/368113212)
Harici Katkı (External Contribution)
- Temelde
BasicTooltip, Material 3'te iseBasicTooltip/Tooltiportaklaştırıldı. (Ifc2e6) - Yeni bir pano arayüzü ve bunun için bir kompozisyon yereli eklendi. (I80809)
Sürüm 1.8.0-alpha07
11 Aralık 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha07 iptal edilir. 1.8.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabledişareti silindi. Bu işaret,graphicsLayeröğesininBasicText'den kaldırılmasını geri almaya yardımcı oluyordu. Bu işareti kullanıyorsanız lütfen hata bildirerek nedenlerini bize bildirin. Ayrıca, öncekiyle aynı davranışı elde etmek içinBasicTextaramalarınızaModifier.graphicsLayer()değerini iletebilirsiniz. (Id9f90)- Yeni
stickyHeaderDSL için varsayılan uygulama eklendi. (I68986) LocalAutofillHighlightColorkompozisyon yerel kullanımında Renk türü olmalıdır. (I0e05b)OverscrollEffect#withoutDrawing,OverscrollEffect#withoutVisualEffectolarak yeniden adlandırıldı. (I1a154)
Hata Düzeltmeleri
- Belirli kaydırmalarda yanlış sabitleme noktasına yerleşebilen
AnchoredDraggablehedef hesaplamasındaki bir sorunla ilgili takip düzeltmesi. (I23b87, b/367660226)
Harici Katkı (External Contribution)
BringIntoViewResponderModifierNodeöğesini kullanıcı arayüzüne ekleyin. Bu öğe, Görünüm İçine Getir işlevini uygulamak için yeni bir yol sunar ve platform düzeyinde uygulanmasına olanak tanır (Ia6dd8).- İmlecin çizilme şeklini biraz değiştiriyoruz. Testlerde imleç çizimini devre dışı bırakmak için
LocalCursorBlinkEnabledsimgesini kullanabilirsiniz. (I4c697)
Sürüm 1.8.0-alpha06
13 Kasım 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha06 iptal edilir. 1.8.0-alpha06 sürümü bu commit'leri içerir.
API Değişiklikleri
stylusHoverIcondeğiştiricisini ekler. (Iff20a, b/331289114)AnchoredDraggableStateürünününconfirmValueChangedesteği sonlandırıldı. İzin verilmeyen bağlantılar, durum değişikliklerini engellemek yerine etkin bağlantı kümesinde olmamalıdır. İstenen işlemin kullanılamadığını belirtmek içinOverscrollEffectkullanılmalıdır. (Ia717f)- Otomatik doldurma yöneticisini arayüz olarak değiştirir. (I84914, b/376080755)
OverscrollEffect#withoutDrawingveOverscrollEffect#withoutEventHandlingAPI'leri eklenir. Bu API'ler, sırasıyla etkinlikleri çizip işlemeyen, sağlanan aşırı kaydırma efektinin sarmalanmış bir örneğini oluşturur. Bu sayede, aşırı kaydırma efektinin etkinlikleri gönderen bileşenden ayrı bir bileşende oluşturulmasına olanak tanır. Örneğin, tembel listede aşırı kaydırmanın çizilmesini devre dışı bırakıp aşırı kaydırmayı ayrı olarak üstte veya başka bir yerde çizebilirsiniz. (Idbb3d, b/266550551, b/204650733, b/255554340, b/229537244)- Metin araç çubuğuna otomatik doldurma desteği eklendi. (Ie6a4c)
OverscrollConfigurationveLocalOverscrollConfigurationkullanımdan kaldırılır ve varsayılan aşırı kaydırma uygulamasının bir örneğini oluşturmak ya da parametrelerini özelleştirmek içinrememberPlatformOverscrollFactoryeklenir. Aşırı kaydırmayı devre dışı bırakmak içinLocalOverscrollConfiguration provides nullyerineLocalOverscrollFactory provides nullkullanın. Işıma rengini / dolgusunu değiştirmek içinLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)yerineLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)kullanın. (Ie71f9, b/255554340, b/234451516)OverscrollEffectüzerindekieffectModifierözelliği, diğer API'lerle tutarlı olacak şekildenode: DelegatableNodeolarak değiştirildi. (Ic0b46, b/255554340)- Deneysel
GlobalAssertionsAPI'si kaldırıldı. Bu özellik, erişilebilirlik kontrolleri yapmak için tasarlanmıştır. Bu amaçla kullanmak içinenableAccessibilityChecks()bölümüne bakın. (I59322)
Sürüm 1.8.0-alpha05
30 Ekim 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha05 iptal edilir. 1.8.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
- Metnin otomatik olarak boyutlandırılması desteği. En sevdiğiniz metin composable'ına (ör.
BasicText) birAutoSizeörneği (ör.AutoSize.StepBased) iletin ve metin boyutunuzun mevcut alana uyum sağladığını görün. (Ice7e0, b/139320827) - Hiyerarşi içinde aşırı kaydırmanın yapılandırılmasına olanak tanıyan
OverscrollFactoryveLocalOverscrollFactoryAPI'leri ekler.LocalOverscrollFactoryaracılığıyla sağlanan değer, varsayılan olarakOverscrollEffectoluşturmak için kullanılır. Mevcut fabrikadan bir efekt oluşturmak ve hatırlamak içinrememberOverscrollEffect()kullanın. (I51ca4, b/255554340)
API Değişiklikleri
- Otomatik doldurma özelliğinin başarılı doldurma vurgusunun tonunu değiştirmek için kullanılabilecek
CompositionLocalözelliğini kullanıma sunuyoruz. (I32092) ScrollableDefaults.overscrollEffectkaldırıldı. Bunun yerinerememberOverscrollEffectkullanmalısınız. Bu işlem,LocalOverscrollFactoryile sağlanan mevcut aşırı kaydırma uygulamasının bir örneğini oluşturur. (I1651a, b/255554340),(b/234451516)- Kullanıcıların otomatik doldurma yolculuğuna ince ayar yapmak için kullanılabilecek yeni bir
AutofillManagerarayüzü ve otomatik doldurmanın bu yeni sürümünü etkinleştirmek için birisSemanticAutofillEnabledişareti sunar. (I9d484) CombinedClickableNodeöğesini kaldırır. Bu deneysel API, performans çalışmalarının engellenmemesi için geçici olarak kullanıma sunulmuştu ancak artık gerekli değil. Bunun yerine, diğer değiştirici API'lerde olduğu gibi doğrudanModifier.combinedClickablekullanmalısınız. (I4b658)horizontalScroll,verticalScroll,LazyColumn,LazyRow,LazyHorizontalGrid,LazyVerticalGrid,LazyHorizontalStaggeredGrid,LazyVerticalStaggeredGrid,HorizontalPagerveVerticalPager'ye özelOverscrollEffectbelirtme desteğiyle aşırı yüklemeler ekler. SağlananOverscrollEffect, etkinlikleri alır ve bu bileşenlerin sınırları içinde oluşturulur. AynıOverscrollEffectöğesini iki kez çizmenin desteklenmediğini unutmayın. Bu nedenle, bu bileşenlerden birine sağlanan aynıOverscrollEffectöğesiniModifier.overscrollile ayrı ayrı çizemezsiniz. Aşırı kaydırmayı bu bileşenlerin sınırları dışında çizme kullanım alanı gelecekte ayrı olarak ele alınacaktır. (I2dc42, b/266550551, b/234274772, b/224572538, b/353805117)
Sürüm 1.8.0-alpha04
16 Ekim 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha04 iptal edilir. 1.8.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
DelegatableNode#onDensityChangeveDelegatableNode#onLayoutDirectionChangegeri çağırmalarını ekleyerek bunlar değiştiğinde düğüm durumunun güncellenmesine olanak tanır. (I04f3e, b/340662451)- Paragraf ve
ParagraphIntrinsicsartıkAnnotatedString'ye uygulanan tüm ek açıklamaların listesini alıyor. Daha önce yalnızcaSpanStyleslistesi vardı. (I12f80) - Tek bir işaretçi giriş değiştiricisinin dokunma sınırlarını büyütmek için kullanılabilecek
PointerInputModifierNode#touchBoundsExpansiontanıtıldı. (Iccf02, b/335339283)
Hata Düzeltmeleri
AnchoredDraggableDefaults.flingBehaviorişlevine iletilen konumsal eşiklerin bazı senaryolarda doğru şekilde değerlendirilmemesine neden olan hata düzeltildi. (Ifdf0d, b/367660226)- Devam eden bir kaydırma sırasında düğüm ağacından kaldırılan iç içe kaydırılabilir öğeler için düzeltme sunuldu. Artık bu düğümler, aktarımı iptal edecek ve kalan hızla
onPostFlingetkinliğini doğru şekilde gönderecek. Ayrıca, gerileme durumunda davranışı kontrol etmek içinNewNestedScrollFlingDispatchingEnabledişaretini de kullanıma sunuyoruz. Beta sürümünden önce işaret kaldırılacak. (I05c37, b/371168883) Modifier.anchoredDraggable'ye iletilenOverscrollEffects'nın 1D yerine 2D delta almasına neden olan hata düzeltildi. (Ie52c0)
Sürüm 1.8.0-alpha03
2 Ekim 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha03 iptal edilir. 1.8.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
- Kotlin sürümü 1.9'a (I1a14c) güncellendi.
DraggableAddDownEventFixEnabledişareti eklendi (I848d5)- Erişilebilirlik hizmetleri için sayfalardaki liste davranışını taklit etmek amacıyla Bant adlı yeni bir Semantik Rol kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
graphicsLayerdeğiştiricisi,BasicTextcomposable'dan kaldırıldı. Eski davranışa geri dönmek için deneyselComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabledişareti eklendi. (Ie478d)- Hiyerarşideki çocukların, ebeveynleri onları
consumeWindowInsets()olmadan hizalasa bileinsetsPaddingkullanabilmesi içinModifier.recalculateWindowInsets()eklendi. (I7f9e4)
Hata Düzeltmeleri
detectDragGestures, sürüklenebilir ve kaydırılabilir öğelerde hareketle alma özelliğini uygulayın. Artık bir çocuk sürükleme öğesi bir hareketten vazgeçerse ebeveyn bu öğeyi alabilir. Bu sayede daha kesintisiz ve entegre bir hareket işleme deneyimi sunulur. (Ic88fe)- Kaydırılabilir öğelerde kaydırma iptali davranışını güncelleyin. Artık kaydırılabilir bir öğe kaydırılıp sınırlara ulaştığında, kaydırma hızını kaydırmaya devam etmek yerine zincirdeki bir sonraki kaydırılabilir öğeye doğru şekilde aktaracak. (I9326a)
Sürüm 1.8.0-alpha02
18 Eylül 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha02 iptal edilir. 1.8.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
- Artık
TextOverflow.StartEllipsisveTextOverflow.MiddleEllipsiskullanılabilir. Bu sayede, tek satırlık metin satırının başına veya ortasına üç nokta yerleştirilebilir (I38913, b/185418980).
Sürüm 1.8.0-alpha01
4 Eylül 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha01 iptal edilir. 1.8.0-alpha01 sürümü bu commit'leri içerir.
Sürüm 1.7
Sürüm 1.7.8
12 Şubat 2025
androidx.compose.foundation:foundation-*:1.7.8 iptal edilir. 1.7.8 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Yapıştırılan metnin bir kısmı değiştirilirken giriş dönüştürme işlemiyle
BasicTextField'da kilitlenme sorunu düzeltildi. (I73702)
Sürüm 1.7.7
29 Ocak 2025
androidx.compose.foundation:foundation-*:1.7.7 iptal edilir. 1.7.7 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Bağlantı ek açıklamasıyla ilgili
IndexOutOfBoundkilitlenmesi düzeltildi. (Ic96d2) - Bağlantılarla ilgili bazı uç durumlarda sonsuz yeniden oluşturma sorunu düzeltildi. (I04a03)
Bilinen Hatalar
- Android API düzeyi 35'te nadir durumlarda metnin beklenmedik şekilde kaymasına neden olabilen bir hata tespit edildi. Bu sorun 1.7 sürümünde düzeltilemediği için 1.8 sürümünde düzeltilecektir. (b/391378120)
Sürüm 1.7.6
11 Aralık 2024
androidx.compose.foundation:foundation-*:1.7.6 iptal edilir. 1.7.6 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Metin içi içeriğin erişilebilirlik hizmetleri tarafından görünmemesi sorunu düzeltildi.
AndroidEmbeddedExternalSurfaceöğesinin tembel listede yeniden kullanıldığında düzgün şekilde sıfırlanmamasına ve takılmasına neden olan sorun düzeltildi.
Sürüm 1.7.5
30 Ekim 2024
androidx.compose.foundation:foundation-*:1.7.5 iptal edilir. 1.7.5 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Sabitlenen öğelerin, içerik dolgu alanında iki kez alt bileşen olarak oluşturulmadığından emin olun. (Ic6224)
Sürüm 1.7.4
16 Ekim 2024
androidx.compose.foundation:foundation-*:1.7.4 iptal edilir. 1.7.4 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Metin alanlarında nadiren kilitlenmeye neden olan hata düzeltildi. (I475c6, b/313010266)
- Lazy layout öğelerinin kökünden
ReusableContentHostkaldırıldı. Bu durum, "devre dışı bırakılmış bir düğümde çağrılan ölçü" kilitlenmelerinin olası bir temel nedeniydi. (Id6e60)
Sürüm 1.7.3
2 Ekim 2024
androidx.compose.foundation:foundation-*:1.7.3 iptal edilir. 1.7.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- minLines, varsayılan olmayan bir değere ayarlandığında
BasicTextile ilgili bellek sızıntısı düzeltildi.
Sürüm 1.7.2
18 Eylül 2024
androidx.compose.foundation:foundation-*:1.7.2 iptal edilir. 1.7.2 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Sürüklenemeyen öğelerde, aşağı etkinliklerinin eksik olması nedeniyle fırlatma işlemlerinin normalden daha yavaş görünmesine neden olan sorun düzeltildi.
Sürüm 1.7.1
10 Eylül 2024
- Android yapıları değiştirilmez.
-desktopyapı kaldırıldı,-jvmStubsve-linuxx64Stubsyapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar.
Sürüm 1.7.0
4 Eylül 2024
androidx.compose.foundation:foundation-*:1.7.0 iptal edilir. 1.7.0 sürümü bu commit'leri içerir.
1.6.0 sürümünden beri yapılan önemli değişiklikler
Modifier.clickable,Modifier.focusable,Modifier.indication,Modifier.scrollableveModifier.draggablehizmetlerinin performansı önemli ölçüde iyileştirildi. Bu çabanın bir parçası olarak, dahili değişikliklere ek olarak aşağıdaki API değişiklikleri yapıldı.- Yeni bir Indication API'si (
IndicationNodeFactory) eklendi. Bu, önceki (artık kullanımdan kaldırılmış)rememberUpdatedInstanceAPI'ye kıyasla daha iyi performans gösteren Indication uygulamalarına yol açar. Taşıma bilgileri için developer.android.com adresini ziyaret edin. clickable/combinedClickable/selectable/toggleableartık boş değer atanabilir birMutableInteractionSourceparametresini kabul ediyor. Boşsa ve sağlanan gösterge birIndicationNodeFactoryise gösterge yalnızca gerektiğinde geç oluşturulabilir. Bu da performansı artırır.MutableInteractionSourcedeğerini yükseltip kullanmıyorsanızremember { MutableInteractionSource() }değerini iletmek yerine null değerini iletmeniz önerilir.Indication#rememberUpdatedInstancedesteği sonlandırıldı. Yüksek ve kaçınılmaz bir performans cezası vardır ve diğer optimizasyonları engeller. Bunun yerine yeniIndicationNodeFactoryAPI'yi kullanmanız gerekir.
- Yeni bir Indication API'si (
BasicTextFieldTextFieldStatekullanımı artık kararlı ve tüm çağrı sitelerininBasicTextField(value, onValueChange)'denBasicTextField(TextFieldState)'a geçişe başlamasını öneririz.ClickableTextdesteği sonlandırıldı. Metninize tıklanabilir bağlantılar eklemek içinAnnotatedStringdosyanızdaki yeniLinkAnnotationek açıklamasıyla birlikteBasicTextöğesini kullanın.LinkAnnotation, bağlantı durumuna (ör. odaklanılmış, üzerine gelinmiş) göre özel stil oluşturulmasına olanak tanır.MaxLinesveOverflowileContextualFlowRowveEnhanced FlowRow/Column'ı kullanıma sunuyoruz.FlowRowveFlowColumndeneysel özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artıkmaxLinesve taşma desteğinin yanı sıraContextualFlowRowveContextualFlowColumnözelliklerini de içeriyor. Bu güncelleme, performansı en iyi hale getiren bileşenler sunmak için tasarlanmıştır.ContextualFlow*, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmeleri kullanan çok sayıda öğe için mükemmeldir.FlowRowveFlowColumnise 100'den az öğe içeren az sayıda öğe için mükemmeldir. Önemli: Tüm öğelerin, çapraz eksen maksimumuna uyup uymadıklarına bakılmaksızın oluşturulduğuFlowRowveyaFlowColumn'deki mevcut davranışı korumak için başlatma sırasında taşmayıFlowRowOverflow.VisibleveyaFlowColumnOverflow.Visibleolarak ayarlayın. Bu yeni özelliklerin nasıl kullanıldığını görmek içinContextualFlowRowSampleveFlowRowSamplesayfalarını inceleyin. (Ib9135, b/293577082)- Öğelerin görünme ve kaybolma animasyonu desteği
LazyColumnveLazyRow'ye eklendi. Daha önce yerleştirme (yeniden sıralama) animasyonlarını desteklemek içinModifier.animateItemPlacement()değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık veModifier.animateItem()adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünme [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (I2d7f7, b/150812265) - Resmi Android API'si kullanılarak Compose kaydırma kapsayıcılarında uzun ekran görüntüsü için deneysel destek uygulandı (
ScrollCaptureCallback). NestedScrollkaynakları, animasyonları (Side Effect) ve fare tekerleği ile klavyeyi (UserInput) içeren genişletilmiş tanımları desteklemek içinUserInputveSideEffectile değiştiriliyor.LazyLayoutönceden getirme istekleri artık acil olarak işaretlenebilir. Bu, öğenin bir sonraki karede gerekli olacağını düşündüğümüz ve önceden daha fazla iş yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f).- Android U ve sonraki sürümlerdeki cihazlarda ekran kalemiyle el yazısı özelliğini destekler. (I002e4)
- Çeşitli API'ler kararlı sürüme yükseltildi.
- Çağrı cihazları, tutturma, pencere içleri
Sürüm 1.7.0-rc01
21 Ağustos 2024
androidx.compose.foundation:foundation-*:1.7.0-rc01 iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Odaklanılabilir (veya tıklanabilir) ve devre dışı bırakılmış bir üst öğenin içinde herhangi bir öğeye odaklanıldığında kilitlenmeye neden olan gerileme düzeltildi. (b/317561689)
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07 iptal edilir. 1.7.0-beta07 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Metin girişiyle ilgili
SemanticsNodeInteraction,performTextReplacement,performTextInputveperformTextClearanceişlevleri artık salt okunurTextFieldsüzerinde çağrıldığında onaylama hataları verecek. (I4ae8f) - Köprülerdeki görsel hata düzeltildi. (I23311)
contentReceiverdeğiştiricisinin bazı IME'lerle çalışmaması sorunu düzeltildi.- Hız oluşturma: Compose UI ve Foundation'da NaN değerlerinin yayılmasını önleyin.
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.foundation:foundation-*:1.7.0-beta06 iptal edilir. 1.7.0-beta06 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.foundation:foundation-*:1.7.0-beta05 iptal edilir. 1.7.0-beta05 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
SnapFlingBehaviorve Pager'da NaN değerlerinin işlenmesiyle ilgili düzeltme.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.foundation:foundation-*:1.7.0-beta04 iptal edilir. 1.7.0-beta04 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Çok büyük metin satırları (ör. 10.000 karakter) ölçülürken kilitlenmelerin önüne geçildi (8157ab).
- Yeni
BasicTextField'da (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ı bozan davranış değişikliği geri alındı (69e8ba).
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.foundation:foundation-*:1.7.0-beta03 iptal edilir. 1.7.0-beta03 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-beta02 iptal edilir. 1.7.0-beta02 sürümü bu commit'leri içerir.
API Değişiklikleri
LazyGridsiçin önceden getirme davranışını yapılandırmak üzere deneysel bir API ekler. Bu API,LazyListsiçin mevcut deneysel API'ye benzer. Bu, iç içe yerleştirilmişLazyGridsöğelerinin önceden getirilmesi için destek içerir.LazyListPrefetchStrategy'ya benzer şekilde, varsayılan uygulama her ızgaranın ilk 2 iç içe öğesini önceden getirmektir ancak bu, yeniLazyGridPrefetchStrategy(nestedPrefetchItemCount)veLazyListPrefetchStrategy#onNestedPrefetchAPI'leri ile yapılandırılabilir. (I591c4)SemanticsProperties.Editable,IsEditableolarak yeniden adlandırıldı veSemanticsPropertyReceiver.editable,isEditabledeğerine değiştirildi. Özellik artık bir boole değeridir ve her zaman metin alanlarıyla belirtilir. (I8acd8)basicMarqueevarsayılan değerleriMarqueeDefaultsnesnesine taşındı. (I12ff6)basicMarqueedelayMillisparametresi,repeatDelayMillisolarak yeniden adlandırıldı. (I12ff6)- Bağlantıları stilize etmeye yönelik API güncellemesi:
TextLinkStyles,TextStylekonumuna taşındı veTextDefaults, materyalden kaldırıldı (I5477b)
Hata Düzeltmeleri
- Amacını daha iyi yansıtması için
LayoutCoordinates.introducesFrameOfReference,LayoutCoordinates.introducesMotionFrameOfReferenceolarak yeniden adlandırıldı. İlgili işlev, koordinatları bu işarete göre hesaplayacak şekilde yeniden adlandırıldı. (I3a330) MarqueeDefaultsözelliklerinden "Varsayılan" kaldırıldı. (I1d8a0)MarqueeDefaultsmülklerinden "Marquee" kaldırıldı. (Iad4f4)TextLinkStylesadlı öğrenci,TextStylesınıfından kaldırıldı. Bunun yerine,TextLinkStyles,LinkAnntationoluşturucusunun veAnnotatedString.fromHtmlyönteminin (I90b2b) bir parçasıdır.- Pager'ın, sınıra doğru kaydırılırken sınıra yerleşmiş olmasına rağmen sınıra yapışmasına neden olan hata düzeltildi. (I9f373, b/339171222)
- BTF2'de artık doğru fare seçimi hareketleri kullanılıyor. (Ibe8c6)
Harici Katkı (External Contribution)
- "Doğruluğu artırmak için önceden getirme işleminde oluşturma/ölçme süresi hesaplama içerik türünü temel alın" (Iea622) adlı gönderimi yeniden gönderin.
- Doğruluğu artırmak için önceden getirme işleminde oluşturma/ölçme süresi hesaplama içerik türünü kullanma (Ibccb1)
WindowInsetsPaddingdeğiştiricilerini ortak kaynak grubundan kullanılabilir hale getirme (I070b2)
Sürüm 1.7.0-beta01
14 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-beta01 iptal edilir. 1.7.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
- İkili uyumluluk için desteği sonlandırılan gizli özellik olarak
KeyboardOptions.shouldShowKeyboardOnFocusözelliği yeniden eklendi. (I15cfe) Modifier.anchoredDraggableartık sağdan sola düzenlerde kullanıldığında yatay yönlü bileşenler için sürükleme farklarını varsayılan olarak tersine çeviriyor. (I3c6d9)AnnotatedString.hasEqualsAnnotationsartıkhasEqualAnnotations. (I685c0)- Metinde Material temalı bağlantıları alma API'si güncellendi. Özellikle, temalı
LinkAnnotationsoluşturmak ve temalı bağlantılarla HTML ayrıştırmak içinTextDefaultsyöntemlerini kaldırdı. Bunun yerine, bağlantıları Text composable'a parametre olarak stilize etmeye olanak tanıyan birTextLinkStylessınıfı eklendi. (I31b93) onDragStartedveonDragStopped, askıya alma dışı geri aramalarla değiştirildi. (I59de8)
Hata Düzeltmeleri
contentPaddinggelen kısıtlamalardan büyük olduğunda Pager'ın kilitlenmesine neden olan hata düzeltildi. Sayfalayıcı artıkPageSize'dan döndürülen negatif değerleri 0'a zorluyor. (Iba5d8, b/314008560)
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08 iptal edilir. 1.7.0-alpha08 sürümü bu commit'leri içerir.
Yeni Özellikler
BasicTextFieldveSelectionContainersimgelerine sağ tıklama içerik menüsü eklendi. Bu menüde kesme, kopyalama, yapıştırma ve tümünü seçme işlemleri için öğeler yer alıyor. (If8c93, Ia2b49, I6f268)
API Değişiklikleri
LazyLayoutönceden getirme istekleri artık acil olarak işaretlenebilir. Bu, öğenin bir sonraki karede gerekli olacağını düşündüğümüz ve önceden daha fazla iş yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f).isPositionedByParentWithDirectManipulation,introducesFrameOfReferenceolarak yeniden adlandırıldı. Bu ayarın artık ters etki gösterdiğini, yani varsayılan olarak çoğuLayoutCoordinatesbir referans çerçevesi sunduğunu ve yalnızca doğrudan manipülasyon altında yerleştirildiğinde özelliğin yanlış olacağını unutmayın. Konumu yalnızca referans çerçevesi sunanlarla sorgulamak içinpositionInLocalFrameOfReference(...)kullanın. VeyaLookaheadScopecihazındanpositionInLocalLookaheadFrameOfReference. (Ifc5f7)LinkInteractionListeneriçindeonClickedöğesinionClickolarak yeniden adlandırdı (Iaa35c)- API konseyi geri bildirimine göre
getScrollViewportLengthiçin işlem lambda'sını değiştirin. (Ibc74a) - Ekran kalemiyle el yazısı yazma yetkilendirme API'lerinin adı değiştirildi. (Ica45f, b/327271923)
TextInclusionStrategy.isInsideöğesiniisIncludedolarak yeniden adlandırın.Paragraph/MultiParagraph#getRangeForRect()dönüş türünü null yapılamaz hale getirin. (I51f26)
Hata Düzeltmeleri
SelectionContainer'daki tüm metin bağlam menülerine "Tümünü seç" seçeneği eklendi. (Ib750e, b/240143283)reverseScrolling=trueiçeren kaydırma kapsayıcıları için uzun ekran görüntüsü alma sorunu düzeltildi. (I7c59c)AnchoredDraggableState'nıncurrentValuedeğerinin, eyalet sınırlarına yaklaşıldığında değişmesi sorunu düzeltildi. (Iea30b, b/333846848)
Harici Katkı (External Contribution)
- Sorumluluklarını daha iyi yansıtması için
PrefetchExecutor->PrefetchSchedulerolarak yeniden adlandırıldı. (Ib9154) - İç içe yerleştirilmiş
LazyListsöğelerinin (ör. iç içe yerleştirilmişLazyRowsöğelerini oluşturma işlemi yapan birLazyColumn) önceden getirilmesi için destek eklendi. Bu değişikliğin, buLazyListsöğelerinde kaydırma sırasında kare düşmelerini azaltması bekleniyor. Varsayılan olarak, ilk 2 iç içe öğe önceden getirilir. Ancak bu davranış, yeniLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)veLazyListPrefetchStrategy#onNestedPrefetchAPI'leri ile kontrol edilebilir. (I51952)
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07 iptal edilir. 1.7.0-alpha07 sürümü bu commit'leri içerir.
Yeni Özellikler
- Bağlantılara
MaterialThemeuygulayan birLinkAnnotationoluşturma ve HTML etiketli dizeyi ayrıştırma yöntemlerini içeren birTextDefaultsnesnesi eklendi. (I98532, b/139312671) - Öğelerin görünme ve kaybolma animasyonu desteği
LazyVerticalGridveLazyHorizontalGrid'ye eklendi. Daha önce yerleştirme (yeniden sıralama) animasyonlarını desteklemek içinModifier.animateItemPlacement()değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık veModifier.animateItem()adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünme [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (Ib7d12, b/330510929) - Öğelerin görünme ve kaybolma animasyonu desteği
LazyVerticalStaggeredGridveLazyHorizontalStaggeredGrid'ye eklendi. Daha önce yerleştirme (yeniden sıralama) animasyonlarını desteklemek içinModifier.animateItemPlacement()değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık veModifier.animateItem()adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünme [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (I69bc9, b/330511290)
API Değişiklikleri
ContextMenuColorsve ilişkiliLocalContextMenuThemeProvidableCompositionLocaleklendi. Metin alanlarındaki ve seçilebilir metinlerdeki bağlam menüsünün renkleri, kompozisyon yereli sağlanarak değiştirilebilir. (Ifa154)- Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelindiğinde ve odaklanıldığında uygulanan stil seçeneğine de sahiptir. (I5f864, b/139312671)
- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMarginözelliğini kullanıma sunuyoruz.BasicTextFieldiçin el yazısı hareketi desteği. (Ie6e13, b/325660505) - İlgili API yüzeyinin geri kalanını dengelemeyi tamamlamaya zamanımız olmadığı için 1.7 sürümünde
DelegatableNode.scrollIntoViewkaldırıldı. Bu işlev, 1.8 sürümünde yeniden kullanıma sunulacak (I6cf61, b/333421581, b/332900232) - Düzen koordinatlarını sorgularken artık
excludeDirectManipulationOffsetbağımsız değişkenini kullanarak, çocuklarınıPlaceable.PlacementScope.withDirectManipulationPlacementile yerleştiren üst düzenler tarafından belirlenen ofseti hariç tutabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir düzen artık bunlarıwithDirectManipulationPlacementkullanarak yerleştirebilir (ör. varsayılan olarak uygulanan kaydırma). Bu sayede,approachLayouttabanlı animasyonlar daha sezgisel hale gelir. Artık, yaklaşımını canlandırmaya karar verirken hangi dengelemeyi canlandıracağını ve hangisini doğrudan uygulayacağını ayırt edebilir. (I60ec7) LazyStaggeredGridiçinrequestScrollToItem'ı kullanıma sunuyoruz. Artık istemci, her ölçüm geçişi içinrequestScrollToItemişlevini çağırarak anahtara dayalı dizini korumayı devre dışı bırakabilir.requestScrollToItemçağrılmadığı sürece bu durum, mevcut davranışı hiçbir şekilde değiştirmez. (I63983)- Pager'da
requestScrollToPageile tanışın. Artık istemci, her ölçüm geçişi içinrequestScrollToPageişlevini çağırarak anahtara dayalı dizini korumayı devre dışı bırakabilir.requestScrollToPageçağrılmadığı sürece bu durum, mevcut davranışı hiçbir şekilde değiştirmez. (Ic4213) LazyGridsiçinrequestScrollToItemözelliği kullanıma sunuldu. Artık istemci, her ölçüm geçişi içinrequestScrollToItemişlevini çağırarak anahtara dayalı dizini korumayı devre dışı bırakabilir.requestScrollToItemçağrılmadığı sürece bu durum, mevcut davranışı hiçbir şekilde değiştirmez. (I0a7a0)ClickableText, desteği sonlandırılmış olarak işaretlendi. Metne bağlantı eklemek için bağlantınıza karşılık gelen birLinkAnnotationileAnnotatedStringoluşturun ve buAnnotatedString'yıTextcomposable'ına (I34d4b, b/323346994) iletin.UrlAnnotationkullanımdan kaldırıldı, bunun yerineLinkAnnotation.Urlkullanın. Material teması kullanıyorsanız Material teması uygulanmış bir ek açıklama oluşturmak içinTextDefaultsnesnesini kullanın (I8d180, b/323346545).String.parseAsHtml,AnnotatedString.Companion.fromHtmlolarak yeniden adlandırıldı (I43dcd)parseAsHtmlyöntemine stil oluşturma bağımsız değişkenleri (linkStyle,focusedLinkStyle,hoveredLinkStyle) ve bir bağlantı etkileşimi dinleyicisi eklendi. HTML etiketli dizeyi<a>etiketleriyle ayrıştırırken yöntem, bu tür her etiket için birLinkAnnotation.Urloluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her ek açıklamaya iletir. (I7c977)LinkAnnotationartık duruma dayalı stil oluşturma bağımsız değişkenlerini veLinkInteractionListenerdeğerini alıyor. Köprü almak için bu ek açıklamayıAnnotatedStringöğesine ekleyin.focusedStateve/veyahoveredStateparametrelerini ileterek bağlantılar odaklandığında ve/veya üzerine gelindiğinde bağlantıların görsel yapılandırmasını tanımlayabilirsiniz. (I81ce4, b/139312671)- Uzun ekran görüntüleri için özellik işareti kaldırıldı. (I28648, b/329128246)
LazyColumnartık uzun ekran görüntülerinde sabit başlıkları doğru şekilde oluşturacak. (I8d239, b/329296635)- Yeni
BasicTextFieldile kullanıma sunulan deneysel API'lerin çoğunu kararlı hale getirdik. (I714e2) - İçeriklerin karartılması sırasında hangi karakterin kullanılacağını kontrol eden
textObfuscationCharacterparametresiBasicSecureTextFieldöğesine eklendi. (I0588b) NestedScrollkaynakları, animasyonları (Side Effect) ve fare tekerleği ile klavyeyi (UserInput) de içerecek şekilde genişletilen tanımları karşılamak içinUserInputveSideEffectile değiştiriliyor. (I40579)- Kaydırılabilir değiştirici katmanında uygulanan, platforma bağlı bir odak kaydırma davranışı olan
LocalBringIntoViewSpec'ı kullanıma sunuyoruz. (I27aa5, b/317453911) TextFieldCharSequencekaldırıldı.TextFieldBuffer.originalValues,TextFieldBuffer.originalTextveTextFieldBuffer.originalSelectionile değiştirildi. (I2c7d6)ImeOptions.hintLocalesartık boş değer içerebilir değil. Boş bir yerel ayar listesi iletmek istiyorsanız lütfenLocaleList.Emptykullanın. (Ic5bc4)getOffsetFractionForPage,getOffsetDistanceInPagesolarak yeniden adlandırıldı. (Ia05e2)
Hata Düzeltmeleri
InputTransformations,nextile birleştirildiğindeKeyboardOptions, yeniKeyboardOptions.mergeyöntemi kullanılarak artık tek tek seçeneklerle düzgün şekilde birleştiriliyor. (Ie5304, b/295951492)AnchoredDraggableState'nıntargetValueartık konum eşiklerini dikkate almıyor. Artık %50'lik örtülü bir eşiğe sahip. Bu datargetValueöğesinin iki tutturucu arasındaki orta noktada değiştiği anlamına geliyor. (I82c2c)
Harici Katkı (External Contribution)
- 2 kaydırma API'sinin adı değiştirildi (I56a75).
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06 iptal edilir. 1.7.0-alpha06 sürümü bu commit'leri içerir.
Yeni Özellikler
- Öğelerin görünme ve kaybolma animasyonu desteği
LazyColumnveLazyRow'ye eklendi. Daha önce yerleştirme (yeniden sıralama) animasyonlarını desteklemek içinModifier.animateItemPlacement()değiştiricisini eklemek mümkündü. Bu değiştiriciyi kullanımdan kaldırdık veModifier.animateItem()adlı yeni bir deneysel olmayan değiştiriciyi kullanıma sunduk. Bu değiştirici, üç animasyon türünün (görünme [fade in], kaybolma [fade out] ve yeniden sıralama) tümünü desteklemenize olanak tanır. (I2d7f7, b/150812265) LazyColumn/LazyRowmüşterileri artık askıya alma işlemi içermeyen birLazyListState.requestToScrollçağırarak yaklaşan ölçme geçişi için anahtara dayalı bir dizin tutmayı devre dışı bırakabilir. (I98036, b/209652366)- Stil verilmiş dizeler için
parseAsHtmlyöntemi eklendi: Bu yöntem, HTML etiketleriyle işaretlenmiş bir dizeyiAnnotatedStringbiçimine dönüştürmeye olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde işaretli listeleri görüntüleyemezsiniz. (I84d3d) - Resmi Android API'si (
ScrollCaptureCallback) kullanılarak 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 ele almayabilir. Bu nedenle, özellik şu anda varsayılan olarak devre dışıdır. Etkinleştirmek içinComposeFeatureFlag_LongScreenshotsEnabledbayrağını true olarak ayarlayın. Bu işaret, 1.7 beta sürümünden önce kaldırılacak. (I2b055, b/329296471) GraphicsLayerdeğiştirici örneklerini belirtmek için Composable uygulamalarıyla koordinasyon yapmaya gerek kalmadanGraphicsLayerörneklerinin yerleştirilmesi ve oluşturulmasında daha fazla esneklik sağlamak ve doğal oluşturma özelliklerini desteklemek için yeniGraphicsLayerAPI'yi kullanıma sunun.
API Değişiklikleri
- Tüm
KeyboardOptionsparametreleri artık varsayılan olarak belirtilmemiş bir değere sahip.KeyboardOptions.mergeyöntemi eklendi. KeyboardOptions.autoCorrectözelliğinin adıautoCorrectEnabledolarak değiştirildi ve özellik boş değer atanabilir hale getirildi. Boş değer, herhangi bir değerin belirtilmediğini gösterir. (Ia8ba0, b/295951492)outOfBoundsPageCount,beyondViewportPageCountolarak yeniden adlandırıldı. (I129c6)fun ClipEntry.getMetadata(),val ClipEntry.clipMetadataolarak değiştirildi. (I50155)TextFieldState.valueAsFlow()kaldırıldı.snapshotFlow { state.text }veyasnapshotFlow { TextFieldCharSequence(state.text, state.selection) }kullanmayı tercih edin (I7d629)InputTransformation.transformInputparametreleri yeniden düzenlendi.originalValue: TextFieldCharSequencekaldırıldı. Bunun yerineTextFieldBufferartık aynı ada sahip bu değeri taşıyor.valueWithChanges: TextFieldBufferparametresi de kaldırıldı.TextFieldBufferartık işlevdeki alıcı kapsamıdır. (I919cc)BasicTextField(state)varyantı veBasicSecureTextField, artık yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek içinKeyboardActionsyerineKeyboardActionHandlerkullanıyor. (I58dda)- "Sahte" metin giriş alanlarında ekran kalemiyle el yazısı yazmayı desteklemek için ekran kalemiyle el yazısı yazma yetkilendirme API'leri. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus,showKeyboardOnFocusolarak yeniden adlandırıldı. (Ib4b7a, b/295951492)hintMediaTypesparametresi,Modifier.contentReceiveröğesinden kaldırıldı. Geliştiriciler, yapılandırılanhintMediaTypesile uyumsuz olabileceğinden, alınanTransferableContent'nın medya türünü kontrol etmeye zaten teşvik ediliyordu. (I82f99)BasicSecureTextFieldparametreleri yeniden sıralandı.keyboardTypeveimeActionparametreleri kaldırıldı. Bunun yerine,BasicSecureTextFieldiçin uygun olan aynı varsayılan değerler korunarak tamKeyboardOptionssınıfı kullanılıyor.scrollStateparametresi de kaldırıldı. (Ibbfa9)TextFieldState.text'nın türüTextFieldCharSequence'dan yalnızcaCharSequenceolarak değiştirildi. Bu nedenle, mevcut seçim ve kompozisyon değerlerini doğrudan durum nesnesinden okumak içinTextFieldState.selection: TextRangeveTextFieldState.composition: TextRange?eklendi.TextFieldState.forEachTextValuekaldırıldı. (Idb2a2)ClipboardManager.getClipMetadataveClipboardManager.hasClipişlevleri kaldırıldı. Lütfen mevcut klip girişinin meta verilerini okumak içinclipEntry.getMetadata()simgesini kullanın. Panoda geçerli bir klip olup olmadığını anlamak içinClipboardManager.getClipsonucunun boş olup olmadığını da kontrol edin. (I50498)ClipboardManager.setClipartık panoyu temizlemek için boş değer kabul ediyor. (I7d2e9)ReceiveContentListener, işlev arayüzüne dönüştürülür. Ayrıca,ReceiveContentListenerartık bir işlev arayüzü olduğundan lambda alanModifier.receiveContentaşırı yüklemesi de kaldırıldı.Modifier.receiveContent,Modifier.contentReceiverolarak yeniden adlandırıldı. (I1e6af)TransferableContent.consumeEach,TransferableContent.consumeolarak yeniden adlandırıldı. (I1e462)rememberTextFieldState, kararlı API'ye yükseltildi. (I37999)
Hata Düzeltmeleri
BasicTextField(state)varyantının CJK(bileşime dayalı) klavyelerle çalışmamasına neden olan hata düzeltildi. (I54425)Modifier.Nodeyeniden kullanıldığında belirli senaryolardaModifier.dragAndDropTarget()'nın eski verilere başvurmasına neden olan hata düzeltildi. (I05bb1)AnchoredDraggableState#anchoredDragaramalarınınanchoredDragişleminin sonunda otomatik olarak sonlandırıldığı 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 iptal edilir. 1.7.0-alpha05 sürümü bu commit'leri içerir.
API Değişiklikleri
- Köprüleri stilize etmek için deneysel
LocalTextLinkStylekompozisyon yereli kaldırıldı. (Iebfa7) BasicTextbağımsız değişkeniyleonLinkClickeddeneysel geçersiz kılma işlemi kaldırıldı. Gelecekte, köprü desteği için bir yedek API sunulacaktır. (I107d5)TextFieldStateveTextFieldBufferaltındaki kod noktalarıyla ilgili yöntemler ve özellikler kaldırıldı. Ayrıca, kalan seçim ve kompozisyonla ilgili API'lerdeninCharssonekleri de kaldırıldı. (Ief7ce)AnchoredDraggable'nıncurrentValue, artık bir sabitleme noktasından geçerken güncellenecek. Yalnızca bir sabitleme noktasında yerleşirken güncellenen öncekicurrentValuesemantiğini almak içinsettledValuekullanın. İlerleme durumu artık özellik yerine işlev olarak (başlangıç ve bitiş noktası gerektirir) gösteriliyor. (Ibe6e8, b/318707189, b/298271489, b/294991954)BasicTextField(state),TextFieldState,InputTransformation,OutputTransformation,TextFieldLineLimits,TextFieldDecoratorkararlı sürüme yükseltildi. (I9582b)- Düşük seviyeli IME ile ilgili testler ve diğer düşük seviyeli IME kullanım alanları yazmaya yardımcı olması için
InterceptPlatformTextInputtanıtıldı.PlatformTextInputTestOverridedesteği sonlandırıldı. (I862ed, b/322680547) restrictedConstraints(),fitPrioritizingWidth()vefitPrioritizingHeight()olmak üzere iki yönteme bölündü (I6d7fd)
Harici Katkı (External Contribution)
- En son kaydırma işleminin yönünü kontrol etmek için 2 yeni API
isLastScrollForward/isLastScrollBackwardeklendi. Henüz kaydırma işlemi yapılmadıysa false 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 iptal edilir. 1.7.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Android U ve sonraki sürümlerdeki cihazlarda ekran kalemiyle el yazısı özelliğini destekler. (I002e4)
hintLocales,KeyboardOptions'ye eklenerekTextFields'ye, belirli yerel ayarlara sahip IME'lere ipucu vererek tercih edilen bir dili önceden ayarlama özelliği kazandırıldı. (Id18c2)value: StringveonValueChange: () -> Stringparametrelerini alan deneyselBasicTextField2veBasicSecureTextFieldaşırı yüklemeleri kaldırıldı. (I568b4)- Uygulandığı
BasicTextField2öğesinin semantiğini etkilemek içinInputTransformationöğesine isteğe bağlı birapplySemanticsişlevi ekleyin. (I74a2f, b/170648072) - Bu CL'de, Compose'da kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için
GetScrollViewportLengthsemantik işlemini ekliyoruz. Bu CL, söz konusu özelliğin Foundation Scrollable Lists'te kullanımını da uygular. (Ic5fa2) BasicTextField2,BasicTextFieldolarak yeniden adlandırıldı. (Ie5713)FocusRequester.createRefsartık kararlı (I4d92c, b/261436820)- Değiştirici düğümlerin doğrudan
scrollIntoViewistekleri göndermesine olanak tanımak içinDelegatableNode.scrollIntoView()tanıtıldı. (I2b3b7, b/299939840) - Değiştirici düğümlerin, kompozisyon yerelini okumadan mevcut Android
Viewsürümünü almasına olanak tanıyanDelegatableNode.requireView()tanıtıldı. (I40768) - Bağlamsal akış satırı kapsamı ve bağlamsal akış sütunu kapsamı içinde bağlamsal düzen bilgileri sunuluyor. Bu bilgiler arasında, belirtilen konumda kalmak için satır dizini, konum ve maksimum genişlik ve yükseklik kısıtlamaları yer alıyor. Maksimum genişliği/yüksekliği aşan öğeler, taşma ayarlarına bağlı olarak bir sonraki satıra geçebilir veya atlanabilir. (Id13f8, b/292114798)
Hata Düzeltmeleri
- Belirli koşullarda
TextFieldöğesininenabledveyareadOnlyözelliklerinin değiştirilmesinin kilitlenmeye neden olduğu hata düzeltildi. (Iae17b)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha03 iptal edilir. 1.7.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
DelegatableNode.requireLayoutCoordinates(),Modifier.Node'nin mevcutLayoutCoordinates'sini almak içinonPlaced'yi geçersiz kılmaya ve koordinatları bir mülkte kendiniz depolamaya gerek kalmadan kullanılabilecek bir yöntem olarak kullanıma sunuldu. (Ia8657)DelegatableNode.currentLayoutCoordinates,Modifier.Node'nin mevcutLayoutCoordinates'sini almak içinonPlaced'yi geçersiz kılmaya ve koordinatları bir mülkte kendiniz depolamaya gerek kalmadan kullanılabilecek bir yöntem olarak kullanıma sunuldu. (Iaebaa)DraggableAnchorstarafından kullanılanAnchoredDraggableperformans optimizasyonları. (I89cff)BasicTextField2veandroidx.compose.foundation.text2paketi altındaki ilgili API'lerandroidx.compose.foundation.text'ye taşınıyor. (I9f635)BasicTextField2artıkCodepointTransformationparametresini kabul etmiyor.BasicSecureTextFieldveyaOutputTransformationkullanın. (Id34ff)- Yalnızca iki
AnnotatedStringsöğesinin ek açıklamalarını karşılaştırma yöntemi eklendi. (I32659) ContextualFlowRowveMaxLinesileOverflowözelliklerini içeren gelişmişFlowRow/Columnile tanışın.FlowRowveFlowColumndeneysel özelliklerinde iyileştirmeler yaptığımızı duyurmaktan heyecan duyuyoruz. Bu özellikler artıkmaxLinesve taşma desteğinin yanı sıraContextualFlowRowveContextualFlowColumnözelliklerini de içeriyor. Bu güncelleme, performansı en iyi hale getiren bileşenler sunmak için tasarlanmıştır.ContextualFlow*, küçük birmaxLinesyapılandırması ve dinamik +N daha fazla düğmesi kullanan çok sayıda öğe için mükemmeldir.FlowRowveFlowColumnise 100'den az öğe içeren az sayıda öğe için mükemmeldir. Önemli: Tüm öğelerin çapraz eksen maksimum değerine uyup uymadıklarına bakılmaksızın oluşturulduğuFlowRowveyaFlowColumn'daki mevcut davranışı korumak için başlatma sırasındaoverflowdeğeriniFlowRowOverflow.VisibleveyaFlowColumnOverflow.Visibleolarak ayarlayın. Bu yeni özelliklerin nasıl kullanıldığını görmek içinContextualFlowRowSampleveFlowRowSamplesayfalarını inceleyin. (Ib9135, b/293577082)
Hata Düzeltmeleri
- İmleç animasyonu artık açık ve kapalı durumlar arasında kare istemiyor. (Ia2253)
KeyboardOptionsartı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 iptal edilir. 1.7.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
HorizontalPager,VerticalPagervePagerStatekararlı sürüme yükseltildi. (I67660, b/316966909)- Uygulama genelinde metinlerdeki bağlantıların stilini değiştirmeye olanak tanıyan
LocalTextLinkStylekompozisyon yereli eklendi. Uygulamada kendi temanızı kullanıyorsanız bu kompozisyon yerelini temanıza göre ayarlamanız gerekir. Malzeme teması kullanılırken bağlantının rengi varsayılan olarak Malzeme'nin birincil rengine ayarlanır. (I7eb10) - Geliştiricilere Jetpack Compose'da zengin içerik alma olanağı sağlayan
receiveContentdeğiştiricisi kullanıma sunuldu. receiveContent, yazılım klavyesi veya pano yapıştırma işlemiyle sağlanan zengin içeriği kabul etmek içinBasicTextField2ile entegre olur. (I81b72)- Bu değişiklikle, diğer kullanım alanlarının kilidini açmak ve daha fazla esneklik sağlamak için sayfalayıcıda
SnapFlingBehavioryerineTargetedFlingBehaviorkullanıyoruz. (I762ea) - Bu değişiklikle, Snapping API'lerini kararlı hale getiriyoruz. Ayrıca, test kodunun bir kısmını temizliyor ve Snapping'e daha fazla örnek ekliyoruz. (Id8da9)
- Devam eden animasyonun durumu ve hedef kaydırma uzaklığı hakkında bilgilerin yayılmasına olanak tanıyan
FlingBehaviorTargetedFlingBehavior'ı kullanıma sunduk. (I6a207)
Hata Düzeltmeleri
BasicTextField2artık görünüm alanının dışına kaydırılmış veya giriş nedeniyle görünüm alanının dışına çıkacak olan imleci yazarken görünüm alanında tutuyor. (Ieb856, b/237190748)
Harici Katkı (External Contribution)
- 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 iptal edilir. 1.7.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Yeni bir
Indication API,IndicationNodeFactoryeklendi. Bu, önceki (artık kullanımdan kaldırılmış)rememberUpdatedInstanceAPI'ye kıyasla daha iyi performans gösterenIndicationuygulamalarına yol açar. Taşıma bilgileri için developer.android.com adresini ziyaret edin. clickable / combinedClickable / selectable / toggleableartık boş değer atanabilir birMutableInteractionSourceparametresini kabul ediyor. Boşsa ve sağlananIndicationbirIndicationNodeFactoryiseIndicationyalnızca gerektiğinde geç oluşturulabilir. Bu da performansı artırır.MutableInteractionSourceöğesini yükseltip kullanmıyorsanız null iletmeniz önerilir.
API Değişiklikleri
DecayAnimation,AnchoredDraggableiçinde kullanıma sunuluyor. Bu değişiklik,AnchoredDraggable'yedecayAnimationSpecparametresini ekleyerek bir sabitleme noktasına yerleşirken decay animasyonunun kullanılmasına olanak tanır. Bu değişiklik, her spesifikasyonun kullanım alanını anlamaya yardımcı olmak için mevcutanimationSpecöğesininsnapAnimationSpecolarak yeniden adlandırılmasını da içerir.BasicTextField2deneysel kullanım için kullanılabilir.BasicTextFieldile yaklaşık olarak aynı özelliklere sahip olmalı ve davranış üretime hazır olmalıdır. Ancak API şu an için deneysel olarak kalmaya devam ediyor. Stabilize edilmeden önceBasicTextFieldolarak yeniden adlandırılacak ve aynı pakete taşınacak.OutputTransformationAPI'sininBasicTextField2ilk taslağı kullanıma sunuldu. Bu API, eskiBasicTextField'dekiVisualTransformationkullanım alanlarının çoğunun yerini alır. Ancak henüz tamamlanmadı ve bazı şeyler doğru şekilde çalışmayacak. Bununla birlikte, kullanım alanlarınız için API kullanılabilirliğiyle ilgili geri bildirimlerinizi bekliyoruz. (aosp/2708848)- Metne bağlantı ve tıklanabilir öğeler eklemeye olanak tanıyan
LinkAnnotationözelliği kullanıma sunuldu. Bağlantılar özelliği henüz tamamlanmamıştır ve daha fazla API değişikliği yapılacaktır. - Geliştiricilere Jetpack Compose'da zengin içerik alma olanağı sağlayan
receiveContentdeğiştiricisi kullanıma sunuldu. receiveContent, yazılım klavyesiyle veya panodan yapıştırılarak sağlanan zengin içeriği kabul etmek içinBasicTextField2ile entegre olur.KeyboardOptions.shouldShowKeyboardOnFocus, odaklanıldığında yazılım klavyesi istemeBasicTextFieldvarsayılan davranışını devre dışı bırakmanıza olanak tanır.TextInputServiceveLocalTextInputServiceartık kullanımdan kaldırıldı. Bunun yerine doğrudan platform IME API'leriyle entegrasyon içinPlatformTextInputModifierNodekullanın. (aosp/2862698)Indication#rememberUpdatedInstancedesteği sonlandırıldı. Yüksek ve kaçınılmaz bir performans cezası vardır ve diğer optimizasyonları engeller. Bunun yerine yeniIndicationNodeFactoryAPI'yi kullanmanız gerekir.
Hata Düzeltmeleri
VisualTransformationiletilirkenBasicTextFieldartık küçük bir ofset eşleme seçkisini önceden doğrulayacak. Bu, daha sonraki ölçü veya çizim geçişlerinde kurtarılamayan istisnalara yol açan yaygın kodlama hatalarını yakalamaya yardımcı olur. Geliştiriciler, oluşturma sırasında hata fırlatarak bu hataları geliştirme sırasında görme ve üretim kilitlenmelerini önleme olasılığı daha yüksektir. (I0fd42)- Geçersiz bir dizin için geçersiz bir dizin döndürürseniz
VisualTransformationhata vermez (b/316401857 )
Sürüm 1.6
Sürüm 1.6.8
12 Haziran 2024
androidx.compose.foundation:foundation-*:1.6.8 iptal edilir. 1.6.8 sürümü bu commit'leri içerir.
Sürüm 1.6.7
1 Mayıs 2024
androidx.compose.foundation:foundation-*:1.6.7 iptal edilir. 1.6.7 sürümü bu commit'leri içerir.
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.6 iptal edilir. 1.6.6 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Belirli koşullarda
TextFieldöğesininenabledveyareadOnlyözelliklerinin değiştirilmesinin kilitlenmeye neden olduğu hata düzeltildi. (Iae17b)
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.5 iptal edilir. 1.6.5 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Satır/sütundaki yeniden üretilmesi 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 iptal edilir. 1.6.4 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Önce uzun basıp sonra sürükleyerek yapılan ve sürüklemenin ilk karesinde metnin düzen sınırlarının dışına çıkan seçim hareketi artık kilitlenmeye neden olmuyor. (Icdf90, b/325307463)
Sürüm 1.6.3
6 Mart 2024
androidx.compose.foundation:foundation-*:1.6.3 iptal edilir. 1.6.3 sürümü bu commit'leri içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.foundation:foundation-*:1.6.2 iptal edilir. 1.6.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
AnimateContentSize'nın düzgün şekilde sıfırlanmaması sorununu düzeltin. (I07051)- Bazı durumlarda metnin
intrinsicHeightbölümünün aşırı önbelleğe alınması sorunu düzeltildi. (3cd398, b/217910352)
Sürüm 1.6.1
7 Şubat 2024
androidx.compose.foundation:foundation-*:1.6.1 iptal edilir. 1.6.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Sınırın üzerinde kaydırıldığında kademeli ızgara ölçüsünü düzeltme (bffc39)
- Büyük boyutlu düzenler için kontrol ekleyin. (e74af5)
- 0 boyutlu öğelerin, kademeli ızgaranın başlangıcındaki yerleşimini düzeltin. (785f94)
- onRelease geri çağırmasını onForgotten ile aynı sırada çağırın. (31ce3b)
Sürüm 1.6.0
24 Ocak 2024
androidx.compose.foundation:foundation-*:1.6.0 iptal edilir. 1.6.0 sürümü şu commit'leri içerir.
1.5.0 sürümünden beri yapılan önemli değişiklikler
- Önceden tanımlanmış bir dizi sabitleme noktası arasında sürükleme ve animasyon oluşturma olanağı sunan yeni değiştirici
Modifier.anchoredDraggable. Bu değiştirici,Modifier.swipeableyerine kullanılmak üzere tasarlanmıştır. Nasıl kullanacağınızı veModifier.swipeableuygulamasından nasıl geçeceğinizi taşıma kılavuzundan öğrenebilirsiniz. - Uygulamalar ve bileşenler arasında sürükle ve bırak işlevi eklendi. Başlamak için
DragAndDropTarget,Modifier.dragAndDropSourceve diğer API'lere bakın. Modifier.draggable2D, kolay 2D sürükleme desteği sağlayan yeni değiştiricidir. Örnek bölümüne bakın.- Compose'da yüzey odaklı bileşenler eklemeyi kolaylaştırmak için
AndroidExternalSurfaceveAndroidEmbeddedExternalSurfaceeklendi. PagervesnapFlingBehaviour'da çeşitli API değişiklikleri ve iyileştirmeler- Çeşitli odak, metin ve yerleştirme 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 iptal edilir. 1.6.0-rc01 sürümü şu commit'leri 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 iptal edilir. 1.6.0-beta03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Sonsuz kısıtlamalarla ölçülen çok büyük metinleri etkileyen kilitlenme sorunu düzeltildi. (I1a7df, b/312294386)
PlatformImeOptionsartı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 iptal edilir. 1.6.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Yalnızca yeniden düzenleme amaçlı kaydırmadan sonra
canScrollöğesinin güncellenmemesi sorunu düzeltildi. (I60a86) - Küçük kaydırmalardan sonra
Modifier.animateItemPlacement()veLookaheadScopeiçin düzeltme. (I3a2b7)
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.foundation:foundation-*:1.6.0-beta01 iptal edilir. 1.6.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
DragAndDropTargetdeğiştiricisi artık açıkçaDragAndDropTargetalıyor ve sürükle bırak oturumunu etkinleştirmek için bir lambda'ya sahip. ArtıkDragAndDropModifierNodeiçin iki fabrika işlevi var. Biri aktarımları almak, diğeri ise verileri aktarmak için (I69481)maximumFlingVelocity, Float olarak gösterilecek şekilde güncellendi.maximumFlingVelocitybirliği hakkında daha net bilgi verecek şekilde dokümanlar güncellendi. (I8adc7)DragAndDropModifierNodefabrikasındakionDragAndDropStart,acceptDragAndDropTransferolarak yeniden adlandırıldı.acceptsDragAndDropTransfer, sürükle ve bırak oturumundan kabul etmek içindragAndDropTargetModifier'ye eklendi. Bu lambda, sürükle ve bırakma oturumuyla ilgileniyorsanız geçerli birDragAndDropTargetdöndürür. Sürükleme etkinliklerini işlemek için kullanılan diğer lambda'ların yerini bu işlev almıştır.Sürükle ve bırak oturumlarından veri almak için
DragAndDropTargetfabrika işlevi eklendi (Iebf3a)AnchoredDraggableiçindestartDragImmediatelyözelliğini kullanmak, sürükleme hareketlerini algılama kontrolü sağlar. Widget hedef bağlantıya animasyon uygularken bu ayarı yapmak faydalıdır. Örnek bölümüne bakın. (Ie6d13, b/285139987)Foundation Tooltip API'leri artık
@ExperimentalFoundationApi(I30b0b)DragAndDropInfotürü kaldırıldı.DragAndDropModifierNode.dragartıktransferData, dekorasyon boyutu ve sürükleme dekorasyonuDrawScopelambda'sı için parametreler alıyor.DragAndDropTarget, tek bir soyut yöntem olmak yerine belirli sürükle ve bırak etkinlikleri için yöntemlere sahiptir.DragAndDropModifierNodeiçin fabrika işlevindekionDragAndDropEvent,DragAndDropTargetöğesinin yalnızca belirli bir sürükle ve bırakma oturumu için geçerli olduğunu daha iyi belirtmek amacıylaonDragAndDropStartolarak yeniden adlandırıldı.DragAndDropEventTypekaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession,establishTextInputSessionolarak yeniden adlandırıldı. (I03cd0)OriginalTextyerineTextSubstitutionkoyun. (Ifa5a8)PlatformTextInputModifierNode.textInputSession,runTextInputSessionolarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere saklanan
SubcomposeLayoutöğesinin alt öğeleri (ve buna dayalıLazyColumngibi düzenler) devre dışı olarak kabul edilir. Bu tür düğümleri test etmek için yeni birassertIsDeactivated()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.magnifierişlevininclippingEnabledparametresiclipolarak yeniden adlandırıldı.Modifier.magnifieröğesininmagnifierCenterparametresi, aynı varsayılan davranış korunarak null yapılabilir. (I6aa66)Material
SwipeToRevealAPI'leri (kartlar ve çip için) artık bu yuvaları oluşturmak üzere veri sınıfına dayalı örnekler yerine yuva tabanlı bir API'ye (Compose tarafından önerildiği gibi) dayanıyor. Bu, uyumluluğu bozan bir değişikliktir. Lütfen yeni API'nin nasıl kullanılacağına dair örnekler için demoya ve örnek koda bakın. (Ia8943)
Hata Düzeltmeleri
PageSize.Fixediçin equals ve hashcode yöntemlerini uygulayın. (Ie3ede, b/300134276)minWidthdeğiştiğinde veminWidthilk ölçü kısıtlamalarındanmaxWidthdaha az olduğundaBasicTextdüzeninin küçülmemesine neden olan hata düzeltildi (Idb19c).ArcLine'da Sweep Gradient için oluşturucu desteği eklendi. (I4d5bb)- Pencere iç kenarı değişikliğiyle ilgili ikili uyumluluk sorununu düzeltme (Iee695)
- Mikro karşılaştırmalar, Material3 Chip/Button için materyal çekirdek katmanının kaldırıldığında daha iyi performans gösterdiğini ortaya koyuyor. (I55555)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha08 iptal edilir. 1.6.0-alpha08 sürümü şu commit'leri içerir.
Yeni Özellikler
Modifier.draggable2D, kolay 2D sürükleme desteği sağlayan yeni değiştiricidir. Örnek (Id95f5, b/214412658) başlıklı makaleye bakın.
API Değişiklikleri
Modifier.dragAndDrawSourceişlevindeonDrawDragShadowlambda'sıdrawDragDecorationolarak,DragAndDropInfoişlevinde ise boyut parametresidragDecorationSizeolarak yeniden adlandırıldı. (Id0e30, b/303904810)BasicTextField2işlevinindecorationBoxparametresinin adıdecoratorolarak değiştirildi. Tür de eşdeğer bir eğlenceli arayüzeTextFieldDecoratordönüştürülür. (I23c1c)
Hata Düzeltmeleri
BasicTextFieldile ilgilionValueChangekoşulları hakkında daha iyi dokümanlar. (I90fc9, b/160257648)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha07 iptal edilir. 1.6.0-alpha07 sürümü şu commit'leri içerir.
API Değişiklikleri
- Özel metin düzenleyiciler için test yazmaya yönelik
PlatformTextInputMethodTestOverrideişlevi kullanıma sunuldu. (Id159b) GraphicsSurface,AndroidExternalSurfaceolarak yeniden adlandırıldı (I11680)- Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için
DisableNonLinearFontScalingInComposegeçici işareti eklendi. Temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = trueayarlayın. Bu işaret, Compose 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486) - Tahsisat gerektirmeyen
ColorListveColorSetkoleksiyonları eklendi. (I744bd) - Bu değişiklik,
SnapLayoutInfoProvideruygulamalarının uygulama ayrıntısı haline getirilenshortSnapVelocityThresholdöğesini kaldırır. (I65f6d) - Sürükle ve bırak oturumlarını başlatmak için
dragAndDropSourcedeğiştiricisi ve sürükle ve bırak oturumlarından almak içindragAndDropTargetdeğiştiricisi eklendi (Ib7828, b/286038936). SnapPositionInLayoutdokümanlarını ve konum yöntemini güncelleyin.SnapPositionInLayoutkonum yöntemine içerik dolguları ekleyin. (Id7938, b/300116110)- Kullanıcının yaptığı değişiklikleri geri alma/yineleme olanağı sağlayan
UndoState,TextFieldState'ye eklendi. (Icc024)
Hata Düzeltmeleri
- Hız değişikliğinden sonra
basicMarqueesimgesinin animasyonunun oynatılmaması sorunu düzeltildi. (Id2e77, b/297974036)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha06 iptal edilir. 1.6.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
SurfaceView,TextureView: GraphicsSurface()veEmbeddedGraphicsSurface()için yeni Composable sarmalayıcılar. Bu deneysel bir API'dir ve değişikliklere tabidir. (I9ddb2)Modifier.magnifier()artık kararlı bir API. Bu değişiklik kapsamında, değiştiricideki satır içi parametreler lehineMagnifierStylekaldırılacaktır. (I83bec, b/298381260, b/262367109, b/261438887)
API Değişiklikleri
ScrollScope'de kullanıma sunulanupdateCurrentPageveupdateTargetPage,PagerState.scroll'de animasyonlu kaydırma özelliğinin özelleştirilmesine olanak tanımak için gereken son parçalardır. (I9cad5, b/267744105, b/243786897)SnapFlingBehavioriçin yoğunluğu kaldırın.SnapLayoutInfoProvideröğesinin tüm uygulamalarında yoğunluğa erişmenin bir yolu olduğundan alıcı kapsamı kaldırılabilir. Bu da hemSnapFlingBehaviorhem deSnapLayoutInfoProvidersöğesinin daha az karmaşık bir şekilde uygulanmasını sağlar. (I153c3)- Daha fazla değiştirici kararlı olarak işaretlendi. (I56af1, b/298046462)
SnapStepSize,SnapLayoutInfoProviderlistesinden 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, daha iyi okunabilirlik ve erişilebilirlik için artık doğrusal olmayan yazı tipi ölçeklendirme kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'den büyük olduğunda küçük metinlerin boyutu normal şekilde büyür ancak zaten büyük olan metinlerin boyutu yalnızca biraz büyür. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yüksekliğe orantılı kalacak şekilde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirmeyle İlgili En İyi Uygulamalar'a bakın. (I11518)
Hata Düzeltmeleri
- İpuçları için
rememberSaveablekullanı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 iptal edilir. 1.6.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
- Mevcut
BasicTextFieldAPI'sinde olduğu gibi, değişmez bir değer ve bu değeri değiştirecek bir geri çağırma kabul edenBasicSecureTextFieldiçin aşırı yüklemeler ekleyin. (Ia4882) - API 33 ve sonraki sürümlerde kayan pencerelerden uzak durmayı tercih ettiğiniz için composable olarak işaretlemek üzere
Modifier.preferKeepClear()ekleyin. (Ib51d5, b/297260115) ScrollViewveRecyclerViewgibi View bileşenlerindeki fırlatma hızlarıViewConfiguration.ScaledMaximumFlingVelocityile sınırlanır. Oluşturma özelliği artıkmaximumFlingVelocity'ın kendi sürümünü içeriyor ve bu sürümDraggableiçin geçerli. (Ibf974)- Kullanımdan kaldırılan
PagervePagerStateaşırı yüklemeleri kaldırıldı. (Iea07e) compose.foundation'eBasicTooltipBoxeklendi vePlainTooltipBoxileRichTooltipBox, yeniPlainTooltipveRichTooltipcomposables ileTooltipBox'i kullanacak şekilde güncellendi. (I79e1d)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04 iptal edilir. 1.6.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için
ReusableCompositionarayüzü eklendi. (I812d1, b/252846775) Modifier.focusGroup, kararlı API'lere yükseltildi. (I7ffa3)- Mevcut
BasicTextFieldAPI'sinde olduğu gibi, değişmez bir değer ve bu değeri değiştirecek bir geri çağırma kabul edenBasicTextField2için aşırı yüklemeler ekleyin. (I3f2b8) GridItemSpan::currentLineSpanartık kararlı bir API. (Icc29c)contentDescriptionkabul eden Canvas artık kararlı bir API'dir. (Ib3d29)ScrollStateiçindeviewportSizetanıtıldı. Bu, ölçüm yapıldıktan sonraScrollStatekullanan bileşeninviewPortboyutunu öğrenmenin bir yoludur. (I8b85a, b/283102682)- Sayfalayıcı'daki ö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ı bir sürüm.Deprecated Modifier.consumedWindowInsetsAPI'si kaldırıldı. Bunun yerineModifier.consumeWindowInsetspolitikasını kullanın. (Id72bb)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03 iptal edilir. 1.6.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
LazyLayoutaşırı yüklemesi eklendi. Artık daha önce olduğu gibi düz bir nesne değil,LazyLayoutItemProviderlambda'sı kabul ediyor. Önceki aşırı yükleme kullanımdan kaldırıldı. (I42a5a)privateImeOptionsyapılandırma desteği eklendi (Idb772)
Hata Düzeltmeleri
readOnlydoğru olduğunda metin alanlarının klavyeyi göstermesi ve düzenlenebilir olması sorunu düzeltildi. Ayrıca, odaklanılmış durumdaykenreadOnlydeğeri doğru'dan yanlış'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02 iptal edilir. 1.6.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
PagerLayoutInfo,Pageriçinde bir ölçüm geçişinden sonra toplanan bilgilerle birlikte kullanıma sunuldu. Ayrıca,Pageriçindeki tek bir ölçülen sayfa hakkındaki bilgiler olanPageInfode kullanıma sunuldu. (Iad003, b/283098900)- Birleştirilebilir işlevlere izin verilen girişleri belirtmek için ek açıklamalar (I51109)
- Testlerde odaklanma isteğinde bulunmak için daha kolay ve bulunabilir bir yöntem olarak
SemanticsNodeInteraction.requestFocuseklendi. (Ie8722) PlatformTextInput*API tamamen yeniden tasarlandı. (I6c93a, b/274661182, b/267235947, b/277380808)SoftwareKeyboardControllerveLocalSoftwareKeyboardControllerartık deneysel değil.LocalSoftwareKeyboardControllerartık uygun birCompositionLocal. (I4c364)Modifier.transformableartık izin vermek veya vermemek için kaydırma yönünü belirlemeye yardımcı olmak üzerecanPanparametresinde kaydırma deltası sağlıyor. (I692aa, b/266829800)consumeWindowInsetsdeğiştiricisini,AbstractComposeViewüst sınıfını genişletecek şekilde günceller (Iacd74, b/269479941)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha01 iptal edilir. 1.6.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Foundation'da yeni bir
AnchoredDraggableAPI'si kullanıma sunuldu. Ayrı durumlar arasında sürüklenebilen bileşenler (ör. modal alt sayfalar) oluşturmak için kullanılabilir. Bu API, Material'ınSwipeableAPI'sinin yerini alır. (I4a2ed)
API Değişiklikleri
InputConnection#requestCursorUpdatesdesteği (I0c69b)- Özel animasyon özelliklerine izin vermek için
scrollAnimationSpectanıtıldı.BringIntoViewCalculatorayarıBringIntoViewScrollerolarak güncellendi. (Idb741) - Yüklenemeyen öğe yolunun açıklamasıyla birlikte, bit eşlem öğeleri yüklemeye çalışırken oluşturulan hata nesnelerini sarmak için
ResourceResolutionExceptiontürü ekleyin. (I19f44, b/230166331, b/278424788) - Metin çevirisini desteklemek için semantik özellikler ve işlemler eklendi. (I4a6bc)
Scrollablegibi bileşenlerinbringIntoViewisteklerine nasıl yanıt vereceğini özelleştirmek için kullanılabilecek birBringIntoViewCalculatorAPI'si kullanıma sunuldu. Kaydırılabilir aşırı yüklemesi, isteğe bağlı olarakBringIntoViewCalculatorörneğini kabul edecek şekilde değiştirildi. (Iaf5af)
Hata Düzeltmeleri
- Değişken durum /
Animatableoluşturmayla ilgili lint kontrollerine benzer şekilde,MutableInteractionSourceoluştururken bunu hatırlamamanız durumunda uyarı veren bir lint kontrolü eklendi. (I5daae) - Fareyle seçim desteği eklendi. Dokunmaya dayalı seçim, kelime bazında genişler ve karakter bazında daralır. (Ic0c6c, b/180639271)
- Özel
FocusTargetoluşturmak için kullanılabilecekFocusTargetModifierNodearayüzü eklendi. (I9790e)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.foundation:foundation-*:1.5.4 iptal edilir. 1.5.4 sürümü şu commit'leri içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.foundation:foundation-*:1.5.3 iptal edilir. 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 iptal edilir. 1.5.2 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Semantik geçersiz kılındığında belirli durumlarda kilitlenmelere neden olan metindeki hata düzeltildi.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.foundation:foundation-*:1.5.1 iptal edilir. 1.5.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
readOnlydoğru olduğunda metin alanlarının klavyeyi göstermesi ve düzenlenebilir olması sorunu düzeltildi. Ayrıca, odaklanılmış durumdaykenreadOnlydeğeri doğru'dan yanlış'a değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.foundation:foundation-*:1.5.0 iptal edilir. 1.5.0 sürümü şu commit'leri içerir.
1.4.0 sürümünden beri yapılan önemli değişiklikler
Modifier.clickable,Modifier.draggable,Modifier.scrollable, düzen değiştirici ve daha fazlası dahil olmak üzere birçok temel değiştiriciModifier.NodeAPI'ye taşındı. Bu sayede ilk bileşimdeki ek yük azaltıldı.- Pagers kararlılığında iyileştirmeler. Birçok hata giderildi.
pageCountparametreleri artık Pager'ın kendisi yerinePagerStateiçinde yer alıyor.
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.foundation:foundation-*:1.5.0-rc01 iptal edilir. 1.5.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
mutableStateOf()çağrılarını karşılık gelen özel türlere taşımayı önermek için isteğe bağlı bir inceleme yapılabilir. Lint kimliğiAutoboxingStateCreation'dır. Daha önce bu inceleme, tüm projeler için varsayılan olarak etkinleştirilmişti. Bu uyarıyı Android Studio'nun düzenleyicisinde ve projenizin lint çıktılarında görmek için, modülünüzünbuild.gradleveyabuild.gradle.ktsyapılandırmasındawarning "AutoboxingStateCreation"'ı bildirerek önem derecesini bilgilendirme düzeyinden uyarı düzeyine (veya daha yüksek bir düzeye) değiştirin (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.foundation:foundation-*:1.5.0-beta03 iptal edilir. 1.5.0-beta03 sürümü şu commit'leri içerir.
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.foundation:foundation-*:1.5.0-beta02 iptal edilir. 1.5.0-beta02 sürümü şu commit'leri içerir.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.foundation:foundation-*:1.5.0-beta01 iptal edilir. 1.5.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Nabız ve günlük adım sayısı sağlamak için
PlatformDataProvider'ı uygulayın.SensorGatewayarayüzü, genel API'den kaldırıldı. (I55b84)
Hata Düzeltmeleri
- Lazy list/grid/vb. ölçümleri sırasında tahsisleri azaltma (Iaf9e2)
- Anlık görüntüler uygulanırken daha az yer ayırma (I65c09)
- Yay animasyonlarından tahsisler kaldırıldı (Ie9431)
TextLayout(I0fd11) öğesinden ayırma kaldırıldı- İşaretçi hızı izlemede birden fazla ayırma kaldırıldı (I26bae)
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.foundation:foundation:1.5.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha04 yayınlandı. 1.5.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Tam parametre listesiyle optimize edilmiş
TextStyle.merge(...)eklendi. (Iad234, b/246961787) LazyGridStateile kullanılabilecek birSnapLayoutInfoProvidersunun. (I92134, b/269237141, b/260914964)- Lazy staggered grids öğe kapsamı için deneysel
Modifier.animateItemPlacement()eklendi. Otomasyon konum değişikliği/yeniden sıralama animasyonlarını elde etmek için öğelere uygulayabilirsiniz. (I4b62d, b/257034719) GridCells.FixedSizesürümünü kararlı sürüme yükseltin.FixedSize, her hücrenin çapraz eksende tam boyutu aldığı, kalan alanın ise çapraz eksen düzenlemesiyle dağıtıldığı birLazyGridtanımlar. (I8542f)- Pager için alıcı kapsamı
PagerScopeve belirli bir sayfa ofsetini hesaplamak için yardımcı işlev kullanıma sunuldu. (If2577) - Bir Snap Fling davranışı oluştururken
snapPositionalThresholdözelliğini kullanıma sunuyoruz. Bu parametreyi, Pager'da kısa tutturma için bir konum eşiği belirtmek üzere kullanın. (If8f7f) SnapLayoutInfoProvider.calculateSnappingOffsetBounds,calculateSnappingOffsetile değiştirildi. Bu yeni yöntemde, yalnızca tutturulacak sonraki uzaklığı istiyoruz. Sınırların hesaplanması, tutturmanın nasıl yapılması gerektiğine bağlı olarak değişebileceğinden uygulama düzeyinde yapılmalıdır. (I923a4)LazyStaggeredGridAPI'leri kararlı sürüme yükseltildi. (I633a5)pageCount,Horizontal/VerticalPagerhesabından kaldırılsın mı? Bu, durum oluşturulurken sağlanmalıdır.PagerStateverememberPagerState,pageCount'ı kabul edecek şekilde güncellendi. (Ieb52d, b/266965072)pageCount,Horizontal/VerticalPagerhesabından kaldırılsın mı? Bu, durum oluşturulurken sağlanmalıdır.PagerStateverememberPagerState,pageCount'ı kabul edecek şekilde güncellendi. (Ifa3cb, b/266965072)- Sayfa ayırıcının
SnapFlingBehaviorbölümündeshortSnapVelocityThreshold'ı tanıt. (I7379e, b/275579012) FlowRowScopeveFlowColumnScopeekler. (I54fe2)
Hata Düzeltmeleri
- Kısıtlamalar
minWidthveminHeightolduğunda Metin'de semantik elde etmek için yapılan aramalar artık kilitlenmiyor. (Ibd072) Dialogcomposable'ı tarafından oluşturulmayan iletişim kutularındaki metin alanlarında klavyenin gösterilmemesine neden olan gerileme düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.foundation:foundation:1.5.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha03 yayınlandı. Version 1.5.0-alpha03 contains these commits.
Bu sürüm, Compose için yeni metin oluşturma yığınını etkinleştirir. Yeni yığın, performans için optimize edilmiştir ve görünürde herhangi bir değişiklik görmezsiniz.
Oluşturulan metinde değişiklikler görürseniz davranış farkını onaylamak için NewTextRendering1_5 = false değerini ayarlayarak hata ayıklama yapabilirsiniz. Bu ayarın yapılması, yeniden oluşturmayı zorlar. 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ılacak.(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 yayınlandı. 1.5.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
LazyGridiçinde sabit boyutlu hücreler için destek eklendi ve bu hücrelerin çapraz eksen düzeniyle düzenlenmesi sağlandı. (I83ed9, b/235121277, b/267942510)LazyStaggeredGrid'da sabit boyutlu şeritler için destek eklendi ve bu şeritler çapraz eksen düzenlemesiyle düzenlendi. (I7d519)AnnotatedStringiçindekiUrlAnnotationlar artıkTalkBackgibi erişilebilirlik hizmetleri aracılığıyla açılabiliyor. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursorsemantik işlemi eklendi. (I11ed5) - Metinle ilgili test işlemleri (ör.
performTextInput), artık alana tıklamak yerine semantik işlem kullanılarak doğrudan odaklanma isteğinde bulunacak. (I6ed05) FlowRowiçindeverticalArrangementveFlowColumniçindehorizontalArrangementkullanılarak eksenler arası boşluk/düzenleme desteği eklendi. Ayrıca,FlowRow/FlowColumniçindeki üst düzeyverticalAlignmentvehorizontalAlignmentkarakterlerini de kaldırırız. Geliştiriciler bunun yerineModifier.alignkullanabilir. Bu,verticalAlignmentveverticalArrangementadlandırma kuralları arasındaki karışıklığı azaltır. (I87b60, b/268365538)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.foundation:foundation:1.5.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.5.0-alpha01 yayınlandı. 1.5.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Metin ve
BasicText, yeni değiştirici sistemini kullanacak şekilde yeniden düzenlendi. Bu, birçok durumda önemli performans iyileştirmeleri sağlar. Herhangi bir değişiklik görünmemelidir. (If1d17, b/246961435) - Metin düzenleyici düğümlerinde IME işlemini çağırmak için
PerformImeActionsemantik işlemi eklendi. (Ic606f, b/269633506)
Hata Düzeltmeleri
Modifier.hoverable'ın iç kısımları güncellendi.hoverabledeğiştiricisi yalnızca etkinleştirilmişse 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, değişiklik yapılmadan (yalnızca sürüm yükseltme) yayınlanır.
Sürüm 1.4.2
19 Nisan 2023
androidx.compose.foundation:foundation:1.4.2 ve androidx.compose.foundation:foundation-layout:1.4.2 yayınlandı. 1.4.2 sürümü şu commit'leri içerir.
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.foundation:foundation:1.4.1 ve androidx.compose.foundation:foundation-layout:1.4.1 yayınlandı. 1.4.1 sürümü şu commit'leri içerir.
Sürüm 1.4.0
22 Mart 2023
androidx.compose.foundation:foundation:1.4.0 ve androidx.compose.foundation:foundation-layout:1.4.0 yayınlandı. 1.4.0 sürümü şu commit'leri içerir.
1.3.0 sürümünden beri yapılan önemli değişiklikler
TextveTextField'ye, ayrıca alt düzeydeki Paragraf'a Emoji uyumluluğu entegrasyonu eklendi. Emojicompat yapılandırıldığında bu ayar varsayılan olarak etkindir.EmojiCompat,PlatformParagraphStylekullanılarak belirli bir metinde yapılandırılabilir.LazyStaggeredGrid(I28252) için tam satır aralığı desteği eklendi.onHoverdeneysel özelliğininClickableText(I6938f) kampanyasına eklenmesirunComposeUiTestişlevi veCoroutineContextparametrelerini kabul edencreate*ComposeRuleişlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tümLaunchedEffectverememberCoroutineScope()çağrıları için kullanılır. (I10614, b/265177763)FlowRowveFlowColumnartık@ExperimentalFoundationApiolarak kullanılabilir. Bu sayede, ana eksende yeterli alan yoksa yeni bir satıra geçecek bileşenlerin satır ve sütun tabanlı daha esnek bir düzeni sağlanır. (I3a7b2)Modifier.basicMarquee(), kayan yazı efektiyle içerik görüntülemek için deneysel olarak kullanılabilir. (I2df44, b/139321650)
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.foundation:foundation:1.4.0-rc01 ve androidx.compose.foundation:foundation-layout:1.4.0-rc01 yayınlandı. 1.4.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni bir düşük düzeyli
PlatformTextInputAdapterAPI'si kullanıma sunuldu. (I58df4) LazyStaggeredGrid'da ters düzen desteği eklendi. (I3ef4a)
Hata Düzeltmeleri
BasicTextField'nınSetTextsemantik işlemi artık metin arabelleğini IME güncellemeleri ve test işlevleriyle (ör.performTextReplacement) aynı kod yolunu kullanarak güncelleyecek.- Metin test işlevleri
performTextClearance,performTextReplacementveperformTextSelectionartıkSemanticsActionskullanıyor. (I0807d, b/269633168, b/269624358)
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.foundation:foundation:1.4.0-beta02 ve androidx.compose.foundation:foundation-layout:1.4.0-beta02 yayınlandı. 1.4.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
Layoutöğesinin yeniden kullanılacağı (ör.LazyColumnöğesi olarak) durumun 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ğırma işlevi eklendi. Odaklanılan durumun düzgün şekilde sıfırlanması içinFocusTargetModifierNodedüzeltildi. (I65495, b/265201972)- Canvas'a metin çizerken farklı karıştırma algoritmalarını desteklemek için
DrawScope.drawText,Paragraph.paintveMultiParagraph.paintyöntemlerineBlendModeparametresi eklendi. (I57508) modifierElementOf()API'si kaldırıldı. Lütfen bunun yerine doğrudanModifierNodeElementüzerinden uzatın. (Ie6d21)
Hata Düzeltmeleri
- Seçim tutamaçlarını ayarlarken artık kısmi karakter seçilemiyor. (Idedd1)
- Boş
TextFieldalanında Ctrl+Geri Silme tuşlarına basıldığında kilitlenme sorunu düzeltildi (I0427f, b/244185537)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.foundation:foundation:1.4.0-beta01 ve androidx.compose.foundation:foundation-layout:1.4.0-beta01 yayınlandı. 1.4.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- 1.3 sürümünden itibaren
TextveTextField'ye, ayrıca alt düzey paragrafına Emoji uyumluluğu entegrasyonu eklendi. Emojicompat yapılandırıldığında bu ayar varsayılan olarak etkindir. EmojiCompat,PlatformParagraphStylekullanılarak belirli bir metinde yapılandırılabilir.
API Değişiklikleri
PinnableContainerAPI'nin, kompozisyonun dışına çıkan ancak yine de etkin olması gereken öğeleri korumak için tümLazyLayouts'lerde kullanılan ortak uygulaması eklendi. (If45a4)PinnableContainer.PinnedHandle.unpin(),release()olarak yeniden adlandırıldı (I4667a)
Harici Katkı (External Contribution)
mainAxisItemSpacingmülküLazyListLayoutInfo,LazyGridLayoutInfoveLazyStaggeredGridItemInfo'e eklendi (I52fad)
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.foundation:foundation:1.4.0-alpha05 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha05 yayınlandı. 1.4.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
LazyStaggeredGridiçin tam satır aralığı desteği eklendi (I28252)onHoverdeneysel özelliğiClickableText'e ekleniyor (I6938f)runComposeUiTestişlevi veCoroutineContextparametrelerini kabul edencreate*ComposeRuleişlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tümLaunchedEffectverememberCoroutineScope()çağrıları için kullanılır. (I10614, b/265177763)
API Değişiklikleri
OverscrollEffect'nın ön/son API'lerini birleştirerek birleşik "decorator"applyToScrollveapplyToFlingişlevlerini oluşturur. Yeni API şekliyle aşırı kaydırma efektinin nasıl uygulanacağına dair örnekler için dokümandaki güncellenmiş örneklere bakın. (I8a9c4, b/255554340)- Satır içi/kullanımdan kaldırılmış-gizli işlevlerin türü/nullability'siyle ilgili daha fazla bilgi (I24f91)
TextStyleiçindekiLineBreakveHyphensAPI'leri kararlı sürüme yükseltildi. (Ic1e1d)
Hata Düzeltmeleri
- Metin alanlarındaki imleç, animasyonlar devre dışı bırakıldığında bile yanıp sönmeye devam edecek. (I95e70, b/265177763)
Modifier.basicMarqueeartık sistem ayarlarında animasyonlar devre dışı bırakıldığında bile animasyonlu olarak gösteriliyor. (I23389, b/262298306, b/265177763)
Harici Katkı (External Contribution)
TextInputSessionveTextInputService'dekinotifyFocusedRectyöntemlerinin desteği tekrar sonlandırılmıyor. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.foundation:foundation:1.4.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha04 yayınlandı. 1.4.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
FlowRowveFlowColumnartık@ExperimentalFoundationApiolarak kullanılabilir. Bu sayede, ana eksende yeterli alan yoksa yeni bir satıra geçecek bileşenlerin satır ve sütun tabanlı daha esnek bir düzeni sağlanır. (I3a7b2)Modifier.basicMarquee(), kayan yazı efektiyle içerik göstermek için deneysel olarak kullanılabilir. (I2df44, b/139321650)
API Değişiklikleri
FocusRequesterModifier,FocusRequesterNodelehine kullanımdan kaldırıldı (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)AndroidFontoluşturucusuvariationSettingsile artık kararlı bir API'dir ve yeni yazı tipi tanımlayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)- Mevcut öğenin sabitlenmesine olanak tanıyan bir kompozisyon yereli aracılığıyla
PinnableContainertembel listeler tarafından yayılan API'yi kullanıma sunduk. Bu nedenle, görünümden kaydırıldığında bu tür öğeler atılmaz. Örneğin,Modifier.focusable(), bu mekanizma aracılığıyla odaklanılan öğeyi sabitler. (Ib8881, b/259274257, b/195049010) - Kaydırılabilir öğelerin
bringIntoViewRequestersve odaklanılabilir öğelerin yanıt verme şekli, bu işlemlerin karmaşıklığını daha iyi modellemek ve daha fazla uç durumu ele almak için yeniden yazıldı. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - Desteği sonlandırılan ve gizlenen işlevlerin daha fazla dönüş türü nullability'si (Ibf7b0)
- Metnin
Static(default)veya animasyonlu olmasını tanımlamak içinTextMotiondeneysel özelliğiTextStyleöğesine eklendi. Metin, animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animatedkullanın. (I24dd7) - Android platformunda odaklanma gezinme davranışını düzeltmek için
TextFieldFocusModifierekleyin (I00303) - Diğer
DrawScopeişlevleriyle uyumlu olması içindrawTextişlevindekimaxSize: IntSizebağımsız değişkenisize: Sizeile değiştirildi.size, varsayılan olarakSize.Unspecifieddeğerine ayarlanır. Bu, önceki varsayılan davranışı değiştirmemelidir. (Icd27d)
Hata Düzeltmeleri
SnapFlingBehaviour'daki tutturma fiziğinde daha doğal bir his için ayarlamalar yapıldı.
Bilinen Sorun
androidx.compose.foundation:1.4.0-alpha03sürümündenandroidx.compose.foundation:1.4.0-alpha04sürümüne güncelleme yaparkenjava.lang.NoSuchFieldErrorhatasıyla karşılaşabilirsiniz. Sorun burada ilk olarak bildirildi. Düzeltme gönderildi ve bir sonraki Compose güncellemesinde kullanıma sunulacak. Geçici çözüm olarakandroidx.compose.materialveandroidx.compose.material3kitaplıklarınızı en son sürüme(1.1.0-alpha04) güncelleyin veyaandroidx.compose.foundationsürümünüzü 1.4.0-alpha03'e düşürün.
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.foundation:foundation:1.4.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha03 yayınlandı. 1.4.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Compose kuralı kullanılan kullanıcı arayüzü testlerinde,
withFrameNanosgeri çağırmaları sırasında devam ettirilen devamlılıklar, tüm çerçeve geri çağırmaları çalışmayı bitirene kadar gönderilmez. Bu, normal şekilde çalıştırıldığında oluşturma davranışıyla eşleşir. Ancak eski davranışa dayalı testler başarısız olabilir. Bu durum yalnızca doğrudanwithFrameNanosveyawithFrameMillisişlevlerini çağıran ve bu işlevlere iletilen geri çağırmaların dışında, geri çağırmaların içine taşınması gerekebilecek mantık içeren kodları etkilemelidir. Bu CL'de örnekler için animasyon testi değişikliklerine bakın. onPerformTraversals: (Long) -> Unitparametresi,TestMonotonicFrameClockoluşturucu ve fabrika işlevine isteğe bağlı olarak eklendi. Bu parametre,withFrameNanosgeri çağırmalarından sonra ancak arayanların eşzamanlı rutinleri devam ettirilmeden önce kod çalıştırmak için kullanılır. (Idb413, b/254115946, b/222093277, b/255802670)- Sayfa erişilebilirlik işlemlerini kullanıma sunma:
PageUp,PageDown,PageLeft,PageRight. Bunların yalnızca API 29'dan itibaren kullanılabildiğini unutmayın. (Ida4ab) HorizontalPagerveVerticalPager'ı tanıtıyoruz. Bu bileştirilebilirler, Pager'da gösterilebilir. Pagers'ı kontrol etmenin yanı sıra Pager'ın mevcut durumu hakkında bilgi sorgulamak içinPagerStatetanıtıldı. Pager'ın sayfa boyutunu kontrol etmenin bir yolu olanPageSizetanıtıldı. Bu, Pager'lar gibi bir bant oluşturmak için kullanılabilir. Pager'ın hızlıca kaydırma davranışında tutturmanın nasıl çalışacağını kontrol etmenin bir yolu olanPagerSnapDistanceözelliği kullanıma sunuldu. (I01120)- Fırlatmanın nereye düşeceğini anlamaya yardımcı olmak için
SnapFlingBehavior.performFling'da aşırı yükleme özelliği kullanıma sunuldu. (I569f6) OverscrollEffect#isEnabledkaldırıldı. Bu işareti hatırlayıp ayarlamanız gerekmez. Kaydırma etkisinin gösterilmesini istemediğiniz durumlarda (örneğin,ScrollableState#canScrollForward/backwardher ikisi de yanlış değerini döndürüyorsa) etkinlikleri kaydırma etkisine göndermeyin. (I1a4b0, b/255554340, b/255557085)ScrollableState#canScrollForwardveScrollableState#canScrollBackward,ScrollableStateöğesinin her iki yönde kaydırma alanı olup olmadığını (aralığının minimum veya maksimum değerinde olup olmadığını) sorgulamak için eklendi. Bu ayar,ScrollableState'nın mevcut uygulamalarıyla geriye dönük uyumluluk için varsayılan olarak doğru değerini alır. Tüketiciler, kullanıcılara kaydırma için hâlâ yer olduğunu göstermek amacıyla bu özelliği kullanabilir. Ayrıca, gereksiz işi azaltmak için belirli bir yönde kaydırma alanı olmayanScrollableStates'lara delta göndermeyi önlemek için de kullanılabilir. (Idf1a0, b/255557085)- Ataların kaydırma bilgilerini sorgulamak için bir Modifier API eklendi. (I2ba9d, b/203141462)
- Hareketler kaydırma etkinliğine dönüşebildiğinde basma etkileşimlerini doğru şekilde geciktirmek için
Clickableiçinde kullanılır. ClickablesöğesiScrollable ViewGroupiçinde kullanıldığında dalgalanmaları doğru şekilde geciktirmemesi sorunu düzeltildi.- Çekmeceler ve sayfalar, hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda basma işlemlerini doğru şekilde geciktirecek şekilde güncellendi.
snapStepSizeadlandırmasını,snapStepSize'daki diğer yöntemlerle tutarlı olacak şekilde güncelleyin.SnapLayoutInfoProvider(Ife67c)EmojiCompat,Compose'ye eklendi (Ibf6f9, b/139326806)consumedWindowInsets(),consumeWindowInsets()olarak,withConsumedWindowInsets()iseonConsumedWindowInsetsChanged()olarak yeniden adlandırıldı ve değiştiriciler herkese açık hâle getirildi. (Ie44e1)
Hata Düzeltmeleri
Modifier.animateItemPlacement()ve Lazy Grid'lerle ilgili kilitlenme sorunu düzeltildi. Bu durum, yeni öğe sayısı bir öncekinden daha az olduğunda bazı koşullarda meydana geliyordu. (I0bcac, b/253195989)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.foundation:foundation:1.4.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha02 yayınlandı. 1.4.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
awaitFirstDownvewaitForUpOrCancellationartık daha fazla esneklik içinPointerEventPasskabul ediyor. (I7579a, b/212091796)- Lazy* API'lerden
beyondBoundCountAPI'yi geri alma (I12197) - Lazy API'lerde, görüntü alanı dışındaki öğeleri oluşturup yerleştirmek için parametre kullanıma sunuldu (I69e89, b/172029355).
BasicTextveBasicTextFieldiçinminLinesparametresi eklendi. Bu composable'ların minimum yüksekliğini satır sayısı cinsinden ayarlamanıza olanak tanır (I24294, b/122476634).
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.foundation:foundation:1.4.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.4.0-alpha01 yayınlandı. 1.4.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Hareket algılayıcılar için yeni bir yöntem (
awaitEachGesture()) eklendi.forEachGesture()ile benzer şekilde çalışır ancak hareketler üzerindeki döngü tamamenAwaitPointerEventScopeiçinde gerçekleştiğinden yinelemeler arasında etkinlik kaybı yaşanmaz. forEachGesture(), hareketler arasında etkinliklerin kaybolmasına izin verdiği içinawaitEachGesture()lehine kullanımdan kaldırıldı. (Iffc3f, b/251260206)- Animasyonun ilerleme durumunu belirlemek ve animasyon tamamlandıktan sonra IME'nin nerede olacağını bilmek için
WindowInsets.imeAnimationSource veWindowInsets.imeAnimationTargeteklendi. (I356f1, b/217770337)
Sürüm 1.3
Sürüm 1.3.1
9 Kasım 2022
androidx.compose.foundation:foundation:1.3.1 ve androidx.compose.foundation:foundation-layout:1.3.1 yayınlandı. 1.3.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
BeyondBoundsLayout'daki 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 yayınlandı. 1.3.0 sürümü şu commit'leri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
LazyVerticalStaggeredGridveLazyHorizontalStaggeredGrid'ın deneysel sürümleri kullanıma sunuldu.SnapFlingBehavior,rememberSnapFlingBehaviorve diğer ilgili API'ler deneysel olarak eklendi.Modifier.clickable,Modifier.toggleableveModifier.selectable, klavye veya uzaktan kumandadaki yön tuşlarıyla tıklandığında artık dalgalanma efekti gösteriyor.
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.foundation:foundation:1.3.0-rc01 ve androidx.compose.foundation:foundation-layout:1.3.0-rc01 yayınlandı. 1.3.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Azalma için yeterli kaydırma hızı olmadığında yaklaşma adımında kullanılan
lowVelocityAnimationSpectanıtıldı. (Iaeb27) - Metinde otomatik tireleme özelliğini desteklemek için yeni deneysel API Hyphens eklendi (Iaa869).
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.foundation:foundation:1.3.0-beta03 ve androidx.compose.foundation:foundation-layout:1.3.0-beta03 yayınlandı. 1.3.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Metinde satır sonunu özelleştirmek için seçenekler ekleyin. (I86907)
BringIntoViewResponderartık bir isteği işlerken en güncel sınırları alabilir. (If86a5, b/241591211)- Öğeler arasındaki boşluklar için deneysel
Staggered Grid(I10b82) desteği sunuluyor - Deneysel
Staggered Grid(I342ea) özelliğine içerik dolgusu ekleme - Minimum genişlik kısıtlamalarını desteklemek için
TextMeasurer.measureyöntemindekisize:IntSizebağımsız değişkeniconstraints: Constraintsile değiştirildi. (I37530, b/242707525) Modifier.withConsumedWindowInsets(),windowInsetsPaddingdışında kullanılmak üzereWindowInsetsolarak tüketilecek şekilde eklendi.MutableWindowInsetseklendi. Bu sayedeWindowInsets, yeniden oluşturmaya gerek kalmadan kolayca değiştirilebilir. (I7fd28, b/237019262, b/243119659)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.foundation:foundation:1.3.0-beta02 ve androidx.compose.foundation:foundation-layout:1.3.0-beta02 yayınlandı. 1.3.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Deneysel
StaggeredGrid'nın ilk sürümü (Ia48be) FocusDirection.InveFocusDirection.Out,FocusDirection.EnterveFocusDirection.Exitolarak yeniden adlandırıldı (Ia4262, b/183746982)rememberSnapFlingBehavioriçinde tutturmayı hızlı bir şekilde etkinleştirmenin yolunu sunan birrememberSnapFlingBehavioraşırı yüklemesi kullanıma sunuldu.LazyLists(Ifb48a)snapFlingBehaviorfabrikası, somut birSnapFlingBehaviorsınıfıyla değiştirildi. API kullanıcılarının Dp<->Px dönüşümlerini kolaylaştırmak için yoğunlukla ilgiliSnapLayoutInfoProvideryöntemler. (I54a11)LazyLayoutMeasureScope.measureişlevini, yerleştirilebilir öğelerin listesini döndürecek ve döndürülen değerin istenen değişmezliğini vurgulayacak şekilde güncelleyin. (I48b7c)SnapLayoutInfoProvideriçinFlingBehaviorözelliğini etkinleştirmek üzere kullanılabilecek birSnapLayoutInfoProviderörneği oluşturmak içinLazyListStatealanını kullananSnapLayoutInfoProviderişlevi kullanıma sunuldu.LazyLists(I2dd10)
Hata Düzeltmeleri
- Diğer await işlevleriyle eşleşmesi için
AwaitPointerEventScope#awaitLongPressOrCancellationyeniden düzenlendi (I646e6).
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.foundation:foundation:1.3.0-beta01 ve androidx.compose.foundation:foundation-layout:1.3.0-beta01 yayınlandı. 1.3.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
pointerPosition,OverscrollEffectöğesinden kaldırıldı. İşaretçi konumunu önemseyen efektler, mevcut işaretçi konumunu almak için bunun yerineeffectModifieröğesindeModifier.pointerInput { }kullanabilir. (I9f606, b/241239306)- Daha karmaşık hareket algılama için
AwaitPointerEventScope#awaitLongPressOrCancellationek yapı taşı olarak kullanıma sunuldu (I04374, b/181577176) - Lazy Lists'te tutturmayı etkinleştirmek için
lazyListSnapLayoutInfoProviderözelliği kullanıma sunuldu. (I3ecdf) - Liste tutturmayı sağlayan bir aktarma davranışı olan
SnapFlingBehaviorözelliğini kullanıma sunduk. Sabitleme düzeninizle ilgili bilgileri içeren birSnapLayoutInfoProviderörneği sağlayın. (Ie754c)
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.foundation:foundation:1.3.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha03 yayınlandı. 1.3.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Kaynak yazı tipleri artık yazı tipi varyasyon ayarlarının (API 26+) belirlenmesini destekliyor. (I900dd, b/143703328)
DeviceFontFamilyNameFont'da değişken yazı tipi desteği (Ic1279, b/143703328)PlatformTextStyleveLineHeightStyleöğelerinden deneysel ek açıklamalar kaldırıldı. (I64bef)- Metin alanları,
VisualTransformationtarafından sağlananOffsetMappinggeçersiz dizinler döndürdüğünde artık daha ayrıntılı istisnalar oluşturacak. (Ie73f9, b/229378536) - Öğe sağlayıcı mantığını Lazy düzenler arasında paylaşmak için deneysel API'ler kullanıma sunuldu. (Ic891c)
ScrollableDefaults.reverseDirection()artık deneysel bir özellik değil. (Iba646)SemanticsModifier.idkullanımdan kaldırıldı ve bunun yerine semantik kimlikLayoutInfo.semanticsId'ye taşındı. (Iac808, b/203559524)checkScrollableContainerConstraints()artık deneysel bir özellik değil. (I2c290)Modifier.clipScrollableContainer()artık deneysel bir özellik değil. (Ia2b44)TextInputService.show|hideSoftwareKeyboarddesteğini sonlandırın. Lütfen uygulama kodundaSoftwareKeyboardController, IME yönetimi kodunda iseTextInputSessionkullanın. (I14e4c, b/183448615)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.foundation:foundation:1.3.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
drawText,CanvasvedrawBehindgibiDrawScopeüzerinde çalışan composable'lar ve değiştiricilerde çok stilli metin çizmenin bir yolunu sağlamak içinDrawScopeüzerindedrawTextuzantı işlevi eklendi. (I16a62, b/190787898)
Hata Düzeltmeleri
- Odaklanılmış bir metin alanı devre dışı bırakıldığında artık dokunmatik klavye gizlenecek. (I6e3e4, b/237308379)
- Hız İzleyici'ye
InputEventChangeetkinlikleri eklerken artık konumlar yerine delta değerlerini dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hızın tüm durumlarda doğru şekilde hesaplanması sağlanacak (Icea9d, b/216582726, b/223440806, b/227709803). - Kaydırılabilir bir öğe odaklanmış bir alt öğeye sahip olduğunda, boyutu küçültüldüğünde (boyut animasyonlu olsa bile) odaklanmış alt öğeyi görünümde tutmak için artık doğru şekilde kaydırılacak. (I80867, b/230756508, b/220119990)
- Seçim etkinken
TextFieldtemizlenip yeniden doldurulurken yaşanan kilitlenme sorunu düzeltildi. (I1235b, b/208655565, b/214253689)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.foundation:foundation:1.3.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
UrlAnnotationaçıklama türü veAnnotatedString'lerdeTalkBackbağlantı desteğini sağlamak için ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)
Hata Düzeltmeleri
BasicTextFieldcursorBrushartık imleç zamanlayıcısı yeniden başlatılmadan animasyonlu hale getirilebilir. (I812e6, b/236383522)
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.foundation:foundation:1.2.1 ve androidx.compose.foundation:foundation-layout:1.2.1 yayınlandı. 1.2.1 sürümü şu commit'leri içerir.
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.foundation:foundation:1.2.0 ve androidx.compose.foundation:foundation-layout:1.2.0 yayınlandı. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
LazyVerticalGridveLazyHorizontalGridartık kararlı.- Artık tembel listelerdeki ve ızgaralardaki öğeler için içerik türü belirtebilirsiniz. Bu sayede bileşenler, öğeleri daha verimli bir şekilde yeniden kullanabilir.
- Tembel listeler ve ızgaralarda artık kullanıcı hareketleriyle kaydırmayı devre dışı bırakmaya olanak tanıyan
userScrollEnabledparametresi var. LazyLayoutadlı yeni bir deneysel API eklendi. Bu API, dahili olarak tembel listeleri ve ızgaraları desteklemek için kullanılır.OverscrollEffectAPI deneysel olarak kullanıma sunuldu. Özel kaydırılabilir kapsayıcılara standart platform efektinin yanı sıra özel aşırı kaydırma efektleri de ekleyebilirsiniz.- Görünümler ve beste kaydırma aktörleri arasında birlikte çalışabilirliğe olanak tanımak için iç içe kaydırma birlikte çalışabilirlik API'leri kullanıma sunuldu.
- Fare ve dokunmatik yüzeyle kaydırma özelliği tüm kaydırma kapsayıcılarına eklendi.
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc03 ve androidx.compose.foundation:foundation-layout:1.2.0-rc03 yayınlandı. 1.2.0-rc03 sürümü şu commit'leri içerir.
- 1.2.0-rc02 sürümünden bu yana değişiklik yapılmadı.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc02 ve androidx.compose.foundation:foundation-layout:1.2.0-rc02 yayınlandı. 1.2.0-rc02 sürümü şu commit'leri içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc01 ve androidx.compose.foundation:foundation-layout:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
Modifier.scrollableaşırı kaydırma efektlerinin yanı sıra özel aşırı kaydırma efektlerine izin vermek için deneysel birOverscrollEffecttanıtıldı.- Deneysel
LocalOverScrollConfiguration,foundation.gesturepaketinden temel pakete taşındı veLocalOverscrollConfigurationolarak yeniden adlandırıldı (If19fb, b/204650733) - Compose kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri kullanılarak oluşturuluyor (I5bcf1).
- Kaydırılabilir kapsayıcıları iç içe yerleştirmediğimizi kontrol etmemize olanak tanıyan deneysel bir API
checkScrollableContainerConstraints()kullanıma sunuldu.LazyLayoutaracılığıyla kendi kaydırılabilir tembel düzenlerinizi oluştururken bu işlevden yararlanabilirsiniz. (Id6fab, b/233352497) - Kullanımdan kaldırılan
LazyVerticalGrid,androidx.compose.foundation.lazypaketinden kaldırıldı. Yeni kararlı API,androidx.compose.foundation.lazy.gridkonumunda bulunur (I73c76, b/225192009).
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-beta03 ve androidx.compose.foundation:foundation-layout:1.2.0-beta03 yayınlandı. 1.2.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Yeni deneysel
IntervalListveMutableIntervalListeklendi. Bir değer listesinin birden fazla aralıkla gösterilmesine olanak tanır. Liste öğelerinin birden fazla öğe/öğeler çağrısıyla tanımlanabildiğiLazyColumntarafından kullanılan DSL'ye benzer kendi DSL'nizi tanımlamak istediğinizde bu özellikten yararlanabilirsiniz. (I2d05e, b/228580728)
Hata Düzeltmeleri
WindowInsets.imeile ilgili dokümanlarda,imeyerleşimlerinin API 23'ten itibaren bildirildiği ancak yalnızca 30 ve sonraki sürümlerde animasyonlu olduğu belirtildi. (Ia7fc0, b/230756508)- İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme sorunu yaşanmayacak.
DeleteSurroundingTextCommandveDeleteSurroundingTextInCodePointsCommandartı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 yayınlandı. 1.2.0-beta02 sürümü şu commit'leri içerir.
- Metnin veya
TextFielddüzen boyutunu değiştirmeyen indirilebilir yazı tipi çözünürlüğü daha önce yeniden çizilmiyordu ve bu da eski yazı tipi görünümüne yol açıyordu. Bu hata düzeltmesi, metin düzeninin her zaman yeniden çizme işlemini tetiklemesini sağlar (b/229727404). (I1d49e, b/229727404)
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.foundation:foundation:1.2.0-beta01 ve androidx.compose.foundation:foundation-layout:1.2.0-beta01 yayınlandı. 1.2.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Bu, 1.2'nin ilk beta sürümüdür.
API Değişiklikleri
- Öğeleri görünür sınırların ötesinde yerleştirdiklerinde
LazyListöğesinin özel uygulamaları tarafından kullanılabilecek deneyselBeyondBoundsIntervaleklendi (Ifabfb, b/184670295). LineHeightBehavior,LineHeightStyleolarak yeniden adlandırıldıLineVerticalAlignment,LineHeightStyle.Alignmentolarak yeniden adlandırıldıLineHeightTrimyeniden adlandırıldı veLineHeightStyle.Trimolarak değiştirildiLineHeightStyleiçindeki varsayılan oluşturucu değerleri kaldırıldı (I582bf, b/181155707)LazyLayoutItemProviderarayüzünün isteğe bağlı üyeleri için varsayılan değerler eklendi. (Iba8a0)LazyLayoutItemProviderAPI'sinde, birleştirilebilir lambda'yı dizine göre döndüren bir fabrika yerine artık dizini kabul eden daha basit bir birleştirilebilir işlev olan Item var. (Id2196)- LazyLayoutItemsProvider, LazyLayoutItemProvider olarak yeniden adlandırıldı (I0638c)
LazyLayoutItemsProvider.itemsCount,itemCountolarak yeniden adlandırıldı (Id409c)- Gradyan renkli metin çizme imkanı sunmak için
TextStyleveSpanStyle'ye fırça eklendi. (I53869, b/187839528) trimFirstLineTop,trimLastLineBottomözellikleriLineHeightBehaviortek bir enum'a dönüştürüldü:LineHeightTrim.LineHeightTrim, iki boole ile tanımlanan 4 durum değerine sahiptir:FirstLineTop,LastLineBottom, Her İkisi ve Hiçbiri (Ifc6a5, b/181155707)TextStyleveParagraphStyle. LineHeightBehaviorkontrollerineLineHeightBehavioreklendi. Bu kontrol, satır yüksekliğinin ilk satırın üst kısmına ve son satırın alt kısmına uygulanıp uygulanmayacağını belirler. Ayrıca,TextStyle(lineHeight) tarafından sağlanan alandaki satırın hizalamasını da tanımlar.Örneğin, CSS'nin
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)aracılığıyla tanımladığına benzer bir davranış elde edilebilir.trimFirstLineTop,trimLastLineBottomyapılandırmaları yalnızcaincludeFontPaddingyanlış olduğunda doğru şekilde çalışır. (I97332, b/181155707)Geliştiricilerin IME'yi kaydırma yoluyla kontrol edebilmesi için deneysel
imeNestedScroll()değiştiricisi eklendi. (I60759)
Hata Düzeltmeleri
- Odaklanılmış durumdayken kompozisyondan kaldırıldığında metin alanlarının klavyeyi gizlememesiyle ilgili gerileme 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.bringIntoViewartık istek tamamlanana veya yeni ve çakışmayan bir istek tarafından kesintiye uğratılana kadar her zaman askıya alınacak. Çakışan istekler sıraya alınır. (I43e7f, b/216790855)- Tamamen çakışan dikdörtgenler için eşzamanlı
BringIntoViewRequester.bringIntoViewçağrıları artık yalnızca daha büyük dikdörtgenin isteğini karşılayacak. (I34be7, b/216790855, b/184760918) - Varsayılan olarak açık
includeFontPadding.TextStyle.platformTextStyleözelliğini kullanarakincludeFontPaddingözelliğini devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz ancak o zamana kadar bu değişiklik, satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre etmemize veTextFieldkırpma sorunlarını çözmemize olanak tanır. (I01423, b/171394808) Modifier.bringIntoViewRequesterartıkonGloballyPositionedkullanmıyor. (I630f5)
Harici Katkı (External Contribution)
- Dikey olarak kaydırdığımızda
MouseInjectionScope.scroll(delta = someDelta)artık Android'de tersine çevriliyor (someDelta 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 yayınlandı. 1.2.0-alpha08 sürümü şu commit'leri içerir.
API Değişiklikleri
FontFamily.SansSerifkullanılırken Android'deki sistem yazı tiplerinin tüm ağırlıklarını gösterir. Bu işlem, API 21-28'de sans-serif-medium gibi yedek yazı tipi adlarını dahili olarak kullanır. Bu bir davranış değişikliğidir. Daha önce API 21-28'de yalnızca 400 ve 700 ağırlıkları destekleniyordu. (I380fe, b/156048036, b/226441992)- Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor. Şu anda
Constraints.maxHeightiletmek herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre üç nokta ekleme gibi bazı hesaplamalar yapılmasına olanak tanır. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()artık yeni öğelerin eklenmesine izin vermeyen, MutableSet benzeri özel bir sınıfı kabul ediyor. (Icd314)- Kısmi tüketim (aşağı veya konum)
PointerInputChangesürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()öğesini kullanabilirsiniz. Başka bir kullanıcının değişikliği daha önce kullanıp kullanmadığını belirlemek içinisConsumedsimgesini kullanabilirsiniz. PointerInputChange::copy()artık her zaman yüzeysel bir kopya oluşturur. Bu, kopyalardan biri kullanıldığındaPointerInputChangekopyalarının da kullanılacağı anlamına gelir. Sınırsız birPointerInputChangeoluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)- Yeni deneysel
LazyLayoutAPI kullanıma sunuldu. Bu sayedeLazyVerticalGrid'ninLazyColumngibi kendi bileşenlerinizi oluşturabilirsiniz. API'nin erken aşamada olduğunu ve gelecekteki sürümlerde değiştirilebileceğini unutmayın. (Iba2bc, b/166591700) AndroidFontartık oluşturucu parametresi olaraktypefaceLoaderdeğerini alıyor. (I2c971)WindowInsetsartık görünürlüğü (pencereyle kesişip kesişmediklerine bakılmaksızın ekranda olup olmadıkları) ve cihazda kullanılabilir ancak şu anda etkin değilse olabilecekleri 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 yayınlandı. 1.2.0-alpha07 sürümü şu commit'leri içerir.
API Değişiklikleri
- Tembel düzenlerin alt öğelerinin, şu anda oluşturulan öğelerin kaldırılmasını engellemesine olanak tanıyan bir
PinnableParentAPI'si eklendi (Ibbdd0, b/184670295). LazyListLayoutInfoveLazyGridLayoutInfoartıkbeforeContentPaddingveafterContentPaddingalanlarına sahip (I3b628, b/200920410)- IME'de ondalık ayırıcıyı özel olarak eklemek için
Keyboard.Number'ye alternatif olarakKeyboardType.Decimaleklendi. (Iec4c8, b/209835363) - Yazı tipi geri dönüşüm zincirleri sırasında isteğe bağlı olarak sisteme yüklenen yazı tiplerini aramak için Font(DeviceFontFamilyName) adlı yeni yazı tipi tanımlayıcısı ekleyin. (I30468, b/219754572)
PointerEventType.ScrollvePointerEvent.scrollDeltaartık kararlı API'lerdir (I574c5, b/225669674).TextStyle/ParagraphStyle. includeFontPaddingiçindeincludeFontPaddingiçin geçici uyumluluk yapılandırması eklendi. Bu yapılandırmaTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))üzerinden değiştirilebilir. Bu, taşıma işlemini etkinleştirmek için geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808)- Sisteme genel kalın metin erişilebilirlik ayarını (I6c1e7) entegre etmek için
FontFamily.Resolvergüncellendi. ComposeViewöğesininconsumeWindowInsetsuzantı özelliği, geliştiricilerin Android WindowInsets'in tüketilmesini devre dışı bırakmasına olanak tanır. Bu, hiyerarşideki ayrıComposeViewsöğelerinin birbirine müdahale etmeden her birineWindowInsetsuygulanması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 yayınlandı. 1.2.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Odaklanılabilir hedefe odaklanma isteğinde bulunmak için
RequestFocussemantik işlemi eklendi. (I17b71) FocusOrderartıkFocusPropertiesile birleştirildi vefocusProperties(),focusOrder()'ün tüm özelliklerine sahip.FocusOrdervefocusOrder()desteği sonlandırıldı.focusRequesterkabul edenfocusOrder(),focusProperties()ile birlikte kullanılan birfocusRequester()değiştiricisiyle değiştirilmelidir. Bu sayede değiştiriciler, endişeleri daha net bir şekilde ayırabilir. (I601b7)- Geliştiricilerin dönüştürme işlemini kompozisyonda olmalarına gerek kalmadan yapabilmeleri için
WindowInsets.asPaddingValues(Density)eklendi. (I94c35) - Mevcut düzen yönü sağdan sola ise
VectorPainteriçeriğini çevirmek için otomatik yansıtmayı destekleyecek şekilde vektör çizilebilir öğelerin ayrıştırılması güncellendi. (I79cd9, b/185760237)
Hata Düzeltmeleri
- Kaydırma değiştiriciler (
Modifier.verticalScroll(),Modifier.horizontalScroll()veModifier.scrollable()), kaydırma alanı yeniden boyutlandırılırsa ve odaklanılan composable daha önce görünür durumdaysa artık odaklanılan composable'ı görünür tutmak için kaydıracak. - TextField'lar artık odaklandıklarında ve klavye gösterildiğinde, tembel olmayan kaydırılabilir bir öğenin içindeyken ve yumuşak giriş modu
ADJUST_RESIZEolduğunda klavyenin üzerinde tutulacak. (I4a485, b/190539358, b/192043120, b/216842427)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.foundation:foundation:1.2.0-alpha05 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha05 yayınlandı. 1.2.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
LazyVerticalGridveLazyHorizontalGridartık kararlı. (I307c0)LazyGridItemInfo.Unknown, ayrıLazyGridItemInfo.UnknownRowveLazyGridItemInfo.UnknownColumnile değiştirildi (I56d51)LazyVerticalGrid/LazyHorizontalGridve ilgili tüm API'ler.gridalt paketine taşındı. Lütfenandroidx.compose.foundation.lazyhizmetinden yaptığınız içe aktarma işlemleriniandroidx.compose.foundation.lazy.gridhizmetine güncelleyin. (I2d446, b/219942574)- Metin:
includeFontPaddingartık varsayılan olarak devre dışıdır.includeFontPadding=falsenedeniyle oluşan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmaması sağlandı. (I31c84, b/171394808) - Ölçülen arayüz artık parentData özelliğini kullanıma sunuyor (I3313f)
- Çocuk odaklanılabilir öğelerinin sınırlarının gözlemlenmesine olanak tanıyan deneysel
Modifier.onFocusedBoundsChangedözelliği kullanıma sunuldu. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - LazyHorizontalGrid eklendi. (I61ae7, b/191238807)
- Çapraz eksen boyutlarını tanımlamak için yeni bir
LazyVerticalGridAPI eklendi (I17723). - Added FocusGroup modifier (I64bc0, b/213508274, �b/184670295)
Hata Düzeltmeleri
WindowInsets.toString()artık doğru değerleri gösterecek. (I1585d)
Harici Katkı (External Contribution)
- Kotlinx coroutines 1.6.0 kullanacak şekilde güncellendi (I3366d)
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.foundation:foundation:1.2.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha04 yayınlandı. 1.2.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
BringIntoViewRespondersartık istekleri üst yanıtlayıcılara manuel olarak iletmek zorunda değil. Bunun yerine, üst öğesinin görünür hale getirmesini istediği dikdörtgeni hemen döndürmesi gerekiyor. (I8e66a)- Metin'de eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
LazyVerticalGridartık mevcut satıra sığmayan span'lere sahip öğelerden önceline breakingöğesini destekliyor. (I05c40, b/207462103)excludeFromSystemGestures,systemGesturesExclusionolarak yeniden adlandırıldı (I19526)LazyVerticalGridartık reverseLayout'u destekliyor. (I6d7d7, b/215572963, b/211753558)- Geliştiricilerin yalnızca WindowInsets'teki boyutları dahil etmesine izin vermek için
WindowInsets.only()yöntemini ekleyin. (I14c94, b/217768486) ComposableTarget,ComposableTargetMarkerveComposableOpenTargetişlevleri eklendi. Bu işlevler, bir composable işlevin, kullanılması için tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.Çoğu durumda, ek açıklamalar compose derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Çıkarılamayan durumlar arasında özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (ör. arayüz yöntemleri), birleştirilebilir lambda'lar olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler çıkarılır) ya da
ComposeNodeveya ilgili birleştirilebilir işlevlerin kullanılması yer alır.Özel uygulayıcılar için
ComposeNodeveyaReusableComposeNodeişlevini çağıran birleştirilebilir işlevlerin, işlev ve birleştirilebilir lambda parametre türleri içinCompoableTargetek açıklaması eklemesi gerekir. Ancak,ComposableTargetMarkerile açıklama eklenmiş bir açıklama oluşturmanız ve ardından doğrudanComposableTargetyerine işaretlenmiş açıklamanın kullanılması önerilir.ComposableTargetMarkerile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özelliğin sınıfının tam nitelikli adını içeren birComposbleTargetile eşdeğerdir.ComposableTargetMarkerkullanımına ilişkin bir örnek içinanroidx.compose.ui.UiComposablebölümüne bakın. (I38f11)
Hata Düzeltmeleri
- Artık negatif kaydırma uzaklıklarının
LazyGridState.scrollToItem()veLazyGridState.animateScrollToItem()'ye aktarılmasına izin veriliyor. (I025c6, b/211753558) - TextField için eş zamansız yazı tipi yükleme desteği eklendi. (Icc4bf, b/214587005)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.foundation:foundation:1.2.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha03 yayınlandı. 1.2.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
TextInputSessionveTextInputServiceiçindekinotifyFocusedRectyöntemlerinin desteği sonlandırıldı ve bu yöntemler çağrılmayacak. Bunun yerineBringIntoViewRequesterkullanın. (Ia4302, b/192043120, b/216842427, b/178211874)- Modifier.animateItemPlacement() ile tembel ızgaraların öğeleri için animasyonlar etkinleştirildi. (Ib6621, b/211753218)
BringIntoViewRequesterartık istekleri barındıran Android View'a yayıyor. (Ia7a51)FontFamilyResolverartıkLocalFontFamilyResolver.currentüzerinden kullanılabilir.- Compose kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için
createFontFamilyResolver(context)vecreateFontFamilyResolver(context, coroutineScope)eklendi. - Paragraph ve MultiParagraph artık
FontFamily.Resolver TextLayoutResult.layoutInput.fontFamilyResolverartık bu düzen için kullanılan çözümleyiciyi içeriyor.TextLayoutResult.layoutInput.resourceLoaderartık kullanılmadığı için desteği sonlandırıldı. (Id5a45, b/174162090)
- Compose kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için
- Android'de yeni türde yazı tipi kaynak tanımlayıcıları sağlamak için yeni bir düşük düzey API olan
AndroidFonteklendi. Örneğin, yazı tiplerini uygulamaya özel bir arka uçtan yükleme, isteğe bağlı olarak önceden yüklenmiş yazı tiplerini cihazda bulma veya yazı tipini mevcut Font fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.- İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için
Font.ResourceLoadedAPI'si genişletildi. Uygulama geliştiricilerin bu API'yi doğrudan kullanması önerilmez. Yeni yazı tipi türleri eklemek için AndroidFont'a bakın. Font.AndroidResourceLoaderuzantı işlevi, kompozisyon dışındaFont.ResourceLoaderoluşturulmasına olanak tanır.- Kaynak yazı tipi, indirilebilir yazı tipleri XML'sine referans verdiğinde asenkron yüklemeye izin vermek için kaynak tabanlı yazı tiplerine
loadingStrategyparametresi eklendi. (Ie5aea, b/174162090)
- İsteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için
Typeface(FontFamily)oluşturucusunun desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye kadar sürebilir. İndirilebilir yazı tipleriyle bu çağrı 10 saniye boyunca engellenebilir. Bunun yerineFontFamilyResolver.preloadkullanın.fontResource(FontFamily): Typefacedesteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tiplerinin yüklenmesi 10 saniye kadar sürebilir. Bunun yerineFontFamilyResolver.preloadkullanın (If8e7c, b/174162090)
- Artık
LazyVerticalGridöğelerinin içerik türünü belirtebilirsiniz.LazyGridScopeüzerindekiLazyVerticalGrid- item/items işlevleri artık bu tür parametreleri kabul etmektedir. Bu tür bilgileri sağlamak, öğe kompozisyonunun yeniden kullanma mantığının daha verimli çalışmasına ve yalnızca benzer türdeki öğeler arasındaki içeriğin yeniden kullanılmasına yardımcı olur. (I7b355, b/215372836) LazyListLayoutInfoveLazyGridLayoutInfoartı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 tür parametreleri kabul ediyor. Bu tür bilgileri sağlamak, öğe kompozisyonunun yeniden kullanma mantığının daha verimli çalışmasına ve yalnızca benzer türdeki öğeler arasındaki içeriğin yeniden kullanılmasına yardımcı olur. (I26506)
maxSlotsToRetainForReusekabul edenSubcomposeLayoutStateoluşturucu artık kullanımdan kaldırıldı. Bunun yerine,SubcomposeSlotReusePolicykabul eden yeni bir oluşturucu vardır. Bu, gelecekte yeniden kullanım için hangi yuvaların korunması gerektiği konusunda daha ayrıntılı kontrol sağlayan yeni bir arayüzdür. (I52c4d)- Hem dolgu hem de boyutlandırma için WindowInsets değiştiricileri ekler. Bu sayede bazı içerikler, girintili alana kadar uzayabilir ancak birincil içerik girintili alanın dışında kalmaya devam eder. Örneğin, tamamen veya kısmen kaplanabilecek alanlardan kaçınmak için içerik alanını doldurmak üzere windowInsetsPadding kullanılabilir. (Id0395, b/213942085)
Hata Düzeltmeleri
- TextField'lar artık odaklandıklarında ve klavye gösterildiğinde klavyenin üzerinde tutulacak. Bu durum, sanal giriş modu
ADJUST_PANolduğunda geçerli olacak. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolveriçin yerel kompozisyonu kullanır.- Masaüstü
FontLoaderdesteği sonlandırıldı - Masaüstünde yeni
createFontFamilyResolverfabrikası (I6bbbb, b/174162090)
- Masaüstü
- Yumuşak klavye giriş türü, metin alanları arasında odak değiştirilirken artık titreme yapmıyor. (I1bf50, b/187746439)
- İmleç tutma yeri gösterilirken artık metin alanlarında ek bir geri tuşuna basılması gerekmiyor. (Ideb4b, b/205726883)
- Metin seçimi büyütme davranışları, platform büyütme aracıyla eşleşecek şekilde iyileştirildi. (Idd918, b/206833278)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.foundation:foundation:1.2.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Karmaşık mantık içermeyen mevcut yöntemlerin aşırı yüklenmesi olan yöntemlere
NonRestartableComposableeklendi. Bu, çağrılan iç işlevde tekrarlanan tüm parametreler için derleyici tarafından oluşturulan ezberleme kontrollerini (eşittir) azaltır. (I90490) - Android'in
setSystemGestureExclusionRects(I46f07) özelliğine kolay erişim içinexcludeFromSystemGesturedeğiştiricileri eklendi.
Hata Düzeltmeleri
- Metin seçimi büyütme davranışları, platform büyütme aracıyla eşleşecek şekilde iyileştirildi. (Idd918, b/206833278)
LazyColumn,LazyRow,Modifier.verticalScrollveModifier.scrollablekullanan diğer kapsayıcılar artık fare tekerleğiyle kaydırmayı destekliyor. (I2b5e1, b/198214718)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.foundation:foundation:1.2.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.2.0-alpha01 yayınlandı. 1.2.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Kullanıcıların, dokunma hareketleri veya erişilebilirlik işlemleri aracılığıyla başlatılan kaydırmayı geçici olarak ya da kalıcı olarak devre dışı bırakmasına olanak tanımak için
userScrollEnabledadlı yeni parametreLazyColumn,LazyRowveLazyVerticalGrid'ye eklendi. Durumdaki yöntemler aracılığıyla programatik olarak kaydırmaya izin verilmeye devam edilecek. (I7eae9, b/201150093) - Büyüteç değiştiricisine
onSizeChangedgeri çağırma işlevi eklendi. (I6879f) - Büyüteç widget'ı artık
SelectionContaineriçinde seçim tutamaçları sürüklenirken gösteriliyor. (I30b38, b/139320979)
Hata Düzeltmeleri
TextFieldİmleç tutamacının görünüm alanının dışına kaydırıldığında gizlenmemesi sorunu düzeltildi. (I14552, b/208883748)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10'e bağlıdır.
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.foundation:foundation:1.1.1 ve androidx.compose.foundation:foundation-layout:1.1.1 yayınlandı. 1.1.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayListkonumundaNullPointerExceptiondüzeltildi (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
LazyVerticalGrid'da RTL düzeltildi (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.foundation:foundation:1.1.0 ve androidx.compose.foundation:foundation-layout:1.1.0 yayınlandı. 1.1.0 sürümü şu commit'leri içerir.
1.0.0 sürümünden beri yapılan önemli değişiklikler
- Android 12'deki aşırı kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
- Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik kurallarına uymak üzere düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişletilir. Bu, Compose Material'ı Material Design Components'ın davranışıyla aynı hale getirir. Böylece, View'ları ve Compose'u birlikte kullandığınızda tutarlı bir davranış elde edersiniz. Bu değişiklik, Compose Material bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda dokunma hedefi erişilebilirliği için minimum şartların karşılanmasını da sağlar.
- Gezinme sütunu için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir.
- Kotlin'in yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.foundation:foundation:1.1.0-rc03 ve androidx.compose.foundation:foundation-layout:1.1.0-rc03 yayınlandı. 1.1.0-rc03 sürümü şu commit'leri 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 yayınlandı. 1.1.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Artık negatif kaydırma uzaklıklarının
LazyListState.scrollToItem()veLazyListState.animateScrollToItem()'ye aktarılmasına izin veriliyor. (Iceb90, b/184252837) - Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan hata düzeltildi (I7cbfb).
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.foundation:foundation:1.1.0-beta04 ve androidx.compose.foundation:foundation-layout:1.1.0-beta04 yayınlandı. 1.1.0-beta04 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kotlin ile uyumlu olacak şekilde güncellendi
1.6.0
API Değişiklikleri
androidx.core.view(I7078a, b/204917439) içinde boş değerlere izin verme özelliği temizlendi.- PointerInputchange'in bir bütün olarak tüketilmesine veya tüketilip tüketilmediğinin kontrol edilmesine olanak tanıyan deneysel API'ler eklendi. (I2e59d)
- İmleci veya seçim tutamaçlarını metin alanlarının içine sürüklerken büyüteç widget'ı gösterin. (I5391e, b/203781358)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde metin tutamaçlarının hareket etmemesi sorunu 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 yayınlandı. 1.1.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
- LazyVerticalGrid'e yatay aralıklar için destek eklendi. (I7e2fa, b/176758183)
Lazy listelerdeki öğe konumlarını canlandırma için deneysel bir özellik eklendi. LazyItemScope içinde
Modifier.animateItemPlacement()adlı yeni bir değiştirici kullanıma sunuldu. 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.itemveyaLazyListScope.itemsaracılığıyla bir anahtar sağladığınızda bu değiştirici, öğelerin yeniden sıralanmasıyla ilgili animasyonları etkinleştirir. Öğe yeniden sıralama dışında, düzenleme veya hizalama değişiklikleri gibi etkinliklerden kaynaklanan diğer tüm konum değişiklikleri de animasyonlu olacaktır. (I59e7b, b/150812265)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.foundation:foundation:1.1.0-beta02 ve androidx.compose.foundation:foundation-layout:1.1.0-beta02 yayınlandı. 1.1.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Artık dalgalanmalar ve diğer göstergeler, her zaman bir kesinti etkinliği için gecikmek yerine yalnızca bir
Modifier.scrollable()kapsayıcısının içindeyse gecikecek. (Ibefe0, b/203141462) - Öğeleri görüntülemek için kaydırma yapmaları amacıyla ebeveynlere istek göndermenize olanak tanıyan deneysel BringIntoView API'si eklendi (Ib918d, b/195353459).
Harici Katkı (External Contribution)
Modifier.pointerHoverIconeklendi (I95f01)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.foundation:foundation:1.1.0-beta01 ve androidx.compose.foundation:foundation-layout:1.1.0-beta01 yayınlandı. 1.1.0-beta01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Öğeleri görüntülemek için kaydırma yapmaları amacıyla ebeveynlere 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 yayınlandı. 1.1.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Daha verimli çalışan, Layout için alt öğe içermeyen bir aşırı yükleme eklendi (Ib0d9a).
SemanticsNodeInteraction.performSemanticsActionartık işlevin çağrıldığıSemanticsNodeInteractiondeğerini döndürüyor. (I9e5db)- Kaydırılabilir bir kapsayıcıyı, verilen eşleştirici tarafından eşleştirilen içeriğe kaydıran
performScrollToNode(matcher: SemanticsMatcher)işlevi eklendi. (Ic1cb8)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha05 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha05 yayınlandı. Version 1.1.0-alpha05 contains these commits.
API Değişiklikleri
- PointerEventChange'e deneysel geçmiş işaretçileri eklendi. (Ic1fd8, b/197553056, b/199921305)
Hata Düzeltmeleri
- Kaydırma açısından kaydırılabilir öğeler (hem geç hem de geç olmayan) için erişilebilirlik desteği düzeltildi (I6cdb0).
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha04 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha04 yayınlandı. 1.1.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
performTouchInputveTouchInjectionScopeile değiştirilenperformGestureveGestureScopekullanımdan kaldırıldı. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için
touchBoundsInRootileSemanticsNodearasına minimum dokunma hedefi boyutunu içerentouchBoundsInRooteklendi. (I2e14b, b/197751214)
Hata Düzeltmeleri
- Android 12 cihazlarda esnek kaydırma desteği eklendi. (Iccf3c, b/171682480)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha03 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha03 yayınlandı. 1.1.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Compose
1.1.0-alpha03, Kotlin1.5.30'e bağlı olacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Kaydırma için parıltı efekti eklendi. Aşırı kaydırma görsel efektinin yapılandırılmasına olanak tanıyan yeni deneysel OverScrollConfiguration API'si eklendi. Kaydırma sonu efektini kapatmak için null değerini girin. (I0c304, b/171682480)
- AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() işlevlerine sahip (I507f0, b/179239764, b/182397793)
- Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)
- Erişilebilirliği sağlamak için semantik ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.foundation:foundation:1.1.0-alpha02 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha02 yayınlandı. 1.1.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
Modifier.sizeverequiredSizeiçin DpSize sürümleri eklendi (I3fc7e, b/194219828)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.foundation:foundation:1.1.0-alpha01 ve androidx.compose.foundation:foundation-layout:1.1.0-alpha01 yayınlandı. 1.1.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- İsteğe bağlı bir FilterQuality parametresini kullanmak için kaynak ve hedef dikdörtgenleri kullanan
DrawScope#drawImageyöntemi güncellendi. Bu, piksel tabanlı sanat için büyütüldüğünde pikselli olması amaçlanan piksel sanat için kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607) - TextField artık geri düğmesine basıldığında seçimi temizliyor. Bu, Android EditText davranışıyla eşleşiyor. (I3ca16, b/174173645)
- İmleç tutma yeri ekleyin. (I07a82, b/173016579)
Hata Düzeltmeleri
- Temel listeler ve normal kaydırma bileşenleri için semantik işlemler aracılığıyla kaydırma artık animasyonlu (Id9066, b/190742024)
Harici Katkı (External Contribution)
LazyVerticalGridartık hem yatay hem de dikey düzenleme parametrelerini kabul ediyor. (If9c92)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.foundation:foundation:1.0.5 ve androidx.compose.foundation:foundation-layout:1.0.5 yayınlandı. 1.0.5 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Türetilmiş durum örneklerinin izlenmesi sırasında yaşanan kilitlenme 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 yayınlandı. 1.0.4 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31'ya bağlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.foundation:foundation:1.0.3 ve androidx.compose.foundation:foundation-layout:1.0.3 yayınlandı. 1.0.3 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30'ya bağlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.foundation:foundation:1.0.2 ve androidx.compose.foundation:foundation-layout:1.0.2 yayınlandı. 1.0.2 sürümü şu commit'leri içerir.
Compose 1.0.2 sürümünü destekleyecek şekilde güncellendi. Compose 1.0.2, Kotlin 1.5.21 ile uyumluluğunu sürdürüyor.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.foundation:foundation:1.0.1 ve androidx.compose.foundation:foundation-layout:1.0.1 yayınlandı. 1.0.1 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21'ya bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0 ve androidx.compose.foundation:foundation-layout:1.0.0 yayınlandı. 1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümündeki başlıca özellikler
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Release bloguna göz atın.
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04/7.1.0-alpha05kullanıyorsanız aşağıdaki kilitlenmeyle karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"Düzeltmek için
build.gradledosyanızda minSdkVersion'ı geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin bir sonraki sürümünde düzeltilecektir7.1. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0-rc02 ve androidx.compose.foundation:foundation-layout:1.0.0-rc02 yayınlandı. 1.0.0-rc02 sürümü şu commit'leri içerir.
- Sabit boyutlarla tanımlanan yollarla ilgili sorunları gidermek için genel şekillerin kenarlık oluşturma işlemi güncellendi. (aosp/1748871, b/191817116)
Sürüm 1.0.0-rc01
1 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0-rc01 ve androidx.compose.foundation:foundation-layout:1.0.0-rc01 yayınlandı. 1.0.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Canvas artık erişilebilirlik için contentDescription parametresini destekliyor. (Ib547c)
Hata Düzeltmeleri
- Devre dışı bırakılmış 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 yayınlandı. 1.0.0-beta09 sürümü şu commit'leri içerir.
API Değişiklikleri
ManualFrameClockkaldırıldı. Animasyonları kontrol etmeniz gerekiyorsacomposeTestRule.mainClockkullanın. (I3c3e8, b/189951065)- enum Role ve LiveRegionMode'u özel oluşturucuya (Id1890) sahip satır içi sınıflara değiştirme
- KeyboardCapitalization, satır içi sınıfa dönüştürülür. (Id5a1c)
- TextOverflow, satır içi sınıfa dönüştürüldü. (I433af)
Hata Düzeltmeleri
- Artık LazyColumn/Row öğeleri için benzersiz anahtarları belirttiğinizde kaydırma konumu anahtara göre korunacak. Bu da mevcut görünür öğeden önce öğe ekleyip kaldırdığınızda, verilen anahtara sahip öğenin ilk görünür öğe olarak kalacağı anlamına geliyor. (Id263f, b/184257857)
- Şimdilik temel sabitler @ExperimentalComposeUiApi'dir. Kod tüketenler, kararlılık öncesinde özel sabitler bildirebilir. (Ia5d48)
- AndroidComposeTestRule'a, test çerçeveleri tarafından bekleme veya sessizliği sağlama için alternatif bir mekanizma yüklemek üzere kullanılabilecek IdlingStrategy eklendi. Kendi stratejinizi oluşturmak için testiniz başlamadan önce
AndroidComposeTestRule.setIdlingStrategyFactory()kullanın. (I608fa)
Eklenen profil kuralları
Bu sürüm, aşağıdaki Compose modüllerine profil kuralları ekler (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığın profil kuralları,
src/mainveya eşdeğer dizinde bulunan bir metin dosyasındabaseline-prof.txtbelirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşme için kullanılan 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ı ise aşağıdaki kalıba sahip olur:
<CLASS_DESCRIPTOR>Burada
<FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için kullanılanH,SvePkarakterlerinden bir veya daha fazlasıdır.<CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin,androidx.compose.runtime.SlotTablesı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önüş türlerini içerir. Örneğin,LayoutNodeüzerindekifun isPlaced(): Booleanyönteminin imzasıisPlaced()Z'dir.Bu kalıplar, tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için joker karakterler (
**,*ve?) içerebilir.
Kurallar ne işe yarar?
Hişaretine sahip bir yöntem, bu yöntemin "sık kullanılan" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.Sişaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir. Bu yöntemin, başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.Pişaretine sahip bir yöntem, başlatma işleminden 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 maliyetini önlemek için yığında önceden ayrılması gerektiğini gösterir.
Nasıl çalışır?
- Kitaplıklar, AAR yapıtlarında paketlenecek bu kuralları tanımlayabilir. Bu yapıtları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özgü kompakt bir ikili ART profili oluşturmak için kullanılır. ART, uygulamanın performansını (özellikle ilk çalıştırma) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek üzere uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bunun hata ayıklanabilir uygulamaları etkilemeyeceğini unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.foundation:foundation:1.0.0-beta08 ve androidx.compose.foundation:foundation-layout:1.0.0-beta08 yayınlandı. 1.0.0-beta08 sürümü şu commit'leri içerir.
API Değişiklikleri
- NestedScrollSource enum'unun yerini satır içi sınıf aldı. (Ie321b, b/187055290)
- Yeni enum değerleri eklendiğinde kapsamlı when ifadeleriyle ilgili sorunları önlemek için enum kullanımları satır içi sınıflara yeniden düzenlendi. (I2b5eb)
- Kaydırma / sürükleme sırasında dalgalanma gösterilmesini önlemek için tıklanabilir / açılıp kapatılabilir öğelere dokunma zaman aşımı ekler (Ia2704, b/168524931)
- ContentDescription ve Text semantik özellikleri artık tek değer değil, liste olarak kullanılıyor. Bu sayede, birleştirme yerine olduğu gibi birleştirme yapılabilir. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850).
Modifier.focusModifier()desteği sonlandırıldı veModifier.focusTarget()(I6c860) ile değiştirildi.- KeyboardType enum'unun yerini satır içi sınıf alıyor. (I73045, b/187055290)
FocusStatenumaralandırması,FocusStatearayüzüyle (Iccc1a, b/187055290) değiştirildi.- ImeAction enum'ının yerini satır içi sınıf aldı. (I18be5, b/187055290)
AnnotatedString.withAnnotationişlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak kullanılıyor. (I0cd0a)- TextUnitType ile TextUnit oluşturucusu artık ExperimentalComposeApi yerine ExperimentalTextApi olarak kullanılıyor.
- PaddingValues artık
@Immutableyerine@Stable(I88c50)
Hata Düzeltmeleri
- Boş olmayan metinde boş alanı uzun basma sırasında yaşanan kilitlenme sorunu düzeltildi. (I33ab5, b/187437299)
- Tümünü Seç'ten sonra araç çubuğunu gösterme (I495d9, b/185919613)
- Kaydırılabilir kapsayıcıların, alt öğelerini çapraz eksende kırpması sorunu düzeltildi. Card öğeleri içeren bir LazyRow'unuz varsa kolayca yeniden üretilebiliyordu. Artık gölge kırpılmayacak. (Icb635, b/186318448)
- Modifier.combinedClickable kullanılırken bazen dalgalanmaların / diğer göstergelerin uzun tıklamada takılmasına neden olan sorun düzeltildi (I2298c, b/186223077).
- Artık
detectDragGesures,detectVerticalGesturesvedetectHorizontalGestures, konum değişikliğini otomatik olarak kullanacak. onDrag geri çağırma işlevlerinde change.consumePositionChange'i çağırmanıza gerek kalmayacak (I42fc4, b/185096350, b/187320697). Modifier.onGloballyPositioned(), tüm değiştiriciler uygulandıktan sonraki düzen koordinatlarını değil, bu değiştiricinin değiştirici zincirindeki koordinatlarını raporlayacak şekilde değiştirildi. Bu nedenle, artık değiştiricilerin sıralaması hangi koordinatların raporlanacağını etkiliyor. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.foundation:foundation:1.0.0-beta07 ve androidx.compose.foundation:foundation-layout:1.0.0-beta07 yayınlandı. 1.0.0-beta07 sürümü şu commit'leri içerir.
API Değişiklikleri
- LazyColumn/Row için sonraki görünür öğeyi önceden getirme mantığı kullanıma sunuldu (I8a4bc, b/184940225)
- Klip seçimi tutma kolu eklendi (Iff80d, b/183408447)
Hata Düzeltmeleri
- LazyColumn/Row, kaydırılarak görünürlükten çıkmış olsa bile daha önce görünür olan 2 öğeyi etkin (kaldırılmamış) tutar. Bu sayede, yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt bileşenleri yeniden kullanmasına olanak tanınır. Bu da kaydırma performansını artırır. (Ie5555)
- paintBackground'u kaldırın. (I38660)
- DrawScope kullanarak seçim arka planı çizin. (I73c61, b/186674472)
- Ağırlıklı alt öğeleri yerleştirmek için spacedBy düzenlemelerini 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 yayınlandı. 1.0.0-beta06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Gezinme Hareketiyle Çakışmayı Çözme (I1145e)
- Koleksiyonun ve öğelerinin erişilebilirlik hizmetleri için işaretlenmesine olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017).
- Dizinlenmiş öğeler içeren bir listede belirli bir dizine sahip öğeye gitmek için
SemanticsActions.ScrollToIndex, anahtarlı öğeler içeren bir listede öğenin dizinini almak içinSemanticsProperties.IndexForKeyeklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirli bir dizine kaydıran
SemanticsNodeInteraction.performScrollToIndexve bir listeyi belirli bir anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKeyişlevi eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirli bir dizine kaydıran
- AnnotatedString'in TextFieldValue.Saver'a kaydedilmesi desteği. AnnotatedString.Builder'a addTtsAnnotation ve withAnnotation yardımcı işlevleri eklendi (I8cbdc, b/178446304)
0.dpvarsayılan parametre değerleriPaddingValues(horizontal, vertical)'ye eklendi (I05571, b/181336792)
Hata Düzeltmeleri
weight(fill = false)ile satır ve sütun alt öğeleri artık üst öğenin kullanılabilir ana eksen alanının tamamını doldurmasına neden olmuyor. (Ied94d, b/186012444, b/184355105)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.foundation:foundation:1.0.0-beta05 ve androidx.compose.foundation:foundation-layout:1.0.0-beta05 yayınlandı. 1.0.0-beta05 sürümü şu commit'leri içerir.
API Değişiklikleri
- FlingBehavior arayüzü artık @Stable olarak işaretleniyor. Tüm uygulamalar
@Stablesözleşmesine uygun olmalıdır. (I93354, b/184830577)
Hata Düzeltmeleri
ACTION_SCROLL_FORWARD,ACTION_SCROLL_BACKWARD,accessibilityActionScrollLeft,accessibilityActionScrollUp,accessibilityActionScrollRightveaccessibilityActionScrollDownerişilebilirlik kaydırma işlemleri düzeltildi. Kaydırılabilir alanın sonuna kaydırmak yerine, artık belirtilen yönde bir ekran kaydırılacak. (Ieccb0)- ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 ile uyumlu (I6f9de, b/184718994)
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.foundation:foundation:1.0.0-beta04 ve androidx.compose.foundation:foundation-layout:1.0.0-beta04 yayınlandı. 1.0.0-beta04 sürümü şu commit'leri içerir.
API Değişiklikleri
- hideSoftwareKeyboard ve showSoftwareKeyboard işlevlerini SoftwareKeyboardController'da sırasıyla
hide()veshow()olarak yeniden adlandırın.- LocalSoftwareKeyboardController için CompositionLocal arayüzünün tamamını sağlayarak ayarlanmasına olanak tanır (özellikle testlerde kullanışlıdır) (I579a6)
TextOverflow.Visiblekullanıma sunuluyor. (Ic8f89)RowScope,ColumnScope,BoxScope,BoxWithConstraintsScopeuygulamalarının herkese açık örnekleri kaldırıldı. (I4e83e, b/181869067)
Hata Düzeltmeleri
- Kenarlarda bulunan
LazyColumn/LazyRowöğelerinin hızlıca fırlatıldıktan sonra yanlış konumlandırılması sorunu düzeltildi (Ie4d13, b/183877420). Bu değişiklikten önce, yerel composable işlevler parametrelerine göre atlanabiliyordu. Bu değişiklikten sonra hiçbir yerel composable işlevi atlanmayacak. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri alması ve bunların atlanmasının yaygın bir hata kaynağı olması nedeniyle yapılmıştır.
Özetlemek gerekirse şu örneği inceleyin:
@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,
ShowCountcomposable işlevi,countparametresi güncellendikten sonra bile her zaman atlanıyordu. Bu durum artık geçerli değil. (I5648a)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.foundation:foundation:1.0.0-beta03 ve androidx.compose.foundation:foundation-layout:1.0.0-beta03 yayınlandı. Version 1.0.0-beta03 contains these commits.
API Değişiklikleri
DefaultMonotonicFrameClockdesteği sonlandırıldı.withFrameNanosveyaRecomposer.runRecomposeAndApplyChangesileMonotonicFrameClockolmadan yapılan aramalar artıkIllegalStateExceptionhatası verecek. (I4eb0d)
Hata Düzeltmeleri
- Hız 0 olduğunda bile artık
FlingBehavior.performFling()çağrılıyor (I0b6e5, b/181237123)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.foundation:foundation:1.0.0-beta02 ve androidx.compose.foundation:foundation-layout:1.0.0-beta02 yayınlandı. 1.0.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- LazyColumn ölçüm mantığına birden fazla küçük optimizasyon eklendi (Ic6889)
- TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardControllercomposition local API'si eklendi. (I5951e, b/168778053) - TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni
LocalSoftwareKeyboardControllercomposition local API'si eklendi. (I84472, b/168778053)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımına kısıtlamalar getirme (I6aa29, b/174531520)
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.foundation:foundation:1.0.0-beta01 ve androidx.compose.foundation:foundation-layout:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü şu commit'leri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- onStart geri çağırması
detectDragGestures'ya eklendi (I67269, b/179995594) - İçerik boyutlandırma değiştiricileri artık deneysel değildir. (I15744)
- Kaldırılan dp onayları (I798d2)
- Yakında yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma işlevi tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
- MeasureBlocks, MeasurePolicy olarak yeniden adlandırıldı ve eğlenceli bir arayüze dönüştürüldü. Düzen API'leri, MeasurePolicy'yi kullanacak şekilde güncellendi / basitleştirildi. (Icab48, b/167662468, b/156751158)
InteractionState,[Mutable]InteractionSourceile değiştirildi- Arayüzler, etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
ButtonveModifier.clickable()gibi bileşenlereinteractionState = remember { InteractionState() }iletmek yerineinteractionSource = remember { MutableInteractionSource() }kullanın.- Şunun yerine:
Interaction.Pressed in interactionStateBunun yerine InteractionSource'taki InteractionSource.collectIsPressedAsState() gibi uzantı işlevlerini kullanmanız gerekir. - Karmaşık kullanım alanlarında, etkileşim akışını gözlemlemek için InteractionSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerine ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için özellik yerine işlev kullanın (I580ed, b/169874631, b/175142755).
- CoreTextField gibi düşük düzeyli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- Placeable artık, alt düzenin ölçtüğü boyutu temsil eden measuredSize'ı kullanıma sunuyor. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla Sekmeler veya Radyo Düğmeleri koleksiyonunun işaretlenmesine olanak tanıyan selectionGroup değiştiricisini ekleyin (Ie5c29).
LazyListState.animateScrollToItem işlevini ekleyin
Bu yöntem, listedeki belirli bir öğeye sorunsuz bir şekilde kaydırma işlemi yapar. (I4bfd7)
ScrollableState.smoothScrollBy() işlevi animateScrollBy() olarak yeniden adlandırıldı. LazyListState.snapToItemIndex() işlevi scrollToItem() olarak yeniden adlandırıldı. ScrollState.smoothScrollTo() işlevi animateScrollTo() olarak yeniden adlandırıldı (I35ded).
Modifier.zoomable, Modifier.transformable ile değiştirildi. smoothPanBy ve smoothRotationBy işlev olarak eklendi. (Ifc32b, b/175294473)
compositionLocalOfvestaticCompositionLocalOfiçindefaultFactoryartık isteğe bağlı değil, zorunlu.Bu değişiklik, varsayılan fabrika sağlanmayan, boş değer atanamayan türlerdeki olası bir tür hatasını ortadan kaldırır. Daha önce bu, null yapılamayan bir tür için null referans sağlıyordu.
Boş değer atanabilir türler için varsayılan fabrika olarak
{ null }değerini sağlamayı düşünebilirsiniz.Anlamlı bir varsayılan değer sağlanmadığı sürece, null değer içermeyen türlerle yerel ayarların kullanılmasını önermiyoruz. Mantıklı bir varsayılan değer yoksa
defaultFactorylambda'sı istisna oluşturmalıdır. Ancak bir istisna oluşturmak, yerel ayarın tüketicilerinin, tür sistemi tarafından zorunlu kılınmayan bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Indication#createIndication(),Indication#rememberUpdatedIndication(InteractionState)olarak değiştirildi veInteractionStateparametresi IndicationInstance#drawIndication()'den kaldırıldı. IndicationInstance yalnızca görsel efektleri çizmekten sorumludur ve InteractionState değişikliklerine yanıt olarak animasyon başlatmaktan / durum yazmaktan sorumlu değildir. Bu animasyonlar ve durum yazma işlemleri bunun yerinerememberUpdatedIndication()içinde gerçekleşmelidir.Modifier.indicationiçindekiindicationparametresi de zorunlu parametre olarak değiştirildi. (Ic1764, b/152525426)Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
Kaldırıldı
runBlockingWithManualClock(I15cdc, b/179664814)Modifier.verticalScroll()/horizontalScroll() içindeki kaydırma konumu artık Int'lerle temsil ediliyor (I81298)
smoothScrollBy ve scrollBy yöntemlerinin paketleri
androidx.compose.foundation.gestures.*olarak değiştirildi (I3f7c1, b/175294473)FlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)
Boyut değiştiricilerin adı değiştirildi. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
defaultMinSizeConstraints, defaultMinSize olarak yeniden adlandırıldı. (I4eaae)
Modifier.tapGestureFilter kaldırıldı. Bunun yerine
Modifier.pointerInput { detectTapGestures(...) }politikasını kullanın. (I266ed, b/175294473)Kısmi tüketim, işaretçi giriş sisteminden kaldırıldı. Kısmi tüketimi koordine etmenin önerilen yolu Modifier.nestedScroll'dur. (Ie9c9b)
Orientation, temel pakete taşındı. VelocityTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)
AnimationClockObservable ve alt sınıfları kaldırıldı. AnimatedFloat kaldırıldı. (Icde52, b/177457083)
drawerState.open() ve drawerState.close() artık askıya alma işlevleridir. Bunları çağırmak için kompozisyonun kapsamını almak üzere rememberCoroutineScope() işlevini kullanın (I16f60, b/175294473).
Providers, CompositionLocalProvider olarak yeniden adlandırıldı.
- Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
- ComposableLambdaN, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri yok.
- snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
@TestOnlyÜst düzey clearRoots işlevi kaldırıldı. Artık gerekli değil.- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
- isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
- Çeşitli üst düzey API'ler farklı dosyalara taşındı ve yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu durum, kaynak uyumluluğunu değil ikili uyumluluğu bozacaktır. Bu nedenle, çoğu kullanıcı için sorun teşkil etmez.
- (I99b7d, b/177245490)
Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanılıyor (I4f5a5, b/174485541, b/175294473).
Modifier.draggable artık basit bir lambda yerine DraggableState'i kabul ediyor.
rememberDraggableState { delta -> }ile durum oluşturarak eskisiyle aynı davranışı elde edebilirsiniz (Ica70f, b/175294473).requiredWidth(IntrinsicSize) ve requiredHeight(IntrinsicSize) değiştiricileri, gerekli boyutlandırma için içsel boyutlara eklendi. (I0a6b4)
Artık kullanılmayan
emptyContent()kaldırıldı. Bunun yerine{}politikasını kullanın. (Idb33f, b/179432510)Daha önce desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932).
Hata Düzeltmeleri
- TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.foundation:foundation:1.0.0-alpha12 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha12 yayınlandı. 1.0.0-alpha12 sürümü şu commit'leri içerir.
API Değişiklikleri
- Modifier.pointerInput artık işaretçi girişi algılama coroutine'inin yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek üzere remember anahtarları gerektiriyor. (I849cd)
- Test güncellemesi: hasText(), metin alanındaki hem giriş hem de etiket/ipucu/yer tutucu metinleri kontrol edecek (Iab803)
- PaddingValues.Absolute eklendi ve PaddingValues'u kabul eden API'lerde kullanılabilir. (Ia5f30)
- onImeActionPerformed kullanımdan kaldırıldı. Bunun yerine KeyboardActions kullanılmalıdır (If0bbd, b/179071523).
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Alt dizeyi artık bağımsız değişken olarak kullanan daha iyi alt dize testi API'leri (Icbe78)
- Sonsuz animasyonlarda uygulanacak bir
InfiniteAnimationPolicycoroutine bağlamı öğesi eklendi.ComposeTestRuleile testler çalıştırılmadığı sürece varsayılan olarak politika yüklenmez. (I50ec4, b/151940543) - Animatable.snapTo ve Animatable.stop artık askıya alma işlevleridir (If4288)
- ComponentActivity.setContent, androidx.activity:activity-compose modülünde androidx.activity.compose.setContent'e taşındı. (Icf416)
- Destructuring ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
LazyColumn/LazyRow için özel anahtar desteği eklendi. Bu sayede öğelerin yeniden sıralanmasını daha akıllıca yönetebiliriz. Bu nedenle, remember {} bloklarında depoladığınız durum, öğeleri yeniden sıraladığınızda veya öğeyi ortadan kaldırdığınızda öğeyle birlikte taşınır.
LazyColumn { items(users, key = { user -> user.id }) { ... } }Indication#createInstance, @Composable olacak şekilde değiştirildi ve LocalIndication, () -> Indication değil, bir Indication içerecek şekilde değiştirildi. (I5eeea, b/157150564)
Constraints.enforce,Constraints.constrainile değiştirildi. (I8b8ea)loadFontResource kullanımdan kaldırıldı. Bunun yerine fontResource'u kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
Performans nedenleriyle, ScrollAxisRange semantiği artık doğrudan Float değerleri yerine Float döndüren lambda'ları alıyor. (If4a35, b/178657186)
Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantiği ve semantiği kontrol etmek için ilgili test yöntemleri eklendi (I8e07a).
Modifier.clickable artık çift tıklama ve uzun tıklama desteğine sahip değil. Bu işlevi kullanmak için Modifier.combinedClickable'ı kullanın. (Iafad1)
toIntPx() işlevinin adı roundToPx() olarak değiştirildi. (I9b7e4, b/173502290)
IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
Modifier.dragGestureFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}politikasını kullanın. Alternatif olarak, tek eksenli sürüklemeler için Modifier.draggable kullanın (I0ba93, b/175294473)Ambients, Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Ambients, AmbientFoo olarak adlandırılırdı. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
Seçim, temel katmana taşındı. (I7892b)
Daha önce
state { 0 }composable'ı kaldırıpremember { mutableStateOf(0) }gibi kullanımları desteklediğimiz gibi,savedInstanceState { 0 }composable'ı da kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }kullanmanız gerekir. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa bu tür otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir kaydedici nesne iletiyorsanız artıkstateSaverparametresine sahip yeni bir rememberSaveable 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 semantiği eklendi (I231ce)
Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05).
Animasyondaki oynatma süresi artık nanosaniye cinsinden (If776a)
@ComposableContract, üç daha spesifik ek açıklama lehine kullanımdan kaldırıldı.
@ComposableContract(restartable = false),@NonRestartableComposableoldu.@ComposableContract(readonly = true),@ReadOnlyComposableoldu.@ComposableContract(preventCapture = true),@DisallowComposableCallsoldu.@ComposableContract(tracked = true)kaldırıldı. (I60a9d)emptyContent()ve(@Composable () -> Unit).orEmpty()yardımcı programlarının artık olumlu bir performans etkisi veya değeri olmadığından desteği sonlandırıldı (I0484d).Yeniden oluşturucular artık kapatılabilir. Kapalı yeniden oluşturucular, alt coroutine'ler tamamlanana kadar yeniden oluşturmaya devam eder. Recomposer.shutDown, kapatma ile karşıtlık oluşturması için iptal olarak yeniden adlandırıldı. (Ib6d76)
LazyVerticalGrid ile ilgili API'ler deneysel olarak işaretlendi (Ia53e3, b/178519862)
rememberSavedInstanceState() işlevinin adı rememberSaveable() olarak değiştirildi 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ı. Inner method RestorableStateProvider, SaveableStateProvider olarak yeniden adlandırıldı. Genel tür kaldırıldı. Artık anahtar olarak Any'yi iletebilirsiniz. Deneysel ek açıklama artık gerekli değil. (I0902e, b/174598702)
Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate'ten androidx.compose.runtime.saveable'a taşındı (I77fe6).
Artefact androidx:compose:runtime:runtime-saved-instance-state, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac).
ui paketindeki desteği uzun süredir sonlandırılmış birçok API silindi. (I2f2dc)
compose:runtime-dispatch yapısı artık kullanımdan kaldırıldı. MonotonicFrameClock artık compose:runtime içinde, AndroidUiDispatcher ise compose:ui içinde bulunabilir. (Ib5c36)
RounderCornerShape, CutCornerShape ve CornerBasedShape üzerindeki parametreler, şeklin rtl yönünde otomatik olarak yansıtılmasını desteklemek için soldan/sağdan başlayarak/biterek yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlarda AbsoluteRounderCornerShape ve AbsoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
canDrag, Modifier.scrollable'dan kaldırıldı. (Id66e7, b/175294473)
Compose derleyici eklentisinin hedeflediği API, somut bir sınıf yerine arayüz kullanacak şekilde yeniden düzenlendi. Arayüzde artık tür parametresi de kullanılmıyor.
Bu, kaynak kodu uyumluluğunu etkilememesi gereken ancak ikili uyumluluğu bozan bir dahili değişikliktir. (I3b922, b/169406779)
Modifier.scaleGestureFilter kaldırıldı. Bunun yerine Modifier.zoomable kullanın. Alternatif olarak
Modifier.pointerInput { detectMultitouchGestures { ... }}(Id5da1, b/175294473) kullanın.AnimatedValue/Float desteği sonlandırıldı. Lütfen bunun yerine Animatable'ı kullanın. (I71345, b/177457083)
- CoreText ve CoreTextField, herkese açık API'den kaldırıldı.
- Desteği sonlandırılan SelectionContainer aşırı yüklemesi kaldırıldı (I99c19)
Kullanımdan kaldırılan, kaydırmayı durdurmayan işlevler kaldırıldı. Son sürümdeki değişikliklere devam edilerek, kaydırmayı durdurmayan işlevler tamamen kaldırıldı. Lütfen aynı ada sahip askıya alma işlevlerine dönüştürün. Eş yordam kapsamı, rememberCoroutineScope() ile elde edilebilir. (I3d39c, b/178169563)
androidx.compose.foundation.layout.ConstraintLayout, androidx.constraintlayout.compose.ConstraintLayout lehine kullanımdan kaldırıldı.
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01için bağımlılık eklemeniz gerekir. (I87adc)tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.clickable veya Modifier.pointerInput ile detectTapGestures işlevini kullanın. (I6baf9, b/175294473)
Recomposer.current()kaldırıldı. [Abstract]ComposeView artık pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, pencere kapsamlı ve geç oluşturulan Recomposer'ları varsayılan olarak kullanıyor. Ana makinenin yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon işaretleri duraklatılır. (I38e11)Recomposer.runningRecomposers artık süreçteki devam eden kompozisyon durumunu gözlemlemek için salt okunur RecomposerInfo'nun genel bir StateFlow'unu sunuyor. Şu anda kullanımdan kaldırılmış olan Recomposer.current() yerine bu API'yi tercih edin. (If8ebe)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.foundation:foundation:1.0.0-alpha11 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha11 yayınlandı. 1.0.0-alpha11 sürümü şu commit'leri içerir.
API Değişiklikleri
Askıya alınmayan scrollBy işlevini kullanımdan kaldırma, askıya alınmayan scrollTo işlevini kaldırma
Artık kaydırmayı kontrol etmek ve kaydırmanın tamamlanmasını beklemek için askıya alma işlevlerini kullanmanızı öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alma dışı sürümlerinin desteğini sonlandırıyoruz ve/veya bu sürümleri kaldırıyoruz. (Ie9ced)
Askıya alınmayan smoothScrollBy işlevini kullanımdan kaldırma Artık kaydırmayı kontrol etmek ve kaydırmanın tamamlanmasını beklemek için askıya alma işlevlerinin kullanılmasını öneriyoruz. Bu geçiş kapsamında, bu işlevlerin askıya alma içermeyen sürümlerinin desteğini sonlandırıyoruz. (I12880)
Resim ve simgeye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c).
BasicTextField, "decorationBox" adlı yeni bir parametre aldı. Bu özellik, metin alanına simge, yer tutucu, etiket gibi süslemeler eklemenize ve dokunma hedef alanını büyütmenize olanak tanır. (I16996)
canDrag parametresi, Modifier.draggable'dan kaldırıldı (Ic4bec, b/175294473).
FlingConfig'i kabul eden AnimatedFloat.fling kaldırıldı. Lütfen bunun yerine suspend Animatable.animateDecay kullanın. (I4659b, b/177457083)
data classadlı öğretmen aşağıdaki sınıflardan kaldırıldı:- InlineTextContent
- LocaleList
- (I605c7)
Tıklanabilir, açılıp kapatılabilir ve seçilebilir öğeler artık kompozisyon dışında oluşturulabilir (I0a130, b/172938345, b/175294473).
ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn'da yalnızca görünür öğeleri oluşturup/ölçüp/çizebildiğimiz için, kaydırılabilir çok fazla içeriğiniz olduğunda ScrollableColumn kullanmak LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanılmasını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)fabrika yöntemi.items(items: List)veitemsIndexed(items: List)artık uzantı işlevleri olduğundan kullanıldıklarında manuel olarak içe aktarılmaları gerekir. Diziler için yeni uzantı aşırı yüklemeleri: items(items: Array) ve itemsIndexed(Array) (I803fc, b/175562574)Kullanımdan kaldırılan AbsoluteArrangement kaldırıldı. (Iffa96, b/177641870)
Gelen minimum kısıtlamaların Box'ın içeriğine aktarılıp aktarılmayacağını belirtmek için Box'a propagateMinConstraints parametresi eklendi. Varsayılan değer yanlış (false) değeridir. (I0125b, b/152613457)
Hata Düzeltmeleri
- onCommit, onDispose ve onActive, SideEffect ve DisposableEffect API'leri lehine desteği sonlandırıldı (If760e).
- WithConstraints, BoxWithConstraints olarak yeniden düzenlendi ve foundation.layout'a 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
- İlk harfleri küçük olan önceki fabrika işlevlerinin desteği sonlandırıldı
- Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürüyor
- Alt sınıfların oluşturucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulabilmelerini sağlayın.
- Font.asFontFamily işlevinin adı Font.toFontFamily olarak değiştirildi.
- (I42aa7)
ComposeContentTestRuletanıtıldı. Bu,ComposeTestRuleöğesini genişletir veComposeTestRuleöğesinden kaldırılansetContentöğesini tanımlar.createEmptyComposeRule()döndüren ve sizin için bir Etkinlik başlatmayan bir fabrika yöntemicreateEmptyComposeRule()eklendi.ComposeTestRuleTestiniz sırasında Etkinliğinizi başlatmak istediğinizde kullanın. Örneğin,ActivityScenario.launch(I9d782, b/174472899) kullanmaanimateAsState artık animateFooAsState olarak adlandırılıyor. Burada Foo, animasyon uygulanan değişkenin türünü (ör. Float, Dp, Offset vb.) ifade ediyor (Ie7e25).
Yoğunluk artık Düzenleme arayüzleri için alıcı kapsamındadır. (I18aad)
TextFieldValue, AnnotatedString'i kabul eder. Ancak bu değişiklik yalnızca API'de geçerlidir ve çok stilli metin düzenleme henüz uygulanmamıştır.
- EditingBuffer oluşturucu parametrelerinden
initialkaldırıldı. (I326d5)
- EditingBuffer oluşturucu parametrelerinden
invalidate ve compositionReference() işlevlerinin desteği, sırasıyla currentRecomposeScope ve rememberCompositionReference lehine sonlandırıldı. (I583a8)
AnnotatedString, kotlin.CharSequence'den genişletilecek şekilde değiştirildi. Bu nedenle, length ve subSequence artık örnek işlevler, uzantı işlevleri ise kaldırıldı. (Iaf429)
Süre ve Çalışma Süresi, uzun milisaniye ile değiştirilecek. Bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldırır. (Ia33b2, b/175142755, b/177420019)
RememberObserver, CompositionLifecycleObserver'ın yerini alıyor ve CompositionLifecycleObserver artık kullanımdan kaldırıldı.
RememberObserver, değiştirilmiş anlamlara ve yeniden adlandırılmış yöntemlere sahipCompositionLifecycleObserveryerine kullanılabilir. Yalnızca bir kez hatırlanan nesneler için yeni API'ye geçiş mekanik olarak yapılabilir. Bu, önerilen uygulamadır ve olmaya devam edecektir. Ancak bir kompozisyonda bir referans birden fazla kez hatırlanırsaonEnteryalnızca bir kez çağrılırkenonRememberedher referans için çağrılır.onEnterNesne,WithConstraintsveScaffoldgibi alt bileşimlerde kullanılıyorsa birden çok kez çağrılıyordu. Bu durum, tekonEnterçağrısı garantisini güvenilmez hale getiriyordu veRememberObserveriçin kaldırıldı.RememberObserver,remember'ye iletilen geri çağırmadanRememberObserverörneği döndürülürse ancak beste durumunda hatırlanmazsa çağrılanonAbandoned'ı ekler ve bu nedenle hiçbir zamanonRememberedçağrılmaz. Bu durum, bir istisna kompozisyonu tamamlamadan önce sonlandırdığında veya kompozisyon, oluşturulduğu durum artık geçerli olmadığı ya da başka bir nedenle artık gerekli olmadığı için atıldığında ortaya çıkabilir. Yukarıdaki tek referans önerisini izleyenRememberObserverörneği harici bir kaynağı izliyorsa hemonForgottenhem deonAbandoned, kaynağın artık gerekli olmadığını gösterir. Nesne,onRememberediçinde başlatılan işi veya ayrılan kaynakları izliyorsaonRememberedçağrıldığındaonAbandonedçağrılmayacağındanonAbandonedyoksayılabilir. (I02c36)TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı.
- TransformedText artık bir veri sınıfı değil (Ie672a)
Aşağıdaki sınıflar artık veri sınıfı değildir:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
Genel koordinat yöntemlerinin desteği sonlandırıldı ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)
Lütfen ImeAction.NoAction yerine ImeAction.None kullanın.
- Lütfen ImeAction.Unspecified (Ie1bcc) yerine ImeAction.Default'u 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ı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, horizontalScrollAxisRange olarak yeniden adlandırıldı. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4).
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
PointerInputData kaldırıldı ve PointerInputChange, PointerInputData'nın tüm alanlarını içerecek şekilde değiştirildi. PointerInputEvent ve PointerInputEventData, herhangi bir genel API'de kullanılmadığından dahili hale getirildi. (Ifff97, b/175142755)
TextInputService.onStateUpdated, updateState olarak yeniden adlandırıldı (Id4853)
displaySize, kaçınılması gereken bir parametre olduğundan kaldırılmalıdır. Genellikle en azından onRoot() veya pencere boyutunu kullanmak daha iyidir. (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 yayınlandı. Version 1.0.0-alpha10 contains these commits.
API Değişiklikleri
- ImeOptions ve KeyboardOptions artık veri sınıfı değil (I3c898, b/168684531)
- VisualTransformation API Değişiklikleri
- OffsetMap, OffsetMapping olarak yeniden adlandırıldı.
- OffsetMapping.identityOffsetMap, OffsetMapping.Identity olarak yeniden adlandırıldı.
- PasswordTransformation artık veri sınıfı değil
- OffsetMapping kendi dosyasına taşındı
- (I0bdf3)
- EditOperations API'sindeki Değişiklikler
- EditOperation, EditCommand olarak yeniden adlandırıldı.
- EditOperation somut uygulamaları için Command soneki eklendi
- EditCommand'ler artık veri sınıfları değil
- EditOperation.process işlevinin adı applyTo olarak değiştirildi.
- InputEventListener, InputEventCallback olarak yeniden adlandırıldı.
- (I0a366)
- Hız, bileşen parçaları ve matematiksel işlemler içerecek şekilde değiştirildi. (Ib0447)
- @ExperimentalTesting, benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olması için @ExperimentalTestApi olarak yeniden adlandırıldı.
- LazyColumn/LazyRow için deneysel stickyHeader yöntemi eklendi (I0a81d).
- Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5)
- TestUiDispatcher'ın desteği sonlandırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
- Toggle'ı foundation Strings.kt dosyasına ekleyin (I4a5b7, b/172366489)
- nativeClass'ı ui modülüne taşıyıp dahili hale getirdi. equals uygulamalarındaki nativeClass kullanımları, bunun yerine "is MyClass" kullanacak şekilde güncellendi. (I4f734)
- FlowRow ve FlowColumn'un desteği sonlandırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
- Modifier.focus() ve Modifier.focusRequester() kullanımdan kaldırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
- Seçilebilir öğelerdeki güncellemeleri SelectionManager'a bildirmek için SelectionRegistrar.notifySelectableChange işlevi kullanıma sunuldu. (I6ff30, b/173215242)
fun Dp.isFinite(),val Dp.isFiniteolarak değiştirildi (I50e00)- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Unspecified sabiti olan satır içi sınıflar için isSpecified, isUnspecified ve useOrElse eklendi. (I93f7b, b/174310811)
Hata Düzeltmeleri
- Animasyonları arasında karşılıklı dışlama sağlayan yeni coroutine tabanlı API
Animatable. Çok boyutlu decay animasyonunu desteklemek için yeni DecayAnimationSpec (I820f2, �b/168014930) - Devre dışı bırakılmış ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
animate()artıkTyerineState<T>döndürenanimateAsState()ile değiştirildi. Bu sayede, geçersiz kılma kapsamı State değerinin okunduğu yerle sınırlandırılabildiğinden daha iyi performans elde edilebilir. (Ib179e)- Semantics role API'yi ekleyin ve Role'ü tıklanabilir, seçilebilir ve açılıp kapatılabilir SemanticsModifier'a parametre olarak ekleyin. Kaydırma çubuğunun da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent üzerinden erişilebilir (I87c57, b/173086397).
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.foundation:foundation:1.0.0-alpha09 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha09 yayınlandı. 1.0.0-alpha09 sürümü şu commit'leri içerir.
API Değişiklikleri
Kaydırılabilir arayüzü ekleme
Bu sayede ScrollState ve LazyListState ortak bir tür olarak değerlendirilebilir ve her iki türde de özel kaydırma uygulanabilir.
Bu, smoothScrollBy işlevini Scrollable'da bir uzantı işlevine de taşır ve bu işlevden yararlanır. (I2153b)
LazyVerticalGrid eklendi. (I17267, b/162213211)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed kullanımdan kaldırıldı. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)
İşaretçi girişi API'lerini askıya alma için HandlePointerInputScope, AwaitPointerEventScope olarak, handlePointerInput() ise awaitPointerEventScope() olarak yeniden adlandırıldı. (Idf0a1, b/175142755)
Şu anda görünür olan öğelerin boyut ve ofset listesini gösteren LazyListState.layoutInfo eklendi (If8678, b/170472532)
Removed ExperimentalPointerInput annotation (Ia7a24)
TextField'lar için InteractionState desteği eklendi. (I61d91)
LazyColumn/Row için reverseLayout parametresini ekleyin. Bu durumda
trueöğeler alttan üste doğru oluşturulur veLazyListState.firstVisibleItemIndex == 0ilk öğenin altta yer alacağı anlamına gelir. (I552ae, b/166589935)LazyColumn için verticalArrangement parametresi eklendi. LazyRow için horizontalArrangement parametresi eklendi. Düzenleme, öğeler arasında boşluk eklememize ve minimum boyutu dolduracak kadar öğemiz olmadığında öğelerin düzenini belirtmemize olanak tanır. (Icf79a, b/170394300)
detectMultitouchGestures artık birleştirilmiş merkez, kaydırma, yakınlaştırma ve döndürme parametreleriyle tek bir geri çağırma kullanıyor. (Ie6e1c)
ContentDrawScope, DrawScope ile birlikte olması için ui-graphics modülüne taşındı. (Iee043, b/173832789)
Hata Düzeltmeleri
- Ofset değiştiricilerdeki lambda'lar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
SlotTable, SlotReader ve SlotWriter, herkese açık API'den kaldırıldı. Bunlar daha önce InternalComposeAPI olarak işaretleniyordu. Artık oluşturma modülünün içinde yer alıyorlar.
Bileşen bilgilerini ayıklamak için kullanılan ui-tooling API'nin yerine CompositionData ve CompositionGroup eklendi. Bunlar herkese açıktır ancak ui-tooling API'nin yorumladığı ham bilgileri sağladıkları için ui-tooling API dışında kullanılmak üzere tasarlanmamıştır (I31a9c).
Çizim ortamının boyutlandırma bilgileri kullanılabilir olduğunda gölgelendirici örneğini geç oluşturmak için ShaderBrush yeniden düzenlendi. Bu, özel DrawModifier uygulamaları oluşturmak zorunda kalmadan, kompozisyon sırasında bir composable'ın tüm çizim sınırlarını kaplayan gradyanlar tanımlamak için kullanışlıdır.
Gradyan nesnesindeki fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)
Modifier.focusObserver kullanımdan kaldırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
Otomatik Doldurma API'si artık deneysel bir API ve etkinleştirme gerektiriyor (I0a1ec)
FocusRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
SelectionRegistrar'da çeşitli yeni işlevler kullanıma sunuldu ve onPositionChange işlevi notifyPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
AndroidOwner made internal (Ibcad0, b/170296980)
InfiniteRepeatableSpec (I668e5) oluşturmak için yeni infiniteRepeatable işlevi
Applierarayüzü, ağaç oluşturmayı yukarıdan aşağıya değil aşağıdan yukarıya doğru basitleştirecek şekilde değiştirildi.insert()yöntemi,insertTopDown()olarak yeniden adlandırıldı.insertBottomUp()adlı yeni bir yöntem eklendi.Uygulayıcı, hangi yöntemin daha iyi performans gösterdiğine bağlı olarak
insertTopDown()veyainsertBottomUp()kullanarak düzenlediği ağaca düğümler ekler.LayoutNodeveViewgibi bazı ağaçlar, yukarıdan aşağıya yerine aşağıdan yukarıya doğru oluşturulduğunda çok daha verimli olur. Bu değişiklikten önce, alttan üste yapıyı uygulamak için bir ekleme yığını gerekiyordu. Bu yığının, performans için alttan üste yapıya ihtiyaç duyan her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte, ağacı aşağıdan yukarıya doğru oluşturmak içinApplier, yukarıdan aşağıya doğru oluşturmak için iseinsertTopDown()kullanılır.insertBottomUp()(Icbdc2)Rasterleştirilmiş öğe biçimlerinden (ör. PNG'ler) veya VectorDrawable'lardan Painter nesnelerinin opak şekilde yüklenmesini sağlamak için painterResource API'si eklendi. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Bu yöntemi çağırarak, Image composable'larında veya painter değiştiricilerinde kullanılacak bir Painter nesnesi alabilirler. (I2c703, b/173818471)
AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. Desteği sonlandırılan annotatedString builder işlevi. (Idfe0b)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.foundation:foundation:1.0.0-alpha08 ve androidx.compose.foundation:foundation-layout:1.0.0-alpha08 yayınlandı. Version 1.0.0-alpha08 contains these commits.
API Değişiklikleri
maxLinesparametresi,CoreTextFieldöğesinden kaldırıldı. Metin alanının yüksekliğini satır sayısıyla sınırlamak istiyorsanız bunun yerineBasicTextFieldkullanın. (Iec002)await*TouchSlop()yöntemleri, işaretçinin aşağı hareketini algılamayacak şekilde değiştirildi ve*OrCancellationolarak yeniden adlandırıldı. AyrıcaorientationLockparametresinin kullanılması da kaldırıldı. (Ie96e1)- Composable lambda parametre adlandırma ve konumlandırma için lint kontrolü eklendi. Bu kontrol, Compose yönergeleriyle tutarlılığı kontrol eder.
Ayrıca, lint kontrolü ve yönergelere göre, sondaki lambda'ları için ad olarak
childrenkullanan bazı API'lercontentolarak taşındı. (Iec48e) foundation:foundation-textAPI'lerifoundation:foundationhizmetine taşındı. Paket yapısı aynı kaldı (Id3eb2).- Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olanlar da dahil olmak üzere yeni çoklu dokunma hareketi algılayıcı. (Ic459d)
- Yön kilitleme de dahil olmak üzere işaretçi giriş API'sini askıya alan yeni sürükleme hareketi algılayıcısı. (Icef25)
- VectorAsset, ImageVector olarak yeniden adlandırıldı. VectorAsset, API Konseyi yönergelerine uygun olarak ImageVector'ın iç sınıfı olacak şekilde Builder olarak taşındı ve yeniden adlandırıldı. Uyumluluk için VectorAssetBuilder'ın ImageVector.Builder'a bağlantı oluşturacak tür takma adı eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- Temel anlamsal özellikler ui'ye taşındı (I6f05c).
Coroutine tabanlı kaydırma API'leri ekleyin:
LazyListState.snapToItem ve LazyListState.smoothScrollBy'ı ve kaydırma kontrolü için daha düşük düzeyli API'leri ekler. Bu API'ler, kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. Bu arayüz, geri dönmeden önce kaydırmanın tamamlanmasını bekler. (Ie5642)
BasicTextField, TextField ve OutlinedTextField'e singleLine parametresi eklendi. Metin alanının yatay olarak kaydırılabilen tek bir satır olmasını sağlamak için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)
Yeni askıya alma işaretçisi girişi kullanılarak dokunma, çift dokunma, uzun basma ve basma göstergesi için hareket algılayıcı eklendi. Geliştiricilerin kendi hareket algılayıcılarını yazmasını kolaylaştırmak için birkaç yardımcı program da eklendi. (I00807)
Modifier.focusable, foundation'da need eklenmiş durumda. Bu özelliği, doğru semantik ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için kullanın. (I41eb9, b/152525426, b/162865824)
Daha önce desteği sonlandırılan API'ler kaldırıldı: Border kaldırıldı, bunun yerine BorderStroke kullanın. Modifier.drawBorder kaldırıldı. Bunun yerine Modifier.border kullanın. Modifier.gravity kaldırıldı. Bunun yerine Modifier.align kullanın. Stack kaldırıldı, bunun yerine Box'ı kullanın (I32c2b, b/172470874)
AbsoluteArrangement, Arrangement.Absolute olarak yeniden adlandırıldı. (If26f2)
Hata Düzeltmeleri
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılmış API'lerden mevcut API'lere geçişe yardımcı olacak tür takma adları/yardımcı yöntemleri içerecek DrawModifierDeprecated.kt dosyasını oluşturdu. (Id6044, b/173834241)
- Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca, API konseyinin geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
<T>, SubcomposeLayout bildiriminden kaldırıldı. Artık tür belirtmeden kullanabilirsiniz. (Ib60c8)- PointerInputData'nın çalışma süresi ve konum alanları null yapılamaz hale getirildi. (Id468a)
- MaterialTheme artık seçim tutamaçları ve seçim arka planı için doğru renkleri ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Kutunun hizalama parametresi, contentAlignment olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricilerinin adı offset olarak değiştirildi. Artık State yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
- Ana makine penceresinin odaklanmış olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırmasını sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TextInputService#onStateUpdated'e resetInput parametresi eklendi (I3e8f5, b/172239032, b/171860947)
- TextFieldValue API güncellendi
- TextFieldValue.composition salt okunur hale getirildi
- Geçersiz seçim aralığı için kaldırılan istisna oluşturuldu (I4a675, b/172239032)
Ambientsonekiyle adlandırılan, desteği sonlandırılmış Ambients'leri diğer Ambients ve Compose API yönergelerine uygun olarak Ambient önekiyle adlandırılan yeni özelliklerle değiştirdi. (I33440)- Android Typeface sarmalayıcısı eklendi.
typefaceişleviyle (ör.typeface(Typeface.DEFAULT)) Android Typeface yükleyebilirsiniz. AyrıcatypefaceFromFontFamily(),typeface()olarak yeniden adlandırıldı (I52ab7) - Değiştirici fabrikalarının
@Composableolarak işaretlenmek yerine dahili olarakandroidx.compose.ui.composed {}kullandığını kontrol etmek için lint kontrolü eklendi. (I3c4bc) - Değiştirici fabrika işlevlerinin, akıcı bir şekilde birbirine bağlanabilmeleri için Değiştirici üzerinde uzantı olarak tanımlandığını kontrol etmek üzere lint kontrolü eklendi. (I07981)
- Semantik bağımsız değişkeni mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521).
- Eski ui-test modülünü ve saplarını kaldırın (I3a7cb)
- TextUnit.Inherit, diğer birimlerle tutarlı olması için TextUnit.Unspecified olarak yeniden adlandırıldı. (Ifce19)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
foundation:foundation-textmodülü,foundation:foundation(Idac0f) ile birleştirildi.- place(Offset) ve placeRelative(Offset) işlevleri kullanımdan kaldırıldı. Bunun yerine, int ofsetleriyle aşırı yüklemeleri kullanın (I4c5e7).
id,LayoutIdParentDataiçinlayoutIdolarak yeniden adlandırıldı.Measurable.id,Measurable.layoutIdolarak yeniden adlandırıldı. (Iadbcb, b/172449643)
Sürüm 1.0.0-alpha07
11 Kasım 2020
androidx.compose.foundation:foundation:1.0.0-alpha07, androidx.compose.foundation:foundation-layout:1.0.0-alpha07 ve androidx.compose.foundation:foundation-text:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü şu commit'leri içerir.
API Değişiklikleri
Modifier.fillMaxSize[Width|Height]'ya benzer şekilde, artıkLazyColumn/RowkapsamındakiModifier.fillParentMaxSize[Width|Height]içinde kesirleri destekliyoruz (I797e2, b/166586426).KeyboardOptions.toImeOptions, herkese açık API'den kaldırıldı. (Ic2e45)- Temel AmbientTextStyle, ProvideTextStyle ve AmbientContentColor işlevlerinin desteği sonlandırıldı. Bunun yerine, Material kitaplığında bulunan yeni sürümleri kullanın. Material olmayan uygulamalar için bunun yerine, kendi bileşenlerinizde kullanılabilen, temalandırmaya özel kendi tasarım sisteminizi oluşturmanız gerekir. (I74acc, b/172067770)
- foundation.Text kullanımdan kaldırıldı ve material.Text ile değiştirildi. Bir temadan değer kullanmayan temel ve tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
- TextField'lara maxLines özelliği eklendi (Ib2a5b)
- TextField'ları KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
- TextField'larda kullanılmak üzere KeyboardOptions eklendi (I9ca32).
- BasicText'i, BasicTextField'a paralel olarak metin için tasarım açısından tarafsız bir API olarak ekler. (I28268)
- ExperimentalLazyDsl notu kaldırıldı. LazyColumn/LazyRow artık @OptIn eklenmeden kullanılabilir (Idab7a, b/166584730)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'ı kullanın. (I896eb)
- BasicTextField, hem CoreTextField hem de BaseTextField'in yerine eklendi (Id4cea).
- Kullanımdan kaldırılan LazyColumnItems/LazyRowItems'ı kaldırın (I1d8a8)
- Boyutlandırma için kullanımdan kaldırılan composable'lar, doğal ölçümlere göre kaldırıldı. (I18537, b/171811496)
- relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. paddingFromBaseline değiştiricisi, düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtme kolaylığı için eklendi. (I0440a, b/170633813)
- matchHeightConstraintsFirst parametresi, en boy oranı değiştiricisine eklendi. Bu parametre, genişlik karşılıklarını denemeden önce yüksekliğe göre boyutlandırma için değiştiriciyi belirtmek üzere kullanılabilir. (Ie7c43, b/155290593)
- Desteği sonlandırılan DpConstraints kaldırıldı. (I87884, b/171702471)
Hata Düzeltmeleri
- Tekdüze olmayan ölçeklendirme kullanım alanlarını desteklemek için yatay ve dikey eksenlerin ölçeklendirme faktörlerini birbirinden bağımsız olarak temsil eden ScaleFactor
inline sınıfı kullanıma sunuldu.
- ContentScale'e computeScaleFactor yöntemi eklendi.
- Kaynak sınırlarını hedefi tamamen kaplayacak şekilde genişletmek için tek tip olmayan ölçeklendirme gerçekleştirmek üzere ContentScale.FillBounds eklendi.
- ScaleFactor parametrelerini Size parametreleriyle hesaplamak için operatör yöntemleri eklendi.
- (Ic96a6, b/172291582)
- captureToBitmap, captureToImage olarak değiştirildi. (I86385)
- CoreText'i @InternalTextApi olarak işaretler. Bunun yerine BasicText'i kullanın. (I6aaeb)
- KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
- KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
- CoreTextField, @InternalTextApi olarak işaretlendi. Bunun yerine BasicTextField kullanın (Ie2469)
- ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad).
- ui-test-junit4 modülünü kullanıma sunma (Ib91f8)
- Icon API, ColorFilter olmadan sağlanan öğeyi veya boyayı çizecek olası bir renk tonu olarak Color.Unspecified'ı alacak şekilde güncellendi. Daha önce, Color.Unspecified ile renk tonunu yoksayma girişimleri, şeffaf bir renkle renk tonu oluşturarak hiçbir şeyin oluşturulmamasına neden oluyordu. (I049e2, b/171624632)
- MeasureResult, MeasureScope'un dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli semboller androidx.compose.ui'dan androidx.compose.layout.ui'ya taşındı. (I0fa98, b/170475424)
- androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb)
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7).
- Geri çağırma olmadan SelectionContainer eklendi (Ibfadb)
- SelectionContainer'daki SelectionHandles'ın konumları için testler ekleyin. (Ie93db)
- Klavyede 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 yayınlandı. 1.0.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- androidx.compose.foundation.Icon, androidx.compose.material.Icon'a taşındı. Material kitaplığını kullanmak istemiyorsanız Painter ile birlikte Image bileşenini / Modifier.paint() işlevini de kullanabilirsiniz. (I9f622)
- Modifier.scrollable, ScrollableColumn ve LazyColumnFor'a interactionState eklendi (I81566, b/169509805)
- alignByBaseline, RowScope'a eklendi ve alignWithSiblings, alignBy olarak yeniden adlandırıldı (I06503, b/170628732)
- Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)
- CoreTextField'a maxLines eklendi (Ibee58, b/143687793)
- CoreTextField'a softwrap eklendi. (I21a4b)
Hata Düzeltmeleri
- Composable API'nin, kompozisyonlar arasında verileri kalıcı hale getirmek için dahili olarak "remember" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı rememberVectorPainter lehine kullanımdan kaldırın. (Ifda43)
- ComposeTestRule'da geçişleri etkinleştirin. Yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)
- CoreTextField'e tek satırlık klavye seçeneği eklendi (I72e6d)
- Compose'da nasıl kullanıldığını daha iyi ifade etmek için Radius API'nin adı CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirten doküman güncellendi. (I130c7, b/168762961)
- Birleştirilmiş değiştiricide inceleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569)
- Klavye büyük harf IME seçeneği eklendi (I8ac38)
- Sağdan sola dil tutma yeri konumunu düzeltin. (I6e1e0)
- Kapsamı bozan değişiklik: Yalnızca tüketim verilerinin işaretçi etkinliklerinde değiştirilebilmesi gerektiğinden PointerInputFilter.onPointerEvent(...) işlevinden dönüş değeri kaldırıldı. PointerInputFilter.onPointerEvent(...) işlevinden veri döndürmek yerine artık iletilen PointerEvents'in tüketim verilerini değiştirebilirsiniz. (I6acd0)
- Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
Sürüm 1.0.0-alpha05
14 Ekim 2020
androidx.compose.foundation:foundation:1.0.0-alpha05, androidx.compose.foundation:foundation-layout:1.0.0-alpha05 ve androidx.compose.foundation:foundation-text:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
- CoreTextField artık imleç işlevini destekliyor (Id23aa)
contentColor() ve currentTextStyle() API'lerinin desteğini sonlandırır ve bunları sırasıyla AmbientContentColor ve AmbientTextStyle ortamlarıyla değiştirir. Diğer tüm ortam özelliklerinde olduğu gibi, ortam özelliğinde
.currentkullanarak geçerli değere erişebilirsiniz. Bu değişiklik, tutarlılık sağlamak ve aynı şeyi yapmanın birden fazla yolunu önlemek için yapılmıştır. Ayrıca, bazı ortam özelliklerinin adını, amaçlarını daha iyi açıklayacak şekilde aşağıdaki gibi değiştirir:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Hata Düzeltmeleri
- Satır içi sınıflar için sentinel değerlerinin standartlaştırılması kapsamında, diğer satır içi sınıflarla (I97611, b/169797763) tutarlılık sağlamak amacıyla Color.Unset değerini Color.Unspecified olarak yeniden adlandırın.
- Kopyalama/yapıştırma/kesme erişilebilirlik işlemleri eklendi (I6db4f)
- TextOverflow.None kullanıma sunuldu. Taşma None olduğunda, Text artık taşmayı işlemeyecek ve gerçek boyutunu LayoutNode'a bildirecek. (I175c9, b/158830170)
- Size.Unspecified parametreleri, Float.POSITIVE_INFINITY yerine Float.NaN olarak güncellendi. Painter uygulamaları, sonlu olmayan boyutların yanı sıra Size.Unspecified'a karşı da kontrol edecek şekilde güncellendi. (I95a7e)
- Paging Compose modülü ve sayfalama entegrasyonu eklendi (Ib85da)
- LazyListScope'u boş değerler alacak şekilde değiştirme (I1765b)
- OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() ise onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)
- LazyColumn/Row için örnekler eklendi (Idc16d)
- items ve itemsIndexed yöntemlerinin emptyList'e (I06647) izin vermesi için düzeltme
- Müfettiş bilgilerini belirtmek için bir DSL ekleyin (Ic9a22)
- LongPress'i Text'e taşıyın. (Iff2bc)
- Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)
- Erişilebilirlik için AnnotatedString'i SpannableString'e dönüştürme desteği eklendi. (Ief907)
PointerInputFilter.onPointerInput(...)kaldırıldı.PointerInputFilter.onPointerEvent(...)kullanılmalıdır. (I6f04a)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.foundation:foundation:1.0.0-alpha04, androidx.compose.foundation:foundation-layout:1.0.0-alpha04 ve androidx.compose.foundation:foundation-text:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Stack'in adı Box olarak değiştirildi. Daha önce mevcut olan foundation.Box, compose.foundation.layout'taki yeni Box lehine kullanımdan kaldırılacak. Yeni kutunun davranışı, birden fazla alt öğe içerdiğinde alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki kutudan farklıdır. (I94893, b/167680279)
- Kutu dekorasyonu parametrelerinin desteği sonlandırıldı. Kutunuzda süslemeler/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) kullanın (Ibae92, b/167680279).
- Yeni bir LazyListState sınıfı ekleyin. Bu, LazyRow ve LazyColumn bileşenlerinin kaydırma konumunun gözlemlenmesine ve kontrol edilmesine olanak tanır. Örnekler, rememberLazyListState() kullanılarak oluşturulabilir ve bileşenin durum parametresine iletilebilir. Şu anda, bu ilk sürümde ilk görünür öğe ve ofsetler gözlemlenebilir. (Ic7cb7, b/159307669)
- Lazy list konum ve kaydırma uzaklığı artık kaydedilip Etkinlik yeniden oluşturma sırasında geri yükleniyor (Ie045f, b/166589058)
- Uzun tıklama semantiği işlemi ekleme (I6281b, b/156468846)
- Paylaşılan durumun zaman içinde tek bir değiştiricisini tutmak ve çakışan değiştiricileri önceliğe göre iptal etmek için MutatorMutex yardımcı programı eklendi (I3f975).
- rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ve textInputServiceFactory'yi @VisibleForTesting ile açıklama ekleyerek dahili API haline getirin ve kdoc'larını gizleyin (I554eb, b/168308412).
- inlineContent parametresi, Text with String girişinden kaldırıldı. inlineContent, AnnotatedString ile çalışması gerektiğinden kullanılmaz. (Ief403)
- Desteği sonlandırılan özel Düzenleme API'leri kaldırıldı. (Ic576d, b/168297922, b/168297923)
- wrapContentSize değiştiricilerine
unboundedparametresi eklendi. Bu parametre, sonsuz maksimum kısıtlamalarla düzen öğesinin ölçülmesini sağlar. (I77951, b/158559319) - Düzen kapsamlarındaki içeriklerin (ör. RowScope'ta alignWithSiblings) statik olarak içe aktarılması engellendi. Bunun yerine açık kapsam alternatifi kullanılmalıdır:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)
Hata Düzeltmeleri
- Birçok grafik API'si güncellendi.
- Çizim kapsamı ve çizim dönüşümündeki x/y koordinatları için ayrı kayan parametreler yerine, ölçek ve döndürme dönüşümü API'leri, pivot koordinatını temsil etmek üzere tek bir ofset parametresi kullanacak şekilde güncellendi.
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı.
- Yarıçap dokümanı, elipsin yanı sıra oval olarak da belirtilecek şekilde güncellendi.
- Satır içi Radius sınıfının herkese açık oluşturucusunun doğrudan çağrılmaması, bunun yerine Radius nesnelerinin işlev oluşturucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi.
- RoundRect API'leri, topRight, bottomRight, bottomCenter vb. sorgulamak için kaldırıldı.
- Rect.shift yerine Rect.translate kullanılıyor
- RoundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı.
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı.
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı.
- RoundRect.center işlevi, özellik olarak değiştirildi.
- RoundRect oluşturucusu, x/y yarıçap değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi.
- Kaynak noktası 0,0 olan bir dikdörtgen olduğu varsayılan boyut API'leri kaldırıldı.
- Radius'a bir yıkım API'si eklendi
- Çeşitli RoundRect uzantısı işlevleri, özellik olarak taşındı.
- (I8f5c7, b/168762961)
- Her kaydırma sırasında gereksiz yeniden oluşturmalar yapılmayarak LazyColumnFor/LazyRowFor kaydırma için performans optimizasyonları (I64f65, b/168293643, b/167972292, b/165028371)
- Kaydırma işleminden sonra öğeler değiştirildiğinde LazyColumnFor/LazyRowFor'da meydana gelen kilitlenme sorunu düzeltildi ve daha önce görünür olan öğe kaldırıldığında otomatik olarak yukarı kaydırma özelliği uygulandı. Böylece artık sonunda boşluklar gösterilmiyor (I220ab, b/161480164, b/167855468).
- Artık ScrollableContainer ve LazyColumnFor gibi aynı yönde kaydırılabilir kapsayıcıları iç içe yerleştirmeye izin verilmiyor. Bu özellik hiçbir zaman desteklenmedi ve LazyColumnFor öğelerini oluşturmanın tüm kolaylığını ve kaydırma işlevini bozuyordu (I6e101).
- Birçok grafik API'si güncellendi.
- Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için kapsamlı dönüştürme yöntemleriyle güncellenen DrawScope API'leri
- clipPath dokümanı, yuvarlatılmış dikdörtgen yerine Path'e referans verecek şekilde güncellendi.
- clipPath'teki right parametresi için dokümanlardaki boşluk düzeltildi.
- DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı.
- İç kısım yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı.
- 4 sınıra da aynı içe yerleştirme değerini sağlayan içe yerleştirme aşırı yüklemesi eklendi.
- İçerik yerleştirme yönteminin 4 tarafa da uygulanacağını belirten doküman kaldırıldı.
- Rect sınıfıyla ilgili dokümanlar güncellendi
- Rect parametreleriyle ilgili yorumlar, kdoc stiline uygun şekilde güncellendi.
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yükleme oluşturuldu ve Rect.shift kullanımdan kaldırıldı
- (If086a, b/167737376)
- add AccessibilityScrollState to semantics properties. (Ifeda9)
- Nesne oluşturmayı önlemek için TextRange'i satır içi yapın. (Id034b)
- ParagraphConstraints kaldırıldı. Genişlik artık doğrudan paragrafa aktarılıyor. (Ica712)
Sürüm 1.0.0-alpha03
16 Eylül 2020
androidx.compose.foundation:foundation:1.0.0-alpha03, androidx.compose.foundation:foundation-layout:1.0.0-alpha03 ve androidx.compose.foundation:foundation-text:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü şu commit'leri 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 olarak yeniden adlandırıldı. (I2421a, b/164077038)
- Stack'e, tüm Stack alt öğeleri için varsayılan hizalamanın belirtilmesine olanak tanıyan bir hizalama parametresi eklendi. (Ie80ca, b/164085265)
Hata Düzeltmeleri
- DpConstraints ve bunu kullanan API'ler kullanımdan kaldırıldı. (I90cdb, b/167389835)
widthInöğesininminWidthvemaxWidthparametreleriminvemaxolarak yeniden adlandırıldı. Aynı durumpreferredWidthIn,heightIn,preferredHeightIniçin de geçerlidir. (I0e5e1, b/167389544)- Mevcut global yöntemler kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer global yöntemler eklendi. (Ieae36)
- GestureScope'ta, diğer sorunların yanı sıra geçersiz kaydırma hareketlerinin oluşturulmasına neden olan boyut ve konum hesaplamaları düzeltildi (Iaf358, b/166589947).
createAndroidComposeRuleveAndroidInputDispatcher,androidx.ui.test.androidkuruluş birimindenandroidx.ui.testkuruluş birimine taşındı (Idef08, b/164060572)
Sürüm 1.0.0-alpha02
2 Eylül 2020
androidx.compose.foundation:foundation:1.0.0-alpha02, androidx.compose.foundation:foundation-layout:1.0.0-alpha02 ve androidx.compose.foundation:foundation-text:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- TestUiDispatcher deneysel olarak işaretlendi (Iae99d, b/161247083)
ManualFrameClock.hasAwaiters, söz konusu saatten çerçeve bekleyen bir şey olup olmadığını görmek için eklendi.runWithManualClock, ManualFrameClock gerektiren testler çalıştırılırkenrunBlockingyerine kullanılıyor.TestUiDispatcher.Main, testlerinizde ana kullanıcı arayüzü dağıtıcısına kolay erişim sağlıyor.Örneğin:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.foundation:foundation:1.0.0-alpha01, androidx.compose.foundation:foundation-layout:1.0.0-alpha01 ve androidx.compose.foundation:foundation-text:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü şu commit'leri içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.foundation:foundation:0.1.0-dev17, androidx.compose.foundation:foundation-layout:0.1.0-dev17 ve androidx.compose.foundation:foundation-text:0.1.0-dev17 yayınlandı. Version 0.1.0-dev17 contains these commits.
API Değişiklikleri
- Düzenlenen alt öğelerin sabit aralıklarla yerleştirilmesini sağlamak için Satır ve Sütun'a spacedBy Düzenlemesi eklendi. Düzenleme, alt öğeleri yan yana ve bir hizalamaya göre satır/sütunda hizalamak için de eklendi. Önceki Arrangement.Vertical#arrange ve Arrangement.Horizontal#arrange yöntemlerinin desteği sonlandırıldı. Gelecekte özel Arrangement'lar yazma özelliği desteklenmeyecek. (I6733d, b/161985975)
- Offset, satır içi sınıf (Iaec70) haline geldi.
- TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Border veri sınıfının yerini BorderStroke aldı (I4257d, b/158160576)
- VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Modifier.drawBackground kaldırıldı. Modifier.background'ı kullanma (I73b0d, b/163019183)
- fillMax* olarak işaretlenmiş, kullanım dışı bırakılmış değiştiricileri LazyItemScope'tan kaldırın. Bu değiştiriciler, LazyColumnFor'un doğrudan alt öğeleri olmayan öğelere bu tür değiştiricilerin doğru şekilde eklenmesini zorlaştırıyor (Ifa78d).
- DSL olarak LazyColumn/LazyRow uygulaması eklendi (I93cc6)
- Constraints artık satır içi bir sınıftır (I88736)
- fillMaxWidth, fillMaxHeight ve fillMaxSize değiştiricilerini kullanarak düzeni kullanılabilir alanın bir kısmı kadar boyutlandırma özelliği eklendi. (I945bb, b/161562591)
Hata Düzeltmeleri
- SelectionContainer'a değiştirici parametresi eklendi (I4aada, b/161487952)
- SemanticsPropertyKey'e mergePolicy lambda'sı eklendi. Bu, birleştirme işlemlerinde mergeAllDescendants semantiği için özel bir politika tanımlamak üzere kullanılabilir. Varsayılan politika, üst değer zaten mevcutsa onu, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)
PlacementScope.placeAbsolute(),PlacementScope.place()olarak yeniden adlandırıldı ve öncekiPlacementScope.place(),PlacementScope.placeRelative()olarak yeniden adlandırıldı. Sonuç olarak,PlacementScope.place()yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmayacak. Bu isteniyorsa bunun yerinePlacementScope.placeRelative()kullanılmalıdır. (I873ac, b/162916675)- Desteği sonlandırılan FilledTextField bileşeni kaldırıldı. Dolu metin alanının Material Design uygulamasını almak için lütfen bunun yerine TextField'ı kullanın. (I5e889)
- LinearProgressIndicator'a backgroundColor parametresi eklendi ve CircularProgressIndicator'dan dahili dolgu kaldırıldı. Değerler arasındaki ilerleme animasyonu sırasında varsayılan AnimationSpec olarak kullanılabilecek yeni ProgressIndicatorConstants.DefaultProgressAnimationSpec eklendi (If38b5, b/161809914, b/161804677).
state { ... }composable'ı artık netlik içinremember { mutableStateOf(...) }'e yapılan açık çağrılar yerine kullanımdan kaldırıldı. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf özelliği temsilcisi içinby mutableStateOf()modeliyle eşleşir. (Ia5727)- RRect'i, Compose adlandırma kalıplarına daha iyi uyacak şekilde RoundRect olarak yeniden adlandırdı. RRect'e benzer işlev oluşturucular oluşturdu ve RRect işlev oluşturucularının desteğini sonlandırdı (I5d325).
- onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine alt düzende onPositioned ve OnPositionedModifier'ı kullanmalıdır. (I4522e, b/162109766)
- IntSize artık satır içi bir sınıf (I2bf42)
- Düzenlemek için Boş Alana Uzun Basın. (Ib1e5b)
- Metne dokunduktan sonra FloatingToolbar'ı gizle. (If4525)
- Seçim güncellenirken FloatingToolbar'ı gizle. (I8444c)
- Bulanıklaştırma zamanı'nın 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 yayınlandı. 0.1.0-dev16 sürümü şu commit'leri içerir.
API Değişiklikleri
- LazyItemScope, Lazy listelerinin itemContent parametresi için eklendi. Öğenin görüntü alanını doldurması gerektiğinde ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğü için normal Modifier.fillMaxSize() işe yaramadığında bu kullanım alanını çözen, üst maksimum boyutu doldurmak için değiştiriciler sağlar. (Ibd3b2, b/162248854)
- İletişim kutusunu kullanıcı arayüzüne taşıma (I47fa6)
- LazyColumnForIndexed/LazyRowForIndexed eklendi. Bu işlevler, LazyColumnFor/LazyRowFor'un itemCallback'te hem dizin hem de öğe sağlayan sürümleridir. Mevcut bir öğenin yanı sıra mevcut bir dizini de bilmeniz gerektiğinde faydalıdır. (I65ff3)
- Modifier.deternimateProgress, Modifier.progressSemantics olarak yeniden adlandırıldı (I9c0b4)
- LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor olarak yeniden adlandırıldı (I84f84).
- En iyi uygulama için bazı işaretler/açıklamalar ekleyin. (I66b20)
- foundation.shape.corner paketi foundation.share olarak düzleştirildi (I46491, b/161887429)
- LazyRowItems/LazyColumnItems için çapraz eksen yer çekimi parametresi eklendi. LazyRowItems/LazyColumnItems artık içerik sarmalama davranışını destekliyor. (Ib39fc)
- ZoomableState, ZoomableController olarak yeniden adlandırıldı. SmoothScale için özel eğri desteği eklendi.
enabledveonZoomStartedişlevleri eklendi (If8b8f) - En basit istenen API'nin kolayca bulunup kullanılabilmesi için Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676).
- Daha önce desteği sonlandırılan AdapterList kaldırıldı. Bunun yerine LazyColumnItems'ı kullanın (I12b9b)
- Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
- Eski ConstraintLayout DSL'si kaldırıldı. ConstraintSet2, ConstraintSet olarak yeniden adlandırıldı. (If58d1, b/162450908)
- Modifier.absoluteOffset() ve Modifier.absoluteOffsetPx() eklendi. Offset değiştiricilerden farklı olarak, mutlak offset değiştiriciler sağdan sola bağlamda otomatik olarak yansıtılmaz (I3aa21).
RowveColumnartık satır içi işlevler olduğundan kullanımları önemli ölçüde kolaylaştı. (I75c10)
Hata Düzeltmeleri
- Geniş kapsamlı API düzeltmelerini ele alma (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Tutarlı bir API yüzeyine sahip olmak için Offset ve IntOffset sınıflarını hizalama
- Offset API ile tutarlı olması için IntOffset.Origin'i IntOffset.Zero olarak yeniden adlandırın.
- Tüketicilerin kendi Canvas örneklerini oluşturabilmesi için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı.
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın null olmamasını sağlamak için EmptyCanvas sınıfı oluşturuldu.
- ClipOp numaralandırmaları Pascal Case olarak yeniden adlandırıldı.
- FilterQuality enum'ları Pascal Case olarak yeniden adlandırıldı.
- StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı.
- Renamed PointMode enums to be Pascal Case
- Renamed PaintingStyle enums to be Pascal Case
- PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı.
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı.
- DrawCache uygulaması, lateinit parametrelerini kullanmayacak şekilde güncellendi.
- DrawScope, fillPaint ve strokePaint dahili parametreleri için artık geç yetkilendirme kullanmayacak şekilde güncellendi.
- Daha az ek yük için Box kullanımını önlemek üzere Image composable'ı güncelledi.
- Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi.
- Her yol talimatı için @Immutable ek açıklamaları içerecek şekilde PathNode güncellendi.
- Compose bu işlemleri zaten yaptığından, eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere güncellenmiş Vector alt bileşimi
- İşlev oluşturucular lehine, desteği sonlandırılan Rect yardımcı oluşturucu yöntemleri kaldırıldı
- @Immutable ve @Stable API'lerle güncellenen Brush sınıfları ve işlev oluşturucuları
- VertexMode enum'ı PascalCase olacak şekilde güncellendi
- DrawScope selectPaint yöntemi, değişmişse boyadaki kontur parametrelerini koşullu olarak üzerine yazacak şekilde güncellendi.
- Yapı bozma API'si eklemek, UnspecifiedSize'ı Unspecified olarak yeniden adlandırmak ve kullanılmayan yöntemleri kaldırmak için boyut güncellendi.
Yeni coroutine tabanlı saatler ile eski geri çağırma tabanlı saatleri kullanan API'ler arasındaki boşluğu doldurmak için MonotonicFrameClock'u AnimationClockObservable olarak kullanmanıza olanak tanıyan MonotonicFrameAnimationClock eklendi.
ManualAnimationClock'un MonotonicFrameClock eşdeğeri artık ManualFrameClock'tur. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGesturekaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesturekullanın. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot(),SemanticsNodeInteraction.getUnclippedBoundsInRoot()olarak yeniden adlandırıldı (Icafdf, b/161336532)Sağdan sola dil desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient özelliği eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then kullanın. "Sonra" sıralama sinyali daha güçlüdür ve
Modifier.padding().background() + anotherModifieryazılmasını da engeller. Bu, zinciri bozar ve okunmasını zorlaştırır (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 yapıldığından bu işleme hiçbir zaman ihtiyacınız olmaz ancak kaydırma sırasında LazyColumnItems içinde kullanırız. (I5f331, b/160791058)
isSystemInDarkTheme artık her zaman sistem genelindeki koyu tema ayarını dikkate alıyor ve en son yönergelere uyarak Q'dan önceki güç tasarrufu durumunu yoksayıyor. (I0c10c)
OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned kullanın. (I87f95, b/162109766)
AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
TextLayoutResult'u almak için erişilebilirlik işlemi ekleyin (I9d6e6)
Sürüm 0.1.0-dev15
22 Temmuz 2020
androidx.compose.foundation:foundation:0.1.0-dev15, androidx.compose.foundation:foundation-layout:0.1.0-dev15 ve androidx.compose.foundation:foundation-text:0.1.0-dev15 yayınlandı. 0.1.0-dev15 sürümü şu commit'leri içerir.
Oluşturma'nın 0.1.0-dev15 sürümünü kullanmak için:
Bağımlılıkları Güncelleme
- Compose'un
0.1.0-dev15sürümünü kullanmak için bağımlılıklarınızı yukarıda Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
- Benzer şekilde, ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems'daki yeni parametreye ek olarak, artık içerik kırpıldıktan sonra içeriğe dolgu eklenmesine olanak tanıyan contentPadding parametresi de var. Bu, yalnızca değiştirici parametresiyle mümkün değildir. Ayrıca, yalnızca ilk öğeden önce/son öğeden sonra boşluk eklenmesine de olanak tanır. (Ibc24e)
- Metin alanlarındaki onFocusChange geri çağırma işlevi onFocusChanged olarak yeniden adlandırıldı (Ida4a1).
- VerticalScroller ve HoriziontalScroller desteği sonlandırıldı. Column/Row davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u ya da kendi öğenizde Modifier.verticalScroll ve Modifier.horizontalScroll'u kullanın. Benzer şekilde, ScrollerPosition, ScrollState'in (I400ce, b/157225838, b/149460415, b/154105299) lehine kullanımdan kaldırıldı.
- Modifier.draggable ve Modifier.scrollable API'leri yeniden düzenlendi. Orientation lehine DragDirection kaldırıldı. Kaydırılabilir öğeler için gerekli olan durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
- Tek değerli semantik özellikler artık bir çağırma stili kullanıyor.
Örneğin, "semantics { hidden = true }" artık şu şekilde yazılıyor:
semantics { hidden() }. (Ic1afd, b/145951226, b/145955412) - RoundedCornerShape ve CutCornerShape tarafından kullanılan köşe boyutları artık %50'den büyük olabilir (Id2340, b/160400213)
- Image composable için varsayılan ContentScale parametresi Inside'dan Fit'e değiştirildi. Bu, en boy oranı korunurken düzen boyutu, Painter'ın doğal boyutundan büyükse Painter'ın ölçeğini büyütmek için yapıldı. Bu davranış, composable'ın boyutunu hesaplamak için yalnızca doğal boyut kullanıldığında varsayılan davranışı etkilemeden, resme sabit boyutlar sağlama beklentileriyle daha iyi eşleşir. (I40ae3, b/159838006)
- Statik animasyon spesifikasyonu kavramını netleştirmek için üst düzey API'lerde AnimationBuilder yerine AnimationSpec kullanın. -Tween ve spring gibi AnimationSpec'ler oluşturmak için lambda şartını kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine, doğrudan oluşturucu parametrelerini alır. -Oluşturuculara güvenmek yerine oluşturucuları açarak AnimationSpec'in genel kullanım kolaylığını iyileştirin. -KeyFrame'lerin ve Tween'in süresini ve gecikmesini Int olarak değiştirin. Bu, gereksiz tür yayınlarını ve yöntem aşırı yüklemesini (hem Long hem de Int'i desteklemek için) ortadan kaldırır. (Ica0b4)
- Clickable kaldırıldı. Modifier.clickable (I84bdf) öğesini kullanın.
- LazyRowItems eklendi: LazyColumnItems'ın yatay kaydırma analogu (Ibbcf7)
- Düşük düzeyde durum bilgisi içermeyen animasyon API'leri kullanıma sunuldu. Bu API'ler (I63bf7)
- androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'larının desteği de sonlandırıldı. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005).
- IntPx kullanımı Int ile değiştirildi. IntPxPosition, IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
- androidx.ui.foundation.shape.RectangleShape kaldırıldı; androidx.ui.graphics.RectangleShape kullanın (I94939, b/154507984)
- Boyutlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Boyut sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kayan nokta olarak temsil etmek için 2 kayan nokta değerini paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (Ic0191)
- Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan nokta olarak temsil edilen x ve y kaymalarını temsil etmek için 2 kayan nokta değerini paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (I3ad98)
- Çimdikleyerek yakınlaştırma işlevi için Modifier.zoomable eklendi (Id5d63)
- Açılıp kapatılabilen bileşen kullanımdan kaldırıldı. Bunun yerine Modifier.toggleable'ı kullanın (I35220, b/157642842)
- MutuallyExclusiveSetItem kullanımdan kaldırıldı. Bunun yerine Modifier.selectable kullanın. (I02b47, b/157642842)
- TestTag desteği sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
- Daha önce yanlışlıkla eklenmemiş olan fontWeight parametresini Text'e ekler (I56937).
- Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I19d02).
- VerticalScroller artık kullanıma hazır sütun sağlıyor. HorizontalScroller artık kullanıma hazır Row sağlar. (Ieca5d, b/157020670)
- Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b).
- Modifier.indication, temel pakete eklendi. Özel etkileşimli öğelerinizde (I8425f, b/155287131) basma/sürükleme/diğer göstergeleri göstermek için kullanın.
- VerticalScroller ve HorizontalScroller artık ScrollerPosition'da isReversed ayarlandığında ters kaydırmayı destekliyor (I953bd).
- Metin düzenine composable'lar ekleme desteği. (I1373c)
- CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. Density arayüzünü uygulamak ve LayoutDirection sağlamak için DrawScope güncellendi. ContentDrawScope'taki DrawScope alt sınıfı silindi. Painter ve PainterModifier, DrawScope bunu zaten manuel olarak sağlamadan sağladığı için artık RTL özelliği tutmayacak şekilde güncellendi (I1798e).
- Desteği sonlandırılan DrawBackground API, Modifier'daki drawBackground uzantısı API'leri lehine kaldırıldı. Kod yollarını azaltmak ve Modifier'ın kompozisyonun bir parçası olarak oluşturulması gerekliliğini ortadan kaldırmak için renk, fırça ve paint drawBackground uygulamaları yeniden düzenlendi. (I0343a)
- Tuval yerine CanvasScope'u kullanıma sunan, daha üst düzeydeki Compose API'leri güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini korumasına gerek kalmaz. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, temel Canvas ile çizim komutları vermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
- HorizontalScroller ve VerticalScroller, kaydedilmiş örnek durumunu kullanarak kaydırma konumunu geri yüklemiyor. (Ia0fae, b/155075048)
- FocusManagerAmbient kaldırıldı. Odaklanmak için FocusModifier.requestFocus'i kullanın. (Ic4826)
- Tablo düzeni, yenilenmiş bir API ile tekrar kullanıma sunulana kadar geçici olarak kaldırıldı. (Id88a7)
Durum bilgisi içermeyen, bildirim temelli bir çizim API'si yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API'si oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır ve boyutlandırma bilgileri de ilgili yerleştirme sınırlarına göre kapsamlandırılır. Tüketicinin çizim işlemlerini yapılandırmak için kendi Paint durumu nesnesini koruması gerekmez.
CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli grafikler demosunu (Ifd86d) içerecek şekilde güncellendi.
ColoredRect kaldırıldı. Bunun yerine drawBackground değiştiricisiyle User Box kullanın (I983c7, b/152753731).
TextField'a imleç rengi özelleştirme özelliği ekleyin (I6e33f)
Artık onTextInputStarted geri çağırma işleviyle (I8dc44, b/151860051) sağlanan SoftwareKeyboardController kullanılarak yazılım klavyesi gizlenebilir/gösterilebilir.
TextField ile kullanılan TextFieldValue artık şu şekilde kullanıldığında etkinlik yeniden oluşturulsa bile korunabilir:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }(I5c3ce, b/155075724)Sık kullanılan parametreleri Text() işlevine ekler. Şu anda
Text(style = TextStyle(textAlign = TextAlign.Center))gibi bu parametrelerden az sayıda iletmek için yerel bir metin stili oluşturuyorsanız artık parametreleri doğrudan sağlayabilirsiniz:Text(textAlign = TextAlign.Center)(I82768)Odak alt sistemiyle entegrasyon için CoreTextField/TextField focusIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)
TextField güncellemesi: Yatay boyutta, kendisine ayrılan tüm alanı kaplayacak (Ib08df, b/154638552)
InteractionState ve Interaction eklendi. Böylece, basma ve sürükleme gibi kullanıcı arayüzü durumu değişikliklerine tepki veren bileşenler oluşturmak kolaylaştı (Icfe25, b/152525426).
RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics.* konumuna taşındı. (Ia74d5, b/154507984)
API'deki tüm null değer atanabilir Color kullanımları, null değer atanabilir olmayanlarla değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7).
TextField API güncellemesi: onFocus ve onBlur geri çağırmaları, parametreli tek bir onFocusChange(Boolean) geri çağırmasında birleştirildi (I66cd3).
ScaleFit, ContentScale olarak yeniden adlandırıldı. ContentScale, ui-graphics'ten ui-core modülüne taşındı. Böylece Alignment API ile aynı modülde yer alacak. FillMaxDimension, Crop olarak yeniden adlandırıldı. FillMinDimension, Fit olarak yeniden adlandırıldı. Fit, Inside olarak yeniden adlandırıldı. Bu değişiklik, ImageView.ScaleType eşdeğerleriyle daha iyi eşleşiyor. Crop ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu elde ettiği, Fit ve Alignment.Center kombinasyonunun ise ImageView.ScaleType.FIT_CENTER ile aynı sonucu elde ettiği belirtildi. Inside ve Alignment.Center kombinasyonu, ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu elde ediyor (I45f09, b/152842521).
ProvideContentColor kaldırıldı. Bunun yerine doğrudan
Providersile ContentColorAmbient kullanılacak (Iee942).Metne renk parametresi ekler. Böylece, temada sağlanan stille manuel olarak birleştirme yapmaya gerek kalmadan metin stilinin rengi geçersiz kılınabilir. (I41a66)
DrawModifier API'yi iyileştirme:
- draw() için alıcı kapsamını ContentDrawScope olarak ayarladı.
- draw() işlevindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
- ContentDrawScope'ta drawContent() yöntemi var (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 temalandırma sistemi, Material Design spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğu tarafından kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz (Ifb4d1).
Değiştirici artı operatör, fabrika uzantısı işlevleriyle değiştirildi (I225e4).
Draggable, değiştiriciye taşındı (Id9b16, b/151959544)
Text, androidx.ui.core paketinden androidx.ui.foundation paketine taşındı. (I87ce5)Checkbox, Switch ve Toggleable'a
enabledparametresi eklendi (I41c16)Dalgalanma artık bir değiştirici. Clickable henüz dönüştürülmediğinden önerilen kullanım
Clickable(onClick = { ... }, modifier = ripple())(Ie5200, b/151331852, b/150060763) şeklindedir.Vektör grafikler için mevcut alt bileşim API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine VectorPainter nesnesidir. VectorPainter lehine önceki DrawVector composables'ın desteği sonlandırıldı.
Image(Painter)API'nin adıPaintBox(Painter)olarak değiştirildi. ImageAsset yerine VectorAsset ile Image composable gibi davranan Vector composable oluşturuldu (I9af9a, b/149030271).Belirli bir ImageAsset'i ekrana çizmenin yanı sıra boyutlandırma/düzenlemeyi de işlemek için CreatedImage composable'ı. Bu composable, kendi boyutuna uygun şekilde herhangi bir Painter örneğinin çizilmesini ve belirli bir sabit boyutu veya minimum boyutu (Ibcc8f) destekler.
Button, FloatingActionButton ve Clickable artık ayrı bir
enabledparametresine sahip. Button'daki bazı parametreler yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)Resim verileri ile düzen oluşturmak ve içerik çizmek için kullanılacak Image composable arasındaki farkı daha iyi ayırt etmek amacıyla Image, ImageAsset olarak yeniden adlandırıldı.
Geleneksel Android uygulama geliştirme ile Compose çerçevesini birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap üzerinde uzantı yöntemi oluşturuldu.
Bitmap.asImageAsset(). (Id5bbd)DrawImage composable'ı kaldırıldı. Mevcut düzende resim çizmek için ImagePainter'ı veya yer kaplayan resim eklemek için SimpleImage'ı kullanın (I595e1, b/149827027).
Stack bileşeni, sağdan sola yönlülüğü destekler (Ic9e00).
AppBarIcon kaldırıldı ve Icon, IconButton ile IconToggleButton eklendi. AppBarIcon'un mevcut kullanımlarını doğrudan IconButton ile değiştirebilirsiniz. Bu durumda, doğru dokunma hedefi kullanılır. Kullanım bilgileri için örneklere, bu bileşenlerle doğrudan kullanabileceğiniz sağlanan Material Icons için de Simgeler bölümüne bakın. (I96849)
DrawShape composable'ı kaldırıldı. Bunun yerine DrawBackground değiştiricisini kullanın. (I7ceb2)
Yalnızca görünür öğeleri oluşturan ve yerleştiren kaydırma listesi bileşeni AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan değişikliklerin tümünü tam olarak ele almaması yer almaktadır. (Ib351b)
Özel kaydırma çubukları/listeler oluşturulmasına olanak tanıyan kaydırılabilir bileşen eklendi (I5fd37).
Arka planı DrawBackground olarak yeniden adlandırın ve varsayılan olarak ezberlenmesini sağlayın (Ia0bd3).
Kutuya dolgu, kenarlık, şekil ve arka plan parametresi ekleyin (I05027, b/148147281)
Canvas bileşeni eklendi. Bu composable, belirli bir boyutu (kullanıcı tarafından sağlanır) kaplar ve CanvasScope (I0d622) kullanarak çizim yapmanıza olanak tanır.
BorderdeğiştiricisiniDrawBorderolarak yeniden adlandırın (I8ffcc)Düzen ve çizim ortak işlevlerini birleştirmek için Box bileşeni eklendi. (I6e2a7)
Kaydırma çubukları artık yerel Android hızlı kaydırma hareketini destekliyor. (I922af, b/147493715)
Border Modifier (Id335a) lehine DrawBorder değiştirildi.
Modifier.tag, Modifier.testTag ile karışıklığı önlemek için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
ConstraintLayout kılavuzları oluşturulurken kullanılan yüzde parametresinin adı kesir olarak değiştirildi. (Ida2db)
ConstraintLayout engellerinin kenar boşlukları için destek eklendi. (I47ffe)
ConstraintLayout'ta RTL desteği düzeltildi. Sağdan sola dil desteği olmayan API'ler eklendi. (I3b1c7)
ConstraintLayout için yeni bir DSL eklendi. Daha fazla bilgi için lütfen örneklere bakın. (Icaa9a)
@ExperimentalLayout ek açıklaması eklendi. ConstraintLayout, FlowRow ve FlowColumn, API'lerinin değişeceğini belirtmek için artık bu etiketle işaretleniyor. (I412a8)
Modifier.padding(InnerPadding)eklendi (I94985, b/157133803)Satır ve sütunda kullanımdan kaldırılan RowAlign, ColumnAlign kaldırıldı. (If60d4, b/155858731)
Desteği sonlandırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Modifier.tag() kullanın. Desteği sonlandırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Modifier.matchParentSize() kullanın. (If8044)
Piksel cinsinden (dinamik) uzaklıkları tanımlamak için kullanılabilecek offsetPx düzen değiştiricisi eklendi. (I5af57)
AlignmentLineOffset composable desteği sonlandırıldı. Lütfen bunun yerine relativePaddingFrom() değiştiricisini kullanın. CenterAlignmentLine composable'ı kaldırıldı. (I60107)
Varsayılan minimum boyut kısıtlamaları düzen değiştiricisi eklendi. Bu değiştirici, gelen ilgili kısıtlamalar belirtilmediğinde (minimum kısıtlamalar için 0, maksimum kısıtlamalar için sonsuz) boyut kısıtlamalarını yalnızca sarmalanmış düzene ayarlar. (I311ea, b/150460257)
Container kaldırıldı. Bunun yerine Box'ı kullanın (Ibbc2b, b/151407926)
Kullanımdan kaldırılan LayoutWidth/Height/Size değiştiricileri kaldırıldı. (Ib0bc1)
Offset değiştiricisi için varsayılan parametre değerleri eklendi. (I37f06)
Simetrik dolgu değiştiricisi eklendi. (I39840)
Kullanımdan kaldırılan LayoutAspectRatio değiştiricisi kaldırıldı. (I65a74)
Kullanımdan kaldırılan LayoutAlign değiştiricileri kaldırıldı. (I10877)
Sarmalanmış düzenin karşı eksen kısıtlamaları olmadan ölçülmesine neden olan genişlik ve yükseklik değiştiricilerindeki bir hata düzeltildi. (I210b8, b/154797971)
Satır ve Sütun'a sırasıyla verticalGravity ve horizontalGravity parametreleri eklendi. (I7dc5a)
wrapContentWidth ve wrapContentHeight, herhangi bir hizalama yerine dikey veya yatay hizalama bekleyecek ş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)
Alignment, rastgele değerlerle oluşturulabilir hale getirildi. 1D hizalamalar eklendi. (Ia0c05)
EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Malzeme düğmelerinin innerPadding parametresinin adı padding olarak değiştirildi. (I66165)
alignToSiblings artık Placeable yerine Measured'ı kabul ediyor. (I5788d)
Boyutlandırma için değiştiriciler, doğal ölçümlere eklendi ve bu amaca hizmet eden bileşenlerin desteği sonlandırıldı. (I8295d)
ConstraintLayout'un alt öğelerinin boyutlarını özelleştirme desteği eklendi (Idb1a5).
Kullanımdan kaldırılan Wrap ve Center composable'ları kaldırıldı. (I29e23)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi. LayoutModifier (If32ac) desteği sonlandırıldı.
RowScope ve ColumnScope üyelerine artık Row ve Column dışında da erişilebilir. (I3a641)
Kapsayıcının desteği sonlandırıldı. Bunun yerine Box'ı kullanın. (I675ce, b/151407926)
Düzen konumunu kaydırmak için LayoutOffset değiştiricisi eklendi (I0b8a3)
Compose düzeninde sağdan sola dil desteği (Ia5519)
LayoutAlign, artık mevcut alanı doldurmayacak şekilde güncellendi (I2b14f).
Değiştirici lehine AspectRatio composable'ı kaldırıldı. Kullanımdan kaldırılan FlexColumn, FlexRow composable'ları ve Spacing değiştiricisi silindi (Iec8a7).
Satır ve sütun için LayoutInflexible değiştiricisi kaldırıldı (I0d820).
TextField için seçimi değiştirmek üzere sürükleyerek seçim tutma yerlerini uygulayın. (I27032)
TextField Seçimi için LongPressAndDrag'i uygular. (I17919)
Hata Düzeltmeleri
- FocusModifier, Modifier.focus, Modifier.focusRequester ve Modifier.focusObserver yerine kullanımdan kaldırıldı. FocusState ve FocusDetailedState, FocusState2 lehine kullanımdan kaldırıldı (I46919, b/160822875, b/160922136)
runOnIdleCompose,runOnIdleolarak yeniden adlandırıldı (I83607)- Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
- Daha önce desteği sonlandırılan Modifier.ripple kaldırıldı. Clickable, artık varsayılan gösterge olarak dalgalanmayı kullanıyor (uygulamanızda MaterialTheme {} ayarlanmışsa). Bu nedenle, çoğu durumda yalnızca clickable'ı kullanabilir ve dalgalanma göstergesini ücretsiz olarak alabilirsiniz. Dalgalanmanın rengini, boyutunu veya sınırlı parametresini özelleştirmeniz gerekiyorsa RippleIndication'ı manuel olarak oluşturabilir ve bunu tıklanabilir öğeye gösterge parametresi olarak iletebilirsiniz. (I663b2, b/155375067)
- Eski boyut testi API'leri kaldırıldı. (Iba0a0)
- LayoutNode deneysel API'si yapıldı (I4f2e9)
- Kaydırma yönü kilitlemenin 1. sürümü Compose'da uygulanır. (I1ce7a, b/150289741)
- Pop-up'lar, iletişim kutuları ve menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)
- Layout() işlevinin ölçü bloğundan düzen yönü parametresi kaldırıldı. Ancak düzen yönü, geri çağırma içinde ölçü kapsamı nesnesi (Ic7d9d) aracılığıyla kullanılabilir.
- AbsoluteArrangement öğesini ekleyin. Bu öğe, satır içindeki alt öğelerin RTL'de otomatik yansıtma olmadan düzenlenmesine olanak tanır (I3a1df).
- @Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) ile değiştirin (Id211e)
- Bu değişiklikten önce, bir @Composable işlevinin içindeki oluşturuculara yapılan çağrılar, (I5205a, b/158123804) varsa Compose derleyici eklentisi tarafından önemsiz olmayan bir şekilde engelleniyordu.
- Activity veya Fragment'te olduğu gibi ViewModel oluşturmaya ya da önceden oluşturulmuş ViewModel'i almaya olanak tanıyan
viewModel()composable'ı ekleyin (I5fdd1). Radius sınıfı, satır içi sınıf olacak şekilde yeniden düzenlendi. Yarıçapın y ekseni boyunca zorunlu x ekseni yarıçapı parametresine uyması için varsayılan parametreye sahip işlev oluşturucu lehine eşlikçi oluşturma yöntemleri kaldırıldı.
DrawScope.drawRoundRect, x ve y eksenleri boyunca yarıçap için 2 ayrı kayan nokta değeri yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi (I46d1b).
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfının tamamı silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I086f4).
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanıldığı büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Id3434).
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a).
TextField'ın imleci yanıp sönme animasyonuna sahip (Id10a7)
Kısmi hareketler artık GestureToken (Id7ae5) iletilmesini gerektirmiyor.
Yalnızca piksel parametreleri için Dp ve temel türlere güvenmek üzere büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I57bff).
Yüksek düzeyli bileşenlerin kullanılmasına izin vermek için Modifier.semantics'in kullanımdan kaldırılması geri alındı. (I4cfdc)
AnnotatedString.Builder.addAnnotationString işlevini addStringAnnotation olarak yeniden adlandırın. (I5059e)
Alignment API güncellendi ve mutlak hizalama (Rtl bağlamında otomatik olarak yansıtılmayan) desteği eklendi (I38cd3).
Layout ve LayoutModifier alt öğeleri farklı bir düzen yönüyle ölçülebilir. (Ibd731)
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizilmesini desteklemek için ImagePainter'a ek isteğe bağlı rect parametresi eklendi.
Öğeler kaldırılırken AdapterList'te meydana gelen kilitlenme sorunu düzeltildi (Ic64b0, b/153195921).
Etkinlik.setContent { } bloğuna yerleştirdiğiniz ilk düzeni ölçme şeklimizi değiştirdik. Daha önce tüm etkinlik ekranını doldurmak zorunda olan bu öğe, artık düzeninizi bir Stack'in içine yerleştirmişsiniz gibi davranıyor: Ekrandan daha küçük olabilir ve ekranın sol üst kısmında konumlandırılır. Eski davranışı kullanmak 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. ui-text artık CoreText ve CoreTextField composable'larını içeriyor (Ib7d47).
ui-text modülünün adı ui-text-core olarak değiştirildi (I57dec).
ui-framework/CoreText ve CoreTextField composable'ları ui-text-compose altına taşındı. Projenize ui-text-compose'u eklemek isteyebilirsiniz. (I32042)
runOnIdleComposeverunOnUiThreadartık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)[Mutable]State özellik temsilcisi operatörleri, Kotlin 1.4 özellik temsilcisi optimizasyonlarını desteklemek için uzantılara taşındı. Arayanların
by state { ... }veyaby mutableStateOf(...)kullanmaya devam etmek için içe aktarma işlemleri eklemesi gerekir. (I5312c)DrawLayerModifier ve drawLayer() artık varsayılan olarak clipToBounds ve clipToOutline değerini false olarak ayarlar. (I0eb8b, b/152810850)
LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)
Desteği sonlandırılan Center composable'ı. LayoutSize.Fill + LayoutAlign.Center değiştiricisiyle veya uygun değiştiricilerin uygulandığı Box ya da Stack composable'larından biriyle değiştirilmelidir (Idf5e0).
LayoutFlexible, LayoutWeight olarak yeniden adlandırıldı. Sıkı parametrenin adı doldurma olarak değiştirildi. (If4738)
DrawVector, normal bir composable işlevden, vektörü bir düzenin arka planı olarak çizecek bir Modifier drawVector() döndürecek şekilde değiştirildi. (I7b8e0)
Clip composable işlevini drawClip() değiştiricisiyle değiştirin. DrawClipToBounds, yalnızca dikdörtgen şekliyle katman sınırlarını kırpmanız gerektiğinde kullanabileceğiniz kullanışlı bir değiştiricidir. (If28eb)
DrawShadow composable işlevi, drawShadow() değiştiricisiyle değiştirildi. Gölgeler artık LayerModifier'ın bir parçası olarak çiziliyor. (I0317a)
androidx.compose.ViewComposer, androidx.ui.node.UiComposer'a taşındı. androidx.compose.Emittable kaldırıldı. ComponentNode ile gereksizdi. androidx.compose.ViewAdapters kaldırıldı. Bu özellikler artık desteklenen bir kullanım alanı değildir. Compose.composeInto desteği sonlandırıldı. Bunun yerine
setContentveyasetViewContentkullanın. Compose.disposeComposition kullanımdan kaldırıldı. Bunun yerinesetContenttarafından döndürülenCompositionüzerindedisposeyöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto olarak taşındı. ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı. ComponentNode#emitRemoveAt, ComponentNode#removeAt olarak yeniden adlandırıldı. ComponentNode#emitMode, ComponentNode#move olarak yeniden adlandırıldı (Idef00).Desteği sonlandırılan Wrap composable'ı. LayoutAlign değiştiricisi veya Stack composable (Ib237f) ile değiştirilebilir.
Düzen yönünün üst düzen düğümünden alt düğümlere yayılması sağlandı. Düzen yönü değiştiricisi eklendi. (I3d955)
Yeni oluşturulan Modifier, birden fazla Modifier örneğinde paylaşılabilen orijinal Painter'a referans verdiğinden Painter.toModifier işlevini Painter.asModifier olarak yeniden adlandırın (I7195b).
LayoutPadding değiştiricisinde sağdan sola yön desteği (I9e8da)
Yoğunluk ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current kullanabilirsiniz. withDensity(density) yerine sadece with(density) kullanılmalıdır (I11cb1).
ValueHolder sınıfı kaldırıldı. Animasyon değeri alanının soyut olması için AnimatedValue ve AnimatedFloat sınıfları yeniden yapılandırıldı. Böylece alt sınıflar değer güncellemesini izleyebilir.
- AnimatedValue, AnimatedFloat vb. için model sınıfları eklendi.
- Değerler arasında animasyon oluşturmak için yeni bir hafif @Composable API grubu eklendi.
- (I79530)
Ambients API'de önemli değişiklikler yapıldı. Ayrıntılar için günlük ve
Ambient<T>dokümanlarına bakın (I4c7ee, b/143769776)Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi Int konumları artık boş değer içermiyor. Sorgulanan hizalama çizgisi eksikse AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)
Yeniden oluşturma işlemlerinde kilitlenmeye neden olan ConstraintLayout hatası düzeltildi. (Ibee5a, b/158164341)
WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702).
LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Layout ve LayoutModifier2'deki doğal ölçüm işlevleri artık doğal sorgu API'sini örtülü olarak yayılmış düzen yönüyle sağlayan bir IntrinsicMeasureScope alıcısına sahip. (Id9945)
LayoutDirectionAmbient kullanımdan kaldırıldı. Yerel ayar tarafından tanımlanan düzen yönünü okumak için ConfigurationAmbient'ta (I851b1) localeLayoutDirection'ı kullanın.
LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
ParentData composable kullanımdan kaldırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya yalnızca düzen çocuklarını ölçü bloğunda tanımak için etiketlemeniz gerekiyorsa LayoutTag değiştiricisini kullanmanız gerekir. (I51368, b/150953183)
OnPositioned ve OnChildPositioned composable işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier'ı ekleyin. (I2ec8f)
LayoutPadding'de negatif dolguya izin verilmez. Negatif konum telafileri için bunun yerine LayoutOffset kullanılmalıdır. (Ifb5b1)
WithConstraints, LayoutDirection parametresini aldı (I6d6f7)
ComposeFlags.COMPOSER_PARAMişaretinitrueolarak güncelledik. Bu değişiklik, Compose eklentisinin kod oluşturma stratejisini etkileyecek. Bu durum, üst düzeyde, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün bir şekilde yönetebilmesi için sonraki @Composable çağrılarına iletilir. Bu, önemli bir ikili uyumluluğu bozan değişikliktir ancak Compose'un izin verilen tüm kullanımlarında kaynak düzeyinde uyumluluğu korur. (I7971c)LayoutCoordinates, sağlananAlignmentLines'ı Map yerine Set olarak kullanacak ve değer almak için get() operatörünü uygulayacak şekilde değiştirildi. Bu sayede, değiştiriciler her değiştirici için yeni bir koleksiyon oluşturmadan kümenin bir veya daha fazla değerini daha kolay değiştirebilir. (I0245a)
LayoutCoordinates artık bir konum özelliğine sahip değil. LayoutModifiers, döndürme veya ölçekleme göz önünde bulundurulduğunda konum özelliği anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'ten diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() işlevlerini kullanmalıdır.
LayoutCoordinates, boyut özelliği için PxSize yerine IntPxSize kullanıyor. Düzenlerde tam sayı piksel boyutları kullanılır. Bu nedenle, tüm düzen boyutlarında kayan nokta değerleri değil tam sayılar kullanılmalıdır. (I9367b)
Kısıtlamaların API yüzeyinde yapılan iyileştirmeler (I0fd15)
Added TextDirection.Content (I48f36)
Araç çubuğu menüsünü, kopyalama, kesme ve yapıştırma işlemlerini düzgün şekilde gösterecek şekilde ayarlayın. (Id3955)
TextField seçimi için FloatingToolbar'ı ekleyin. (Ie8b07)
TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)
TextDirection, ResolvedTextDirection olarak yeniden adlandırıldı (I3ff38).
TextField seçiminde dokunsal geri bildirim ekleyin. (I58050)
TextField Selection'a Kopyala, Kes ve Yapıştır yöntemleri ekleyin. (Idb70b)
TestTag ve Semantics silindi. Bunun yerine Modifier.testTag ve Modifier.semantics kullanın (I15ff0, b/158841414)
Locale ve LocaleList için paket adı androidx.ui.text yerine androidx.ui.intl olarak değiştirildi (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.Rangeolarak yeniden adlandırıldı. (I2d44d)Metinle ilgili işlemler için araç çubuğu eklendi. (I49d53)
Yeni LifecycleOwnerAmbient artık kullanılabilir. Artık Compose kullanıcı arayüzü ile kullandığınız bir Etkinlik, androidx.activity.ComponentActivity'yi (veya AppCompatActivity) genişletmelidir. android.app.Activity'deki setContent artık kullanımdan kaldırılmıştır (Idb25a, b/153141084).
ui-android-text paket adı (androidx.text), androidx politikasına uygun olması için androidx.ui.text.platform ile değiştirildi. (I42711)