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 dokümanlarına bakın)
Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
30 Ekim 2024 | 1.7.5 | - | - | 1.8.0-alpha05 |
Yapı
Oluşturma, androidx
içindeki 7 Maven grup kimliğinin birleşimidir. Her grup, kendi sürüm notlarına sahip hedeflenen bir işlev alt kümesi içerir.
Bu tabloda, gruplar ve her sürüm notları grubunun bağlantıları açıklanmaktadır.
Grup | Açıklama |
---|---|
compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyon oluşturabilirler. |
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, Compose'un www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarım'ın yeni evrimi olan Materyal Tasarım 3 Bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3, güncellenmiş temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içerir ve yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
compose.runtime | Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler eklentisinin hedefleyeceği temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken yazma kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlı eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanızın veya modülünüzün build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Eski
dependencies { implementation "androidx.compose.foundation:foundation:1.7.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.7.0") } 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ştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
1.8 sürümü
Sürüm 1.8.0-alpha05
30 Ekim 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha05
yayınlandı. 1.8.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Metinleri otomatik olarak boyutlandırma desteği. En sevdiğiniz metin bileşenine (ör.
BasicText
) birAutoSize
örneği (ör.AutoSize.StepBased
) iletin ve metin boyutunuzun mevcut alana göre nasıl ayarlandığını görün. (Ice7e0, b/139320827) - Bir hiyerarşi içinde aşırı kaydırma yapılandırmasına izin vermek için
OverscrollFactory
veLocalOverscrollFactory
API'lerini ekler.LocalOverscrollFactory
aracılığıyla sağlanan değer, varsayılan olarakOverscrollEffect
oluşturmak için kullanılır. Mevcut fabrikadan bir efekt oluşturmak ve hatırlamak içinrememberOverscrollEffect()
simgesini kullanın. (I51ca4, b/255554340)
API Değişiklikleri
- Otomatik doldurma özelliğinin başarılı doldurma vurgusunun rengini değiştirmek için kullanılabilen
CompositionLocal
özelliğini kullanıma sunduk. (I32092) ScrollableDefaults.overscrollEffect
kaldırıldı. Bunun yerinerememberOverscrollEffect
kullanmalısınız. Bu işlem,LocalOverscrollFactory
ile 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
AutofillManager
arayüzü ve otomatik doldurmanın bu yeni sürümünü açmak içinisSemanticAutofillEnabled
işareti sunar. (I9d484) CombinedClickableNode
kaldırılır. Bu deneysel API, performans çalışmalarının engellemesini kaldırmak için geçici olarak kullanıma sunuldu ancak artık gerekli değildir. Bunun yerine, diğer değiştirici API'lerinde olduğu gibi doğrudanModifier.combinedClickable
kullanmalısınız. (I4b658)- Özel
OverscrollEffect
belirtme desteğiylehorizontalScroll
,verticalScroll
,LazyColumn
,LazyRow
,LazyHorizontalGrid
,LazyVerticalGrid
,LazyHorizontalStaggeredGrid
,LazyVerticalStaggeredGrid
,HorizontalPager
veVerticalPager
'a aşırı yüklemeler ekler. SağlananOverscrollEffect
, etkinlikleri alır ve bu bileşenlerin sınırları içinde oluşturulur. AynıOverscrollEffect
öğesinin iki kez çizilmesinin desteklenmediğini unutmayın. Bu nedenle, bu bileşenlerden birine sağlanan aynıOverscrollEffect
öğesiniModifier.overscroll
ile ayrı olarak çizemezsiniz. Fazla kaydırmayı bu bileşenlerin sınırlarının dışına çıkarma kullanım alanı ileride ayrıca 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
yayınlanır. Sürüm 1.8.0-alpha04 bu kaydetmeleri içerir.
API Değişiklikleri
- Bu değişiklikler yapıldığında düğüm durumunun güncellenmesine olanak tanımak için
DelegatableNode#onDensityChange
veDelegatableNode#onLayoutDirectionChange
geri çağırmaları ekler. (I04f3e, b/340662451) - Paragraf ve
ParagraphIntrinsics
,AnnotatedString
'a uygulanan tüm ek açıklamaların listesini alır. Daha önce yalnızcaSpanStyles
listesini alıyordu. (I12f80) - Tek bir işaretçi girişi değiştiricisinin dokunma sınırlarını genişletmek için kullanılabilen
PointerInputModifierNode#touchBoundsExpansion
özelliği kullanıma sunuldu. (Iccf02, b/335339283)
Hata Düzeltmeleri
AnchoredDraggableDefaults.flingBehavior
işlevine iletilen konumsal eşiklerin bazı senaryolarda doğru şekilde dikkate alınmamasına neden olan hata düzeltildi. (Ifdf0d, b/367660226)- Devam eden bir deneme sırasında düğüm ağacından kaldırılan iç içe yerleştirilmiş kaydırılabilir öğeler için bir düzeltme yapıldı. Şimdi bu düğümler hızla geçişi iptal eder ve kalan hızla
onPostFling
etkinliğini doğru şekilde gönderir. Ayrıca, gerileme durumunda davranışı kontrol etmek içinNewNestedScrollFlingDispatchingEnabled
işaretini de kullanıma sunuyoruz. İşaret, beta sürümünden önce kaldırılacaktır. (I05c37, b/371168883) OverscrollEffects
öğesininModifier.anchoredDraggable
öğesine geçtiği, 1D yerine 2D deltaların alınması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
yayınlanır. 1.8.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kotlin sürümü 1.9'a güncellendi (I1a14c)
DraggableAddDownEventFixEnabled
işareti kullanıma sunuldu (I848d5)- Erişim hizmetleri için a11y hizmetlerindeki liste davranışını taklit etmek üzere Bant adlı yeni bir Anlambilim rolü kullanıma sunuldu. (Id354b, b/354109776, b/239672673)
BasicText
bileşeninden örtülügraphicsLayer
değiştirici kaldırıldı. Eski davranışa geri dönebilmek için deneyselComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabled
işareti eklendi. (Ie478d)- Hiyerarşide yer alan alt öğelerin, ebeveynler onları
consumeWindowInsets()
olmadan hizaladığında bileinsetsPadding
kullanmasına izin vermek içinModifier.recalculateWindowInsets()
eklendi. (I7f9e4)
Hata Düzeltmeleri
detectDragGestures
, sürüklenebilir ve kaydırılabilir öğelerde hareketle öğe seçme özelliğini uygulayın. Artık, sürüklenebilir bir çocuk bir hareketi bıraktığında ebeveyn bu hareketi alabilir. Bu da daha kesintisiz ve entegre bir hareket işlemesine olanak tanır. (Ic88fe)- Kaydırılabilir reklamlarda hızlı kaydırmayı iptal etme davranışını güncelleyin. Artık kaydırılabilir bir öğe fırlatıldığında ve sınırlara çarptığında, fırlatma işlemini sürdürmek yerine fırlatma hızını zincirdeki bir sonraki kaydırılabilir öğeye doğru şekilde iletir. (I9326a)
Sürüm 1.8.0-alpha02
18 Eylül 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha02
yayınlanır. 1.8.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Artık
TextOverflow.StartEllipsis
veTextOverflow.MiddleEllipsis
ile tek satırlık metnin satırının başına veya ortasına üç nokta yerleştirebilirsiniz (I38913, b/185418980)
Sürüm 1.8.0-alpha01
4 Eylül 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha01
yayınlanır. 1.8.0-alpha01 sürümü bu taahhütleri içerir.
1.7 sürümü
Sürüm 1.7.5
30 Ekim 2024
androidx.compose.foundation:foundation-*:1.7.5
yayınlandı. 1.7.5 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Sabitlenmiş öğelerin içerik dolgu alanında iki kez alt derlenmediğinden emin olun. (Ic6224)
Sürüm 1.7.4
16 Ekim 2024
androidx.compose.foundation:foundation-*:1.7.4
yayınlanır. 1.7.4 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Metin alanlarında nadiren kilitlenmeye neden olan bir hata düzeltildi. (I475c6, b/313010266)
- Eşzamanlı olmayan düzen öğelerinin kökündeki
ReusableContentHost
kaldırıldı. Bu, "devre dışı bırakılmış bir düğümde çağrılan ölçüm" kilitlenmelerinin olası temel nedenlerinden biriydi. (Id6e60)
Sürüm 1.7.3
2 Ekim 2024
androidx.compose.foundation:foundation-*:1.7.3
yayınlanır. 1.7.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- minLines varsayılan olmayan bir değere ayarlandığında
BasicText
ile ilgili bellek sızıntısı düzeltildi.
1.7.2 sürümü
18 Eylül 2024
androidx.compose.foundation:foundation-*:1.7.2
yayınlanır. Sürüm 1.7.2 bu taahhütleri içerir.
Hata Düzeltmeleri
- Hızlıca kaydırmaların normalden daha yavaş görünmesine neden olan, aşağı kaydırma etkinlikleri eksik olan sürüklenebilirlik sorunu düzeltildi.
1.7.1 sürümü
10 Eylül 2024
- Android yapılarında değişiklik yok.
-desktop
yapı kaldırıldı,-jvmStubs
ve-linuxx64Stubs
yapı eklendi. Bu hedeflerin hiçbiri kullanılmak için tasarlanmamıştır. Bunlar, Jetbrains Compose çalışmalarına yardımcı olan yer tutuculardır.
1.7.0 sürümü
4 Eylül 2024
androidx.compose.foundation:foundation-*:1.7.0
yayınlanır. 1.7.0 sürümü bu taahhütleri içerir.
1.6.0 sürümünden bu yana yapılan önemli değişiklikler
Modifier.clickable
,Modifier.focusable
,Modifier.indication
,Modifier.scrollable
veModifier.draggable
'in performansı önemli ölçüde iyileştirildi. Bu çalışma kapsamında, şirket içi değişikliklere ek olarak aşağıdaki API değişiklikleri de yapıldı- Yeni bir Indication API (
IndicationNodeFactory
) eklendi. Bu sayede, önceki (artık kullanımdan kaldırılmış)rememberUpdatedInstance
API'ye kıyasla daha yüksek performanslı Gösterge uygulamaları elde edilebiliyor. Taşıma bilgileri için developer.android.com adresine bakın. clickable
/combinedClickable
/selectable
/toggleable
, artık boş değer atanabilirMutableInteractionSource
parametresini kabul ediyor. Boşsa ve sağlanan gösterge birIndicationNodeFactory
ise gösterge yalnızca gerektiğinde yavaşça oluşturulabilir. Bu da performansı artırır.MutableInteractionSource
öğesini kaldırmayıp kullanmıyorsanızremember { MutableInteractionSource() }
yerine null değerini iletmeniz önerilir.Indication#rememberUpdatedInstance
desteği sonlandırıldı. Kaçınılmaz bir performans cezası içerir ve diğer optimizasyonları önler. Bunun yerine yeniIndicationNodeFactory
API'yi kullanmalısınız.
- Yeni bir Indication API (
TextFieldState
kullananBasicTextField
artık kararlı durumdadır ve tüm çağrı sitelerininBasicTextField(value, onValueChange)
'tenBasicTextField(TextFieldState)
'e geçiş yapmaya başlamasını öneririz.ClickableText
desteği sonlandırıldı. Metninize tıklanabilir bağlantılar eklemek içinAnnotatedString
'inizde yeniLinkAnnotation
ek açıklamasıyla birlikteBasicText
kullanın.LinkAnnotation
, bağlantı durumuna (ör. odaklanılmış, fareyle üzerine gelinmiş) dayalı özel stil sağlar.- Karşınızda
MaxLines
veOverflow
ileContextualFlowRow
veEnhanced FlowRow/Column
. DeneyselFlowRow
veFlowColumn
'te yapılan geliştirmeleri duyurmaktan mutluluk duyuyoruz. ArtıkmaxLines
ve taşma desteğinin yanı sıraContextualFlowRow
veContextualFlowColumn
de kullanıma sunuldu. Bu güncelleme, performans açısından en uygun bileşenleri sağlamak için tasarlanmıştır.ContextualFlow*
, küçük bir maxLines yapılandırması ve dinamik +N daha fazla göster düğmesi kullanan çok sayıda öğe için mükemmeldir.FlowRow
veFlowColumn
ise 100'den az öğe içeren küçük öğe grupları için mükemmeldir. Önemli: Çapraz eksen maksimumuna sığmalarından bağımsız olarak tüm öğelerin oluşturulduğuFlowRow
veyaFlowColumn
'teki mevcut davranışı korumak için, ilklendirme sırasında taşma değeriniFlowRowOverflow.Visible
veyaFlowColumnOverflow.Visible
olarak ayarlayın. Bu yeni özelliklerin kullanım örneklerini görmek içinContextualFlowRowSample
veFlowRowSample
sayfalarını inceleyin. (Ib9135, b/293577082) LazyColumn
veLazyRow
bölümlerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Daha önce, yerleşim (yeniden sıralama) animasyonlarını desteklemek içinModifier.animateItemPlacement()
değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyanModifier.animateItem()
adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (I2d7f7, b/150812265)- Resmi Android API'sini (
ScrollCaptureCallback
) kullanarak Compose kaydırma kapsayıcılarında uzun ekran görüntüleri için deneysel destek uygulandı. NestedScroll
kaynakları olan sürükle ve fırlat, artık animasyonlar (yan etki) ve fare tekerleği ile klavye (UserInput
) içeren bu kaynakların genişletilmiş tanımına uyum sağlamak içinUserInput
veSideEffect
ile değiştiriliyor.LazyLayout
ön besleme istekleri artık acil olarak işaretlenebilir. Bu, bu öğenin sonraki karede gerekli olacağını beklediğimiz ve daha önceden daha fazla çalışma yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f)- Android U'dan sonraki cihazlarda ekran kalemiyle el yazısı özelliğini destekleme (I002e4)
- Çeşitli API'ler kararlı sürüme geçirildi
- Sayfalayıcılar, sabitleme, pencere içe eklemeleri
Sürüm 1.7.0-rc01
21 Ağustos 2024
androidx.compose.foundation:foundation-*:1.7.0-rc01
yayınlanır. 1.7.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Odaklanabilir (veya tıklanabilir) ve devre dışı bırakılmış bir üst öğenin içinde herhangi bir öğeye odaklanıldığında kilitlenmenin gerçekleştiği bir gerileme düzeltildi. (b/317561689)
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07
yayınlanır. Sürüm 1.7.0-beta07 bu kayıtları içerir.
Hata Düzeltmeleri
- Metin girişiyle ilgili
SemanticsNodeInteraction
işlevleriperformTextReplacement
,performTextInput
veperformTextClearance
artık salt okunurTextFields
üzerinde çağrıldığında doğrulama hataları atacaktır. (I4ae8f) - Köprülerdeki görsel bir hata düzeltildi. (I23311)
- Bazı IME'lerle çalışmayan
contentReceiver
değiştiricisi düzeltildi. - Hız oluşturma: Oluşturma kullanıcı arayüzünde ve Foundation'da NaN değerlerinin yayılmasını önler.
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.foundation:foundation-*:1.7.0-beta06
yayınlanır. Sürüm 1.7.0-beta06 bu kayıtları içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.foundation:foundation-*:1.7.0-beta05
yayınlandı. Sürüm 1.7.0-beta05 bu kayıtları içerir.
Hata Düzeltmeleri
SnapFlingBehavior
ve Sayfalayıcı'da Nan değerlerinin işlenmesi için düzeltme.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.foundation:foundation-*:1.7.0-beta04
yayınlandı. 1.7.0-beta04 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Çok büyük metin satırlarını (ör.10. 000 karakter) ölçerken kilitlenmelerden kaçının (8157ab)
- Yeni
BasicTextField
'te kilitlenmeye neden olan çok büyük metinlerin ölçülmesiyle ilgili sorunu düzeltir (6b7575) - Satır/Sütun ölçümünde, belirli senaryolarda metin kullanımına engel olan bir davranış değişikliğini geri alır (69e8ba)
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.foundation:foundation-*:1.7.0-beta03
yayınlanır. 1.7.0-beta03 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-beta02
yayınlanır. 1.7.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
LazyLists
için mevcut deneysel API'ye benzer şekildeLazyGrids
'ün ön getirme davranışını yapılandırmak üzere deneysel bir API ekler. İç içe yerleştirilmişLazyGrids
öğelerinin önceden önbelleğe alınması desteği de buna dahildir.LazyListPrefetchStrategy
'e benzer şekilde, uygulamanın varsayılan ayarı her ızgaranın ilk 2 iç içe yerleştirilmiş öğesini önceden almaktır ancak bu, yeniLazyGridPrefetchStrategy(nestedPrefetchItemCount)
veLazyListPrefetchStrategy#onNestedPrefetch
API'leri tarafından yapılandırılabilir. (I591c4)SemanticsProperties.Editable
,IsEditable
olarak yeniden adlandırıldı veSemanticsPropertyReceiver.editable
değeriisEditable
olarak değiştirildi. Özellik artık boole türüne sahip ve her zaman metin alanları tarafından belirtilir. (I8acd8)basicMarquee
varsayılan değerleriMarqueeDefaults
nesnesine taşındı. (I12ff6)basicMarquee
delayMillis
parametresirepeatDelayMillis
olarak yeniden adlandırıldı. (I12ff6)- Bağlantıların stilini belirlemek için API'yi güncelleme:
TextLinkStyles
öğesiniTextStyle
öğesine taşıdık veTextDefaults
öğesini materyalden kaldırdık (I5477b)
Hata Düzeltmeleri
- Amacını daha iyi yansıtmak için
LayoutCoordinates.introducesFrameOfReference
,LayoutCoordinates.introducesMotionFrameOfReference
olarak yeniden adlandırıldı. İlgili işlev, bu işarete göre koordinatları hesaplayacak şekilde yeniden adlandırıldı. (I3a330) - "Varsayılan",
MarqueeDefaults
özelliklerinden kaldırıldı. (I1d8a0) - "Marquee",
MarqueeDefaults
mülklerinden kaldırıldı. (Iad4f4) TextLinkStyles
,TextStyle
sınıfından kaldırıldı. Bunun yerineTextLinkStyles
,LinkAnntation
kurucusunun veAnnotatedString.fromHtml
yönteminin (I90b2b) bir parçasıdır.- Sayfalayıcı'nın, sınıra doğru fırlatıldığında sınıra yerleşmişken sıçramasına neden olan hata düzeltildi. (I9f373, b/339171222)
- BTF2'de artık fareyle seçim yapma hareketleri doğru şekilde çalışıyor. (Ibe8c6)
Harici Katkı
- "Doğruluğu artırmak için önceden getirmede zaman hesaplaması içerik türü oluşturma/ölçme"yi yeniden gönderin (Iea622)
- Doğruluğu artırmak için oluşturma/ölçüm süresi hesaplamasını ön beslemeye dayalı içerik türüne göre yapın (Ibccb1)
WindowInsetsPadding
değiştiricileri 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
yayınlanır. 1.7.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
KeyboardOptions.shouldShowKeyboardOnFocus
özelliği, ikili program uyumluluğu için desteği sonlandırıldığı için tekrar gizli olarak eklendi. (I15cfe)Modifier.anchoredDraggable
artık RTL düzeninde kullanıldığında yatay yönde bileşenler için varsayılan olarak sürükleme deltalarını tersine çeviriyor. (I3c6d9)AnnotatedString.hasEqualsAnnotations
artıkhasEqualAnnotations
. (I685c0)- Metinde Materyal temalı bağlantılar almak için API güncellendi. Özellikle, temalı
LinkAnnotations
oluşturmak ve temalı bağlantılarla HTML'yi ayrıştırmak içinTextDefaults
'ten yöntemler kaldırıldı. Bunun yerine, bağlantılara stil uygulamak için metin bileşenine parametre olarakTextLinkStyles
sınıfı eklendi. (I31b93) onDragStarted
veonDragStopped
, askıya alınmayan geri çağırmalarla değiştirildi. (I59de8)
Hata Düzeltmeleri
contentPadding
, gelen kısıtlamalardan büyük olduğunda Sayfalayıcı'nın kilitlenmesine neden olan hata düzeltildi. Sayfalayıcı artıkPageSize
olarak döndürülen negatif değerleri 0 olarak zorlar. (Iba5d8, b/314008560)
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08
yayınlanır. 1.7.0-alpha08 sürümü bu taahhütleri içerir.
Yeni Özellikler
BasicTextField
veSelectionContainer
sürümlerine kesme, kopyalama, yapıştırma ve tümünü seçme işlemlerine yönelik öğelerin bulunduğu sağ tıklama içerik menüsü eklendi. (If8c93, Ia2b49, I6f268)
API Değişiklikleri
LazyLayout
önceden getirme isteği artık acil olarak işaretlenebilir. Bu, bir sonraki karede bu öğenin gerekli olacağını ve önceden daha fazla iş yapmak için kare bütçesini yoksaymak istediğimiz anlamına gelir (Id513f).isPositionedByParentWithDirectManipulation
,introducesFrameOfReference
olarak yeniden adlandırıldı. Artık ters etkiye sahip olduğunu, yani varsayılan olarak çoğuLayoutCoordinates
özelliğinin bir referans çerçevesi içerdiğini ve yalnızca doğrudan manipülasyon altında bu mülkün yanlış olacağını unutmayın. Konum için yalnızca referans çerçevesi sunan öğelerle sorgu yapmak istiyorsanızpositionInLocalFrameOfReference(...)
değerini kullanın. Alternatif olarak,LookaheadScope
üzerindenpositionInLocalLookaheadFrameOfReference
. (Ifc5f7)LinkInteractionListener
içindekionClicked
öğesionClick
olarak yeniden adlandırıldı (Iaa35c)- API konseyi geri bildirimine göre
getScrollViewportLength
işlem lambda'sını değiştirin. (Ibc74a) - Ekran kalemi el yazısı yetkilendirme API'leri yeniden adlandırıldı. (Ica45f, b/327271923)
TextInclusionStrategy.isInside
'üisIncluded
olarak yeniden adlandırın.Paragraph/MultiParagraph#getRangeForRect()
döndürme türünü boş değer kabul etmeyen bir tür hâle getirin. (I51f26)
Hata Düzeltmeleri
SelectionContainer
'teki tüm metin bağlam menülerine "Tümünü seç" eklendi. (Ib750e, b/240143283)reverseScrolling=true
içeren kapsayıcıları kaydırmak için uzun ekran görüntüsü yakalama sorunu düzeltildi. (I7c59c)- Eyaletin sınırlarına yaklaşıldığında
AnchoredDraggableState
'nincurrentValue
değerinin değişmesi sorunu düzeltildi. (Iea30b, b/333846848)
Harici Katkı
PrefetchExecutor
->PrefetchScheduler
, sorumluluklarını daha iyi yansıtacak şekilde yeniden adlandırıldı. (Ib9154)- İç içe yerleştirilmiş
LazyLists
öğelerindeki öğeleri önceden getirmek için destek eklendi (ör. iç içe yerleştirilmişLazyRows
öğesini oluşturan birLazyColumn
). Bu değişikliğin, buLazyLists
için kaydırma sırasında kare düşüşlerini azaltması bekleniyor. Varsayılan uygulama, ilk 2 iç içe yerleştirilmiş öğeyi önceden almaktır ancak bu davranış yeniLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
veLazyListPrefetchStrategy#onNestedPrefetch
API'leri tarafından kontrol edilebilir. (I51952)
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07
yayınlanır. 1.7.0-alpha07 sürümü bu taahhütleri içerir.
Yeni Özellikler
LinkAnnotation
oluşturma ve bağlantılaraMaterialTheme
işlemini uygulayan HTML etiketli dizeyi ayrıştırma yöntemlerini içeren birTextDefaults
nesnesi eklendi. (I98532, b/139312671)LazyVerticalGrid
veLazyHorizontalGrid
bölümlerine öğe görünümü ve kaybolma animasyonu desteği eklendi. Daha önce, yerleşim (yeniden sıralama) animasyonlarını desteklemek içinModifier.animateItemPlacement()
değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyanModifier.animateItem()
adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (Ib7d12, b/330510929)LazyVerticalStaggeredGrid
veLazyHorizontalStaggeredGrid
'e öğelerin görünmesi ve kaybolması animasyonu desteği eklendi. Daha önce, yerleşim (yeniden sıralama) animasyonlarını desteklemek içinModifier.animateItemPlacement()
değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyanModifier.animateItem()
adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (I69bc9, b/330511290)
API Değişiklikleri
ContextMenuColors
ve ilişkiliLocalContextMenuTheme
ProvidableCompositionLocal
ekler. Metin alanlarındaki ve seçilebilir metindeki içerik menüsünün renkleri, bestenin yerel olarak sağlanmasıyla değiştirilebilir. (Ifa154)- Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelinen ve odaklanan stil seçeneği de aldı. (I5f864, b/139312671)
- El yazısı hareketleri için
ViewConfiguration.HandwritingGestureLineMargin
'ü tanıtın.BasicTextField
için el yazısı hareketini destekleyin. (Ie6e13, b/325660505) - İlgili API yüzeyinin geri kalanını stabilize etmeyi tamamlayacak zamanımız olmadığı için 1.7 sürümü için
DelegatableNode.scrollIntoView
kaldırıldı. Bu işlev, 1.8 sürümünde yeniden kullanıma sunulacaktır (I6cf61, b/333421581, b/332900232) - Artık Düzen koordinatlarını sorgularken, alt öğelerini
Placeable.PlacementScope.withDirectManipulationPlacement
kullanarak yerleştiren üst Layouts tarafından ayarlanan ofseti hariç tutmak içinexcludeDirectManipulationOffset
bağımsız değişkenini kullanabilirsiniz. Benzer şekilde, alt öğelerinin konumunu sık sık değiştiren bir Düzen artık bunlarıwithDirectManipulationPlacement
kullanarak yerleştirebilir (örneğin, Kaydırma, varsayılan olarak uygulanır). Bu sayedeapproachLayout
tabanlı animasyonlar daha sezgisel hale gelir. Artık animasyon yaklaşımına karar verirken hangi ofsetin animasyonlu olacağını ve nelerin doğrudan uygulanacağını ayırt etme fırsatı elde edersiniz. (I60ec7) LazyStaggeredGrid
içinrequestScrollToItem
'ü tanıtın. Müşteri artık her ölçüm geçişinderequestScrollToItem
çağrısı yaparak anahtara dayalı dizini korumayı devre dışı bırakabilir.requestScrollToItem
çağrılmadığı sürece bu, mevcut davranışı hiçbir şekilde değiştirmez. (I63983)- Sayfa ayırıcıda
requestScrollToPage
'ü tanıtın. Müşteri artık her ölçüm geçişinderequestScrollToPage
çağrısı yaparak anahtara dayalı dizini korumayı devre dışı bırakabilir. Bu işlem,requestScrollToPage
çağrılmadığı sürece mevcut davranışı hiçbir şekilde değiştirmez. (Ic4213) LazyGrids
içinrequestScrollToItem
özelliği kullanıma sunuldu. Müşteri artık her ölçüm geçişi içinrequestScrollToItem
öğesini çağırarak anahtara dayalı dizini korumayı devre dışı bırakabilir.requestScrollToItem
çağrılmadığı sürece bu, mevcut davranışı hiçbir şekilde değiştirmez. (I0a7a0)ClickableText
desteği sonlandırıldı olarak işaretlendi. Metne bağlantı eklemek için bağlantınıza karşılık gelen birLinkAnnotation
içeren birAnnotatedString
oluşturun ve buAnnotatedString
'yiText
bileşenine iletin (I34d4b, b/323346994)UrlAnnotation
desteği sonlandırıldı. Bunun yerineLinkAnnotation.Url
kullanın. Materyal teması kullanıyorsanız ek açıklamayı Materyal temasıyla (I8d180, b/323346545) oluşturmak içinTextDefaults
nesnesini kullanınString.parseAsHtml
,AnnotatedString.Companion.fromHtml
olarak yeniden adlandırıldı (I43dcd)parseAsHtml
yöntemine stil bağımsız değişkenleri (linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) ve bir bağlantı etkileşimi işleyicisi eklendi. HTML etiketli dizeyi<a>
etiketleriyle ayrıştırırken yöntem, bu tür her etiket için birLinkAnnotation.Url
oluşturur ve stil nesnelerini ve bağlantı etkileşimi dinleyicisini her ek açıklamaya iletir. (I7c977)LinkAnnotation
artık duruma dayalı stillendirme bağımsız değişkenlerini ve birLinkInteractionListener
alır. Köprü oluşturmak için bu ek açıklamayıAnnotatedString
içine ekleyin.focusedState
ve/veyahoveredState
parametrelerini ileterek, odaklandığında ve/veya fareyle ü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)
LazyColumn
artık uzun ekran görüntülerinde yapışkan başlıkları doğru şekilde oluşturacaktır. (I8d239, b/329296635)- Yeni
BasicTextField
ile kullanıma sunulan diğer deneysel API'lerin çoğu sabitlendi. (I714e2) BasicSecureTextField
öğesine, içerikler karartılırken hangi karakterin kullanılacağını kontrol edentextObfuscationCharacter
parametresi eklendi. (I0588b)NestedScroll
kaynaklarının sürükleme ve fırlatma işlemleri, artık animasyonlar (yan etki), fare tekerleği ve klavye (UserInput
) içeren bu kaynakların genişletilmiş tanımına uyum sağlamak içinUserInput
veSideEffect
ile değiştiriliyor. (I40579)- Kaydırılabilir değiştirici katmanında uygulanan, platforma bağlı bir odak kaydırma davranışı olan
LocalBringIntoViewSpec
'ü tanıtın. (I27aa5, b/317453911) TextFieldCharSequence
kaldırıldı.TextFieldBuffer.originalValues
,TextFieldBuffer.originalText
veTextFieldBuffer.originalSelection
ile değiştirildi. (I2c7d6)ImeOptions.hintLocales
artık boş değer kabul etmiyor. Boş bir yerel ayar listesi göndermek istiyorsanız lütfenLocaleList.Empty
değerini kullanın. (Ic5bc4)getOffsetFractionForPage
,getOffsetDistanceInPages
olarak yeniden adlandırıldı. (Ia05e2)
Hata Düzeltmeleri
InputTransformations
,next
ile birleştirildiğindeKeyboardOptions
'leri artık yeniKeyboardOptions.merge
yöntemi kullanılarak ayrı ayrı seçeneklere göre düzgün bir şekilde birleştiriliyor. (Ie5304, b/295951492)AnchoredDraggableState
'nintargetValue
özelliği artık konumsal eşikleri gözetmez. Artık %50'lik bir gizli eşiği var. Bu,targetValue
'ün iki ankrajın orta noktasında değiştiği anlamına gelir. (I82c2c)
Harici Katkı
- 2 kaydırma API'si yeniden adlandırıldı (I56a75)
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06
yayınlandı. 1.7.0-alpha06 sürümü bu taahhütleri içerir.
Yeni Özellikler
LazyColumn
veLazyRow
'e öğelerin görünmesi ve kaybolması animasyonu desteği eklendi. Daha önce, yerleşim animasyonlarını (yeniden sıralama) desteklemek içinModifier.animateItemPlacement()
değiştiricisi eklenebiliyordu. Bu değiştiricinin desteği sonlandırıldı ve üç animasyon türünü de (görünme (fade in), kaybolma (fade out) ve yeniden sıralama) desteklemenize olanak tanıyanModifier.animateItem()
adlı yeni bir deneysel olmayan değiştirici kullanıma sunuldu. (I2d7f7, b/150812265)LazyColumn/LazyRow
istemcileri artık askıya alınmayan birLazyListState.requestToScroll
çağırarak yaklaşan ölçüm geçişi için anahtara dayalı bir dizin oluşturmayı devre dışı bırakabilir. (I98036, b/209652366)- Stil özellikleri ayarlanmış dizeler için
parseAsHtml
yöntemi eklendi: HTML etiketleriyle işaretlenen bir dizeninAnnotatedString
biçimine dönüştürülmesine olanak tanır. Tüm etiketlerin desteklenmediğini unutmayın. Örneğin, henüz madde listeleri görüntüleyemezsiniz. (I84d3d) - Resmi Android API'si (
ScrollCaptureCallback
) kullanılarak Oluştur 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 durumlarda doğru şekilde işlenmeyebilir. Bu nedenle, şu anda varsayılan olarak devre dışıdır. Etkinleştirmek içinComposeFeatureFlag_LongScreenshotsEnabled
işaretini true olarak ayarlayın. Bu işaret, 1.7 beta sürümünden önce kaldırılacaktır. (I2b055, b/329296471) GraphicsLayer
örneklerinin yerleştirilmesi ve oluşturulmasında daha fazla esneklik sağlamak veGraphicsLayer
değiştirici örneklerini belirtmek için Composable uygulamalarıyla koordine olmak zorunda kalmadan dahili oluşturma özelliklerini desteklemek için yeniGraphicsLayer
API'yi kullanıma sunun.
API Değişiklikleri
- Artık tüm
KeyboardOptions
parametreleri varsayılan olarak belirtilmemiş bir değere sahip.KeyboardOptions.merge
yöntemi eklendi. KeyboardOptions.autoCorrect
,autoCorrectEnabled
olarak yeniden adlandırıldı ve null değerinin belirtilmediğini belirten null olarak ayarlandı. (Ia8ba0, b/295951492)outOfBoundsPageCount
,beyondViewportPageCount
olarak yeniden adlandırıldı. (I129c6)fun ClipEntry.getMetadata()
,val ClipEntry.clipMetadata
olarak değiştirilir. (I50155)TextFieldState.valueAsFlow()
kaldırıldı.snapshotFlow { state.text }
veyasnapshotFlow { TextFieldCharSequence(state.text, state.selection) }
(I7d629) kullanmayı tercih ediyorumInputTransformation.transformInput
parametreleri yeniden düzenlendi.originalValue: TextFieldCharSequence
kaldırıldı. Bunun yerineTextFieldBuffer
artık aynı ada sahip bu değeri taşıyor.valueWithChanges: TextFieldBuffer
parametresi de kaldırıldı.TextFieldBuffer
artık işlevdeki alıcı kapsamıdır. (I919cc)BasicTextField(state)
varyantı veBasicSecureTextField
, yazılım klavyesi tarafından gerçekleştirilen işlemleri işlemek için artıkKeyboardActions
yerineKeyboardActionHandler
kullanıyor. (I58dda)- "Sahte" metin giriş alanlarında ekran kalemiyle el yazısını desteklemek için ekran kalemiyle el yazısı yetkilendirme API'leri. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus
adlı dosyashowKeyboardOnFocus
olarak yeniden adlandırıldı. (Ib4b7a, b/295951492)hintMediaTypes
parametresi,Modifier.contentReceiver
öğesinden kaldırıldı. YapılandırılmışhintMediaTypes
ile uyumlu olmayabileceğinden geliştiricilerin, aldıklarıTransferableContent
öğesinin medya türünü kontrol etmeleri zaten tavsiye edildi. (I82f99)BasicSecureTextField
parametreleri yeniden sıralandı.BasicSecureTextField
için uygun olan varsayılanları korurkenkeyboardType
veimeAction
parametreleri kaldırıldı ve tamKeyboardOptions
sınıfı kullanıldı.scrollState
parametresi de kaldırıldı. (Ibbfa9)TextFieldState.text
öğesininTextFieldCharSequence
olan türü yalnızcaCharSequence
olarak değiştirildi. Bu nedenle, mevcut seçim ve kompozisyon değerlerini doğrudan durum nesnesinden okumak içinTextFieldState.selection: TextRange
veTextFieldState.composition: TextRange?
eklendi.TextFieldState.forEachTextValue
kaldırıldı. (Idb2a2)ClipboardManager.getClipMetadata
veClipboardManager.hasClip
işlevleri kaldırıldı. Geçerli klip girişinin meta verilerini okumak için lütfenclipEntry.getMetadata()
kullanın. Panoda mevcut bir klibin olup olmadığını anlamak için ayrıcaClipboardManager.getClip
işlevinin boş olup olmadığını kontrol edin. (I50498)ClipboardManager.setClip
artık panoyu temizleyebilmek için null değerini kabul ediyor. (I7d2e9)ReceiveContentListener
, işlev arayüzüne dönüştürülür. AyrıcaReceiveContentListener
artık bir işlev arayüzü olduğu için lambda alanModifier.receiveContent
aşırı yükleme işlevi de kaldırıldı.Modifier.receiveContent
,Modifier.contentReceiver
olarak yeniden adlandırıldı. (I1e6af)TransferableContent.consumeEach
,TransferableContent.consume
olarak yeniden adlandırıldı. (I1e462)rememberTextFieldState
, kararlı bir API'ye geçti. (I37999)
Hata Düzeltmeleri
BasicTextField(state)
varyantının CJK(kompozisyona dayalı) klavyelerle çalışmamasına neden olan hata düzeltildi. (I54425)Modifier.dragAndDropTarget()
'ün,Modifier.Node
yeniden kullanımıyla belirli senaryolarda eski verilere referans verebileceği bir hata düzeltildi. (I05bb1)AnchoredDraggableState#anchoredDrag
çağrılarının biranchoredDrag
işleminin sonunda sonlandırıldığı yakın tarihli bir sözleşme değişikliğini geri aldık. (I95715)
Sürüm 1.7.0-alpha05
20 Mart 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha05
yayınlanır. 1.7.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Köprülerin stilini belirlemek için deneysel
LocalTextLinkStyle
yerel kompozisyonu kaldırıldı. (Iebfa7) BasicText
içinonLinkClicked
bağımsız değişkeni ile deneysel geçersiz kılma kaldırıldı. Gelecekte köprü desteği için yeni bir API kullanıma sunulacaktır. (I107d5)TextFieldState
veTextFieldBuffer
altındaki kod noktalarıyla ilgili yöntemler ve özellikler kaldırıldı. AyrıcainChars
son ekleri, kalan seçim ve kompozisyonla ilgili API'lerden kaldırıldı. (Ief7ce)AnchoredDraggable
adlı kullanıcınıncurrentValue
değeri artık bir sabitleme noktasından geçerken güncellenecek. ÖncekicurrentValue
anlamlarını almak içinsettledValue
kullanın. Yalnızca bir ankraja yerleştiğinde güncellenir. İlerleme artık bir özellik yerine işlev olarak (başlangıç ve bitiş noktası gerektirir) gösterilmektedir. (Ibe6e8, b/318707189, b/298271489, b/294991954)BasicTextField(state)
,TextFieldState
,InputTransformation
,OutputTransformation
,TextFieldLineLimits
,TextFieldDecorator
kararlı olarak derecelendirilir. (I9582b)- Düşük düzey IME ile ilgili testleri ve diğer düşük düzey IME kullanım alanlarını yazmaya yardımcı olması için
InterceptPlatformTextInput
kullanıma sunuldu.PlatformTextInputTestOverride
desteği sonlandırıldı. (I862ed, b/322680547) restrictedConstraints()
'ü iki yönteme bölün:fitPrioritizingWidth()
vefitPrioritizingHeight()
(I6d7fd)
Harici Katkı
- En son kaydırma işleminin kaydırma yönünü kontrol etmek için 2 yeni API (
isLastScrollForward
/isLastScrollBackward
) eklendi. Henüz kaydırma işlemi yoksa "yanlış" değerini döndürür. (I63a0e)
Sürüm 1.7.0-alpha04
6 Mart 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha04
yayınlanır. 1.7.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Android U'dan sonraki cihazlarda ekran kalemiyle el yazısı özelliğini destekleme (I002e4)
TextFields
'ye, tercih edilen dili önceden ayarlamak için IME'lere belirli yerel ayarlar ile ipucu verme olanağı sağlamak amacıylahintLocales
,KeyboardOptions
'e eklendi. (Id18c2)value: String
veonValueChange: () -> String
parametrelerini alan deneyselBasicTextField2
veBasicSecureTextField
aşırı yüklemeleri kaldırıldı. (I568b4)- Uygulandığı
BasicTextField2
kodunun anlamını etkilemek içinInputTransformation
öğesine isteğe bağlı birapplySemantics
işlevi ekleyin. (I74a2f, b/170648072) - Bu CL'de, oluşturma işleminde kaydırılan bileşenlerle ilgili bilgileri a11y sistemine aktarabilmek için
GetScrollViewportLength
semantik işlemini ekliyoruz. Bu CL, söz konusu mülkün Temel Kaydırılabilir Listeler'de kullanımını da kapsar. (Ic5fa2) BasicTextField2
,BasicTextField
olarak yeniden adlandırıldı. (Ie5713)FocusRequester.createRefs
artık kararlı durumda (I4d92c, b/261436820)- Değiştirici düğümlerin doğrudan
scrollIntoView
isteği göndermesine izin vermek içinDelegatableNode.scrollIntoView()
kullanıma sunuldu. (I2b3b7, b/299939840) - Değiştirici düğümlerin yerel bir beste okumadan mevcut Android
View
bilgisini almasını sağlamak içinDelegatableNode.requireView()
kullanıma sunuldu. (I40768) - Bağlamsal Akış Satır Kapsamı ve İçeriğe Dayalı Akış Sütun Kapsamı içinde içeriğe dayalı düzen bilgilerinin sunulması, çizgi dizini, konum ve belirtilen konumda kalmak için maksimum genişlik ve yükseklikle ilgili kısıtlamalara yer vermektedir. Maksimum genişliği/yükseklik aşılan öğeler, taşma ayarlarına bağlı olarak bir sonraki satıra akabilir veya atlanabilir. (Id13f8, b/292114798)
Hata Düzeltmeleri
- Belirli koşullarda
TextField
öğesininenabled
veyareadOnly
özelliklerinin değiştirilmesinin kilitlenmeye neden olduğu bir hata düzeltildi. (Iae17b)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha03
yayınlanır. 1.7.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
onPlaced
'ı geçersiz kılma ve koordinatları bir mülkte kendiniz depolamanıza gerek kalmadanModifier.Node
'nin mevcutLayoutCoordinates
değerini almak içinDelegatableNode.requireLayoutCoordinates()
kullanıma sunuldu. (Ia8657)onPlaced
öğesini geçersiz kılmanıza ve koordinatları bir mülkte saklamanıza gerek kalmadanModifier.Node
ürününün mevcutLayoutCoordinates
değerini almanın bir yolu olarakDelegatableNode.currentLayoutCoordinates
kullanıma sunuldu. (Iaebaa)AnchoredDraggable
tarafından kullanılanDraggableAnchors
'teki performans optimizasyonları. (I89cff)BasicTextField2
veandroidx.compose.foundation.text2
paketindeki ilgili API'lerandroidx.compose.foundation.text
'e taşınır. (I9f635)BasicTextField2
artıkCodepointTransformation
parametresini kabul etmiyor.BasicSecureTextField
veyaOutputTransformation
kullanın. (Id34ff)- Yalnızca iki
AnnotatedStrings
notunu karşılaştırmak için yöntem eklendi. (I32659) MaxLines
veOverflow
ileContextualFlowRow
ve GelişmişFlowRow
/Column
özelliklerini kullanıma sunuyoruz. DeneyselFlowRow
veFlowColumn
'te yapılan geliştirmeleri duyurmaktan mutluluk duyuyoruz. ArtıkmaxLines
ve taşma desteğinin yanı sıraContextualFlowRow
veContextualFlowColumn
de kullanıma sunuldu. Bu güncelleme, performans açısından en uygun bileşenleri sunmak için tasarlanmıştır.ContextualFlow*
, küçük birmaxLines
yapılandırması ve dinamik +N daha fazla göster düğmelerini kullanan çok sayıda öğe için mükemmeldir.FlowRow
veFlowColumn
ise 100'den az öğe içeren küçük bir grup için mükemmeldir. Önemli: Çapraz eksende maksimum değere sahip olup olmadıklarına bakılmaksızın tüm öğelerin oluşturulduğuFlowRow
veyaFlowColumn
ürününde mevcut davranışı korumak için başlatma sırasındaoverflow
değeriniFlowRowOverflow.Visible
veyaFlowColumnOverflow.Visible
olarak ayarlayın. Bu yeni özelliklerin kullanım örneklerini görmek içinContextualFlowRowSample
veFlowRowSample
sayfalarını inceleyin. (Ib9135, b/293577082)
Hata Düzeltmeleri
- İşaretçi animasyonu artık açık ve kapalı durumlar arasında kare isteğinde bulunmuyor. (Ia2253)
- Desteği sonlandırılan
KeyboardOptions
kopyalama kurucuları artık tüm özellikleri doğru şekilde kopyalıyor. (If12de)
Sürüm 1.7.0-alpha02
7 Şubat 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha02
yayınlanır. 1.7.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
HorizontalPager
,VerticalPager
vePagerState
kararlı sürüme yükseltildi. (I67660, b/316966909)- Uygulamada Metin bölümündeki bağlantıların stilini değiştirmeye olanak tanıyan yerel
LocalTextLinkStyle
kompozisyonu eklendi. Uygulamada kendi temanızı kullanıyorsanız bu besteyi temanıza göre yerel olarak ayarlamanız gerekir. Material teması kullanıldığında bağlantının rengi varsayılan olarak Material'ın birincil rengine ayarlanır. (I7eb10) - Geliştiricilere Jetpack Compose'da zengin içerik alma olanağı sunan
receiveContent
değiştiricisi kullanıma sunuldu. receiveContent
, yazılım klavyesi tarafından sağlanan veya Pano yapıştırma işlemi aracılığıyla zengin içeriği kabul etmek içinBasicTextField2
ile entegre olur. (I81b72)- Bu değişiklikle birlikte, diğer kullanım alanlarını açmak ve daha fazla esneklik sağlamak için sayfalayıcıda
SnapFlingBehavior
yerineTargetedFlingBehavior
kullanacağız. (I762ea) - Bu değişiklikle birlikte, Snapping API'lerini kararlı hale getiriyoruz. Ayrıca, test kodunun bir kısmını temizliyor ve Snapping'e daha fazla örnek ekliyoruz. (Id8da9)
- Devam eden animasyonun durumu ve hedef kaydırma ofseti hakkında bilgi yayılmasına olanak tanıyan bir
FlingBehavior
olanTargetedFlingBehavior
'ü tanıtın. (I6a207)
Hata Düzeltmeleri
BasicTextField2
artık yazı yazarken görünüm dışına çıktığında veya giriş nedeniyle görünüm dışına çıkarken imleci görünür durumda tutuyor. (Ieb856, b/237190748)
Harici Katkı
- LazyLists'in ön getirme davranışını yapılandırmak için deneysel bir API ekler. (I022a4)
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha01
yayınlanır. 1.7.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Yeni bir
Indication API
(IndicationNodeFactory
) eklendi. Bu sayede, önceki (artık desteği sonlandırılmış)rememberUpdatedInstance
API'ye kıyasla daha yüksek performanslıIndication
uygulamaları elde edebilirsiniz. Taşıma bilgileri için developer.android.com adresine bakın. clickable / combinedClickable / selectable / toggleable
artık boş değer atanabilirMutableInteractionSource
parametresini kabul etmektedir. Boşsa ve sağlananIndication
birIndicationNodeFactory
iseIndication
yalnızca gerektiğinde yavaşça oluşturulabilir. Bu da performansı artırır. Kaldırmıyor veMutableInteractionSource
değerini kullanmıyorsanız null değerini iletmeniz önerilir.
API Değişiklikleri
AnchoredDraggable
içindeDecayAnimation
tanıtın. Bu değişiklik,AnchoredDraggable
'a birdecayAnimationSpec
parametresi ekler ve sabit noktalardan birine yerleşirken azalma animasyonunun kullanılmasını sağlar. Bu değişiklik, her bir spesifikasyonun kullanım alanını anlamanıza yardımcı olmak için mevcutanimationSpec
değerininsnapAnimationSpec
olarak yeniden adlandırılmasını da içerir.BasicTextField2
deneme amaçlı kullanılabilir.BasicTextField
ile yaklaşık olarak aynı özelliklere sahip olmalı ve davranış üretime hazır olmalıdır. Ancak API şu anda deneyseldir. Kararlı hale gelmeden önceBasicTextField
olarak yeniden adlandırılır ve aynı pakete taşınır.BasicTextField2
içinOutputTransformation
API'nin ilk taslağını kullanıma sundu. Bu API, eskiBasicTextField
'dakiVisualTransformation
kullanım alanlarının çoğunu değiştirir. Ancak henüz tamamlanmadı ve bazı şeyler düzgün çalışmayacaktır. Ancak kullanım alanlarınız için API kullanılabilirliğiyle ilgili geri bildirimlerinizi bekliyoruz. (aosp/2708848)- Metne bağlantı ve tıklanabilir öğe eklemeye olanak tanıyan
LinkAnnotation
kullanıma sunuldu. Bağlantılar özelliği henüz tamamlanmadı ve daha fazla API değişikliği yapılacak. - Geliştiricilere Jetpack Compose'da zengin içerik alma olanağı sunan
receiveContent
değiştiricisi kullanıma sunuldu. receiveContent
, yazılım klavyesi tarafından sağlanan veya Pano'dan yapıştırılan zengin içeriği kabul etmek içinBasicTextField2
ile entegre olur.KeyboardOptions.shouldShowKeyboardOnFocus
,BasicTextField
'un odağa alındığında yazılım klavyesi isteme varsayılan davranışını devre dışı bırakmanıza olanak tanır.TextInputService
veLocalTextInputService
artık kullanımdan kaldırıldı. Bunun yerine doğrudan platform IME API'leriyle entegrasyon içinPlatformTextInputModifierNode
kullanın. (aosp/2862698)Indication#rememberUpdatedInstance
desteği sonlandırıldı. Kaçınılmaz bir şekilde yüksek performans cezasına sahiptir ve diğer optimizasyonları engeller. Bunun yerine yeniIndicationNodeFactory
API'yi kullanmalısınız.
Hata Düzeltmeleri
BasicTextField
,VisualTransformation
iletildiğinde artık küçük bir ofset eşleme seçimini önceden doğrular. Bu, daha sonraki ölçüm veya çizim geçişlerinde kurtarılamaz istisnalara yol açan yaygın kodlama hatalarını yakalamanıza yardımcı olur. Oluşturma sırasında hata atarak geliştiricilerin bu hataları geliştirme sırasında görme olasılığı artar. Bu da üretimde kilitlenmeleri önlemeye yardımcı olur. (I0fd42)- Geçersiz bir dizin için geçersiz bir dizin döndürürseniz
VisualTransformation
hata vermez (b/316401857 )
Sürüm 1.6
1.6.8 sürümü
12 Haziran 2024
androidx.compose.foundation:foundation-*:1.6.8
yayınlanır. Sürüm 1.6.8 bu taahhütleri içerir.
1.6.7 sürümü
1 Mayıs 2024
androidx.compose.foundation:foundation-*:1.6.7
yayınlanır. 1.6.7 sürümü bu taahhütleri içerir.
1.6.6 sürümü
17 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.6
yayınlanır. Sürüm 1.6.6 bu taahhütleri içerir.
Hata Düzeltmeleri
- Belirli koşullarda
TextField
öğesininenabled
veyareadOnly
özelliklerinin değiştirilmesinin kilitlenmeye neden olduğu bir hata düzeltildi. (Iae17b)
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.foundation:foundation-*:1.6.5
yayınlanır. Sürüm 1.6.5 bu taahhütleri içerir.
Hata Düzeltmeleri
- Şu satır veya sütundaki yeniden oluşturulması zor hatalara hata ayıklama günlükleri ekler: (b/300280216 ve b/297974033)
1.6.4 sürümü
20 Mart 2024
androidx.compose.foundation:foundation-*:1.6.4
yayınlanır. 1.6.4 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Uzun basıp sürükleme seçim hareketi, sürüklemenin ilk karesinde metnin düzen sınırlarının dışına çıktığında artık kilitlenmiyor. (Icdf90, b/325307463)
Sürüm 1.6.3
6 Mart 2024
androidx.compose.foundation:foundation-*:1.6.3
yayınlanır. 1.6.3 sürümü bu taahhütleri içerir.
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.foundation:foundation-*:1.6.2
yayınlandı. 1.6.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
AnimateContentSize
'in düzgün şekilde sıfırlanmasını düzeltme (I07051)- Bazı durumlarda metnin
intrinsicHeight
'ü fazladan önbelleğe alınmasıyla ilgili sorun düzeltildi. (3cd398, b/217910352)
1.6.1 sürümü
7 Şubat 2024
androidx.compose.foundation:foundation-*:1.6.1
yayınlandı. Sürüm 1.6.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Ekran kaydırıldığında sınırın üzerine çıkıldığında ızgara ölçüsünün kademeli olarak gösterilmesi düzeltildi. (bffc39)
- Büyük boyutlara sahip düzen kontrolü ekleyin. (e74af5)
- Aralıklı ızgaranın başındaki 0 boyutundaki öğelerin yerleşimini düzeltin. (785f94)
- onRelease geri çağırmasını, onForgotten ile aynı sırayla çağırın. (31ce3b)
1.6.0 sürümü
24 Ocak 2024
androidx.compose.foundation:foundation-*:1.6.0
yayınlanır. 1.6.0 sürümü bu taahhütleri içerir.
1.5.0'dan bu yana önemli değişiklikler
- Önceden tanımlanmış bağlayıcılar arasında sürükleme ve animasyon yapma olanağı sağlayan yeni Değiştirici
Modifier.anchoredDraggable
. Bu değiştirici,Modifier.swipeable
ürününün yerini almak üzere tasarlanmıştır. Taşıma kılavuzundan bu aracı nasıl kullanacağınızı veModifier.swipeable
'ten nasıl geçiş yapacağınızı öğrenin. - Uygulamalar ve bileşenler arasında sürükle ve bırak işlevi eklendi. Başlamak için
DragAndDropTarget
,Modifier.dragAndDropSource
ve diğer API'leri inceleyin Modifier.draggable2D
, kolay 2D sürükleme desteği sağlayan yeni değiştiricidir. Örnek bölümüne bakın.AndroidExternalSurface
veAndroidEmbeddedExternalSurface
, Compose'da yüzeye dayalı bileşenleri eklemeyi kolaylaştırmak için eklendiPager
vesnapFlingBehaviour
'te çeşitli API değişiklikleri ve iyileştirmeleri- Çeşitli odak, metin ve içe yerleştirilmiş öğe API'leri kararlı API'lere yükseltildi
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.foundation:foundation-*:1.6.0-rc01
yayınlandı. Sürüm 1.6.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
DragAndDropTarget()
uzantısı oluşturucu kaldırıldı.object: DragAndDropTarget {}
kullanarak yeni bir örnek oluşturun. (I32318)
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.foundation:foundation-*:1.6.0-beta03
yayınlandı. 1.6.0-beta03 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Sonsuz kısıtlamayla ölçülen çok büyük metinleri etkileyen kilitlenme düzeltildi. (I1a7df, b/312294386)
PlatformImeOptions
artık arayüz yerine somut bir sınıftır. (If40a4)
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.foundation:foundation-*:1.6.0-beta02
yayınlanır. 1.6.0-beta02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Yalnızca geçişe yönelik kaydırmadan sonra
canScroll
güncellenmemesi için düzeltme uygulandı. (I60a86) - Küçük kaydırmalardan sonra
Modifier.animateItemPlacement()
veLookaheadScope
için düzeltme uygulandı. (I3a2b7)
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.foundation:foundation-*:1.6.0-beta01
yayınlandı. 1.6.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
DragAndDropTarget
değiştiricisi artık alıcıDragAndDropTarget
öğesini açıkça alıyor ve sürükle ve bırak oturumunu etkinleştirmek için bir lambda içeriyor. ArtıkDragAndDropModifierNode
için iki fabrika işlevi vardır. Biri aktarım almak, diğeri veri aktarmak için (I69481)maximumFlingVelocity
, kayan noktalı olarak temsil edilecek şekilde güncellendi.maximumFlingVelocity
birimi hakkında daha net bilgi vermesi için dokümanlar güncellendi. (I8adc7)DragAndDropModifierNode
fabrikasındakionDragAndDropStart
,acceptDragAndDropTransfer
olarak yeniden adlandırıldı.acceptsDragAndDropTransfer
, sürükle ve bırak oturumunda kabul edilmek üzeredragAndDropTarget
Modifier
alanına eklendi. Bu lambda, sürükle ve bırak oturumuyla ilgileniyorsanız geçerli birDragAndDropTarget
döndürür. Sürükle etkinliklerini işlemek için kullanılan diğer lambdalar bununla değiştirildi.Sürükle ve bırak oturumlarından veri almak için
DragAndDropTarget
fabrika işlevi eklendi (Iebf3a)AnchoredDraggable
içindestartDragImmediately
özelliğinin gösterilmesi, bu özelliği kullanırken sürükleme hareketlerini algılama kontrolünün elde edilmesini sağlar. Widget bir hedef ankraja doğru animasyon yaparken bu değeri ayarlamak faydalıdır. Örnek bölümüne bakın. (Ie6d13, b/285139987)Foundation Tooltip API'leri artık
@ExperimentalFoundationApi
(I30b0b)DragAndDropInfo
türü kaldırıldı.DragAndDropModifierNode.drag
artıktransferData
, dekorasyon boyutu ve sürükle dekorasyonDrawScope
lambda parametrelerini alıyorDragAndDropTarget
, tek bir soyut yöntem yerine belirli sürükle ve bırak etkinlikleri için yöntemler içeriyorDragAndDropModifierNode
ürününün fabrika işlevindekionDragAndDropEvent
, sağlananDragAndDropTarget
parametresinin yalnızca belirli bir sürükle ve bırak oturumu için geçerli olduğunu daha iyi bildirmek amacıylaonDragAndDropStart
olarak yeniden adlandırıldıDragAndDropEventType
kaldırıldı (I645b1)PlatformTextInputModifierNode.runTextInputSession
,establishTextInputSession
olarak yeniden adlandırıldı. (I03cd0)OriginalText
yerineTextSubstitution
yazın. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
,runTextInputSession
olarak yeniden adlandırıldı. (Ie9c6b)Gelecekte yeniden kullanılmak üzere tutulan
SubcomposeLayout
öğelerinin (ve buna dayalıLazyColumn
gibi düzenlerin) devre dışı bırakıldığı kabul edilir. Bu tür düğümleri test etmek için yeniassertIsDeactivated()
test API'si kullanıma sunulmuştur. Test API'lerinin geri kalanı, devre dışı bırakılan düğümleri varsayılan olarak filtreler. (I2ef84, b/187188981)Modifier.magnifier
işlevininclippingEnabled
parametresiclip
olarak yeniden adlandırıldı.Modifier.magnifier
sınıfınınmagnifierCenter
parametresi, aynı varsayılan davranışı koruyarak null olabilir hale getirilir. (I6aa66)Material
SwipeToReveal
API'leri (kartlar ve çipler için), bu yuvaları oluşturmak üzere artık veri sınıfına dayalı örnekler yerine yuva tabanlı bir API'den (Compose tarafından önerilen) yararlanıyor. Bu, önemli bir değişikliktir. Yeni API'nin nasıl kullanılacağına ilişkin örnekler için lütfen demoya ve örnek koda bakın. (Ia8943)
Hata Düzeltmeleri
PageSize.Fixed
için eşittir ve karma kodu uygulayın. (Ie3ede, b/300134276)minWidth
değiştiğinde veminWidth
, ilk ölçüm kısıtlamalarındanmaxWidth
daha az olduğundaBasicText
düzeninin küçülmemesine neden olan bir hata düzeltildi (Idb19c)ArcLine
sürümünde Süpürme Gradyan için oluşturucu desteği ekleyin. (I4d5bb)- Pencere içe yerleştirilmesi değişikliğiyle ilgili ikili uyumluluk sorunu düzeltildi (Iee695)
- Mikro karşılaştırmalar, bu katman olmadan daha iyi performans gösterdiğinden Material3 çipi/düğmesi için materyal çekirdek katmanını kaldırın. (I55555)
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha08
yayınlanır. 1.6.0-alpha08 sürümü bu taahhütleri içerir.
Yeni Özellikler
Modifier.draggable2D
, kolay 2D sürükleme desteği sağlayan yeni değiştiricidir. Örnek'e (Id95f5, b/214412658) bakın.
API Değişiklikleri
Modifier.dragAndDrawSource
içinonDrawDragShadow
lambdadrawDragDecoration
olarak,DragAndDropInfo
için boyut parametresi isedragDecorationSize
olarak yeniden adlandırıldı. (Id0e30, b/303904810)BasicTextField2
parametresidecorationBox
parametresidecorator
olarak yeniden adlandırıldı. Ayrıca türü, eşdeğer bir eğlenceli arayüzTextFieldDecorator
ile değiştirildi. (I23c1c)
Hata Düzeltmeleri
onValueChange
koşullarıyla ilgiliBasicTextField
ile ilgili belgeler iyileştirildi. (I90fc9, b/160257648)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha07
yayınlandı. 1.6.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Özel metin düzenleyiciler için yazma testleri ile ilgili
PlatformTextInputMethodTestOverride
kullanıma sunuldu. (Id159b) GraphicsSurface
,AndroidExternalSurface
(I11680) olarak yeniden adlandırıldı- Doğrusal olmayan yazı tipi ölçeklendirmeyi devre dışı bırakmak için
DisableNonLinearFontScalingInCompose
geçici işareti eklendi. Testlerinizi temizlemek için zamana ihtiyacınız varsa testlerinizdeDisableNonLinearFontScalingInCompose = true
değerini ayarlayın. Bu işaret, Oluştur 1.6.0-beta01 sürümünde kaldırılacaktır. (Ic9486) - Tahsislerden kaçınan
ColorList
veColorSet
koleksiyonları eklendi. (I744bd) - Bu değişiklikle,
SnapLayoutInfoProvider
uygulamalarının bir uygulama ayrıntısına dönüştürülenshortSnapVelocityThreshold
kaldırılır. (I65f6d) - Sürükleyip bırakma oturumlarını başlatmak için
dragAndDropSource
Değiştirici ve sürükle ve bırak oturumlarından almak içindragAndDropTarget
Değiştirici (Ib7828, b/286038936) ekler SnapPositionInLayout
dokümanlarını ve konum yöntemini güncelleyin.SnapPositionInLayout
konum yöntemine içerik dolguları ekleyin. (Id7938, b/300116110)- Kullanıcı tarafından yapılan değişiklikleri geri alma/yeniden yapma olanağı sağlayan
UndoState
,TextFieldState
'e eklendi. (Icc024)
Hata Düzeltmeleri
- Hız değişikliğinden sonra
basicMarquee
öğesinin animasyon göstermemesi düzeltildi. (Id2e77, b/297974036)
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha06
yayınlanır. 1.6.0-alpha06 sürümü bu kaydetmeleri içerir.
Yeni Özellikler
SurfaceView
,TextureView: GraphicsSurface()
veEmbeddedGraphicsSurface()
için yeni birleştirilebilir sarmalayıcılar. Deneysel bir API olduğundan değişikliklere ve modifikasyonlara tabidir. (I9ddb2)Modifier.magnifier()
artık kararlı bir API'dir. Buna, değiştiricide satır içi parametrelerin kullanılması içinMagnifierStyle
'nin kaldırılması dahildir. (I83bec, b/298381260, b/262367109, b/261438887)
API Değişiklikleri
updateCurrentPage
veupdateTargetPage
,ScrollScope
'de kullanıma sunuldu. Bu özellikler,PagerState.scroll
'da animasyonlu kaydırma özelliğinin özelleştirilmesine olanak tanıyan son parçalardır. (I9cad5, b/267744105, b/243786897)- Yoğunluk özelliğini
SnapFlingBehavior
'ten kaldırın. TümSnapLayoutInfoProvider
uygulamaları yoğunluğa erişmek için zaten bir yol sunuyor. Alıcı kapsamı kaldırılabilir ve böylece hemSnapFlingBehavior
hem deSnapLayoutInfoProviders
daha basit bir şekilde uygulanır. (I153c3) - Daha fazla değiştirici kararlı olarak işaretlendi. (I56af1, b/298046462)
SnapStepSize
,SnapLayoutInfoProvider
listesinden kaldırıldı. Hesaplama, düzen bilgileri kullanılarak yapılmalı ve yaklaşım veya sabitleme ofsetleri aracılığıyla sağlanmalıdır. (If320c)
Davranış Değişiklikleri
- Compose, artık daha iyi okunabilirlik ve erişilebilirlik için doğrusal olmayan yazı tipi ölçeklendirme özelliğini kullanıyor. Sistem ayarlarında yazı tipi ölçeği% 100'ün üzerinde olduğunda küçük metinler normal şekilde büyür ancak zaten büyük olan metinler yalnızca biraz büyür. Ayrıca, SP'de tanımlanan satır yükseklikleri, amaçlanan% 100 ölçekli yükseklikle orantılı olacak şekilde otomatik olarak ayarlanır. Daha fazla bilgi için Yazı Tipi Ölçeklendirme En İyi Uygulamaları başlıklı makaleyi inceleyin. (I11518)
Hata Düzeltmeleri
- İpuçları için
rememberSaveable
kullanımını kaldırın. (Icc131, b/299500338)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha05
yayınlanır. 1.6.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Mevcut
BasicTextField
API'sinde olduğu gibi,BasicSecureTextField
için sabit bir değer ve bu değeri değiştirmek için bir geri çağırma işlevi kabul eden aşırı yüklemeler ekleyin. (Ia4882) - API 33 ve sonraki sürümlerde kayan pencerelerden uzak durmayı tercih ederek
Modifier.preferKeepClear()
ekleyerek bileşen olarak işaretleyin. (Ib51d5, b/297260115) ScrollView
veRecyclerView
gibi Görünüm bileşenlerindeki fırlatma hızlarıViewConfiguration.ScaledMaximumFlingVelocity
ile sınırlıdır. Oluştur artıkmaximumFlingVelocity
için kendi sürümünü içerir ve bu sürümDraggable
için geçerlidir. (Ibf974)- Desteği sonlandırılan
Pager
vePagerState
aşırı yüklemeleri kaldırıldı. (Iea07e) compose.foundation
'aBasicTooltipBox
eklendi vePlainTooltipBox
ileRichTooltipBox
,TooltipBox
'i yeniPlainTooltip
veRichTooltip
bileşenleriyle kullanacak şekilde güncellendi. (I79e1d)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04
yayınlanır. 1.6.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Alt kompozisyonların yaşam döngüsünü ve yeniden kullanımını yönetmek için
ReusableComposition
arayüzü ekleyin. (I812d1, b/252846775) Modifier.focusGroup
, kararlı API'ler arasına alındı. (I7ffa3)- Mevcut
BasicTextField
API'sinde olduğu gibi,BasicTextField2
için sabit bir değer ve bu değeri değiştirmek için bir geri çağırma işlevi kabul eden aşırı yüklemeler ekleyin. (I3f2b8) GridItemSpan::currentLineSpan
artık kararlı bir API'dir. (Icc29c)contentDescription
kabul eden Canvas artık kararlı bir API'dir. (Ib3d29)ScrollState
'teviewportSize
tanıtıldı. Bu, ölçüm yapıldıktan sonraScrollState
kullanan bileşeninviewPort
boyutunu öğrenmenin bir yoludur. (I8b85a, b/283102682)- Sayfalayıcı'daki ön getirme işleminin Görünümler'deki davranışla eşleşmediği sorun düzeltildi. (I93352, b/289088847)
Modifier.consumeWindowInsets(PaddingValues)
artık kararlı.Deprecated Modifier.consumedWindowInsets
API'si kaldırıldı. Bunun yerineModifier.consumeWindowInsets
politikasını kullanın. (Id72bb)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03
yayınlanır. 1.6.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
LazyLayout
aşırı yüklemesi eklendi. Önceden olduğu gibi basit bir nesne değil,LazyLayoutItemProvider
lambda'sı kabul ediyor. Önceki aşırı yükleme desteği sonlandırılmıştır. (I42a5a)privateImeOptions
(Idb772) yapılandırması için destek eklendi
Hata Düzeltmeleri
readOnly
doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca,readOnly
odaklanırken true değerinden false değerine 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
yayınlandı. 1.6.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
Pager
'te bir ölçüm geçtikten sonra toplanan bilgilerlePagerLayoutInfo
kullanıma sunuldu. Ayrıca,Pager
'teki tek bir ölçülen sayfayla ilgili bilgiler olanPageInfo
de kullanıma sunuldu. (Iad003, b/283098900)- Birleştirilebilir öğelere izin verilen girişleri belirtmek için ek ek açıklamalar (I51109)
- Testlerde odaklanmayı istemenin daha kolay ve bulunabilir bir yolu olarak
SemanticsNodeInteraction.requestFocus
eklendi. (Ie8722) - Tamamen yeniden tasarlanmış
PlatformTextInput*
API. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardController
veLocalSoftwareKeyboardController
artık deneme aşamasında değil.LocalSoftwareKeyboardController
artık uygun birCompositionLocal
. (I4c364)Modifier.transformable
artık kaydırma yönünü belirlemenize yardımcı olmak içincanPan
parametresinde kaydırma deltasını sağlar. (I692aa, b/266829800)consumeWindowInsets
değiştiricisini,AbstractComposeView
üst sınıfını genişletecek şekilde günceller (Iacd74, b/269479941)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha01
yayınlanır. 1.6.0-alpha01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Foundation'da yeni bir
AnchoredDraggable
API kullanıma sunuldu. Kalıcı alt sayfalar gibi ayrı durumlar arasında sürüklenebilecek bileşenleri oluşturmak için kullanılabilir. Bu API, Material'ınSwipeable
API'sinin yerini almıştır. (I4a2ed)
API Değişiklikleri
InputConnection#requestCursorUpdates
kanalını destekleyin (I0c69b)- Özel animasyon özelliklerine izin vermek için
scrollAnimationSpec
kullanıma sunuldu.BringIntoViewCalculator
ayarıBringIntoViewScroller
olarak güncellendi. (Idb741) - Bitmap öğeleri yüklenmeye çalışırken, yüklenemeyen öğe yolunun açıklamasıyla birlikte atılan throwables'ı sarmalamak için
ResourceResolutionException
türünü ekleyin. (I19f44, b/230166331, b/278424788) - Metin çevirisini desteklemek için anlamsal özellikler ve işlemler eklendi. (I4a6bc)
Scrollable
gibi bileşenlerinbringIntoView
isteklerine nasıl yanıt vereceğini özelleştirmek için kullanılabilecek birBringIntoViewCalculator
API kullanıma sunuldu. Scrollable işlevinin aşırı yüklemesi, isteğe bağlı olarak birBringIntoViewCalculator
örneğini kabul edecek şekilde değiştirildi. (Iaf5af)
Hata Düzeltmeleri
- Değiştirilebilir durum /
Animatable
oluşturmayla ilgili lint kontrollerine benzer şekilde, kompozisyondaMutableInteractionSource
oluştururken bunu hatırlamadığınız durumlarda sizi uyarmak için bir lint kontrolü eklendi. (I5daae) - Fareyle seçim desteği eklendi. Dokunmaya dayalı seçim kelime bazında genişletilir ve karakter bazında daralır. (Ic0c6c, b/180639271)
- Özel
FocusTarget
oluşturmak için kullanılabilecekFocusTargetModifierNode
arayüzü eklendi. (I9790e)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.foundation:foundation-*:1.5.4
yayınlanır. 1.5.4 sürümü bu taahhütleri içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.foundation:foundation-*:1.5.3
yayınlandı. Bu sürümde değişiklik yok.
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.foundation:foundation-*:1.5.2
yayınlanır. 1.5.2 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Anlam bilgisi geçersiz olduğunda belirli durumlarda kilitlenmeye yol açan metin hatası düzeltildi.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.foundation:foundation-*:1.5.1
yayınlanır. 1.5.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
readOnly
doğru olduğunda klavyeyi gösteren ve düzenlenebilir olan metin alanları düzeltildi. Ayrıca,readOnly
odaklanırken true değerinden false değerine değiştirildiğinde klavyenin gösterilmemesi sorunu da düzeltildi. (I34a19, b/246909589)
1.5.0 sürümü
9 Ağustos 2023
androidx.compose.foundation:foundation-*:1.5.0
yayınlanır. 1.5.0 sürümü bu taahhütleri içerir.
1.4.0'dan sonraki önemli değişiklikler
Modifier.clickable
,Modifier.draggable
,Modifier.scrollable
, düzen değiştirici ve daha birçok temel değiştiriciModifier.Node
API'ye taşındı. Bu sayede ilk kompozisyondaki ek maliyet azaltıldı.- Sayfa çevirici kararlılığında iyileştirmeler yapıldı. Birçok hata düzeltildi.
pageCount
parametresi artık Çağrı Cihazı yerinePagerState
içinde bulunuyor
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.foundation:foundation-*:1.5.0-rc01
yayınlanır. Sürüm 1.5.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
mutableStateOf()
çağrılarının, ilkellere karşılık gelen özel türlerine taşınmasını önermek için isteğe bağlı bir denetim mevcuttur. Dil bilgisi denetimi kimliğiAutoboxingStateCreation
. Daha önce bu inceleme tüm projeler için varsayılan olarak etkinleştiriliyordu. Bu uyarıyı Android Studio'nun düzenleyicide ve projenizin lint çıkışlarında görmek için önem derecesini bilgilendirme olarak ayarlayarak uyarı (veya daha yüksek) olarak değiştirin. Bunun için modülünüzünbuild.gradle
veyabuild.gradle.kts
yapılandırmasında gösterildiği gibiwarning "AutoboxingStateCreation"
değerini belirtin (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.foundation:foundation-*:1.5.0-beta03
yayınlanır. 1.5.0-beta03 sürümü bu taahhütleri içerir.
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.foundation:foundation-*:1.5.0-beta02
yayınlanır. 1.5.0-beta02 sürümü bu taahhütleri içerir.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.foundation:foundation-*:1.5.0-beta01
yayınlanır. 1.5.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kalp atış hızı ve günlük adım sayısını sağlamak için
PlatformDataProvider
'ü uygulayın.SensorGateway
arayüzü herkese açık API'den kaldırıldı. (I55b84)
Hata Düzeltmeleri
- Tembel liste/ızgara/vb. ölçümleri sırasında ayırmaları azaltma (Iaf9e2)
- Anlık görüntüler uygulanırken azaltılmış tahsisler (I65c09)
- Bahar animasyonlarından ayrılan kaynaklar kaldırıldı (Ie9431)
TextLayout
adlı reklam grubundan (I0fd11) tahsis kaldırıldı- İşaretçi hızı izlemedeki (I26bae) birden fazla ayırma kaldırıldı
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.foundation:foundation:1.5.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha04
yayınlandı. 1.5.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Tam parametre listesi içeren optimize edilmiş
TextStyle.merge(...)
eklendi. (Iad234, b/246961787) LazyGridState
ile kullanılabilen birSnapLayoutInfoProvider
tanıtın. (I92134, b/269237141, b/260914964)- Eşlenmemiş kademeli ızgaralar öğe kapsamı için deneysel
Modifier.animateItemPlacement()
eklendi. Otomatik konum değişikliği/yeniden sıralama animasyonları elde etmek için öğelere uygulayabilirsiniz. (I4b62d, b/257034719) GridCells.FixedSize
sürümünü kararlı sürüme yükseltin.FixedSize
, her bir hücrenin çapraz eksende tam boyut aldığı birLazyGrid
tanımlar ve kalan boşluk çapraz eksende dağıtılır. (I8542f)- Sayfalayıcı için alıcı kapsamı
PagerScope
ve belirli bir sayfa ofsetini hesaplamak için bir yardımcı program işlevi kullanıma sunuldu. (If2577) - Bir anlık görüntü fırlatma davranışı oluştururken
snapPositionalThreshold
öğesini tanıtın. Çağrı Cihazı'nda kısa yapışkanlık için konum eşiği belirtmek üzere bu parametreyi kullanın. (If8f7f) SnapLayoutInfoProvider.calculateSnappingOffsetBounds
öğesicalculateSnappingOffset
ile değiştirildi. Bu yeni yöntemde, sonraki ofsetin sabitlenmesini isteriz. Sınırların hesaplanması, uygulama düzeyinde yapılmalıdır. Bu, çakıştırmanın nasıl gerçekleşmesi gerektiğine bağlı olarak farklılık gösterebilir. (I923a4)LazyStaggeredGrid
API'leri kararlı sürüme geçirildi. (I633a5)pageCount
,Horizontal/VerticalPager
hesabından kaldırılsın mı? Bu bilgi, eyalet oluşturulurken sağlanmalıdır.PagerState
verememberPagerState
,pageCount
hükümlerini kabul edecek şekilde güncellendi. (Ieb52d, b/266965072)pageCount
kullanıcısınıHorizontal/VerticalPager
sitesinden kaldır. Bu, durum oluşturulurken sağlanmalıdır.PagerState
verememberPagerState
,pageCount
'yi kabul edecek şekilde güncellendi. (Ifa3cb, b/266965072)- Sayfa ayırıcının
SnapFlingBehavior
bölümündeshortSnapVelocityThreshold
'ü tanıtın. (I7379e, b/275579012) FlowRowScope
veFlowColumnScope
ekler. (I54fe2)
Hata Düzeltmeleri
- Kısıtlamalar
minWidth
veminHeight
olduğunda artık kilitlenmediğinde Metinde anlamı almak için yapılan çağrılar. (Ibd072) Dialog
composable tarafından oluşturulmayan iletişim kutularındaki metin alanları için klavyenin gösterilmemesine neden olan regresyon düzeltildi. (I82551, b/262140644)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.foundation:foundation:1.5.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha03
serbest bırakıldı. 1.5.0-alpha03 sürümü bu taahhütleri içerir.
Bu sürümde, Oluştur için yeni metin oluşturma paketi etkinleştirilmiştir. Yeni paket performans açısından optimize edilmiştir ve görünür bir değişiklik görmezsiniz.
Oluşturulan metinde değişiklikler görürseniz davranış farkını onaylamak için NewTextRendering1_5 = false
öğesini ayarlayarak hata ayıklayabilirsiniz. Bu ayar, 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ılacaktır.(Iada23, b/246960758)
API Değişiklikleri
FlowColumn/FlowRow
satır içine alın. (Idab37)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.foundation:foundation:1.5.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha02
serbest bırakıldı. 1.5.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
LazyGrid
'te sabit boyutlu hücreler ve bunları çapraz eksen düzenlemesiyle düzenleme desteği eklendi. (I83ed9, b/235121277, b/267942510)LazyStaggeredGrid
'te sabit boyutlu şeritler ve bunları çapraz eksen düzenlemesiyle düzenleme desteği eklendi. (I7d519)AnnotatedString
'lardakiUrlAnnotation
'ler artıkTalkBack
gibi erişilebilirlik hizmetleri aracılığıyla açılabilir. (If4d82, b/253292081)- Metin alanları için
InsertTextAtCursor
semantik işlemi eklendi. (I11ed5) - Metinle ilgili test işlemleri (ör.
performTextInput
) artık alanı tıklamak yerine anlambilim işlemini kullanarak doğrudan odaklanmayı isteyecektir. (I6ed05) FlowRow
içindeverticalArrangement
veFlowColumn
içindehorizontalArrangement
kullanılarak eksenler arası boşluk/düzenleme desteği eklendi. AyrıcaFlowRow/FlowColumn
içindeki üst düzeyverticalAlignment
vehorizontalAlignment
öğelerini de kaldırırız. Geliştiriciler bunun yerineModifier.align
kullanabilir. Bu,verticalAlignment
veverticalArrangement
adlandırma kuralları arasındaki karışıklığı azaltır. (I87b60, b/268365538)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.foundation:foundation:1.5.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.5.0-alpha01
serbest bırakıldı. 1.5.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Metin ve
BasicText
, yeni değiştirici sistemini kullanacak şekilde yeniden yapılandırıldı. Bu, birçok durumda önemli performans iyileştirmelerine yol açar. Hiçbir değişiklik görünmemelidir. (If1d17, b/246961435) - Metin düzenleyici düğümlerinde IME işlemini çağırmak için
PerformImeAction
anlamsal işlemi eklendi. (Ic606f, b/269633506)
Hata Düzeltmeleri
Modifier.hoverable
dahili öğeleri güncellendi.hoverable
değiştirici yalnızca etkinleştirilmişse denetleyicide gösterilir. (I82103)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.foundation:foundation:1.4.3
ve androidx.compose.foundation:foundation-layout:1.4.3
, herhangi bir değişiklik olmadan (yalnızca sürüm yükseltmesi) yayınlanır.
1.4.2 sürümü
19 Nisan 2023
androidx.compose.foundation:foundation:1.4.2
ve androidx.compose.foundation:foundation-layout:1.4.2
yayınlandı. 1.4.2 sürümü bu taahhütleri içerir.
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.foundation:foundation:1.4.1
ve androidx.compose.foundation:foundation-layout:1.4.1
serbest bırakıldı. 1.4.1 sürümü bu taahhütleri içerir.
1.4.0 sürümü
22 Mart 2023
androidx.compose.foundation:foundation:1.4.0
ve androidx.compose.foundation:foundation-layout:1.4.0
yayınlandı. 1.4.0 sürümü bu taahhütleri içerir.
1.3.0'dan bu yana önemli değişiklikler
Text
veTextField
'nin yanı sıra alt düzey paragrafa Emoji uyumluluğu entegrasyonu eklendi. emojicompat yapılandırıldığında varsayılan olarak etkinleştirilir.EmojiCompat
,PlatformParagraphStyle
kullanılarak belirli bir metinde yapılandırılabilir.LazyStaggeredGrid
(I28252) için tam satır kapsamı desteği eklendi- Deneysel
onHover
ClickableText
'a ekleniyor (I6938f) runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test bileşimi ve bestedeki tümLaunchedEffect
verememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)FlowRow
veFlowColumn
artık ana eksende yeterli alan yoksa yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütuna dayalı düzenine olanak tanıyan@ExperimentalFoundationApi
olarak kullanılabilir. (I3a7b2)Modifier.basicMarquee()
, kayan noktalı çerçeve efektiyle içerik görüntülemek için deneysel olarak kullanılabilir. (I2df44, b/139321650)
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.foundation:foundation:1.4.0-rc01
ve androidx.compose.foundation:foundation-layout:1.4.0-rc01
serbest bırakıldı. 1.4.0-rc01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Doğrudan platform API'leriyle iletişim kuran özel metin girişi uygulamaları oluşturmak için yeni düşük düzey
PlatformTextInputAdapter
API kullanıma sunuldu. (I58df4) LazyStaggeredGrid
için ters düzen desteği ekleyin. (I3ef4a)
Hata Düzeltmeleri
BasicTextField
öğesininSetText
anlamsal işlemi artık metin arabelleğini, IME güncellemeleriyle aynı kod yolunu ve test işlevleriyle (ör.performTextReplacement
) kullanarak günceller.- Metin test işlevleri
performTextClearance
,performTextReplacement
veperformTextSelection
artıkSemanticsActions
kullanıyor. (I0807d, b/269633168, b/269624358)
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.foundation:foundation:1.4.0-beta02
ve androidx.compose.foundation:foundation-layout:1.4.0-beta02
yayınlandı. 1.4.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
Layout
yeniden kullanıldığında (örneğin,LazyColumn
öğesi olarak) destek kaydının düzgün şekilde ele alınması için bazı yerel durumları sıfırlamanıza olanak tanıyan yeni birModifier.Node.onReset()
geri çağırması eklendi. Odaklanma durumunu düzgün şekilde sıfırlamak içinFocusTargetModifierNode
sorunu düzeltildi. (I65495, b/265201972)- Canvas'ta metin çizerken farklı karışım algoritmalarını desteklemek için
DrawScope.drawText
,Paragraph.paint
veMultiParagraph.paint
yöntemlerineBlendMode
parametresi eklendi. (I57508) modifierElementOf()
API'si kaldırıldı. Lütfen bunun yerine doğrudanModifierNodeElement
adresinden uzatın. (Ie6d21)
Hata Düzeltmeleri
- Seçim tutamaçları ayarlandığında artık kısmi karakter seçilemez. (Idedd1)
- Boş
TextField
üzerinde ctrl+backspace olduğunda oluşan kilitlenmeyi düzelt (I0427f, b/244185537)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.foundation:foundation:1.4.0-beta01
ve androidx.compose.foundation:foundation-layout:1.4.0-beta01
yayınlandı. 1.4.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- 1.3 sürümünden itibaren
Text
veTextField
'e, ayrıca alt düzey paragrafa Emoji uyumluluğu entegrasyonu eklendi. emojicompat yapılandırıldığında varsayılan olarak etkinleştirilir. EmojiCompat
,PlatformParagraphStyle
kullanılarak belirli bir metinde yapılandırılabilir.
API Değişiklikleri
- Kompozisyondan çıkan ancak etkin kalması gereken öğeleri korumak için tüm
LazyLayouts
'larda kullanılanPinnableContainer
API'nin ortak uygulaması eklendi. (If45a4) PinnableContainer.PinnedHandle.unpin()
,release()
olarak yeniden adlandırıldı (I4667a)
Harici Katkı
mainAxisItemSpacing
mülküLazyListLayoutInfo
,LazyGridLayoutInfo
veLazyStaggeredGridItemInfo
'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ü bu kaydetmeleri içerir.
Yeni Özellikler
LazyStaggeredGrid
ürününe tam hat aralığı desteği eklendi (I28252)- Deneysel
onHover
öğesiniClickableText
'a ekleme (I6938f) runComposeUiTest
işlevi veCoroutineContext
parametrelerini kabul edencreate*ComposeRule
işlevleri için yeni deneysel aşırı yüklemeler kullanıma sunuldu. Bağlam, test kompozisyonu ve kompozisyondaki tümLaunchedEffect
verememberCoroutineScope()
çağrıları için kullanılır. (I10614, b/265177763)
API Değişiklikleri
OverscrollEffect
öğesinin öncesi/sonrası API'lerini birleşik "decorator"applyToScroll
veapplyToFling
işlevlerinde birleştirir. Yeni API şekliyle kaydırma efektinin nasıl uygulanacağına dair örnekler için dokümanlar bölümündeki güncellenmiş örneklere bakın. (I8a9c4, b/255554340)- Satır içi/desteği sonlandırılmış ve gizli işlevlerin daha fazla türü/boşluk kabul edebileceği durumlar (I24f91)
TextStyle
kapsamındakiLineBreak
veHyphens
API'leri kararlı sürüme geçirildi. (Ic1e1d)
Hata Düzeltmeleri
- Metin alanlarındaki imleç, animasyonlar devre dışıyken bile yanıp sönmeye devam edecek. (I95e70, b/265177763)
Modifier.basicMarquee
artık sistem ayarlarında animasyonlar devre dışı bırakıldığında bile animasyon kullanıyor. (I23389, b/262298306, b/265177763)
Harici Katkı
TextInputSession
veTextInputService
uygulamalarındakinotifyFocusedRect
yöntemleri tekrar kullanımdan kaldırılmadı. (I23a04, b/262648050)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.foundation:foundation:1.4.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.4.0-alpha04
yayınlandı. 1.4.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
FlowRow
veFlowColumn
artık ana eksende yeterli alan yoksa yeni bir satıra bölünecek bileşenlerin daha esnek bir satır ve sütuna dayalı düzenine olanak tanıyan@ExperimentalFoundationApi
olarak kullanılabilir. (I3a7b2)Modifier.basicMarquee()
, kaydırmalı ışıklı reklam efekti içeren içerikler göstermek için deneysel olarak kullanılabilir. (I2df44, b/139321650)
API Değişiklikleri
FocusRequesterModifier
FocusRequesterNode
variationSettings
özelliğine sahipAndroidFont
oluşturucu artık kararlı bir API ve yeni yazı tipi açıklayıcı türleri oluşturmak için kullanılabilir. (I5adcc, b/261565807)- Mevcut öğeyi sabitlemeye olanak tanıyan yerel bir kompozisyon aracılığıyla, tembel listeler tarafından dağıtılan
PinnableContainer
api'yi kullanıma sundu. Bu, kaydırma çubuğuyla ekrandan uzaklaştırıldığında bu öğenin kaldırılmayacağı anlamına gelir. Örneğin,Modifier.focusable()
bu mekanizma aracılığıyla şu anda odaklanan öğeyi sabitler. (Ib8881, b/259274257, b/195049010) - Bu işlemlerin karmaşıklığını daha iyi modellemek ve daha fazla uç durumu ele almak için kaydırılabilir öğelerin
bringIntoViewRequesters
ve odaklanılabilir öğelere yanıt verme şekli yeniden yazıldı. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - Kullanımdan kaldırılan ve gizlenen işlevlerin daha fazla dönüş türü için boş değer kabul edilebilirlik durumu (Ibf7b0)
- Metni
Static(default)
veya Animasyonlu olacak şekilde tanımlamak içinTextStyle
uygulamasına deneyselTextMotion
eklendi. Metin animasyon aracılığıyla ölçeklendirilecek, çevrilecek veya döndürülecekseTextMotion.Animated
değerini kullanın. (I24dd7) - Android platformundaki odaklanma gezinme davranışını düzeltmek için
TextFieldFocusModifier
ekleyin (I00303) drawText
içindekimaxSize: IntSize
bağımsız değişkeni, diğerDrawScope
işlevleriyle satır içi olacak şekildesize: Size
ile değiştirildi.size
varsayılan olarakSize.Unspecified
değerine ayarlanır. Bu, önceki varsayılan davranışı değiştirmeyecektir. (Icd27d)
Hata Düzeltmeleri
- Daha doğal bir deneyim için
SnapFlingBehaviour
'teki sabitleme fiziğinde yapılan düzenlemeler.
Bilinen Sorun
androidx.compose.foundation:1.4.0-alpha03
sürümündenandroidx.compose.foundation:1.4.0-alpha04
sürümüne güncelleme yaparkenjava.lang.NoSuchFieldError
hatasıyla karşılaşabilirsiniz. Sorunun ilk olarak bildirildiği yer burada. Gönderilen düzeltme, bir sonraki Oluştur güncellemesinde kullanıma sunulacaktır. Bu sorunu geçici olarak çözmek içinandroidx.compose.material
veandroidx.compose.material3
kitaplıklarınızı en son sürüme(1.1.0-alpha04) güncelleyin veyaandroidx.compose.foundation
'nizi 1.4.0-alpha03 sürümüne geri alı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ü bu taahhütleri içerir.
API Değişiklikleri
- Bir Oluşturma kuralı kullanan kullanıcı arayüzü testlerinde,
withFrameNanos
geri çağırmaları sırasında devam ettirilen devam ettirmeler, tüm çerçeve geri çağırmaları çalıştırılana kadar gönderilmez. Bu, normal şekilde çalışırken Oluştur'un davranışıyla aynıdır. Ancak eski davranışa dayanan testler başarısız olabilir. Bu durum yalnızca doğrudanwithFrameNanos
veyawithFrameMillis
çağrısı yapan kodu etkiler ve geri çağırmaların dışında, geri çağırmaların içine taşınması gerekebilecek işlevlere iletilmiş bir mantığı vardır. Örnekler için bu CL'de animasyon testi değişikliklerine bakın. withFrameNanos
geri çağırmalarından sonra ancak arayanların iş parçacıklarını devam ettirmeden önce kodu çalıştırmak içinTestMonotonicFrameClock
oluşturucuya ve fabrika işlevine isteğe bağlıonPerformTraversals: (Long) -> Unit
parametresi eklendi. (Idb413, b/254115946, b/222093277, b/255802670)- Sayfa erişilebilirlik işlemlerini tanıtın:
PageUp
,PageDown
,PageLeft
,PageRight
. Bunların yalnızca API 29'da kullanılabildiğini unutmayın. (Ida4ab) HorizontalPager
veVerticalPager
'ü kullanıma sunduk. Bu iki özellik, bir sayfalayıcı şeklinde birleştirilebilir öğeleri göstermenin bir yoludur.PagerState
, çağrı cihazlarını kontrol etmek ve çağrı cihazının mevcut durumuyla ilgili bilgileri sorgulamak için kullanıma sunuldu. Sayfalayıcı sayfasının boyutunu kontrol etmenin bir yolu olanPageSize
özelliği kullanıma sunuldu. Bu özellik, sayfalayıcılar gibi bir bant oluşturmak için kullanılabilir. Sayfalayıcının kaydırma davranışında sabitlemenin nasıl çalışacağını kontrol etmenin bir yolu olanPagerSnapDistance
özelliği kullanıma sunuldu. (I01120)- Kısa süreli hamlenin nerede sona ereceğini anlamanıza yardımcı olmak için
SnapFlingBehavior.performFling
uygulamasında aşırı yüklenmeye yol açtı. (I569f6) OverscrollEffect#isEnabled
kaldırıldı. Bu işareti hatırlayıp ayarlamak yerine, kaydırma taşmasının gösterilmesini istemediğiniz durumlarda (örneğin,ScrollableState#canScrollForward/backward
her ikisi de yanlış döndürüyorsa) kaydırma taşması efektine etkinlik göndermeyin. (I1a4b0, b/255554340, b/255557085)- Bir
ScrollableState
öğesinin her iki yönde de kaydırma alanı olup olmadığını (aralığının minimum / maksimum değerinde olup olmadığını) sorgulamak içinScrollableState#canScrollForward
veScrollableState#canScrollBackward
eklendi. Bu ayar,ScrollableState
'ün mevcut uygulamalarıyla geriye dönük uyumluluk için varsayılan olarak doğru değerine ayarlanır. Tüketiciler, kullanıcıya kaydırmaya devam edebileceğini göstermek için bu özelliği kullanabilir. Ayrıca, gereksiz çalışmaları azaltmak için belirli bir yönde kaydırmaya yer olmayanScrollableStates
öğesine delta göndermekten kaçınmak için de kullanılabilir. (Idf1a0, b/255557085) - Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API eklendi. (I2ba9d, b/203141462)
- Hareketlerin kaydırma etkinlikleri haline gelebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için
Clickable
içinde kullanılır. Clickables
öğesinin,Scrollable ViewGroup
içinde kullanıldığında dalgaların doğru şekilde geciktilmemesi sorunu düzeltildi.- Çekme panelleri ve sayfalar, hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda basmaları doğru şekilde geciktirmek için güncellendi.
snapStepSize
adlandırmasını,SnapLayoutInfoProvider
'daki diğer yöntemlerle tutarlı olacak şekilde güncelleyin. (Ife67c)Compose
öğesineEmojiCompat
eklendi (Ibf6f9, b/139326806)consumedWindowInsets()
consumeWindowInsets()
,withConsumedWindowInsets()
onConsumedWindowInsetsChanged()
olarak yeniden adlandırıldı ve değiştiriciler herkese açık hale getirildi. (Ie44e1)
Hata Düzeltmeleri
Modifier.animateItemPlacement()
ve Lazy grids ile ilgili kilitlenme düzeltildi. Bu durum, yeni öğe sayısı öncekinden daha az olduğunda bazı durumlarda yaşanıyordu. (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ü bu taahhütleri içerir.
API Değişiklikleri
awaitFirstDown
vewaitForUpOrCancellation
artık daha fazla esneklik içinPointerEventPass
kabul ediyor. (I7579a, b/212091796)beyondBoundCount
API'sini Lazy* API'lerinden (I12197) geri döndür- Görüntü alanı öğelerini oluşturmak ve bunların dışına yerleştirmek için Tembel API'lerde parametre eklendi (I69e89, b/172029355)
BasicText
veBasicTextField
öğesineminLines
parametresi eklendi. Bu bileşenlerin minimum yüksekliğini satır sayısı açısından 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ü bu taahhütleri içerir.
API Değişiklikleri
- Hareket algılayıcılar için
awaitEachGesture()
adlı yeni bir yöntem eklendi.forEachGesture()
'e benzer şekilde çalışır ancak hareketler üzerinde döngü tamamenAwaitPointerEventScope
içinde çalıştığından etkinlikler iterasyonlar arasında kaybolmaz. forEachGesture()
, hareketler arasında etkinliklerin kaybolmasına neden olduğu için desteği sonlandırıldı veawaitEachGesture()
ile değiştirildi. (Iffc3f, b/251260206)- Animasyon ilerlemesini belirlemek ve animasyon tamamlandıktan sonra IME'nin nerede olacağını bilmek için
WindowInsets.imeAnimationSourc
e veWindowInsets.imeAnimationTarget
eklendi. (I356f1, b/217770337)
Sürüm 1.3
1.3.1 sürümü
9 Kasım 2022
androidx.compose.foundation:foundation:1.3.1
ve androidx.compose.foundation:foundation-layout:1.3.1
yayınlandı. Sürüm 1.3.1 bu kaydetmeleri içerir.
Hata Düzeltmeleri
BeyondBoundsLayout
ürünündeki performans sorununu düzeltin (aosp/2255266)ContentInViewModifier
, eklenmediği sürece düzen koordinatlarını okumaz (aosp/2241316)
1.3.0 sürümü
24 Ekim 2022
androidx.compose.foundation:foundation:1.3.0
ve androidx.compose.foundation:foundation-layout:1.3.0
yayınlandı. 1.3.0 sürümü bu taahhütleri içerir.
1.2.0 sürümünden bu yana yapılan önemli değişiklikler
LazyVerticalStaggeredGrid
veLazyHorizontalStaggeredGrid
için deneysel sürümler kullanıma sunuldu.SnapFlingBehavior
,rememberSnapFlingBehavior
ve ilgili diğer API'ler deneysel olarak eklendi.Modifier.clickable
,Modifier.toggleable
veModifier.selectable
düğmeleri artık klavye veya uzaktan kumandadaki d-pad ile tıklandığında dalgalanma 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ı. Sürüm 1.3.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
- Yaklaşma adımı tarafından, azalmak için yeterli fırlatma hızı olmadığında kullanılan
lowVelocityAnimationSpec
tanıtıldı. (Iaeb27) - Metinde otomatik tire eklemeyi desteklemek için yeni deneysel API Tire 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ı. Sürüm 1.3.0-beta03 bu kaydetmeleri içerir.
API Değişiklikleri
- Metinde satır sonunu özelleştirme seçenekleri ekleyin. (I86907)
BringIntoViewResponder
'ler artık bir isteği işlerken en güncel sınırları alabilir. (If86a5, b/241591211)- Deneysel
Staggered Grid
(I10b82) sürümünde öğeler arasındaki boşluklar için destek sunuldu - Deneysel
Staggered Grid
'e içerik doldurma özelliğini ekleme (I342ea) - Minimum genişlik kısıtlamalarını desteklemek için
TextMeasurer.measure
yöntemindeconstraints: Constraints
içerensize:IntSize
bağımsız değişkeni değiştirildi. (I37530, b/242707525) Modifier.withConsumedWindowInsets()
,windowInsetsPadding
dışında kullanılmak üzereWindowInsets
tüketimi için eklendi.- Yeniden derleme yapmadan
WindowInsets
öğesini kolayca değiştirmeye olanak tanımak içinMutableWindowInsets
eklendi. (I7fd28, b/237019262, b/243119659)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.foundation:foundation:1.3.0-beta02
ve androidx.compose.foundation:foundation-layout:1.3.0-beta02
yayınlandı. 1.3.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Deneysel
StaggeredGrid
(Ia48be) ilk sürümü FocusDirection.In
veFocusDirection.Out
,FocusDirection.Enter
veFocusDirection.Exit
olarak yeniden adlandırıldı (Ia4262, b/183746982)LazyLists
'te sabitlemeyi hızlı bir şekilde etkinleştirmenin yolunu sağlayan birrememberSnapFlingBehavior
aşırı yükleme işlevi kullanıma sunuldu. (Ifb48a)snapFlingBehavior
fabrikası, somut birSnapFlingBehavior
sınıfıyla değiştirildi. Dp<->Px dönüşümlerini API kullanıcıları için daha kolay hale getirmek amacıylaSnapLayoutInfoProvider
yöntemlerini yoğunluk için kapsamlı hale getirdik. (I54a11)LazyLayoutMeasureScope.measure
parametresini, döndürülen değerin istenilen şekilde değiştirilemezliğini vurgulayarak yerleşebilir öğelerin listesini döndürecek şekilde güncelleyin. (I48b7c)LazyLists
içinFlingBehavior
anlık görüntüsünü etkinleştirmek üzere kullanılabilecek birSnapLayoutInfoProvider
örneği oluşturmak içinLazyListState
alanSnapLayoutInfoProvider
işlevi kullanıma sunuldu. (I2dd10)
Hata Düzeltmeleri
AwaitPointerEventScope#awaitLongPressOrCancellation
'ü diğer bekleme işlevleriyle eşleşecek şekilde yeniden işler (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ı. Sürüm 1.3.0-beta01 bu kaydetmeleri içerir.
API Değişiklikleri
pointerPosition
,OverscrollEffect
'ten kaldırıldı: İşaretçi konumuyla ilgilenen efektler, mevcut işaretçi konumunu almak içineffectModifier
'tekiModifier.pointerInput { }
'yi kullanabilir. (I9f606, b/241239306)- Daha karmaşık hareket algılama için ek yapı taşı olarak
AwaitPointerEventScope#awaitLongPressOrCancellation
kullanıma sunuldu (I04374, b/181577176) - Tembel listelerde tutturmayı etkinleştirmek için
lazyListSnapLayoutInfoProvider
kullanıma sunuldu. (I3ecdf) - Liste sabitlemeyi sağlayan bir fırlatma davranışı olan
SnapFlingBehavior
kullanıma sunuldu.SnapLayoutInfoProvider
örneği sağlayın. Bu örnekte, sabitleme düzeninizle ilgili bilgiler yer almalıdır. (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ü bu kaydetmeleri içerir.
API Değişiklikleri
- Kaynak yazı tipleri artık yazı tipi varyasyonu ayarlarını (API 26+) destekliyor. (I900dd, b/143703328)
DeviceFontFamilyNameFont
'te değişken yazı tipi desteği (Ic1279, b/143703328)- Deneme amaçlı ek açıklama,
PlatformTextStyle
veLineHeightStyle
öğelerinden kaldırıldı. (I64bef) - Bir
VisualTransformation
tarafından sağlananOffsetMapping
geçersiz dizinler döndürdüğünde metin alanları artık daha ayrıntılı istisnalar atar. (Ie73f9, b/229378536) - Eşlenmemiş düzenler arasında öğe sağlayıcı mantığını paylaşmak için deneysel API'ler kullanıma sunuldu. (Ic891c)
ScrollableDefaults.reverseDirection()
artık deneme aşamasında değil. (Iba646)SemanticsModifier.id
desteği sonlandırıldı ve semantik kimliğiLayoutInfo.semanticsId
olarak değiştirildi. (Iac808, b/203559524)checkScrollableContainerConstraints()
artık deneme aşamasında değil. (I2c290)Modifier.clipScrollableContainer()
artık deneme aşamasında değil. (Ia2b44)TextInputService.show|hideSoftwareKeyboard
öğesini kullanımdan kaldırın. Lütfen uygulama kodunda bunun yerineSoftwareKeyboardController
ve IME yönetim kodundaTextInputSession
kullanın. (I14e4c, b/183448615)
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.foundation:foundation:1.3.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.3.0-alpha02
yayınlandı. 1.3.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
Canvas
vedrawBehind
gibi birDrawScope
üzerinde çalışan kompozitler ve değiştiricilerde çok stilli metin çizmenin bir yolunu sağlamak içinDrawScope
'adrawText
uzantı işlevi eklendi. (I16a62, b/190787898)
Hata Düzeltmeleri
- Odaklanılmış bir metin alanı devre dışı bırakıldığında ekran klavyesi artık gizlenir. (I6e3e4, b/237308379)
- Hız İzleyici'ye
InputEventChange
etkinlikleri eklerken artık konumlar yerine deltaları dikkate alacağız. Bu sayede, hedef öğe hareket etse bile hız tüm durumlarda doğru şekilde hesaplanır (Icea9d, b/216582726, b/223440806, b/227709803) - Kaydırılabilir bir öğenin odaklanmış bir alt öğesi olduğunda, boyutu azaltıldığında (animasyonlu olsa bile) odaklanmış alt öğeyi görünümde tutmak için artık doğru şekilde kaydırılır. (I80867, b/230756508, b/220119990)
- Seçim etkinken
TextField
'ün temizlenmesi ve yeniden doldurulmasına yol açan kilitlenme düzeltildi. (I1235b, b/208655565, b/214253689)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.foundation:foundation:1.3.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.3.0-alpha01
serbest bırakıldı. 1.3.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
AnnotatedString
içindeTalkBack
bağlantı desteğini desteklemek içinUrlAnnotation
ek açıklama türü ve ilişkili yöntemler kullanıma sunuldu. (I1c754, b/231495122)
Hata Düzeltmeleri
BasicTextField
cursorBrush
artık imleç zamanlayıcısı yeniden başlatılmadan animasyonlu hale getirilebilir. (I812e6, b/236383522)
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.foundation:foundation:1.2.1
ve androidx.compose.foundation:foundation-layout:1.2.1
yayınlandı. 1.2.1 sürümü bu taahhütleri içerir.
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.foundation:foundation:1.2.0
ve androidx.compose.foundation:foundation-layout:1.2.0
yayınlandı. 1.2.0 sürümü bu taahhütleri içerir.
1.1.0 sürümünden bu yana yapılan önemli değişiklikler
LazyVerticalGrid
veLazyHorizontalGrid
artık kararlı.- Artık, yavaş listeler ve ızgaralardaki öğeler için içerik türü belirtebilirsiniz. Bu sayede bileşenler öğeleri daha verimli bir şekilde yeniden kullanabilir.
- Eşzamanlı olmayan listeler ve ızgaralarda artık kullanıcı hareketleriyle kaydırma özelliğini devre dışı bırakmaya olanak tanıyan
userScrollEnabled
parametresi bulunuyor. LazyLayout
adlı yeni bir deneysel API eklendi. Bu, geç listeleri ve tabloları desteklemek için dahili olarak kullandığımız API'dir.OverscrollEffect
API deneysel olarak kullanıma sunuldu. Özel kaydırma efektleri tanımlamanın yanı sıra özel kaydırılabilir kapsayıcılara standart bir platform efekti de ekleyebilirsiniz.- Görünümler ile kaydırma yapan aktörler arasında birlikte çalışabilirlik sağlamak için iç içe yerleştirilmiş kaydırma birlikte çalışabilirlik API'leri kullanıma sunuldu.
- Tüm kaydırma kapsayıcılarına fare ve dokunmatik yüzey kaydırması eklendi.
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc03
ve androidx.compose.foundation:foundation-layout:1.2.0-rc03
yayınlandı. 1.2.0-rc03 sürümü bu taahhütleri içerir.
- 1.2.0-rc02 sürümünden bu yana değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc02
ve androidx.compose.foundation:foundation-layout:1.2.0-rc02
yayınlandı. Sürüm 1.2.0-rc02 bu kaydetmeleri içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-rc01
ve androidx.compose.foundation:foundation-layout:1.2.0-rc01
yayınlandı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.
API Değişiklikleri
- Özel fazla kaydırma efektlerinin yanı sıra bunu kabul eden
Modifier.scrollable
aşırı yüklemelere olanak tanımak için deneysel birOverscrollEffect
kullanıma sunulmuştur. - Deneysel
LocalOverScrollConfiguration
,foundation.gesture
'ten temel pakete taşındı veLocalOverscrollConfiguration
olarak yeniden adlandırıldı (If19fb, b/204650733) - Oluşturma kitaplarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
- Kaydırılabilir kapsayıcıları iç içe yerleştirmediğimizi kontrol etmemizi sağlayan deneysel bir api
checkScrollableContainerConstraints()
kullanıma sunuldu.LazyLayout
aracılığıyla kendi kaydırılabilir, gecikmeli düzenlerinizi oluştururken kullanabilirsiniz. (Id6fab, b/233352497) - Desteği sonlandırılan
LazyVerticalGrid
,androidx.compose.foundation.lazy
paketinden kaldırıldı. Yeni kararlı API,androidx.compose.foundation.lazy.grid
(I73c76, b/225192009) adresinde yer alır.
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.foundation:foundation:1.2.0-beta03
ve androidx.compose.foundation:foundation-layout:1.2.0-beta03
serbest bırakıldı. 1.2.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Yeni deneysel
IntervalList
veMutableIntervalList
eklendi. Bazı değer listelerinin birden fazla aralık üzerinden gösterilmesine olanak tanır. Liste öğelerinin birden fazla item/items çağrısı aracılığıyla tanımlanabildiğiLazyColumn
tarafından kullanılana benzer bir dsl tanımlamak istediğinizde bu işlevden yararlanabilirsiniz. (I2d05e, b/228580728)
Hata Düzeltmeleri
WindowInsets.ime
ile ilgili dokümanlarda, API 23'e kadarkiime
eklerin raporlandığı, ancak 30 ve sonraki sürümlerde yalnızca animasyon gerçekleştirildiği belirtiliyordu. (Ia7fc0, b/230756508)- İmleç bir metin alanının sonundayken ileri silme tuşuna basıldığında artık kilitlenme yaşanmaz.
DeleteSurroundingTextCommand
veDeleteSurroundingTextInCodePointsCommand
için artık kurucu bağımsız değişkenlerinin negatif olmaması gerekiyor. (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ı. Sürüm 1.2.0-beta02 bu kaydetmeleri içerir.
- Metin veya
TextField
öğesinin yerleşim boyutunu değiştirmeyen indirilebilir yazı tipi çözünürlüğü daha önce yeniden çizilmiyordu ve bu da yazı tipinin eski görüntülenmesine neden oluyordu. Bu hata düzeltmesi, metin düzeninin her zaman yeniden çizmeyi 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ı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.
Yeni Özellikler
- Bu, 1.2 sürümünün ilk beta sürümüdür.
API Değişiklikleri
- Öğeleri görünür sınırların ötesinde düzenlerken
LazyList
'ın özel uygulamalarının kullanabileceği deneyselBeyondBoundsInterval
eklendi (Ifabfb, b/184670295) LineHeightBehavior
,LineHeightStyle
olarak yeniden adlandırıldıLineVerticalAlignment
,LineHeightStyle.Alignment
olarak yeniden adlandırıldıLineHeightTrim
,LineHeightStyle.Trim
olarak yeniden adlandırıldıLineHeightStyle
öğesinden varsayılan kurucu değerleri kaldırıldı (I582bf, b/181155707)LazyLayoutItemProvider
arayüzünün isteğe bağlı üyeleri için varsayılan değerler eklendi. (Iba8a0)LazyLayoutItemProvider
API'sinde, birleştirilebilir lambda'yı dizinle döndüren bir fabrika yerine artık dizinini kabul eden daha basit bir birleştirilebilir işlev öğesine sahibiz. (Id2196)- LazyLayoutItemsProvider, LazyLayoutItemProvider (I0638c) olarak yeniden adlandırıldı
LazyLayoutItemsProvider.itemsCount
,itemCount
olarak yeniden adlandırılır (Id409c)- Gradyan renklendirmeli metin çizme seçeneği sunmak için
TextStyle
veSpanStyle
'e Fırça eklendi. (I53869, b/187839528) trimFirstLineTop
,LineHeightBehavior
öğesinintrimLastLineBottom
özelliği tek bir sıralamada değiştirildi:LineHeightTrim
.LineHeightTrim
, iki boole ile tanımlanmış 4 duruma sahip değerlere sahiptir:FirstLineTop
,LastLineBottom
, Her ikisi ve Hiçbiri (Ifc6a5, b/181155707)TextStyle
öğesineLineHeightBehavior
eklendi veParagraphStyle. LineHeightBehavior
, satır yüksekliğinin ilk satırın üst kısmına ve son satırın alt kısmına uygulanıp uygulanmayacağını kontrol eder. Ayrıca,TextStyle
(lineHeight
) tarafından sağlanan boşluktaki çizginin hizalamasını da tanımlar.Örneğin,
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
aracılığıyla CSS'nin tanımladığına benzer bir davranış elde etmek mümkündür.trimFirstLineTop
,trimLastLineBottom
yapılandırmaları yalnızcaincludeFontPadding
yanlış olduğunda doğru çalışır. (I97332, b/181155707)Geliştiricilerin IME'yi kaydırma yoluyla kontrol edebilmesi için deneysel
imeNestedScroll()
değiştirici eklendi. (I60759)
Hata Düzeltmeleri
- Metin alanları, odaklanılmış durumdayken kompozisyondan kaldırıldığında 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.bringIntoView
artık istek tamamlanana veya yeni ve çakışmayan bir istek tarafından kesintiye uğrayana kadar her zaman askıya alınır. Çakışan istekler sıraya alınır. (I43e7f, b/216790855)- Tamamen örtüşen dikdörtgenler için eşzamanlı
BringIntoViewRequester.bringIntoView
çağrıları artık yalnızca daha büyük dikdörtgenin isteğini dikkate alır. (I34be7, b/216790855, b/184760918) - Varsayılan olarak etkin
includeFontPadding
.TextStyle.platformTextStyle
özelliğini kullanarakincludeFontPadding
'ü devre dışı bırakabilirsiniz. Yakın gelecekte varsayılan davranışı değiştireceğiz. Ancak bu zamana kadar satır yüksekliği iyileştirmelerini (aosp/2058653) daha iyi entegre edebilecek veTextField
kırpma sorunlarını çözebileceğiz. (I01423, b/171394808) Modifier.bringIntoViewRequester
artıkonGloballyPositioned
'ı kullanmıyor. (I630f5)
Harici Katkı
- Dikey olarak kaydırırsak Android'de
MouseInjectionScope.scroll(delta = someDelta)
artık ters çevrilir (someDelta pozitifse aşağı doğru kayar) (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ü bu kaydetmeleri içerir.
API Değişiklikleri
FontFamily.SansSerif
kullanırken Android'deki sistem yazı tipleri için kullanılabilen tüm ağırlıkları gösterin. Bu, API 21-28'de dahili olarak sans-serif-medium gibi yedek yazı tipi adlarını kullanır. API 21-28'de daha önce yalnızca 400 ve 700 ağırlıkları desteklendiği için bu davranış değişikliğidir. (I380fe, b/156048036, b/226441992)- Paragraph ve MultiParagraph artık Constraints parametresini kabul ediyor.
Constraints.maxHeight
parametresi şu anda herhangi bir işlem yapmaz ancak gelecekte yüksekliğe göre elips oluşturma gibi bazı hesaplamalar yapmanıza olanak tanır. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
artık içine yeni öğe eklenmesine izin vermeyen özel bir MutableSet benzeri sınıfı kabul ediyor. (Icd314)- Kısmi tüketim (aşağı VEYA konum) özelliği
PointerInputChange
sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()
kullanabilirsiniz. Değişikliğin daha önce başka bir kullanıcı tarafından tüketilip tüketilmediğini belirlemek içinisConsumed
değerini kullanabilirsiniz. PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu,PointerInputChange
kopyalarının, kopyalardan biri kullanıldığında tüketileceği anlamına gelir. Bağlantısız birPointerInputChange
oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)- Yeni deneysel
LazyLayout
API kullanıma sunulmuştur. Bu şekilde kendi bileşenlerinizi oluşturabilirsiniz (ör.LazyColumn
/LazyVerticalGrid
). API'nin henüz erken aşamalarında olduğunu ve gelecekteki sürümlerde değişebileceğini unutmayın. (Iba2bc, b/166591700) AndroidFont
artık oluşturucu parametresi olaraktypefaceLoader
değerini alıyor. (I2c971)WindowInsets
tamamlayıcı artık görünürlüğü (pencereyle kesişip kesişmelerinden bağımsız olarak ekranda olup olmadıklarından bağımsız olarak) ve cihazda mevcutsa ancak o anda etkin değilse gösterebilecekleri boyutu gösteriyor. (I65182, b/217770337)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.foundation:foundation:1.2.0-alpha07
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha07
yayınlandı. 1.2.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Tembel düzenlerin alt öğelerinin, şu anda oluşturulmuş öğelerin kaldırılmasını engellemesine olanak tanıyan bir
PinnableParent
API eklendi (Ibbdd0, b/184670295) LazyListLayoutInfo
veLazyGridLayoutInfo
artıkbeforeContentPadding
veafterContentPadding
alanlarına sahip (I3b628, b/200920410)- IME'ye ondalık ayırıcıyı özel olarak dahil etmek için
Keyboard.Number
yerineKeyboardType.Decimal
eklendi. (Iec4c8, b/209835363) - Yazı tipi yedek zincirleri sırasında isteğe bağlı olarak sistem tarafından yüklenen yazı tiplerini aramak için yeni yazı tipi tanımlayıcısı Font(DeviceFontFamilyName) ekleyin. (I30468, b/219754572)
PointerEventType.Scroll
vePointerEvent.scrollDelta
artık kararlı API'lerdir (I574c5, b/225669674)TextStyle/ParagraphStyle. includeFontPadding
'daincludeFontPadding
için eklenen geçici uyumluluk yapılandırmasıTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
üzerinden değiştirilebilir. Bu, taşıma işlemini etkinleştirmek için kullanılan geçici bir yapılandırma seçeneğidir ve kaldırılacaktır. (If47be, b/171394808)- Sistem genelinde kalın metin erişilebilirlik ayarını entegre etmek için
FontFamily.Resolver
güncellendi (I6c1e7) ComposeView
ürünününconsumeWindowInsets
uzantı özelliği, geliştiricilerin Android WindowInsets kullanımını devre dışı bırakmasına olanak tanır. Bu sayede hiyerarşide ayrıComposeViews
'lerin her biri, birbirine müdahale etmedenWindowInsets
uygulayabilir. (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ü bu taahhütleri içerir.
API Değişiklikleri
- Odaklanabilir hedefe odaklanmayı istemek için
RequestFocus
semantik işlemi eklendi. (I17b71) FocusOrder
artıkFocusProperties
ile birleştirildi vefocusProperties()
,focusOrder()
'ın tüm özelliklerine sahip oldu.FocusOrder
vefocusOrder()
desteği sonlandırıldı.focusRequester
kabul edenfocusOrder()
,focusProperties()
ile birlikte birfocusRequester()
değiştiriciyle değiştirilmelidir. Bu sayede değiştiriciler daha güçlü bir sorumluluk ayrımı elde eder. (I601b7)WindowInsets.asPaddingValues(Density)
, geliştiricilerin bileşim hâlinde olmalarına gerek kalmadan dönüşümü gerçekleştirmelerine olanak tanımak için eklendi. (I94c35)- Mevcut düzen yönü RTL ise
VectorPainter
içeriğini çevirmek için otomatik yansıtmayı desteklemek üzere vektör çizilebilir öğelerin ayrıştırması güncellendi. (I79cd9, b/185760237)
Hata Düzeltmeleri
- Kaydırma alanı yeniden boyutlandırılırsa ve odaklanan kompozisyon daha önce görünür durumdaysa kaydırma değiştiricileri (
Modifier.verticalScroll()
,Modifier.horizontalScroll()
veModifier.scrollable()
) artık odaklanan kompozisyonu görünür tutmak için kaydıracaktır. - Metin alanları artık odaklandığında ve klavye gösterildiğinde, klavyenin üzerinde tutulur. Bu durum, klavye kaydırma özelliği devre dışıyken ve yumuşak giriş modu
ADJUST_RESIZE
olduğunda geçerlidir. (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ü bu taahhütleri içerir.
API Değişiklikleri
LazyVerticalGrid
veLazyHorizontalGrid
artık kararlı. (I307c0)LazyGridItemInfo.Unknown
, ayrıLazyGridItemInfo.UnknownRow
veLazyGridItemInfo.UnknownColumn
ile değiştirildi (I56d51)LazyVerticalGrid
/LazyHorizontalGrid
ve ilgili tüm API'ler.grid
alt paketine taşındı. Lütfenandroidx.compose.foundation.lazy
olan içe aktarma işlemleriniziandroidx.compose.foundation.lazy.grid
olarak güncelleyin. (I2d446, b/219942574)- Metin:
includeFontPadding
artık varsayılan olarak kapalıdır.includeFontPadding=false
nedeniyle ortaya çıkan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmayacak. (I31c84, b/171394808) - Ölçülen arayüz artık parentData mülkünü (I3313f) gösteriyor.
- Alt öğelerin odaklanılabilirlik sınırlarını gözlemlemenize olanak tanımak için deneysel
Modifier.onFocusedBoundsChanged
özelliği kullanıma sunuldu. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - LazyHorizontalGrid eklendi. (I61ae7, b/191238807)
- Eksenler arası boyutları tanımlamak için yeni bir
LazyVerticalGrid
API eklendi (I17723) - FocusGroup değiştirici eklendi (I64bc0, b/213508274, b/184670295)
Hata Düzeltmeleri
WindowInsets.toString()
artık doğru değerleri gösterecek. (I1585d)
Harici Katkı
- Kotlinx coroutines 1.6.0 (I3366d) sürümünü kullanacak şekilde güncellendi
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.foundation:foundation:1.2.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha04
yayınlandı. 1.2.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
BringIntoViewResponders
'lerin artık istekleri üst yanıt verenlere manuel olarak iletmesi gerekmez. Bunun yerine, üstlerinin görüntülemesini istedikleri dikdörtgeni hemen döndürmeleri gerekir. (I8e66a)- Metinde eşzamansız yazı tipi yüklemeyi destekleme (I77057, b/214587005)
LazyVerticalGrid
artık kapsamı geçerli satıra sığmayan öğelerden önceline breaking
değerini destekliyor. (I05c40, b/207462103)excludeFromSystemGestures
,systemGesturesExclusion
olarak yeniden adlandırıldı (I19526)LazyVerticalGrid
artık reverseLayout özelliğini 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) Bir birleştirilebilir işlevin, kullanılmak üzere tasarlanmadığı bir uygulayıcı hedeflendiğinde derleme zamanında raporlanmasına olanak tanıyan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
eklendi.Çoğu durumda, ek açıklamalar, derleyici eklentisi tarafından tahmin edilebilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), birleştirilebilir lambda olan alanlar veya global değişkenler (yerel değişkenler ve parametreler çıkarılır) veya
ComposeNode
ya da ilgili birleştirilebilir işlevler kullanıldığında çıkarım yapılamaz.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
'yi çağıran birleştirilebilir işlevlerin, işlev ve tüm birleştirilebilir lambda parametresi türleri için birCompoableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ile ek açıklama içeren bir ek açıklama oluşturmanız ve ardından doğrudanComposableTarget
yerine işaretlenmiş ek açıklamayı kullanmanız önerilir.ComposableTargetMarker
ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özellik sınıfının tam nitelikli adının yer aldığı birComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımıyla ilgili bir örnek içinanroidx.compose.ui.UiComposable
bölümüne bakın. (I38f11)
Hata Düzeltmeleri
- Artık
LazyGridState.scrollToItem()
veLazyGridState.animateScrollToItem()
'e negatif kaydırma ofsetleri iletilmesine izin verilmektedir. (I025c6, b/211753558) - TextField için eşzamansız yazı tipi yüklemeyi destekleyin. (Icc4bf, b/214587005)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.foundation:foundation:1.2.0-alpha03
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha03
yayınlandı. 1.2.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
TextInputSession
veTextInputService
işlevlerindekinotifyFocusedRect
yöntemleri artık kullanımdan kaldırıldı ve çağrılmayacak. Bunun yerineBringIntoViewRequester
kullanın. (Ia4302, b/192043120, b/216842427, b/178211874)- Modifier.animateItemPlacement() ile, gecikmeli ızgaralardaki öğeler için animasyonlar etkinleştirildi. (Ib6621, b/211753218)
BringIntoViewRequester
artık istekleri barındıran Android Görünümü'ne iletiyor. (Ia7a51)FontFamilyResolver
artıkLocalFontFamilyResolver.current
üzerinden kullanılabilir- Oluşturma kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için
createFontFamilyResolver(context)
vecreateFontFamilyResolver(context, coroutineScope)
eklendi. - Paragraf ve ÇokluParagraf öğeleri artık
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
artık bu düzen için kullanılan çözümleyiciyi içeriyor. Artık kullanılmadığı içinTextLayoutResult.layoutInput.resourceLoader
kullanımdan kaldırıldı. (Id5a45, b/174162090)
- Oluşturma kullanımı dışında yeni FontFamily çözümleyicileri oluşturmak için
- Android'de yeni yazı tipi kaynak tanımlayıcı türleri sağlamak için yeni bir düşük düzey API olan
AndroidFont
eklendi. Ö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ı tiplerini mevcut yazı tipi fabrikaları tarafından sağlanmayan bir kaynaktan yükleme.Font.ResourceLoaded
API'si, isteğe bağlı ve eşzamansız yazı tipi yüklemeyi desteklemek için genişletildi. Uygulama geliştiricilerin doğrudan bu API'yi kullanması önerilmez. Yeni yazı tipi türleri eklemek için AndroidFont'a bakın.Font.AndroidResourceLoader
uzantı işlevi, beste dışındaykenFont.ResourceLoader
oluşturmaya olanak tanır.- Kaynak yazı tipi indirilebilir yazı tipi XML'ine referans verdiğinde, kaynak tabanlı yazı tiplerine
loadingStrategy
parametresi eklendi. Bu parametre, yazı tipinin ayarsız olarak yüklenmesine olanak tanır. (Ie5aea, b/174162090)
Typeface(FontFamily)
oluşturucu desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri 10 saniye kadar sürebiliyordu. İndirilebilir yazı tiplerinde bu çağrı 10 saniye boyunca engellenebilir. Bunun yerineFontFamilyResolver.preload
kullanınfontResource(FontFamily): Typeface
desteği sonlandırıldı. Bu özellik daha önce yazı tiplerini önceden yüklemek için kullanılıyordu. İndirilebilir yazı tipleri 10 saniye kadar sürebiliyordu. Bunun yerineFontFamilyResolver.preload
(If8e7c, b/174162090) kullanın.
- Artık
LazyVerticalGrid
öğeleri için içerik türünü belirtebilirsiniz.LazyGridScope
üzerindeki öğe/öğe işlevleri artık bu parametreyi kabul etmektedir. Bu tür bilgileri sağlamak, öğe kompozisyonunun mantığını yeniden kullanarak daha verimli hale gelmesine ve yalnızca benzer türdeki öğeler arasında içeriğin yeniden kullanılmasına yardımcı olur. (I7b355, b/215372836) LazyListLayoutInfo
veLazyGridLayoutInfo
'da yeni özellikler eklendi:viewportSize
,orientation
,reverseLayout
(Ifc8ed, b/200920410)- Artık LazyColumn/LazyRow öğelerinin içerik türünü belirtebilirsiniz. LazyListScope'taki item/items işlevleri artık bu parametreleri kabul ediyor. Bu tür bilgilerin sağlanması, öğe bestesinin yeniden kullanılarak mantığın daha verimli bir şekilde kullanılmasına ve içeriğin yalnızca benzer türdeki öğeler arasında yeniden kullanılmasına yardımcı olur. (I26506)
maxSlotsToRetainForReuse
kabul edenSubcomposeLayoutState
oluşturucunun desteği sonlandırıldı. Bunun yerineSubcomposeSlotReusePolicy
öğesini kabul eden yeni bir oluşturucu var. Bu oluşturucu, gelecekte yeniden kullanılmak üzere hangi alanların saklanması gerektiği konusunda daha ayrıntılı denetime olanak tanıyan yeni bir arayüzdür. (I52c4d)- Hem dolgu hem de boyutlandırma için WindowInsets için değiştiriciler ekler. Bu sayede bazı içerikler içe yerleştirilmiş alana sığabilir ve birincil içerik içe yerleştirilmiş alanın dışında kalabilir. Örneğin, windowInsetsPadding, tamamen veya kısmen örtülebilecek alanları önlemek için içerik alanını doldurmak amacıyla kullanılabilir. (Id0395, b/213942085)
Hata Düzeltmeleri
- Artık metin alanları, odaklanıldığında ve yumuşak giriş modu
ADJUST_PAN
olduğunda klavyenin üzerinde tutulacak. (I8eaeb, b/190539358, b/192043120) - Masaüstü,
FontFamily.Resolver
için yerel kompozisyon kullanırFontLoader
masaüstü sürümü desteği sonlandırıldı- Masaüstünde yeni
createFontFamilyResolver
fabrikası (I6bbbb, b/174162090)
- Metin alanları arasında odağı değiştirirken artık dokunmatik klavye giriş türü yanıp sönmüyor. (I1bf50, b/187746439)
- Metin alanlarında, imleç çubuğu gösterilirken artık ekstra bir geri tuşuna basılması gerekmez. (Ideb4b, b/205726883)
- Metin seçimi büyüteç davranışı, platform büyüteçiyle eşleşecek şekilde düzeltildi. (Idd918, b/206833278)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.foundation:foundation:1.2.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.2.0-alpha02
serbest bırakıldı. 1.2.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Karmaşık bir mantığı olmayan mevcut yöntemlerin aşırı yüklenmesi olan yöntemlere
NonRestartableComposable
eklendi. Bu, çağrılan iç işlevde tekrarlanan tüm parametreler için derleyici tarafından oluşturulan hafıza önbelleğe alma kontrollerini (eşit) azaltır. (I90490) - Android'in
setSystemGestureExclusionRects
özelliğine kolay erişim içinexcludeFromSystemGesture
değiştiricileri eklendi (I46f07)
Hata Düzeltmeleri
- Metin seçimi büyüteç davranışı, platform büyüteçiyle eşleşecek şekilde düzeltildi. (Idd918, b/206833278)
LazyColumn
,LazyRow
,Modifier.verticalScroll
veModifier.scrollable
kullanan diğer kapsayıcılar artık fare tekerleği kaydırma özelliğini 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ü bu taahhütleri içerir.
API Değişiklikleri
- Kullanıcıların dokunma hareketleri veya erişilebilirlik işlemleri aracılığıyla kullanıcı tarafından başlatılan kaydırma özelliğini geçici veya kalıcı olarak devre dışı bırakmasına olanak tanımak için
LazyColumn
,LazyRow
veLazyVerticalGrid
parametrelerine yeniuserScrollEnabled
parametresi eklendi. Durumdaki yöntemler aracılığıyla programatik olarak kaydırmaya yine izin verilecek. (I7eae9, b/201150093) - Büyüteç değiştiriciye
onSizeChanged
geri çağırma işlevi ekleyin. (I6879f) - Büyüteç widget'ı artık
SelectionContainer
içinde seçim tutamaçlarını sürüklediğinizde gösterilir. (I30b38, b/139320979)
Hata Düzeltmeleri
- Ekran kaydırıldığında
TextField
imleci tutamacının görünmeye devam etmesiyle ilgili sorun düzeltildi. (I14552, b/208883748)
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
sürümüne bağlıdır.
Sürüm 1.1
1.1.1 sürümü
23 Şubat 2022
androidx.compose.foundation:foundation:1.1.1
ve androidx.compose.foundation:foundation-layout:1.1.1
yayınlandı. 1.1.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
içinNullPointerException
düzeltme (aosp/1947059, b/206677462)- Android'de panodan okuma yaparken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (I06020, b/197769306)
LazyVerticalGrid
'te RTL düzeltildi (aosp/1931080, b/207510535)
1.1.0 sürümü
9 Şubat 2022
androidx.compose.foundation:foundation:1.1.0
ve androidx.compose.foundation:foundation-layout:1.1.0
serbest bırakıldı. 1.1.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
- Android 12 aşırı kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmasında iyileştirmeler
- Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını dokunma hedefi boyutu ile ilgili Materyal erişilebilirlik yönergelerine uyacak şekilde genişleteceğini unutmayın. Örneğin, Düğmenin boyutunu daha küçük olacak şekilde ayarlasanız bile düğmenin dokunma hedefi en az 48x48 dp boyutuna genişler. Bu, Oluştur Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ile Oluştur'u birlikte kullandığınızda tutarlı davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Compose Material bileşenlerini kullanarak oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
- Gezinme çubuğu için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçiriyor
- Kotlin'in daha yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.foundation:foundation:1.1.0-rc03
ve androidx.compose.foundation:foundation-layout:1.1.0-rc03
yayınlandı. 1.1.0-rc03 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Compose Material 1.1.0-rc03'ü desteklemek için güncellendi
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.foundation:foundation:1.1.0-rc01
ve androidx.compose.foundation:foundation-layout:1.1.0-rc01
yayınlandı. Sürüm 1.1.0-rc01 bu kaydetmeleri içerir.
Hata Düzeltmeleri
- Artık
LazyListState.scrollToItem()
veLazyListState.animateScrollToItem()
'e negatif kaydırma ofsetleri iletilmesine izin verilmektedir. (Iceb90, b/184252837) - Erişilebilirlik kaydırma işlemlerinin eksik olmasına neden olan bir hata düzeltildi (I7cbfb)
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.foundation:foundation:1.1.0-beta04
ve androidx.compose.foundation:foundation-layout:1.1.0-beta04
yayınlandı. 1.1.0-beta04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kotlin
1.6.0
ile uyumlu olacak şekilde güncellendi
API Değişiklikleri
androidx.core.view
(I7078a, b/204917439) dosyasında boşluk değeri temizlendi- PointerInputchange'i bir bütün olarak kullanmaya veya tüketilip tüketilmediğini kontrol etmeye olanak tanıyan deneysel API'ler eklendi. (I2e59d)
- Metin alanlarında imleci veya seçim tutamacını sürüklerken büyüteç widget'ını gösterin. (I5391e, b/203781358)
Hata Düzeltmeleri
- IME görünürlüğü değiştiğinde hareket etmeyen metin tutma yerleri düzeltildi. (I25f2e)
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.foundation:foundation:1.1.0-beta03
ve androidx.compose.foundation:foundation-layout:1.1.0-beta03
yayınlandı. 1.1.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- LazyVerticalGrid'e yatay aralık desteği eklendi. (I7e2fa, b/176758183)
Eşlenmemiş liste öğelerinin konumlarını animasyonlu hale getirme özelliği deneysel olarak eklendi. LazyItemScope içinde
Modifier.animateItemPlacement()
adlı yeni bir değiştirici mevcuttur. Kullanım örneği:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }
LazyListScope.item
veyaLazyListScope.items
aracılığıyla bir tuş sağladığınızda bu değiştirici, animasyonların yeniden sıralanmasını sağlar. Öğelerin yeniden sıralanmasının yanı sıra düzenleme veya hizalama değişiklikleri gibi etkinliklerin neden olduğu diğer tüm konum değişiklikleri de animasyonlu olarak gösterilir. (I59e7b, b/150812265)
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.foundation:foundation:1.1.0-beta02
ve androidx.compose.foundation:foundation-layout:1.1.0-beta02
serbest bırakıldı. 1.1.0-beta02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Dalgalar ve diğer göstergeler artık kapalı bir etkinlik için her zaman gecikmeli olarak değil, yalnızca bir
Modifier.scrollable()
kapsayıcısının içinde olduklarında gecikecek. (Ibefe0, b/203141462) - Ebeveynlere bir öğeyi görüntüye getirmek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
Harici Katkı
Modifier.pointerHoverIcon
(I95f01) eklendi
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.foundation:foundation:1.1.0-beta01
ve androidx.compose.foundation:foundation-layout:1.1.0-beta01
yayınlandı. 1.1.0-beta01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Ebeveynlere bir öğeyi görüntüye getirmek için kaydırmaları gerektiğini belirten bir istek göndermenize olanak tanıyan deneysel BringIntoView API eklendi (Ib918d, b/195353459)
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.foundation:foundation:1.1.0-alpha06
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha06
serbest bırakıldı. 1.1.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Daha verimli bir şekilde, düzen için alt öğe içermeyen bir aşırı yükleme eklendi (Ib0d9a)
SemanticsNodeInteraction.performSemanticsAction
artık işlevin çağrıldığıSemanticsNodeInteraction
değerini döndürür. (I9e5db)- Kaydırılabilir bir kapsayıcıyı, belirtilen eşleştiriciyle eşleşen içeriğe kaydıran
performScrollToNode(matcher: SemanticsMatcher)
eklendi. (Ic1cb8)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha05
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha05
yayınlandı. 1.1.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- PointerEventChange'e deneysel geçmiş işaretçiler eklendi. (Ic1fd8, b/197553056, b/199921305)
Hata Düzeltmeleri
- Kaydırmayla ilgili kaydırılabilir öğeler (hem geç hem de geç olmayan) için sabit erişilebilirlik desteği (I6cdb0)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.foundation:foundation:1.1.0-alpha04
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha04
yayınlandı. 1.1.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
performGesture
veGestureScope
kullanımdan kaldırıldı ve bunların yerineperformTouchInput
veTouchInjectionScope
getirildi. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için
SemanticsNode
öğesine minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214)
Hata Düzeltmeleri
- Android 12 cihazlarda uzayarak 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ü bu kaydetmeleri içerir.
Yeni Özellikler
- Oluşturma
1.1.0-alpha03
, Kotlin1.5.30
öğesine bağlı olacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Kaydırma için parlama efekti eklendi. Fazla kaydırmadan görsel efektin yapılandırılmasına olanak tanımak için yeni deneysel Over ScrollConfiguration API eklendi. Ekranın aşırı kaydırma efektini devre dışı bırakmak için null değerini girin. (I0c304, b/171682480)
- AwaitPointerEventScope artık withTimeout() ve withTimeoutOrNull() işlevlerine sahiptir (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 ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. Bu boyut, semantikte ve işaretçi girişinde kullanılabilir. (Ie861c)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.foundation:foundation:1.1.0-alpha02
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha02
yayınlandı. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
Modifier.size
verequiredSize
için DpSize sürümleri eklendi (I3fc7e, b/194219828)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.foundation:foundation:1.1.0-alpha01
ve androidx.compose.foundation:foundation-layout:1.1.0-alpha01
serbest bırakıldı. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- İsteğe bağlıFilter Quality parametresini kullanmak için kaynak ve hedef akışları tüketen
DrawScope#drawImage
yöntemi güncellendi. Bu, piksel tabanlı resimler için ölçeklendirildiğinde pikselleştirilmek üzere tasarlanmış piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresi de kullanacak şekilde güncellendi (Ie4fb0, b/180311607) - TextField, artık geri düğmesine basıldığında seçimi temizliyor. Bu da Android EditText davranışıyla eşleşiyor. (I3ca16, b/174173645)
- İmleci ekleyin. (I07a82, b/173016579)
Hata Düzeltmeleri
- Tembel listeler ve normal kaydırma bileşenleri için anlamsal işlemler aracılığıyla kaydırma işlemi artık animasyonlu (Id9066, b/190742024)
Harici Katkı
LazyVerticalGrid
artık hem yatay hem de dikey düzenleme parametrelerini kabul ediyor. (If9c92)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.foundation:foundation:1.0.5
ve androidx.compose.foundation:foundation-layout:1.0.5
yayınlandı. 1.0.5 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- derivedStateOf örneklerini izlemeyle ilgili bir kilitlenme düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.foundation:foundation:1.0.4
ve androidx.compose.foundation:foundation-layout:1.0.4
serbest bırakıldı. 1.0.4 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
'e 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ü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
'e 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ü bu taahhütleri içerir.
Oluştur 1.0.2
sürümünü desteklemek için güncellendi. Oluşturulan 1.0.2
, Kotlin 1.5.21
ile hâlâ uyumlu.
1.0.1 sürümü
4 Ağustos 2021
androidx.compose.foundation:foundation:1.0.1
ve androidx.compose.foundation:foundation-layout:1.0.1
yayınlandı. 1.0.1 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
'e 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
serbest bırakıldı. 1.0.0 sürümü bu kaydetmeleri içerir.
1.0.0'ın temel özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Sürüm bloguna göz atın!
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız aşağıdaki kilitlenmeyi görebilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Bu sorunu düzeltmek için
build.gradle
dosyanızdaki minSdkVersion değerini geçici olarak 24 veya daha yüksek bir değere ayarlayın. Bu sorun, Android Studio Bumblebee ve AGP'nin sonraki sürümünde7.1
düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0-rc02
ve androidx.compose.foundation:foundation-layout:1.0.0-rc02
yayınlandı. Sürüm 1.0.0-rc02 bu kaydetmeleri içerir.
- Sabit boyutlarla tanımlanan yollardaki sorunları gidermek amacıyla genel şekiller için kenarlık oluşturma güncellendi. (aosp/1748871, b/191817116)
Sürüm 1.0.0-rc01
1 Temmuz 2021
androidx.compose.foundation:foundation:1.0.0-rc01
ve androidx.compose.foundation:foundation-layout:1.0.0-rc01
serbest bırakıldı. 1.0.0-rc01 sürümü bu taahhütleri 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
Modifier.clickable(enabled=false)
, tıklamaların üst öğeye gitmesini engeller. (Ic2c3b, b/183908811)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.foundation:foundation:1.0.0-beta09
ve androidx.compose.foundation:foundation-layout:1.0.0-beta09
serbest bırakıldı. 1.0.0-beta09 sürümü bu taahhütleri içerir.
API Değişiklikleri
ManualFrameClock
kaldırıldı. Animasyonları kontrol etmeniz gerekiyorsa bunun yerinecomposeTestRule.mainClock
seçeneğini kullanın. (I3c3e8, b/189951065)- enum Role ve LiveRegionMode'u özel yapıcılı satır içi sınıflara dönüştürün (Id1890)
- 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ülür. (I433af)
Hata Düzeltmeleri
- Artık LazyColumn/Row öğeleri için benzersiz anahtarları belirttiğinizde, kaydırma konumu anahtara göre korunur. Diğer bir deyişle, geçerli görünür öğeden önce öğe ekler/kaldırırsanız, belirtilen anahtara sahip öğe ilk görünür öğe olarak tutulur. (Id263f, b/184257857)
- Anahtar sabitler şu anda @ExperimentalComposeUiApi. Kodu kullananlar, kararlı hale gelmeden önce özel sabitler tanımlayabilir. (Ia5d48)
- AndroidComposeTestRule'a, beklemek veya sessizliğe ulaşmak için alternatif bir mekanizma yüklemek üzere test çerçeveleri tarafından kullanılabilecek IdlingStrategy eklendi. Testiniz başlamadan önce
AndroidComposeTestRule.setIdlingStrategyFactory()
'ü kullanarak kendi stratejinizi yükleyin. (I608fa)
Profil Kuralları eklendi
Bu sürüm, aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları ekler:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.malzeme
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.grafikler
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığa ilişkin profil kuralları,
src/main
veya eşdeğer dizinde bulunan bir metin dosyasında (baseline-prof.txt
) belirtilir. Dosyada satır başına bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme 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 profil biçiminin bir ü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 kuralları ise aşağıdaki kalıba sahiptir:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek içinH
,S
veP
karakterlerinden biri 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.SlotTable
sınıfının tanımlayıcı değeriLandroidx/compose/runtime/SlotTable;
olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürme türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yönteminin imzasıisPlaced()Z
'dir.Tek bir kuralın birden fazla yöntemi veya sınıfı kapsayabilmesi için bu kalıplarda joker karakterler (
**
,*
ve?
) bulunabilir.
Kurallar ne işe yarar?
H
işareti bulunan bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.S
işareti bulunan bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve yöntemin başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.P
işareti olan bir yöntem, başlangıçtan sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetinden kaçınmak için yığına önceden ayrılması gerektiğini belirtir.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Daha sonra bu yapıları içeren bir uygulama oluşturulduğunda bu kurallar birleştirilir ve birleştirilen kurallar, uygulamaya özgü kompakt bir ikili ART profili oluşturmak için kullanılır. Ardından ART, uygulamanın performansını (özellikle de ilk çalıştırmayı) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derlemek amacıyla uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bu durumun, hata ayıklama yapılabilir 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ü bu taahhütleri içerir.
API Değişiklikleri
- NestedScrollSource enum, satır içi bir sınıfla değiştirildi. (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 yapılandırıldı. (I2b5eb)
- Kaydırma/sürükleme sırasında dalgalanma gösterilmesini önlemek için tıklanabilir/açma/kapatma düğmeli öğelere dokunma zaman aşımı ekler (Ia2704, b/168524931)
- ContentDescription ve Text semantics özellikleri artık tek değer değil liste şeklindedir. Bu sayede, bunları birleştirirken birleştirme yerine olduğu gibi birleştirebilirsiniz. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri de sağlandı (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırıldı veModifier.focusTarget()
(I6c860) ile değiştirildi- KeyboardType enum, satır içi bir sınıfla değiştirildi. (I73045, b/187055290)
FocusState
enum,FocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- ImeAction enum, satır içi bir sınıfla değiştirildi. (I18be5, b/187055290)
AnnotatedString.withAnnotation
işlevleri artık ExperimentalComposeApi yerine ExperimentalTextApi olarak adlandırılıyor. (I0cd0a)- TextUnitType içeren TextUnit kurucusu artık ExperimentalComposeApi yerine ExperimentalTextApi oldu.
- PaddingValues artık
@Immutable
yerine@Stable
(I88c50)
Hata Düzeltmeleri
- Boş olmayan metinde boş alana uzun basma kilitlenmeleri düzeltildi. (I33ab5, b/187437299)
- SelectAll (I495d9, b/185919613) sonrasında Araç Çubuğunu Göster
- Kaydırılabilir kapsayıcıların, çocuklarını enine eksende kırpması sorunu düzeltildi. Kart öğeleri içeren bir LazyRow'unuz varsa bu işlem kolayca yeniden oluşturulabilir. Artık gölge kırpılmayacak. (Icb635, b/186318448)
- Modifier.combinedClickable kullanılırken dalgaların / diğer gösterimlerin bazen uzun bir tıklamada takılı kalmasına neden olan sorun düzeltildi (I2298c, b/186223077)
- Artık
detectDragGesures
,detectVerticalGestures
vedetectHorizontalGestures
, konum değişikliğini otomatik olarak tüketiyor. onDrag geri çağrılarında change.consumePositionChange çağrısına gerek yok (I42fc4, b/185096350, b/187320697) Modifier.onGloballyPositioned()
, tüm değiştiricilerin uygulanmasından sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirecek şekilde değiştirildi. Bu, artık değiştiricilerin sıralamasının hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.foundation:foundation:1.0.0-beta07
ve androidx.compose.foundation:foundation-layout:1.0.0-beta07
yayınlandı. 1.0.0-beta07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- LazyColumn/Row (I8a4bc, b/184940225) için sonraki görünür öğe ön getirme mantığı kullanıma sunuldu
- Klip Seçim Kolu eklendi (Iff80d, b/183408447)
Hata Düzeltmeleri
- LazyColumn/Row, önceden kaydırılmış olsalar bile artık önceden görünür olan en fazla 2 öğeyi etkin (imha edilmez) tutacak. Bu, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt besteleri yeniden kullanmasına olanak tanır. (Ie5555)
- paintBackground öğesini kaldırın. (I38660)
- DrawScope'u kullanarak seçim arka planı çizin. (I73c61, b/186674472)
- Ağırlıklı alt öğeleri düzenlerken spacedBy düzenlemelerini kullanan satır/sütun öğesini etkileyen beta06 gerileme düzeltildi. (Ifaf8c, b/187326588)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.foundation:foundation:1.0.0-beta06
ve androidx.compose.foundation:foundation-layout:1.0.0-beta06
yayınlandı. 1.0.0-beta06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Gezinme Hareketiyle İlgili Çakışmayı Çözme (I1145e)
- Koleksiyonu ve öğelerini erişilebilirlik hizmetleri için işaretlemeye olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
- Dizine eklenen öğelerin bulunduğu bir listeyi belirli bir dizin içeren öğeye kaydırmaya yönelik
SemanticsActions.ScrollToIndex
ve anahtarlanmış öğelerin bulunduğu bir listedeki öğenin diznini almaya yönelikSemanticsProperties.IndexForKey
işlevleri eklendi. Her iki işlem de LazyList tarafından uygulanır.- Bir listeyi belirli bir dizinle kaydıran
SemanticsNodeInteraction.performScrollToIndex
ve bir listeyi belirli bir anahtara sahip öğeye kaydıranSemanticsNodeInteraction.performScrollToKey
işlevleri eklendi. (I4fe63, b/178483889, b/161584524)
- Bir listeyi belirli bir dizinle kaydıran
- AnnotatedString kaydetme desteği TextFieldValue.Saver'a eklendi. AnnotatedString.Builder'a addTtsDescription ve withInclude yardımcı işlev işlevleri eklendi (I8cbdc, b/178446304)
- Varsayılan
0.dp
parametre değerleriPaddingValues(horizontal, vertical)
öğesine eklendi (I05571, b/181336792)
Hata Düzeltmeleri
weight(fill = false)
içeren satır ve sütun alt öğeleri artık ana eksenin kullanılabilir alanının tamamını doldurmuyor. (Ied94d, b/186012444, b/184355105)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.foundation:foundation:1.0.0-beta05
ve androidx.compose.foundation:foundation-layout:1.0.0-beta05
yayınlandı. Sürüm 1.0.0-beta05 bu kaydetmeleri içerir.
API Değişiklikleri
- FlingBehavior arayüzü artık @Stable olarak işaretlenmiştir. Tüm uygulamalar
@Stable
sözleşmesine uygun olmalıdır. (I93354, b/184830577)
Hata Düzeltmeleri
- Erişilebilirlik kaydırma işlemleri
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
veaccessibilityActionScrollDown
düzeltildi. Kaydırılabilir öğenin sonuna gitmek yerine, artık belirtilen yönde bir ekran kaydırılır. (Ieccb0) - ui-test-manifest ve ui-tooling-data'daki AndroidManifest dosyaları artık Android 12 (I6f9de, b/184718994) ile uyumludur.
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.foundation:foundation:1.0.0-beta04
ve androidx.compose.foundation:foundation-layout:1.0.0-beta04
serbest bırakıldı. 1.0.0-beta04 sürümü bu taahhütleri içerir.
API Değişiklikleri
hide()
show()
- LocalSoftwareKeyboardController için CompositionLocal arayüzünün tamamını sağlayarak ayarlanmasını sağlayın (özellikle testlerde kullanışlıdır) (I579a6)
TextOverflow.Visible
kullanıma sunuldu. (Ic8f89)- Herkese açık
RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
örnekleri kaldırıldı. (I4e83e, b/181869067)
Hata Düzeltmeleri
- Kenarlarda bulunan
LazyColumn
/LazyRow
öğelerinin hızlı kaydırma işleminden sonra yanlış konumlandırılmasına neden olan sorun düzeltildi (Ie4d13, b/183877420) Bu değişiklikten önce, yerel birleştirilebilir işlevler parametrelerine göre atlanabilirdi. Bu değişiklikten sonra hiçbir yerel birleştirilebilir işlev atlanmayacaktır. Bu değişiklik, yerel işlevlerin üst öğeden parametre yakalamasının yaygın ve beklenen bir durum olması ve bu parametrelerin atlanması yaygın bir hata kaynağı olduğu için yapılır.
Özetlemek gerekirse aşağıdaki ö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,
ShowCount
birleştirilebilir işlevi,count
parametresi güncellendikten sonra bile her zaman atlanıyordu. Bu durum artık geçerli değil. (I5648a)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.foundation:foundation:1.0.0-beta03
ve androidx.compose.foundation:foundation-layout:1.0.0-beta03
yayınlandı. 1.0.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
DefaultMonotonicFrameClock
desteği sonlandırıldı.MonotonicFrameClock
olmadanwithFrameNanos
veyaRecomposer.runRecomposeAndApplyChanges
çağrılırsaIllegalStateException
atılacak. (I4eb0d)
Hata Düzeltmeleri
FlingBehavior.performFling()
artık hız 0 olduğunda bile çağrılıyor (I0b6e5, b/181237123)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.foundation:foundation:1.0.0-beta02
ve androidx.compose.foundation:foundation-layout:1.0.0-beta02
serbest bırakıldı. Sürüm 1.0.0-beta02 bu kaydetmeleri içerir.
API Değişiklikleri
- LazyColumn ölçüm mantığına birden fazla küçük optimizasyon eklendi (Ic6889)
- TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni bir
LocalSoftwareKeyboardController
kompozisyon yerel API'si eklendi. (I5951e, b/168778053) - TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni bir
LocalSoftwareKeyboardController
kompozisyon yerel API'si eklendi. (I84472, b/168778053)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılma (I6aa29, b/174531520)
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.foundation:foundation:1.0.0-beta01
ve androidx.compose.foundation:foundation-layout:1.0.0-beta01
yayınlandı. 1.0.0-beta01 sürümü bu taahhütleri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- onStart geri çağırma işlevi
detectDragGestures
'e (I67269, b/179995594) eklendi - Boyutlandırmayı doğal boyutlara göre ayarlama değiştiricileri artık deneysel değildir. (I15744)
- dp iddiaları kaldırıldı (I798d2)
- SoftwareKeyboardController geri çağırma işlevi, kısa süre içinde yeni bir API ile değiştirilmek üzere tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
- MeasureBlocks, eğlenceli bir arayüz haline gelen MeasurePolicy olarak yeniden adlandırıldı. Layout API'leri, MeasurePolicy'yi kullanacak şekilde güncellendi / basitleştirildi. (Icab48, b/167662468, b/156751158)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Etkileşim etkinliklerini yayınlamaktan / toplamaktan arayüzler sorumludur.
interactionState = remember { InteractionState() }
öğesiniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
kullanın.- Bunun yerine:
Interaction.Pressed in interactionState
InteractionSource.collectIsPressedAsState() gibi InteractionSource'daki uzantı işlevlerini kullanmanız gerekir. - Karmaşık kullanım alanları için Etkileşimlerin akışını gözlemlemek üzere EngagementSource.interactions parametresini kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerini ve örneklerini inceleyin.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Desteği sonlandırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için mülk 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)
- Yerleştirilebilir öğe artık alt düzenin gerçekte ölçüldüğü boyutu temsil eden measuredSize özelliğini gösterir. Bu boyut, ölçüm kısıtlamalarına uymayabilir. (Ib2729, b/172560206, b/172338608)
- Erişilebilirlik amacıyla Sekme veya RadioButton koleksiyonunu işaretlemeye olanak tanıyan seçim Grubu değiştiricisi ekleyin (Ie5c29)
LazyListState.animateScrollToItem ekleme
Bu yöntem, listedeki belirli bir öğeye sorunsuz bir şekilde kaydırılır. (I4bfd7)
ScrollableState.smoothScrollBy(), animateScrollBy() olarak yeniden adlandırıldı LazyListState.snapToItemIndex(), scrollToItem() olarak yeniden adlandırıldı ScrollState.smoothScrollTo(), animateScrollTo() olarak yeniden adlandırıldı (I35ded)
Değiştirici.zoomable, Değiştirici.Dönüştürülebilir öğemin yerini aldı. smoothPanBy, smoothRotationBy işlev olarak eklendi. (Ifc32b, b/175294473)
compositionLocalOf
vestaticCompositionLocalOf
içindefaultFactory
artık isteğe bağlı değil zorunludur.Bu değişiklik, varsayılan fabrika sağlanmayan, boş olmayan türler için olası bir tür hatasını ortadan kaldırır. Daha önce bu, null olmayan bir tür için boş bir referans sağlıyordu.
Boş bırakılabilir türler için varsayılan fabrika olarak
{ null }
değerini sağlayabilirsiniz.Mantıklı bir varsayılan değer sağlanamazsa yerel değişkenleri, null olmayan türlerle kullanmanızı önermeyiz. Makul bir varsayılan değer yoksa
defaultFactory
lambda işlevi bir istisna atmalıdır. Ancak istisna atma, yerel kullanıcıların, tür sistemi tarafından zorunlu kılınmadığı sürece sağlanmasına dair gizli bir bağımlılığa sahip olacağı anlamına gelir. (Ifbd2a)Indication#createIndication()
,Indication#rememberUpdatedIndication(InteractionState)
olarak değiştirildi veInteractionState
parametresi IndicationInstance#drawIndication()
'dan kaldırıldı. IndicationInstance yalnızca görsel efektleri çizmekten sorumlu olmalı, InteractionState değişikliklerine yanıt olarak animasyon başlatma / durum yazma işlemlerinden sorumlu olmamalıdır. Bu animasyonlar ve durum yazma işlemleri, bunun yerinerememberUpdatedIndication()
içinde gerçekleştirilmelidir.Modifier.indication
içindekiindication
parametresi de zorunlu parametre olacak şekilde değiştirildi. (Ic1764, b/152525426)Metin işlemleri artık odağı otomatik olarak kontrol ediyor (I13777, b/179648629)
runBlockingWithManualClock
(I15cdc, b/179664814) kaldırıldıModifier.vertical Scroll()/Yatay Kaydırma() işlevinde kaydırma konumu artık Ints ile temsil ediliyor (I81298)
smoothScrollBy ve scrollBy yöntemlerinin paketleri
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473) olarak değiştirildiFlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış azalma değerleri yerine askıya alma animasyonunun özelleştirilmesine olanak tanır. (I02b86, b/175294473)
Beden düzenleyiciler yeniden adlandırıldı. 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)
Değiştirici.tapmotionFilter 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)
Oryantasyon, temel pakete taşındı. VelocirtTracker, 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ğıracak bileşiğin kapsamını almak için rememberCoroutineScope() işlevini kullanın (I16f60, b/175294473)
Providers, CompositionLocalProvider olarak yeniden adlandırıldı
- Beste oluşturucu artık anahtar parametreleri kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey bir özelliğe dönüştürülmüştür.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
- ComposableLambdaN, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
- snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'ın birleştirme yöntemi artık deneysel değil
- Üst düzey
@TestOnly
clearRoots işlevi kaldırıldı. Artık gerekli değildir. - keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceInfo bilgileri 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 taşındı ve farklı dosyalara yeniden düzenlendi. Kotlin'in dosya sınıfı semantikleri nedeniyle bu durum ikili uyumluluğu bozar ancak kaynak uyumluluğunu bozmaz. Bu nedenle çoğu kullanıcı için sorun oluşturmaz.
- (I99b7d, b/177245490)
Modifier.scrollable yeniden çalışıldı. 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 değerini kabul ediyor. Öncekiyle aynı davranışı elde etmek için
rememberDraggableState { delta -> }
aracılığıyla durum oluşturabilirsiniz (Ica70f, b/175294473)Doğal boyutlara gerekli boyutlandırma için requiredWidth(IntrinsicSize) ve requiredHeight(IntrinsicSize) değiştiricileri eklendi. (I0a6b4)
Desteği sonlandırılan
emptyContent()
kaldırıldı. Bunun yerine{}
politikasını kullanın. (Idb33f, b/179432510)Daha önce desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932)
Hata Düzeltmeleri
- TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController kompozisyon yerel API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.foundation:foundation:1.0.0-alpha12
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha12
yayınlandı. 1.0.0-alpha12 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- Modifier.pointerInput artık, yeni bağımlılar için işaretçi girişi algılama coroutine'inin ne zaman yeniden başlatılacağını belirtmek üzere anahtarları hatırlamayı gerektiriyor. (I849cd)
- Güncelleme testi: hasText(), metin alanında (Iab803) hem giriş hem de etiket/hint/yer tutucu metinleri kontrol eder.
- PaddingValues.Mutlak eklendi ve PaddingValues kabul eden API'lerde kullanılabilir. (Ia5f30)
- onImeActionPerformed desteği sonlandırıldı. Bunun yerine Klavye Eylemlerini kullanın (If0bbd, b/179071523)
- Adlandırma kurallarının ImageBitmap ve ImageVector ile daha uyumlu olması için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Alt dize artık bağımsız değişken olarak kullanılarak daha iyi alt dize testi API'leri (Icbe78)
- Sonsuz animasyonlarda uygulanacak bir
InfiniteAnimationPolicy
coroutine bağlam öğesi kullanıma sunuldu.ComposeTestRule
ile test çalıştırırken hariç olmak üzere varsayılan olarak hiçbir 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ündeki androidx.activity.compose.setContent yöntemine taşındı. (Icf416)
- Yapıyı bölme 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 siparişini daha akıllıca yönetebiliriz. Bu nedenle, {} bloklarında hatırladığınız durumu, öğeleri yeniden sıraladığınızda veya öğeyi ortadan kaldırdığınızda öğeyle birlikte taşırsınız.
LazyColumn { items(users, key = { user -> user.id }) { ... } }
Indication#createInstance, @Composable olarak değiştirildi ve LocalIndication, () -> Indication yerine bir Indication içerecek şekilde değiştirildi. (I5eeea, b/157150564)
Constraints.enforce
,Constraints.constrain
ile değiştirildi. (I8b8ea)loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine PainterResource öğesini kullanın. (I6b809)
Performans nedeniyle ScrollAxisRange semantikleri artık doğrudan kayan nokta değerleri yerine kayan nokta döndüren lambdaları alır. (If4a35, b/178657186)
Erişilebilirlik için metin alanının düzenlenebilir giriş metnini işaretlemek üzere EditableText semantikleri ve semantikleri kontrol etmek için ilgili test yöntemleri eklendi (I8e07a)
Değiştirici.clickable'da artık çift ve uzun tıklama desteği yoktur. Bu işlevi elde etmek için Modifier.combinedClickable öğesini kullanın. (Iafad1)
toIntPx(), roundToPx olarak yeniden adlandırıldı. (I9b7e4, b/173502290)
IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
Değiştirici.dragMoveFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, tek eksenli sürükleme için Modifier.draggable'ı kullanın (I0ba93, b/175294473)Ambients, Ambient -> CompositionLocal adıyla eşleşecek şekilde yeniden adlandırıldı. Ambients eskiden AmbientFoo olarak adlandırılıyordu. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
Seçim, temele taşındı. (I7892b)
Daha önce
state { 0 }
bileşenini kaldırıpremember { mutableStateOf(0) }
gibi kullanımları teşvik ettiğimiz gibi,savedInstanceState { 0 }
bileşenini de kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmalısınız. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa otomatik olarak kaydedilir ve geri yüklenir. Daha önce bir özel koruyucu nesnesi iletiyorsanız şimdistateSaver
parametresini içeren yeni birhatırlanabilirlik türü aşırı yüklemesi kullanmanız gerekir. Kullanım şu şekilde görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004)Erişilebilirlik için şifre semantikası eklendi (I231ce)
Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05)
Animasyondaki oynatma süresi artık nanosaniye olarak ayarlanmamış (If776a)
@ComposableContract desteği sonlandırıldı ve bunun yerine daha spesifik üç ek açıklama eklendi.
@ComposableContract(restartable = false)
,@NonRestartableComposable
oldu@ComposableContract(readonly = true)
,@ReadOnlyComposable
oldu@ComposableContract(preventCapture = true)
,@DisallowComposableCalls
oldu@ComposableContract(tracked = true)
kaldırıldı. (I60a9d)Artık performans üzerinde olumlu bir etkisi veya değeri olmadığı için
emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programlarının desteği sonlandırıldı (I0484d)Yeniden derleyiciler artık kapatılabilir. Kapalı yeniden derleyiciler, derleme alt coroutine'leri tamamlanana kadar yeniden derlemeye devam eder. Recomposer.shutDown, kapat ile kontrast oluşturmak için iptal olarak yeniden adlandırıldı. (Ib6d76)
LazyVerticalGrid ile ilgili API'ler deneysel olarak işaretlenmiş (Ia53e3, b/178519862)
rememberSavedInstanceState(), rememberSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
RestorableStateHolder, SaveableStateHolder olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. RestorableStateProvider adlı iç yöntem SaveableStateProvider olarak yeniden adlandırıldı. Genel tür kaldırıldı. Bu nedenle, anahtar olarak herhangi bir değeri iletebilirsiniz. Deneysel ek açıklama artık gerekli değildir. (I0902e, b/174598702)
Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate adlı sınıftan androidx.compose.runtime.saveable adlı sınıfa taşındı (I77fe6)
androidx:compose:runtime:runtime-saved-instance-state yapıtı, androidx:compose:runtime:runtime-saveable olarak yeniden adlandırıldı (I6dcac)
Kullanıcı arayüzü paketindeki uzun süredir kullanımdan kaldırılmış birçok API silindi. (I2f2dc)
compose:runtime-dispatch yapısını kullanmayı bırakın. MonotonicFrameClock artık compose:runtime, AndroidUiDispatcher ise compose:ui altında bulunabilir. (Ib5c36)
RounderCornerShape, CutCornerShape ve CornerBasedShape'taki parametreler, şeklin rtl yönünde otomatik olarak yansıtılmasını desteklemek için sol/sağ yerine başlangıç/bitiş olarak yeniden adlandırıldı. AbsoluteRounderCornerShape ve AbsoluteCutCornerShape, otomatik yansıtmanın istenmediği durumlar için kullanıma sunulmuştur. (I61040, b/152756983)
canDrag, Modifier.scrollable özelliğinden kaldırıldı. (Id66e7, b/175294473)
Compose derleyici eklentisinin hedeflediği API, somut sınıf yerine arayüz kullanacak şekilde yeniden yapılandırıldı. Arayüz artık type parametresi kullanmıyor.
Bu, kaynak kod uyumluluğunu etkilemeyecek ancak ikili programda uyumsuzluk oluşturan dahili bir değişikliktir. (I3b922, b/169406779)
Değiştirici.scaleHareketFiltresi kaldırıldı. Bunun yerine Modifier.zoomable kullanın. Alternatif olarak
Modifier.pointerInput { detectMultitouchGestures { ... }}
(Id5da1, b/175294473) değerini de kullanabilirsiniz.AnimasyonluDeğer/Kayan Öğe için destek sonlandırıldı. Bunun yerine lütfen Animatable'ı kullanın. (I71345, b/177457083)
- CoreText ve CoreTextField, herkese açık API'den kaldırıldı
- Kullanımdan kaldırılan SelectContainer aşırı yüklemesi kaldırıldı (I99c19)
Kullanımdan kaldırılan ve askıya alınmayan kaydırma işlevlerini kaldırın Son sürümdeki değişikliklerle devam ederken, askıya alınma durumu söz konusu olmayan kaydırma işlevleri artık tamamen kaldırıldı. Lütfen aynı ada sahip askıya alma işlevlerine dönüştürün. rememberCoroutineScope() aracılığıyla bir eş yordam kapsamı elde edilebilir. (I3d39c, b/178169563)
androidx.compose.foundation.layout.ConstraintLayout desteği, androidx.Restricttlayout.compose.ConstraintLayout sürümü kullanılarak kaldırıldı.
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
için bağımlılık eklemeniz gerekir. (I87adc)tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine, detectTapGestures işleviyle birlikte Modifier.clickable veya Modifier.pointerInput kullanın. (I6baf9, b/175294473)
Recomposer.current()
kaldırıldı. [Özet]ComposeView artık varsayılan olarak, pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, üşengeç şekilde oluşturulmuş, pencere kapsamlı Recomposer'ları kullanır. Ana makine yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon tikleri duraklatılır. (I38e11)Recomposer.runningRecomposers artık işlemdeki devam eden derleme durumunu gözlemlemek için salt okunur RecomposerInfo'dan oluşan bir global StateFlow sunuyor. Artık desteği sonlandı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ü bu taahhütleri içerir.
API Değişiklikleri
Askıya alınmadan önce
Artık kaydırma işlemini kontrol etmek ve kaydırma işleminin tamamlanmasını beklemek için askıya alma işlevlerini kullanmanızı öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz ve/veya desteğini sonlandırıyoruz. (Ie9ced)
Askıya alınmayan smooth ScrollBy seçeneğini kullanımdan kaldırın. Artık, kaydırmayı kontrol etmek için askıya alma işlevlerini kullanmanızı ve kaydırmanın bitmesini beklemenizi öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz. (I12880)
Resim ve Simge'ye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c)
BasicTextField, "decorationBox" adlı yeni bir parametre aldı. Metin alanına simge, yer tutucu, etiket ve benzeri süslemeler eklemenize ve bu alanın isabet hedef alanını artırmanıza olanak tanır. (I16996)
canDrag parametresi, Modifier.draggable öğesinden kaldırıldı (Ic4bec, b/175294473)
FlingConfig'i kabul eden AnimatedFloat.fling kaldırıldı. Lütfen bunun yerine suspendAnimatable.animateDecay işlevini kullanın. (I4659b, b/177457083)
data class
, aşağıdaki sınıflardan kaldırıldı:- InlineTextContent
- LocaleList
- (I605c7)
Artık bestenin dışında tıklanabilir, geçiş yapılabilir ve seçilebilir hale getirilebilir (I0a130, b/172938345, b/175294473).
ScrollableColumn/Row kullanımdan kaldırıldı. ScrollableColumn, yalnızca görünür öğeleri oluşturabildiği/ölçtüğü/çizdiği için büyük bir kaydırılabilir içeriğiniz varsa LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir yönteme başvurmasını önlemek için ScrollableColumn ve ScrollableRow için desteği sonlandırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımı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ığında bunları manuel olarak içe aktarmanız gerekir. Diziler için yeni uzantı aşırı yüklemeleri: items(items: Array) ve itemsIndexed(Array) (I803fc, b/175562574)Desteği sonlandırılan AbsoluteArrangement kaldırıldı. (Iffa96, b/177641870)
Gelen minimum kısıtlamaların Box içeriğine aktarılıp aktarılmayacağını belirtmek için Box'a propagateMinConstraints parametresi eklendi. Varsayılan değer, false'tur. (I0125b, b/152613457)
Hata Düzeltmeleri
- onCommit, onDispose ve onActive için desteği sonlandırıldı. Bunun yerine SideEffect ve DisposableEffect API'leri kullanılmalıdır (If760e)
- WithConstraints, BoxWithConstraints olarak yeniden tasarlandı ve foundation.layout alanına taşındı. (I9420b, b/173387208)
Yazı tipi/yazı tipi ailesi/yazı karakteri için fabrika işlevlerinde yapılan değişiklikler
- Büyük harfle başlayan fabrika işlevleri eklendi
- Baş harfi küçük olan önceki fabrika işlevleri kullanımdan kaldırıldı
- Yeni fabrika işlevleri, alt sınıflar yerine FontFamily'yi döndürür
- Alt sınıfların kurucularını gizleyerek yalnızca fabrika işlevleri aracılığıyla oluşturulmalarını sağladı.
- Font.asFontFamily, Font.toFontFamily olarak yeniden adlandırıldı
- (I42aa7)
ComposeTestRule
'u genişleten veComposeTestRule
'dan kaldırılansetContent
'yi tanımlayanComposeContentTestRule
tanıtıldı.ComposeTestRule
döndüren ve sizin için bir Etkinlik başlatmayan bircreateEmptyComposeRule()
fabrika yöntemi eklendi. Testiniz sırasında etkinliğinizi başlatmak istediğinizde (ör.ActivityScenario.launch
(I9d782, b/174472899) kullanarak) bunu kullanın.animateAsState artık animateFooAsState olarak değişti. Foo, animasyon uygulanan değişkenin türüdür. Ör. Float, Dp, Offset vb. (Ie7e25)
Yoğunluk, artık Düzenleme arayüzleri için alıcı kapsamı olarak kullanılmaktadır. (I18aad)
TextFieldValue, AnnotatedString değerini kabul eder. Ancak bu yalnızca bir API değişikliğidir ve birden fazla stilde metin düzenleme henüz kullanıma sunulmamıştır.
- EditingBuffer yapıcı parametrelerinden
initial
kaldırıldı. (I326d5)
- EditingBuffer yapıcı parametrelerinden
invalidate ve compositionReference() işlevlerinin desteği sonlandırıldı. Bu işlevlerin yerine sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri kullanılmalıdır. (I583a8)
AnnotatedString, kotlin.CharSequence'ten türetilecek şekilde değiştirildi. Bu nedenle uzunluk ve alt sıra, artık örnek işlevleri haline gelmiştir ve uzantı işlevleri kaldırılmıştır. (Iaf429)
Süre ve Uptime, 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 aldı ve CompositionLifecycleObserver'ın desteği sonlandırıldı.
RememberObserver
, değiştirilmiş anlamlar ve yeniden adlandırılmış yöntemlerleCompositionLifecycleObserver
'in yerini alır. 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. Bununla birlikte, bir referans bir bestede birden fazla kez hatırlanırsaonEnter
öğesinin yalnızca bir kez çağrıldığı her referans içinonRemembered
çağrılır. NesneWithConstraints
veScaffold
gibi alt kompozisyonlarda kullanıldıysaonEnter
birden çok kez çağrıldı. Bu da tekonEnter
çağrı garantisini güvenilir olmaktan çıkardı veRememberObserver
için kaldırıldı.RememberObserver
,RememberObserver
örneğiremember
öğesine iletilen geri çağırmadan döndürülürse ancak beste durumunda hatırlanmazsa çağrılanonAbandoned
öğesini ekler ve bu nedenleonRemembered
hiçbir zaman çağrılmaz. Bu durum, bir istisna, derlemeyi tamamlanmadan sonlandırırsa veya derleme, derleme oluşturulduğu durum artık geçerli olmadığı veya başka bir şekilde artık gerekli olmadığı için atlanırsa ortaya çıkabilir. Yukarıdaki tek referans önerisini izleyenRememberObserver
örneği harici bir kaynağı izliyorsa hemonForgotten
hem deonAbandoned
, kaynağa artık ihtiyaç duyulmadığını belirtir. Nesne,onRemembered
içinde başlatılan işi veya ayrılan kaynakları izliyorsaonRemembered
çağrılırsaonAbandoned
çağrılmayacağındanonAbandoned
yoksayılabilir. (I02c36)TransformedText.transformedText, TransformedText.text olarak yeniden adlandırıldı
- TransformedText artık bir veri sınıfı değildir (Ie672a)
Aşağıdaki sınıflar artık veri sınıfı değildir:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- Metin Dekorasyonu
- TextGeometricTransform
- Metin Dizini
- TextLayoutResult
- TextLayoutInput (Iaff99)
Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
Küresel 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 kullanın
FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiştir. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. Accessibility ScrollState, ScrollAxisRange olarak yeniden adlandırıldı. YatayErişilebilirlikKaydırmaState, yatay Kaydırma AxisRange olarak yeniden adlandırıldı. verticalAccessibility ScrollState, dikey Kaydırma AxisRange olarak yeniden adlandırıldı. (Id3148)
VisualTransformation, işlevsel bir arayüz olacak şekilde değiştirildi (I3bba4)
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
PointerInputData kaldırıldı ve PointerInputData'nın tüm alanlarını içerecek şekilde PointerInputChange değiştirildi. Herhangi bir genel API'de kullanılmadıkları için PointerInputEvent ve PointerInputEventData'yı dahili hale getirdik. (Ifff97, b/175142755)
TextInputService.onStateUpdated, updateState (Id4853) olarak yeniden adlandırıldı
displaySize değerini kaldırın. Genellikle onRoot() boyutunu veya en azından 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ı. 1.0.0-alpha10 sürümü bu taahhütleri içerir.
API Değişiklikleri
- ImeOptions ve KeyboardOptions artık veri sınıfı değildir (I3c898, b/168684531)
- VisualTransformation API Değişiklikleri
- OffsetMap, OffsetMapping olarak yeniden adlandırıldı
- OffsetMapping.identityOffsetMap yeniden OffsetMapping.Identity olarak adlandırıldı
- PasswordTransformation artık veri sınıfı değildir
- OffsetMapping kendi dosyasına taşındı
- (I0bdf3)
- EditOperations API Değişiklikleri
- EditOperation, EditCommand olarak yeniden adlandırıldı
- EditOperation somut uygulamaları için komut son eki eklendi
- EditCommand'ler artık veri sınıfı değil
- EditOperation.process işlevi, applyTo olarak yeniden adlandırıldı
- 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)
- Benzer deneysel API ek açıklamalarıyla tutarlı olması için @ExperimentalTesting, @ExperimentalTestApi olarak yeniden adlandırıldı (Ia4502, b/171464963)
- LazyColumn/LazyRow için deneysel stickyHeader yöntemi eklendi (I0a81d)
- Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5)
- TestUiDispatcher kullanımdan kaldırıldı. Bunun yerine Dispatchers.Main'i kullanın (Ic171f, b/175385255)
- Foundation Strings.kt'ye açma/kapatma düğmesi ekleme (I4a5b7, b/172366489)
- nativeClass, ui modülüne taşındı ve dahili hale getirildi. NativeClass'ın güncellenmiş kullanımları, "is MyClass" olarak kullanılacak uygulamalara eşittir. (I4f734)
- FlowRow ve FlowColumn desteği sonlandırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
- Modifier.focus() ve Modifier.focusRequester() desteğine son verilmez. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
- SelectionManager'da seçilebilir öğe güncellemelerini bildirmek için SelectionRegistrar.notifySelectableChange eklendi. (I6ff30, b/173215242)
fun Dp.isFinite()
,val Dp.isFinite
olarak değiştirildi (I50e00)- Constraints#satisfiedBy, isSatisfiedBy olarak yeniden adlandırıldı. (I9cf5c)
- Belirtilmemiş bir sabite sahip satır içi sınıflar için isSpecified, isUnspecified ve useOrElse özellikleri eklendi. (I93f7b, b/174310811)
Hata Düzeltmeleri
- Animasyonlar arasında karşılıklı münhasırlığı sağlayan yeni coroutine tabanlı API
Animatable
. Çok boyutlu azalma animasyonunu destekleyen yeni DecayAnimationSpec desteği (I820f2, b/168014930) - Devre dışı bırakılan ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
animate()
artıkanimateAsState()
ile değiştirildi. Bu değişiklik,T
yerineState<T>
döndürür. Geçersiz kılma kapsamı, State değerinin okunduğu yere indirgenebileceği için bu sayede daha iyi performans elde edebilirsiniz. (Ib179e)- Semantics role API'yi ekleyin ve tıklanabilir, seçilebilir ve değiştirilebilir SemanticsModifier'a parametre olarak Role ekleyin. Modifier.progressSemantics özelliği, Kaydırma Çubuğu'nun da kullanabilmesi için değiştirildi. (I216cd)
- Yerel keyEvent'e artık keyEvent.nativeKeyEvent (I87c57, b/173086397) üzerinden erişilebilir.
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.foundation:foundation:1.0.0-alpha09
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha09
yayınlandı. 1.0.0-alpha09 sürümü bu taahhütleri içerir.
API Değişiklikleri
Kaydırılabilir arayüz ekleyin
Bu sayede ScrollState ve LazyListState ortak bir tür olarak değerlendirilebilir. Böylece her iki türde de özel kaydırma uygulanabilir.
Bu işlem, smoothScrollBy işlevini Scrollable'daki bir uzantı işlevine taşıyarak bu işlevden yararlanır. (I2153b)
LazyVerticalGrid eklendi. (I17267, b/162213211)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed işlevleri kullanımdan kaldırılıyor. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)
İşaretçi girişi API'lerini askıya almak için HandlePointerInputScope adlı API'nin adı AwaitPointerEventScope olarak, handlePointerInput() adlı API'nin adı da awaitPointerEventScope() olarak değiştirildi. (Idf0a1, b/175142755)
Şu anda görünür öğelerin boyut ve ofsetlerinin listesini gösteren LazyListState.layoutInfo eklendi (If8678, b/170472532)
ExperimentalPointerInput ek açıklaması kaldırıldı (Ia7a24)
TextFields için EngagementState desteği eklendi. (I61d91)
LazyColumn/Row için reverseLayout parametresini ekleyin.
true
olduğunda öğeler aşağıdan yukarıya doğru oluşturulur veLazyListState.firstVisibleItemIndex == 0
olduğunda ilk öğe en altta yer alır. (I552ae, b/166589935)LazyColumn için verticalArrangement parametresi eklendi. LazyRow için horizontalArrangement parametresi eklendi. Düzenleme, minimum boyutun tamamını dolduracak kadar öğemiz olmadığında öğeler arasına boşluk eklememize ve öğ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 işlevi kullanır. (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 Kayma yerine IntOffset değerini 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şaretlenmişti. Artık bu özellikler, oluşturma modülüne dahil edildi.
CompositionData ve CompositionGroup, kompozisyon bilgilerini ayıklamak için kullanılacak ui-tooling API'nin yerine 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 boyut bilgilerinin mevcut olması durumunda geç yavaş bir gölgelendirici örneği oluşturmak için ShaderBrush yeniden düzenlendi. Bu, özel DrawModifier uygulamaları uygulamak zorunda kalmadan, bir kompozisyonun tüm çizim sınırlarını kompozisyon sırasında kaplayan degradeleri tanımlamak için kullanışlıdır.
Gradyan işlevi oluşturucu API'leri, Gradyan nesnesinde fabrika yöntemleri lehine kullanımdan kaldırıldı. (I511fc, b/173066799)
Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
Autofill API artık deneysel bir API olup etkinleştirilmesini gerektiriyor (I0a1ec)
FocusRequester örnekleri oluşturmak için yapı bozma beyanları ekleme (I35d84, b/174817008)
accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
SelectRegistrar'da birkaç yeni işlev tanıtıldı ve onPositionChange, NotificationPositionChange olarak yeniden adlandırıldı. (Ifbaf7)
AndroidOwner tarafından dahili hale getirildi (Ibcad0, b/170296980)
InfiniteRepeatableSpec oluşturmak için yeni infiniteRepeatable işlevi (I668e5)
Applier
arayüzü, ağaç oluşturmayı yukarıdan aşağıya yerine aşağıdan yukarıya doğru basitleştirmek için değiştirildi.insert()
yöntemiinsertTopDown()
olarak yeniden adlandırıldı.Yeni bir yöntem (
insertBottomUp()
) eklendi.Uygulayıcı, daha iyi performans gösterene bağlı olarak
insertTopDown()
veyainsertBottomUp()
kullanarak düzenlediği ağaca düğüm ekler.LayoutNode
veView
gibi bazı ağaçların alttan yukarıya doğru oluşturulması, yukarıdan aşağıya doğru oluşturulmasından çok daha verimlidir. Bu değişiklikten önce, aşağıdan yukarıya doğru uygulamak için bir dizi ekleme gerekliydi. Bu eklemelerin, performans için aşağıdan yukarıya doğru oluşturma işlemi gerektiren her uygulayıcıya kopyalanması gerekiyordu. Bu değişiklikle birlikte,Applier
, ağacı aşağıdan yukarı doğru oluşturmak içininsertBottomUp()
'ü, ağacı yukarıdan aşağı doğru oluşturmak için iseinsertTopDown()
'yi geçersiz kılar. (Icbdc2)Pikselleştirilmiş öğe biçimlerinden (PNG'ler gibi) veya VectorDrawables'tan opak bir şekilde yüklenen Painter nesnelerini işlemek için PainterResource API eklendi. Tüketicilerin artık öğe türünü önceden belirlemesi gerekmez. Bu yöntemi çağırarak resim kompozisyonlarında veya ressam değiştiricilerinde kullanılacak bir Painter nesnesi elde edebilirler. (I2c703, b/173818471)
AnnotatedString oluşturmak için buildAnnotatedString fabrika işlevi eklendi. annotatedStringBuilder işlevi kullanımdan kaldırıldı. (Idfe0b)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.foundation:foundation:1.0.0-alpha08
ve androidx.compose.foundation:foundation-layout:1.0.0-alpha08
yayınlandı. 1.0.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
maxLines
parametresiCoreTextField
reklam grubundan kaldırıldı. Metin alanının yüksekliğini satır sayısıyla sınırlamak istiyorsanız bunun yerineBasicTextField
değerini kullanın. (Iec002)await*TouchSlop()
yöntemleri, işaretçi aşağı algılanmayacak şekilde değiştirildi ve bunları*OrCancellation
olarak yeniden adlandırdı. AyrıcaorientationLock
parametresinin gerekliliği de kaldırıldı. (Ie96e1)- Compose yönergeleriyle tutarlılığı kontrol etmek için birleştirilebilir lambda parametre adlandırma ve konumu için lint denetimi eklendi.
Ayrıca, son lambda adları olarak
children
kullanan bazı API'ler, lint kontrolüne ve yönlendirmeye görecontent
olarak taşındı. (Iec48e) foundation:foundation-text
API'sifoundation:foundation
'e taşındı. Paket yapısı aynı kalmıştır (Id3eb2)- Döndürme, yakınlaştırma ve kaydırma işlemlerini algılamaya yardımcı olan yeni çoklu dokunma hareket algılayıcı. (Ic459d)
- Yön kilitleme dahil olmak üzere, işaretçi giriş API'sini askıya alan yeni sürükleme hareketi algılayıcı. (Icef25)
- VectorAsset, ImageVector olarak yeniden adlandırıldı. API konseyi yönergelerine göre VectorAsset, ImageVector'ın iç sınıfı olması için taşındı ve Builder olarak yeniden adlandırıldı. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder için typealias eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- Temel anlamsal özellikleri kullanıcı arayüzüne taşındı (I6f05c)
Eş yordam tabanlı kaydırma API'leri ekleyin:
Ekran kaydırma kontrolü için LazyListState.snapToItem ve LazyListState.smoothScrollBy'nin yanı sıra daha düşük düzey API'ler ekler. Bu API'ler, geri dönmeden önce kaydırmanın bitmesini bekleyen kaydırmayı kontrol etmek için bir askıya alma arayüzü sağlar. (Ie5642)
BasicTextField, TextField ve OutlinedTextField'e singeLine parametresi eklendi. Metin alanını yatay olarak kaydırılabilir tek bir satır yapmak için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)
Yeni askıya alınmış işaretçi girişi kullanılarak dokunma, iki kez 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ıran birkaç yardımcı program da eklendi. (I00807)
Modifier.focusable'ın temele eklenmesi gerekiyor. Doğru anlam ve erişilebilirlik ile bir bileşene odaklanılabilir davranış eklemek için bunu kullanın. (I41eb9, b/152525426, b/162865824)
Daha önce desteği sonlandırılan API'ler kaldırıldı: Border kaldırıldı, bunun yerine BorderStroke kullanın. Modifier.drawBorder kaldırıldı. Bunun yerine Modifier.border kullanın. Modifier.gravity kaldırıldı. Bunun yerine Modifier.align kullanın. Grup kaldırıldı. Bunun yerine Kutu'yu 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ılan API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemler içeren DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
- Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca API konseyi geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
<T>
, SubcomposeLayout beyanından kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- PointerInputData'nın çalışma süresi ve konum alanlarını boş bırakılamayan hale getirdik. (Id468a)
- MaterialTheme artık seçim tutamaçlarının ve seçim arka planının doğru renklerini ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Kutu'nun alignment parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricileri offset olarak yeniden adlandırıldı. Artık durum yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
- Ana makine penceresinin odakta olup olmadığını kontrol etmek için WindowManager.isWindowFocused ve onWindowFocusChanged geri çağırma işlevi sağlayan bir WindowFocusObserver eklendi. (I53b2a, b/170932874)
- TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947) öğesine sıfırlamaInput parametresi eklendi
- TextFieldValue API güncellendi
- TextFieldValue.composition özelliği salt okunur hale getirildi
- geçersiz seçim aralığı (I4a675, b/172239032) nedeniyle kaldırıldı istisna
- Desteği
Ambient
olarak adlandırılan Ambiyanslar, diğer Ambients and Compose API kurallarına uyarak Ambient ön ekini taşıyan yeni özelliklerle değiştirildi. (I33440) - Android yazı tipi sarmalayıcısı eklendi.
typeface
işlevi (ör.typeface(Typeface.DEFAULT)
) aracılığıyla Android yazı tipi yükleyebilirsiniz. AyrıcatypefaceFromFontFamily()
,typeface()
olarak yeniden adlandırıldı (I52ab7) - Değiştirici fabrikalarının
@Composable
olarak işaretlenmek yerine dahili olarakandroidx.compose.ui.composed {}
kullandığını kontrol etmek için lint denetimi eklendi. (I3c4bc) - Düzenleyici fabrika işlevlerinin Düzenleyici'de uzantı olarak tanımlanıp tanımlanmadığını kontrol etmek için lint denetimi eklendi. Böylece, işlevler birbirine sorunsuz bir şekilde bağlanabilir. (I07981)
- Anlamsal bağımsız değişken birleştirmeAllDescendants, "mergeDescendants" olarak yeniden adlandırıldı. (Ib6250)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneysel (I6ef86, b/171378521)
- Eski ui-test modülünü ve onun stub'ları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 çalışır hale getirildi. (I46a07, b/172311734)
foundation:foundation-text
modülüfoundation:foundation
(Idac0f) ile birleştirildi- Yer(Ofset) ve Place virgülle(Ofset) değerlerini kullanımdan kaldırın. Bunun yerine, int ofset'leri olan aşırı yüklemeleri kullanın (I4c5e7)
id
,LayoutIdParentData
içinlayoutId
olarak yeniden adlandırıldı.Measurable.id
,Measurable.layoutId
olarak yeniden adlandırıldı. (Iadbcb, b/172449643)
Sürüm 1.0.0-alpha07
11 Kasım 2020
androidx.compose.foundation:foundation:1.0.0-alpha07
, androidx.compose.foundation:foundation-layout:1.0.0-alpha07
ve androidx.compose.foundation:foundation-text:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
Modifier.fillMaxSize[Width|Height]
işlevine benzer şekilde, artıkModifier.fillParentMaxSize[Width|Height]
dilindeki kesirli değerleri deLazyColumn/Row
(I797e2, b/166586426) kapsamında destekliyoruz.KeyboardOptions.toImeOptions
, herkese açık API'den kaldırıldı. (Ic2e45)- Temel AmbientTextStyle, ProvideTextStyle ve AmbientContentColor desteği sonlandırıldı. Bunun yerine Materyal kitaplığında mevcut olan yeni sürümleri kullanın. Material olmayan uygulamalarda ise kendi tasarım sisteminize özel tema ortamları oluşturmanız ve bunları kendi bileşenlerinizde kullanmanız gerekir. (I74acc, b/172067770)
- Foundation.Text desteği sonlandırıldı ve kısımmaterial.Text ile değiştirildi. Bir temadan değer tüketmeyen temel, tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
- TextField'lere maxLines eklendi (Ib2a5b)
- TextFields'i KlavyeSeçenekleri (Ida7f3) kabul edecek şekilde güncelleyin
- TextField'lerde kullanılmak üzere KeyboardOptions eklendi (I9ca32)
- BasicTextField'e paralel olarak metin için tasarıma bağlı olmayan bir API olarak BasicText'i ekler. (I28268)
- ExperimentalLazyDsl ek açıklaması kaldırıldı. LazyColumn/LazyRow artık @OptIn eklenmeden kullanılabilir (Idab7a, b/166584730)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField alanını kullanın. (I896eb)
- BasicTextField, hem CoreTextField hem de BaseTextField (Id4cea) seçeneklerinin yerine eklendi
- Desteği sonlandırılan LazyColumnItems/LazyRowItems (I1d8a8) kaldırma
- İçsel ölçümlere göre boyutlandırma için desteği sonlandırılmış composable'lar kaldırıldı. (I18537, b/171811496)
- relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzenleme sınırlarından metin taban çizgilerine olan mesafeleri belirtmek için kolaylık sağlamak amacıyla paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
- matchHeightConstraintsFirst parametresi, en boy karşılık gelenleri denemeden önce boyut-yükseklik kısıtlamalarına göre değiştiriciyi belirtmek için kullanılabilecek en boy oranı değiştiricisine eklendi. (Ie7c43, b/155290593)
- Desteği sonlandırılan DpConstraints kaldırıldı. (I87884, b/171702471)
Hata Düzeltmeleri
- Düzensiz ölçeklendirme kullanım alanlarını desteklemek amacıyla yatay ve dikey eksenler için ölçek faktörlerini birbirinden bağımsız olarak temsil etmek üzere ScaleFactor satır içi sınıfı kullanıma sunuldu.
- ContentScale'a computeScaleFactor yöntemi eklendi
- Kaynak sınırları, hedefi tamamen kaplayacak şekilde uzatılarak eşit olmayan ölçeklendirme yapmak için 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 @DahiliTextApi olarak işaretler. Bunun yerine BasicText'i kullanın. (I6aaeb)
- KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
- Klavye Türü ve ImeAction, KlavyeSeçeneklerine taşındı (I910ce)
- CoreTextField, @InternalTextApi olarak işaretlendi. Bunun yerine BasicTextField kullanın (Ie2469)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad)
- ui-test-junit4 modülü kullanıma sunuldu (Ib91f8)
- Simge API'si, sağlanan öğeyi veya boyayı ColorFilter olmadan çizecek olası bir ton rengi olarak Color.Unspecified değerini alacak şekilde güncellendi. Daha önce Color.Unspecified ile renklendirmeyi yok sayma girişimleri, saydam bir renkle renklendirme yapar ve hiçbir şeyin oluşturulmasına yol açmazdı. (I049e2, b/171624632)
- MeasureResult, MeasureScope'tan çıkarıldı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)
- androidx.ui.test, androidx.compose.ui.test'e taşındı (I9ffdb)
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
- Geri çağırma içermeyen Seçim Container'ı eklendi (Ibfadb)
- SeçimContainer'daki Seçim İşleyicilerinin 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
serbest bırakıldı. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.
API Değişiklikleri
- androidx.compose.foundation.Icon, androidx.compose.material.Icon altına taşındı. Materyal kitaplığını kullanmak istemiyorsanız Resim bileşenini / Değiştirici.paint() işlevini bir Painter ile de kullanabilirsiniz. (I9f622)
- EtkileşimState değeri Değiştirici.scrollable, ScrollableColumn ve LazyColumnFor'a eklendi (I81566, b/169509805)
- alignByBaseline, RowScope'a eklendi ve alignWithSiblings, alignBy olarak yeniden adlandırıldı (I06503, b/170628732)
- Kutu satır içi işlev haline getirildi. (Ibce0c, b/155056091)
- CoreTextField'e maxLines eklendi (Ibee58, b/143687793)
- CoreTextField'e yumuşak sarma eklendi. (I21a4b)
Hata Düzeltmeleri
- composable API'nin, bileşimler genelinde verileri kalıcı hale getirmek için dahili olarak "hatırladığından" yararlandığını daha iyi belirtmek amacıyla HatVectorPainter'ın yerine VectorPainter'ı kullanımdan kaldırın. (Ifda43)
- ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'dan yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
- CoreTextField'e (I72e6d) tek satırlı klavye seçeneği eklendi
- Radius API'nin adı, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirtmek için dokümanlar güncellendi. (I130c7, b/168762961)
- Birleştirilmiş değiştiricide denetleyici bilgilerini belirtme özelliği eklendi (Idee08, b/163494569)
- Klavye Büyük/Küçük Harfleri Büyük Yapma IME Seçeneği eklendi (I8ac38)
- Rtl kolu konumunu düzeltin. (I6e1e0)
- Kullanıma son verilen değişiklik: İşaretçi etkinliklerinde değiştirilebilmesi gereken tek değerin tüketim verileri olması nedeniyle PointerInputFilter.onPointerEvent(...) işlevindeki döndürülen değer kaldırıldı. Artık PointerInputFilter.onPointerEvent(...) işlevinden veri döndürmek yerine, iletilen PointerEvents öğesinin tüketim verilerini değiştirebilirsiniz. (I6acd0)
- Seçim menüsüne Tümünü Seç seçeneği eklendi (Ief02b)
Sürüm 1.0.0-alpha05
14 Ekim 2020
androidx.compose.foundation:foundation:1.0.0-alpha05
, androidx.compose.foundation:foundation-layout:1.0.0-alpha05
ve androidx.compose.foundation:foundation-text:1.0.0-alpha05
yayınlandı. 1.0.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- CoreTextField artık imleç işlevini destekliyor (Id23aa)
contentColor() ve currentTextStyle() API'lerinin desteği sonlandırılır ve sırasıyla AmbientContentColor ve AmbientTextStyle ortamlarıyla değiştirilir. Geçerli değere, diğer ambiyanslarda olduğu gibi ambiyans özelliğinde
.current
kullanarak erişebilirsiniz. Bu değişiklik, tutarlılık sağlamak ve aynı işlemi gerçekleştirmek için birden fazla yöntem olmasını önlemek amacıyla yapılmıştır. Ayrıca, bazı ortam özelliklerini amaçlarını daha iyi açıklamak için aşağıdaki şekilde yeniden adlandırır:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- VurguAmbiyans -> AmbiyansVurguDüzeyleri
- Dalga Teması (Ambient) -> Ambiyans Dalgası Teması (I37b6d)
Hata Düzeltmeleri
- Satır içi sınıflar için koruyucu değerlerinin standartlaştırılmasının bir parçası olarak Color.Unset (Renk Ayarlanmadı) değerini yeniden adlandırın.Diğer satır içi sınıflarla tutarlılık için belirtilmemiş (I97611, b/169797763)
- Kopyala/Yapıştır/Kes erişilebilirlik işlemleri eklendi (I6db4f)
- TextOverflow.None özelliği kullanıma sunuldu. Taşma None olduğunda Text artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
- Boyut Güncellendi.Belirtilmemiş parametreler, Kayma.POSITIVE_INFINITY yerine Kayma.NaN olacak. Painter uygulamalarını, sonlu olmayan boyutların yanı sıra Size.Unspecified ile de kontrol edecek şekilde güncellendi. (I95a7e)
- Sayfalama Oluşturma modülü ve sayfalama entegrasyonu eklendi (Ib85da)
- LazyListScope'u, boş değer alabilecek şekilde değiştirme (I1765b)
- OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() onGloballyPositioned() olarak yeniden adlandırılır. (I587e8, b/169083903)
- LazyColumn/Satır (Idc16d) için örnekler eklendi
- items ve itemsIndexed yöntemlerinde emptyList değerine izin vermek için düzeltme (I06647)
- Denetleyici bilgilerini belirtmek için DSL ekleme (Ic9a22)
- Uzun basmayı metne taşıyın. (Iff2bc)
- Metinde Seçimi Devre Dışı Bırakma ve Demo (Ie7e97)
- Erişilebilirlik için AnnotatedString'den SpannableString'e dönüştürme işlemini destekleyin. (Ief907)
PointerInputFilter.onPointerInput(...)
kaldırıldı. Bunun yerinePointerInputFilter.onPointerEvent(...)
kullanılmalıdır. (I6f04a)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.foundation:foundation:1.0.0-alpha04
, androidx.compose.foundation:foundation-layout:1.0.0-alpha04
ve androidx.compose.foundation:foundation-text:1.0.0-alpha04
yayınlandı. 1.0.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Grup, Box olarak yeniden adlandırıldı. Daha önce var olan foundation.Box, compose.foundation.layout içindeki yeni Box için kullanımdan kaldırılacak. Yeni Kutu'nun davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki Kutu'dan farklıdır. (I94893, b/167680279)
- Kutu süsleme parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine değiştiricileri kullanın (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Yeni bir LazyListState sınıfı ekleyin. Bu sayede LazyRow ve LazyColumn bileşenlerinin kaydırma konumunu gözlemleyebilir ve kontrol edebilirsiniz. rememberLazyListState() kullanılarak örnekler 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)
- Etkinlik yeniden oluşturulurken artık etkin liste konumu ve kaydırma ofseti kaydedilip geri yüklenir (Ie045f, b/166589058)
- Uzun tıklama semantik işlemi ekleme (I6281b, b/156468846)
- Paylaşılan durum için tek bir değiştiriciyi zaman içinde tutmak ve çakışan değiştiricileri önceliğe göre iptal etmek amacıyla MutatorMutex yardımcı programı eklendi (I3f975)
- Ek açıklamalı rootAnimationClockFactory, geçişsEnabled, blinkingCursorEnabled ve textInputServiceFactory ile @visibleForTesting, bunları dahili API yapın ve kdoc'larını gizleyin (I554eb, b/168308412)
- Dize içeren metin girişinden inlineContent parametresi kaldırıldı. inlineContent, AnnotatedString ile çalışması gerektiği için kullanılmaz. (Ief403)
- Desteği sonlandırılan özel Arrangement API'leri kaldırıldı. (Ic576d, b/168297922, b/168297923)
unbounded
parametresi, wrapContentSize değiştiricilerine eklendi. Bu parametre, düzen öğesinin sonsuz maksimum kısıtlamalarla ölçülmesini sağlar. (I77951, b/158559319)- Düzen kapsamlarının içeriklerinin statik içe aktarılmasını önledik (ör. RowScope'ta alignWithSiblings). Bunun yerine açık kapsam alternatifi kullanılmalıdır:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Hata Düzeltmeleri
- Birçok Grafik API'si güncellendi
- DrawScope ve DrawTransform'daki x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresi kullanacak şekilde ölçek ve dönme dönüşümü API'leri güncellendi
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap dokümantasyonu, eliptik bisikletin yanı sıra oval de
- Satır içi Radius sınıfının herkese açık kurucusunun doğrudan çağrılmaması gerektiğini, bunun yerine Radius nesnelerinin işlev kurucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi
- topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.shift, Rect.translate için kullanımdan kaldırıldı
- roundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı.
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
- RoundRect.center işlevi, işlev yerine mülk olarak değiştirildi
- RoundRect yapıcısı, x/y yarıçapı değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi
- Orijininin 0,0 olduğu bir dikdörtgen olduğunu varsayılan Boyut API'leri kaldırıldı
- Radius'a bir destructing API eklendi
- Çeşitli RoundRect uzantı işlevleri, mülk olarak taşındı
- (I8f5c7, b/168762961)
- Her kaydırma sırasında gereksiz yeniden düzenleme yapmayarak LazyColumnFor/LazyRowFor kaydırmaya yönelik performans optimizasyonları (I64f65, b/168293643, b/167972292, b/165028371)
- Ekranı kaydırdıktan ve ardından öğeleri değiştirdikten sonra LazyColumnFor/LazyRowFor'da yaşanan kilitlenme 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ş boşluklar gösterilmeyecek (I220ab, b/161480164, b/167855468)
- ScrollableContainer ve LazyColumnFor gibi aynı yönde kaydırılabilir kapsayıcıların iç içe yerleştirilmesine artık izin verilmez. Hiçbir zaman desteklenmedi ve fling'i ve LazyColumnFor öğelerini oluşturmanın tüm tembelliğini 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 DrawScope API'leri, kapsamlı dönüşüm yöntemleriyle güncellendi
- clipPath dokümanları, yuvarlatılmış dikdörtgen yerine yol ifadesini içerecek şekilde güncellendi
- ClipPath'de sağ parametre için belgelerdeki boşluk düzeltildi
- DrawScope.drawCanvas,drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
- Inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınıra da aynı inset değerini sağlayan ek aşırı yükleme eklendi.
- Inset yönteminde, ekin 4 tarafın tamamına uygulanacağını belirten dokümanlar kaldırıldı
- Rect sınıfı için güncellenen dokümanlar
- Rect parametrelerindeki yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yükleme oluşturuldu ve kullanımdan kaldırılan Rect.shift
- (If086a, b/167737376)
- AccessibilityScrollState özelliğini semantik özelliklere ekleyin. (Ifeda9)
- Nesne oluşturmayı önlemek için TextRange'i satır içi yapın. (Id034b)
- ParagraphConstraints kaldırılır. Genişlik şimdi doğrudan Paragraf'a geçirilir. (Ica712)
Sürüm 1.0.0-alpha03
16 Eylül 2020
androidx.compose.foundation:foundation:1.0.0-alpha03
, androidx.compose.foundation:foundation-layout:1.0.0-alpha03
ve androidx.compose.foundation:foundation-text:1.0.0-alpha03
yayınlandı. 1.0.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- InnerPadding, PaddingValues olarak yeniden adlandırıldı. (I195f1, b/167389171)
- Yerçekimi kullanımları, düzen API'lerinde tutarlı bir şekilde align veya alignment olarak yeniden adlandırıldı. (I2421a, b/164077038)
- Grup'a, tüm Grup alt öğeleri için varsayılan hizalamayı belirtmenize olanak tanıyan bir hizalama parametresi eklendi. (Ie80ca, b/164085265)
Hata Düzeltmeleri
- DpConstraints ve bu API'yi kullanan API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
widthIn
parametrelerindenminWidth
vemaxWidth
parametrelerimin
vemax
olarak yeniden adlandırıldı.preferredWidthIn
,heightIn
,preferredHeightIn
için de benzer şekilde. (I0e5e1, b/167389544)- ComposeTestRule'a eklenen onNode ve diğer genel yöntemler, mevcut global yöntemlerin desteği sonlandırılacak. (Ieae36)
- GestureScope'taki boyut ve konum hesaplamaları düzeltildi. Bu hesaplamalar, diğerlerinin yanı sıra geçersiz kaydırma hareketlerinin oluşturulmasına neden oluyordu (Iaf358, b/166589947)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
kuruluş birimindenandroidx.ui.test
kuruluş 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ü bu taahhütleri içerir.
Hata Düzeltmeleri
- TestUiDispatcher deneysel olarak işaretlenmiştir (Iae99d, b/161247083)
Bu saatten bir kare bekleyip beklemediğini görmek için
ManualFrameClock.hasAwaiters
eklendi; ManualFrameClock gerektiren testleri çalıştırırkenrunBlocking
yerinerunWithManualClock
eklendi; testlerinizde ana kullanıcı arayüzü dağıtıcısına kolay erişim sağlayanTestUiDispatcher.Main
eklendi.Örnek:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.foundation:foundation:1.0.0-alpha01
, androidx.compose.foundation:foundation-layout:1.0.0-alpha01
ve androidx.compose.foundation:foundation-text:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü bu taahhütleri içerir.
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.foundation:foundation:0.1.0-dev17
, androidx.compose.foundation:foundation-layout:0.1.0-dev17
ve androidx.compose.foundation:foundation-text:0.1.0-dev17
serbest bırakıldı. 0.1.0-dev17 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Konumlandırma düzeni alt öğelerini sabit aralıkla etkinleştirmek amacıyla Satır ve Sütun için aralıklı Düzenleme öğesi eklendi. Ayrıca, düzen alt öğelerinin yan yana yerleştirilmesini ve bir Hizalamaya göre Satır/sütunda hizalanmasını sağlamak için hizalanmış Düzenleme de eklendi. Önceki Arrangement.Vertical#arrange ve Arrangement.Horizontal#arrange yöntemleri için destek sonlandırıldı ve özel aranjmanlar yazmak gelecekte desteklenmeyecek. (I6733d, b/161985975)
- Zaman farkı satır içi bir sınıf oldu (Iaec70)
- TextField'den onFocusChanged geri çağırma işlevleri kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Değiştirici.sınırı kullanın. Kenarlık veri sınıfı, BorderStroke (I4257d, b/158160576) ile değiştirildi
- VerticalScroller ve HorizontalScroller kaldırıldı. Bunun yerine ScrollableColumn/Row kullanın. Değiştirici.drawArka Plan kaldırıldı. Modifier.background (I73b0d, b/163019183) öğesini kullanın.
- LazyColumnFor'un doğrudan alt öğeleri olmayan öğeler için bu tür değiştiricileri doğru şekilde eklemeyi zorlaştırdığı için desteği sonlandırılmış olarak işaretlenen fillMax* değiştiricileri LazyItemScope'tan kaldırın (Ifa78d)
- LazyColumn/LazyRow uygulamasını DSL (I93cc6) olarak ekledi
- Kısıtlamalar artık satır içi bir sınıf (I88736)
- fillMaxWidth, fillMaxHeight ve fillMaxSize değiştiricileri kullanılarak bir düzenin boyutunu kullanılabilir alanın bir bölümüne ayarlama özelliği eklendi. (I945bb, b/161562591)
Hata Düzeltmeleri
- SelectionContainer'a (I4aada, b/161487952) bir değiştirici parametresi eklendi
- SemanticsPropertyKey'e mergePolicy lambda eklendi. Bu, mergeAllDescendants semantik birleştirme işlemi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, mevcutsa üst değeri, 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ıtmaz. Bu isterseniz bunun yerinePlacementScope.placeRelative()
kullanın. (I873ac, b/162916675)- Desteği sonlandırılan FilledTextField bileşeni kaldırıldı. Doldurulmuş metin alanının Material Design uygulamasını almak için lütfen bunun yerine TextField kullanın. (I5e889)
- DoğrusalProgressIndicator'a backgroundColor parametresi eklendi ve CircularProgressIndicator'daki dahili dolgu kaldırıldı. Değerler arasındaki ilerlemeyi animasyonlu olarak gösterirken varsayılan AnimationSpec olarak kullanılabilen yeni ProgressIndicatorConstants.DefaultProgressAnimationSpec eklendi (If38b5, b/161809914, b/161804677)
state { ... }
bileşeni artık kullanımdan kaldırıldı. Bunun yerine, daha net bir şekilderemember { mutableStateOf(...) }
çağrıları yapılması önerilir. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavram sayısını azaltır ve sınıf mülkü yetkilendirmesi içinby mutableStateOf()
kalıbıyla eşleşir. (Ia5727)- RRect, oluşturma adlandırma kalıplarına daha uygun olması için RoundRect olarak yeniden adlandırıldı. RRect'e benzer işlev oluşturucular oluşturuldu ve RRect işlev oluşturucuları için destek sonlandırıldı (I5d325)
- onChildPositioned ve OnChildPositionedModifier kaldırıldı. Geliştiriciler bunun yerine alt düzende onPositioned ve OnPositionedModifier yöntemlerini kullanmalıdır. (I4522e, b/162109766)
- IntSize artık satır içi bir sınıftır (I2bf42)
- Düzenlemek için Boş Alana Uzun Basın. (Ib1e5b)
- Metne Dokunmadan Sonra Kayan Araç Çubuğunu Gizle. (If4525)
- Seçim güncellenirken yüzen araç çubuğunu gizleme. (I8444c)
- Bulanıklaştırma Ne Zaman? seçeneğinin 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ü bu taahhütleri içerir.
API Değişiklikleri
- LazyItemScope, yavaş listelerin itemContent parametresi için eklendi. Üst maksimum boyutu doldurmak için değiştiriciler sağlar. Böylece, öğenin görüntü alanını doldurması gerektiğinde kullanım alanı çözülür ve öğe sonsuzluk kısıtlamalarıyla ölçüldüğünden normal Modifier.fillMaxSize() çalışmaz. (Ibd3b2, b/162248854)
- İletişim kutusunu kullanıcı arayüzüne taşıma (I47fa6)
- LazyColumnForIndexed/LazyRowForIndexed eklendi: itemCallback işlevinde hem dizin hem de öğe sağlayan LazyColumnFor/LazyRowFor sürümleri. Mevcut bir öğeye ek olarak mevcut bir dizini bilmeniz gerektiğinde kullanışlıdır. (I65ff3)
- Değiştirici.deternimateProgress, Değiştirici.progressSemantics (I9c0b4) olarak yeniden adlandırıldı
- LazyColumnItems, LazyColumnFor olarak yeniden adlandırıldı. LazyRowItems, LazyRowFor (I84f84) olarak yeniden adlandırıldı
- En iyi uygulama nedeniyle birkaç İşaret/Not ekleyin. (I66b20)
- foundation.shape.corner paketi, foundation.share olarak düzleştirildi (I46491, b/161887429)
- LazyRowItems/LazyColumnItems için esros eksen yerçekimi parametresi eklendi. LazyRowItems/LazyColumnItems artık içerik sarmalama davranışını desteklemektedir. (Ib39fc)
- ZoomableState, ZoomableController olarak yeniden adlandırıldı. smoothScale için özel eğri desteği eklendi.
enabled
veonZoomStarted
işlevi eklendi (If8b8f) - Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, istenen en basit API'nin kolayca keşfedilmesi ve kullanılması için BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676)
- Daha önce desteği sonlandırılan AdapterList kaldırıldı. Bunun yerine LazyColumnItems'ı 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. Ofset değiştiricilerden farklı olarak mutlak ofset değiştiriciler, sağdan sola bağlamda otomatik olarak yansıtılmaz (I3aa21)
Row
veColumn
artık satır içi işlev olduğundan bunların kullanılmasıyla ilgili ek maliyet önemli ölçüde azaltıldı. (I75c10)
Hata Düzeltmeleri
- Geniş API düzeltmelerini ele alma (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırma
- Tutarlı bir API yüzeyi elde etmek için Offset ve IntOffset sınıflarını hizalama
- Offset API ile tutarlı olması için IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın
- Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden yapılandırmak ve alanın null olmamasına dikkat etmek için EmptyCanvas sınıfı oluşturuldu
- ClipOp enum'ları 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ı
- PointMode enum'ları Pascal Case olarak yeniden adlandırıldı
- PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
- PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı
- DrawCache uygulaması, artık lateinit parametrelerini kullanmamak için güncellendi
- DrawScope güncellendi, artık dolguPaint ve stepPaint dahili parametreleri için geç yetki kullanılmayacak
- Daha az ek maliyet için Box kullanımını önlemek amacıyla resim derleyici güncellendi
- Outline sınıfı, @Sabit ek açıklamaları içerecek şekilde güncellendi
- PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- Vektör alt bileşimi, birleştirme işlemi zaten bunları ele aldığından eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere güncellendi
- İşlev oluşturucuların lehine Rect yardımcı oluşturucu yöntemlerinin desteği sonlandırıldı
- Fırça sınıfları ve işlev oluşturucuları, @Immutable ve @Stable API'lerle güncellendi
- VertexMode enum'u PascalCase olarak güncellendi
- DrawScope selectPaint yöntemi, değişmesi durumunda boyadaki çizgi parametrelerinin üzerine koşullu olarak yazılacak şekilde güncellendi
- Boyut, yapı bozma API'sini eklemek için güncellendi, BelirtilmemişBoyut yeniden adlandırılarak Belirtilmemiş olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
Yeni coroutine tabanlı saatler ile hâlâ 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'ın MonotonicFrameClock eşdeğeri artık ManualFrameClock. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
kullanın. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
,SemanticsNodeInteraction.getUnclippedBoundsInRoot()
olarak yeniden adlandırıldı (Icafdf, b/161336532)Sağdan sola yazma desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient eklendi. Değiştirici.rtl ve Modifier.ltr kaldırıldı. (I080b3)
Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then işlevini kullanın. "Sonra", sıralama konusunda daha güçlü bir sinyal verir. Ayrıca
Modifier.padding().background() + anotherModifier
yazmayı yasaklar. Bu da zinciri bozar ve metnin okunmasını zorlaştırır (Iedd58, b/161529964)isFocused()
veisNotFocused()
SemanticsMatcher eklendi. (I0b760)RemeasurementModifier eklendi. Kullanıcıların düzeni senkronize olarak yeniden ölçmesine olanak tanır. Genel olarak, yeniden ölçme/yeniden düzen oluşturma işlemi otomatik olarak gerçekleştiği için bu yönteme hiç 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ır ve en son yönergelere uygun olarak Q öncesi güç tasarrufu durumunu yoksayar. (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 almak için erişilebilirlik işlemi ekleme (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ü bu taahhütleri içerir.
Oluştur'un 0.1.0-dev15
sürümünü kullanmak için:
Bağımlılık Güncellemesi
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıklarınızı yukarıdaki Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
- ScrollableColumn/ScrollableRow'daki yeni parametreye benzer şekilde LazyColumnItems/LazyRowItems'de artık içerik için kırpıldıktan sonra dolgu eklemenize olanak tanıyan contentPadding parametresi de vardır. Bu, yalnızca bir değiştirici parametreyle mümkün değildir. Ayrıca yalnızca ilk öğeden önce/son öğeden sonra boşluk eklemenize olanak tanır. (Ibc24e)
- Metin alanlarında onFocusChange geri çağırma işlevi, onFocusChanged olarak yeniden adlandırıldı (Ida4a1)
- VerticalScroller ve HoriziontalScroller kullanımdan kaldırıldı. Column/Row davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u ya da kendi öğenizde Değiştirici.vertical Scroll ve Modifier.Yatay Kaydırma'yı kullanın. Benzer şekilde, ScrollerPosition desteği ise ScrollState'in kullanılmasıyla kaldırıldı (I400ce, b/157225838, b/149460415, b/154105299)
- Modifier.draggable ve Modifier.scrollable API'leri yeniden tasarlandı. DragDirection, Orientation için kaldırıldı. Kaydırılabilir için gerekli durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
- Tek değerli anlambilim özellikleri artık bir çağrı stili kullanıyor.
Örneğin, "semantics { hidden = true }" artık şu şekilde yazılır:
semantics { hidden() }
. (Ic1afd, b/145951226, b/145955412) - RoundedCornerShape ve CutCornerShape tarafından kullanılan köşe boyutları artık %50'den büyük olabiliyor (Id2340, b/160400213)
- Resim kompozit öğesi için varsayılan ContentScale parametresi İçten yerine Sığdır olarak değiştirildi. Bu, düzen boyutu boy oranını korurken boyacının doğal boyutundan büyükse temel boyacının ölçeğini büyütecek bir davranış elde etmek için yapıldı. Bu davranış, birleştirilebilir öğenin boyutunu hesaplamak için yalnızca doğal boyut kullanılıyorsa varsayılan davranışı etkilemezken görüntüye sabit boyutlar sağlama beklentilerini daha iyi karşılar. (I40ae3, b/159838006)
- Statik animasyon spesifikasyonu kavramını netleştirmek için üst düzey API'lerde AnimationBuilder yerine AnimationSpec kullanın. Tween, spring gibi AnimationSpec'ler oluşturmak için lambda koşulunu kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine, doğrudan kurucu parametrelerini alırlar. -Oluşturuculara güvenmek yerine AnimationSpec'in genel kullanım kolaylığını artırmak için yapıcıları açarak -KeyFrames ve Tween için süreyi ve gecikmeyi Int olarak değiştirin. Bu, gereksiz tür dönüştürme işlemlerini ve yöntem aşırı yüklemeyi (hem Long hem de Int'i desteklemek için) ortadan kaldırır. (Ica0b4)
- Tıklanabilir öğe kaldırıldı. Değiştirici.tıklanabilir (I84bdf) özelliğini kullanın
- LazyRowItems eklendi: LazyColumnItems'in yatay kaydırmalı analogu (Ibbcf7)
- Düşük düzeyde durum bilgisi olmayan 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ı da kullanımdan kaldırıldı. Bunun yerine lütfen 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'i (I94939, b/154507984) kullanın
- Beden bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Size sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanmak amacıyla 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, x ve y ofsetlerini kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanan satır içi sınıfın avantajlarını sağlar. (I3ad98)
- İki parmak ucunu yakınlaştırmak için Modifier.zoomable eklendi (Id5d63)
- Açma/kapatma düğmeli bileşenin desteği sonlandırıldı. Bunun yerine Modifier.toggleable özelliğini kullanın (I35220, b/157642842)
- MutuallyExclusiveSetItem desteği sonlandırıldı. Bunun yerine Modifier.selectable kullanın. (I02b47, b/157642842)
- TestTag'in desteği sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
- Metin'e daha önce yanlışlıkla eklenmemiş fontWeight parametresini ekler (I56937)
- Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I19d02)
- VerticalScroller artık kullanıma hazır olarak sütun sağlar. HorizontalScroller artık Row'u kullanıma hazır olarak sunar. (Ieca5d, b/157020670)
- Piksel parametreleri için yalnızca Dp ve temel türleri temel almaya yönelik büyük yeniden düzenleme çabasının bir parçası olarak çeşitli oluşturma sınıflarında Px sınıfı kullanımı değiştirildi (Iede0b)
- Modifier.indication, temel pakete eklendi. Özel etkileşimli öğelerinizde basma/sürükleme/diğer göstergeleri göstermek için kullanın (I8425f, b/155287131)
- VerticalScroller ve HorizontalScroller artık ScrollerPosition'da isReversed ayarlandığında ters kaydırmayı destekliyor (I953bd)
- Metin düzenine kompozisyon ekleme desteği. (I1373c)
- CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. DrawScope, Yoğunluk arayüzünü uygulamak ve ContentDrawScope'ta LayoutDirection Silinmiş DrawScope alt sınıfını sağlamak için güncellendi DrawScope bunu manuel olarak sağlamadan zaten RTL özelliğini sağladığı için artık RTL özelliğini korumayacak şekilde güncellendi (I1798e)
- Değiştirici'de, çizim arka plan uzantı API'lerinin sağlanmasına yönelik desteği sonlandırılan DrawBackground API'si kaldırıldı. Kod yollarını azaltmak ve Modifier'ın kompozisyonun bir parçası olarak oluşturulması şartını kaldırmak için renk, fırça ve boya drawBackground uygulamalarını yeniden yapılandırdık. (I0343a)
- Bir Canvas'ı gösteren daha yüksek düzeydeki compose API'leri, bunun yerine CanvasScope'u göstermek için güncellendi. Bu, tüketicilerin kendi Paint nesnelerini yönetme ihtiyacını ortadan kaldırır. Yine de bir tuvale erişmesi gereken tüketiciler, temel tuvalde çizim komutları göndermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
- HorizontalKaydırma ve Dikey Kaydırma, kayıtlı örnek durumunu kullanarak kaydırma konumlarını geri yüklemez. (Ia0fae, b/155075048)
- FocusManagerAmbient kaldırıldı. Odağı elde etmek için FocusModifier.requestFocus işlevini kullanın. (Ic4826)
- Tablo düzeni, yeni bir API ile tekrar kullanılabilir hale gelene kadar geçici olarak kaldırıldı. (Id88a7)
Durumsuz, açıklayıcı bir çizim API yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyut bilgileri de karşılık gelen içe yerleştirilmiş sınırlara göre kapsamlandırılır. Bir tüketicinin, çizim işlemlerini yapılandırmak için kendi Boyama durumu nesnesini tutmasını gerektirmez.
CanvasScopeSample eklendi ve demo uygulama, açıklayıcı grafik demoyu içerecek şekilde güncellendi (Ifd86d)
ColoredRect kaldırıldı. Bunun yerine drawBackground değiştiricisi olan kullanıcı kutusu (I983c7, b/152753731)
Metin alanına imleç rengi özelleştirmesi ekleme (I6e33f)
Artık onTextInputStarted geri çağırması (I8dc44, b/151860051) tarafından sunulan yazılım klavyesini kullanarak yazılım klavyesini gizlemek/göstermek mümkündür.
TextField ile kullanılan TextFieldValue, artık şu şekilde kullanıldığında etkinlik yeniden oluşturma işleminden sonra geçerli olabilir:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Text()'ye yaygın olarak kullanılan parametreleri ekler. Şu anda
Text(style = TextStyle(textAlign = TextAlign.Center))
gibi az sayıda parametre iletmek için yerel metin stili oluşturuyorsanız artık parametreleri doğrudan doğrudan sağlayabilirsiniz:Text(textAlign = TextAlign.Center)
(I82768)Odak alt sistemiyle entegrasyon sağlamak için CoreTextField/TextField focusIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)
TextField güncellemesi: Yatay boyutta, kendisine verilen tüm kullanılabilir alanı kaplar (Ib08df, b/154638552)
Basma ve sürükleme gibi kullanıcı arayüzü durum değişikliklerine tepki veren bileşenlerin oluşturulmasını kolaylaştıran InteractionState ve Interaction eklendi (Icfe25, b/152525426)
RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics* konumuna taşındı. (Ia74d5, b/154507984)
API'deki tüm boş değer kabul eden Color kullanımları, boş değer kabul etmeyenlerle değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7)
TextField API güncellemesi: onFocus ve onBlur geri çağırmaları, (I66cd3) parametresiyle tek bir onFocusChange (Boolean) geri çağırması olarak birleştirildi
ScaleFit, ContentScale olarak yeniden adlandırıldı ContentScale, ui-graphics'ten ui-core modülüne ve uyumlu hale getirme API'si ile aynı modülde yer alacak şekilde taşındı. FillMaxDimension, Crop olarak yeniden adlandırıldı FillMinDimension, Fit olarak yeniden adlandırıldı ImageView.ScaleType eşdeğerleriyle daha iyi eşleşecek şekilde Fit, Inside olarak yeniden adlandırıldı Crop ve Alignment.Center kombinasyonunun ImageView.ScaleType.CENTER_CROP ile aynı sonucu, Alignment.Center ile kullanılan Fit'in ImageView.ScaleType.FIT_CENTER ile aynı sonucu, Alignment.Center ile kullanılan Inside'ın ImageView.ScaleType.CENTER_INSIDE ile aynı sonucu elde ettiğini belirten dokümanlar eklendi (I45f09, b/152842521)
ProvideContentColor kaldırıldı. Bunun yerine, ContentColorAmbient doğrudan
Providers
(Iee942) ile kullanılmalıdır.Metne renk parametresi ekler. Böylece, temada sağlanan stille manuel olarak birleştirilmesine gerek kalmadan metin stilinin renginin geçersiz kılınmasına olanak tanır. (I41a66)
DrawModifier API'yi iyileştirin:
- draw() için alıcı kapsamını ContentDrawScope yaptı
- 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 kullanımdan kaldırıldı. Bunun yerine
Box(Modifier.preferredSize(width, height).drawBackground(color))
politikasını kullanın. (I499fa, b/152753731)Şekil teması oluşturma sistemi, Materyal tasarım spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğu tarafından kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz (Ifb4d1)
Değiştirici artı operatör, fabrika uzantı işlevleriyle değiştirildi (I225e4)
Çekilebilir, değiştiriciye taşındı (Id9b16, b/151959544)
Text
, androidx.ui.core kaynağından androidx.ui.foundation paketine taşındı. (I87ce5)enabled
parametresini onay kutusu, anahtar ve açma/kapatma düğmesine ekleyin (I41c16)Dalga efekti artık bir değiştiricidir. Tıklanabilir henüz dönüştürülmemiş olsa da önerilen kullanım
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763) şeklindedir.Vektör grafikleri için mevcut alt kompozisyon API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector composable'larının desteği vectorPainter'ın önünde sonlandırıldı.
Image(Painter)
API'siPaintBox(Painter)
olarak yeniden adlandırıldı Image Asset yerine Vector Asset kullanan ancak Image Asset gibi davranan bir Vector composable oluşturuldu (I9af9a, b/149030271)Belirli bir ImageAsset'i ekrana çizmenin yanı sıra boyutlandırma/düzenlemeyi de yönetmek için oluşturulan Image composable. Bu derlenebilir, belirli bir sabit boyutu veya minimum boyutu (Ibcc8f) desteklemenin yanı sıra, kendi boyutuna göre herhangi bir Painter örneğinin çizilmesini de destekler.
Button, FloatingActionButton ve Clickable için artık ayrı bir
enabled
parametresi vardır. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)Resim verileri ile düzene katkıda bulunmak ve içerik çizmek için kullanılan yeni Resim composable arasındaki farkı daha iyi ayırt etmek için ImageAsset olarak yeniden adlandırıldı.
Geleneksel Android uygulaması geliştirmeyi, yazma çerçevesiyle birleştirmede yararlı bir ImageAsset örneği oluşturmak için android.graphics.Bitmap (
Bitmap.asImageAsset()
) üzerinde uzantı yöntemi oluşturuldu. (Id5bbd)DrawImage kompozit öğesi kaldırıldı. Mevcut düzen üzerine resim çizmek için ImagePainter'ı veya yer kaplayan Resim kullanmak için SimpleImage'ı kullanın (I595e1, b/149827027)
Grup bileşeni, sağdan sola yönlülüğe (Ic9e00) destek verir.
AppBarIcon kaldırıldı ve Icon, IconButton ve IconToggleButton eklendi. AppBarIcon'un mevcut kullanımlarını doğrudan IconButton ile değiştirebilirsiniz. Böylece, doğru dokunma hedefi elde edilir. Kullanım bilgileri için örneklere ve bu bileşenlerle doğrudan kullanabileceğiniz, sağlanan Malzeme Simgelerinin Simgelerine bakın. (I96849)
DrawShape bileşeni kaldırıldı. Bunun yerine DrawBackground değiştiricisini kullanın. (I7ceb2)
Yalnızca görünür öğeleri oluşturan ve düzenleyen bir kaydırma liste bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında, URL'nin yalnızca dikey olması ve alt öğelerindeki değişikliklerin tüm durumlarını tam olarak ele almaması yer alır. (Ib351b)
Özel kaydırma çubukları/listeler oluşturmaya olanak tanıyan kaydırılabilir bileşen eklendi (I5fd37)
Arka plan, DrawBackground olarak yeniden adlandırıldı ve arka planın varsayılan olarak hafızaya alınması olacak şekilde ayarlandı (Ia0bd3)
Kutuya dolgu, kenarlık, şekil ve arka plan parametresi ekleme (I05027, b/148147281)
Tuval bileşeni eklendi. Bu kompozisyon, belirli bir boyut kaplar (kullanıcı tarafından sağlanır) ve CanvasScope'u (I0d622) kullanarak çizim yapmanıza olanak tanır.
Border
değiştiricisiniDrawBorder
olarak yeniden adlandırın (I8ffcc)Düzen ve çizim ortak işlevlerini birleştirmek için kutu bileşeni eklendi. (I6e2a7)
Kaydırma çubuğu artık yerel Android fırlatma hareketi davranışını sergiliyor. (I922af, b/147493715)
DrawBorder, Border Modifier (Id335a) ile değiştirildi
Modifier.tag, Modifier.testTag ile karışıklık olmaması için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
ConstraintLayout kuralları oluştururken kullanılan yüzde parametresi, kesirli sayı olarak yeniden adlandırıldı. (Ida2db)
ConstraintLayout bariyerlerinin kenar boşlukları için destek eklendi. (I47ffe)
ConstraintLayout'ta RTL desteği düzeltildi. RTL'den haberdar olmayan API'ler eklendi. (I3b1c7)
ConstraintLayout için yeni DSL eklendi. Daha fazla ayrıntı 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 desteği sonlandırılan RowAlign, ColumnAlign kaldırıldı. (If60d4, b/155858731)
Kullanımdan kaldırılan LayoutTag() kaldırıldı. Lütfen bunun yerine Değiştirici.tag() işlevini kullanın. Kullanımdan kaldırılan Modifier.matchParent() kaldırıldı. Lütfen bunun yerine Değiştirici.matchParentSize() işlevini kullanın. (If8044)
offsetPx düzen değiştiricisi eklendi. Bu değiştirici, px cinsinden (dinamik) ofsetleri tanımlamak için kullanılabilir. (I5af57)
AlignmentLineOffset kompozitinin desteği sonlandırıldı. Lütfen bunun yerine relativePaddingFrom() değiştiricisini kullanın. CenterAlignmentLine bileşeni kaldırıldı. (I60107)
Yalnızca gelen ilgili kısıtlamalar belirtilmediğinde (min kısıtlamalar için 0 ve max kısıtlamalar için sonsuz) sarmalanmış düzene boyut kısıtlamaları ayarlayan defaultMinSizeConstraints düzen değiştiricisi eklendi. (I311ea, b/150460257)
Kapsayıcı kaldırıldı. Bunun yerine Box'u kullanın (Ibbc2b, b/151407926)
Desteği sonlandırılan LayoutWidth/Height/Size değiştiricileri kaldırıldı. (Ib0bc1)
Ofset değiştirici için varsayılan parametre değerleri eklendi. (I37f06)
Simetrik dolgu değiştirici eklendi. (I39840)
Desteği sonlandırılan LayoutAspectRatio değiştiricisi kaldırıldı. (I65a74)
Kullanımdan kaldırılan Layoutalign değiştiricileri kaldırıldı. (I10877)
Genişlik ve yükseklik değiştiricilerde, sarmalanmış düzenin karşıt eksen kısıtlamaları olmadan ölçülmesine neden olan bir hata düzeltildi. (I210b8, b/154797971)
Satır ve sütun için sırasıyla verticalGravity ve horizontalGravity parametreleri eklendi. (I7dc5a)
WrapContentWidth ve WrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama beklenecek şekilde güncellendi. Yerçekimi değiştirici, dikey veya yatay hizalamayı kabul edecek şekilde güncellendi. Satır, sütun ve grup, özel sürekli Hizalamaları desteklemek için güncellendi. (Ib0728)
Hizalama rastgele değerlerle örneklenebilir hale getirildi. 1D Hizalamalar Eklendi. (Ia0c05)
EdgeInset'ler InnerPadding olarak yeniden adlandırıldı. Material Buttons'ın innerPadding parametresi, padding olarak yeniden adlandırıldı. (I66165)
alignToSiblings artık Placeable yerine Measured değerini kabul ediyor. (I5788d)
İçsel ölçümlere boyutlandırma için değiştiriciler eklendi ve bu amaca hizmet eden bileşenler kullanımdan kaldırıldı. (I8295d)
ConstraintLayout (Idb1a5) öğelerinin boyutlarını özelleştirme desteği eklendi
Desteği sonlandırılan Sarma ve Center composable'ları kaldırıldı. (I29e23)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi; LayoutModifier desteği sonlandırıldı (If32ac)
RowScope ve ColumnScope üyelerine artık Row ve Column dışından erişilebilir. (I3a641)
Kapsayıcı desteği sonlandırıldı. Bunun yerine Box'u kullanın. (I675ce, b/151407926)
Ofset düzen konumu için LayoutOfset değiştiricisi eklendi (I0b8a3)
Oluşturma düzeninde Rtl için ilk destek (Ia5519)
LayoutAlign, artık mevcut alanı doldurmayacak şekilde güncellendi (I2b14f)
AspectRatio composable yerine değiştirici kaldırıldı. Eski FlexColumn, FlexRow bileşenleri ve Boşluk 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ükle seçim tutma yerlerini uygulayın. (I27032)
Metin Alanı Seçimi için LongPressAndDrag'ı uygular. (I17919)
Hata Düzeltmeleri
- FocusModifier desteği sonlandırılmış, yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver getirilmiştir. FocusState ve FocusDetailedState için FocusState2'nin (I46919, b/160822875, b/160922136) desteği sonlandırıldı
runOnIdleCompose
,runOnIdle
olarak yeniden adlandırıldı (I83607)- Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
- Daha önce desteği sonlandırılan Modifier.ripple kaldırıldı. Tıklanabilir, artık varsayılan gösterge olarak dalga efekti kullanır (uygulamanızda MaterialTheme {} ayarladıysanız). Bu nedenle, çoğu durumda tıklanabiliri kullanabilir ve dalga efekti göstergesini ücretsiz olarak alabilirsiniz. Dalganın rengi / boyutu / sınırlanmış parametresini özelleştirmeniz gerekiyorsa manuel olarak bir RippleIndication 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'u deneysel API yaptı (I4f2e9)
- Kaydırma yönü kilitlemenin 1. sürümü, Compose genelinde uygulandı. (I1ce7a, b/150289741)
- Pop-up'lar, iletişim kutuları ve menüler artık bağlama dayalı MaterialTheme'i (Ia3665, b/156527485) devralıyor
- Layout() işlevinin ölçüm bloğundan düzen yönü parametresi kaldırıldı. Bununla birlikte düzen yönü, ölçüm kapsamı nesnesi (Ic7d9d) ile geri çağırma içinde kullanılabilir
- AddAbsoluteArrangement: Satırdaki alt öğelerin RTL'de otomatik olarak yansıtılmaksızın düzenlenmesine olanak tanır (I3a1df)
- @Untracked ek açıklaması kullanımdan kaldırıldı. @ComposableContract(tracked=false) (Id211e) ile değiştirin
- Bu değişiklikten önce, derleyici derleyici eklentisi, bir @Composable işlevi içinde yapıcı çağrıları (I5205a, b/158123804) varsa basit bir şekilde durduruyordu.
- Etkinlik veya Parça (I5fdd1) içindeki çalışma şekline benzer şekilde ViewModel oluşturulmasına veya önceden oluşturulmasına olanak tanıyan
viewModel()
composable'ı ekleyin Radius sınıfı satır içi sınıf olacak şekilde yeniden düzenlendi. Y eksenindeki yarıçapın zorunlu x ekseni yarıçap parametresiyle eşleşmesi için varsayılan parametre içeren işlev kurucusu lehine tamamlayıcı oluşturma yöntemleri kaldırıldı.
DrawScope.drawRoundRect, x ve y eksenindeki yarıçap için 2 ayrı kayan değer yerine tek bir Radius parametresi kullanacak şekilde güncellendi (I46d1b)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Id3434)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a)
TextField'in imlecinde yanıp sönen animasyon var (Id10a7)
Kısmi hareketler artık bir Hareket Token'in (Id7ae5) aktarılmasını gerektirmiyor
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I57bff)
Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için desteği sonlandırılma durumuna alındı. (I4cfdc)
AnnotatedString.Builder.addAnnotationString işlevini addStringAnnotation olarak yeniden adlandırın. (I5059e)
Hizalama API'si güncellendi ve mutlak hizalama desteği eklendi (Rtl bağlamında otomatik olarak yansıtılmaz) (I38cd3)
Düzen ve DüzenDeğiştirici alt öğeleri farklı bir düzen yönü ile ölçülebilir. (Ibd731)
Temel ImageAsset'in (I0ea9e) bir alt bölümünün çizilmesini desteklemek için ImagePainter'a isteğe bağlı ek rect parametresi ekleyin
Öğeler kaldırılırken Bağdaştırıcı Listesi'ndeki bir kilitlenme düzeltildi (Ic64b0, b/153195921)
activity.setContent { } bloğuna yerleştirdiğiniz ilk düzeni ölçme şeklimizi değiştirdik. Önceden etkinlik ekranının tamamını doldurmak zorunda olan bu öğe, artık düzeninizi bir grup içine yerleştirmişsiniz gibi davranır: Bir ekrandan daha küçük olabilir ve sol üst ekrana yerleştirilir. Eski davranışı istiyorsanız düzeniniz için Modifier.fillMaxSize() işlevini 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ı (Ib7d47) içeriyor
ui-text modülü, ui-text-core olarak yeniden adlandırıldı (I57ara)
ui-framework/CoreText, CoreTextField bileşenleri ui-text-compose altına taşındı. Projenize ui-text-compose'u dahil edebilirsiniz. (I32042)
runOnIdleCompose
verunOnUiThread
artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)[Değişken]Durum mülkü temsilcisi operatörleri, Kotlin 1.4 mülk temsilcisi optimizasyonlarını desteklemek için uzantılara taşındı. Arayanların
by state { ... }
veyaby mutableStateOf(...)
uygulamasını kullanmaya devam etmek için içe aktarma eklemesi gerekir. (I5312c)DrawLayerModifier ve drawLayer() için clipToBounds ve clipToOutline varsayılan olarak false olarak ayarlandı. (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 bileşenlerinden biriyle değiştirilmelidir (Idf5e0)
LayoutFlexible, LayoutWeight olarak yeniden adlandırıldı. Sıkı parametre, doldurulacak şekilde yeniden adlandırıldı. (If4738)
DrawVector, normal bir composable işlevinden, vektörü arka plan olarak bir düzene çizecek olan bir ChangeVector() fonksiyonunu döndürecek şekilde değiştirilmiştir. (I7b8e0)
ClipToBounds adlı composable fonksiyonunun yerine şu düzenleyiciyi kullanın: DrawClipToBounds, yalnızca katman sınırlarına dikdörtgen bir şekille kırpmanız gerektiğinde kullanabileceğiniz pratik bir değiştiricidir. (If28eb)
DrawShadow birleştirilebilir işlevi, drawShadow() değiştiricisiyle değiştirildi. Gölgeler artık layerModifier'ın bir parçası olarak çizilir. (I0317a)
androidx.compose.ViewComposer, androidx.ui.node.UiComposer'a taşındı androidx.compose.Emittable kaldırıldı. ComponentNode ile ek bir işlevi yoktu. androidx.compose.ViewAdapters kaldırıldı. Bu kullanım alanı artık desteklenmiyor. Compose.composeInto işlevinin desteği sonlandırıldı. Bunun yerine
setContent
veyasetViewContent
kullanın. Compose.disposeComposition desteği sonlandırıldı. Bunun yerinesetContent
tarafından döndürülenComposition
üzerindedispose
yöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto'ya taşındı ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı ComponentNode#emitRemoveAt, ComponentNode#removeAt olarak yeniden adlandırıldı ComponentNode#emitMode, ComponentNode#move olarak yeniden adlandırıldı (Idef00)Kullanımdan kaldırılan Wrap composable. LayoutAlign değiştiricisi veya Stack bileşeni (Ib237f) ile değiştirilebilir.
Düzen yönünün, üst düzen düğümünden alt öğelere iletilmesini sağladık. Düzen yönü değiştirici eklendi. (I3d955)
Yeni oluşturulan Modifier, orijinal Painter'a referans içerdiğinden Painter.toModifier öğesini Painter.asModifier olarak yeniden adlandırın. Bu referans, birden fazla Modifier örneğinde paylaşılabilir (I7195b).
- olduğu için yaygın bir hata kaynağıdır.
LayoutPadding değiştiricide sağdan sola yönü destekleme (I9e8da)
Density ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current değerini kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)
ValueHolder sınıfı kaldırıldı. Alt sınıfların değer güncellemesini izleyebilmesi için animasyon değeri alanını soyut hale getirmek amacıyla AnimatedValue ve AnimatedFloat sınıfları yeniden yapılandırıldı.
- 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)
Ambiyans API'sinde büyük değişiklikler yapılıyor. Ayrıntılar için günlüğe ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi tam sayı konumları artık null değil. Sorgulanan hizalama satırı eksikse HizalamaÇizgisi.Belirtilmemiş döndürülür. (I896c5, b/158134875)
Yeniden oluşturma işlemlerinde kilitlenmeye neden olan bir ConstraintLayout hatası düzeltildi. (Ibee5a, b/158164341)
WithConstraints takip eden lambda API değiştirildi. Artık iki parametre yerine, constraints ve layoutDirection'e 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 içsel ölçüm işlevleri artık, içsel sorgu API'sine dolaylı olarak yayılan düzen yönünü sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)
LayoutDirectionAmbient özelliğinin desteği sonlandırıldı. Yerel ayar tarafından tanımlanan düzen yönünü okumak için ConfigurationAmbient (I851b1) üzerinde localeLayoutDirection'ı kullanın.
LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
ParentData bileşeninin desteği sonlandırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya ölçüm bloğunda tanınmaları için düzen alt öğelerini etiketlemeniz yeterliyse LayoutTag değiştiriciyi kullanmanız gerekir. (I51368, b/150953183)
OnPositioned ve OnChildPositioned kompozisyon işlevlerinin yerine OnPositionedModifier ve OnChildPositionedModifier ekleyin. (I2ec8f)
LayoutPadding'de negatif dolguya izin verilmez. Negatif konum ofsetleri için bunun yerine LayoutOffset kullanılmalıdır. (Ifb5b1)
WithConstraints, LayoutDirection parametresini aldı (I6d6f7)
ComposeFlags.COMPOSER_PARAM
işaretitrue
olarak güncellendi. Bu, oluşturma eklentisinin kod oluşturma stratejisini değiştirecek. Bu durum, yüksek 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 şekilde yönetmesi için sonraki @Composable çağrılarına iletilir. Bu, ikili kodda önemli bir değişikliktir ancak compose'in izin verilen tüm kullanımlarında kaynak düzeyinde uyumluluğu korumalıdır. (I7971c)LayoutCoordinates, sağlananAlignmentLines'i bir Harita yerine bir Set yapmak ve LayoutCoordinates'in bir değer almak için get() operatörünü uygulamak üzere değiştirildi. Bu sayede, her değiştirici için yeni bir koleksiyon oluşturmadan değiştiricilerin, kümenin bir veya daha fazla değerini kolayca değiştirmesi kolaylaşır. (I0245a)
Düzen Koordinatları artık konum özelliğine sahip değildir. LayoutModifiers, döndürme veya ölçeklendirme göz önüne alındığında position mülkü anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'dan diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() yöntemlerini kullanmalıdır.
LayoutKoordinatlar, boyut özelliği için PxSize yerine IntPxSize'ı kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullanır. Bu nedenle, tüm düzen boyutları kayan nokta değerleri değil, tam sayılar kullanmalıdır. (I9367b)
Kısıtlamalar API yüzeyinde yapılan iyileştirmeler (I0fd15)
TextDirection.Content (I48f36) eklendi
Kopyala, kes ve yapıştır işlemlerini doğru şekilde gösterecek şekilde araç çubuğu menüsünü ayarlayın. (Id3955)
Metin alanı seçimi için yüzen araç çubuğu ekleyin. (Ie8b07)
TextDirectionAlgorithm, TextDirection olarak yeniden adlandırıldı (I75ce8)
TextDirection, resolvedTextDirection (I3ff38) olarak yeniden adlandırıldı
TextField Selection'a HapticFeedback ekleyin. (I58050)
Metin alanı seçimine Kopyala, Kes ve Yapıştır yöntemlerini ekleyin. (Idb70b)
Test etiketi ve semantikler silindi. Bunun yerine Modifier.testTag ve Modifier.semantics'i 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.Range
olarak yeniden adlandırıldı. (I2d44d)Metinle ilgili işlemler için araç çubuğu ekleyin. (I49d53)
Yeni LifecycleOwnerAmbient artık kullanılabilir. Compose kullanıcı arayüzüyle kullandığınız bir etkinlik artık androidx.activity.ComponentActivity veya AppCompatActivity öğesini genişletiyor olabilir. android.app.Activity üzerindeki setContent artık kullanımdan kaldırıldı (Idb25a, b/153141084)
androidx politikasına uygun olması için ui-android-text paket adı (androidx.text), androidx.ui.text.platform ile değiştirildi. (I42711)