Materyal Oluşturma
<0xx0A> androidx.compose.material
androidx.compose.material.icons
(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ü |
---|---|---|---|---|
2 Temmuz 2025 | 1.8.3 | - | 1.9.0-beta02 | - |
Yapı
Compose, androidx
içindeki 7 Maven Group kimliğinin birleşimidir. Her grup, kendi sürüm notları kümesine sahip, hedeflenmiş bir işlevsellik alt kümesi içerir.
Bu tabloda gruplar açıklanmakta ve her bir sürüm notu grubuna bağlantı verilmektedir.
Grup | Açıklama |
---|---|
compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun. |
compose.compiler | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. |
compose.foundation | Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin. |
compose.material | Kullanıma hazır Materyal Tasarım bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklanan bileşenleri sağlamak üzere tasarlanmış, Compose'un daha üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarım'ın bir sonraki evrimi olan Materyal Tasarım 3 Bileşenleri ile 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. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
compose.runtime | Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Plugin'in hedefleyeceği temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken Compose kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları bildirme
Compose'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.compose.material:material:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.8.3") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.9
Sürüm 1.9.0-beta02
2 Temmuz 2025
androidx.compose.material:material-*:1.9.0-beta02
iptal edilir. 1.9.0-beta02 sürümü bu commit'leri içerir.
Sürüm 1.9.0-beta01
18 Haziran 2025
androidx.compose.material:material-*:1.9.0-beta01
iptal edilir. 1.9.0-beta01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
Text(AnnotatedString)
içindeki köprüler artık varsayılan olarak Material stiline sahip. (I0e8ed, b/339843816)
Sürüm 1.9.0-alpha04
4 Haziran 2025
androidx.compose.material:material-*:1.9.0-alpha04
iptal edilir. 1.9.0-alpha04 sürümü bu commit'leri içerir.
Sürüm 1.9.0-alpha03
20 Mayıs 2025
androidx.compose.material:material-*:1.9.0-alpha03
iptal edilir. 1.9.0-alpha03 sürümü bu commit'leri içerir.
Sürüm 1.9.0-alpha02
7 Mayıs 2025
androidx.compose.material:material-*:1.9.0-alpha02
iptal edilir. 1.9.0-alpha02 sürümü bu commit'leri içerir.
Sürüm 1.9.0-alpha01
23 Nisan 2025
androidx.compose.material:material-*:1.9.0-alpha01
iptal edilir. 1.9.0-alpha01 sürümü bu commit'leri içerir.
Davranış Değişiklikleri
- Compose ile birlikte gelen Lint kontrolleri artık minimum AGP sürümü olarak 8.8.2'yi gerektiriyor. AGP'yi yükseltemiyorsanız bunun yerine
android.experimental.lint.version=8.8.2
(veya daha yeni bir sürüm) kullanarakgradle.properties
dosyanızda Lint'i tek başına yükseltebilirsiniz. Compose lint kontrollerini IDE'de çalıştırmak için Android Studio Ladybug veya daha yeni bir sürüm gerekir.
API Değişiklikleri
- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (Idb6b5)
- Metin alanı süsleme kutusu API'leri artık deneysel değildir (I7480f, b/269651160)
runWithTimingDisabled
yerinerunWithMeasurementDisabled
kullanın. Bu durum, davranışı daha net bir şekilde tanımlar: Tüm metrikler duraklatılır. Ayrıca,runWithMeasurementDisabled
işlevi satır içi olduğundan erişimi açmak için yeniden tanımlamak mümkün olmadığındanMicrobenchmarkScope
üst sınıfını kullanıma sunun. (I9e23b, b/389149423, b/149979716)
Hata Düzeltmeleri
ExposedDropdownMenu
, eski sürümlerle ikili uyumludur. (I133f7)Float.NaN
ilerleme olarak iletildiğinde ilerleme ve yükleme göstergelerinde yaşanan kilitlenme sorunu düzeltildi. (I4fa96, b/352364576)
Sürüm 1.8
Sürüm 1.8.3
18 Haziran 2025
androidx.compose.material:material-*:1.8.3
iptal edilir. 1.8.3 sürümü bu commit'leri içerir.
Sürüm 1.8.2
20 Mayıs 2025
androidx.compose.material:material-*:1.8.2
iptal edilir. 1.8.2 sürümü bu commit'leri içerir.
Sürüm 1.8.1
7 Mayıs 2025
androidx.compose.material:material-*:1.8.1
iptal edilir. 1.8.1 sürümü bu commit'leri içerir.
Sürüm 1.8.0
23 Nisan 2025
androidx.compose.material:material-*:1.8.0
iptal edilir. 1.8.0 sürümü bu commit'leri içerir.
Sürüm 1.8.0-rc03
9 Nisan 2025
androidx.compose.material:material-*:1.8.0-rc03
iptal edilir. 1.8.0-rc03 sürümü bu commit'leri içerir.
Sürüm 1.8.0-rc02
26 Mart 2025
androidx.compose.material:material-*:1.8.0-rc02
iptal edilir. 1.8.0-rc02 sürümü bu commit'leri içerir.
Sürüm 1.8.0-rc01
12 Mart 2025
androidx.compose.material:material-*:1.8.0-rc01
iptal edilir. 1.8.0-rc01 sürümü bu commit'leri içerir.
Sürüm 1.8.0-beta03
26 Şubat 2025
androidx.compose.material:material-*:1.8.0-beta03
iptal edilir. 1.8.0-beta03 sürümü bu commit'leri içerir.
Sürüm 1.8.0-beta02
12 Şubat 2025
androidx.compose.material:material-*:1.8.0-beta02
iptal edilir. 1.8.0-beta02 sürümü bu commit'leri içerir.
Sürüm 1.8.0-beta01
29 Ocak 2025
androidx.compose.material:material-*:1.8.0-beta01
iptal edilir. 1.8.0-beta01 sürümü bu commit'leri içerir.
Sürüm 1.8.0-alpha08
15 Ocak 2025
androidx.compose.material:material-*:1.8.0-alpha08
iptal edilir. 1.8.0-alpha08 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- İçeriğin ekran kesimiyle çakışmasını önlemek için, Material bileşenlerinin varsayılan olarak dikkate aldığı iç kısımlar grubuna
displayCutout
ekler.- Bu, yerleştirme alanına duyarlı bileşenlerin ekran kesimi etrafındaki davranışını etkileyecek bir davranış değişikliğidir. Buna, yerleştirme için uygun Material 3 bileşenlerinin
WindowInsets
parametresinin varsayılan değeri ve bileşende sağlananWindowInsets
değerleri dahildir. - Hem Material 2 hem de Material 3 için varsayılan nesneler. Bu değişiklik istenmeyen davranışlara neden olursa
WindowInsets
parametresini bileşen bazında manuel olarak belirtin. (I43ee9, b/362508045)
- Bu, yerleştirme alanına duyarlı bileşenlerin ekran kesimi etrafındaki davranışını etkileyecek bir davranış değişikliğidir. Buna, yerleştirme için uygun Material 3 bileşenlerinin
ComposeContentTestRule.setContent
kullanılırken test edilen composable için ana makine olarak kullanılan etkinlik, artıkTheme.Material.Light.NoActionBar
temasını kullanıyor. Böylece SDK 35 hedeflenirkenActionBar
öğesinin test içeriğiyle çakışması önleniyor. Bu davranışı devre dışı bırakmak içinui-test-manifest
bağımlılığını kaldırabilir ve test uygulamanızınAndroidManifest.xml
bölümüne, istediğiniz temaylaComponentActivity
için bir etkinlik girişi ekleyebilirsiniz. (I7ae1b, b/383368165)
Harici Katkı (External Contribution)
ModalBottomSheetLayout
içindesheetGesturesEnabled
'ı kullanıma sunun. (I3f032, b/329543529)
Sürüm 1.8.0-alpha07
11 Aralık 2024
androidx.compose.material:material-*:1.8.0-alpha07
iptal edilir. 1.8.0-alpha07 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Metin alanı boyutu değiştiricilerinin bazen uygulanmaması sorunu düzeltildi. (I90d4c, b/356905963)
Sürüm 1.8.0-alpha06
13 Kasım 2024
androidx.compose.material:material-*:1.8.0-alpha06
iptal edilir. 1.8.0-alpha06 sürümü bu commit'leri içerir.
Sürüm 1.8.0-alpha05
30 Ekim 2024
androidx.compose.material:material-*:1.8.0-alpha05
iptal edilir. 1.8.0-alpha05 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
contentPadding
değiştiğinde gövde içeriğinin her zaman yeniden oluşturulmasını önlemek için ScaffoldcontentPadding
davranışını optimize edin. (I8c8e2, b/373904168)- Kontrol tuşlarına basıldığında malzeme kaydırma çubuğunun değerini değiştirin. (I1c442)
Sürüm 1.8.0-alpha04
16 Ekim 2024
androidx.compose.material:material-*:1.8.0-alpha04
iptal edilir. 1.8.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Kararlı temel sürümüne sabitlemek için
readOnly
'yıTextFields
'den kaldırın. (I3aaba)
Hata Düzeltmeleri
- Android S+ sürümlerinde, tıklama üzerine genişleyen kart gibi genişleyen bileşenlerde dalgalanma desteği ekler. Daha önce dalgalanma yeni boyutu doldurmazdı ancak artık yeni sınırlara kadar genişleyecek. (If509a, b/183019123)
Sürüm 1.8.0-alpha02
18 Eylül 2024
androidx.compose.material:material-*:1.8.0-alpha02
iptal edilir. 1.8.0-alpha02 sürümü bu commit'leri içerir.
Sürüm 1.8.0-alpha01
4 Eylül 2024
androidx.compose.material:material-*:1.8.0-alpha01
iptal edilir. 1.8.0-alpha01 sürümü bu commit'leri içerir.
API Değişiklikleri
- Safe args ile bottomSheet oluşturmak için yeni
NavGraphBuilder.bottomSheet
oluşturucu eklendi ((I28589, I777db, b/351858980)) TextFieldState
(I3b74c) alan yeniTextField
veOutlinedTextField
aşırı yüklemeleri eklendi.
Sürüm 1.7
Sürüm 1.7.8
12 Şubat 2025
androidx.compose.material:material-*:1.7.8
iptal edilir. 1.7.8 sürümü bu commit'leri içerir.
Sürüm 1.7.7
29 Ocak 2025
androidx.compose.material:material-*:1.7.7
iptal edilir. 1.7.6 sürümünden itibaren değişiklik yok.
Sürüm 1.7.6
11 Aralık 2024
androidx.compose.material:material-*:1.7.6
iptal edilir. 1.7.6 sürümü bu commit'leri içerir.
Sürüm 1.7.5
30 Ekim 2024
androidx.compose.material:material-*:1.7.5
iptal edilir. 1.7.5 sürümü bu commit'leri içerir.
Sürüm 1.7.4
16 Ekim 2024
androidx.compose.material:material-*:1.7.4
iptal edilir. 1.7.4 sürümü bu commit'leri içerir.
Sürüm 1.7.2
18 Eylül 2024
androidx.compose.material:material-*:1.7.2
iptal edilir. 1.7.2 sürümü bu commit'leri içerir.
Sürüm 1.7.1
10 Eylül 2024
- Android yapıları değiştirilmez.
-desktop
yapı kaldırıldı,-jvmStubs
ve-linuxx64Stubs
yapıları eklendi. Bu hedeflerden hiçbiri kullanılmak üzere tasarlanmamıştır. Jetbrains Compose çalışmalarına yardımcı olmak için yer tutucu olarak kullanılırlar.
Sürüm 1.7.0
4 Eylül 2024
androidx.compose.material:material-*:1.7.0
iptal edilir. 1.7.0 sürümü bu commit'leri içerir.
1.6.0 sürümünden beri yapılan önemli değişiklikler
- Material bileşenleri, yeni dalgalanma API'lerini kullanacak şekilde taşındı ve artık
RippleTheme
sorgulamıyor. - Daha önce
MutableInteractionSource
değerini kabul eden ve varsayılan olarakremember { MutableInteractionSource() }
değerini kullanan Material bileşenleri artık boş değer atanabilirMutableInteractionSource
değerini kabul ediyor ve varsayılan olarak null değerini kullanıyor.MutableInteractionSource
öğesini barındırmıyor ve kullanmıyorsanız null değerini iletmeniz gerekir. Bu sayede bazı bileşenler yalnızca gerektiğinde bir örnek oluşturarak performansı artırır. Kendi bileşenlerinizde de benzer değişiklikler yapmanız önerilir. BottomDrawer
,ModalBottomSheet
,BackdropScaffold
ve standart Bottomsheet, kararlı API'ye yükseltildi.
Sürüm 1.7.0-rc01
21 Ağustos 2024
androidx.compose.material:material-*:1.7.0-rc01
iptal edilir. 1.7.0-rc01 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.material:material-*:1.7.0-beta07
iptal edilir. 1.7.0-beta07 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.material:material-*:1.7.0-beta06
iptal edilir. 1.7.0-beta06 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.material:material-*:1.7.0-beta05
iptal edilir. 1.7.0-beta05 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.material:material-*:1.7.0-beta04
iptal edilir. 1.7.0-beta04 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.material:material-*:1.7.0-beta03
iptal edilir. 1.7.0-beta03 sürümü bu commit'leri içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.material:material-*:1.7.0-beta02
iptal edilir. 1.7.0-beta02 sürümü bu commit'leri içerir.
API Değişiklikleri
- Bağlantıları stilize etmeye yönelik API güncellemesi:
TextLinkStyles
,TextStyle
konumuna taşındı veTextDefaults
, materyalden kaldırıldı (I5477b)
Sürüm 1.7.0-beta01
14 Mayıs 2024
androidx.compose.material:material-*:1.7.0-beta01
iptal edilir. 1.7.0-beta01 sürümü bu commit'leri içerir.
API Değişiklikleri
- Metinde Material temalı bağlantıları alma API'si güncellendi. Özellikle, temalı
LinkAnnotations
oluşturmak ve temalı bağlantılarla HTML ayrıştırmak içinTextDefaults
yöntemlerini kaldırdı. Bunun yerine, Text composable'ına parametre olarak bağlantıları stilize etmeye olanak tanıyan birTextLinkStyles
sınıfı eklendi. (I31b93)
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.material:material-*:1.7.0-alpha08
iptal edilir. 1.7.0-alpha08 sürümü bu commit'leri içerir.
API Değişiklikleri
backgroundColor
düzeltmesininTextFieldDecorationBox
veOutlinedTextFieldDecorationBox
için geçerli olmaması sorunu düzeltildi. Dekorasyon kutuları artıkshape
parametresini kabul ediyor. (I371c2, b/307694651)RippleConfiguration#isEnabled
kaldırıldı veLocalRippleConfiguration
boş değer atanabilir hale getirildi. Bir dalgalanmayı devre dışı bırakmak içinRippleConfiguration
ileisEnabled = false
yerinenull
ileLocalRippleConfiguration
'ü sağlayın. (I22725)- Metin bağlantılarında normal stilin yanı sıra basılı, fareyle üzerine gelindiğinde ve odaklanıldığında stil seçenekleri bulunur.
TextDefaults
yöntemlerinin her birinde bunu desteklemek için birpressedStyle
bağımsız değişkeni bulunur. (Ic473f, b/139312671)
Hata Düzeltmeleri
- Etiket için
OutlinedTextField
üst dolgu artık sistem yazı tipi boyutunu dikkate alıyor. (Idc781)
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.material:material-*:1.7.0-alpha07
iptal edilir. 1.7.0-alpha07 sürümü bu commit'leri içerir.
API Değişiklikleri
- Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelindiğinde ve odaklandığında uygulanan stil seçeneğine de sahiptir. (I5f864, b/139312671)
- Bağlantılara
MaterialTheme
uygulayan birLinkAnnotation
oluşturma ve HTML etiketli dizeyi ayrıştırma yöntemlerini içeren birTextDefaults
nesnesi eklendi. (I98532, b/139312671)
Sürüm 1.7.0-alpha06
3 Nisan 2024
androidx.compose.material:material-*:1.7.0-alpha06
iptal edilir. 1.7.0-alpha06 sürümü bu commit'leri içerir.
Duyuru
androidx.compose.material
artık bu Maven grubundaki her yapının aynı sürümünün kullanılmasını gerektirmiyor. Kullanıcılar, Compose temel kitaplıklarının (Ie5fba) sürümlerini karıştırıp eşleştirebilir.
API Değişiklikleri
ModalDrawer
veBottomDrawer
varsayılan değerleriDrawerDefaults
nesnesine taşındı. (Ib5b2e)
Sürüm 1.7.0-alpha05
20 Mart 2024
androidx.compose.material:material-*:1.7.0-alpha05
iptal edilir. 1.7.0-alpha05 sürümü bu commit'leri içerir.
API Değişiklikleri
ScaffoldSubcomposeInMeasureFix
işareti kaldırıldı. (I67363)
Sürüm 1.7.0-alpha04
6 Mart 2024
androidx.compose.material:material-*:1.7.0-alpha04
iptal edilir. 1.7.0-alpha04 sürümü bu commit'leri içerir.
Yeni Özellikler
- Navigation Compose kullanılırken hedef olarak alt sayfaları destekleyen yeni bir
androidx.compose.material:material-navigation
yapısı eklendi. Bu, Piyanist İçin Gezinme Materyalleri kitaplığının yerini alır. (d65d57, b/180247978)
Sürüm 1.7.0-alpha03
21 Şubat 2024
androidx.compose.material:material-*:1.7.0-alpha03
iptal edilir. 1.7.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
BottomDrawer
, deneyselden kararlı sürüme yükseltildi.BottomDrawerState
artık ilerleme durumunu bir işlev olarak sunuyor ve belirli hedefler arasındaki ilerleme durumunun sorgulanmasına olanak tanıyor.BottomDrawerState
artık animasyon spesifikasyonunun özelleştirilmesine izin veriyor veconfirmStateChange
artık sondaki lambda değil. (I9c029, b/261423850)BackdropScaffold
, deneyselden kararlı sürüme yükseltildi. Animasyon spesifikasyonu, yönergelere uygun olarak artık birtween
spesifikasyonudur.BackdropScaffold
işlevininsnackbarHost
parametresi, sondaki lambda'larla karışıklığı önlemek için artık son parametre değil.BackdropScaffoldState
, çapalar arasındaki ilerlemeyi sorgulamak içinprogress(from, to)
API'sini kullanıma sunar. (I73f48, b/261423218)- Standart alt sayfalar deneyselden kararlı sürüme yükseltildi. Kullanımdan kaldırılan oluşturucular kaldırıldı. Animasyon spesifikasyonu artık yönergelere uygun bir ara spesifikasyondur. (I3c1a8, b/278692145, b/261409034)
- Kalıcı alt sayfalar deneyselden kararlı sürüme yükseltildi. Kullanımdan kaldırılan oluşturucular kaldırıldı. Animasyon spesifikasyonu, yönergelere uygun olarak artık bir
tween
spesifikasyonudur. (Ic53f4, b/278692145, b/266780235, b/261409034)
Hata Düzeltmeleri
BackdropScaffold
'nınLookaheadScope
ile birlikte kullanıldığı belirli senaryolarda kilitlenmesine neden olan sorun düzeltildi. (I51396)- Performansı artırmak için
BottomSheetScaffold
içindeki alt bileşen kaldırıldı.BottomSheetScaffold
'nınLookaheadScope
ile birlikte kullanıldığı belirli senaryolarda kilitlenmesine neden olan sorun düzeltildi. (I2f90c) ModalBottomSheetLayout
içindeki alt bileşen kaldırıldı ve performans iyileştirildi. (I7a025)
Sürüm 1.7.0-alpha02
7 Şubat 2024
androidx.compose.material:material-*:1.7.0-alpha02
iptal edilir. 1.7.0-alpha02 sürümü şu commit'leri içerir.
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.material:material-*:1.7.0-alpha01
iptal edilir. 1.7.0-alpha01 sürümü şu commit'leri içerir.
Davranış Değişiklikleri
- Material bileşenleri, yeni dalgalanma API'lerini kullanacak şekilde taşındı ve artık
RippleTheme
sorgulamıyor.
API Değişiklikleri
rememberRipple
veRippleTheme
, material-ripple'dan kaldırıldı. Material'a ve diğer tasarım sistemi kitaplıklarına yeni ripple veRippleConfiguration
API'leri eklendi.Daha önce
MutableInteractionSource
değerini kabul eden ve varsayılan olarak{ MutableInteractionSource() }
değerini hatırlayan materyal bileşenleri artık boş değer atanabilirMutableInteractionSource
değerini kabul ediyor ve varsayılan olarak boş değer atanıyor.MutableInteractionSource
öğesini barındırmıyor ve kullanmıyorsanız null değerini iletmeniz gerekir. Bu sayede bazı bileşenler yalnızca gerektiğinde bir örnek oluşturarak performansı artırır. Kendi bileşenlerinizde de benzer değişiklikler yapmanız önerilir.
Sürüm 1.6
Sürüm 1.6.8
12 Haziran 2024
androidx.compose.material:material-*:1.6.8
iptal edilir. 1.6.8 sürümü bu commit'leri içerir.
Sürüm 1.6.7
1 Mayıs 2024
androidx.compose.material:material-*:1.6.7
iptal edilir. 1.6.7 sürümü bu commit'leri içerir.
Sürüm 1.6.6
17 Nisan 2024
androidx.compose.material:material-*:1.6.6
iptal edilir. Son sürümden bu yana değişiklik yapılmadı.
Sürüm 1.6.5
3 Nisan 2024
androidx.compose.material:material-*:1.6.5
iptal edilir. 1.6.5 sürümü bu commit'leri içerir.
Sürüm 1.6.4
20 Mart 2024
androidx.compose.material:material-*:1.6.4
iptal edilir. 1.6.4 sürümü bu commit'leri içerir.
Sürüm 1.6.3
6 Mart 2024
androidx.compose.material:material-*:1.6.3
iptal edilir. 1.6.3 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
ExposedDropdownMenu
'daki gerilemeyi düzeltin, böylece tekrar odaklanılabilir hale gelir. (c0e0ed, b/323694447)
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.material:material-*:1.6.2
iptal edilir. 1.6.2 sürümü şu commit'leri içerir.
Sürüm 1.6.1
7 Şubat 2024
androidx.compose.material:material-*:1.6.1
iptal edilir. 1.6.1 sürümü şu commit'leri içerir.
Sürüm 1.6.0
24 Ocak 2024
androidx.compose.material:material-*:1.6.0
iptal edilir. 1.6.0 sürümü şu commit'leri içerir.
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.material:material-*:1.6.0-rc01
iptal edilir. 1.6.0-rc01 sürümü şu commit'leri içerir.
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.material:material-*:1.6.0-beta03
iptal edilir. 1.6.0-beta03 sürümü şu commit'leri içerir.
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.material:material-*:1.6.0-beta02
iptal edilir. 1.6.0-beta02 sürümü şu commit'leri içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.material:material-*:1.6.0-beta01
iptal edilir. 1.6.0-beta01 sürümü şu commit'leri içerir.
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.material:material-*:1.6.0-alpha08
iptal edilir. 1.6.0-alpha08 sürümü şu commit'leri içerir.
API Değişiklikleri
materialIcon
işlevini,autoMirror
parametresi alan aşırı yüklemesi lehine kullanımdan kaldırın. (Ia338d)
Hata Düzeltmeleri - Büyük içeriklerde gezinme öğesinin yüksekliği otomatik olarak artırılır. (0c4ecc, b/272336962)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.material:material-*:1.6.0-alpha07
iptal edilir. 1.6.0-alpha07 sürümü şu commit'leri içerir.
- Bağımlılık güncellemeleri
Sürüm 1.6.0-alpha06
20 Eylül 2023
androidx.compose.material:material-*:1.6.0-alpha06
iptal edilir. 1.6.0-alpha06 sürümü şu commit'leri içerir.
Davranışa Zarar Veren Değişiklik
BottomSheetScaffold
uygulamasından çekmeceyle ilgili işlev kaldırıldı. Önceki işlevselliği elde etmek içinBottomSheetScaffold
öğenizi Drawer composable ile sarmalayın. Örnek için bkz.BottomSheetScaffoldWithDrawerSample
. (I1dcc8)
API Değişiklikleri
- İskele'nin ölçüm sırasında mı yoksa yerleştirme sırasında mı alt öğelerini ölçmesi gerektiğini kontrol etmek için geçici bir işaretçi kullanıma sunuldu. Varsayılan olarak bu, ölçüm biriminde ölçülür. Yeni davranışla ilgili sorun yaşıyorsanız lütfen sorun kaydı oluşturun. (If6e3b)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.material:material-*:1.6.0-alpha05
iptal edilir. 1.6.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
- Sağdan sola düzenlerde oluşturulurken otomatik olarak yansıtılan simgeler için destek eklendi. material-icons-core ve material-icons-extended modüllerindeki simgeler, simgenin izin vermesi durumunda otomatik yansıtmayı desteklemek için artık ek simge setleri sunuyor. Yeni kümelerin önüne
Icons.AutoMirrored.Filled...
vb. eklenir ve bu kümelerde, sağdan sola düzenlerde otomatik olarak yansıtılacak simgeler bulunur. Otomatik olarak yansıtılabilecek (ve yansıtılması gereken) simgelerin listesi için Material simgeleri listesine bakın.
API Değişiklikleri
- Sağdan sola düzenlerde oluşturulurken otomatik olarak yansıtılan simgeler için destek eklendi. material-icons-core ve material-icons-extended modüllerindeki simgeler, simgenin izin vermesi durumunda otomatik yansıtmayı desteklemek için artık ek simge setleri sunuyor. Yeni kümelerin önüne
Icons.AutoMirrored.Filled...
vb. eklenir ve bu kümelerde, sağdan sola düzenlerde otomatik olarak yansıtılacak simgeler bulunur. Otomatik olarak yansıtılabilecek (ve yansıtılması gereken) simgelerin listesi için Material simgeleri listesine bakın. Bu simgeler için daha önce sağlanan simge özellikleri artık kullanımdan kaldırılmış olarak işaretlenir ve taşıma işlemine yardımcı olmak için bir değiştirme bloğu önerisi sunulur. Sağdan sola dillerde yansıtma simgeleri için özel bir işlem yapmıyorsanız yeni simge grubuna geçmenizi öneririz. Örneğin,Icons.Filled.ArrowBack
,Icons.AutoMirrored.Filled.ArrowBack
olarak yeniden düzenlenmelidir. (I4b511)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.material:material-*:1.6.0-alpha04
iptal edilir. 1.6.0-alpha04 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
Subcomposition
(ör.BottomSheetScaffold
) kullanan bazı bileşenlerinLookaheadScope
içindeki bir Scaffold'da boyutlarını çok erken okumaya çalışmasına neden olan sorun düzeltildi. (If2c5d)DropdownMenu
'nınoffset
hesaplaması düzeltildi. Böylece x uzaklıkları yalnızca yerel düzen yönüne bağlı olacak ve menü ekranın alt kısmına yakın olduğunda y uzaklıkları artık tersine çevrilmeyecek. (Iccc74, b/294103942)BottomSheetScaffold
'nın düzenleme iç kısımları optimize edildi veLookaheadLayout
içindekiBottomSheetScaffold
ile ilgili olası bir sorun düzeltildi. (Ic0afa)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.material:material-*:1.6.0-alpha03
iptal edilir. 1.6.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Material2 bileşenleri artık Android'de uçtan uca işlevselliği desteklemek için
windowInsets
iletmek üzere ayrı bir API'ye sahip. Material3 bileşenlerinin aksine, Material2 bileşenleri varsayılan olarak iç kısımları desteklemez ve değerin manuel olarak iletilmesi gerekir. Yardım için ilgili örneklere bakın. (I655e8)
Sürüm 1.6.0-alpha02
26 Temmuz 2023
androidx.compose.material:material-*:1.6.0-alpha02
iptal edilir. 1.6.0-alpha02 sürümünde şu commit'ler yer alıyor.
API Değişiklikleri
- Yoğunluk bağımlılığını bileşen düzeyine taşıyoruz. Bu, aşağıdaki bileşenler için geçerlidir:
SwipeToDismiss
ve E-tablo tabanlı bileşenler. Lütfen yoğunluğun parametre olduğu durumlarda sağlanan yeni aşırı yüklemeyi kullanın. (I1846e) - Birleştirilebilir işlevlere izin verilen girişleri belirtmek için ek açıklamalar (I51109)
- Uyumluluk bastırmayı açıklama eklemek için API dosyaları güncellendi (I8e87a, b/287516207)
FabPosition
için yeni Başlangıç hizalama seçeneği eklendi (Ib7aea, b/170592777)- Material 2'deki
TextFieldColorsWithIcons
yerineTextFieldColors
kullanıma sunuldu.leadingIconColor
veyatrailingIconColor
'yi geçersiz kılarken aşırı yüklemeyi deinteractionSource
ile geçersiz kılın. (Id57ed, b/199377790)
Sürüm 1.6.0-alpha01
21 Haziran 2023
androidx.compose.material:material-*:1.6.0-alpha01
iptal edilir. 1.6.0-alpha01 sürümü şu commit'leri içerir.
Davranış Değişiklikleri
includeFontPadding
, Material 2 tipografisinde varsayılan olarakfalse
olarak ayarlanmıştır. Varsayılan satır yüksekliği stili deTrim.None
veAlignment.Center
olarak değiştirildi.Typography
öğesininTextStyle
öğelerine açıklineHeight
(sp cinsinden) eklendi. Bu değerleri özelleştirmek istiyorsanız API belgelerine bakın. Bu değişikliklerin ayrıntılı açıklaması için blog yayınını inceleyin. (Icabc3, I3f801, I04c03)
API Değişiklikleri
- Material'ın
Swipeable
API'lerinin desteği sonlandırıldı. Lütfen hem basit hem de karmaşık kullanım alanları için optimize edilmiş Foundation'ınAnchoredDraggable
API'lerini inceleyin. (I732e0)
Hata Düzeltmeleri
BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (yerleştirilmiş) bağlantı noktası ile kaydırma yönündeki en yakın bağlantı noktası arasındaki ilerlemeyi gösteren bir ilerleme özelliği sunuyor. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Sürüm 1.5
Sürüm 1.5.4
18 Ekim 2023
androidx.compose.material:material-*:1.5.4
iptal edilir. 1.5.4 sürümü şu commit'leri içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.material:material-*:1.5.3
iptal edilir. Bu sürümde herhangi bir değişiklik yok
Sürüm 1.5.2
27 Eylül 2023
androidx.compose.material:material-*:1.5.2
iptal edilir. 1.5.2 sürümü şu commit'leri içerir.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.material:material-*:1.5.1
, herhangi bir değişiklik yapılmadan yayınlanır. 1.5.1 sürümü şu commit'leri içerir.
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.material:material-*:1.5.0
iptal edilir. 1.5.0 sürümü şu commit'leri içerir.
1.4.0 sürümünden beri yapılan önemli değişiklikler
API Değişiklikleri
BottomSheetScaffold
'daki Swipeable1 API'lerinde değişiklikler yapıldı.BottomSheetState
'nınconfirmStateChange
parametresinin adıconfirmValueChange
olarak değiştirildi.progress
artık hareketli değer olarak gösteriliyor.animateTo
vesnapTo
dahili bağımlılıklardır. Bunun yerineexpand()
vecollapse()
politikalarını kullanın.direction
veoverflow
kaldırıldı.offset
,requireOffset()
ile değiştirildi. I323b4- Çekmecedeki
snapTo
işlevini deneysel olmayan API olarak işaretleyin. (Ib9c18, b/261425368) - Dairesel ilerleme durumu göstergeleri için parça rengi parametresi, hem dairesel hem de doğrusal ilerleme durumu göstergeleri için ise fırça ucu parametresi eklendi. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
verememberModalBottomSheetState
'ninconfirmStateChange
adlı şarkı listesinin adıconfirmValueChange
olarak değiştirildi. (Ib48d1)Modifier.minimumInteractiveComponentSize
ekleyin. Öğe daha küçük ölçülürse dokunma etkileşimlerini netleştirmek için en az 48 dp boyutunda alan ayırmak üzere kullanılabilir. (I33f58, b/258495559)ModalBottomSheetLayout
'daki Swipeable API'lerde değişiklikler yapıldı.ModalBottomSheetState
.animateTo artıkanimationSpec
parametresini almıyor ve gösterilen uzaklık artık null olabilir. Telafi gerektirmek içinrequireOffset
öğesini kullanın. (Ia2e79)@JvmDefaultWithCompatibility
ek açıklamasının eklenmesi (I8f206)ModalDrawer. DrawerState
'daki kaydırılabilir API'lerde yapılan değişiklikler dahil edildi.animateTo
, açma ve kapatma yöntemleriyle değiştirildi ve artık ofset değeri boş olabilir. Telafi gerektirmek içinrequireOffset
öğesini kullanın. (I3de9e)- Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda basma işlemlerini doğru şekilde geciktirmek için çekmeceler ve sayfalar güncellendi.
- Materyal ve Material3 Text,
minLines
veTextField
'eOutlinedTextField
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğinin satır sayısı cinsinden ayarlanmasına olanak tanır (I4af1d).
Hata Düzeltmeleri
pullRefresh
öğesinin hızı kullanmamasına ve aşırı kaydırmaya neden olan sorun düzeltildi. Ayrıca, tüketilen hız için Float döndürmek üzereModifier.pullRefresh
içindekionRelease
lambda'nın API imzası da değiştirildi (I7db65, b/266874741).BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (yerleştirilmiş) bağlantı noktası ile kaydırma yönündeki en yakın bağlantı noktası arasındaki ilerlemeyi gösteren bir ilerleme özelliği sunuyor. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- İşlemler, iletişim kutusunun genişliğine sığmak için üst üste geldiğinde
AlertDialog
kapatma işleminin onay işleminin altında görünmesi sorunu düzeltildi. Bu düzeltme, uygulamayı Materyal Tasarım spesifikasyonuyla uyumlu hale getirir. (I029de, b/235454277) gesturesEnabled
"false" olarak ayarlandığındaBottomSheetScaffold
artık iç içe kaydırmaya katılmayacak. (I634f3, b/215403277)- Yuvalar için boş içerik sağlandığında
BottomSheetScaffold
öğesinin kilitlenmesine neden olan hata düzeltildi. (Ib24a5, b/235588730) - Tıklamaların/işaretçi etkinliklerinin engellenmesi
PullRefreshIndicator
düzeltildi. (2494256, b/271777421) - Yön değişikliği sırasında
ModalBottomSheetLayout
uygulamasının kilitlenmesine neden olan sorun düzeltildi. Sayfa içeriğindeki düzen animasyonları (ör.Modifier.animateContentSize
) artık sorunsuz bir şekilde çalışıyor. (I2f981, b/266780234)
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.material:material-*:1.5.0-rc01
iptal edilir. 1.5.0-rc01 sürümü şu commit'leri içerir.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.material:material-*:1.5.0-beta03
iptal edilir. 1.5.0-beta03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (yerleştirilmiş) bağlantı noktası ile kaydırma yönündeki en yakın bağlantı noktası arasındaki ilerlemeyi gösteren bir ilerleme özelliği sunuyor. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Sürüm 1.5.0-beta02
7 Haziran 2023
androidx.compose.material:material-*:1.5.0-beta02
iptal edilir. 1.5.0-beta02 sürümü şu commit'leri içerir.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.material:material-*:1.5.0-beta01
iptal edilir. 1.5.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
DrawerState
veBottomDrawerState
değerlerinin artık boş olmaması gerekiyor. Bunun yerine, ofsetin olmadığını belirtmek içinFloat.NaN
değerini döndürürler. (Ie9855)- Gösterilen menü öğelerinin dikey kaydırma durumunu kontrol etmek için
DropdownMenu
veyaExposedDropdownMenu
oluştururkenScrollState
iletme seçeneği eklendi. (Idb009, b/185304441) - Kullanıcının bu özelliği daha fazla öne çıkan alt sayfa için yapılandırabilmesi amacıyla
ModalBottomSheetLayout
hareketini etkinleştirme/devre dışı bırakma desteği eklendi (I40af0). - Metin renginin verimli bir şekilde animasyonlandırılmasına veya ayarlanmasına olanak tanımak için
BasicText
öğesine bir renk parametresi eklendi. (Iffd88, b/246961787) - Semantik mülk
isContainer
,isTraversalGroup
olarak yeniden adlandırılıyor (I121f6)
Hata Düzeltmeleri
- İşlemler, iletişim kutusunun genişliğine sığmak için üst üste geldiğinde
AlertDialog
kapatma işleminin onay işleminin altında görünmesi sorunu düzeltildi. Bu düzeltme, uygulamayı Materyal Tasarım spesifikasyonuyla uyumlu hale getirir. (I029de, b/235454277)
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.material:material-*:1.5.0-alpha04
iptal edilir. 1.5.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Yoğunluk bağımlılığını bileşen düzeyine taşıyoruz. Bu durum şu bileşenler için geçerlidir:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. Lütfen yoğunluğun parametre olduğu durumlarda sağlanan yeni aşırı yüklemeyi kullanın. (I8fbd8)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.material:material-*:1.5.0-alpha03
iptal edilir. 1.5.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
BottomDrawer
iç kısımlarını yeniSwipeableV2
API'lerini kullanacak şekilde güncelleyin. Bu nedenleBottomDrawerState
artık yalnızca sınıf düzeyinde tanımlanan API'lere sahip olacak veSwipeableState
'den yöntem/özellik devralmayacak. Dahili birSwipeableV2State
ile kompozisyon kullanıyoruz. Kaydırma artık boş değer atanabilir bir kayan nokta özelliğidir. Geçerli değere ve kaydırma hedef değerine currentValue ve targetValue özellikleri üzerinden erişilebilir. Açma/genişletme/kapatma gibi önceki sınıf düzeyi yöntemler veisOpen/isClosed
gibi özellikler desteklenmeye devam eder. (Iad40c, b/178529942, b/220676296)
Hata Düzeltmeleri
- Anahtar bileşeninin iç kısımları güncellendi. Anahtar, sürüklenirken artık en yakın durumu (hedef durum) önizleyecek. (Id90d4)
BottomSheetScaffold
içindeki animasyonlu sayfa içeriği (ör. sayfa içeriğindeModifier.animateContentSize
) optimize edildi ve artık sorunsuz çalışıyor. (Ia913c, b/270518202, b/254446195)gesturesEnabled
,false
olarak ayarlandığındaBottomSheetScaffold
artık iç içe kaydırmaya katılmaz. (I634f3, b/215403277)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.material:material-*:1.5.0-alpha02
iptal edilir. 1.5.0-alpha02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Yuvalar için boş içerik sağlandığında
BottomSheetScaffold
öğesinin kilitlenmesine neden olan hata düzeltildi. (Ib24a5, b/235588730) - Tıklamaları / işaretçi etkinliklerini engelleyen
PullRefreshIndicator
düzeltildi (2494256, b/271777421)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.material:material-*:1.5.0-alpha01
iptal edilir. 1.5.0-alpha01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Chipgroup yeniden akış örneği ekleyin. Tek satırlık ChipGroup örneğindeki alt çip arasındaki yatay dolguyu spesifikasyona uyacak şekilde güncelleyin. (I3b155)
- Yön değişikliği sırasında
ModalBottomSheetLayout
uygulamasının kilitlenmesine neden olan sorun düzeltildi. Sayfa içeriğindeki düzen animasyonları (ör.Modifier.animateContentSize
) artık sorunsuz bir şekilde çalışıyor. (I2f981, b/266780234)
Sürüm 1.4
Sürüm 1.4.3
3 Mayıs 2023
androidx.compose.material:material-*:1.4.3
, değişiklik yapılmadan (yalnızca sürüm yükseltme) yayınlanır.
Sürüm 1.4.2
19 Nisan 2023
androidx.compose.material:material-*:1.4.2
iptal edilir. 1.4.2 sürümü şu commit'leri içerir.
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.material:material-*:1.4.1
iptal edilir. 1.4.1 sürümü şu commit'leri içerir.
Sürüm 1.4.0
22 Mart 2023
androidx.compose.material:material-*:1.4.0
iptal edilir. 1.4.0 sürümü şu commit'leri içerir.
1.3.0 sürümünden beri yapılan önemli değişiklikler
API Değişiklikleri
Modifier.minimumInteractiveComponentSize
ekleyin. Öğe daha küçük ölçülürse dokunma etkileşimlerini netleştirmek için en az 48 dp boyutunda alan ayırmak üzere kullanılabilir. (I33f58, b/258495559)ModalDrawer
'daki Swipeable API'lerde değişiklikler yapıldı.DrawerState
adlı kullanıcınınanimateTo
yöntemi, açma ve kapatma yöntemleriyle değiştirildi. Ofset artık boş değer atanabilir. Telafi gerektirmek içinrequireOffset
öğesini kullanın. (I3de9e)- Materyal ve Material3 Text,
minLines
veTextField
'eOutlinedTextField
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğinin satır sayısı cinsinden ayarlanmasına olanak tanır (I4af1d). BasicText
veBasicTextField
parametrelerineminLines
parametresi eklendi. Bu composable'ların minimum yüksekliğini satır sayısı cinsinden ayarlamaya olanak tanır (I24294, b/122476634).
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.material:material-*:1.4.0-rc01
, herhangi bir değişiklik yapılmadan yayınlanır. 1.4.0-rc01 sürümü şu commit'leri içerir.
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.material:material-*:1.4.0-beta02
iptal edilir. 1.4.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
BottomSheetScaffold
'daki Swipeable API'lerde değişiklikler yapıldı.BottomSheetState
'nınconfirmStateChange
parametresinin adıconfirmValueChange
olarak değiştirildi.progress
artık hareketli değer olarak gösteriliyor.animateTo
vesnapTo
dahili bağımlılıklardır. Bunun yerineexpand()
vecollapse()
politikalarını kullanın.direction
veoverflow
kaldırıldı.offset
,requireOffset()
ile değiştirildi. (I323b4)
Hata Düzeltmeleri
- Tıklanabilir ve seçilebilir yüzeylerden semantik roller kaldırıldı, bunları kullanan bileşenler modifier.semantics kullanarak rolleri ayarlayacak şekilde güncellendi (Ibb4ba).
- Dolu
desktop_mac
,directions
vekitchen
simgelerinde ince ayarlar yapan, genişletilmiş Material Icons'da küçük bir güncelleme yapıldı. (I65f5e)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.material:material-*:1.4.0-beta01
iptal edilir. 1.4.0-beta01 sürümü şu commit'leri içerir.
API Değişiklikleri
pullRefresh
öğesinin hızı kullanmamasına ve aşırı kaydırmaya neden olan sorun düzeltildi. Ayrıca, tüketilen hız için Float döndürmek üzereModifier.pullRefresh
içindekionRelease
lambda'nın API imzası da değiştirildi (I7db65, b/266874741).- Geri yüklenen özellik alıcı
LocalMinimuTouchTargetEnforcement
, desteği sonlandırılmış olarak işaretlenir veLocalMinimumInteractiveComponentEnforcement
adresine yönlendirilir. (I60dd5)
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.material:material-*:1.4.0-alpha05
iptal edilir. 1.4.0-alpha05 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
ModalBottomSheetLayout's HalfExpanded
durumunun yanlış hesaplanmasına ve e-tablonun kayıyormuş gibi görünmesine neden olan sorun düzeltildi. (I8c615, b/265610459)ModalBottomSheetLayout
'da, bazı durumlarda gizli durumdan görünür duruma geçildiğinde sayfanın kilitlenmesine neden olan hata düzeltildi. (Ia9265, b/265444789)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.material:material-*:1.4.0-alpha04
iptal edilir. 1.4.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Yüzeylerde
IsContainer
semantik özelliği eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre geçiş sırasını belirleyen sonraki bir değişiklikte kullanılacaktır. (I63379) - Çekmecedeki
snapTo
işlevini deneysel olmayan API olarak işaretleyin. (Ib9c18, b/261425368) - Dairesel ilerleme durumu göstergeleri için parça rengi parametresi, hem dairesel hem de doğrusal ilerleme durumu göstergeleri için ise fırça ucu parametresi eklendi. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
verememberModalBottomSheetState
'ninconfirmStateChange
adlı şarkı listesinin adıconfirmValueChange
olarak değiştirildi. (Ib48d1)- Kullanımdan kaldırılan ve gizlenen işlevlerin daha fazla dönüş türü null olabilir (Ibf7b0)
Modifier.minimumInteractiveComponentSize
ekleyin. Öğe daha küçük ölçülürse dokunma etkileşimlerini netleştirmek için en az 48 dp boyutunda alan ayırmak üzere kullanılabilir. (I33f58, b/258495559)ModalBottomSheetLayout
'daki Swipeable API'lerde değişiklikler yapıldı.ModalBottomSheetState
işlevininanimateTo
parametresi artıkanimationSpec
parametresini almıyor veoffset
artık boş değer atanabilir.offset
'nin zorunlu olmasını sağlamak içinrequireOffset
kullanın. (Ia2e79)
Hata Düzeltmeleri
- Bir
ModalBottomSheetLayout
sayfasının maksimum genişliği artık 640 dp. (I71a4f, b/234927577) rememberPullRefreshState
'nın zaman içinderefreshThreshold
verefreshingOffset
'yi güncellememesi sorunu düzeltildi. (Ifed10, b/263159832)- İlerleme durumu göstergelerindeki ilerleme durumu artık beklenen aralıkla düzgün şekilde sınırlanıyor. (I8a7eb, b/262262727)
ModalBottomSheetState
henüz herhangi bir bağlantı almadığında, bir istisna oluşturmak yerinesnapTo
veyaanimateTo
çağrıldığındacurrentValue
öğesini animasyon olmadan günceller. (I2c91b)- Material 2
FilterChip
uygulamasında etkin durum düzeltildi. (Id326a, b/261329817) - Dikeyden yataya döndürülürken
ModalBottomSheetLayout
'nınHalfExpanded
olması durumunda kilitlenmesine neden olan hata düzeltildi. Lütfen yapılandırmayı kontrol ederek doğruinitialValue
değerini ilettiğinizden emin olun. (Ie8df7, b/182882364) - E-tablo içeriği boşsa
ModalBottomSheetLayout
uygulamasının kilitlenmesine neden olan sorun düzeltildi.ModalBottomSheetLayout
artık boş sayfa içeriğine izin veriyor. Sayfa içeriği boşsa yalnızca Gizli durumu olur. (Ic2288, b/200980998, b/216693030)
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. Sorun burada ilk olarak bildirildi. Düzeltme gönderildi ve bir sonraki Oluşturma güncellemesinde kullanıma sunulacak. Geçici çözüm olarakandroidx.compose.material
veandroidx.compose.material3
kitaplıklarınızı en son sürüme(1.1.0-alpha04) güncelleyin veyaandroidx.compose.foundation
sürümünüzü 1.4.0-alpha03'e düşürün.
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.material:material-*:1.4.0-alpha03
iptal edilir. 1.4.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
@JvmDefaultWithCompatibility
ek açıklamasının eklenmesi (I8f206)Swipeable
API'lerindeModalDrawer
değişiklikler yapıldı.DrawerState
'nınanimateTo
,open
veclose
yöntemleriyle değiştirildi ve artık ofset değeri boş olabilir. Telafi gerektirmek içinrequireOffset
öğesini kullanın. (I3de9e)- Üst öğelerin kaydırma bilgilerini sorgulamak için bir Modifier API eklendi. (I2ba9d, b/203141462)
- Hareketler kaydırma etkinliğine dönüşebildiğinde, basma etkileşimlerini doğru şekilde geciktirmek için
Clickable
içinde kullanılır. Clickables
öğesinin,Scrollable ViewGroup
içinde kullanıldığında dalgalanmaları doğru şekilde geciktirmemesi sorunu düzeltildi.- Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda basma işlemlerini doğru şekilde geciktirmek için çekmeceler ve sayfalar güncellendi.
Hata Düzeltmeleri
- Yenileme durumu doğru olarak değiştirilmediyse
onRefresh
çağrıldıktan sonraPullRefreshIndicator
'nın takılmasına neden olan sorun düzeltildi. (Ie2416, b/248274004)
Bağımlılık Güncellemeleri
- Compose UI ve Compose Material artık Lifecycle 2.5.1'e bağlı. (I05ab0, b/258038814)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.material:material-*:1.4.0-alpha02
iptal edilir. 1.4.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
awaitFirstDown
vewaitForUpOrCancellation
artık daha fazla esneklik içinPointerEventPass
kabul ediyor. (I7579a, b/212091796)- Materyal ve Material3 Text,
minLines
veTextField
'eOutlinedTextField
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğinin satır sayısı cinsinden ayarlanmasına olanak tanır (I4af1d). BasicTex
veBasicTextField
parametrelerineminLines
parametresi eklendi. Bu composable'ların minimum yüksekliğini satır sayısı cinsinden ayarlamaya olanak tanır (I24294, b/122476634).
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.material:material-*:1.4.0-alpha01
iptal edilir. 1.4.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Hareket algılayıcılar için yeni bir yöntem (
awaitEachGesture()
) eklendi.forEachGesture()
ile benzer şekilde çalışır ancak hareketler üzerindeki döngü tamamenAwaitPointerEventScope
içinde gerçekleştiğinden yinelemeler arasında etkinlik kaybı yaşanmaz. forEachGesture()
, hareketler arasında etkinliklerin kaybolmasına izin verdiği içinawaitEachGesture()
lehine kullanımdan kaldırıldı. (Iffc3f, b/251260206)
Sürüm 1.3
Sürüm 1.3.1
9 Kasım 2022
androidx.compose.material:material-*:1.3.1
iptal edilir. 1.3.1 sürümü şu commit'leri içerir.
Sürüm 1.3.0
24 Ekim 2022
androidx.compose.material:material-*:1.3.0
iptal edilir. 1.3.0 sürümü şu commit'leri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
Davranış değişikliği
- İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
API Değişiklikleri
- Compose'a yenilemek için çekme bileşeni ekleyin (I29168).
- RangeSlider'da (I3b79a) parametre adını değerlerden değere değiştirin.
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.material:material-*:1.3.0-rc01
iptal edilir. 1.3.0-rc01 sürümü şu commit'leri içerir.
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.material:material-*:1.3.0-beta03
iptal edilir. 1.3.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
- Compose'a yenilemek için çekme bileşeni ekleme (I29168)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.material:material-*:1.3.0-beta02
iptal edilir. 1.3.0-beta02 sürümü şu commit'leri içerir.
1.3.0-beta01 sürümünden beri değişiklik yok
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.material:material-*:1.3.0-beta01
iptal edilir. 1.3.0-beta01 sürümü şu commit'leri içerir.
Davranış değişikliği
İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
Compose iletişim kutuları ve pop-up'lar için desteklenen maksimum yükseklik 30 dp'den 8 dp'ye düşürüldü. Bu değişiklik hem materyal hem de kullanıcı arayüzü özel iletişim kutularını ve pop-up'ları etkiler. Bu değişiklik, S sürümünden önceki Android sürümlerinde erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu veya pop-up içindeki içerikle etkileşime geçebilmesini sağlamak için yapılmıştır.
Bu değişiklikten yalnızca, yüksekliği 8 dp'den daha yüksek seviyelere ayarlanmış özel bir iletişim kutusu veya pop-up uygulaması oluşturuyorsanız etkilenirsiniz. İletişim kutunuzun veya pop-up'ınızın yüksekliğini azaltmayı deneyin. Bu yeni davranışı devre dışı bırakmanız gerekiyorsa istediğiniz yükseltme ayarlanmış kendi iletişim kutunuzu veya pop-up'ınızı oluşturmayı düşünebilirsiniz. Erişilebilirlik olumsuz etkilenebileceğinden ve iletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından okunabilir ve etkileşim kurulabilir olmasını sağlamak geliştiricinin sorumluluğunda olduğundan bu işlem önerilmez.
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.material:material-*:1.3.0-alpha03
iptal edilir. 1.3.0-alpha03 sürümü şu commit'leri içerir.
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.material:material-*:1.3.0-alpha02
iptal edilir. 1.3.0-alpha02 sürümü şu commit'leri içerir.
Harici Katkı (External Contribution)
- Scaffold'da
FloatingActionButton
ile ilgiliAnimatedVisibility
sorununu düzeltme (I3a0ae, b/224005027)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.material:material-*:1.3.0-alpha01
iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
RangeSlider
içinde parametre adını değerlerden değere değiştirme (I3b79a)
Hata Düzeltmeleri
- Rozet örneğini, daha anlamlı bir içerik açıklaması sağlayacak şekilde güncelleyin. (I10b9d)
Sürüm 1.2
Sürüm 1.2.1
10 Ağustos 2022
androidx.compose.material:material-*:1.2.1
iptal edilir. 1.2.1 sürümü şu commit'leri içerir.
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.material:material-*:1.2.0
iptal edilir. 1.2.0 sürümü şu commit'leri içerir.
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc03
iptal edilir. 1.2.0-rc03 sürümü şu commit'leri içerir.
- 1.2.0-rc02 sürümünden bu yana değişiklik yapılmadı.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc02
iptal edilir. 1.2.0-rc02 sürümü şu commit'leri içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc01
iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
- Compose kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri kullanılarak oluşturuluyor (I5bcf1).
Hata Düzeltmeleri
- Rozeti simge yerine etikete yapıştırmak için rozeti, önde gelen simge sekmesiyle günceller. (I90993)
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.material:material-*:1.2.0-beta03
iptal edilir. 1.2.0-beta03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
BottomSheetScaffold
simgesinin üst uygulama çubuğunun gölgesinin üzerine çizilmesine neden olan hata düzeltildi.BottomSheetScaffold
artık Snackbar'ları yerleştirirken sayfanın durumunu da dikkate alıyor: Daraltılmış durumda Snackbar'lar sayfanın ve FAB'ın üstüne yerleştiriliyor. Genişletilmiş durumda ise Snackbar'lar sayfanın altına sabitleniyor. (Ia80b5, b/187771422)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.material:material-*:1.2.0-beta02
iptal edilir. 1.2.0-beta02 sürümü şu commit'leri içerir.
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.material:material-*:1.2.0-beta01
iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Bu, 1.2 sürümünün ilk beta sürümüdür.
API Değişiklikleri
TextFieldDefaults.BorderStroke
adlı,OutlinedTextField
içinde kenarlık konturu çizen composable işleviTextFieldDefaults.BorderBox
olarak yeniden adlandırıldı. (I5f295)
Sürüm 1.2.0-alpha08
20 Nisan 2022
androidx.compose.material:material-*:1.2.0-alpha08
iptal edilir. 1.2.0-alpha08 sürümü şu commit'leri içerir.
API Değişiklikleri
- Kısmi tüketim (aşağı veya konum)
PointerInputChange
sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()
öğesini kullanabilirsiniz. Başka bir kullanıcının değişikliği daha önce kullanıp kullanmadığını belirlemek içinisConsumed
simgesini kullanabilirsiniz. PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturur. Bu,PointerInputChange
kopyalarından biri kullanıldığında diğer kopyaların da kullanılacağı anlamına gelir. Sınırsız birPointerInputChange
oluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.material:material-*:1.2.0-alpha07
iptal edilir. 1.2.0-alpha07 sürümü şu commit'leri içerir.
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.material:material-*:1.2.0-alpha06
iptal edilir. 1.2.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Surface API'deki değişiklikleri takip etmek için tıklanabilir Card API'de güncellemeler yapıldı (I56bcb).
- Seçilebilir ve açılıp kapatılabilir yüzeyler için ek aşırı yüklenmiş işlevler ekleyen Material 2 Surface API'de güncellemeler. (Ifcca5)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.material:material-*:1.2.0-alpha05
iptal edilir. 1.2.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
LazyVerticalGrid
veLazyHorizontalGrid
artık kararlı. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
ve ilgili tüm API'ler .grid alt paketine taşındı. Lütfen androidx.compose.foundation.lazy.grid'e aktarımlarınızı androidx.compose.foundation.lazy'den güncelleyin. (I2d446, b/219942574)- Yalnızca bir Görünüm'e güvenmeye yönelik önceki değişiklik geri alındı ve bazı pencere işaretlerini yönetmek için gerekli olan bir Pencere tekrar zorunlu kılındı.
WindowInsetsControllerCompat
Doğru pencerenin kullanıldığından emin olmak için (ör. Görünüm bir iletişim kutusundaysa)ViewCompat.getWindowInsetsController
yerineWindowCompat.getInsetsController
kullanımdan kaldırıldı. (I660ae, b/219572936) - Metin:
includeFontPadding
özelliği artık varsayılan olarak devre dışıdır.includeFontPadding=false
nedeniyle oluşan kırpma sorunları giderildi. Uzun komut dosyalarında kırpma olmamalıdır. (I31c84, b/171394808) - Çapraz eksen boyutlarını tanımlamak için yeni bir
LazyVerticalGrid
API eklendi (I17723).
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.material:material-*:1.2.0-alpha04
iptal edilir. 1.2.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
Add support for filter chips
(I39a6e, b/192585545)TextFieldDecorationBox
veOutlinedTextFieldDecorationBox
eklendi. Bu bileşenleriBasicTextField
ile birlikte kullanmak, Material Design metin alanlarına dayalı ancak daha fazla özelleştirme seçeneği sunan özel metin alanları oluşturmanıza yardımcı olur.- Metin alanlarındaki yatay ve dikey dolguları ayarlama yöntemi eklendi. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
işlevleri eklendi. Bu işlevler, bir composable işlevin, kullanılması için tasarlanmadığı bir uygulayıcıyı hedefleyerek çağrıldığı zaman derleme zamanı raporlamasına olanak tanır.Çoğu durumda, ek açıklamalar derleme derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaların doğrudan kullanılması nadir olmalıdır. Çıkarılamayan durumlar arasında özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (ör. arayüz yöntemleri), birleştirilebilir lambda'lar olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler çıkarılır) ya da
ComposeNode
veya ilgili birleştirilebilir işlevlerin kullanılması yer alır.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
çağıran composable işlevlerin, işlev ve composable lambda parametre türleri içinCompoableTarget
ek açıklaması eklemesi gerekir. Ancak,ComposableTargetMarker
ile açıklama eklenmiş bir açıklama oluşturmanız ve ardından doğrudanComposableTarget
yerine işaretlenmiş açıklamanın kullanılması önerilir.ComposableTargetMarker
ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özelliğin sınıfının tam nitelikli adını içeren birComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımına ilişkin bir örnek içinanroidx.compose.ui.UiComposable
bölümüne bakın. (I38f11)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.material:material-*:1.2.0-alpha03
iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Addes çip grubu örneği (I97080, b/192585545)
Sürüm 1.2.0-alpha02
26 Ocak 2022
androidx.compose.material:material-*:1.2.0-alpha02
iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Karmaşık mantık içermeyen mevcut yöntemlerin aşırı yüklenmesi olan yöntemlere
NonRestartableComposable
eklendi. Bu, çağrılan iç işlevde tekrarlanan tüm parametreler için derleyici tarafından oluşturulan memoization kontrollerini (eşittir) azaltır. (I90490) - İşlem çipi desteği eklendi (I07100, b/192585545)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.material:material-*:1.2.0-alpha01
iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
'e bağlıdır.
Harici Katkı (External Contribution)
ModalBottomSheetState
artıkisSkipHalfExpanded
işaretine sahip. Oluşturucu aracılığıyla ayarlanabilir veya daha sonraModalBottomSheetState
öğesininisSkipHalfExpanded
özelliğitrue
olarak ayarlanarak güncellenebilir.isSkipHalfExpanded
değerinin güncellenmesi, sayfanın yeniden oluşturulmasına neden olur. (I18b86, b/186669820)
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.material:material-*:1.1.1
iptal edilir. 1.1.1 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
konumundaNullPointerException
düzeltildi (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında panodaki içerikten kaynaklanan kilitlenme sorunu düzeltildi. (I06020, b/197769306)
LazyVerticalGrid
'da sağdan sola dil desteği düzeltildi (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.material:material-*:1.1.0
iptal edilir. 1.1.0 sürümü şu commit'leri içerir.
1.0.0 sürümünden beri yapılan önemli değişiklikler
- Android 12'deki Aşırı kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
- Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerine uymak üzere düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişletilir. Bu, Compose Material'ı Material Design Components'ın davranışıyla aynı hale getirir. Böylece, Views ve Compose'u birlikte kullandığınızda tutarlı davranışlar elde edersiniz. Bu değişiklik, Compose Material bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
- Gezinme sütunu için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçirir.
- Kotlin'in yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.material:material-*:1.1.0-rc03
iptal edilir. 1.1.0-rc03 sürümü şu commit'leri içerir.
Davranış Değişiklikleri (Behaviour Changes)
Compose 1.0 ile ilgili olarak, Material bileşenlerinin, Material erişilebilirlik kuralları dokunma hedefi boyutunu karşılamak için düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişletilir. Bu, Compose Material'ı Material Design Components'ın davranışıyla aynı hale getirir. Böylece, Views ve Compose'u birlikte kullandığınızda tutarlı davranışlar elde edersiniz. Bu değişiklik, Compose Material bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
Hata Düzeltmeleri
- Minimum dokunma hedefi değiştiricileri incelenirken düzen inceleyici için daha iyi hata ayıklama bilgileri eklendi. (aosp/1955036)
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.material:material-*:1.1.0-rc01
iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
Checkbox
es için uygulanan köşe yarıçapını düzeltin (I38b03, b/175198975, b/202309440)
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.material:material-*:1.1.0-beta04
iptal edilir. Version 1.1.0-beta04 contains these commits.
Yeni Özellikler
- Kotlin ile uyumlu olacak şekilde güncellendi
1.6.0
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.material:material-*:1.1.0-beta03
iptal edilir. Version 1.1.0-beta03 contains these commits.
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.material:material-*:1.1.0-beta02
iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Dalgalanmalar ve diğer göstergeler artık her zaman aşağı yönlü bir etkinlik için gecikmek yerine yalnızca Modifier.scrollable() kapsayıcısının içindeyse gecikecek. (Ibefe0, b/203141462)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.material:material-*:1.1.0-beta01
iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Dalgalar artık fareyle üzerine gelme ve odaklanma durumlarını destekliyor. Bu nedenle, düğme gibi bir bileşenin üzerine gelindiğinde veya odaklanıldığında doğru durum yer paylaşımı gösterilecek.
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.material:material-*:1.1.0-alpha06
iptal edilir. 1.1.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Daha iyi verimlilikle (Ib0d9a) Layout için çocuksuz bir aşırı yükleme eklendi.
ExposedDropdownMenu
,ExposedDropdownMenuBox
temel alınarakTextField
veDropdownMenu
ile birlikte uygulanıyor (If60b2)dismissOnOutsideClick
,PopupProperties
adlı CSS'ye eklendi ve desteği sonlandırılandismissOnClickOutside
ile değiştirildi. Yeni mülk, tıklama konumunu ve sabitleme sınırlarını alır. Bu sayede, onDismissRequest'in çağrılıp çağrılmaması konusunda daha ayrıntılı kontrol sağlanır. Örneğin, bu, dokunulduğunda bağlantının kapatılmasını önlemek için yararlı olabilir.updateAndroidWindowManagerFlags
,PopupProperties
'ye eklendi. Bu sayede, pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde düşük düzeyde kontrol sağlanır. Lambda'nın parametresi, PopupProperties değerlerinden hesaplanan ve WindowManager işaretleriyle sonuçlanan işaretler olacaktır (ör. odaklanılabilir). Lambda'nın sonucu, Android WindowManager'a iletilecek nihai işaretler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmeden bırakır. Bu API dikkatli bir şekilde ve yalnızca pop-up'ın çok özel davranış koşullarının olduğu durumlarda kullanılmalıdır. (I6e9f9)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.material:material-*:1.1.0-alpha05
iptal edilir. Version 1.1.0-alpha05 contains these commits.
API Değişiklikleri
- Erişilebilir dokunma hedefi olmayan Material bileşenleri için minimum dokunma hedefi boyutu eklenir. Bu, bileşenlerin etrafına yeterince büyük bir dokunma hedefi olmasını sağlamak için ek boşluk eklediğinden, bu bileşenlerin boyutunun görsel boyutu olduğunu varsayan ve dokunma hedefi boyutunu hesaba katmayan mevcut kullanıcı arayüzlerini değiştirebilir. Bu davranışı bir hiyerarşide devre dışı bırakmak için deneysel
LocalMinimumTouchTargetEnforcement
composition local'i kullanabilirsiniz. Ancak bu, yalnızca mevcut kullanıcı arayüzlerini yeni minimum boyutu hesaba katacak şekilde güncellerken geçici bir çözüm olarak kullanılmalıdır. (I9b966, b/149691127, b/171509422) - TextFieldColorsWithIcons deneysel arayüzü eklendi. Bu arayüz, TextFieldColors'ı genişleterek leadingColor ve trailingColor için InteractionSource sağlar. Bu, TextField'ın görünümünün odak durumuna göre değiştirilmesini sağlar. (I66923, b/198402662)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.material:material-*:1.1.0-alpha04
iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
performGesture
veGestureScope
kullanımdan kaldırıldı. YerineperformTouchInput
veTouchInjectionScope
getirildi. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için
touchBoundsInRoot
ileSemanticsNode
arasına minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214)
Hata Düzeltmeleri
- Minimum dokunma hedefi amacıyla, dokunma hedefi sınırlarının klip bölgesinin ötesine genişletilmesine izin verin. (I43e10, b/171509422)
- Ekran yoğunluğundan bağımsız olarak tek piksellik ayırıcıların çizilmesini desteklemek için kalınlık parametresinde
Dp.Hairline
değerine uymak üzereDivider
composable'ı güncelledik. (I16ffb, b/196840810)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.material:material-*:1.1.0-alpha03
iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Compose
1.1.0-alpha03
, Kotlin1.5.30
'e bağlı olacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Kırpılmış sınırları almak için test yöntemi eklendi. (I6b28e)
- Erişilebilirliği sağlamak için semantik ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.material:material-*:1.1.0-alpha02
iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.
Harici Katkı (External Contribution)
- Kaydırma uzaklığının bir sabitleme noktasının yuvarlama hatası içinde olduğu durumda SwipeableState'in davranışını düzeltin. (I03d39, b/191993377)
Sürüm 1.1.0-alpha01
4 Ağustos 2021
androidx.compose.material:material-*:1.1.0-alpha01
iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.
API Değişiklikleri
- İsteğe bağlı bir FilterQuality parametresini kullanmak için kaynak ve hedef dikdörtgenleri kullanan güncellenmiş
DrawScope#drawImage
yöntemi. Bu, piksel tabanlı sanat için büyütüldüğünde pikselli olması amaçlanan piksel sanat için kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresini de kullanacak şekilde güncellendi (Ie4fb0, b/180311607) - BadgeBox'ın adı BadgedBox olarak değiştirildi ve parametreler, Badge composable'ı kabul edecek şekilde değiştirildi. BadgedBox için tipik rozet içeriği olan Badge bileşeni eklendi. (I639c6)
- NavigationRail bileşeni eklendi. Kullanım bilgileri için dokümanlara ve örneklere bakın (I8de77).
Hata Düzeltmeleri
- Alt kısımla hizalanmış bir NavigationRail örneği ve Katalog uygulaması demosu eklendi. (I3cffc)
- İletişim kutuları artık platformun boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth'i false olarak ayarlayın. (Iffaed, b/192682388)
- Katalog uygulamasına gezinme çubuğu demosu eklendi. (I04960)
- Katalog uygulamasına rozet demosu eklendi. (If285d)
Sürüm 1.0
Sürüm 1.0.5
3 Kasım 2021
androidx.compose.material:material-*:1.0.5
iptal edilir. 1.0.5 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Türetilmiş durum örneklerinin izlenmesi sırasında yaşanan kilitlenme sorunu düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.material:material-*:1.0.4
iptal edilir. 1.0.4 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
'ya bağlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.material:material-*:1.0.3
iptal edilir. 1.0.3 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
'ya bağlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.material:material-*:1.0.2
iptal edilir. 1.0.2 sürümü şu commit'leri içerir.
Compose 1.0.2
sürümünü destekleyecek şekilde güncellendi. Compose 1.0.2
, Kotlin 1.5.21
ile uyumluluğunu sürdürüyor.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.material:material-*:1.0.1
iptal edilir. 1.0.1 sürümü şu commit'leri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
'ya bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.material:material-*:1.0.0
iptal edilir. 1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümünün temel özellikleri
Bu, Compose'un kararlı ilk sürümüdür. Daha fazla bilgi için lütfen resmi Compose Release bloguna göz atın.
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız aşağıdaki kilitlenme hatasıyla karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Düzeltmek için
build.gradle
dosyanızda minSdkVersion'i geçici olarak 24 veya daha yüksek bir sürüme yükseltin. Bu sorun, Android Studio Bumblebee ve AGP'nin7.1
sonraki sürümünde düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.material:material-*:1.0.0-rc02
iptal edilir. 1.0.0-rc02 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- İletişim kutuları artık platformun boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini yanlış olarak ayarlayın. (Iffaed, b/192682388)
Sürüm 1.0.0-rc01
1 Temmuz 2021
androidx.compose.material:material-*:1.0.0-rc01
iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.
API Değişiklikleri
BadgeBox
bileşeni eklendi. Kullanım bilgileri için dokümanlara ve örneklere bakın (I5e284).PopupProperties
içindekiuseDefaultMaxWidth
,usePlatformDefaultWidth
olarak yeniden adlandırıldı. (I05710)- İletişim kutuları artık ekran genişliğinin tamamını kullanabilir. (I83929, b/190810877)
- Deneysel aralık kaydırma çubuğu uygulaması eklendi (I2f4b3)
Hata Düzeltmeleri
- Geçersiz giriş içeren OutlinedTextField, Material Design spesifikasyonlarına uygun olarak etiket yer tutucu olarak kullanıldığında etiket için hata rengini kullanmayı bıraktı. İkincisi, metin alanında giriş metni olmadığında ve metin alanı odaklanmamış durumdayken geçerlidir. Bu değişiklikle birlikte
TextFieldColors.labelColor()
işlevindekierror:Boolean
parametresinin anlamı da değişti: Etiket yer tutucu olarak kullanılıyorsa giriş geçersiz olsa bile artıkfalse
değerini döndürecek. (I45f78)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.material:material-*:1.0.0-beta09
iptal edilir. 1.0.0-beta09 sürümü şu commit'leri içerir.
API Değişiklikleri
- Kenarlığın şeklini özelleştirebilmek için OutlinedTextField'a Shape parametresi eklendi (I8f39e, b/181322957).
- TextOverflow, satır içi sınıfa dönüştürüldü. (I433af)
Hata Düzeltmeleri
- BottomDrawer, BackdropScaffold ve ModalBottomSheetLayout'taki scrim, Color.Unspecified iletilince kayboluyor (I2d899, b/182063309)
Eklenen profil kuralları
Bu sürüm, aşağıdaki Compose modüllerine profil kuralları ekler (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Profil kuralları nedir?
Bir kitaplığın profil kuralları,
src/main
veya eşdeğer dizinde bulunan bir metin dosyasındabaseline-prof.txt
belirtilir. Dosyada her satırda bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemlerle veya sınıflarla eşleşme için kullanılan bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.Yöntem kuralı aşağıdaki kalıba sahip olur:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Sınıf kuralı ise aşağıdaki kalıba sahip olur:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için kullanılanH
,S
veP
karakterlerinden bir veya daha fazlasıdır.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin,androidx.compose.runtime.SlotTable
sınıfının tanımlayıcısıLandroidx/compose/runtime/SlotTable;
olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve dönüş türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yönteminin imzasıisPlaced()Z
'dir.Bu kalıplar, tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için joker karakterler (
**
,*
ve?
) içerebilir.
Kurallar ne işe yarar?
H
işaretine sahip bir yöntem, bu yöntemin "sık kullanılan" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.S
işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir. Başlangıçta yöntemin derlenmesi ve yorumlanması maliyetini önlemek için önceden derlenmelidir.P
işaretine sahip bir yöntem, başlatma işleminden sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığında önceden ayrılması gerektiğini gösterir.
Nasıl çalışır?
- Kitaplıklar, AAR yapıtlarında paketlenecek bu kuralları tanımlayabilir. Bu yapıtları içeren bir APK oluşturulduğunda bu kurallar birleştirilir ve birleştirilmiş kurallar, APK'ya özel kompakt bir ikili ART profili oluşturmak için kullanılır. ART, APK cihazlara yüklendiğinde bu profilden yararlanarak uygulamanın belirli bir alt kümesini önceden derleyebilir. Böylece uygulamanın performansını, özellikle de ilk çalıştırma performansını artırabilir. Bunun, hata ayıklanabilir uygulamalar üzerinde hiçbir etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.material:material-*:1.0.0-beta08
iptal edilir. 1.0.0-beta08 sürümü şu commit'leri içerir.
Yeni Özellikler
Davranışı Bozan API Değişikliği (Behavior Breaking API Change)
- DAVRANIŞI BOZAN DEĞİŞİKLİK: Kart artık tıklamaları tüketiyor. Bu nedenle,
Card(Modifier.clickable)
aracılığıyla eklenen tıklamalar işlem yapmıyor. Lütfen onClick'i kabul eden yeni deneysel kart aşırı yüklemesini kullanın. (Ia8744, b/183775620)- Tıklamaların yanı sıra diğer tıklanabilir işlevleri (ör. belirtme, interactionSource, etkin/devre dışı) işleyen yeni bir Card overload eklendi. Kart, bu durumlarda dalgalanma göstergesini kırpmayacağından
Modifier.clickable
ile normal, tıklanamayan bir kart kullanılamadı.
- Tıklamaların yanı sıra diğer tıklanabilir işlevleri (ör. belirtme, interactionSource, etkin/devre dışı) işleyen yeni bir Card overload eklendi. Kart, bu durumlarda dalgalanma göstergesini kırpmayacağından
- DAVRANIŞI BOZAN DEĞİŞİKLİK: Surface artık tıklamaları tüketiyor. Bu nedenle,
Surface(Modifier.clickable)
aracılığıyla eklenen tıklamalar işlem yapmıyor. Lütfen onClick'i kabul eden yeni deneysel Surface aşırı yüklemesini kullanın. (I73e6c, b/183775620)- Tıklamaların yanı sıra diğer tıklanabilir işlevleri (gösterge, interactionSource, etkin/devre dışı) işleyen yeni bir Surface aşırı yüklemesi eklendi. Surface, bu durumlarda dalgalanma göstergesini kırpmayacağından
Modifier.clickable
ile normal, tıklanamayan bir Surface kullanılamıyordu.
- Tıklamaların yanı sıra diğer tıklanabilir işlevleri (gösterge, interactionSource, etkin/devre dışı) işleyen yeni bir Surface aşırı yüklemesi eklendi. Surface, bu durumlarda dalgalanma göstergesini kırpmayacağından
API Değişiklikleri
FabPosition
Gelecekteki olası genişlemeyi desteklemek için enum'dan satır içi sınıfa dönüştürüldü (I030fb).- Yeni enum değerleri eklendiğinde kapsamlı when ifadeleriyle ilgili sorunları önlemek için enum kullanımları satır içi sınıflara yeniden düzenlendi. (I2b5eb)
- Kaydırma / sürükleme sırasında dalgalanma gösterilmesini önlemek için tıklanabilir / açılıp kapatılabilir öğelere dokunma zaman aşımı ekler (Ia2704, b/168524931)
- ContentDescription ve Text semantik özellikleri artık tek değer değil, liste olarak kullanılıyor. Bu sayede, birleştirme yerine olduğu gibi birleştirme yapılabilir. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850).
Modifier.focusModifier()
desteği sonlandırıldı veModifier.focusTarget()
(I6c860) ile değiştirildi.FocusState
numaralandırması,FocusState
arayüzüyle (Iccc1a, b/187055290) değiştirildi.- View destekli dalgalanma uygulaması kararlı hale geldiğinden
LocalRippleNativeRendering
kaldırıldı (I7fab3, b/188569367)
Hata Düzeltmeleri
Modifier.onGloballyPositioned()
, tüm değiştiriciler uygulandıktan sonraki düzen koordinatlarını değil, bu değiştiricinin değiştirici zincirindeki koordinatlarını raporlayacak şekilde değiştirildi. Bu nedenle, artık değiştiricilerin sıralaması hangi koordinatların raporlanacağını etkiliyor. (Ieb67d, b/177926591)- Mevcut Compose Material kataloğu için bir README eklendi. (If9191)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.material:material-*:1.0.0-beta07
iptal edilir. 1.0.0-beta07 sürümü şu commit'leri içerir.
API Değişiklikleri
- Artık Navigation Compose'da rota desteği için uzantı yöntemlerini kullanmanız gerekmiyor. (I22beb, b/172823546)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.material:material-*:1.0.0-beta06
iptal edilir. 1.0.0-beta06 sürümü şu commit'leri içerir.
API Değişiklikleri
- Ripple, Android cihazlarda dahili olarak
RippleDrawable
kullanacak şekilde taşındı. Bu, dalgalanma animasyonlarının RenderThread'de gerçekleşeceği ve bu nedenle kullanıcı arayüzü iş parçacığı yük altındayken (ör. ekranlar arasında gezinirken) bile sorunsuz olacağı anlamına gelir. Bu değişiklik, ripple'ın API yüzeyini değiştirmez ancak bu değişiklik sonucunda davranış değişiklikleri olabilir. Taşımaya yardımcı olmak içinLocalRippleNativeRendering
eklendi. CompositionLocalProvider içindeki önceki dalgalanma uygulamasına geri dönmek için bu CompositionLocal'efalse
değeri sağlayın. Bu API geçicidir ve gelecekte kaldırılacaktır. Bu nedenle, bu API'yi kullanmanıza neden olan sorunlarla karşılaşırsanız lütfen hata kaydı oluşturun. (I902f8, b/168777351, b/183019123) - Koleksiyonun ve öğelerinin erişilebilirlik hizmetleri için işaretlenmesine olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017).
- Geçersiz giriş içeren bir düğümü işaretlemeye olanak tanıyan erişilebilirlik API'si
error
eklendi (I12997, b/180584804, b/182142737).
Hata Düzeltmeleri
- https://github.com/google/accompanist/pull/365 adresinden güncellenen Compose Material katalog yerleştirme uygulaması. (I25dc3)
- weight(fill = false) özelliğine sahip Row ve Column alt öğeleri artık üst öğenin kullanılabilir ana eksen alanının tamamını doldurmasına neden olmuyor. (Ied94d, b/186012444, b/184355105)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.material:material-*:1.0.0-beta05
iptal edilir. 1.0.0-beta05 sürümü şu commit'leri içerir.
Hata Düzeltmeleri
- Mevcut Compose Material kataloğuna bileşen kutusu resimleri, tema seçici ve daha spesifik menü URL'leri eklendi. (I9b58e)
Sürüm 1.0.0-beta04
7 Nisan 2021
androidx.compose.material:material-*:1.0.0-beta04
iptal edilir. 1.0.0-beta04 sürümü şu commit'leri içerir.
API Değişiklikleri
- API DEĞİŞİKLİĞİ:
DrawerState
durumu artık deneysel SwipeableState'i genişletmiyor.- API DEĞİŞİKLİĞİ:
BottomDrawerState
, halihazırda deneysel olan BottomDrawer bileşeniyle (I81114, b/181656094) eşleşmesi için artık Deneysel olarak işaretleniyor.
- API DEĞİŞİKLİĞİ:
SoftwareKeyboardController
üzerindekihideSoftwareKeyboard
veshowSoftwareKeyboard
öğelerini sırasıylahide()
veshow()
olarak yeniden adlandırın.- LocalSoftwareKeyboardController için tam CompositionLocal arayüzünü sağlayarak ayarlanmasına olanak tanır (özellikle testlerde kullanışlıdır) (I579a6)
- LiveRegion erişilebilirlik API'si eklendi. Düğüm canlı bölge olarak işaretlenmişse erişilebilirlik hizmetleri, değişiklikler hakkında kullanıcıyı otomatik olarak bilgilendirir (Idcf6f, b/172590946).
Hata Düzeltmeleri
- Compose Material kataloğunun mevcut modüle uygulanması eklendi. Şu anda eksik olanlar: bileşen kutusu resimleri, tema seçici (sonraki değişikliklerde eklenecek). (Ie7a94)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.material:material-*:1.0.0-beta03
iptal edilir. 1.0.0-beta03 sürümü şu commit'leri içerir.
API Değişiklikleri
DefaultMonotonicFrameClock
desteği sonlandırıldı.withFrameNanos
veyaRecomposer.runRecomposeAndApplyChanges
'iMonotonicFrameClock
olmadan çağırmak artıkIllegalStateException
hatası verecek. (I4eb0d)- Sekmede simge ve satır içi metin görüntülemeyi desteklemek için yeni bir API
LeadingIconTab
eklendi. (I23267)
Harici Katkı (External Contribution)
- [Jossi Wolf tarafından]
BottomDrawer
artık çekmece yuvasının içeriğini sarmalıyor.BottomDrawer
, üst öğenin yüksekliği sonsuz olduğundaIllegalStateException
oluşturmuyor. Alt çekmece, üst öğesinin% 50'sinden küçükse artık genişletilmiş durumda açılacak.BottomDrawerState
veModalBottomSheetLayoutState
ile ilgili dokümanlar güncellendi.BottomDrawerState#isOpen
artık açık veya genişletilmiş durumdaysa true değerini döndürüyor. (I87241)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.material:material-*:1.0.0-beta02
iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.
API Değişiklikleri
- TextField'deki önceki
SoftwareKeyboardController
arayüzünün yerini alacak yeniLocalSoftwareKeyboardController
composition local API'si eklendi. (I5951e, b/168778053)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımına kısıtlamalar getirme (I6aa29, b/174531520)
- TopAppBar ve BottomAppBar için varsayılan yatay hizalama, Row ile tutarlı olacak şekilde Start olarak değiştirildi (Ib2dc7).
- Şu anda mevcut entegrasyon testi demolarına yerleştirilmiş olan bir Compose Material kataloğu için yeni bir modül ve yer tutucu kullanıcı arayüzü eklendi. (Idfcb3)
androidx.compose.ui:ui
artık AppCompat veya Fragment'e bağlı değil. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3+ / Fragment 1.3+ sürümlerini kullandığınızdan emin olun. Bu sürümler, ComposeView için gereken yaşam döngüsü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak için gereklidir. (I1d6fa, b/161814404)
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.material:material-*:1.0.0-beta01
iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- Boyut değiştiricilerin adı değiştirildi. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
- imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector yardımcı sınıflarında uzantı işlevleri olarak kullanılıyor. load{Image,Vector,Font}Resource işlevleri silindi. (I89130)
- Boyutlandırma için doğal boyut değiştiriciler artık deneysel değildir. (I15744)
- Kaldırılan dp onayları (I798d2)
- Yakında yeni bir API ile değiştirilecek olan SoftwareKeyboardController geri çağırma işlevi, tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
- Switch, Checkbox ve RadioButton işlem lambdaları artık null değer atanabilir. Tıklanabilir satırda onay kutusu örnekleri, bu özelliği kullanacak şekilde güncellendi. (If601b, b/171819073)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, etkileşim etkinliklerini yayınlamaktan / toplamaktan sorumludur.
Button
veModifier.clickable()
gibi bileşenlereinteractionState = remember { InteractionState() }
iletmek yerineinteractionSource = remember { MutableInteractionSource() }
kullanın.- Şunun yerine:
Interaction.Pressed in interactionState
Bunun yerine InteractionSource.collectIsPressedAsState() gibi InteractionSource'taki uzantı işlevlerini kullanmanız gerekir. - Karmaşık kullanım alanlarında, Etkileşimler akışını gözlemlemek için InteractionSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerine ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'a AccessibilityMananger arayüzü ve LocalAccessibilityMananger ekleyin (I53520)
- Kullanımdan kaldırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için özellik yerine işlev kullanın (I580ed, b/169874631, b/175142755).
- Kaydırma çubuğu artık etkin/devre dışı durumunu destekliyor (I6d56b, b/179793072)
- CoreTextField gibi düşük düzeyli metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- AnimationEndReason.Interrupted kaldırıldı. Animasyon kesintiye uğrarsa CancellationException istisnası oluşturulur. (I2cbbc, b/179695417)
@ExperimentalRippleApi
kaldırıldı veRippleAlpha
, arayüz yerine özelliklere sahip bir sınıf olarak değiştirildi. (I6df7c)- TextField ve OutlinedTextField'da farklı durumlarda kullanılan farklı renkleri temsil etmek için TextFieldColors arayüzü eklendi. Varsayılan uygulama için TextFieldDefaults.textFieldColors ve TextFieldDefaults.outlinedTextFieldColors'a bakın.
- TextField ve OutlinedTextField içindeki isErrorValue parametresi isError olarak yeniden adlandırıldı. (I831f9, b/171305338, b/168004067)
- Erişilebilirlik amacıyla Sekmeler veya Radyo Düğmeleri koleksiyonunun işaretlenmesine olanak tanıyan selectionGroup değiştiricisini ekleyin (Ie5c29).
LazyListState.animateScrollToItem işlevini ekleyin.
Bu yöntem, listedeki belirli bir öğeye sorunsuz şekilde kaydırı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)@ReadOnlyComposable
ile işaretlenen tüm composable'lar artık yalnızca diğer@ReadOnlyComposables
'lere çağrı yapıldığından emin olmak için derleme zamanında doğrulanıyor (I58961).TargetAnimation API kaldırıldı. (If47d1, b/177457083)
Modifier.verticalScroll()/horizontalScroll() içindeki kaydırma konumu artık Int'lerle temsil ediliyor (I81298).
smoothScrollBy ve scrollBy yöntemlerinin paketleri
androidx.compose.foundation.gestures.*
olarak değiştirildi (I3f7c1, b/175294473)FlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış Decay'ler yerine askıya alma animasyonunun özelleştirilmesine olanak tanıyor. (I02b86, b/175294473)
Boyut değiştiricilerin adı değiştirildi. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
defaultMinSizeConstraints, defaultMinSize olarak yeniden adlandırıldı. (I4eaae)
Orientation, temel pakete taşındı. VelocityTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)
drawerState.open() ve drawerState.close() artık askıya alma işlevleridir. Bunları çağırmak için kompozisyonun kapsamını almak üzere rememberCoroutineScope() işlevini kullanın (I16f60, b/175294473).
Providers, CompositionLocalProvider olarak yeniden adlandırıldı.
- Composition oluşturucusu artık anahtar parametresini kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey özelliğe dönüştürüldü.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
- ComposableLambdaN, somut bir sınıf yerine arayüz haline getirildi ve artık tür parametreleri içermiyor.
- snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değildir.
@TestOnly
üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değil.- keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Artık gerekli değildir.
- Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değil.
- isJoinedKey, joinedKeyLeft ve joinedKeyRight yöntemleri kaldırıldı. Artık gerekli değildir.
- Çeşitli üst düzey API'ler farklı dosyalara taşındı ve yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu durum, kaynak uyumluluğunu değil ikili uyumluluğu bozacaktır. Bu nedenle, çoğu kullanıcı için sorun teşkil etmez.
- (I99b7d, b/177245490)
Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine kaydırılabilir arayüz kullanılıyor (I4f5a5, b/174485541, b/175294473).
Modifier.draggable artık basit bir lambda yerine DraggableState'i kabul ediyor.
rememberDraggableState { delta -> }
ile durum oluşturarak eskisiyle aynı davranışı elde edebilirsiniz (Ica70f, b/175294473)ZoomableController.smoothScaleBy ve ZoomableController.stopAnimation artık askıya alma işlevleridir. (I7f970, b/177457083)
Daha önce desteği sonlandırılan bazı API'ler (Ice5da, b/178633932) silindi.
Material API'de aşağıdaki değişiklikler yapıldı:
- Varsayılan dolguyu özelleştirmeye olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
- Gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesiyle ilgili API yönergelerine uymak için BackdropScaffold'daki parametreler yeniden sıralandı.
- BottomNavigationItem'daki
icon
parametresi,selected
veonClick
sonrasına taşındı. - BottomNavigationItem'daki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametrelericontent
olarak yeniden adlandırıldı. ButtonDefaults.buttonColors()
içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediğinden kodunuzda hataya neden olmayacağını lütfen unutmayın. Adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde kodunuz eskisi gibi çalışmaz.darkColors()
listesinesecondaryVariant
parametresi eklendi. Bu renk genellikle koyu temadakisecondary
ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.- Yaygın olarak kullanılmadıkları / faydalı olmadıkları için ElevationDefaults ve animateElevation() işlevleri herkese açık API yüzeyinden kaldırıldı.
Slider
içindekionValueChangeEnd
,onValueChangeFinished
olarak yeniden adlandırıldı ve boş değer atanabilir hale getirildi.- Tutarlılık için
Snackbar
içindekitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolguyu özelleştirmeye olanak tanımak için
contentPadding
parametresiDropdownMenuItem
'ye eklendi vecontent
,RowScope
'ün uzantısı olarak ayarlandı. ModalDrawerLayout
,ModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
,BottomDrawer
olarak yeniden adlandırıldı.- (I1cc66)
BasicTextField artık daha iyi özelleştirme için Color yerine Brush'ı kabul ediyor (I83a36)
imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector yardımcı sınıflarında uzantı işlevleri olarak kullanılıyor. load{Image,Vector,Font}Resource işlevleri silindi. (I89130)
Indication#createIndication() işlevi Indication#rememberUpdatedIndication(InteractionState) olarak değiştirildi ve IndicationInstance#drawIndication() işlevinden InteractionState parametresi kaldırıldı. IndicationInstance yalnızca görsel efektleri çizmekten sorumludur ve InteractionState değişikliklerine yanıt olarak animasyon başlatmaktan / durum yazmaktan sorumlu değildir. Bu animasyonlar ve durum yazma işlemleri bunun yerine
rememberUpdatedIndication()
içinde gerçekleşmelidir.Modifier.indication
içindekiindication
parametresi de zorunlu parametre olarak değiştirildi. (Ic1764, b/152525426)
Hata Düzeltmeleri
- TextField'daki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController composition local API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.material:material-*:1.0.0-alpha12
iptal edilir. 1.0.0-alpha12 sürümü şu commit'leri içerir.
API Değişiklikleri
- Modifier.pointerInput artık işaretçi girişi algılama coroutine'inin yeni bağımlılıklar için ne zaman yeniden başlatılması gerektiğini belirtmek üzere remember anahtarları gerektiriyor. (I849cd)
- BottomDrawerLayout ve ListItem, @ExperimentalMaterialApi olarak işaretlendi (Id766e).
- PaddingValues.Absolute eklendi ve PaddingValues'u kabul eden API'lerde kullanılabilir. (Ia5f30)
- onImeActionPerformed kullanımdan kaldırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter, BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Animatable.snapTo ve Animatable.stop artık askıya alma işlevleridir (If4288)
- ComponentActivity.setContent, androidx.activity:activity-compose modülünde androidx.activity.compose.setContent'e taşındı. (Icf416)
- Destructuring ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
- ModalBottomSheetState'teki halfExpand() ve expand() işlevlerini dahili hale getirin (Ic914e).
- Indication#createInstance, @Composable olacak şekilde değiştirildi ve LocalIndication, () -> Indication değil, bir Indication içerecek şekilde değiştirildi. (I5eeea, b/157150564)
- AlertDialog ve DropdownMenu, şimdilik yalnızca Android'e özel olarak taşındı. Temel alınan pop-up'ın daha fazla yapılandırılması için DropdownMenu'ye PopupProperties parametresi eklendi. (I9c443)
- loadFontResource kullanımdan kaldırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
- DropdownMenu'den
toggle
vetoggleModifier
parametresi kaldırıldı.dropdownModifier
,dropdownOffset
vedropdownContent
sırasıylamodifier
,offset
vecontent
olarak yeniden adlandırıldı. DropdownMenu artıkPopup
ile tutarlı bir şekilde çalışıyor. Menünün konumu için üst düzen kullanılıyor. Çoğu durumdatoggle
öğesiniDropdownMenu
öğesinin kardeşi olacak şekilde taşıyabilir ve her ikisini deBox
öğesiyle sarmalayabilirsiniz. Bu API'nin kullanımı hakkında daha fazla bilgi için dokümanlardaki güncellenmiş örneğe bakın. (I884fb) - toIntPx() işlevinin adı roundToPx() olarak değiştirildi. (I9b7e4, b/173502290)
- IntBounds, IntRect olarak yeniden adlandırıldı ve API iyileştirildi. (I1f6ff)
- Genişletme ve daraltma semantik işlemleri eklendi. ModalBottomSheetState'e expand ve halfExpand eklendi (Ib5064)
- Modifier.dragGestureFilter desteği sonlandırıldı. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, tek eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473) - Ambients, Ambient -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde yeniden adlandırıldı. Ambients, AmbientFoo olarak adlandırılırdı. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
- Seçim, temel katmana taşındı. (I7892b)
- Daha önce
state { 0 }
composable'ı kaldırdığımız ve şimdiremember { mutableStateOf(0) }
gibi kullanımları desteklediğimiz gibi,savedInstanceState { 0 }
composable'ı da kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmanız gerekir. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa bu tür otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir kaydedici nesne iletiyorsanız artıkstateSaver
parametresine sahip yeni bir rememberSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şu şekilde görünür:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Erişilebilirlik için belirsiz ilerleme çubuklarını işaretlemek üzere ProgressBarRangeInfo.Indeterminate eklendi (I6fe05)
@ComposableContract, üç daha spesifik ek açıklama lehine kullanımdan kaldırıldı.
@ComposableContract(restartable = false)
,@NonRestartableComposable
oldu@ComposableContract(readonly = true)
,@ReadOnlyComposable
oldu@ComposableContract(preventCapture = true)
,@DisallowComposableCalls
oldu@ComposableContract(tracked = true)
kaldırıldı.- (I60a9d)
emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programlarının artık olumlu bir performans etkisi veya değeri olmadığından desteği sonlandırıldı (I0484d).rememberSavedInstanceState() işlevinin adı rememberSaveable() olarak değiştirildi ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate'ten androidx.compose.runtime.saveable'a taşındı (I77fe6).
RounderCornerShape, CutCornerShape ve CornerBasedShape üzerindeki parametreler, şeklin sağdan sola yönünde otomatik olarak yansıtılmasını desteklemek için soldan/sağdan başlayarak/biterek yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlarda AbsoluteRounderCornerShape ve AbsoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
Bileşenin boyutunu ve düzenini etkilediğinden, bu parametreler sağlandığında / sağlanmadığında bileşenin davranışını daha iyi aktarmak için Tab'in
text
veicon
parametreleri ile BottomNavigationItem'ınlabel
parametresi null değer atanabilir olacak şekilde değiştirildi. Şu anda metin / simge / etiket olmadığını belirtmek içinemptyContent()
değerini iletiyorsanız bunun yerinenull
değerini kullanmanız gerekir. (I57ed4)backgroundColor olarak renk parametresi için contentColor yeniden adlandırıldı (I5bb67)
TabDefaults kullanımdan kaldırıldı ve yerine TabRowDefaults getirildi. (I0f189)
Kaynak içeriğin RGB değerlerini değiştirmek için kullanılan ColorMatrix API'si kullanıma sunuldu. ColorFilter API, arayüz olacak ve PathEffect'in uygulanmasıyla eşleşecek şekilde yeniden düzenlendi. (Ica1e8)
AnimatedValue/Float desteği sonlandırıldı. Lütfen bunun yerine Animatable'ı kullanın. (I71345, b/177457083)
SemanticsProperties.PaneTitle API'sini ekleyin. (I20d5a)
Sekme ve BottomNavigationItem'a, tıklanabilir olmalarını önlemek için etkinleştirilmiş parametreler eklendi. API'sindeki düzen gereksinimlerini daha iyi ifade etmek için BottomNavigationItem, RowScope.BottomNavigationItem olarak değiştirildi. (Id683d)
tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine Modifier.clickable veya Modifier.pointerInput ile detectTapGestures işlevini kullanın. (I6baf9, b/175294473)
Shape'in createOutline işlevine layoutDirection parametresini ekleyin. Bu sayede, düzen yönüne duyarlı şekiller oluşturabilirsiniz. (I57c20, b/152756983)
Recomposer.current()
kaldırıldı. [Abstract]ComposeView artık pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, pencere kapsamlı ve geç oluşturulan Recomposer'ları varsayılan olarak kullanıyor. Ana makinenin yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon işaretleri duraklatılır. (I38e11)
Hata Düzeltmeleri
- Simge artık boyutuna uyacak şekilde ölçeklendirilecek ve kendisine uygulanan boyut değiştiricilere uyacak. Örneğin,
Icon(.., modifier = Modifier.size(50.dp)
artık 50x50 dp alanında çizilecek. (Ib2ba9, b/178796190)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.material:material-*:1.0.0-alpha11
iptal edilir. 1.0.0-alpha11 sürümü şu commit'leri içerir.
API Değişiklikleri
- Bazı Material API'lerinin artık
@Experimental
(I5d20e) olmaması için yükseltme yapıldı. - Resim ve simgeye içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c).
- Material'ın durum bilgisi olan parametre arayüzlerini,
State<T>
döndüren @Composable işlevlere dönüştürür. Animatable'ı State'e dönüştürmeyi kolaylaştırmak içinAnimatable.asState()
eklenir. Ayrıca animateElevation, Animatable üzerinde bir askıya alma uzantısı olacak şekilde değiştirildi. (If613c) - Snackbar, SnackbarHost ve SnackbarHostState artık
@ExperimentalMaterialAPI
değil (Id1fb5) - Typography, Shapes ve TabPosition artık veri sınıfları olmayacak şekilde değiştirildi. Oluşturulanları değiştirmek için Tipografi ve Şekiller'e kopyalama işlevi ekler. (I40037)
- Daha önce desteği sonlandırılan bazı Material API'leri silindi (Ifaa25)
Hata Düzeltmeleri
- onCommit, onDispose ve onActive, SideEffect ve DisposableEffect API'leri lehine kullanımdan kaldırıldı (If760e).
- TransitionDefinition tabanlı geçiş kullanımdan kaldırıldı (I0ac57)
- updateTransition'daki Initial State artık destekleniyor (Ifd51d)
- WithConstraints, BoxWithConstraints olarak yeniden düzenlendi ve foundation.layout'a taşındı. (I9420b, b/173387208)
Askıya alınmayan scrollBy işlevini kullanımdan kaldırın, askıya alınmayan scrollTo işlevini kaldırın
Artık kaydırmayı kontrol etmek ve kaydırmanın tamamlanmasını beklemek için askıya alma işlevlerini kullanmanızı öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alma dışı sürümlerinin desteğini sonlandırıyoruz ve/veya bu sürümleri kaldırıyoruz. (Ie9ced)
Askıya alınmayan smoothScrollBy işlevinin desteği sonlandırıldı Artık kaydırmayı kontrol etmek ve kaydırmanın tamamlanmasını beklemek için askıya alma işlevlerinin kullanılmasını öneriyoruz. Bu geçiş kapsamında, bu işlevlerin askıya alma içermeyen sürümlerinin desteğini sonlandırıyoruz. (I12880)
ComposeContentTestRule
tanıtıldı. Bu parametre,ComposeTestRule
öğesini genişletir veComposeTestRule
öğesinden kaldırılansetContent
öğesini tanımlar.createEmptyComposeRule()
döndüren ve sizin için bir Etkinlik başlatmayan bir fabrika yöntemicreateEmptyComposeRule()
eklendi.ComposeTestRule
Testiniz sırasında etkinliğinizi başlatmak istediğinizde bunu kullanın. Örneğin,ActivityScenario.launch
(I9d782, b/174472899) kullanmaButton ve FloatingActionButton'da kullanılan dalgalanma artık AmbientIndication aracılığıyla yeni bir Indication sağlanarak özelleştirilemez. Bu, söz konusu bileşenleri özelleştirmenin bir yolu olarak tasarlanmamıştı ve artık bu bileşenler diğer Material bileşenleriyle tutarlı hale geliyor. Bir uygulamadaki dalgalanmaları özelleştirmek için RippleTheme'e bakın. (I546c5)
animateAsState artık animateFooAsState olarak adlandırılıyor. Burada Foo, animasyon uygulanan değişkenin türünü (ör. Float, Dp, Offset vb.) ifade ediyor (Ie7e25).
BasicTextField,
decorationBox
adlı yeni bir parametre aldı. Bu özellik, metin alanına simge, yer tutucu, etiket gibi süslemeler eklemenize ve hedef alanını büyütmenize olanak tanır. (I16996)Materyal metin alanının genişliğinin 280 dp'den daha az olarak ayarlanamamasına neden olan hata düzeltildi (I78373).
canDrag parametresi, Modifier.draggable'dan kaldırıldı (Ic4bec, b/175294473).
displaySize, kullanılmaması gerektiğinden kaldırılmalıdır. Genellikle en azından onRoot() veya pencere boyutunu kullanmak daha iyidir. (I62db4)
Surface artık birden fazla düzen alt öğesine sahip olabilir. (I66a92, b/144488459)
invalidate ve compositionReference() işlevlerinin desteği, sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri lehine sonlandırıldı. (I583a8)
PopupPositionProvider, global koordinatlar yerine pencereye göre koordinatlar kullanacak şekilde değiştirildi. parentGlobalBounds'u anchorBounds olarak yeniden adlandırır ve windowGlobalBounds'u
windowSize: IntSize
olarak değiştirir (I2994a).Süre ve Çalışma Süresi, uzun milisaniye ile değiştirilir. 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)
FlingConfig'i kabul eden AnimatedFloat.fling kaldırıldı. Lütfen bunun yerine suspend Animatable.animateDecay kullanın. (I4659b, b/177457083)
Tıklanabilir, açılıp kapatılabilir ve seçilebilir öğeler artık kompozisyon dışında oluşturulabilir (I0a130, b/172938345, b/175294473).
Kolaylaştırma, işlevsel bir arayüzle (Ib14e5) değiştirildi.
ScrollableColumn/Row kullanımdan kaldırıldı. LazyColumn'da yalnızca görünür öğeleri oluşturup ölçüp çizebildiğimiz için, kaydırılabilir çok fazla içeriğiniz olduğunda ScrollableColumn kullanmak LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir şekilde ilerlemesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanılmasını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)
fabrika yöntemi.items(items: List)
veitemsIndexed(items: List)
artık uzantı işlevleri olduğundan kullanıldıklarında manuel olarak içe aktarılmaları gerekir. Diziler için yeni uzantı aşırı yüklemeleri:items(items: Array)
veitemsIndexed(Array)
(I803fc, b/175562574)Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
Kullanımdan kaldırılan genel koordinat yöntemleri ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)
İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsLayer eklendi. (I315df)
FocusRequester.createRefs, değişebileceği için deneysel olarak işaretlendi. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırıldı. horizontalAccessibilityScrollState, horizontalScrollAxisRange olarak yeniden adlandırıldı. verticalAccessibilityScrollState, verticalScrollAxisRange olarak yeniden adlandırıldı. (Id3148)
Testlerde TestCoroutineDispatcher'dan yararlanma (I532b6)
Vektör grafik API'si, vektör grafiklerin köküne uygulanan renk tonlarının ayrıştırılmasını destekleyecek şekilde güncellendi. (Id9d53, b/177210509)
Sürüm 1.0.0-alpha10
13 Ocak 2021
androidx.compose.material:material-*:1.0.0-alpha10
iptal edilir. Version 1.0.0-alpha10 contains these commits.
API Değişiklikleri
- Hız, bileşen parçaları ve matematiksel işlemler içerecek şekilde değiştirildi. (Ib0447)
- Benzer deneysel API ek açıklamalarıyla (Ia4502, b/171464963) tutarlı olması için
@ExperimentalTesting
,@ExperimentalTestApi
olarak yeniden adlandırıldı. - Konum, DpOffset olarak yeniden adlandırıldı ve getDistance() kaldırıldı (Ib2dfd)
- Color.useOrElse() işlevinin adı Color.takeOrElse() olarak değiştirildi (Ifdcf5).
- Toggle'ı foundation Strings.kt dosyasına ekleyin (I4a5b7, b/172366489)
- FlowRow ve FlowColumn'un desteği sonlandırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
- Modifier.focus() ve Modifier.focusRequester() kullanımdan kaldırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
- nativeClass, ui modülüne taşındı ve dahili hale getirildi. equals uygulamalarındaki nativeClass kullanımları, bunun yerine "is MyClass" kullanacak şekilde güncellendi. (I4f734)
Hata Düzeltmeleri
- Devre dışı bırakılmış ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
animate()
artıkT
yerineState<T>
döndürenanimateAsState()
ile değiştirildi. Bu, geçersiz kılma kapsamı State değerinin okunduğu yerle sınırlandırılabildiğinden daha iyi performans sağlar. (Ib179e)- Semantics role API'yi ekleyin ve Role'ü tıklanabilir, seçilebilir ve açılıp kapatılabilir SemanticsModifier'a parametre olarak ekleyin. Kaydırma çubuğunun da kullanabilmesi için Modifier.progressSemantics değiştirildi. (I216cd)
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.material:material-*:1.0.0-alpha09
iptal edilir. Version 1.0.0-alpha09 contains these commits.
API Değişiklikleri
- Yerleşme animasyonunu manuel olarak tetiklemek ve Modifier.swipeable'ı sürüklemek için API eklendi (Iaa17a, b/162408885).
- ButtonConstants gibi *Constants nesnelerinin adları, ButtonDefaults gibi Defaults ile bitecek şekilde değiştirildi. Ayrıca, bu yeni nesnelerdeki özelliklerden gereksiz
default
ön ekleri de kaldırır. (Ibb915, b/159982740) Compose, birleştirilebilir çağrılar yapabilen mülk getter'larını destekler. Bu destek kaldırılmayacak ancak bir özellik alıcısının @Composable olarak bildirilmesiyle ilgili söz dizimi değişiyor.
Bunu yapmak için kullanılan ve artık kullanımdan kaldırılan söz dizimi, mülkün kendisini açıklama olarak eklemekti:
@Composable val someProperty: Int get() = ...
Bunu yapmak için artık doğru olan söz dizimi, özelliğin alıcı yöntemini açıklama ekleyerek yapmaktır:
val someProperty: Int @Composable get() = ...
Her iki söz dizimi de bir süre çalışmaya devam edecek ancak kullanımdan kaldırılan söz dizimi sonunda derleme hatasına dönüşecek. (Id9197)
Material kitaplığının geri kalanına ihtiyaç duymadan etkileşimli bileşenler oluşturmaya olanak tanıyan, ripple API'lerini içeren
androidx.compose.material:material-ripple
kitaplığı eklendi. rememberRippleIndication kullanımdan kaldırıldı ve rememberRipple ile değiştirildi. (Ibdf11)
Hata Düzeltmeleri
- Ofset değiştiricilerdeki lambda'lar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
Çizim ortamının boyutlandırma bilgileri kullanılabilir olduğunda gölgelendirici örneğini geç oluşturmak için ShaderBrush yeniden düzenlendi. Bu, özel DrawModifier uygulamaları oluşturmak zorunda kalmadan, kompozisyon sırasında bir composable'ın tüm çizim sınırlarını kaplayan gradyanlar tanımlamak için kullanışlıdır.
Gradyan nesnesindeki fabrika yöntemleri lehine, kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri. (I511fc, b/173066799)
Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent kullanın (I30f17, b/168511863, b/168511484)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed kullanımdan kaldırıldı. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c).
Dp.VectorConverter, Position.VectorConverter vb. öğeleri animation-core'a taşıdı ve eski VectorConverter'ların (If0c4b) desteğini sonlandırdı.
Otomatik Doldurma API'si artık deneysel bir API ve etkinleştirme gerektiriyor (I0a1ec)
FocusRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
InfiniteRepeatableSpec oluşturmak için yeni infiniteRepeatable işlevi (I668e5)
Açılır menülerin konumlandırma davranışı, Materyal spesifikasyonuna göre biraz değiştirildi. (I34c72, b/168594123)
TextField'lar için InteractionState desteği eklendi. (I61d91)
Alt öğelerin semantiğini temizlemek ve yeni semantikler ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
Moved ContentDrawScope to ui-graphics module to be with DrawScope. (Iee043, b/173832789)
Sürüm 1.0.0-alpha08
2 Aralık 2020
androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
ve androidx.compose.material:material-icons-extended:1.0.0-alpha08
yayınlandı. Version 1.0.0-alpha08 contains these commits.
API Değişiklikleri
- MaterialTheme artık seçim tutamaçları ve seçim arka planı için doğru renkleri ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Compose yönergeleriyle tutarlılığı kontrol etmek için composable lambda parametre adlandırma ve konumuyla ilgili lint kontrolü eklendi.
Ayrıca, lint kontrolü ve yönergeler doğrultusunda, sondaki lambda'ları için ad olarak
children
kullanan bazı API'lericontent
olarak taşıdı. (Iec48e) - VectorAsset, ImageVector olarak yeniden adlandırıldı. VectorAsset, API Konseyi yönergeleri uyarınca ImageVector'ın iç sınıfı olacak şekilde Builder olarak taşındı ve yeniden adlandırıldı. Uyumluluk için VectorAssetBuilder'ın ImageVector.Builder'a bağlantı oluşturacak tür takma adı eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- Temel anlamsal özellikler ui'ye taşındı (I6f05c).
fun RippleIndication()
, diğer API'lerle tutarlılık sağlamak için desteği sonlandırıldı verememberRippleIndication()
ile değiştirildi. (Id8e2c)- BasicTextField, TextField ve OutlinedTextField'a singleLine parametresi eklendi. Metin alanının yatay olarak kaydırılabilen tek bir satır olmasını sağlamak için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)
Hata Düzeltmeleri
- Anlam bilimi işlemi olarak Kapat'ı ekleme (I2b706)
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılmış API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemleri içeren DrawModifierDeprecated.kt dosyasını oluşturdu. (Id6044, b/173834241)
- Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca, API geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık tür belirtmeden kullanabilirsiniz. (Ib60c8)- drawLayer için kolaylık sağlamak amacıyla Modifier.scale/rotate API'leri eklendi.
Modifier.drawOpacity
,Modifier.alpha
olarak yeniden adlandırıldıModifier.drawShadow
,Modifier.shadow
olarak yeniden adlandırıldı (I264ca, b/173208140)
- Box'ın hizalama parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricilerinin adı offset olarak değiştirildi. Artık State yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Composable işlevlerindeki Modifier parametreleri için lint kontrolü eklendi. Bu lint kontrolü, parametrenin adlandırmasını, dönüş türünü, varsayılan değerini ve sırasını Compose yönergeleriyle tutarlılık açısından kontrol eder. (If493b)
- Updated TextFieldValue API
- TextFieldValue.composition salt okunur hale getirildi
- Geçersiz seçim aralığı için kaldırılan istisna oluşturuldu (I4a675, b/172239032)
- Yeni bir
Modifier.drawLayer()
aşırı yükü eklendi. Durum değişikliği olduğunda yeniden oluşturma ve yeniden düzenleme işlemlerinin atlanmasına olanak tanıyan bir şekilde katman parametrelerini tanımladığınız yeni bir GraphicsLayerScope üzerinde lambda bloğu alır. DrawLayerModifier, mantığını LayoutModifier'ınplaceable.placeWithLayer()
yöntemine taşımaya hazırlanmak için artık dahili olarak kullanılıyor (I15e9f, b/173030831). Ambient
sonekiyle adlandırılan, kullanımdan kaldırılan Ambients'ı diğer Ambients ve Compose API yönergelerine uygun olarak Ambient önekiyle adlandırılan yeni özelliklerle değiştirdi. (I33440)- Değiştirici fabrikalarının
@Composable
olarak işaretlenmek yerine dahili olarakandroidx.compose.ui.composed {}
kullandığını kontrol etmek için lint kontrolü eklendi. (I3c4bc) - Semantik bağımsız değişkeni mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521).
- Eski ui-test modülünü ve saplarını kaldırın (I3a7cb)
- TextUnit.Inherit, diğer birimlerle tutarlılık sağlamak için TextUnit.Unspecified olarak yeniden adlandırıldı. (Ifce19)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
- id, LayoutIdParentData için layoutId 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.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
ve androidx.compose.material:material-icons-extended:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü şu commit'leri içerir.
API Değişiklikleri
- Emphasis'in desteği sonlandırıldı ve bu özelliğin yerini AmbientContentAlpha aldı. AmbientContentAlpha, hiyerarşinin bir bölümü için tercih edilen içerik alfasını temsil eden daha basit bir soyutlamadır. AmbientContentColor, tercih edilen içerik rengini temsil etmeye benzer. Metin ve simge artık varsayılan olarak AmbientContentAlpha'dan geçerli değeri kullanıyor. Bileşenlerinizde aynı efekti elde etmek için
color.copy(alpha = AmbientContentAlpha.current)
işlemini manuel olarak yapabilirsiniz. ProvideEmphasis'i kullanmak yerine, AmbientContentAlpha üzerinden doğrudan bir değer sağlayabilir ve eski EmphasisLevels'ın yerine ContentAlpha'daki yeni varsayılan düzeyleri kullanabilirsiniz. (Idf03e, b/159017896) - androidx.compose.foundation.AmbientContentColor yerine androidx.compose.material.AmbientContentColor ekleniyor (I84f7b, b/172067770)
- Yüksek düzeyde, temalandırılabilir bir Metin bileşeni olarak androidx.compose.foundation.Text yerine androidx.compose.material.Text eklenir. Temadan renk / metin stili kullanmayan temel bir metin bileşeni için BasicText'i kullanın. (Ie6ae0)
- TextField'lara maxLines özelliği eklendi (Ib2a5b).
- TextField'ları KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
- Surface artık yükseklik katmanlarını hesaplarken mutlak (toplam) yüksekliği kullanıyor. Bu nedenle, başka bir Surface'e yerleştirilmiş bir Surface, katmanı çizmek için birleşik yüksekliği kullanır. (I7bd2b, b/171031040)
Hata Düzeltmeleri
captureToBitmap
,captureToImage
adlı kümeye taşındı. (I86385)- Temel AmbientTextStyle, ProvideTextStyle ve AmbientContentColor işlevlerinin desteği sonlandırıldı. Bunun yerine, Material kitaplığında bulunan yeni sürümleri kullanın. Material olmayan uygulamalar için bunun yerine, kendi bileşenlerinizde kullanılabilen, temalandırmaya özel kendi tasarım sisteminizi oluşturmanız gerekir. (I74acc, b/172067770)
- foundation.Text artık kullanılmıyor ve yerine material.Text kullanılıyor. Temadan değer kullanmayan temel ve tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
- KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
- KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
- BaseTextField kullanımdan kaldırıldı. Bunun yerine BasicTextField'ı kullanın. (I896eb)
- ExperimentalSubcomposeLayoutApi notu kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad).
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7).
- Icon API, ColorFilter olmadan sağlanan öğeyi veya boyayı çizecek olası bir renk tonu olarak Color.Unspecified'ı alacak şekilde güncellendi. Daha önce, Color.Unspecified ile renk tonunu yoksayma girişimleri, şeffaf bir renkle renk tonu oluşturarak hiçbir şeyin oluşturulmamasına neden oluyordu. (I049e2, b/171624632)
- relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. paddingFromBaseline değiştiricisi, düzen sınırlarından metin taban çizgilerine olan mesafeleri belirtme kolaylığı için eklendi. (I0440a, b/170633813)
- LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için LaunchedEffect'in konu parametreleri olmadan kullanılmasına izin verilmez. (Ifd3d4)
- MeasureResult, MeasureScope'un dışına taşındı. (Ibf96d, b/171184002)
- Düzenle ilgili çeşitli semboller androidx.compose.ui'dan androidx.compose.layout.ui'ya taşındı. (I0fa98, b/170475424)
Sürüm 1.0.0-alpha06
28 Ekim 2020
androidx.compose.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
ve androidx.compose.material:material-icons-extended:1.0.0-alpha06
yayınlandı. 1.0.0-alpha06 sürümü şu commit'leri içerir.
API Değişiklikleri
- androidx.compose.foundation.Icon, androidx.compose.material.Icon'a taşındı. Material kitaplığını kullanmak istemiyorsanız Painter ile birlikte Image bileşenini / Modifier.paint() işlevini de kullanabilirsiniz. (I9f622)
- Farklı durumlardaki FAB'ler tarafından kullanılan yüksekliği temsil etmek için FloatingActionButtonElevation'ı ekler. Varsayılan uygulama için FloatingActionButtonConstants.defaultElevation() bölümüne bakın (I2d4f5).
- Bir anahtarın farklı durumlarda kullandığı renkleri temsil etmek için SwitchColors arayüzünü ekler. Bu renkleri özelleştirmek için SwitchConstants.defaultColors bölümüne bakın. (I93805)
- Farklı durumlardaki düğmeler tarafından kullanılan yüksekliği ve renkleri temsil etmek için ButtonElevation ve ButtonColors arayüzlerini ekler. Bu parametreleri özelleştirmek için ButtonConstants'taki varsayılan işlevlere bakın. (Ic5b7b)
- RadioButtonColors arayüzünü, bir RadioButton'ın farklı durumlarda kullandığı renkleri temsil etmek için ekler. Farklı durumlarda kullanılan renkleri özelleştirmek için RadioButtonConstants.defaultColors() yöntemine bakın. (I74130)
- Farklı durumlarda onay kutusu tarafından kullanılan renkleri temsil etmek için CheckboxColors arayüzünü ekler. Farklı durumlarda kullanılan renkleri özelleştirmek için CheckboxConstants.defaultColors() öğesine bakın. (I7dbdb)
Hata Düzeltmeleri
- Materyal bileşenleri artık yüksekliği zIndex olarak ayarlamıyor. Bu nedenle, aynı üst öğe içinde daha büyük gölge boyutuna sahip alt öğe, daha küçük gölge boyutuna sahip alt öğenin üzerine otomatik olarak çizilmez. Bu davranışa hâlâ ihtiyacınız varsa lütfen gerektiğinde Modifier.zIndex() işlevini manuel olarak ayarlayın (I70417, b/170623932).
- Composable API'nin, kompozisyonlar arasında verileri kalıcı hale getirmek için dahili olarak "remember" işlevinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı rememberVectorPainter lehine kullanımdan kaldırın. (Ifda43)
- ComposeTestRule'da geçişleri etkinleştirin. Yanıp sönen imleci etkinleştirme seçeneğini ComposeTestRule'dan kaldırın. (If0de3)
- CoreTextField'e tek satırlık klavye seçeneği eklendi (I72e6d)
- Compose'da nasıl kullanıldığını daha iyi ifade etmek için Radius API'nin adı CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirten doküman güncellendi. (I130c7, b/168762961)
- DrawScope ve
ContentDrawScope, soyut sınıflar yerine arayüzler olarak yeniden düzenlendi.
- DrawScope'un CanvasDrawScope uygulamasını oluşturdu
- DrawScope'un CanvasScope'u kullanacak şekilde yeniden düzenlenmiş uygulamaları
- DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu.
- DrawScope'ta kullanımdan kaldırılan yöntemler kaldırıldı (I56f5e)
- Box, satır içi işlev haline getirildi. (Ibce0c, b/155056091)
Sürüm 1.0.0-alpha05
14 Ekim 2020
androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
ve androidx.compose.material:material-icons-extended:1.0.0-alpha05
yayınlandı. 1.0.0-alpha05 sürümü şu commit'leri içerir.
API Değişiklikleri
- Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE'u devralıyor. Bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149).
- Modifier.swipeable artık varsayılan olarak durumlar için 56 dp eşiklere sahip (Iab825, b/168610267)
- Tüm iskele durumları @Stable olarak işaretlendi. ScaffoldState'teki drawerGesturesEnabled, Scaffold'a taşındı. (I36645, b/168297016)
- İskele lambda parametrelerinden null değer atanabilir türü kaldırır. Belirli bir parametre için içerik olmadığını belirtmek üzere emptyContent() işlevini kullanabilirsiniz. (I2b318, b/157633857, b/158551084)
contentColor() ve currentTextStyle() API'lerinin desteğini sonlandırır ve bunları sırasıyla AmbientContentColor ve AmbientTextStyle ortamlarıyla değiştirir. Diğer tüm ortam özelliklerinde olduğu gibi, ortam özelliğinde
.current
kullanarak geçerli değere erişebilirsiniz. Bu değişiklik, tutarlılık sağlamak ve aynı şeyi yapmanın birden fazla yolunu önlemek için yapılmıştır. Ayrıca, bazı ortam özelliklerinin adını, amaçlarını daha iyi açıklayacak şekilde aşağıdaki gibi değiştirir:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
AmbientElevationOverlay'i ekler. Bu sayede, koyu temada yüzeylere uygulanan varsayılan yükseklik katmanı özelleştirilebilir veya devre dışı bırakılabilir. (I5b74d)
Hata Düzeltmeleri
- Satır içi sınıflar için sentinel değerlerinin standartlaştırılması kapsamında, diğer satır içi sınıflarla tutarlılık sağlamak amacıyla Color.Unset'in adını Color.Unspecified olarak değiştirin (I97611, b/169797763).
- TextOverflow.None kullanıma sunuldu. Taşma None olduğunda, Text artık taşmayı işlemeyecek ve gerçek boyutunu LayoutNode'a bildirecek. (I175c9, b/158830170)
- launchInComposition, Compose API yönergeleriyle eşleşmesi için LaunchedTask olarak yeniden adlandırıldı (I99a8e).
- OnPositionedModifier, OnGloballyPositionedModifier olarak, onPositioned() ise onGloballyPositioned() olarak yeniden adlandırıldı. (I587e8, b/169083903)
Sürüm 1.0.0-alpha04
1 Ekim 2020
androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
ve androidx.compose.material:material-icons-extended:1.0.0-alpha04
yayınlandı. 1.0.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Durumlu Material bileşenlerinde InteractionState parametrelerini kullanıma sunarak durumun yükseltilmesine ve okunmasına / kontrol edilmesine olanak tanır. (Iaca5f, b/168025711, b/167164434)
- RadioButton ve TriStateCheckbox'taki
*color
parametrelerini değiştirerek her durumda kullanılan renklerin tamamen özelleştirilmesine ve istenirse renklerin durumlar arasında nasıl animasyon yapılacağının değiştirilmesine olanak tanır. Daha fazla bilgi için CheckboxConstants ve RadioButtonConstants'taki yeni animateDefault* renk işlevlerine bakın. (I1c532) - rememberBackdropState, rememberBackdropScaffoldState olarak yeniden adlandırıldı ve animasyon saati için ek bir parametre eklendi. BackdropScaffold'un param backdropScaffoldState'i yalnızca scaffoldState olarak yeniden adlandırıldı. BackdropConstants, BackdropScaffoldConstants olarak yeniden adlandırıldı. (Ib644d)
- Deneysel BottomSheetScaffold bileşeni eklendi. (Ie02f0, b/148996320)
- Deneysel ModalBottomSheetLayout bileşeni eklendi. (Ic209e, b/148996320)
- ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation işlevini defaultElevation olarak yeniden adlandırır ve artık AnimatedValue yerine Dp değeri döndürür. (I5f3ed)
Hata Düzeltmeleri
- Birçok grafik API'si güncellendi
- DrawScope ve DrawTransform'da x/y koordinatları için ayrı kayan parametreler yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresini kullanmak için ölçek ve döndürme dönüştürme API'leri güncellendi.
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı.
- Yarıçap dokümanı, elipsin yanı sıra oval de içerecek şekilde güncellendi.
- Satır içi Radius sınıfının herkese açık oluşturucusunun doğrudan çağrılmaması, bunun yerine Radius nesnelerinin işlev oluşturucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi.
- RoundRect API'leri, topRight, bottomRight, bottomCenter vb. sorgulamak için kaldırıldı.
- Rect.shift yerine Rect.translate kullanı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, özellik olarak değiştirildi.
- RoundRect oluşturucusu, x/y yarıçap değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi.
- Kaynak noktası 0,0 olan bir dikdörtgen olduğu varsayılan boyut API'leri kaldırıldı.
- Radius'a bir yıkım API'si eklendi.
- Çeşitli RoundRect uzantısı işlevleri, özellikler olarak taşındı.
- (I8f5c7, b/168762961)
- foundation.Box desteği sonlandırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
- Stack'in adı Box olarak değiştirildi. Daha önce mevcut olan Box, compose.foundation.layout içindeki yeni Box lehine kullanımdan kaldırılacak. Yeni kutunun davranışı, birden fazla alt öğe içerdiğinde alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki kutudan farklıdır. (I94893, b/167680279)
- Kutu dekorasyonu parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.border, Modifier.padding) kullanın (Ibae92, b/167680279).
- Birçok grafik API'si güncellendi
- Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için kapsamlı dönüştürme yöntemleriyle güncellenen DrawScope API'leri
- clipPath dokümanı, yuvarlatılmış dikdörtgen yerine Path'e referans verecek şekilde güncellendi.
- clipPath'teki sağ parametre için dokümanlardaki boşluk düzeltildi.
- DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
- İç kısım yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı.
- 4 sınıra da aynı içe yerleştirme değerini sağlayan içe yerleştirme aşırı yüklemesi eklendi.
- İçerik yerleştirme yönteminin 4 tarafa da uygulanacağını belirten doküman kaldırıldı.
- Rect sınıfı için güncellenen belgeler
- Rect parametreleriyle ilgili yorumlar, kdoc stiline uygun şekilde güncellendi.
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yükleme oluşturuldu ve Rect.shift kullanımdan kaldırıldı
- (If086a, b/167737376)
- Düzen kapsamlarının içeriklerinin (ör. RowScope'taki alignWithSiblings) statik olarak içe aktarılması engellendi. Bunun yerine açık kapsam alternatifi kullanılmalıdır:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Sürüm 1.0.0-alpha03
16 Eylül 2020
androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
ve androidx.compose.material:material-icons-extended:1.0.0-alpha03
yayınlandı. 1.0.0-alpha03 sürümü şu commit'leri içerir.
API Değişiklikleri
BottomNavigationItem
'nınonSelect
parametresinionClick
olarak yeniden adlandırır (I91925, b/161809324)- BottomNavigationItem ve Tab'e InteractionState parametresini ekleyerek bu durumun yükseltilmesine ve bileşenin farklı durumlarda nasıl görüneceğinin ayarlanmasına olanak tanır. (Ia3e9e, b/168025711)
- Düğmelerdeki
disabledBackgroundColor
vedisabledContentColor
parametrelerini kaldırır. Bunun yerine ButtonConstants içindeki yeni varsayılan renk işlevlerini kullanmanız gerekir. contentColor/backgroundColor'ı zaten açıkça ayarlıyorsanız etkin/devre dışı durumların her ikisinde de rengin üzerine yazılmasını önlemek için bu varsayılan işlevleri kullanmanız ve parametrelerin bir kısmını veya tamamını özelleştirmeniz gerekir. (If9b52) - Metin alanının arka plan rengi artık şeffaflık alfasını örtülü olarak uygulamaz. Bunun yerine, backgroundColor parametresi aracılığıyla sağlanan tüm renkler doğrudan uygulanır. (Iecee9, b/167951441)
- InnerPadding, PaddingValues olarak yeniden adlandırıldı. (I195f1, b/167389171)
Modifier.swipeable
içindekiresistanceFactorAtMin
veresistanceFactorAtMax
parametreleri tek bir direnç parametresiyle değiştirildi.SwipeableConstants
'da yeni birdefaultResistanceConfig
yöntemi eklendi. (I54238)- Button ve FloatingActionButton için animasyonlu durum bilgili yükseklik desteği ekler. Yükseklik artık varsayılan ve basılı durumlar arasında animasyonlu olarak değişiyor. Durumlar arasındaki yüksekliği özelleştirmek için lütfen her durumda düz bir Dp değeri ayarlamak yerine
ButtonConstants.defaultAnimatedElevation()
veFloatingActionButtonConstants.defaultAnimatedElevation()
kullanın. (I37925) - Etiket, TextField ve OutlinedTextField içinde isteğe bağlı bir parametre haline geldi (I267f6, b/162234081).
Hata Düzeltmeleri
onNode
veyawaitForIdle
gibi genel test işlevlerinin desteği sonlandırıldı. Lütfen ComposeTestRule'da (I7f45a) tanımlanan yeni karşılıklarına geçin.- DpConstraints ve bunu kullanan API'ler kullanımdan kaldırıldı. (I90cdb, b/167389835)
- widthIn parametrelerinin minWidth ve maxWidth adları min ve max olarak değiştirildi. preferredWidthIn, heightIn, preferredHeightIn için de benzer değişiklikler yapıldı. (I0e5e1, b/167389544)
- İleri/geri kaydırma semantiği işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
- Yer çekimi kullanımları, düzen API'lerinde hizalama veya hizalama ile eşleşecek şekilde tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut olanlar kullanımdan kaldırılacağından ComposeTestRule'a onNode ve diğer genel yöntemler eklendi. (Ieae36)
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.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
ve androidx.compose.material:material-icons-extended:1.0.0-alpha02
yayınlandı. 1.0.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
- Deneysel bir BackdropScaffold bileşeni eklendi. (Iad908)
Hata Düzeltmeleri
- Matrix4, Matrix ile değiştirildi. Vectormath paketinin diğer tüm bölümleri kaldırıldı. (Ibd665, b/160140398)
Sürüm 1.0.0-alpha01
26 Ağustos 2020
androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
ve androidx.compose.material:material-icons-extended:1.0.0-alpha01
yayınlandı. 1.0.0-alpha01 sürümü şu commit'leri içerir.
Bilinen Sorun
= Bir malzemedeki ilk karakter TextField
, geri silme tuşuyla kaldırılamaz (b/165956313)
Sürüm 0.1.0-dev
Sürüm 0.1.0-dev17
19 Ağustos 2020
androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
ve androidx.compose.material:material-icons-extended:0.1.0-dev17
yayınlandı. Version 0.1.0-dev17 contains these commits.
API Değişiklikleri
- Daha önce desteği sonlandırılan RadioGroup ve RadioGroupItems kaldırıldı. Bunun yerine Row ve RadioButton'ı kullanın (I381b7, b/163806637)
- TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Border veri sınıfının yerini BorderStroke aldı (I4257d, b/158160576)
- SwipeableState'teki bazı özelliklerin adı değiştirildi: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. SwipeableState'ler oluşturmak için rememberSwipeableState işlevi eklendi. (I2fc9c, b/163129614, b/163132293)
- Konumlandırma ve uygun sıralama ile snackbar desteği eklendi.
SnackbarHostState.showSnackbar
askıya alma işlevini kullanarak erişebilirsiniz. Ayrıca:- SnackbarHost bileşenleri eklendi. Duruma göre Snackbars'ı barındırır ve Snackbars arasında geçiş yapmaktan sorumludur.
- Snackbar'lar ve snackbar ana makineleri üzerinde kontrol sağlamak ve bunları ScaffoldState'ten ayırmak için SnackbarHostState eklendi. Bu duruma
scaffoldState.snackbarHostState
üzerinden de erişebilirsiniz. - SnackbarHostState ile snackbar'lar arasında ortak arayüzü desteklemek için snackbar aşırı yüklemesi eklendi. (I79aaa)
- IconButton'a enabled parametresi ekleniyor ve IconToggleButton'daki parametreler yeniden sıralanıyor (I0a941, b/161809385, b/161807956)
- Dize tabanlı API'ye sahip ListItem sürümü kaldırıldı. Bunun yerine yuva sürümünü kullanın. (Ib8f57, b/161804681)
- Desteği sonlandırılan FilledTextField bileşeni kaldırıldı. Dolu metin alanının Material Design uygulamasını almak için lütfen bunun yerine TextField'ı kullanın. (I5e889)
- AlertDialog artık düğmeler için FlowRow kullanıyor (I00ec1, b/161809319, b/143682374)
- Sınırların ötesine kaydırıldığında direnç miktarını değiştirmek için Modifier.swipeable'a parametreler eklendi. [min/max]Value parametreleri kaldırıldı. (I93d98)
- LinearProgressIndicator'a backgroundColor parametresi eklendi ve CircularProgressIndicator'dan dahili dolgu kaldırıldı. Değerler arasında ilerleme animasyonu yaparken varsayılan AnimationSpec olarak kullanılabilecek yeni ProgressIndicatorConstants.DefaultProgressAnimationSpec eklendi (If38b5, b/161809914, b/161804677).
- Modifier.swipeable'a isteğe bağlı param velocityThreshold eklendi. (I698ba)
- bottomBarSize, fabSize ve diğerleri artık ScaffoldState'te kullanılamaz. Boyutunu öğrenmek istediğiniz bileşende Modifier.onPosition yerine kullanın. Scaffold'a contentColor ve Modifier parametreleri eklendi (Ic6f7b, b/161811485, b/157174382)
- Diğer API'lerle tutarlılık sağlamak için Tab'deki bazı parametreleri yeniden adlandırır ve yeniden sıralar (Ia2d12, b/161807532).
- TabRow'u TabRow ve ScrollableTabRow olarak böler, isScrollable'ı TabRow'dan kaldırır. Ayrıca, ScrollableTabRow'da edgePadding'i kullanıma sunar. Bu, sekmelerin öncesindeki / sonrasındaki boş alanı kontrol etmenizi sağlar. (I583e8, b/161809544)
TabRow
nesnesi kaldırıldı ve yerine TabConstants eklendi. TabRow.TabPosition üst düzeye (TabPosition) taşındı ve indicatorContainer,indicator
olarak yeniden adlandırıldı. Güncellenen API'nin ve varsayılanların nasıl kullanılacağı hakkında ayrıntılı bilgi için örneklere ve dokümanlara bakın. (I54d45, b/161809544)- Modifier.swipeable'daki eşikler parametresi ayarlandı. Artık T türünde bir durum çifti alıyor ve aralarındaki eşiği ThresholdConfig biçiminde döndürüyor. SwipeToDismiss'e bir lambda (DismissDirection) -> ThresholdConfig olan dismissThresholds parametresi eklendi. (Ie1080)
- Kaydırma çubuğu, ayrıntılı özelleştirme için daha fazla renge sahiptir (I73e64, b/161810475).
- Kartın renk parametresi backgroundColor olarak yeniden adlandırıldı (I01fc1, b/161809546)
- Snackbar'ın arka plan ve içerik renkleri artık özelleştirilebilir (I238f2, b/161804381)
- modifier, backgroundColor, contentColor ve scrimColor özelleştirme parametreleri Drawers'a (Çekmeceler) eklendi (I23655, b/161804378).
state { ... }
composable'ı artık netlik içinremember { mutableStateOf(...) }
'e yapılan açık çağrılar yerine kullanımdan kaldırıldı. Bu, durum yönetimi için genel API yüzeyini ve kavram sayısını azaltır ve sınıf özelliği temsilcisi içinby mutableStateOf()
modeliyle eşleşir. (Ia5727)- Button'ın dolgu parametresi contentPadding olarak yeniden adlandırıldı (Id252e, b/161809394)
- Deneysel bir materyal bileşeni olan SwipeToDismiss'i ekleyin. (I129e5)
Hata Düzeltmeleri
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine çocuk düzenindeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)- SemanticsPropertyKey'e mergePolicy lambda'sı eklendi. Bu, mergeAllDescendants semantiği birleştirme için özel bir politika tanımlamak üzere kullanılabilir. Varsayılan politika, zaten mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)
- IntSize artık satır içi bir sınıf (I2bf42)
PlacementScope.placeAbsolute()
,PlacementScope.place()
olarak yeniden adlandırıldı ve öncekiPlacementScope.place()
,PlacementScope.placeRelative()
olarak yeniden adlandırıldı. Sonuç olarak,PlacementScope.place()
yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmayacak. Bu isteniyorsa bunun yerinePlacementScope.placeRelative()
kullanılmalıdır. (I873ac, b/162916675)- Rect lehine PxBounds kullanımdan kaldırıldı. PxBounds'un tüm kullanımları rect ile güncellendi ve geçişe yardımcı olmak için uygun kullanımdan kaldırma/değiştirme notları eklendi. (I37038, b/162627058)
- RRect'i, Compose adlandırma kalıplarına daha iyi uyacak şekilde RoundRect olarak yeniden adlandırdı. RRect'e benzer işlev oluşturucular oluşturdu ve RRect işlev oluşturucularının desteğini sonlandırdı (I5d325).
Sürüm 0.1.0-dev16
5 Ağustos 2020
androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
ve androidx.compose.material:material-icons-extended:0.1.0-dev16
yayınlandı. Version 0.1.0-dev16 contains these commits.
API Değişiklikleri
- Renkler artık arayüz yerine nihai sınıf olarak kullanılıyor. Özel bir uygulama oluşturup genişletmek yerine, özel tema nesneniz için yeni bir ortam oluşturmalı ve tema nesnesine, MaterialTheme'in dahili olarak çalıştığına benzer şekilde bileşenlerinizdeki yeni ortam üzerinden erişmelisiniz. (Ibae84)
- Renk paletini, Materyal renk sistemiyle daha iyi eşleşmesi ve Materyal renk sisteminin belirli bir uygulaması olmaktan ziyade "genel" bir tema oluşturma nesnesi olduğu yönündeki kafa karışıklığını gidermek için Renkler olarak yeniden adlandırdık. Ayrıca lightColorPalette ve darkColorPalette'i sırasıyla lightColors ve darkColors olarak yeniden adlandırır. (I9e976, b/161812111)
- BottomNavigationItem'ın
text
parametresinilabel
,onSelected
parametresinionSelect
,activeColor
parametresiniselectedContentColor
,inactiveColor
parametresiniunselectedContentColor
olarak yeniden adlandırır ve parametre sıralamasını yönergelerle eşleşecek şekilde günceller. (Icb605, b/161809324) Modifier.stateDraggable
tamamen yeniden düzenlendi ve Modifier.swipeable olarak yeniden adlandırıldı. Yeni bir SwipeableState sınıfı kullanıma sunuldu. DrawerState ve BottomDrawerState, bu sınıftan devralacak şekilde yeniden düzenlendi. [Modal/Bottom]DrawerLayout artık onStateChange parametresini almıyor. (I72332, b/148023068)- foundation.shape.corner paketi foundation.share olarak düzleştirildi (I46491, b/161887429)
- ExperimentalMaterialApi ek açıklaması eklendi. RippleTheme deneysel olarak işaretlendi (Ic5fa0, b/161784800)
- En basit istenen API'nin kolayca bulunup kullanılabilmesi için Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676).
Hata Düzeltmeleri
- OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned kullanın. (I87f95, b/162109766)
- Geniş kapsamlı API düzeltmelerini ele alma (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve IntOffset sınıflarını tutarlı bir API yüzeyine sahip olacak şekilde hizalama
- IntOffset.Origin'i, Offset API ile tutarlı olması için IntOffset.Zero olarak yeniden adlandırın.
- Tüketicilerin kendi Canvas örneklerini oluşturabilmesi için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı.
- DrawScope'u lateinit yerine boş olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş olmamasını sağlamak için EmptyCanvas sınıfı oluşturuldu.
- ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı.
- FilterQuality numaralandırmaları Pascal Case olarak yeniden adlandırıldı
- StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı.
- Renamed PointMode enums to be Pascal Case
- Renamed PaintingStyle enums to be Pascal Case
- PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı.
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı.
- DrawCache uygulaması, lateinit parametrelerini kullanmayacak şekilde güncellendi.
- DrawScope, fillPaint ve strokePaint dahili parametreleri için artık geç yetki kullanmayacak şekilde güncellendi.
- Daha az ek yük için Box kullanımını önlemek üzere Image composable'ı güncelledi.
- Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi.
- Her yol talimatı için @Immutable ek açıklamaları içerecek şekilde PathNode güncellendi.
- Compose bu işlemleri zaten yaptığından, eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere Vector alt bileşimi güncellendi.
- İşlev oluşturucular lehine, Rect yardımcı oluşturucu yöntemleri kullanımdan kaldırıldı
- @Immutable ve @Stable API'lerle güncellenen Brush sınıfları ve işlev oluşturucuları
- VertexMode enum'ı PascalCase olacak şekilde güncellendi
- DrawScope selectPaint yöntemi, değişmişse boyadaki kontur parametrelerinin koşullu olarak üzerine yazılacak şekilde güncellendi.
- Yapı bozma API'si eklemek, UnspecifiedSize'ı Unspecified olarak yeniden adlandırmak ve kullanılmayan yöntemleri kaldırmak için Boyut güncellendi.
- Move dialog to ui (I47fa6)
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 dil desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilecek LayoutDirectionAmbient özelliği eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
- Modifier.deternimateProgress, Modifier.progressSemantics olarak yeniden adlandırıldı (I9c0b4)
- Material.io/icons adresine eklenen en son simgelerle material-icons-extended'ı günceller (I4b1d3).
- transitionDefinition için T türünün açıkça belirtilmesini zorunlu kılın. (I1aded)
- Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then kullanın. "Sonra" sıralama sinyali daha güçlüdür ve
Modifier.padding().background() + anotherModifier
yazılmasını da engeller. Bu, zinciri kırar ve okunmasını zorlaştırır (Iedd58, b/161529964). - AndroidComposeTestRule, createAndroidComposeRule olarak yeniden adlandırıldı. (I70aaf)
- isFocused() ve isNotFocused() SemanticsMatcher'ı ekleyin. (I0b760)
- Testlerde kullanılmaması gereken
BaseGestureScope.globalBounds
kaldırıldı. Bunun yerine, etkileşimde bulunduğunuz düğüme yerel koordinatları kullanın. (Ie9b08) - Kesik ekranlarda sabit pop-up konumu. (Idd7dd)
- Modifier.drawBackground, Modifier.background olarak yeniden adlandırıldı (I13677)
Sürüm 0.1.0-dev15
22 Temmuz 2020
androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
ve androidx.compose.material:material-icons-extended:0.1.0-dev15
yayınlandı. 0.1.0-dev15 sürümü şu commit'leri içerir.
Bağımlılıkları Güncelleme
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıklarınızı yukarıda Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
@Model
ek açıklaması artık kullanımdan kaldırıldı. Alternatif olarak state ve mutableStateOf'u kullanın. Bu desteği sonlandırma kararı, dikkatli bir şekilde yapılan birçok tartışmanın ardından alınmıştır.Gerekçe
Gerekçe aşağıdakileri içerir ancak bunlarla sınırlı değildir:
- API yüzey alanını ve öğretmemiz gereken kavramları azaltır.
- Diğer benzer araç setleriyle (Swift UI, React, Flutter) daha uyumlu
- Geri alınabilir karar.
@Model
adlı ürünü daha sonra istediğimiz zaman tekrar kullanıma sunabiliriz. @Model
yapılandırmasıyla ilgili, ele almamız gereken konular olarak uç durum kullanımını ve yanıtlanması zor soruları kaldırır.@Model
veri sınıfları, equals, hashcode vb.- Bazı mülklerimin "gözlemlenmesini" nasıl sağlarım?
- Gözlemde kullanılacak yapısal ve referans eşitliğini nasıl belirtirim?
- Sistemdeki "sihri" azaltır. Kullanıcıların sistemin olduğundan daha akıllı olduğunu (ör. bir listeyi nasıl karşılaştıracağını bildiğini) düşünme olasılığını azaltır.
- Gözlem ayrıntı düzeyini daha sezgisel hale getirir.
- Sınıftaki değişkenin özelliğe dönüştürülmesini kolaylaştırır.
- Eyalete özel, el yapımı optimizasyonlar yapma olasılığını artırır.
- Ekosistemin geri kalan kısmıyla daha uyumlu hale gelir ve değişmezlik veya "değişebilir durumu benimseme" konusundaki belirsizlik azalır.
Taşımayla ilgili notlar
@Model
sembolünün mevcut kullanımlarının neredeyse tamamı iki şekilde kolayca dönüştürülebilir. Aşağıdaki örnekte, yalnızca örnek olması için iki özelliği olan bir@Model
sınıfı ve bu sınıfın bir composable'da kullanımı gösterilmektedir.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
1. alternatif:
State<OriginalClass>
simgesini kullanarak kopya oluşturun.Bu yaklaşım, Kotlin'in veri sınıflarıyla daha kolay hale gelir. Temel olarak, daha önce
var
olan tüm özellikleri bir veri sınıfınınval
özellikleri haline getirin, ardındanremember
yerinestate
kullanın ve veri sınıfıcopy(...)
kolaylık yöntemini kullanarak orijinalin klonlanmış kopyalarına durum değerini atayın.Bu yaklaşımın yalnızca söz konusu sınıfta yapılan tek değişiklikler
State
örneğinin oluşturulduğu kapsamda yapıldığında işe yaradığını unutmayın. Sınıf, kullanım kapsamı dışında kendi içinde değişiyorsa ve bunu gözlemlemeye güveniyorsanız kullanmak isteyeceğiniz yaklaşım bir sonraki yaklaşımdır.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
2. alternatif: mutableStateOf ve özellik temsilcilerini kullanma
Bu yaklaşım, Kotlin'in özellik temsilcileri ve
mutableStateOf
API ile kolaylaştırılır. Bu API, kompozisyon dışında MutableState örnekleri oluşturmanıza olanak tanır. Temel olarak, orijinal sınıfın tümvar
özelliklerini, özellik temsilcisi olarakmutableStateOf
olanvar
özellikleriyle değiştirin. Bu yaklaşımın avantajı, sınıfın kullanımının hiç değişmemesi, yalnızca dahili uygulamasının değişmesidir. Ancak her mülk artık ayrı ayrı gözlemlendiği/abone olunduğu için davranış, orijinal örnekle tamamen aynı değildir. Bu nedenle, bu yeniden düzenlemeden sonra gördüğünüz yeniden oluşturmalar daha dar olabilir (bu iyi bir şeydir).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
Metin alanlarındaki onFocusChange geri çağırma işlevi onFocusChanged olarak yeniden adlandırıldı (Ida4a1).
Çapalar arasındaki eşikleri belirtmek için stateDraggable'a eşik parametresi eklendi. Bu, alt çekmecede 56 dp eşiği ayarlamak için kullanıldı. Ayrıca BottomDrawerLayout artık ayrı bir BottomDrawerState enum'ı kullanıyor. (I533fa)
Daha önce kullanımdan kaldırılan Modifier.ripple öğesini kaldırır. Clickable artık varsayılan gösterge olarak dalgalanmayı kullanıyor (uygulamanızda MaterialTheme {} ayarlanmışsa). Bu nedenle, çoğu durumda yalnızca clickable'ı kullanabilir ve dalgalanma göstergesini ücretsiz olarak alabilirsiniz. Dalgalanmanın rengini, boyutunu veya sınırlı parametresini özelleştirmeniz gerekiyorsa RippleIndication'ı manuel olarak oluşturabilir ve bunu tıklanabilir öğeye gösterge parametresi olarak iletebilirsiniz. (I663b2, b/155375067)
Desteği sonlandırılan FilledTextField composable'ın geçersiz kılınması kaldırıldı (I7f8f8).
Button işlevi tarafından kullanılan varsayılanları içeren Button nesnesini ButtonConstants olarak yeniden adlandırın (I7c5f7, b/159687878).
Düğme'nin içerik alanı artık Satır olarak davranıyor (metinle birlikte bir simgeye ihtiyacınız olduğunda kullanışlıdır. Düğme'ye nasıl yazılacağıyla ilgili örnekleri inceleyin) (I0ff10, b/158677863)
RadioGroup ve RadioGroupItem desteği sonlandırıldı. Tasarımınıza göre uygun bir radyo düğmesi seçimi grubu oluşturmak için Modifier.selectable, Row ve Column ile birlikte Box'ı kullanın (I7f5cf, b/149528535).
Added Material Outlined Textfield (I1a518)
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField composable'larının desteği de sonlandırıldı. Lütfen bunun yerine androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005).
TabRow.TabPosition, IntPx'te değil Dp'de konum içeriyor (I34a07, b/158577776)
IntPx kullanımı Int ile değiştirildi. IntPxPosition, IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Boyutlandırma 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 kayan nokta olarak temsil etmek için 2 kayan nokta değerini paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (Ic0191)
Modifier.ripple kullanımdan kaldırıldı. Clickable artık varsayılan gösterge olarak dalgalanmayı kullanıyor (uygulamanızda MaterialTheme {} ayarlanmışsa). Bu nedenle, çoğu durumda yalnızca clickable'ı kullanabilir ve dalgalanma göstergesini ücretsiz olarak alabilirsiniz. Dalgalanmanın rengini, boyutunu veya sınırlı parametresini özelleştirmeniz gerekiyorsa RippleIndication'ı manuel olarak oluşturabilir ve bunu tıklanabilir öğeye gösterge parametresi olarak iletebilirsiniz. (I101cd, b/155375067)
Scaffold API yeniden düzenlendi: Bazı parametrelerin adı değiştirildi ve daha iyi özelleştirme için yeni parametreler eklendi. Fab, TopBar ve BottomBar boyutlarını sorgulamak için getter eklendi (I0e7ce)
Materyal Tasarım menü uygulaması olan ui-material'a DropdownMenu bileşeni eklendi. (I9bb3d)
SoftwareKeyboardController'ı (Ifb9d6, b/155427736) kullanarak yazılım klavyesinin manuel olarak gösterilmesine/gizlenmesine izin verin.
Modifier.indication, temel pakete eklendi. Özel etkileşimli öğelerinizde (I8425f, b/155287131) basma/sürükleme/diğer göstergeleri göstermek için kullanın.
CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. Density arayüzünü uygulamak ve LayoutDirection'ı sağlamak için DrawScope güncellendi. ContentDrawScope'taki silinen DrawScope alt sınıfı Painter ve PainterModifier, DrawScope bunu zaten sağladığı için artık RTL özelliği tutmayacak şekilde güncellendi (I1798e).
Emphasis.emphasize() işlevini Emphasis.applyEmphasis() olarak yeniden adlandırır (Iceebe).
Devre dışı bırakılan düğmeler artık görsel olarak Materyal Tasarım spesifikasyonuna uygun (I47dcb, b/155076924)
FilledTextField, IME işlemi, görsel dönüştürme ve klavye türü desteği alır (I1f9cf, b/155075201)
Kenarlık boyutunu özelleştirmek için CircularProgressIndicator'a strokeWidth parametresini ekler. LinearProgressIndicator'ın kontur boyutunu (yüksekliğini) değiştirmek için Modifier.preferredHeight() veya başka bir boyut değiştirici kullanabilirsiniz. (Icea16, b/154919081)
Kenarlık boyutunu özelleştirmek için CircularProgressIndicator'a strokeWidth parametresini ekler. LinearProgressIndicator'ın kontur boyutunu (yüksekliğini) değiştirmek için Modifier.preferredHeight() veya başka bir boyut değiştirici kullanabilirsiniz. (Icea16, b/154919081)
FilledTextField'daki sondaki ve baştaki simgeler için yuva API'si eklendi ve hata durumu işlendi (Ic12e0).
FAB'lerin ve Extended FAB'lerin varsayılan rengi MaterialTheme.colors.secondary olarak değiştirildi. (I3b9b9, b/154118816)
API'deki tüm null değer atanabilir Color kullanımları, null değer atanabilir olmayanlarla değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7).
EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Malzeme düğmelerinin innerPadding parametresi, padding olarak yeniden adlandırıldı. (I66165)
Kaydırma çubuğu artık durum bilgisi içermiyor. Kullanıcıların, diğer kontrollerde olduğu gibi durumu kendilerinin iletmesi ve güncellemesi gerekir. (Ia00aa)
StaticDrawer kaldırıldı. Gerekirse bunun yerine malzeme özellikli genişliğe sahip Box'ı kullanın (I244a7).
Dolu metin alanı (Ic75cd) için Materyal Tasarım uygulaması eklendi.
ListItem'a değiştirici parametre eklendi ve parametreler, sondaki lambda gövdesini destekleyecek şekilde yeniden sıralandı (I66e21).
Typography'ye defaultFontFamily oluşturucu parametresini ekler. Bu sayede, ailesi ayarlanmamış tüm TextStyles için kullanılacak varsayılan yazı tipi ailesinin belirtilmesine olanak tanır. (I89d07)
Materyal Veri Tabloları, API yüzeyinden geçici olarak kaldırıldı. (Iaea61)
Divider composable'daki parametreler yeniden adlandırıldı (Ic4373)
çocuklar (Ia6d19)
MaterialTheme.emphasisLevels kaldırıldı. Bunun yerine vurgu düzeylerini almak için EmphasisAmbient.current kullanılacak (Ib5e40).
Şekil temalandırma sistemi, Material Design spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğunda (Ifb4d1) kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz.
MaterialTheme.colors() ve MaterialTheme.typography() gibi MaterialTheme API'leri işlev yerine özellik olacak şekilde değiştirildi. Mevcut çağrılardan parantezleri kaldırın. Davranışta herhangi bir değişiklik beklenmez. (I3565a)
FloatingActionButton API'leri, temel öğeler yerine composable lambda'ları kabul edecek şekilde yeniden düzenlendi. Kullanım bilgileri için güncellenen örneklere bakın. (I00622)
Checkbox, Switch ve Toggleable'a
enabled
parametresi ekleyin (I41c16)Dalgalanma artık bir değiştirici. Clickable henüz dönüştürülmediğinden önerilen kullanım
Clickable(onClick = { ... }, modifier = ripple())
'dır (Ie5200, b/151331852, b/150060763).Surface ve Card, androidx.ui.material.surface'ten androidx.ui.material'a taşındı (I88a6d, b/150863888).
Button, FloatingActionButton ve Clickable artık ayrı bir
enabled
parametresine sahip. Button'daki bazı parametreler yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)Resim verileri ile düzenlemeye katılmak ve içerik çizmek için kullanılan, yakında kullanıma sunulacak Image composable arasındaki farkı daha iyi ayırt etmek için Image, ImageAsset olarak yeniden adlandırıldı. _Body:android.graphics.Bitmap üzerinde, geleneksel Android uygulama geliştirmeyi Compose çerçevesiyle birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere Bitmap.asImageAsset() adlı bir uzantı yöntemi oluşturuldu (Id5bbd).
Composable lambda'ları kabul eden aşırı yüklemeyi kullanmak için String parametreleri içeren Snackbar API kaldırıldı. Kullanım bilgileriyle ilgili güncellenmiş örneklere göz atın (I55f80)
text
veicon
lambda'larını kabul etmek için Sekme API'leri yeniden düzenlendi (Ia057e).BottomNavigation bileşeni eklendi. Kullanım bilgileri için belgelere ve örneklere bakın (I731a0).
AppBarIcon kaldırıldı, Icon, IconButton ve IconToggleButton eklendi. AppBarIcon'un mevcut kullanımlarını doğrudan IconButton ile değiştirebilirsiniz. Bu durumda, doğru dokunma hedefi kullanılır. Kullanım bilgileri için örneklere, bu bileşenlerle doğrudan kullanabileceğiniz sağlanan Material Icons için de Simgeler bölümüne bakın. (I96849)
ButtonStyle, ayrı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenen örneklere bakın. (If63ab, b/146478620, b/146482131)
Border
değiştiricisiniDrawBorder
olarak yeniden adlandırın (I8ffcc)LayoutCoordinates artık bir konum özelliğine sahip değil. LayoutModifiers, döndürme veya ölçekleme göz önünde bulundurulduğunda konum özelliği anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'ten diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() işlevlerini kullanmalıdır.
LayoutCoordinates, boyut özelliği için PxSize yerine IntPxSize kullanıyor. Düzenlerde tam sayı piksel boyutları kullanılır. Bu nedenle, tüm düzen boyutlarında kayan nokta değerleri değil, tam sayılar kullanılmalıdır. (I9367b)
Ambients API'de önemli değişiklikler yapıldı. Ayrıntılar için günlük ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)İskele materyali bileşeni eklendi. İskele ekipmanları (I7731b)
Border Modifier (Id335a) lehine DrawBorder değiştirildi.
Hata Düzeltmeleri
- FocusModifier, Modifier.focus, Modifier.focusRequester, Modifier.focusObserver lehine kullanımdan kaldırıldı. FocusState ve FocusDetailedState, FocusState2 lehine kullanımdan kaldırıldı (I46919, b/160822875, b/160922136)
- VerticalScroller ve HoriziontalScroller kullanımdan kaldırıldı. Column/Row davranışı ve parametreleri ya da Modifier.verticalScroll ve Modifier.horizontalScroll ile yerleşik deneyim için kendi öğenizde ScrollableColumn ve ScrollableRow'u kullanın. Benzer şekilde, ScrollerPosition, ScrollState'in (I400ce, b/157225838, b/149460415, b/154105299) lehine kullanımdan kaldırıldı.
- Modifier.draggable ve Modifier.scrollable API'leri yeniden düzenlendi. Orientation özelliği eklendiği için DragDirection özelliği kaldırıldı. Kaydırılabilir öğeler için gerekli durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
runOnIdleCompose
,runOnIdle
olarak yeniden adlandırıldı (I83607)- Tek değerli semantik özellikler artık bir çağırma stili kullanıyor. Örneğin, "semantics { hidden = true }" artık şu şekilde yazılıyor: "semantics { hidden() }". (Ic1afd, b/145951226, b/145955412)
- Birkaç test API'si daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'leri onNodeXYZ olarak yeniden adlandırıldı. Tüm doXYZ API'leri performXYZ olarak yeniden adlandırıldı. (I7f164)
- Transition API, TransitionState'i alt öğelere iletmek yerine TransitionState döndürecek şekilde değiştirildi. Bu değişiklik, API'yi animate() API'leriyle daha tutarlı hale getirir. (I24e38)
- Düzenden gelen tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'si, kullanılacak şekilde güncellendi. (I0d8d0, b/159596546)
- Test bulucularına isteğe bağlı yeni bir işaret olan useUnmergedTree eklendi. (I2ce48)
- Eski boyut testi API'leri kaldırıldı. (Iba0a0)
- NativeShader sınıfını sarmalayan Shader satır içi sınıfı kaldırıldı. NativeShader, Shader olarak yeniden adlandırıldı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklemedi ve satır içi sınıf olduğundan NativeShader sınıfını doğrudan kullanın. (I25e4d)
- Pop-up'lar, iletişim kutuları ve menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485).
- Material DropdownMenu artık kaydırılabilir. (Ide699)
- Layout() işlevinin ölçü bloğundan düzen yönü parametresi kaldırıldı. Ancak düzen yönü, ölçüm kapsamı nesnesi (Ic7d9d) aracılığıyla geri çağırma içinde kullanılabilir.
- Statik animasyon spesifikasyonu kavramını netleştirmek için üst düzey API'lerde AnimationBuilder yerine AnimationSpec kullanın. -Tween ve spring gibi AnimationSpec'ler oluşturmak için lambda şartını kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine doğrudan oluşturucu parametrelerini alır. -Oluşturuculara güvenmek yerine oluşturucuları açarak AnimationSpec'in genel kullanım kolaylığını iyileştirin. -KeyFrame'lerin ve Tween'in süresini ve gecikmesini Int olarak değiştirin. Bu, gereksiz tür yayınlarını ve yöntem aşırı yüklemesini (hem Long hem de Int'i desteklemek için) ortadan kaldırır. (Ica0b4)
enabled
değeri false olarak ayarlandığında geçiş düğmesi devre dışı olarak gösteriliyor (If4624, b/155941869, b/159331694)- Modifier.tag, Modifier.testTag ile karışıklığı önlemek için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
- Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi Int konumları artık boş değer içermez. Sorgulanan hizalama çizgisi eksikse AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)
Yarıçap sınıfı, satır içi sınıf olacak şekilde yeniden düzenlendi. Y ekseni boyunca yarıçapın zorunlu x ekseni yarıçap parametresine uyması için varsayılan parametreye sahip işlev oluşturucu lehine eşlikçi oluşturma yöntemleri kaldırıldı.
DrawScope.drawRoundRect, x ve y ekseni boyunca yarıçap için 2 ayrı kayan nokta değeri yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi (I46d1b).
Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan değerler olarak temsil edilen x ve y kaymalarını temsil etmek için 2 kayan değer paketlemek üzere uzun bir değerden yararlanmak için satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfının tamamı silindi (I3ff33)
Açılıp kapatılabilen bileşen kullanımdan kaldırıldı. Bunun yerine Modifier.toggleable'ı kullanın (I35220, b/157642842)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I086f4).
Yalnızca piksel parametreleri için Dp ve temel türlere güvenmek üzere büyük bir yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Id3434).
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a).
onClick'in DropdonMenuItems için çağrılmaması sorunu düzeltildi. (I3998b, b/157673259)
MutuallyExclusiveSetItem kullanımdan kaldırıldı. Bunun yerine Modifier.selectable kullanın. (I02b47, b/157642842)
TestTag desteği sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
TextField'ın imleci yanıp sönme animasyonuna sahip (Id10a7)
Yalnızca piksel parametreleri için Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (I19d02).
VerticalScroller artık kullanıma hazır sütun sunuyor. HorizontalScroller artık kullanıma hazır Row sağlar. (Ieca5d, b/157020670)
Piksel parametreleri için yalnızca Dp ve temel türlerin kullanılmasına yönelik büyük yeniden düzenleme çalışması kapsamında çeşitli Compose sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b).
Yüksek düzeyli bileşenlerin kullanılmasına izin vermek için Modifier.semantics'in desteği sonlandırılmadı. (I4cfdc)
DrawLayer değiştiricileri API'sinde değişiklik yapıldı: outlineShape, shape olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip olup artık null yapılamaz; clipToOutline, clip olarak yeniden adlandırıldı; clipToBounds, RectangleShape ile clip == true aynı olduğundan kaldırıldı (I7ef11, b/155075735)
Canvas yerine CanvasScope'u kullanıma sunan, daha üst düzeydeki Compose API'leri güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini korumasına gerek kalmaz. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, temel Canvas ile çizim komutları vermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
AlignmentLineOffset composable desteği sonlandırıldı. Lütfen bunun yerine relativePaddingFrom() değiştiricisini kullanın. CenterAlignmentLine composable kaldırıldı. (I60107)
WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalara ve layoutDirection'a ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702).
Varsayılan minimum boyut kısıtlamaları düzen değiştiricisi eklendi. Bu değiştirici, gelen karşılık gelen kısıtlamalar belirtilmediğinde (minimum kısıtlamalar için 0, maksimum kısıtlamalar için sonsuz) boyut kısıtlamalarını yalnızca sarmalanmış düzene ayarlar. (I311ea, b/150460257)
FocusManagerAmbient kaldırıldı. Odaklanmak için FocusModifier.requestFocus'i kullanın. (Ic4826)
Durum bilgisi içermeyen, bildirim temelli bir çizim API'si yüzeyi sunmak için Canvas nesnesini sarmalayan CanvasScope API'si oluşturuldu. Dönüşümler kendi alıcı kapsamlarında yer alır ve boyutlandırma bilgileri de ilgili yerleştirme sınırlarına göre kapsamlandırılır. Çizim işlemlerini yapılandırmak için tüketicinin kendi Paint durumu nesnesini korumasını gerektirmez.
CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli grafikler demosunu (Ifd86d) içerecek şekilde güncellendi.
TextField'a imleç rengi özelleştirme özelliği ekleyin (I6e33f)
TextField ile kullanılan TextFieldValue artık şu şekilde kullanıldığında etkinlik yeniden oluşturulmasına dayanabilir:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Desteği sonlandırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Odak alt sistemiyle entegrasyon için CoreTextField/TextField focusIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)
Layout ve LayoutModifier2'deki doğal ölçüm işlevleri artık doğal ölçüm sorgu API'sini örtülü olarak yayılmış düzen yönüyle sağlayan bir IntrinsicMeasureScope alıcısına sahip. (Id9945)
Aynı üst düzendeki alt öğelerin çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklendi. DrawLayerModifier üzerindeki elevation özelliği shadowElevation olarak yeniden adlandırıldı ve artık çizim sırasını kontrol etmiyor. DrawShadow'un parametre sırası değiştirildi: Yükseklik artık ilk parametre, şekil ise RectangleShape varsayılanıyla ikinci parametre. (I20150, b/152417501)
RectangleShape, androidx.ui.foundation.shape.* konumundan androidx.ui.graphics.* konumuna taşındı. (Ia74d5, b/154507984)
TextField API güncellemesi: onFocus ve onBlur geri çağırmaları, parametre içeren tek bir onFocusChange(Boolean) geri çağırmasında birleştirildi (I66cd3).
Satır ve Sütun'a sırasıyla verticalGravity ve horizontalGravity parametreleri eklendi. (I7dc5a)
wrapContentWidth ve wrapContentHeight, herhangi bir hizalama yerine dikey veya yatay hizalama bekleyecek şekilde güncellendi. Yer çekimi değiştiricisi, dikey veya yatay hizalamayı kabul edecek şekilde güncellendi. Satır, sütun ve yığın, özel sürekli hizalamaları destekleyecek şekilde güncellendi. (Ib0728)
ImageAsset'ten piksel bilgileri sorgulamayı desteklemek için PixelMap API'si oluşturuldu. (I69ad6)
ProvideContentColor kaldırıldı. Bunun yerine doğrudan
Providers
ile ContentColorAmbient kullanılacak (Iee942).ui-text-compose modülünün adı ui-text olarak değiştirildi. ui-text artık CoreText ve CoreTextField composable'larını içeriyor (Ib7d47).
ui-text modülünün adı ui-text-core olarak değiştirildi (I57dec).
ui-framework/CoreText ve CoreTextField composable'ları ui-text-compose altına taşındı. Projenize ui-text-compose'u eklemek isteyebilirsiniz. (I32042)
DrawModifier API'yi iyileştirme:
- draw() ContentDrawScope için alıcı kapsamı oluşturuldu.
- 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)
runOnIdleCompose
verunOnUiThread
artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)[Değiştirilebilir]Durum özelliği temsilcisi operatörleri, Kotlin 1.4 özellik temsilcisi optimizasyonlarını desteklemek için uzantılara taşındı. Arayanların
by state { ... }
veyaby mutableStateOf(...)
'u kullanmaya devam etmek için içe aktarma işlemleri eklemesi gerekir. (I5312c)LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
ColoredRect desteği sonlandırıldı. Bunun yerine Box(Modifier.preferredSize(width, height).drawBackground(color)) kullanın. (I499fa, b/152753731)
LayoutResult, MeasureResult olarak yeniden adlandırıldı. (Id8c68)
Düzen değiştiricileri tanımlamak için yeni bir API olan LayoutModifier2 eklendi. LayoutModifier (If32ac) desteği sonlandırıldı.
Değiştirici artı operatör, fabrika uzantısı işlevleriyle değiştirildi (I225e4).
Draggable, değiştiriciye taşındı (Id9b16, b/151959544)
ParentData composable kullanımdan kaldırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya yalnızca düzen çocuklarını ölçü bloğunda tanımak için etiketlemeniz gerekiyorsa LayoutTag değiştiricisini kullanmanız gerekir. (I51368, b/150953183)
Desteği sonlandırılan Center composable'ı. LayoutSize.Fill + LayoutAlign.Center değiştiricisiyle veya uygun değiştiricilerin uygulandığı Box ya da Stack composable'larından biriyle değiştirilmelidir (Idf5e0).
Vektör grafikler için mevcut alt bileşim API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine VectorPainter nesnesidir. VectorPainter lehine önceki DrawVector composables'ın desteği sonlandırıldı.
Image(Painter) API'sinin adı PaintBox(Painter) olarak değiştirildi. ImageAsset yerine VectorAsset ile çalışan, Image composable'a benzer şekilde davranan Vector composable oluşturuldu (I9af9a, b/149030271).
LayoutFlexible, LayoutWeight olarak yeniden adlandırıldı. Sıkı parametre, doldurma olarak yeniden adlandırıldı. (If4738)
DrawLayerModifier lehine RepaintBoundary kaldırıldı (I00aa4)
DrawVector, normal bir composable işlevden, vektörü bir düzenin arka planı olarak çizecek bir Modifier drawVector() döndürecek şekilde değiştirildi. (I7b8e0)
Opacity composable işlevinin yerini drawOpacity değiştiricisi aldı. (I5fb62)
Clip composable işlevini drawClip() değiştiricisiyle değiştirin. DrawClipToBounds, yalnızca dikdörtgen şekliyle katman sınırlarını kırpmanız gerektiğinde kullanabileceğiniz kullanışlı bir değiştiricidir. (If28eb)
DrawShadow composable işlevi, drawShadow() modifier ile değiştirildi. Gölgeler artık LayerModifier'ın bir parçası olarak çiziliyor. (I0317a)
Düzen için RenderNode eklemeye olanak tanıyan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçekleme ve gölge ayarlamaya olanak tanır. Bu, RepaintBoundary'nin yerini alacak. (I7100d, b/150774014)
androidx.compose.ViewComposer, androidx.ui.node.UiComposer'a taşındı. androidx.compose.Emittable kaldırıldı. ComponentNode ile gereksizdi. androidx.compose.ViewAdapters kaldırıldı. Bu özellikler artık desteklenen bir kullanım alanı değildir. Compose.composeInto desteği sonlandırıldı. Bunun yerine
setContent
veyasetViewContent
kullanın. Compose.disposeComposition kullanımdan kaldırıldı. Bunun yerinesetContent
tarafından döndürülenComposition
üzerindedispose
yöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto olarak taşındı ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı ComponentNode#emitRemoveAt, ComponentNode#removeAt olarak yeniden adlandırıldı ComponentNode#emitMode, ComponentNode#move olarak yeniden adlandırıldı (Idef00)Belirli bir ImageAsset'i ekrana çizmenin yanı sıra boyutlandırma/düzenlemeyi de işlemek için CreatedImage composable'ı. Bu composable, kendi boyutuna uygun şekilde herhangi bir Painter örneğinin çizilmesini desteklemenin yanı sıra belirli bir sabit boyutu veya minimum boyutu da destekler (Ibcc8f).
Desteği sonlandırılan Wrap composable'ı. LayoutAlign değiştiricisi veya Stack composable (Ib237f) ile değiştirilebilir.
WithConstraints, LayoutDirection parametresini aldı (I6d6f7)
Düzen yönünün üst düzen düğümünden alt öğelere yayılması sağlandı. Düzen yönü değiştiricisi eklendi. (I3d955)
Stack bileşeni, sağdan sola yönü destekler (Ic9e00).
DrawShape composable'ı kaldırıldı. Bunun yerine DrawBackground değiştiricisini kullanın. (I7ceb2)
LayoutPadding değiştiricisinde sağdan sola yön desteği (I9e8da)
Yalnızca görünür öğeleri oluşturan ve yerleştiren bir kaydırma listesi bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan değişikliklerin tümünü tam olarak ele almaması yer almaktadır. (Ib351b)
ComposeFlags.COMPOSER_PARAM
işaretinitrue
olarak güncelledik. Bu değişiklik, Compose eklentisinin kod oluşturma stratejisini etkileyecek. Bu durum, üst düzeyde, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün bir şekilde yönetebilmesi için sonraki @Composable çağrılarına iletilir. Bu, önemli bir ikili uyumluluğu bozan değişikliktir ancak Compose'un izin verilen tüm kullanımlarında kaynak düzeyinde uyumluluğu korur. (I7971c)Tuval bileşeni eklendi. Bu composable, belirli bir boyutu (kullanıcı tarafından sağlanır) kaplar ve CanvasScope (I0d622) kullanarak çizim yapmanıza olanak tanır.
Yoğunluk ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current kullanabilirsiniz. withDensity(density) yerine sadece with(density) kullanılmalıdır (I11cb1).
LayoutCoordinates, sağlananAlignmentLines'ı Map yerine Set olacak şekilde değiştirildi ve değer almak için LayoutCoordinates'in get() operatörünü uygulaması sağlandı. Bu sayede, değiştiriciler, her değiştirici için yeni bir koleksiyon oluşturmadan kümenin bir veya daha fazla değerini daha kolay değiştirebilir. (I0245a)
Kaydırma çubukları artık yerel Android hızlı kaydırma hareketi davranışını sergiliyor. (I922af, b/147493715)
Kısıtlamaların API yüzeyinde iyileştirmeler (I0fd15)