Materyal Oluşturma
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ü |
---|---|---|---|---|
13 Kasım 2024 | 1.7.5 | - | - | 1.8.0-alpha06 |
Yapı
Oluşturma, androidx
içindeki 7 Maven grup kimliğinin birleşimidir. Her grup, kendi sürüm notlarına sahip hedeflenen bir işlev alt kümesi içerir.
Bu tabloda, gruplar ve her sürüm notları grubunun bağlantıları açıklanmaktadır.
Grup | Açıklama |
---|---|
compose.animation | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyon oluşturabilirler. |
compose.compiler | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisi ile 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'da açıklananlarla eşleşen bileşenler sağlamak için tasarlanmış Compose'un üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarım'ın bir sonraki aşaması olan Materyal Tasarım 3 bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3, güncellenmiş temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içerir ve yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. |
compose.runtime | Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Derleyici Eklentisi'nin hedeflemesi gereken temel çalışma zamanı. |
compose.ui | Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşimde bulunmak için gereken oluşturma kullanıcı arayüzünün temel bileşenleri. |
Bağımlılıkları beyan etme
Compose'a bağımlı eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.
Uygulamanızın veya modülünüzün build.gradle
dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:
Groovy
dependencies { implementation "androidx.compose.material:material:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
1.8 sürümü
Sürüm 1.8.0-alpha06
13 Kasım 2024
androidx.compose.material:material-*:1.8.0-alpha06
yayınlanır. 1.8.0-alpha06 sürümü bu taahhütleri içerir.
Sürüm 1.8.0-alpha05
30 Ekim 2024
androidx.compose.material:material-*:1.8.0-alpha05
yayınlanır. 1.8.0-alpha05 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
contentPadding
değiştiğinde her zaman gövde içeriğinin yeniden derlenmesini önlemek içincontentPadding
iskelet davranışını optimize edin. (I8c8e2, b/373904168)- Kontrol tuşlarına basıldığında malzeme kaydırma çubuğunun değerini değiştirmesini sağlayın. (I1c442)
Sürüm 1.8.0-alpha04
16 Ekim 2024
androidx.compose.material:material-*:1.8.0-alpha04
yayınlanır. 1.8.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kararlı temel sürüme sabitlemek için
readOnly
'üTextFields
'ten kaldırın. (I3aaba)
Hata Düzeltmeleri
- Android S+'te genişleyen bileşenlerde (ör. tıklandığında genişleyen bir kart) dalgalanma desteği ekler. Daha önce dalga yeni boyutu doldurmazdı ancak artık yeni sınırlara kadar genişletilecek. (If509a, b/183019123)
Sürüm 1.8.0-alpha02
18 Eylül 2024
androidx.compose.material:material-*:1.8.0-alpha02
yayınlanır. 1.8.0-alpha02 sürümü bu taahhütleri içerir.
Sürüm 1.8.0-alpha01
4 Eylül 2024
androidx.compose.material:material-*:1.8.0-alpha01
yayınlanır. 1.8.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Güvenli bağımsız değişkenlerle bir bottomSheet oluşturmak için yeni
NavGraphBuilder.bottomSheet
oluşturucu eklendi ((I28589, I777db, b/351858980))
1.7 sürümü
Sürüm 1.7.5
30 Ekim 2024
androidx.compose.material:material-*:1.7.5
yayınlanır. 1.7.5 sürümü bu taahhütleri içerir.
Sürüm 1.7.4
16 Ekim 2024
androidx.compose.material:material-*:1.7.4
yayınlanır. 1.7.4 sürümü bu taahhütleri içerir.
1.7.2 sürümü
18 Eylül 2024
androidx.compose.material:material-*:1.7.2
yayınlanır. 1.7.2 sürümü bu taahhütleri içerir.
1.7.1 sürümü
10 Eylül 2024
- Android yapılarında değişiklik yapılmamıştır.
-desktop
yapı kaldırıldı ve-jvmStubs
ile-linuxx64Stubs
yapıları eklendi. Bu hedeflerin hiçbiri kullanılmak için tasarlanmamıştır. Bunlar, Jetbrains Compose çalışmalarına yardımcı olan yer tutuculardır.
1.7.0 sürümü
4 Eylül 2024
androidx.compose.material:material-*:1.7.0
yayınlanır. 1.7.0 sürümü bu taahhütleri içerir.
1.6.0 sürümünden bu yana yapılan önemli değişiklikler
- Materyal bileşenleri, yeni dalga API'lerini kullanacak şekilde taşındı ve artık
RippleTheme
'yi sorgulamaz. - Daha önce
MutableInteractionSource
kabul eden ve varsayılan olarakremember { MutableInteractionSource() }
olan materyal bileşenleri artık null kabul eder ve varsayılan olarak null olur.MutableInteractionSource
MutableInteractionSource
öğesini kaldırmayıp kullanmıyorsanız null değerini iletmeniz gerekir. Bu sayede bazı bileşenler, yalnızca gerektiğinde tembel bir şekilde 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
yayınlanır. 1.7.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta07
7 Ağustos 2024
androidx.compose.material:material-*:1.7.0-beta07
yayınlanır. 1.7.0-beta07 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta06
24 Temmuz 2024
androidx.compose.material:material-*:1.7.0-beta06
yayınlanır. 1.7.0-beta06 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta05
10 Temmuz 2024
androidx.compose.material:material-*:1.7.0-beta05
yayınlanır. 1.7.0-beta05 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta04
26 Haziran 2024
androidx.compose.material:material-*:1.7.0-beta04
yayınlanır. 1.7.0-beta04 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta03
12 Haziran 2024
androidx.compose.material:material-*:1.7.0-beta03
yayınlanır. 1.7.0-beta03 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-beta02
29 Mayıs 2024
androidx.compose.material:material-*:1.7.0-beta02
yayınlanır. 1.7.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Bağlantıların stilini belirlemek için API'yi güncelleme:
TextLinkStyles
öğesiniTextStyle
öğesine taşıdık veTextDefaults
öğesini materyalden kaldırdık (I5477b)
Sürüm 1.7.0-beta01
14 Mayıs 2024
androidx.compose.material:material-*:1.7.0-beta01
yayınlanır. 1.7.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Metin biçiminde Materyal temalı bağlantılar almak için API güncellendi. Özellikle, temalı
LinkAnnotations
oluşturmak ve temalı bağlantılarla HTML'yi ayrıştırmak içinTextDefaults
'ten yöntemler kaldırıldı. Bunun yerine, bağlantılara stil uygulamak için metin bileşenine parametre olarakTextLinkStyles
sınıfı eklendi. (I31b93)
Sürüm 1.7.0-alpha08
1 Mayıs 2024
androidx.compose.material:material-*:1.7.0-alpha08
yayınlanır. 1.7.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
backgroundColor
'ünTextFieldDecorationBox
veOutlinedTextFieldDecorationBox
için geçerli olmaması sorununu düzeltin. Dekorasyon kutuları artıkshape
parametresini kabul ediyor. (I371c2, b/307694651)RippleConfiguration#isEnabled
kaldırıldı veLocalRippleConfiguration
null değerini kabul edecek şekilde değiştirildi. Bir dalgalanmayı devre dışı bırakmak içinisEnabled = false
ileRippleConfiguration
yerinenull
ileLocalRippleConfiguration
sağlayın. (I22725)- Metin bağlantılarında, normal stilin yanı sıra fareyle üzerine gelinen ve odaklanan stil seçenekleri de bulunur.
TextDefaults
yöntemlerinin her biri bunu destekleyen birpressedStyle
bağımsız değişkenine sahiptir. (Ic473f, b/139312671)
Hata Düzeltmeleri
OutlinedTextField
etiketi için üst dolgu artık sistem yazı tipi boyutunu hesaba katıyor. (Idc781)
Sürüm 1.7.0-alpha07
17 Nisan 2024
androidx.compose.material:material-*:1.7.0-alpha07
yayınlanır. 1.7.0-alpha07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Metin bağlantıları, normal stilin yanı sıra fareyle üzerine gelinen ve odaklanan stil seçeneği de aldı. (I5f864, b/139312671)
- Bağlantılara
MaterialTheme
uygulayanLinkAnnotation
oluşturma ve HTML etiketli dizeyi ayrıştırma yöntemleri 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
yayınlanır. 1.7.0-alpha06 sürümü bu taahhütleri içerir.
Duyuru
androidx.compose.material
artık bu maven grubundaki her yapının aynı sürümünü kullanmayı gerektirmiyor. Kullanıcılar, Compose temel kitaplıklarının (Ie5fba) sürümlerini bir arada kullanabilir.
API Değişiklikleri
- Daha fazla
ModalDrawer
veBottomDrawer
varsayılan ayarıDrawerDefaults
nesnesine taşındı. (Ib5b2e)
Sürüm 1.7.0-alpha05
20 Mart 2024
androidx.compose.material:material-*:1.7.0-alpha05
yayınlanır. 1.7.0-alpha05 sürümü bu taahhütleri 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
yayınlanır. 1.7.0-alpha04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Gezinme Oluşturma kullanılırken hedefler olarak alt sayfalar için destek ekleyen yeni bir
androidx.compose.material:material-navigation
yapı eklendi. Bu, Eşlik Eden Gezinme Materyali 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
yayınlanır. 1.7.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
BottomDrawer
, deneysel sürümden kararlı sürüme geçirildi.BottomDrawerState
artık ilerlemeyi işlev olarak gösterir ve belirli hedefler arasındaki ilerlemeyi sorgulamanıza olanak tanır.BottomDrawerState
artık animasyon spesifikasyonunu özelleştirmeye izin veriyor veconfirmStateChange
artık sona gelen bir lambda değil. (I9c029, b/261423850)BackdropScaffold
, deneysel sürümden kararlı sürüme geçirildi. Animasyon spesifikasyonu, yönergelere uygun olarak artıktween
spesifikasyonudur. Sonraki lambdalarla ilgili karışıklığı önlemek içinBackdropScaffold
işlevininsnackbarHost
parametresi artık son parametre değildir.BackdropScaffoldState
, ankrajlar arasındaki ilerlemeyi sorgulamak için birprogress(from, to)
API'si sağlar. (I73f48, b/261423218)- Standart alt sayfalar, deneysel sürümden kararlı sürüme geçirildi. Desteği sonlandırılan kurucular kaldırıldı. Animasyon spesifikasyonu, yönergelere uygun olarak artık bir tween spesifikasyonudur. (I3c1a8, b/278692145, b/261409034)
- Kalıcı alt sayfalar, deneysel sürümden kararlı sürüme geçirildi. Desteği sonlandırılan kurucular kaldırıldı. Animasyon spesifikasyonu, yönergelere uygun olarak artık
tween
spesifikasyonudur. (Ic53f4, b/278692145, b/266780235, b/261409034)
Hata Düzeltmeleri
BackdropScaffold
'ün,LookaheadScope
ile birlikte belirli senaryolarda kilitlenmesine neden olan sorun düzeltildi. (I51396)- Performansı iyileştirmek için
BottomSheetScaffold
içindeki alt kompozisyon kaldırıldı.BottomSheetScaffold
'ünLookaheadScope
ile birlikte belirli senaryolarda kilitlenmesine neden olan sorun düzeltildi. (I2f90c) ModalBottomSheetLayout
içindeki alt kompozisyon kaldırıldı, performans iyileştirildi. (I7a025)
Sürüm 1.7.0-alpha02
7 Şubat 2024
androidx.compose.material:material-*:1.7.0-alpha02
yayınlanır. 1.7.0-alpha02 sürümü bu taahhütleri içerir.
Sürüm 1.7.0-alpha01
24 Ocak 2024
androidx.compose.material:material-*:1.7.0-alpha01
yayınlanır. 1.7.0-alpha01 sürümü bu taahhütleri içerir.
Davranış Değişiklikleri
- Materyal bileşenleri, yeni dalga API'lerini kullanacak şekilde taşındı ve artık
RippleTheme
'yi sorgulamaz.
API Değişiklikleri
rememberRipple
veRippleTheme
, material-ripple'den kullanımdan kaldırıldı. Material ve diğer tasarım sistemi kitaplıklarına yeni ripple veRippleConfiguration
API'leri eklendi.Daha önce
MutableInteractionSource
kabul eden ve varsayılan olarak{ MutableInteractionSource() }
'ı hatırlayan materyal bileşenleri artık null kabul ediyor ve varsayılan olarak null değerini alıyor.MutableInteractionSource
MutableInteractionSource
öğesini kaldırmayıp kullanmıyorsanız null değerini iletmeniz gerekir. Bu sayede bazı bileşenler, yalnızca gerektiğinde tembel bir şekilde bir örnek oluşturarak performansı artırır. Kendi bileşenlerinizde de benzer değişiklikler yapmanız önerilir.
1.6 sürümü
1.6.8 sürümü
12 Haziran 2024
androidx.compose.material:material-*:1.6.8
yayınlanır. 1.6.8 sürümü bu taahhütleri içerir.
1.6.7 sürümü
1 Mayıs 2024
androidx.compose.material:material-*:1.6.7
yayınlanır. 1.6.7 sürümü bu taahhütleri içerir.
1.6.6 sürümü
17 Nisan 2024
androidx.compose.material:material-*:1.6.6
yayınlanır. Son sürümden bu yana değişiklik yok.
1.6.5 sürümü
3 Nisan 2024
androidx.compose.material:material-*:1.6.5
yayınlanır. 1.6.5 sürümü bu taahhütleri içerir.
1.6.4 sürümü
20 Mart 2024
androidx.compose.material:material-*:1.6.4
yayınlanır. 1.6.4 sürümü bu taahhütleri içerir.
Sürüm 1.6.3
6 Mart 2024
androidx.compose.material:material-*:1.6.3
yayınlanır. 1.6.3 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
ExposedDropdownMenu
'teki gerileme sorununu düzelterek tekrar odaklanabilir hale getirin. (c0e0ed, b/323694447)
Sürüm 1.6.2
21 Şubat 2024
androidx.compose.material:material-*:1.6.2
yayınlanır. 1.6.2 sürümü bu taahhütleri içerir.
1.6.1 sürümü
7 Şubat 2024
androidx.compose.material:material-*:1.6.1
yayınlanır. 1.6.1 sürümü bu taahhütleri içerir.
1.6.0 sürümü
24 Ocak 2024
androidx.compose.material:material-*:1.6.0
yayınlanır. 1.6.0 sürümü bu taahhütleri içerir.
Sürüm 1.6.0-rc01
10 Ocak 2024
androidx.compose.material:material-*:1.6.0-rc01
yayınlanır. 1.6.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 1.6.0-beta03
13 Aralık 2023
androidx.compose.material:material-*:1.6.0-beta03
yayınlanır. 1.6.0-beta03 sürümü bu taahhütleri içerir.
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.material:material-*:1.6.0-beta02
yayınlanır. 1.6.0-beta02 sürümü bu taahhütleri içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.material:material-*:1.6.0-beta01
yayınlanır. 1.6.0-beta01 sürümü bu taahhütleri içerir.
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.material:material-*:1.6.0-alpha08
yayınlanır. 1.6.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
materialIcon
işlevinin desteğini sonlandırıpautoMirror
parametresi alan aşırı yüklemesini destekleyin. (Ia338d)
Hata Düzeltmeleri - Büyük içerikler için gezinme öğesinin yüksekliğini otomatik olarak artırma. (0c4ecc, b/272336962)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.material:material-*:1.6.0-alpha07
yayınlanır. 1.6.0-alpha07 sürümü bu taahhütleri 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
yayınlanır. 1.6.0-alpha06 sürümü bu taahhütleri içerir.
Davranışta Değişiklik Yapan Değişiklik
- Çekmeceli dolapla ilgili işlevler
BottomSheetScaffold
'ten kaldırıldı. Önceki işlevselliğe ulaşmak içinBottomSheetScaffold
öğenizi bir Drawer bileşenine sarın. Örnek için bkz.BottomSheetScaffoldWithDrawerSample
. (I1dcc8)
API Değişiklikleri
- İskeletin alt öğelerini ölçüm sırasında mı yoksa yerleşim sırasında mı ölçmesi gerektiğini kontrol etmek için geçici bir işaret eklendi. Bu, varsayılan olarak ölçümde ö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
yayınlanır. 1.6.0-alpha05 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Sağdan sola düzenler halinde oluşturulan simgelerin otomatik olarak yansıtılması için destek eklendi. material-icons-core ve material-icons-extended modüllerindeki simgeler artık simge izin verdiğinde otomatik yansıtmayı desteklemek için ek simge kümeleri sağlıyor. Yeni grupların önüne
Icons.AutoMirrored.Filled...
vb. ön ek eklenir ve bu gruplar, RTL düzenlerinde otomatik olarak yansıtılacak simgeler içerir. Otomatik olarak yansıtılabilen (ve yansıtılması gereken) simgelerin listesi için Material simgelerinin listesine bakın.
API Değişiklikleri
- Sağdan sola düzenler halinde oluşturulan simgelerin otomatik olarak yansıtılması için destek eklendi. material-icons-core ve material-icons-extended modüllerindeki simgeler artık simge izin verdiğinde otomatik yansıtmayı desteklemek için ek simge kümeleri sağlıyor. Yeni grupların önüne
Icons.AutoMirrored.Filled...
vb. ön ek eklenir ve bu gruplar, RTL düzenlerinde otomatik olarak yansıtılacak simgeler içerir. Otomatik olarak yansıtılabilen (ve yansıtılması gereken) simgelerin listesi için Material simgelerinin listesine bakın. Bu simgeler için daha önce sağlanan simge özellikleri artık desteği sonlandırılmış olarak işaretlenmiştir ve taşıma işlemine yardımcı olmak için bir değiştirme bloğu önerisi sağlanmaktadır. Sağdan sola metin yazan dillerde simgeleri yansıtmak 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 yapılandırılmalıdır. (I4b511)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.material:material-*:1.6.0-alpha04
yayınlanır. 1.6.0-alpha04 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
LookaheadScope
içinde bir Scaffold içindeSubcomposition
(ör.BottomSheetScaffold
) kullanan bazı bileşenlerin boyutlarını çok erken okumaya çalıştığı sorun düzeltildi. (If2c5d)DropdownMenu
'ninoffset
hesaplaması düzeltildi. Böylece x ofsetleri yalnızca yerel düzen yönüne bağlı olacak ve menü ekranın alt kısmına yakın olduğunda y ofsetleri artık tersine çevrilmeyecek. (Iccc74, b/294103942)BottomSheetScaffold
'ün iç düzenini optimize ettik veLookaheadLayout
içindeBottomSheetScaffold
ile ilgili olası bir sorunu düzelttik. (Ic0afa)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.material:material-*:1.6.0-alpha03
yayınlanır. 1.6.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Material2 bileşenleri artık Android'de kenardan kenara işlevini desteklemek için
windowInsets
değerini iletmek üzere ayrı bir API'ye sahiptir. material3 bileşenlerinin aksine, material2 bileşenleri varsayılan olarak iç içe eklemeleri desteklemez ve değer manuel olarak iletilmelidir. 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
yayınlanır. 1.6.0-alpha02 sürümü bu taahhütleri içerir.
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 öğelere izin verilen girişleri belirtmek için ek ek açıklamalar (I51109)
- API dosyaları, uyumluluğu engellemeyle ilgili not eklemek için güncellendi (I8e87a, b/287516207)
FabPosition
(Ib7aea, b/170592777) için yeni Başlangıç hizası eklendi- 2. materyaldeki
TextFieldColorsWithIcons
,TextFieldColors
ile değiştirilerek kullanımdan kaldırıldı.leadingIconColor
veyatrailingIconColor
'ü 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
yayınlanır. 1.6.0-alpha01 sürümü bu taahhütleri içerir.
Davranış Değişiklikleri
- Material 2 yazı tipinde
includeFontPadding
artık varsayılan olarakfalse
olarak kullanılıyor. Varsayılan satır yüksekliği stili deTrim.None
veAlignment.Center
olarak değiştirildi veTypography
'ınTextStyle
'larına açıklineHeight
(sp cinsinden) eklendi. Bu değerleri özelleştirmek istiyorsanız API dokümanlarına göz atın ve bu değişikliklerle ilgili ayrıntılı açıklama 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'lerine bakın. (I732e0)
Hata Düzeltmeleri
BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (sabitlenmiş) ankraj ile kaydırma yönündeki en yakın ankraj 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
yayınlanır. 1.5.4 sürümü bu taahhütleri içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.material:material-*:1.5.3
yayınlanır. 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
yayınlanır. 1.5.2 sürümü bu taahhütleri 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ü bu taahhütleri içerir.
1.5.0 sürümü
9 Ağustos 2023
androidx.compose.material:material-*:1.5.0
yayınlanır. 1.5.0 sürümü bu taahhütleri içerir.
1.4.0'dan sonraki önemli değişiklikler
API Değişiklikleri
BottomSheetScaffold
sürüşülebilir API'lerinde yapılan değişiklikleri dahil etti.BottomSheetState
adlı kullanıcınınconfirmStateChange
parametresiconfirmValueChange
olarak yeniden adlandırıldı.progress
artık kayan nokta değeri olarak gösteriliyor.animateTo
vesnapTo
dahilidir. Bunun yerineexpand()
vecollapse()
politikalarını kullanın.direction
veoverflow
kaldırıldı.offset
,requireOffset()
ile değiştirildi. I323b4- Drawer'daki
snapTo
işlevini deneysel olmayan API olarak işaretleyin. (Ib9c18, b/261425368) - Dairesel ilerleme durumu göstergeleri için bir parça rengi parametresi ve hem dairesel hem de doğrusal ilerleme durumu göstergeleri için bir fırça kapağı parametresi eklendi. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
verememberModalBottomSheetState
'ninconfirmStateChange
adlı dosyasıconfirmValueChange
olarak yeniden adlandırıldı. (Ib48d1)Modifier.minimumInteractiveComponentSize
ekleyin. Öğenin boyutu daha küçükse dokunma etkileşimlerinin anlamını açıklığa kavuşturmak için en az 48.dp boyutunda yer ayırmak amacıyla kullanılabilir. (I33f58, b/258495559)ModalBottomSheetLayout
sürüşülebilir API'lerinde değişiklikler yapıldı.ModalBottomSheetState
'ın animateTo artıkanimationSpec
parametresi almıyor ve gösterilen ofset artık boş değer alabilir. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (Ia2e79)@JvmDefaultWithCompatibility
ek açıklaması (I8f206) ekleniyorModalDrawer. DrawerState
'ınanimateTo
sürümünde, kaydırılabilir API'lerde yapılan değişiklikler dahil edildi.animateTo
, open ve close yöntemleriyle değiştirildi ve ofset artık null olabilir. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (I3de9e)- Çekme panelleri ve sayfalar, hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda basmaları doğru şekilde geciktirmek için güncellendi.
- material ve material3 metinlerine
minLines
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I4af1d)TextField
OutlinedTextField
Hata Düzeltmeleri
pullRefresh
'ün hızı tüketmemesi ve bunun da aşırı kaydırmanın gösterilmesine neden olması sorunu düzeltildi. Ayrıca,Modifier.pullRefresh
içindekionRelease
lambda işlevinin API imzasını, tüketilen hız için bir Float döndürecek şekilde değiştirildi (I7db65, b/266874741)BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (sabitlenmiş) ankraj ile kaydırma yönündeki en yakın ankraj 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 yığıldığında
AlertDialog
kapatma işleminin onay işleminin altında görünmesi 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 yerleştirilmiş kaydırmaya katılmaz. (I634f3, b/215403277)- Yuvalara boş içerik sağlandığında
BottomSheetScaffold
'ün kilitlenmesine neden olan hata düzeltildi. (Ib24a5, b/235588730) PullRefreshIndicator
'ün tıklamaları/işaretçi etkinliklerini durdurması düzeltildi. (2494256, b/271777421)ModalBottomSheetLayout
'ün, yön değişikliğinde uç durumda kilitlenmesi sorunu düzeltildi. E-tablo içeriğindeki/üzerindeki 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
yayınlanır. 1.5.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.material:material-*:1.5.0-beta03
yayınlanır. 1.5.0-beta03 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (sabitlenmiş) ankraj ile kaydırma yönündeki en yakın ankraj 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
yayınlanır. 1.5.0-beta02 sürümü bu taahhütleri içerir.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.material:material-*:1.5.0-beta01
yayınlanır. 1.5.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
DrawerState
veBottomDrawerState
'ın ofseti artık boş değer alamaz. Bunun yerine, ofsetin olmadığını belirtmek içinFloat.NaN
döndürürler. (Ie9855)- Görüntülenen 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 daha fazla özellikli altbilgi için bu ayarı yapılandırabilmesi amacıyla
ModalBottomSheetLayout
hareketinin etkinleştirilmesi/devre dışı bırakılması desteğini ekleyin (I40af0) - Metin rengini verimli bir şekilde animasyonlu hale getirmek veya ayarlamak için
BasicText
parametresine bir renk parametresi eklendi. (Iffd88, b/246961787) isContainer
olan semantik mülkünün adınıisTraversalGroup
olarak değiştirme (I121f6)
Hata Düzeltmeleri
- İşlemler iletişim kutusunun genişliğine sığmak için üst üste yığıldığında
AlertDialog
kapatma işleminin onay işleminin altında görünmesi 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
yayınlanır. 1.5.0-alpha04 sürümü bu taahhütleri 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
yayınlanır. 1.5.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
BottomDrawer
dahililerini yeniSwipeableV2
API'lerini kullanacak şekilde güncelleyin. Bu nedenleBottomDrawerState
artık yalnızca sınıf düzeyinde tanımlanmış API'lere sahip olacak veSwipeableState
'dan yöntem/mülk devralmayacak. Dahili birSwipeableV2State
ile kompozisyon kullanıyoruz. Ofset artık boş bırakılabilen bir kayan nokta mülküdür. Mevcut değere ve kaydırma hedef değerine currentValue ve targetValue mülkleri aracılığıyla yine erişilebilir. open/expand/close gibi önceki sınıf düzeyindeki yöntemler veisOpen/isClosed
gibi mülkler desteklenmeye devam eder. (Iad40c, b/178529942, b/220676296)
Hata Düzeltmeleri
- Switch bileşeninin iç yapısı güncellendi. Artık anahtar, sürüklenirken en yakın durumu (hedef durumu) önizleyecektir. (Id90d4)
BottomSheetScaffold
'daki animasyonlu sayfa içeriği (ör. sayfa içeriğindekiModifier.animateContentSize
) optimize edildi ve artık sorunsuz çalışıyor. (Ia913c, b/270518202, b/254446195)gesturesEnabled
,false
olarak ayarlandığındaBottomSheetScaffold
artık iç içe yerleştirilmiş 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
yayınlanır. 1.5.0-alpha02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Yuvalara boş içerik sağlandığında
BottomSheetScaffold
'ün kilitlenmesine neden olan hata düzeltildi. (Ib24a5, b/235588730) PullRefreshIndicator
'ün tıklamaları / işaretçi etkinliklerini durdurması sorunu düzeltildi (2494256, b/271777421)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.material:material-*:1.5.0-alpha01
yayınlanır. 1.5.0-alpha01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Bir çip grubu yeniden akışı örneği ekleyin. Tek satırlık çip grubu örneğindeki alt çipler arasındaki yatay dolguyu spesifikasyonla eşleşecek şekilde güncelleyin. (I3b155)
ModalBottomSheetLayout
'ün, yön değişikliğinde uç durumda kilitlenmesi sorunu düzeltildi. E-tablo içeriğindeki/üzerindeki 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
, herhangi bir değişiklik içermeden (yalnızca sürüm yükseltmesi) yayınlanır.
1.4.2 sürümü
19 Nisan 2023
androidx.compose.material:material-*:1.4.2
yayınlanır. 1.4.2 sürümü bu taahhütleri içerir.
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.material:material-*:1.4.1
yayınlanır. 1.4.1 sürümü bu taahhütleri içerir.
1.4.0 sürümü
22 Mart 2023
androidx.compose.material:material-*:1.4.0
yayınlanır. 1.4.0 sürümü bu taahhütleri içerir.
1.3.0 sürümünden bu yana yapılan önemli değişiklikler
API Değişiklikleri
Modifier.minimumInteractiveComponentSize
ekleyin. Öğenin boyutu daha küçükse dokunma etkileşimlerinin anlamını açıklığa kavuşturmak için en az 48.dp boyutunda yer ayırmak amacıyla kullanılabilir. (I33f58, b/258495559)ModalDrawer
sürüşülebilir API'lerinde değişiklikler yapıldı.DrawerState
'ninanimateTo
özelliği, open ve close yöntemleriyle değiştirildi ve ofset artık null olabilir. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (I3de9e)- material ve material3 metinlerine
minLines
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I4af1d)TextField
OutlinedTextField
BasicText
veBasicTextField
öğesineminLines
parametresi eklendi. Bu bileşenlerin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I24294, b/122476634)
Sürüm 1.4.0-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ü bu taahhütleri içerir.
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.material:material-*:1.4.0-beta02
yayınlanır. 1.4.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
BottomSheetScaffold
sürüşülebilir API'lerinde değişiklikler yapıldı.BottomSheetState
adlı kullanıcınınconfirmStateChange
parametresiconfirmValueChange
olarak yeniden adlandırıldı.progress
artık kayan nokta değeri olarak gösteriliyor.animateTo
vesnapTo
dahilidir. 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ı kullanarak rolleri ayarlamak için modifier.semantics'i kullanan bileşenler güncellendi (Ibb4ba)
- Genişletilmiş Materyal simgelerinde, dolu
desktop_mac
,directions
vekitchen
simgelerinde 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
yayınlanır. 1.4.0-beta01 sürümü bu taahhütleri içerir.
API Değişiklikleri
pullRefresh
'ün hızı tüketmemesi ve bunun da aşırı kaydırmanın gösterilmesine neden olması sorunu düzeltildi. Ayrıca,Modifier.pullRefresh
içindekionRelease
lambda işlevinin API imzasını, tüketilen hız için bir Float döndürecek şekilde değiştirildi (I7db65, b/266874741)LocalMinimuTouchTargetEnforcement
mülk alıcısını geri yükleyin, desteği sonlandırıldı olarak işaretleyin veLocalMinimumInteractiveComponentEnforcement
adresine yönlendirin. (I60dd5)
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.material:material-*:1.4.0-alpha05
yayınlanır. 1.4.0-alpha05 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
ModalBottomSheetLayout's HalfExpanded
durumunun yanlış hesaplanması ve sayfanın yüzer görünmesine neden olan sorun düzeltildi. (I8c615, b/265610459)ModalBottomSheetLayout
'te, bazı durumlarda gizli durumdan görünür duruma geçerken sayfanın kilitlenmesine yol açan bir hata düzeltildi. (Ia9265, b/265444789)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.material:material-*:1.4.0-alpha04
yayınlanır. 1.4.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Surfaces'te
IsContainer
semantik özelliğine eklendi. Bu özellik, yüzeyler gibi öğelerin anlamsal anlamına göre gezinme sırasını belirleyen daha sonraki bir değişiklikte kullanılır. (I63379) - Drawer'daki
snapTo
işlevini deneysel olmayan API olarak işaretleyin. (Ib9c18, b/261425368) - Dairesel ilerleme durumu göstergeleri için bir parça rengi parametresi ve hem dairesel hem de doğrusal ilerleme durumu göstergeleri için bir fırça kapağı parametresi eklendi. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
verememberModalBottomSheetState
'ninconfirmStateChange
adlı dosyasıconfirmValueChange
olarak yeniden adlandırıldı. (Ib48d1)- Kullanımdan kaldırılan ve gizlenen işlevlerin daha fazla dönüş türü için boş değer kabul edilebilirlik durumu (Ibf7b0)
Modifier.minimumInteractiveComponentSize
ekleyin. Öğenin boyutu daha küçükse dokunma etkileşimlerinin anlamını açıklığa kavuşturmak için en az 48.dp boyutunda yer ayırmak amacıyla kullanılabilir. (I33f58, b/258495559)ModalBottomSheetLayout
sürüşülebilir API'lerinde değişiklikler yapıldı.ModalBottomSheetState
'ninanimateTo
artıkanimationSpec
parametresi almıyor ve gösterilenoffset
artık boş değer kabul ediyor.offset
özelliğini zorunlu kılmak içinrequireOffset
kullanın. (Ia2e79)
Hata Düzeltmeleri
ModalBottomSheetLayout
sayfasının maksimum genişliği artık 640 dp'dir. (I71a4f, b/234927577)rememberPullRefreshState
'ün zaman içinderefreshThreshold
verefreshingOffset
'yi güncellememesiyle ilgili sorun düzeltildi. (Ifed10, b/263159832)- İlerleme durumu göstergelerinin ilerleme durumu artık beklenen aralıkla düzgün şekilde sınırlandırılmıştır. (I8a7eb, b/262262727)
ModalBottomSheetState
henüz herhangi bir ankraj almamışsasnapTo
veyaanimateTo
çağrıldığında istisna atma yerinecurrentValue
öğesini animasyon olmadan günceller. (I2c91b)- Material 2
FilterChip
uygulamasında etkin durum düzeltildi. (Id326a, b/261329817) - Dikeyden yatay yöne döndürüldüğünde
ModalBottomSheetLayout
HalfExpanded
ise kilitlenme sorunu düzeltildi. Lütfen doğruinitialValue
değerini ilettiğinizden emin olun (örneğin, yapılandırmayı kontrol ederek). (Ie8df7, b/182882364) - E-tablo içeriği boşsa
ModalBottomSheetLayout
'ün kilitlenmesine neden olan sorun düzeltildi.ModalBottomSheetLayout
artık boş sayfa içeriğine izin veriyor. E-tablo içeriği boşsa yalnızca Gizli durumunda 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. Sorunun ilk olarak bildirildiği yer burada. Gönderilen düzeltme, bir sonraki Oluştur güncellemesinde kullanıma sunulacaktır. Bu sorunu geçici olarak çözmek içinandroidx.compose.material
veandroidx.compose.material3
kitaplıklarınızı en son sürüme(1.1.0-alpha04) güncelleyin veyaandroidx.compose.foundation
'nizi 1.4.0-alpha03 sürümüne geri alın.
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.material:material-*:1.4.0-alpha03
yayınlanır. 1.4.0-alpha03 sürümü bu taahhütleri içerir.
API Değişiklikleri
@JvmDefaultWithCompatibility
ek açıklaması (I8f206) ekleniyorModalDrawer
API'lerindeModalDrawer
tarihinde yapılan değişiklikleri dahil etti.Swipeable
DrawerState
'ninanimateTo
yöntemiopen
veclose
yöntemleriyle değiştirildi ve ofset artık boş değer alabilir. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (I3de9e)- Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API eklendi. (I2ba9d, b/203141462)
- Hareketlerin kaydırma etkinlikleri haline gelebileceği durumlarda, basma etkileşimlerini doğru şekilde geciktirmek için
Clickable
içinde kullanılır. Clickables
öğesinin,Scrollable ViewGroup
içinde kullanıldığında dalgaların doğru şekilde geciktilmemesi sorunu düzeltildi.- Çekme panelleri ve sayfalar, hareketlerin kaydırma etkinliklerine dönüşebileceği durumlarda basmaları doğru şekilde geciktirmek için güncellendi.
Hata Düzeltmeleri
- Yenileme durumu true olarak değiştirilmezse
onRefresh
çağrıldıktan sonraPullRefreshIndicator
'ün takılıp kalması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ıdır. (I05ab0, b/258038814)
Sürüm 1.4.0-alpha02
9 Kasım 2022
androidx.compose.material:material-*:1.4.0-alpha02
yayınlanır. 1.4.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
awaitFirstDown
vewaitForUpOrCancellation
artık daha fazla esneklik içinPointerEventPass
kabul ediyor. (I7579a, b/212091796)- material ve material3 metinlerine
minLines
parametresi eklendi. Bu parametre, bileşenin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I4af1d)TextField
OutlinedTextField
BasicTex
t veBasicTextField
öğesineminLines
parametresi eklendi. Bu bileşenlerin minimum yüksekliğini satır sayısı açısından ayarlamanıza olanak tanır (I24294, b/122476634)
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.material:material-*:1.4.0-alpha01
yayınlanır. 1.4.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Hareket algılayıcılar için
awaitEachGesture()
adlı yeni bir yöntem eklendi.forEachGesture()
'e benzer şekilde çalışır ancak hareketler üzerinde döngü tamamenAwaitPointerEventScope
içinde çalıştığından etkinlikler iterasyonlar arasında kaybolmaz. forEachGesture()
, hareketler arasında etkinliklerin kaybolmasına neden olduğu için desteği sonlandırıldı veawaitEachGesture()
ile değiştirildi. (Iffc3f, b/251260206)
Sürüm 1.3
1.3.1 sürümü
9 Kasım 2022
androidx.compose.material:material-*:1.3.1
yayınlanır. 1.3.1 sürümü bu taahhütleri içerir.
1.3.0 sürümü
24 Ekim 2022
androidx.compose.material:material-*:1.3.0
yayınlanır. 1.3.0 sürümü bu taahhütleri içerir.
1.2.0 sürümünden bu yana yapılan önemli değişiklikler
Davranışları bozan değişiklik
- İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
API Değişiklikleri
- Oluştur'a (I29168) Ekranı Kaydırarak Yenile bileşeni ekleyin.
- RangeSlider (I3b79a) öğesinde parametre adını values yerine value olarak değiştirin.
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.material:material-*:1.3.0-rc01
yayınlanır. 1.3.0-rc01 sürümü bu taahhütleri içerir.
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.material:material-*:1.3.0-beta03
yayınlanır. 1.3.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Oluştur'a Ekranı Kaydırarak Yenile bileşeni ekleme (I29168)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.material:material-*:1.3.0-beta02
yayınlanır. 1.3.0-beta02 sürümü bu taahhütleri içerir.
1.3.0-beta01 sürümünden bu yana değişiklik yok
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.material:material-*:1.3.0-beta01
yayınlanır. 1.3.0-beta01 sürümü bu taahhütleri içerir.
Davranışları bozan değişiklik
İletişim kutularında ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
Oluştur 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ümlerindeki bir erişilebilirlik hatasını azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusunun veya pop-up'ın içindeki içerikle etkileşim kurabilmesini sağlamak için yapılmıştır.
Bu değişiklikten yalnızca yüksekliği 8 dp'den 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 düşürebilirsiniz. Bu yeni davranışı devre dışı bırakmanız gerekiyorsa istediğiniz yükseklik ayarıyla kendi iletişim kutunuzu veya pop-up'ınızı oluşturabilirsiniz. Erişilebilirlik olumsuz yönde etkilenebileceğinden ve iletişim kutusunun veya pop-up'ın alt kısmının erişilebilirlik hizmetleri tarafından etkileşime açık ve okunabilir olmasının sorumluluğu geliştiriciye ait olduğundan bu yöntem önerilmez.
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.material:material-*:1.3.0-alpha03
yayınlanır. 1.3.0-alpha03 sürümü bu taahhütleri içerir.
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.material:material-*:1.3.0-alpha02
yayınlanır. 1.3.0-alpha02 sürümü bu taahhütleri içerir.
Harici Katkı
- Scaffold'da
FloatingActionButton
ile ilgiliAnimatedVisibility
sorununu düzeltin (I3a0ae, b/224005027)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.material:material-*:1.3.0-alpha01
yayınlanır. 1.3.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
RangeSlider
(I3b79a) parametre adının values yerine value olarak değiştirilmesi
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
yayınlanır. 1.2.1 sürümü bu taahhütleri içerir.
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.material:material-*:1.2.0
yayınlanır. 1.2.0 sürümü bu taahhütleri içerir.
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc03
yayınlanır. 1.2.0-rc03 sürümü bu taahhütleri içerir.
- 1.2.0-rc02 sürümünden bu yana değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc02
yayınlanır. 1.2.0-rc02 sürümü bu taahhütleri içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc01
yayınlanır. 1.2.0-rc01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Oluşturma kitaplarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturuluyor
Hata Düzeltmeleri
- Rozeti, simge yerine etikete eklemek için simge ön ekiyle günceller. (I90993)
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.material:material-*:1.2.0-beta03
yayınlanır. 1.2.0-beta03 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
BottomSheetScaffold
'ün üst uygulama çubuğunun gölgesinin üzerine çizdiği bir hata düzeltildi.BottomSheetScaffold
artık bilgi çubuğu yerleştirirken sayfanın durumunu da dikkate alıyor: bilgi çubukları, daraltılmış durumdayken sayfanın ve FAB'ın üzerine, genişletilmiş durumdayken ise sayfanın alt kısmına yerleştiriliyor. (Ia80b5, b/187771422)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.material:material-*:1.2.0-beta02
yayınlanır. 1.2.0-beta02 sürümü bu taahhütleri içerir.
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.material:material-*:1.2.0-beta01
yayınlanır. 1.2.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Bu, 1.2 sürümünün ilk beta sürümüdür.
API Değişiklikleri
OutlinedTextField
'te kenar çizgisi çizenTextFieldDefaults.BorderStroke
kompozit öğesiTextFieldDefaults.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
yayınlanır. 1.2.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kısmi tüketim (aşağı VEYA konum) özelliği
PointerInputChange
sürümünde kullanımdan kaldırıldı. Değişikliği tamamen kullanmak içinconsume()
kullanabilirsiniz. Değişikliğin daha önce başka bir kullanıcı tarafından tüketilip tüketilmediğini belirlemek içinisConsumed
değerini kullanabilirsiniz. PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu,PointerInputChange
kopyalarının, kopyalardan biri tüketildikten sonra tüketileceği anlamına gelir. Bağlantısız birPointerInputChange
oluşturmak istiyorsanız bunun yerine kurucuyu kullanın. (Ie6be4, b/225669674)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.material:material-*:1.2.0-alpha07
yayınlanır. 1.2.0-alpha07 sürümü bu taahhütleri içerir.
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.material:material-*:1.2.0-alpha06
yayınlanır. 1.2.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Surface API'deki değişiklikleri takip etmek için tıklanabilir Card API'de yapılan güncellemeler (I56bcb)
- Seçilebilir ve değiştirilebilir yüzeyler için ek aşırı yüklenmiş işlevler ekleyen Material 2 Surface API'de yapılan güncellemeler. (Ifcca5)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.material:material-*:1.2.0-alpha05
yayınlanır. 1.2.0-alpha05 sürümü bu taahhütleri 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 içe aktarma işlemlerinizi androidx.compose.foundation.lazy yerine androidx.compose.foundation.lazy.grid olarak güncelleyin. (I2d446, b/219942574)WindowInsetsControllerCompat
için yalnızca bir Görünümü temel alan önceki değişikliği geri aldık ve bazı pencere işaretçilerini yönetmek için gereken bir Pencere'yi tekrar zorunlu kıldık. Doğru pencerenin kullanılmasını sağlamak içinViewCompat.getWindowInsetsController
desteği sonlandırıldı (ör. görünüm bir iletişim kutusundaysa).WindowCompat.getInsetsController
(I660ae, b/219572936)- Metin:
includeFontPadding
artık varsayılan olarak devre dışıdır.includeFontPadding=false
nedeniyle ortaya çıkan kırpma sorunları giderildi ve uzun komut dosyalarında kırpma olmayacak. (I31c84, b/171394808) - Eksenler arası boyutları 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
yayınlanır. 1.2.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
Add support for filter chips
(I39a6e, b/192585545)TextFieldDecorationBox
veOutlinedTextFieldDecorationBox
eklendi. Bu bileşenleriBasicTextField
ile birlikte kullandığınızda, Material Design metin alanlarına dayalı özel metin alanları oluşturabilirsiniz. Bu alanlar, daha fazla özelleştirme seçeneği sunar.- Metin alanlarında yatay ve dikey dolguları ayarlama yöntemi sağlandı. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
Bir birleştirilebilir işlevin, kullanılmak üzere tasarlanmadığı bir uygulayıcı hedeflendiğinde derleme zamanında raporlanmasına olanak tanıyan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
eklendi.Çoğu durumda ek açıklamaları, derleyici eklentisi tarafından çıkarılabilir. Bu nedenle, bu ek açıklamaları doğrudan kullanmak nadir bir durumdur. Özel bir uygulayıcı oluşturma ve kullanma, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), birleştirilebilir lambda olan alanlar veya global değişkenler (yerel değişkenler ve parametreler çıkarılır) veya
ComposeNode
ya da ilgili birleştirilebilir işlevler kullanıldığında çıkarım yapılamaz.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
'yi çağıran birleştirilebilir işlevlerin, işlev ve tüm birleştirilebilir lambda parametresi türleri için birCompoableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ile ek açıklama içeren bir ek açıklama oluşturmanız ve ardından doğrudanComposableTarget
yerine işaretlenmiş ek açıklamayı kullanmanız önerilir.ComposableTargetMarker
ile işaretlenmiş bir birleştirilebilir ek açıklama, uygulayıcı parametresi olarak özellik sınıfının tam nitelikli adının yer aldığı birComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımıyla ilgili bir örnek içinanroidx.compose.ui.UiComposable
bölümüne bakın. (I38f11)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.material:material-*:1.2.0-alpha03
yayınlanır. 1.2.0-alpha03 sürümü bu taahhütleri 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
yayınlanır. 1.2.0-alpha02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Karmaşık mantık içermeyen mevcut yöntemlerin aşırı yüklenmesini yapan yöntemlere
NonRestartableComposable
eklendi. Bu, çağrılan iç işlevde tekrarlanan tüm parametreler için derleyici tarafından oluşturulan hafıza önbelleğe alma kontrollerini (eşit) azaltır. (I90490) - İşlem çipi (I07100, b/192585545) desteği eklendi
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.material:material-*:1.2.0-alpha01
yayınlanır. 1.2.0-alpha01 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
sürümüne bağlıdır.
Harici Katkı
ModalBottomSheetState
içinisSkipHalfExpanded
işareti eklendi. Oluşturucu aracılığıyla ayarlanabilir veya daha sonraModalBottomSheetState
'ninisSkipHalfExpanded
ö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
1.1.1 sürümü
23 Şubat 2022
androidx.compose.material:material-*:1.1.1
yayınlanır. 1.1.1 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
adresindekiNullPointerException
sorununu düzeltin (aosp/1947059, b/206677462)- Android'de panodan okunurken pano içeriğinden kaynaklanan kilitlenme düzeltildi. (I06020, b/197769306)
LazyVerticalGrid
'te RTL düzeltildi (aosp/1931080, b/207510535)
1.1.0 sürümü
9 Şubat 2022
androidx.compose.material:material-*:1.1.0
yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünden bu yana yapılan önemli değişiklikler
- Android 12 aşırı kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmasında iyileştirmeler
- Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin dokunma hedefi boyutu için Materyal erişilebilirlik yönergelerini karşılamak üzere düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük olarak ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişler. Bu sayede, Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış elde edersiniz. Bu değişiklik, kullanıcı arayüzünüzü Compose Material bileşenlerini kullanarak oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
- Gezinme çubuğu için kararlı destek
- Daha önce deneysel olan bazı API'leri kararlı sürüme geçiriyor
- Kotlin'in daha yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.material:material-*:1.1.0-rc03
yayınlanır. 1.1.0-rc03 sürümü bu taahhütleri içerir.
Davranış Değişiklikleri
Compose 1.0 ile ilgili olarak, Materyal bileşenlerinin, Materyal erişilebilirlik yönergeleri dokunma hedefi boyutunu karşılamak için düzen alanlarını genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük olarak ayarlasanız bile düğme dokunma hedefi minimum 48x48 dp boyutuna genişler. Bu sayede, Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış elde edersiniz. Bu değişiklik, kullanıcı arayüzünüzü Compose Material bileşenlerini kullanarak oluşturduğunuzda dokunma hedefi erişilebilirliğiyle ilgili minimum şartların karşılanmasını da sağlar.
Hata Düzeltmeleri
- Minimum dokunma hedefi değiştiricileri incelerken düzen denetleyicisi 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
yayınlanır. 1.1.0-rc01 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
Checkbox
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
yayınlanır. 1.1.0-beta04 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Kotlin
1.6.0
ile uyumlu olacak şekilde güncellendi
Sürüm 1.1.0-beta03
17 Kasım 2021
androidx.compose.material:material-*:1.1.0-beta03
yayınlanır. 1.1.0-beta03 sürümü bu taahhütleri içerir.
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.material:material-*:1.1.0-beta02
yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Dalgalanma ve diğer göstergeler artık her zaman aşağı etkinliği için geciktirilmek yerine yalnızca bir Modifier.scrollable() kapsayıcısının içindeyse geciktirilecek. (Ibefe0, b/203141462)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.material:material-*:1.1.0-beta01
yayınlanır. 1.1.0-beta01 sürümü bu taahhütleri içerir.
Yeni Özellikler
- Dalgalanma efektleri artık fareyle üzerine gelme ve odaklanma durumlarını destekliyor. Bu sayede, düğme gibi bir bileşenin üzerine gelindiğinde veya bileşene odaklanıldığında doğru durum yer paylaşımı gösterilir.
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.material:material-*:1.1.0-alpha06
yayınlanır. 1.1.0-alpha06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Daha verimli bir şekilde, düzen için alt öğe içermeyen bir aşırı yükleme eklendi (Ib0d9a)
- İçinde
TextField
veDropdownMenu
bulunanExposedDropdownMenuBox
'a dayalıExposedDropdownMenu
kullanımı (If60b2) - Desteği sonlandırılan
dismissOnClickOutside
yerinedismissOnOutsideClick
,PopupProperties
'e eklendi. Yeni mülk, tıklama konumunu ve ankraj sınırlarını alır. Böylece, onDismissRequest işlevinin çağrılıp çağrılmayacağı konusunda daha ayrıntılı kontrol sağlanır. Örneğin, bu özellik, ankraja dokunulduğunda ankrajın kapatılmasını önlemek için yararlı olabilir.updateAndroidWindowManagerFlags
,PopupProperties
'a eklendi. Bu sayede pop-up'ın Android WindowManager'a ilettiği işaretçiler üzerinde düşük düzeyde kontrol sağlandı. Lambda parametresi, PopupProperties değerlerinden hesaplanan ve WindowManager işaretlerine neden olan işaretler olacaktır (ör. odaklanılabilir). Lambda işlevinin sonucu, Android WindowManager'a iletilecek nihai işaretler olur. Varsayılan olarak updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmez. Bu API, yalnızca pop-up'ın çok özel davranış koşullarının olduğu durumlarda dikkatli bir şekilde kullanılmalıdır. (I6e9f9)
Sürüm 1.1.0-alpha05
29 Eylül 2021
androidx.compose.material:material-*:1.1.0-alpha05
yayınlanır. 1.1.0-alpha05 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Erişilebilir dokunma hedefi olmayan Material bileşenleri için minimum dokunma hedefi boyutu ekler. Bu işlem, bileşenlerin yeterince büyük bir dokunma hedefine sahip olmasını sağlamak için bileşenlerin etrafına ek boşluk ekleyerek bu bileşenlerin boyutunun görsel boyutları olduğunu varsayılan ve dokunma hedefi boyutunu dikkate almayan mevcut kullanıcı arayüzlerini değiştirebilir. Bu davranışı bir hiyerarşide devre dışı bırakmak için deneysel
LocalMinimumTouchTargetEnforcement
composition local özelliğini kullanabilirsiniz. Ancak bu özellik, yalnızca mevcut kullanıcı arayüzlerini yeni minimum boyutu hesaba katacak şekilde güncellerken geçici bir çıkış yolu olarak tasarlanmıştır. (I9b966, b/149691127, b/171509422) - TextFieldColors'ı, leadingColor ve trailingColor'a InteractionSource sağlamak için genişleten deneysel TextFieldColorsWithIcons arayüzü eklendi. Bu sayede, TextField'in görünümü, odak durumuna göre değiştirilebilir. (I66923, b/198402662)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.material:material-*:1.1.0-alpha04
yayınlanır. 1.1.0-alpha04 sürümü bu taahhütleri içerir.
API Değişiklikleri
performGesture
veGestureScope
kullanımdan kaldırıldı ve bunların yerineperformTouchInput
veTouchInjectionScope
getirildi. (Ia5f3f, b/190493367)- Geliştiricilerin dokunma hedeflerinin erişilebilirlik minimumlarını karşıladığından emin olabilmesi için
SemanticsNode
öğesine minimum dokunma hedefi boyutunu içerentouchBoundsInRoot
eklendi. (I2e14b, b/197751214)
Hata Düzeltmeleri
- Minimum dokunma hedefi amacıyla klibin, dokunma hedefi sınırlarını klip bölgesinin ötesine uzatmasına izin verin. (I43e10, b/171509422)
Divider
kompozitini, ekran yoğunluğundan bağımsız olarak tek piksellik bölücülerin çizilmesini desteklemek için kalınlık parametresi içinDp.Hairline
'e göre güncellendi. (I16ffb, b/196840810)
Sürüm 1.1.0-alpha03
1 Eylül 2021
androidx.compose.material:material-*:1.1.0-alpha03
yayınlanır. 1.1.0-alpha03 sürümü bu taahhütleri içerir.
Yeni Özellikler
1.1.0-alpha03
derleyicisi, 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 ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. Bu boyut, semantikte ve işaretçi girişinde kullanılabilir. (Ie861c)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.material:material-*:1.1.0-alpha02
yayınlanır. 1.1.0-alpha02 sürümü bu taahhütleri içerir.
Harici Katkı
- Kaydırma ofsetinin bir ankrajın yuvarlama hatası içinde olduğu durumlarda 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
yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kaynak ve hedef dikdörtgenleri kullanan
DrawScope#drawImage
yöntemini, isteğe bağlı bir FilterQuality parametresi kullanacak şekilde güncellendi. Bu, piksel tabanlı sanat için ölçeklendirildiğinde pikselli olması amaçlanan piksel sanatında kullanışlıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresi de kullanacak şekilde güncellendi (Ie4fb0, b/180311607) - BadgeBox, BadgedBox olarak yeniden adlandırıldı ve parametreler, Badge bileşenini kabul edecek şekilde değiştirildi. Rozetli kutunun tipik rozet içeriği olan Rozet bileşeni eklendi. (I639c6)
- NavigationRail bileşeni eklendi. Kullanım bilgileri için dokümanlara ve örneklere bakın (I8de77)
Hata Düzeltmeleri
- Altta hizalanmış bir Gezinme Rayı örneği ve Katalog uygulaması demosu eklendi. (I3cffc)
- İletişim kutuları artık platform boyutlandırma davranışını takip ediyor. Bu davranışı geçersiz kılmak için usePlatformDefaultWidth değerini 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
yayınlanır. 1.0.5 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- derivedStateOf örneklerini izlemeyle ilgili bir kilitlenme düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.material:material-*:1.0.4
yayınlanır. 1.0.4 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
'e bağlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.material:material-*:1.0.3
yayınlanır. 1.0.3 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
'e bağlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.material:material-*:1.0.2
yayınlanır. 1.0.2 sürümü bu taahhütleri içerir.
Oluştur 1.0.2
sürümünü desteklemek için güncellendi. Compose 1.0.2
, Kotlin 1.5.21
ile uyumludur.
1.0.1 sürümü
4 Ağustos 2021
androidx.compose.material:material-*:1.0.1
yayınlanır. 1.0.1 sürümü bu taahhütleri içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
'e bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.material:material-*:1.0.0
yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.
1.0.0 sürümünün önemli özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose sürüm bloguna göz atın.
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız aşağıdaki kilitlenmeyi görebilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Bu sorunu düzeltmek için
build.gradle
dosyanızdaki minSdkVersion değerini geçici olarak 24 veya daha yüksek bir değere ayarlayın. Bu sorun, Android Studio Bumblebee ve AGP'nin sonraki sürümünde7.1
düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.material:material-*:1.0.0-rc02
yayınlanır. 1.0.0-rc02 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- İletişim kutuları artık platform 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
yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.
API Değişiklikleri
BadgeBox
bileşeni eklendi. Kullanım bilgileri için dokümanlara ve örneklere bakın (I5e284)PopupProperties
'dakiuseDefaultMaxWidth
,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
- Material Design spesifikasyonlarına uygunluk sağlamak için, geçersiz giriş içeren OutlinedTextField'de etiket yer tutucu olarak kullanıldığında etiket için hata rengi kullanılmaya son verildi. İkincisi, metin alanında giriş metni olmadığında ve metin alanı odakta olmadığında doğrudur. 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
döndürülür. (I45f78)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.material:material-*:1.0.0-beta09
yayınlanır. 1.0.0-beta09 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Kenarlık şeklini özelleştirebilmek için OutlinedTextField'e Shape parametresi eklendi (I8f39e, b/181322957)
- TextOverflow, satır içi sınıfa dönüştürülür. (I433af)
Hata Düzeltmeleri
- Color.Unspecified iletildikten sonra BottomDrawer, BackdropScaffold ve ModalBottomSheetLayout'taki scrim kaybolur (I2d899, b/182063309)
Profil Kuralları eklendi
Bu sürüm, aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları ekler:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.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 bulunanbaseline-prof.txt
metin dosyasında belirtilir. Dosyada satır başına bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme için kullanılan bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan, okunabilir ART profil biçiminin bir üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.Yöntem kuralları aşağıdaki kalıba sahiptir:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Sınıf kuralları ise aşağıdaki kalıba sahiptir:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek içinH
,S
veP
karakterlerinden biri veya daha fazlasıdır.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin,androidx.compose.runtime.SlotTable
sınıfının tanımlayıcı değeriLandroidx/compose/runtime/SlotTable;
olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürülen türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yönteminin imzasıisPlaced()Z
'dir.Tek bir kuralın birden fazla yöntemi veya sınıfı kapsayabilmesi için bu kalıplarda joker karakterler (
**
,*
ve?
) bulunabilir.
Kurallar ne işe yarar?
H
işareti bulunan bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.S
işareti bulunan bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve yöntemin başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.P
işareti olan bir yöntem, başlangıçtan sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığınta önceden ayrılması gerektiğini gösterir.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Ardından, bu yapıları içeren bir APK derlendiğinde bu kurallar birleştirilir ve birleştirilen kurallar, APK'ya özel kompakt bir ikili ART profili oluşturmak için kullanılır. Ardından ART, APK cihazlara yüklendiğinde bu profilden yararlanarak uygulamanın performansını (özellikle de ilk çalıştırmayı) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derleyebilir. Bu durumun, hata ayıklama yapılabilir uygulamaları etkilemeyeceğini unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.material:material-*:1.0.0-beta08
yayınlanır. 1.0.0-beta08 sürümü bu taahhütleri içerir.
Yeni Özellikler
Davranışta Değişiklik Yapan API Değişikliği
- DAVRANIŞ DEĞİŞİKLİĞİ: Kart artık tıklamaları tüketiyor. Bu nedenle,
Card(Modifier.clickable)
aracılığıyla eklenen tıklamalar işlemsiz hale geliyor. Lütfen onClick'ı kabul eden Card'ın yeni deneysel aşırı yüklemesini kullanın. (Ia8744, b/183775620)- Tıklamaların yanı sıra tıklanabilir diğer işlevleri (indication, interactionSource, enabled/disabled) işleyen yeni bir Card overload eklendi. Kart, bu durumlarda dalgalanma göstergesini kırpmadığı için
Modifier.clickable
ile normal, tıklanamayan bir kart kullanılamıyordu.
- Tıklamaların yanı sıra tıklanabilir diğer işlevleri (indication, interactionSource, enabled/disabled) işleyen yeni bir Card overload eklendi. Kart, bu durumlarda dalgalanma göstergesini kırpmadığı için
- DAVRANIŞ DEĞİŞİKLİĞİ: Surface artık tıklamaları tüketiyor. Bu nedenle,
Surface(Modifier.clickable)
aracılığıyla eklenen tıklamalar işlem yapmaz. Lütfen onClick'ı kabul eden Surface'in yeni deneysel aşırı yüklemesini kullanın. (I73e6c, b/183775620)- Tıklamaların yanı sıra diğer tıklanabilir işlevleri (indication, interactionSource, enabled/disabled) işleyen yeni bir Surface overload eklendi.
Modifier.clickable
ile normal, tıklanamayan bir yüzey kullanmak mümkün değildi çünkü yüzey bu durumlarda dalgalanma göstergesini kırpmaz.
- Tıklamaların yanı sıra diğer tıklanabilir işlevleri (indication, interactionSource, enabled/disabled) işleyen yeni bir Surface overload eklendi.
API Değişiklikleri
FabPosition
, gelecekte olası genişletmeleri 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 yapılandırıldı. (I2b5eb)
- Kaydırma/sürükleme sırasında dalgalanma gösterilmesini önlemek için tıklanabilir/açma/kapatma düğmeli öğelere dokunma zaman aşımı ekler (Ia2704, b/168524931)
- ContentDescription ve Text semantics özellikleri artık tek değer değil liste şeklindedir. Bu sayede, bunları birleştirirken birleştirme yerine olduğu gibi birleştirebilirsiniz. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri de sağlandı (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırıldı veModifier.focusTarget()
(I6c860) ile değiştirildiFocusState
enum,FocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- Görüntü destekli dalga uygulaması kararlı hale geldiği için
LocalRippleNativeRendering
kaldırıldı (I7fab3, b/188569367)
Hata Düzeltmeleri
Modifier.onGloballyPositioned()
, tüm değiştiricilerin uygulanmasından sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını bildirecek şekilde değiştirildi. Bu, artık değiştiricilerin sıralamasının hangi koordinatların raporlanacağını etkilediği anlamına gelir. (Ieb67d, b/177926591)- Mevcut İçerik Oluşturma Kataloğu için bir README dosyası eklendi. (If9191)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.material:material-*:1.0.0-beta07
yayınlanır. 1.0.0-beta07 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Artık Navigasyon Oluşturma'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
yayınlanır. 1.0.0-beta06 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Ripple, Android cihazlarda
RippleDrawable
'ü dahili olarak kullanacak şekilde taşındı. Bu, dalga animasyonlarının RenderThread'da 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, Ripple'ın API yüzeyini değiştirmez ancak bu değişiklik sonucunda davranış değişiklikleri olabilir. Taşıma işlemine yardımcı olmak içinLocalRippleNativeRendering
eklendi. CompositionLocalProvider içindeki önceki dalga uygulamasına geri dönmek için bu CompositionLocal özelliğinefalse
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ı gönderin. (I902f8, b/168777351, b/183019123) - Koleksiyonu ve öğelerini erişilebilirlik hizmetleri için işaretlemeye 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 alınan Compose Material katalogu içe yerleştirilen öğelerinin uygulamasını güncelledik. (I25dc3)
- weight(fill = false) özelliğine sahip satır ve sütun alt öğeleri artık üst öğenin kullanılabilir ana eksen alanının tamamını doldurmasını sağlamıyor. (Ied94d, b/186012444, b/184355105)
Sürüm 1.0.0-beta05
21 Nisan 2021
androidx.compose.material:material-*:1.0.0-beta05
yayınlanır. 1.0.0-beta05 sürümü bu taahhütleri içerir.
Hata Düzeltmeleri
- Mevcut İçerik Oluşturma kataloğuna bileşen karo 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
yayınlanır. 1.0.0-beta04 sürümü bu taahhütleri içerir.
API Değişiklikleri
- API DEĞİŞİKLİĞİ:
DrawerState
durumu artık deneysel SwipeableState'i genişletmiyor.- API DEĞİŞİKLİĞİ:
BottomDrawerState
artık deneysel olarak işaretlendi. Bu, deneysel BottomDrawer bileşeniyle (I81114, b/181656094) eşleşecek.
- API DEĞİŞİKLİĞİ:
SoftwareKeyboardController
'dekihideSoftwareKeyboard
veshowSoftwareKeyboard
öğelerini sırasıylahide()
veshow()
olarak yeniden adlandırın.- LocalSoftwareKeyboardController için CompositionLocal arayüzünün tamamını sağlayarak ayarlanmasını sağlayın (ö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, kullanıcıyı değişiklikler hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946)
Hata Düzeltmeleri
- Mevcut modüle, İçerik Oluşturma kataloğunun uygulanması eklendi. Şu anda eksik olan özellikler: bileşen karo resimleri, tema seçici (sonraki değişikliklerde eklenecektir). (Ie7a94)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.material:material-*:1.0.0-beta03
yayınlanır. 1.0.0-beta03 sürümü bu taahhütleri içerir.
API Değişiklikleri
DefaultMonotonicFrameClock
desteği sonlandırıldı.MonotonicFrameClock
olmadanwithFrameNanos
veyaRecomposer.runRecomposeAndApplyChanges
çağrısı yaptığınızda artıkIllegalStateException
hatası alırsınız. (I4eb0d)- Sekmede simge ve satır içi metin görüntülemeyi desteklemek için yeni bir API
LeadingIconTab
eklendi. (I23267)
Harici Katkı
- [Jossi Wolf tarafından]
BottomDrawer
artık çekmece yuvasının içeriğini sarmalıyor. Üst öğenin yüksekliği sonsuz olduğundaBottomDrawer
birIllegalStateException
atmaz. Alt çekmece, üst öğesinin% 50'sinden küçükse artık genişletilmiş durumda açılır.BottomDrawerState
veModalBottomSheetLayoutState
ile ilgili dokümanlar güncellendi.BottomDrawerState#isOpen
, açık veya genişletilmiş durumdaysa artık 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
yayınlanır. 1.0.0-beta02 sürümü bu taahhütleri içerir.
API Değişiklikleri
- TextField'deki önceki
SoftwareKeyboardController
arayüzünün yerini alacak yeniLocalSoftwareKeyboardController
kompozisyon yerel API'si eklendi. (I5951e, b/168778053)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılma (I6aa29, b/174531520)
- TopAppBar ve BottomAppBar'ın varsayılan yatay hizalaması, Row ile tutarlı olacak şekilde Başlangıç olarak değiştirildi (Ib2dc7)
- Mevcut entegrasyon testi demolarında iç içe yerleştirilmiş bir İçerik Oluşturma 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ğildir. Uygulamanızda ComposeView kullanıyorsanız ve Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 veya sonraki bir sürümü / Fragment 1.3 veya sonraki bir sürümü kullandığınızdan emin olun. Bu sürümler, ComposeView için gereken yaşam döngüsü ve kayıtlı durum sahiplerinin doğru şekilde ayarlanması için gereklidir. (I1d6fa, b/161814404)
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.material:material-*:1.0.0-beta01
yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- Beden düzenleyiciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
- imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector yardımcılarında uzantı işlevidir. load{Image,Vector,Font}Resource işlevleri silindi. (I89130)
- Boyutlandırmayı doğal boyutlara göre ayarlama değiştiricileri artık deneysel değildir. (I15744)
- dp iddiaları kaldırıldı (I798d2)
- SoftwareKeyboardController geri çağırma işlevi, kısa süre içinde yeni bir API ile değiştirilmek üzere tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
- Switch, Checkbox ve RadioButton işlem lambdaları artık boş değer alabilir. Tıklanabilir satırda onay kutusu örnekleri bu özelliği kullanacak şekilde güncellendi. (If601b, b/171819073)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Etkileşim etkinliklerini yayınlamaktan / toplamaktan arayüzler sorumludur.
interactionState = remember { InteractionState() }
değeriniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
değerini kullanın.- Bunun yerine:
Interaction.Pressed in interactionState
InteractionSource.collectIsPressedAsState() gibi InteractionSource'daki uzantı işlevlerini kullanmanız gerekir. - Karmaşık kullanım alanları için etkileşim akışını gözlemlemek üzere InteractionSource.interactions parametresini kullanabilirsiniz. Daha fazla bilgi için InteractionSource belgelerini ve örneklerini inceleyin.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'a AccessibilityManager arayüzü ve LocalAccessibilityManager ekleyin (I53520)
- Desteği sonlandırılan LayoutCoordinates yöntemleri kaldırıldı. positionInParent ve boundsInParent için mülk yerine işlev kullanın (I580ed, b/169874631, b/175142755)
- Kaydırma çubuğu artık etkin/devre dışı durumu destekler (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 atılır. (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'de farklı durumlarda kullanılan farklı renkleri temsil etmek için TextFieldColors arayüzü eklendi. Varsayılan uygulama için TextFieldDefaults.textFieldColors ve TextFieldDefaults.outlinedTextFieldColors'e bakın.
- TextField ve OutlinedTextField içindeki isErrorValue parametresi isError olarak yeniden adlandırıldı. (I831f9, b/171305338, b/168004067)
- Erişilebilirlik amacıyla sekme veya radyo düğmesi koleksiyonunu işaretlemeye olanak tanıyan selectionGroup değiştirici ekleyin (Ie5c29)
LazyListState.animateScrollToItem ekleme
Bu yöntem, listedeki belirli bir öğeye sorunsuz bir şekilde kaydırılır. (I4bfd7)
ScrollableState.smoothScrollBy()
,animateScrollBy()
olarak yeniden adlandırıldıLazyListState.snapToItemIndex()
,scrollToItem()
olarak yeniden adlandırıldıScrollState.smoothScrollTo()
,animateScrollTo()
olarak yeniden adlandırıldı (I35ded)@ReadOnlyComposable
ile işaretlenen tüm derlenebilir öğeler artık yalnızca diğer@ReadOnlyComposables
öğelerine çağrı gönderdiğinden emin olmak için derleme zamanında doğrulanıyor (I58961)TargetAnimation API kaldırıldı. (If47d1, b/177457083)
Modifier.verticalScroll()/horizontalScroll() işlevindeki kaydırma konumu artık tam sayılarla temsil ediliyor (I81298)
smoothScrollBy ve scrollBy yöntemlerinin paketleri
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473) olarak değiştirildiFlingConfig, FlingBehavior olarak yeniden adlandırıldı ve artık önceden tanımlanmış azalma değerleri yerine askıya alma animasyonunun özelleştirilmesine olanak tanır. (I02b86, b/175294473)
Beden düzenleyiciler yeniden adlandırıldı. Modifier.width/height/size, requiredWidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.preferredWidth/preferredHeight/preferredSize, width/height/size olarak yeniden adlandırıldı. (I5b414)
defaultMinSizeConstraints, defaultMinSize olarak yeniden adlandırıldı. (I4eaae)
Oryantasyon, temel pakete taşındı. VelocityTracker, ui.gesture alanından ui.input.pointer alanına taşındı. (Iff4a8, b/175294473)
drawerState.open() ve drawerState.close() artık askıya alma işlevleridir. Bunları çağıracak bileşiğin kapsamını almak için rememberCoroutineScope() işlevini kullanın (I16f60, b/175294473)
Providers, CompositionLocalProvider olarak yeniden adlandırıldı
- Composition kurucusu artık anahtar parametresi kabul etmiyor ve desteği sonlandırıldı.
- currentCompositeKeyHash, composable üst düzey işlev yerine composable üst düzey bir özelliğe dönüştürülmüştür.
- CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
- ComposableLambdaN, somut sınıf yerine bir arayüz haline getirildi ve artık tür parametreleri içermiyor.
- snapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'ın birleştirme yöntemi artık deneysel değil
- Üst düzey
@TestOnly
clearRoots işlevi kaldırıldı. Artık gerekli değ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 taşındı ve farklı dosyalarda yeniden düzenlendi. Kotlin'in dosya sınıfı semantikleri nedeniyle bu durum ikili uyumluluğu bozar ancak kaynak uyumluluğunu bozmaz. Bu nedenle çoğu kullanıcı için sorun oluşturmaz.
- (I99b7d, b/177245490)
Modifier.scrollable yeniden çalışıldı. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanılıyor (I4f5a5, b/174485541, b/175294473)
Modifier.draggable artık basit bir lambda yerine DraggableState değerini kabul ediyor. Öncekiyle aynı davranışı elde etmek için
rememberDraggableState { delta -> }
aracılığıyla durum oluşturabilirsiniz (Ica70f, b/175294473)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 silindi (Ice5da, b/178633932)
Aşağıdaki Material API değişiklikleri yapıldı:
- Varsayılan dolguyu özelleştirmeye izin vermek için Top/BottomAppBar'a contentPadding parametresi eklendi.
- Gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesine ilişkin API yönergelerine uymak için BackdropScaffold'daki parametreler yeniden düzenlendi.
- BottomNavigationItem'deki
icon
parametresi,selected
veonClick
'den sonra olacak şekilde taşındı. - BottomNavigationItem'deki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametreleri yalnızcacontent
olarak yeniden adlandırıldı. ButtonDefaults.buttonColors()
parametreleri yeniden sıralandı. Parametrelerin türü değişmediğinden bu durumun kodunuzda hata oluşturmayacağını lütfen unutmayın. Lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde kodunuz daha önce olduğu gibi çalışmaz.darkColors()
parametresidarkColors()
'e eklendi.secondaryVariant
Bu renk genellikle koyu temadakisecondary
ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenir.- Yaygın olarak kullanılmadıkları ve yararlı olmadıkları için ElevationDefaults ve animateElevation() herkese açık API yüzeyinden kaldırıldı.
Slider
içindekionValueChangeEnd
,onValueChangeFinished
olarak yeniden adlandırıldı ve null değerini kabul edecek şekilde değiştirildi.- Tutarlılık için
Snackbar
'dakitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolguyu özelleştirmeye izin vermek için
DropdownMenuItem
parametresiDropdownMenuItem
'a eklendi vecontent
,RowScope
'ın bir uzantısı haline getirildi.contentPadding
ModalDrawerLayout
,ModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
,BottomDrawer
olarak yeniden adlandırıldı.- (I1cc66)
BasicTextField, daha iyi özelleştirme için artık Renk yerine Fırça'yı kabul ediyor (I83a36)
imageResource ve vectorResource artık sırasıyla ImageBitmap ve ImageVector yardımcılarında uzantı işlevidir. load{Image,Vector,Font}Resource işlevleri silindi. (I89130)
Indication#createIndication() işlevi, Indication#rememberUpdatedIndication(InteractionState) olarak değiştirildi ve InteractionState parametresi, IndicationInstance#drawIndication() işlevinden kaldırıldı. IndicationInstance, yalnızca görsel efektleri çizmekten sorumlu olmalı ve InteractionState değişikliklerine yanıt olarak animasyon başlatma / durum yazma işlemlerini gerçekleştirmemelidir. Bu animasyonlar ve durum yazma işlemleri
rememberUpdatedIndication()
içinde gerçekleşmelidir.Modifier.indication
içindekiindication
parametresi de zorunlu parametre olacak şekilde değiştirildi. (Ic1764, b/152525426)
Hata Düzeltmeleri
- TextField'deki önceki SoftwareKeyboardController arayüzünün yerini alacak yeni LocalSoftwareKeyboardController kompozisyon yerel API'si eklendi. (I658b6, b/168778053)
Sürüm 1.0.0-alpha12
10 Şubat 2021
androidx.compose.material:material-*:1.0.0-alpha12
yayınlanır. 1.0.0-alpha12 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Modifier.pointerInput artık, yeni bağımlılar için işaretçi girişi algılama coroutine'inin ne zaman yeniden başlatılacağını belirtmek üzere anahtarları hatırlamayı gerektiriyor. (I849cd)
- BottomDrawerLayout ve ListItem, @ExperimentalMaterialApi olarak işaretlendi (Id766e)
- PaddingValues.Absolute eklendi ve PaddingValues kabul eden API'lerde kullanılabilir. (Ia5f30)
- onImeActionPerformed işlevinin desteği sonlandırıldı. Bunun yerine KeyboardActions'ı kullanın (If0bbd, b/179071523)
- Adlandırma kurallarının ImageBitmap ve ImageVector ile daha uyumlu olması için ImagePainter, VectorPainter ile paralel olacak şekilde BitmapPainter olarak yeniden adlandırıldı. (Iba381, b/174565889)
- Animatable.snapTo ve Animatable.stop artık askıya alma işlevleridir (If4288)
- ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent yöntemine taşındı. (Icf416)
- Yapıyı bölme ve copy() yöntemleri, nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
- ModalBottomSheetState'teki halfExpand() ve expand() işlevlerini dahili hale getirin (Ic914e)
- Indication#createInstance, @Composable olarak değiştirildi ve LocalIndication, () -> Indication yerine bir Indication içerecek şekilde değiştirildi. (I5eeea, b/157150564)
- AlertDialog ve DropdownMenu, şimdilik yalnızca Android için taşındı. Temel pop-up'ın daha fazla yapılandırılması için DropdownMenu'ya PopupProperties parametresi eklendi. (I9c443)
- loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, vectorResource ve loadVectorResource desteği sonlandırıldı. Bunun yerine painterResource kullanın. (I6b809)
toggle
vetoggleModifier
parametresi, DropdownMenu'dan kaldırıldı vedropdownModifier
,dropdownOffset
vedropdownContent
sırasıylamodifier
,offset
vecontent
olarak yeniden adlandırıldı. DropdownMenu artık menünün konumu için üst öğe düzeninin kullanıldığıPopup
ile tutarlı şekilde davranıyor. Çoğu durumdatoggle
öğesiniDropdownMenu
öğesinin kardeşi olacak şekilde taşıyabilir ve her ikisini de birBox
içine sarabilirsiniz. Bu API'nin kullanımı hakkında daha fazla bilgi için dokümanlar bölümündeki güncellenmiş örneği inceleyin. (I884fb)- toIntPx(), roundToPx olarak yeniden adlandırıldı. (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ükleme için Modifier.draggable'ı kullanın (I0ba93, b/175294473) - Ambiyanslar, Ambiyans -> KompozisyonYerel yeniden adlandırma ile eşleşecek şekilde yeniden adlandırıldı. Ambients eskiden AmbientFoo olarak adlandırılıyordu. Artık CompositionLocals, LocalFoo olarak adlandırılıyor. (I2d55d)
- Seçim, temele taşındı. (I7892b)
- Daha önce
state { 0 }
bileşenini kaldırıpremember { mutableStateOf(0) }
gibi kullanımları teşvik ettiğimiz gibi,savedInstanceState { 0 }
bileşenini de kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmalısınız. MutableState içinde kullanılan tür Bundle'da depolanabiliyorsa otomatik olarak kaydedilir ve geri yüklenir. Daha önce özel bir koruyucu nesnesi iletiyorsanız artıkstateSaver
parametresi içeren yeni bir rememberSaveable aşırı yüklemesini 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 desteği sonlandırıldı ve bunun yerine daha spesifik üç ek açıklama eklendi.
@ComposableContract(restartable = false)
,@NonRestartableComposable
oldu@ComposableContract(readonly = true)
,@ReadOnlyComposable
oldu@ComposableContract(preventCapture = true)
,@DisallowComposableCalls
oldu@ComposableContract(tracked = true)
kaldırıldı.- (I60a9d)
Artık performans üzerinde olumlu bir etkisi veya değeri olmadığı için
emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programlarının desteği sonlandırıldı (I0484d)rememberSavedInstanceState(), rememberSaveable() olarak yeniden adlandırıldı ve androidx.compose.runtime.saveable paketine taşındı. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver, androidx.compose.runtime.savedinstancestate adlı sınıftan androidx.compose.runtime.saveable adlı sınıfa taşındı (I77fe6)
RounderCornerShape, CutCornerShape ve CornerBasedShape'taki parametreler, şeklin rtl yönünde otomatik olarak yansıtılmasını desteklemek için sol/sağ yerine başlangıç/bitiş olarak yeniden adlandırıldı. AbsoluteRounderCornerShape ve AbsoluteCutCornerShape, otomatik yansıtmanın istenmediği durumlar için kullanıma sunulmuştur. (I61040, b/152756983)
Sekme'nin
text
veicon
parametreleri ile Alt gezinme menüsü öğesininlabel
parametresi, bileşenin boyutunu ve düzenini etkilediği için bu parametreler sağlandığında / sağlanmadığında bileşenin davranışını daha iyi aktarmak amacıyla null değerini kabul edecek şekilde değiştirildi. Şu anda metin / simge / etiket olmadığını belirtmek içinemptyContent()
gönderiyorsanız bunun yerinenull
kullanmalısınız. (I57ed4)contentColorFor renk parametresi backgroundColor olarak yeniden adlandırıldı (I5bb67)
TabDefaults desteği sonlandırıldı ve TabRowDefaults ile değiştirildi. (I0f189)
Kaynak içeriğin RGB değerlerini değiştirmek için kullanılan ColorMatrix API kullanıma sunuldu. ColorFilter API, bir arayüz olacak ve PathEffect'in uygulanmasıyla eşleşecek şekilde yeniden yapılandırıldı. (Ica1e8)
AnimatedValue/Float için destek sonlandırıldı. Bunun yerine lütfen Animatable'ı kullanın. (I71345, b/177457083)
SemanticsProperties.PaneTitle API'yi ekleyin. (I20d5a)
Sekme ve Alt gezinme öğesi öğelerinin tıklanabilir olmasını önlemek için bu öğelere etkin parametreler eklendi. BottomNavigationItem, API'sindeki düzen şartlarını daha iyi ifade etmek için RowScope.BottomNavigationItem olarak değiştirildi. (Id683d)
tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ve pressIndicaitonGestureFilter desteği sonlandırıldı. Bunun yerine, detectTapGestures işleviyle birlikte Modifier.clickable veya Modifier.pointerInput kullanın. (I6baf9, b/175294473)
Şekil'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ı. [Özet]ComposeView artık varsayılan olarak, pencere için ViewTreeLifecycleOwner tarafından yönlendirilen, üşengeç şekilde oluşturulmuş, pencere kapsamlı Recomposer'ları kullanır. Ana makine yaşam döngüsü durdurulduğunda yeniden oluşturma ve withFrameNanos tabanlı animasyon tikleri duraklatılır. (I38e11)
Hata Düzeltmeleri
- Simge artık kendisine uygulanan boyut değiştiricilere göre boyutuna sığacak şekilde ölçeklenir. Örneğin,
Icon(.., modifier = Modifier.size(50.dp)
artık 50x50 dp'lik bir alanda çizilir. (Ib2ba9, b/178796190)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.material:material-*:1.0.0-alpha11
yayınlanır. 1.0.0-alpha11 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Bazı Material API'lerin artık
@Experimental
olmaması için tanıtım (I5d20e) - Resim ve simge için içerik açıklaması parametresi eklendi. Erişilebilirlik hizmetlerine açıklama sağlamak için kullanılır (I2ac4c)
- Material durum bilgisine sahip parametre arayüzlerini,
State<T>
döndüren @Composable işlevleri olacak şekilde değiştirir. Animatable öğesini State öğesine dönüştürmeyi kolaylaştırmak içinAnimatable.asState()
ekler. Ayrıca, animateElevation'ı Animatable üzerinde askıya alma uzantısı olarak değiştirir. (If613c) - Snackbar, SnackbarHost, SnackbarHostState artık
@ExperimentalMaterialAPI
değil (Id1fb5) - Typography, Shapes ve TabPosition artık veri sınıfı olmayacaktır. Oluşturulanları değiştirmek için Yazı Tipi ve Şekiller için kopyalama işlevi ekler. (I40037)
- Daha önce desteği sonlandırılan bazı Material API'ler silindi (Ifaa25)
Hata Düzeltmeleri
- onCommit, onDispose ve onActive için desteği sonlandırıldı. Bunun yerine SideEffect ve DisposableEffect API'leri kullanılmalıdır (If760e)
- TransitionDefinition tabanlı geçişin desteği sonlandırıldı (I0ac57)
- updateTransition'daki ilk durum artık desteklenmektedir (Ifd51d)
- WithConstraints, BoxWithConstraints olarak yeniden tasarlandı ve foundation.layout alanına taşındı. (I9420b, b/173387208)
Askıya almayan scrollBy işlevinin desteği sonlandırılacak, askıya almayan scrollTo işlevi kaldırılacak
Artık kaydırma işlemini kontrol etmek ve kaydırma işleminin tamamlanmasını beklemek için askıya alma işlevlerini kullanmanızı öneririz. Bu geçiş kapsamında, bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz ve/veya desteğini sonlandırıyoruz. (Ie9ced)
smoothScrollBy işlevinin askıya alınmayan sürümü kullanımdan kaldırıldı. 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 alınmayan sürümlerini kullanımdan kaldırıyoruz. (I12880)
ComposeTestRule
'u genişleten veComposeTestRule
'dan kaldırılansetContent
'yi tanımlayanComposeContentTestRule
tanıtıldı.ComposeTestRule
döndüren ve sizin için bir Etkinlik başlatmayan bircreateEmptyComposeRule()
fabrika yöntemi eklendi. Testiniz sırasında etkinliğinizi başlatmak istediğinizde (ör.ActivityScenario.launch
(I9d782, b/174472899) kullanarak) bunu kullanın.Button ve FloatingActionButton'da kullanılan dalga artık AmbientIndication aracılığıyla yeni bir gösterge sağlayarak özelleştirilemez. Bu bileşenlerin özelleştirilmesinin hiçbir zaman bu şekilde yapılması amaçlanmamıştır ve bu durum artık bu bileşenleri diğer Material bileşenleriyle tutarlı hale getirir. Bir uygulamadaki dalgaları özelleştirmek için RippleTheme'e bakın. (I546c5)
animateAsState artık animateFooAsState olarak değişti. Foo, animasyon uygulanan değişkenin türüdür. Ör. Float, Dp, Offset vb. (Ie7e25)
BasicTextField,
decorationBox
adlı yeni bir parametre aldı. Metin alanına simge, yer tutucu, etiket ve benzeri süslemeler eklemenize ve bu alanın isabet hedef alanını artırmanıza olanak tanır. (I16996)Materyal metin alanının genişliğinin 280.dp'den az ayarlanmasını engelleyen bir hatanın düzeltilmesi (I78373)
canDrag parametresi, Modifier.draggable öğesinden kaldırıldı (Ic4bec, b/175294473)
displaySize değerini kaldırın. Genellikle onRoot() boyutunu veya en azından pencere boyutunu kullanmak daha iyidir. (I62db4)
Yüzey artık birden fazla düzen alt öğesine sahip olabilir. (I66a92, b/144488459)
invalidate ve compositionReference() işlevlerinin desteği sonlandırıldı. Bu işlevlerin yerine sırasıyla currentRecomposeScope ve rememberCompositionReference işlevleri kullanılmalıdır. (I583a8)
PopupPositionProvider'ı, global koordinatlar yerine pencereye göre koordinatlar kullanacak şekilde değiştirir. parentGlobalBounds öğesini anchorBounds olarak yeniden adlandırır ve windowGlobalBounds öğesini
windowSize: IntSize
olarak değiştirir (I2994a)Süre ve Uptime, Uzun milisaniye ile değiştirilecek. Bu adım, işaretçi girişinin bu sınıflara olan bağımlılığını kaldırır. (Ia33b2, b/175142755, b/177420019)
FlingConfig'i kabul eden AnimatedFloat.fling kaldırıldı. Lütfen bunun yerine suspendAnimatable.animateDecay işlevini kullanın. (I4659b, b/177457083)
tıklanabilir, açma/kapatma düğmeli ve seçilebilir öğeler artık kompozisyon dışında oluşturulabilir (I0a130, b/172938345, b/175294473)
Easing, işlevsel bir arayüze (Ib14e5) değiştirildi
ScrollableColumn/Row desteği sonlandırıldı. ScrollableColumn, yalnızca görünür öğeleri oluşturabildiği/ölçtüğü/çizdiği için büyük bir kaydırılabilir içeriğiniz varsa LazyColumn'a kıyasla daha az verimlidir. Kullanıcıların verimsiz bir yönteme başvurmasını önlemek için ScrollableColumn ve ScrollableRow için desteği sonlandırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımını teşvik etmeye karar verdik. Kullanıcılar, yine de tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)
fabrika yöntemi.items(items: List)
veitemsIndexed(items: List)
artık uzantı işlevleri olduğundan, kullanıldığında bunları manuel olarak içe aktarmanız gerekir. Diziler için yeni uzantı aşırı yüklemeleri:items(items: Array)
veitemsIndexed(Array)
(I803fc, b/175562574)Deneysel monotonicFrameAnimationClockOf yöntemleri kaldırıldı (Ib753f, b/170708374)
Küresel koordinat yöntemlerinin desteği sonlandırıldı ve yeni pencere tabanlı koordinat yöntemleri oluşturuldu. (Iee284)
İnceleme etkinleştirildiğinde grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsLayer eklendi. (I315df)
FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlenmiştir. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @ExperimentalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, ProgressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. 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 grafiklerinin köküne uygulanan renklendirmenin ayrıştırılmasını desteklemek için vektör grafikleri API'si güncellendi. (Id9d53, b/177210509)
Sürüm 1.0.0-alpha10
13 Ocak 2021
androidx.compose.material:material-*:1.0.0-alpha10
yayınlanır. 1.0.0-alpha10 sürümü bu taahhütleri içerir.
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 tutarlı olması için
@ExperimentalTesting
,@ExperimentalTestApi
olarak yeniden adlandırıldı (Ia4502, b/171464963) - Position, DpOffset olarak yeniden adlandırıldı ve getDistance() kaldırıldı (Ib2dfd)
- Color.useOrElse() işlevi Color.takeOrElse() olarak yeniden adlandırıldı (Ifdcf5)
- Foundation Strings.kt'ye açma/kapatma düğmesi ekleme (I4a5b7, b/172366489)
- FlowRow ve FlowColumn desteği sonlandırıldı. Bunun yerine lütfen özel bir düzen kullanın. (I09027)
- Modifier.focus() ve Modifier.focusRequester() işlevlerinin desteği sonlandı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ında nativeClass kullanımı, bunun yerine "is MyClass" olarak güncellendi. (I4f734)
Hata Düzeltmeleri
- Devre dışı bırakılan ve salt okunur metin alanları için destek eklendi (I35279, b/171040474, b/166478534)
animate()
artıkanimateAsState()
ile değiştirildi. Bu değişiklik,T
yerineState<T>
döndürür. Geçersiz kılma kapsamı, State değerinin okunduğu yere daraltılabileceğinden bu, daha iyi performans sağlar. (Ib179e)- Semantics role API'yi ekleyin ve tıklanabilir, seçilebilir ve değiştirilebilir SemanticsModifier'a parametre olarak Role ekleyin. Modifier.progressSemantics özelliği, Kaydırma Çubuğu'nun da kullanabilmesi için değiştirildi. (I216cd)
Sürüm 1.0.0-alpha09
16 Aralık 2020
androidx.compose.material:material-*:1.0.0-alpha09
yayınlanır. 1.0.0-alpha09 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Modifier.swipeable'da yerleşme animasyonunu ve sürüklemeyi manuel olarak tetiklemek için API eklendi (Iaa17a, b/162408885)
- ButtonConstants gibi *Constants nesneleri, ButtonDefaults gibi Defaults ile bitecek şekilde yeniden adlandırıldı. Ayrıca bu yeni nesnelerdeki özelliklerden gereksiz
default
ön eklerinin kaldırılmasını sağlar. (Ibb915, b/159982740) Compose, birleştirilebilir çağrılar yapabilen mülk alıcıları destekler. Bu özellik için destek sonlandırılmıyor ancak mülk alıcısını @Composable olarak beyan etme söz dizimi değişiyor.
Bunu yapmak için artık desteklenmeyen söz dizimi, mülkün kendisini ek açıklamayla belirtmektir:
@Composable val someProperty: Int get() = ...
Bunu yapmak için artık doğru söz dizimi, mülkün alıcısını ek açıklamayla belirtmektir:
val someProperty: Int @Composable get() = ...
Her iki söz dizimi de bir süre boyunca çalışacak ancak kullanımdan kaldırılan eski söz dizimi sonunda derleme hatası oluşturacaktır. (Id9197)
Material kitaplığının geri kalanına ihtiyaç duymadan etkileşimli bileşenler oluşturmaya olanak tanımak için dalgalanma API'lerini içeren
androidx.compose.material:material-ripple
kitaplığı eklendi. rememberRippleIndication desteği sonlandırıldı ve rememberRipple ile değiştirildi. (Ibdf11)
Hata Düzeltmeleri
- Ofset değiştiricilerdeki lambdalar artık Float yerine IntOffset döndürüyor. (Ic9ee5, b/174137212, b/174146755)
Çizim ortamının boyut bilgileri mevcut olduğunda ShaderBrush'ı, gölgelendirici örneğini yavaşça oluşturacak şekilde yeniden yapılandırdı. Bu, özel DrawModifier uygulamaları uygulamak zorunda kalmadan, bir kompozisyonun tüm çizim sınırlarını kompozisyon sırasında kaplayan degradeleri tanımlamak için kullanışlıdır.
Gradyan işlevi oluşturucu API'leri, Gradyan nesnesinde fabrika yöntemleri lehine kullanımdan kaldırıldı. (I511fc, b/173066799)
Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent'i kullanın (I30f17, b/168511863, b/168511484)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed işlevleri kullanımdan kaldırılıyor. Bunun yerine LazyColumn ve LazyRow kullanın (I5b48c)
Dp.VectorConverter, Position.VectorConverter vb. animation-core'a taşındı ve eski VectorConveters için destek sonlandırıldı (If0c4b)
Autofill API artık deneysel API'dir ve etkinleştirilmesi gerekir (I0a1ec)
FocusRequester örnekleri oluşturmak için yapı bozma beyanları ekleme (I35d84, b/174817008)
accessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
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'ler için InteractionState desteği eklendi. (I61d91)
Alt öğelerin anlamlarını temizlemek ve yeni anlamlar ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
ContentDrawScope, DrawScope ile birlikte olması için ui-graphics modülüne taşındı. (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ı. 1.0.0-alpha08 sürümü bu taahhütleri içerir.
API Değişiklikleri
- MaterialTheme artık seçim tutamaçlarının ve seçim arka planının doğru renklerini ayarlıyor. Material olmayan uygulamalar, seçim için kullanılan renkleri özelleştirmek üzere AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Compose yönergeleriyle tutarlılığı kontrol etmek için birleştirilebilir lambda parametre adlandırma ve konumu için lint denetimi eklendi.
Ayrıca, son lambda adları olarak
children
kullanan bazı API'ler, lint kontrolüne ve yönlendirmeye görecontent
olarak taşındı. (Iec48e) - VectorAsset, ImageVector olarak yeniden adlandırıldı. API konseyi yönergelerine göre VectorAsset, ImageVector'ın iç sınıfı olması için taşındı ve Builder olarak yeniden adlandırıldı. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder için typealias eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- Temel anlambilim özellikleri kullanıcı arayüzüne taşındı (I6f05c)
fun RippleIndication()
desteği sonlandırıldı ve diğer API'lerle tutarlılık sağlamak içinrememberRippleIndication()
ile değiştirildi. (Id8e2c)- BasicTextField, TextField ve OutlinedTextField'e singeLine parametresi eklendi. Metin alanını yatay olarak kaydırılabilir tek bir satır haline getirmek için bu parametreyi true olarak ayarlayın. (I57004, b/168187755)
Hata Düzeltmeleri
- Kapatma (I2b706) anlamsal işlemini ekleme
- DrawModifier API'leri, androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Desteği sonlandırılan API'lerden mevcut API'lere geçişe yardımcı olmak için tür takma adları/yardımcı yöntemler içeren DrawModifierDeprecated.kt dosyası oluşturuldu. (Id6044, b/173834241)
- Modifier.drawLayer, Modifier.graphicsLayer olarak yeniden adlandırıldı. Ayrıca API geri bildirimine göre ilgili sınıflar GraphicsLayer olarak güncellendi. (I0bd29, b/173834241)
<T>
, SubcomposeLayout beyanından kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- 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)
- Kutu'nun alignment parametresi contentAlignment olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricileri offset olarak yeniden adlandırıldı. Artık durum yerine lambda parametreleri alıyorlar. (Ic3021, b/173594846)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Kompozit işlevlerdeki değiştirici parametreler için lint denetimi eklendi. Bu dil bilgisi denetimi, parametrenin adlandırmasını, döndürme türünü, varsayılan değerini ve sırasını, Oluşturma yönergeleriyle tutarlı olup olmadığını kontrol eder. (If493b)
- TextFieldValue API güncellendi
- TextFieldValue.composition özelliği salt okunur hale getirildi
- geçersiz seçim aralığı için kaldırıldı istisnası atıldı (I4a675, b/172239032)
- Yeni bir
Modifier.drawLayer()
aşırı yükleme işlevi eklendi. Yeni bir GraphicsLayerScope'da bir lambda bloğu alır. Bu blokta, katman parametrelerini durum değişikliği olduğunda yeniden oluşturma ve yeniden düzeni atlamaya izin verecek şekilde tanımlarsınız. DrawLayerModifier, mantığını LayoutModifier'ınplaceable.placeWithLayer()
yöntemine taşımaya hazırlanırken artık dahilidir (I15e9f, b/173030831) - Son eklerinde
Ambient
bulunan Ambient'ler kullanımdan kaldırıldı ve diğer Ambient'ler ile Compose API yönergelerine uygun olarak Ambient ön ekiyle yeni mülklerle değiştirildi. (I33440) - Değiştirici fabrikalarının
@Composable
olarak işaretlenmek yerine dahili olarakandroidx.compose.ui.composed {}
kullandığını kontrol etmek için lint denetimi eklendi. (I3c4bc) - Anlamsal bağımsız değişken mergeAllDescendants, mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Testlerde zaman kontrolü (TestAnimationClock ve kullanımları) artık deneyseldir (I6ef86, b/171378521)
- Eski ui-test modülünü ve onun stub'larını kaldırın (I3a7cb)
- Diğer birimlerle tutarlılık sağlamak için TextUnit.Inherit, TextUnit.Unspecified olarak yeniden adlandırıldı. (Ifce19)
- Hizalama arayüzü güncellendi ve çalışır hale getirildi. (I46a07, b/172311734)
- LayoutIdParentData için id, 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ü bu taahhütleri içerir.
API Değişiklikleri
- Vurgu özelliğinin desteği sonlandırıldı ve AmbientContentAlpha ile değiştirildi. AmbientContentAlpha, AmbientContentColor'un tercih edilen içerik rengini temsil etmesine benzer şekilde, hiyerarşinin bir kısmı için tercih edilen içerik alfa değerini temsil eden daha basit bir soyutlamadır. Metin ve simge artık varsayılan olarak AmbientContentAlpha'dan mevcut değeri kullanır. Bileşenlerinizde aynı etkiyi elde etmek için manuel olarak şunları yapabilirsiniz:
color.copy(alpha = AmbientContentAlpha.current)
. ProvideEmphasis yerine doğrudan AmbientContentAlpha aracılığıyla bir değer sağlayabilir ve eski EmphasisLevels değerlerini değiştirmek için ContentAlpha'daki yeni varsayılan seviyeleri kullanabilirsiniz. (Idf03e, b/159017896) - androidx.compose.foundation.AmbientContentColor'un yerine androidx.compose.material.AmbientContentColor eklendi (I84f7b, b/172067770)
- Üst düzey, temalanabilir bir metin bileşeni olarak androidx.compose.foundation.Text'in yerine androidx.compose.material.Text eklendi. Temadan renk / metin stili kullanmayan temel bir metin bileşeni için TemelMetin'i kullanın. (Ie6ae0)
- TextField'lere maxLines eklendi (Ib2a5b)
- TextField'leri KeyboardOptions'ı kabul edecek şekilde güncelleme (Ida7f3)
- Yüzey, artık yükseklik yer paylaşımlarını hesaplarken mutlak (toplam) yüksekliği kullanır. Bu nedenle, başka bir yüzeye yerleştirilmiş bir yüzey, yer paylaşımını çizmek için birleştirilmiş yüksekliği kullanır. (I7bd2b, b/171031040)
Hata Düzeltmeleri
captureToBitmap
,captureToImage
adlı kümeye taşındı. (I86385)- Temel AmbientTextStyle, ProvideTextStyle ve AmbientContentColor desteği sonlandırıldı. Bunun yerine, Material kitaplığındaki yeni sürümleri kullanın. Material olmayan uygulamalarda ise kendi tasarım sisteminize özel tema ortamları oluşturmanız ve bunları kendi bileşenlerinizde kullanmanız gerekir. (I74acc, b/172067770)
- foundation.Text desteği sonlandırıldı ve material.Text ile değiştirildi. Bir temadan değer tüketmeyen temel, tarafsız bir metin API'si için androidx.compose.foundation.BasicText'e bakın. (If64cb)
- KeyboardOptions'ı ImeOptions olarak yeniden adlandırın (I82f36)
- KeyboardType ve ImeAction, KeyboardOptions'a taşındı (I910ce)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField'i kullanın. (I896eb)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn eklenmeden kullanılabilir (I708ad)
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine taşındı (Ied2e7)
- Simge API'si, sağlanan öğeyi veya boyayı ColorFilter olmadan çizecek olası bir ton rengi olarak Color.Unspecified değerini alacak şekilde güncellendi. Daha önce Color.Unspecified ile renklendirmeyi yok sayma girişimleri, saydam bir renkle renklendirme yapar ve hiçbir şeyin oluşturulmasına yol açmazdı. (I049e2, b/171624632)
- relativePaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzenleme sınırlarından metin taban çizgilerine olan mesafeleri belirtmek için kolaylık sağlamak amacıyla paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
- SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak için LaunchedTask, LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek amacıyla, konu parametresi olmayan LaunchedEffect'e izin verilmez. (Ifd3d4)
- MeasureResult, MeasureScope'tan çıkarıldı. (Ibf96d, b/171184002)
- androidx.compose.ui altındaki birkaç düzen sembolü, androidx.compose.layout.ui altına 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ü bu taahhütleri içerir.
API Değişiklikleri
- androidx.compose.foundation.Icon, androidx.compose.material.Icon altına taşındı. Malzeme kitaplığını kullanmak istemiyorsanız Resim bileşenini / Modifier.paint() işlevini bir Painter ile de kullanabilirsiniz. (I9f622)
- FAB'ların farklı durumlarda kullandığı yüksekliği temsil etmek için FloatingActionButtonElevation özelliğini ekler. Varsayılan uygulama için FloatingActionButtonConstants.defaultElevation()'e 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'a bakın. (I93805)
- Düğmelerin farklı durumlarda kullandığı 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)
- Bir RadioButton tarafından farklı durumlarda kullanılan renkleri temsil etmek için RadioButtonColors arayüzünü ekler. Farklı durumlarda kullanılan renkleri özelleştirmek için RadioButtonConstants.defaultColors() işlevine bakın. (I74130)
- Bir onay kutusunun farklı durumlarda kullandığı renkleri temsil etmek için CheckboxColors arayüzünü ekler. Farklı durumlarda kullanılan renkleri özelleştirmek için CheckboxConstants.defaultColors() işlevine bakın. (I7dbdb)
Hata Düzeltmeleri
- Materyal bileşenler artık yüksekliği z-endeksi olarak ayarlamaz. Yani aynı üst öğe içinde, gölge boyutu daha büyük olan alt öğe, otomatik olarak gölge boyutu daha küçük olan alt öğenin üzerine çizilmez. Bu tür bir davranışa hâlâ ihtiyacınız varsa lütfen gerektiğinde Modifier.zIndex() işlevini manuel olarak ayarlayın (I70417, b/170623932)
- Kompozit API'nin, verileri kompozisyonlar arasında kalıcı hale getirmek için dahili olarak "remember" işlevini kullandığını daha iyi belirtmek amacıyla VectorPainter yerine rememberVectorPainter işlevinin desteği sonlandırıldı. (Ifda43)
- ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'dan yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
- CoreTextField'e (I72e6d) tek satırlı klavye seçeneği eklendi
- Radius API'nin adı, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak değiştirildi. Negatif köşe yarıçaplarının sıfıra sabitlendiğini belirtmek için dokümanlar güncellendi. (I130c7, b/168762961)
- DrawScope ve ContentDrawScope, soyut sınıflar yerine arayüz olacak şekilde yeniden yapılandırıldı.
- DrawScope için CanvasDrawScope uygulaması oluşturuldu
- DrawScope'un yeniden yapılandırılmış uygulamaları, bunun yerine CanvasScope'u kullanır.
- DrawScope için bağımlılıkları sarmalamak üzere DrawContext oluşturuldu
- DrawScope'ta desteği sonlandırılan yöntemler kaldırıldı (I56f5e)
- Kutu 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ü bu taahhütleri içerir.
API Değişiklikleri
- Pop-up'lar ve iletişim kutuları artık FLAG_SECURE işaretini üst pencereden devralıyor. Ayrıca bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149)
- Modifier.swipeable artık varsayılan olarak eyaletler için 56.dp eşiklerine sahiptir (Iab825, b/168610267)
- Tüm iskele durumları @Stable olarak işaretlendi. ScaffoldState'teki drawerGesturesEnabled, Scaffold'a taşındı. (I36645, b/168297016)
- Scaffold lambda parametrelerinden boş değer kabul eden 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ği sonlandırılır ve sırasıyla AmbientContentColor ve AmbientTextStyle ortamlarıyla değiştirilir. Diğer tüm ortamlarda olduğu gibi, ortam mülkünde
.current
kullanarak mevcut değere erişebilirsiniz. Bu değişiklik, tutarlılık sağlamak ve aynı işlemi gerçekleştirmek için birden fazla yöntem olmasını önlemek amacıyla yapılmıştır. Ayrıca, bazı ortam özelliklerini amaçlarını daha iyi açıklamak için aşağıdaki şekilde yeniden adlandırır:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- VurguAmbiyans -> AmbiyansVurguDüzeyleri
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
AmbientElevationOverlay ekler. Bu sayede, koyu temada Surface'lere uygulanan varsayılan yükseklik yer paylaşımını özelleştirebilir veya devre dışı bırakabilirsiniz. (I5b74d)
Hata Düzeltmeleri
- Satır içi sınıflar için gözetmen 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 değerini Color.Unspecified olarak yeniden adlandırın (I97611, b/169797763)
- TextOverflow.None özelliği kullanıma sunuldu. Taşma None olduğunda Text artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
- launchInComposition, Compose API yönergeleriyle eşleşecek şekilde LaunchedTask olarak yeniden adlandırıldı (I99a8e)
- OnPositionedModifier, OnGloballyPositionedModifier olarak yeniden adlandırıldı ve onPositioned(), 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ü bu taahhütleri içerir.
API Değişiklikleri
- Durum bilgisine sahip Material bileşenlerinde InteractionState parametrelerini gösterir. Böylece durumu kaldırmaya ve okumaya / kontrol etmeye olanak tanır. (Iaca5f, b/168025711, b/167164434)
- Her durumda kullanılan renkleri tamamen özelleştirmenize ve dilerseniz renklerin durumlar arasında nasıl animasyonlu olarak değişeceğini ayarlamanıza olanak tanımak için RadioButton ve TriStateCheckbox'taki
*color
parametrelerini değiştirir. Daha fazla bilgi için CheckboxConstants ve RadioButtonConstants'taki yeni animateDefault* renk işlevlerine bakın. (I1c532) - rememberBackdropState adlı değişkenin adı rememberBackdropScaffoldState olarak değiştirildi ve animasyon saati için ek bir parametre eklendi. BackdropScaffold parametresinin backdropScaffoldState adı, scaffoldState olarak değiştirildi. BackdropConstants, BackdropScaffoldConstants olarak yeniden adlandırıldı. (Ib644d)
- Deneysel BottomSheetScaffold bileşeni eklendi. (Ie02f0, b/148996320)
- Deneme amaçlı ModalBottomSheetLayout bileşeni eklendi. (Ic209e, b/148996320)
- ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation adlı sabit, defaultElevation olarak yeniden adlandırıldı ve artık AnimatedValue yerine Dp değeri döndürüyor. (I5f3ed)
Hata Düzeltmeleri
- Birçok Grafik API'si güncellendi
- DrawScope ve DrawTransform'daki x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil etmek üzere tek bir Offset parametresi kullanacak şekilde ölçek ve dönme dönüşümü API'leri güncellendi
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap dokümanları, elips şeklindeki şekillere ek olarak oval şeklindeki şekilleri de içerecek şekilde güncellendi.
- Satır içi Radius sınıfının herkese açık kurucusunun doğrudan çağrılmaması gerektiğini, bunun yerine Radius nesnelerinin işlev kurucuları aracılığıyla oluşturulması gerektiğini belirten dokümanlar eklendi
- Sağ üst, sağ alt, alt orta vb. noktaları sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.shift, Rect.translate için kullanımdan kaldırıldı
- RoundRect.grow ve Rect.shrink API'leri kaldırıldı
- RoundRect.outerRect, Rect.boundingRect olarak yeniden adlandırıldı
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect ve Rect.isStadium yöntemleri kaldırıldı
- RoundRect.longestSide, RoundRect.maxDimension olarak yeniden adlandırıldı
- RoundRect.shortestSide, RoundRect.minDimension olarak yeniden adlandırıldı
- RoundRect.center işlevi, işlev yerine mülk olarak değiştirildi
- RoundRect yapıcısı, x/y yarıçapı değerleri için ayrı parametreler yerine Radius özelliklerini kullanacak şekilde güncellendi
- Orijininin 0,0 olduğu bir dikdörtgen olduğunu varsayılan Boyut API'leri kaldırıldı
- Radius'a bir destructing API eklendi
- Çeşitli RoundRect uzantı işlevleri, mülk olarak taşındı
- (I8f5c7, b/168762961)
- foundation.Box desteği sonlandırıldı. Bunun yerine lütfen foundation.layout.Box öğesini kullanın. (Ie5950, b/167680279)
- Grup, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box, compose.foundation.layout içindeki yeni Box için kullanımdan kaldırılacak. Yeni Kutu'nun davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, sütuna benzer şekilde davranan önceki Kutu'dan farklıdır. (I94893, b/167680279)
- Kutu süsleme parametrelerinin desteği sonlandırıldı. Kutunuzda süsleme/dolgu olmasını istiyorsanız bunun yerine değiştiricileri kullanın (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Birçok Grafik API'si güncellendi
- Dönüşümün yalnızca geri çağırma içinde uygulandığını ve geri çağırma çağrıldıktan sonra kaldırıldığını belirtmek için DrawScope API'leri, kapsamlı dönüşüm yöntemleriyle güncellendi
- clipPath dokümanları, yuvarlatılmış dikdörtgen yerine yol ifadesini içerecek şekilde güncellendi
- clipPath'teki sağ parametre için dokümanda sabit aralık
- DrawScope.drawCanvas, drawIntoCanvas olarak yeniden adlandırıldı ve boyut parametresi kaldırıldı
- İçe ekleme yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınırın tamamına aynı içe ekleme değerini sağlayan içe ekleme aşırı yüklemesi eklendi
- İç içe ekleme yönteminin 4 tarafın tamamına uygulanacağını belirten dokümanlar kaldırıldı
- Rect sınıfı için güncellenmiş dokümanlar
- Rect parametreleriyle ilgili yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yükleme oluşturuldu ve Rect.shift desteği sonlandırıldı
- (If086a, b/167737376)
- Düzenleme kapsamlarının içeriğinin statik olarak içe aktarılmasını (ör. RowScope'taki alignWithSiblings) engelledik. 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ü bu taahhütleri içerir.
API Değişiklikleri
BottomNavigationItem
'ninonSelect
parametresinionClick
olarak yeniden adlandırır (I91925, b/161809324)- BottomNavigationItem ve Sekme'ye InteractionState parametresini ekleyerek bu durumun kaldırılmasına ve bileşenin farklı durumlarda nasıl görüneceğinin ayarlanmasına olanak tanır. (Ia3e9e, b/168025711)
- Düğmelerden
disabledBackgroundColor
vedisabledContentColor
parametrelerini kaldırır. Bunun yerine ButtonConstants içindeki yeni varsayılan renk işlevlerini kullanmalısınız. contentColor/backgroundColor'u zaten açıkça ayarlıyorsanız bu varsayılan işlevleri kullanmalı ve hem etkin hem de devre dışı durumların renginin üzerine yazılmasını önlemek için parametrelerin bir kısmını/tamamını özelleştirmeniz gerekir. (If9b52) - Metin alanının arka plan rengi artık şeffaflık alfasını dolaylı 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
'te yeni birdefaultResistanceConfig
yöntemi eklendi. (I54238)- Button ve FloatingActionButton için animasyonlu durum bilgisine sahip yükseklik desteği ekler. Yükseklik artık varsayılan ve basılı durumlar arasında animasyonlu olarak değişir. Eyaletler arasındaki yüksekliği özelleştirmek için lütfen her durumda sabit 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şlevleri artık desteklenmiyor. Lütfen ComposeTestRule (I7f45a) üzerinde tanımlanan yeni benzerlerine geçin.- DpConstraints ve bu API'yi kullanan API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
- widthIn parametrelerinin minWidth ve maxWidth değerleri min ve max olarak yeniden adlandırıldı. preferredWidthIn, heightIn ve preferredHeightIn için de benzer bir değişiklik yapıldı. (I0e5e1, b/167389544)
- İleri/geri kaydırma semantik işlemlerini kaldırın. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
- Yerçekimi kullanımları, düzen API'lerinde tutarlı bir şekilde align veya alignment olarak yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut genel yöntemler 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ü bu taahhütleri 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ü bu taahhütleri içerir.
Bilinen Sorun
= Bir malzemedeki ilk karakter TextField
, geri tuşu kullanılarak 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ı. 0.1.0-dev17 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Daha önce desteği sonlandırılan RadioGroup ve RadioGroupItems kaldırıldı. Bunun yerine Satır ve Radyo Düğmesi'ni kullanın (I381b7, b/163806637)
- TextField'den onFocusChanged geri çağırma işlevleri kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder desteği sonlandırıldı. Bunun yerine Modifier.border kullanın. Kenarlık veri sınıfı, BorderStroke (I4257d, b/158160576) ile değiştirildi
- SwipeableState'teki bazı özellikler yeniden adlandırıldı: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. SwipeableState oluşturmak için rememberSwipeableState işlevi eklendi. (I2fc9c, b/163129614, b/163132293)
- Konumlandırma ve doğru sıraya ekleme içeren bilgi çubuğu desteği eklendi.
SnackbarHostState.showSnackbar
askıya alma işlevi üzerinden erişebilirsiniz. Ayrıca:- SnackbarHost bileşenleri eklendi. Duruma göre bilgi çubuğu barındırır ve bilgi çubuğu barları arasında geçişten sorumludur.
- SnackbarHostState, snackbar'lar ve snackbar barındırıcıları üzerinde kontrol sahibi olmak ve bu öğeleri ScaffoldState'ten ayırmak için eklenmiştir. Bu duruma
scaffoldState.snackbarHostState
aracılığıyla da erişebilirsiniz. - SnackbarHostState ile snackbar'lar arasında ortak arayüzü desteklemek için snackbar aşırı yüklemesi eklendi. (I79aaa)
- IconButton'a enabled parametresini ekler ve IconToggleButton'daki parametreleri yeniden sıralar (I0a941, b/161809385, b/161807956)
- Dize tabanlı API'ye sahip ListItem sürümü kaldırıldı. Bunun yerine slot sürümünü kullanın. (Ib8f57, b/161804681)
- Desteği sonlandırılan FilledTextField bileşeni kaldırıldı. Doldurulmuş metin alanının Material Design uygulamasını almak için lütfen bunun yerine TextField kullanın. (I5e889)
- AlertDialog artık düğmeler için FlowRow'u kullanıyor (I00ec1, b/161809319, b/143682374)
- Sınırları aştığında direnç miktarını değiştirmek için Modifier.swipeable parametresi 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ındaki ilerlemeyi animasyonlu olarak gösterirken varsayılan AnimationSpec olarak kullanılabilen yeni ProgressIndicatorConstants.DefaultProgressAnimationSpec eklendi (If38b5, b/161809914, b/161804677)
- Modifier.swipeable parametresine isteğe bağlı velocityThreshold parametresi eklendi. (I698ba)
- bottomBarSize, fabSize ve diğerleri artık ScaffoldState'te kullanılamaz. Boyutunu öğrenmek istediğiniz bileşende bunun yerine Modifier.onPosition kullanın. contentColor ve Modifier parametreleri Scaffold'a eklendi (Ic6f7b, b/161811485, b/157174382)
- Diğer API'lerle tutarlılık sağlamak için Sekme'deki bazı parametreleri yeniden adlandırır ve yeniden sıralar (Ia2d12, b/161807532)
- TabRow'u TabRow ve ScrollableTabRow olarak böler ve isScrollable özelliğini TabRow'dan kaldırır. Ayrıca, ScrollableTabRow'da edgePadding özelliğini de gösterir. Bu özellik, sekmelerden önce / sonra boş alanın kontrol edilmesine olanak tanır. (I583e8, b/161809544)
TabRow
nesnesi kaldırıldı ve yerine TabConstants eklendi. TabRow.TabPosition üst düzeye (TabPosition) taşındı ve indicatorContainerindicator
olarak yeniden adlandırıldı. Güncellenen API'nin nasıl kullanılacağı ve varsayılan değerler hakkında ayrıntılı bilgi için örneklere ve dokümanlara bakın. (I54d45, b/161809544)- Modifier.swipeable parametresinde küçük bir değişiklik yapıldı. Artık bir çift durum (T türü) alıyor ve aralarındaki eşiği ThresholdConfig biçiminde döndürüyor. SwipeToDismiss işlevine bir dismissThresholds parametresi eklendi. Bu parametre, lambda (DismissDirection) -> ThresholdConfig şeklindedir. (Ie1080)
- Kaydırma çubuğunda ayrıntılı özelleştirme için daha fazla renk bulunur (I73e64, b/161810475)
- Kartın color parametresi backgroundColor olarak yeniden adlandırıldı (I01fc1, b/161809546)
- Snackbar'da artık özelleştirilebilir arka plan ve içerik renkleri var (I238f2, b/161804381)
- Drawers'a (I23655, b/161804378) modifier, backgroundColor, contentColor ve scrimColor özelleştirme parametreleri eklendi
state { ... }
bileşeni artık kullanımdan kaldırıldı. Bunun yerine, daha net bir şekilderemember { mutableStateOf(...) }
çağrıları yapılması önerilir. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavram sayısını azaltır ve sınıf mülkü yetkilendirmesi içinby mutableStateOf()
kalıbıyla eşleşir. (Ia5727)- Button'un padding parametresi contentPadding olarak yeniden adlandırıldı (Id252e, b/161809394)
- Deneysel bir materyal bileşeni olan SwipeToDismiss'ı ekleyin. (I129e5)
Hata Düzeltmeleri
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine alt düzendeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)- SemanticsPropertyKey'e mergePolicy lambda eklendi. Bu, mergeAllDescendants semantik birleştirme işlemi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)
- IntSize artık satır içi bir sınıftır (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 doğru metinlerde konumu otomatik olarak yansıtmayacaktır. Bu isterseniz bunun yerinePlacementScope.placeRelative()
kullanın. (I873ac, b/162916675)- Rect için PxBounds desteği sonlandırıldı. PxBounds'un tüm kullanımlarını rect ile güncelledik ve taşıma işlemine yardımcı olmak için uygun desteği sonlandırma/şununla değiştir: ek açıklamaları ekledik. (I37038, b/162627058)
- RRect, oluşturma adlandırma kalıplarına daha uygun olması için RoundRect olarak yeniden adlandırıldı. RRect'e benzer işlev oluşturucular oluşturuldu ve RRect işlev oluşturucuları için destek sonlandırıldı (I5d325)
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ı. 0.1.0-dev16 sürümü bu taahhütleri içerir.
API Değişiklikleri
- Renkler artık bir arayüz yerine nihai sınıftır. Özel bir uygulamayı genişletip sağlamak yerine, özel tema nesneniz için yeni bir ortam oluşturmalı ve tema nesnesine, MaterialTheme'in dahili olarak işleyiş şekline benzer şekilde bileşenlerinizdeki yeni ortam üzerinden erişmelisiniz. (Ibae84)
- ColorPalette, Materyal renk sistemiyle daha iyi eşleşecek ve ColorPalette'in Materyal renk sisteminin belirli bir uygulaması yerine "genel" bir temalandırma nesnesi olmasıyla ilgili kafa karışıklığını giderecek şekilde Colors olarak yeniden adlandırıldı. Ayrıca lightColorPalette ve darkColorPalette değerlerini sırasıyla lightColors ve darkColors olarak yeniden adlandırır. (I9e976, b/161812111)
- BottomNavigationItem'in
text
parametresinilabel
,onSelected
parametresinionSelect
,activeColor
parametresiniselectedContentColor
,inactiveColor
parametresiniunselectedContentColor
olarak yeniden adlandırır ve parametre sıralamasını yönergelere uygun olacak şekilde günceller. (Icb605, b/161809324) Modifier.stateDraggable
tamamen yeniden tasarlandı ve Modifier.swipeable olarak yeniden adlandırıldı. Yeni bir SwipeableState sınıfı kullanıma sunuldu ve DrawerState ile BottomDrawerState, bu sınıftan devralınacak şekilde yeniden yapılandırıldı. [Modal/Bottom]DrawerLayout artık onStateChange parametresi 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)
- Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, BaseTextField olarak yeniden adlandırıldı. Böylece, istenen en basit API'nin keşfedilmesi ve kullanılması kolaylaştırıldı (Ia6242, b/155482676)
Hata Düzeltmeleri
- OnChildPositioned desteği sonlandırıldı. Bunun yerine alt öğede OnPositioned işlevini kullanın. (I87f95, b/162109766)
- Geniş API düzeltmelerini ele alma (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırma
- Tutarlı bir API yüzeyi elde etmek için Offset ve IntOffset sınıflarını hizalama
- Offset API ile tutarlı olması için IntOffset.Origin değerini IntOffset.Zero olarak yeniden adlandırın
- Tüketicilerin kendi Canvas örneklerini oluşturmalarını desteklemek için nativeCanvas yöntemi Canvas arayüzünden kaldırıldı
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden yapılandırmak ve alanın null olmamasına dikkat etmek için EmptyCanvas sınıfı oluşturuldu
- ClipOp enum'ları Pascal Case olarak yeniden adlandırıldı
- FilterQuality enum'ları Pascal Case olarak yeniden adlandırıldı
- StrokeJoin enum'ları Pascal Case olarak yeniden adlandırıldı
- PointMode enum'ları Pascal Case olarak yeniden adlandırıldı
- PaintingStyle enum'ları Pascal Case olarak yeniden adlandırıldı
- PathFillType enum'ları Pascal Case olarak yeniden adlandırıldı
- StrokeCap enum'ları Pascal Case olarak yeniden adlandırıldı
- DrawCache uygulaması, artık lateinit parametrelerini kullanmamak için güncellendi
- DrawScope, fillPaint ve strokePaint dahili parametreleri için artık yavaş yetkilendirme kullanmamak üzere güncellendi
- Daha az ek maliyet için Box kullanımını önlemek amacıyla resim derleyici güncellendi
- Outline sınıfı, @Immutable ek açıklamaları içerecek şekilde güncellendi
- PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- Vektör alt bileşimi, birleştirme işlemi zaten bunları ele aldığından eşitlik için gereksiz koşullu kontrolleri kaldırmak üzere güncellendi
- İşlev oluşturucuların lehine Rect yardımcı oluşturucu yöntemlerinin desteği sonlandırıldı
- Fırça sınıfları ve işlev kurucuları @Immutable ve @Stable API'leriyle güncellendi
- VertexMode enum'u PascalCase olarak güncellendi
- DrawScope selectPaint yöntemi, boyadaki vuruş parametrelerinin değişmiş olması durumunda koşullu olarak üzerine yazacak şekilde güncellendi
- Boyut, yapı bozma API'sini eklemek için güncellendi, BelirtilmemişBoyut yeniden adlandırılarak Belirtilmemiş olarak değiştirildi ve kullanılmayan yöntemler kaldırıldı
- İletişim kutusunu kullanıcı arayüzüne taşıma (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 yazma desteği için API'ler güncellendi. Düzen yönünü okumak ve değiştirmek için kullanılabilen LayoutDirectionAmbient eklendi. Modifier.rtl ve Modifier.ltr kaldırıldı. (I080b3)
- Modifier.deternimateProgress, Modifier.progressSemantics olarak yeniden adlandırıldı (I9c0b4)
- Material-icons-extended paketini, Material.io/icons'a eklenen en son simgelerle günceller (I4b1d3)
- transitionDefinition için T türünün açıkça belirtilmesini zorunlu tutun. (I1aded)
- Modifier.plus desteği sonlandırıldı. Bunun yerine Modifier.then işlevini kullanın. "Sonra", sıralama konusunda daha güçlü bir sinyal verir. Ayrıca
Modifier.padding().background() + anotherModifier
yazmayı yasaklar. Bu da zinciri bozar ve metnin okunmasını zorlaştırır (Iedd58, b/161529964) - 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 ait yerel koordinatları kullanın. (Ie9b08) - Kesik ekranlarda pop-up konumu düzeltildi. (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ü bu taahhütleri içerir.
Bağımlılıklar Güncellemesi
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıkları, yukarıdaki Bağımlılıkları beyan etme 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ı, çok dikkatli bir tartışmanın ardından alınmıştır.Gerekçe
Gerekçe aşağıdakileri kapsar ancak bunlarla sınırlı değildir:
- API'nin kapsamını ve öğretmemiz gereken kavramları azaltır
- Diğer benzer araç setleriyle (Swift UI, React, Flutter) daha uyumlu
- Geri alınabilir karar.
@Model
'yi daha sonra dilediğiniz zaman tekrar etkinleştirebiliriz. @Model
'ü yapılandırmayla ilgili, ele almamız gereken özel durumları ve yanıtlanması zor soruları ortadan kaldırır@Model
veri sınıfları, eşittir, karma kodu vb.- Bazı mülkleri nasıl "gözlemledim" olarak işaretleyebilirim?
- Gözlemde kullanılacak yapısal ve referanssal eşitliği nasıl belirtirim?
- Sistemdeki "sihir"i azaltır. Kullanıcıların sistemin olduğundan daha akıllı olduğunu varsayması (ör. bir liste arasındaki farkları nasıl bulacağını bilmesi) olasılığını azaltır.
- Gözlem ayrıntı düzeyini daha sezgisel hale getirir.
- Değişkenden sınıfta mülk olarak yeniden yapılandırılabilirliği iyileştirir
- Eyalete özel manuel optimizasyonlar yapma olanağı sunar.
- Ekosistemin geri kalanıyla daha uyumlu hale gelir ve "değişebilir durumu benimsediğimiz" veya "değişmez duruma bağlı olduğumuz" konusundaki belirsizliği azaltır.
Taşıma Notları
@Model
'ün mevcut kullanımlarının neredeyse tamamı, iki yöntemden biriyle oldukça basit bir şekilde dönüştürülebilir. Aşağıdaki örnekte, yalnızca örnek olması amacıyla iki özelliğe sahip bir@Model
sınıfı ve bu sınıfın bir bileşimde kullanıldığı 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 kullanın ve kopyalar oluşturun.Bu yaklaşım, Kotlin'in veri sınıflarıyla kolaylaştırılır. Özetle, daha önce
var
olan tüm özellikleri bir veri sınıfınınval
özelliği haline getirin, ardındanremember
yerinestate
kullanın ve veri sınıfıcopy(...)
kolaylık yöntemini kullanarak durum değerini orijinalin kopyalarına atayın.Bu yaklaşımın yalnızca sınıftaki tek mutasyonlar
State
örneğinin oluşturulduğu kapsamda yapıldığında işe yaradığını unutmayın. Sınıf, kullanım kapsamının dışında kendi içinde mutasyon geçiriyorsa ve bu gözleme güveniyorsanız kullanmanız gereken yaklaşımı aşağıda bulabilirsiniz.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 mülk temsilcilerini kullanma
Bu yaklaşım, Kotlin'in mülk temsilcileri ve kompozisyon dışında MutableState örnekleri oluşturmanıza olanak tanıyan
mutableStateOf
API ile kolaylaştırılır. Özetle, orijinal sınıfın tümvar
mülklerinin mülkü temsilcisi olarakmutableStateOf
içerenvar
mülkleriyle değiştirilmesi gerekir. Bu yöntemin avantajı, sınıfın kullanımının hiç değişmemesi, yalnızca dahili uygulamanın değişmesidir. Ancak her mülk artık ayrı ayrı gözlemlendiği/abone edildiği için davranış, orijinal örnekle tamamen aynı değildir. Bu nedenle, bu yeniden düzenlemeden sonra gördüğünüz yeniden oluşturma işlemleri daha dar olabilir (iyi bir şey).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ında onFocusChange geri çağırma işlevi, onFocusChanged olarak yeniden adlandırıldı (Ida4a1)
Yerleşim noktaları arasındaki eşikleri belirtmek için stateDraggable parametresine eşikler eklendi. Bu, alt çekmecede 56 dp'lik bir eşik ayarlamak için kullanıldı. Ayrıca BottomDrawerLayout artık ayrı bir BottomDrawerState enumu kullanıyor. (I533fa)
Daha önce desteği sonlandırılan Modifier.ripple kaldırıldı. Tıklanabilir, artık varsayılan gösterge olarak dalga efekti kullanır (uygulamanızda MaterialTheme {} ayarladıysanız). Bu nedenle, çoğu durumda tıklanabiliri kullanabilir ve dalga efekti göstergesini ücretsiz olarak alabilirsiniz. Dalganın rengi / boyutu / sınırlanmış parametresini özelleştirmeniz gerekiyorsa manuel olarak bir RippleIndication oluşturabilir ve bunu tıklanabilir öğeye gösterge parametresi olarak iletebilirsiniz. (I663b2, b/155375067)
Desteği sonlandırılmış FilledTextField bileşeninin geçersiz kılma özelliği kaldırıldı (I7f8f8)
Button nesnesini (Button işlevi tarafından kullanılan varsayılanları içeren) ButtonConstants olarak yeniden adlandırın (I7c5f7, b/159687878)
Düğmenin içerik yuvası artık satır gibi davranır (metin içeren bir simge kullanmanız gerektiğinde kullanışlıdır. Düğme'de nasıl yazılacağıyla ilgili örneklere bakın) (I0ff10, b/158677863)
RadioGroup ve RadioGroupItem için destek sonlandırıldı. Tasarımınıza göre uygun radyo düğmesi seçimleri yapmak için Modifier.selectable, Row ve Column ile birlikte Box kullanın (I7f5cf, b/149528535)
Materyal Anahatlı Metin Alanı (I1a518) eklendi
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField, FilledTextField ve CoreTextField bileşenlerinin desteği de sonlandırılmıştır. Bunun yerine lütfen androidx.ui.input.TextFieldValue kullanın (I4066d, b/155211005)
TabRow.TabPosition, IntPx yerine Dp'de konum içermiyor (I34a07, b/158577776)
IntPx kullanımı Int ile değiştirildi. IntPxPosition, IntOffset ile değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Beden bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxSize yerine Size sınıfının kullanımını standartlaştırın. Bu, genişliği ve yüksekliği kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanmak amacıyla satır içi sınıfın avantajlarını sağlar. (Ic0191)
Modifier.ripple desteği sonlandırıldı. Tıklanabilir, artık varsayılan gösterge olarak dalga efekti kullanır (uygulamanızda MaterialTheme {} ayarladıysanız). Bu nedenle, çoğu durumda tıklanabiliri kullanabilir ve dalga efekti göstergesini ücretsiz olarak alabilirsiniz. Dalganın rengi / boyutu / sınırlanmış parametresini özelleştirmeniz gerekiyorsa manuel olarak bir RippleIndication oluşturabilir ve bunu tıklanabilir öğeye gösterge parametresi olarak iletebilirsiniz. (I101cd, b/155375067)
İskelet API yeniden tasarlandı: Birkaç parametrenin adı değiştirildi, daha iyi özelleştirme için yeni parametreler eklendi. Fab, TopBar ve BottomBar boyutlarını sorgulamak için alıcı eklendi (I0e7ce)
Materyal Tasarım menüsü uygulaması olan ui-material'e DropdownMenu bileşeni eklendi. (I9bb3d)
SoftwareKeyboardController'ı kullanarak yazılım klavyesini manuel olarak göstermeye/gizlemeye izin ver (Ifb9d6, b/155427736)
Modifier.indication, temel pakete eklendi. Özel etkileşimli öğelerinizde basma/sürükleme/diğer göstergeleri göstermek için kullanın (I8425f, b/155287131)
CanvasScope uygulamaları birleştirildi. Artık yalnızca DrawScope ve ContentDrawScope var. CanvasScope, DrawScope olarak yeniden adlandırıldı. DrawScope, Density arayüzünü uygulayacak ve LayoutDirection sağlayacak şekilde güncellendi. ContentDrawScope'taki DrawScope alt sınıfı silindi. Painter ve PainterModifier, DrawScope'un manuel olarak sağlamadığı bir RTL mülkünü artık kendileri sağlamamaları için 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 (I47dcb, b/155076924) uygundur.
FilledTextField, ime işlemi, görsel dönüşüm ve klavye türü desteği alır (I1f9cf, b/155075201)
Kenarlık boyutunu özelleştirmek için CircularProgressIndicator'a strokeWidth parametresini ekler. Bir LinearProgressIndicator öğesinin çizgi boyutunu (yükseklik) değiştirmek için Modifier.preferredHeight() veya başka bir boyut değiştiriciyi kullanabilirsiniz. (Icea16, b/154919081)
Kenarlık boyutunu özelleştirmek için CircularProgressIndicator'a strokeWidth parametresini ekler. Bir LinearProgressIndicator öğesinin çizgi boyutunu (yükseklik) değiştirmek için Modifier.preferredHeight() veya başka bir boyut değiştiriciyi kullanabilirsiniz. (Icea16, b/154919081)
FilledTextField'deki son ve ilk simgeler için slot API'si ve hata durumunun işlenmesi eklendi (Ic12e0)
FAB'ın ve Genişletilmiş FAB'ın varsayılan rengi MaterialTheme.colors.secondary olarak değiştirildi. (I3b9b9, b/154118816)
API'deki tüm boş değer kabul eden Color kullanımları, boş değer kabul etmeyenlerle değiştirildi ve null yerine Color.Unset kullanıldı (Iabaa7)
EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Material Buttons'ın 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 tüm kontrollerde olduğu gibi durumu kendileri iletmesi ve güncellemesi gerekir. (Ia00aa)
StaticDrawer kaldırıldı. Gerekirse bunun yerine malzeme spesifikasyonu genişliği olan kutuyu kullanın (I244a7)
Doldurulmuş metin alanı için Materyal Tasarım uygulaması eklendi (Ic75cd)
ListItem'e değiştirici parametre eklendi ve son lambda gövdesini öne çıkarmak için parametreler yeniden düzenlendi (I66e21)
Typography sınıfına defaultFontFamily kurucu parametresini ekler. Bu parametre, aile ayarı yapılmamış tüm sağlanan TextStyles için kullanılacak varsayılan yazı tipi ailesini belirtmenize olanak tanır. (I89d07)
Materyal Veri Tabloları API yüzeyinden geçici olarak kaldırıldı. (Iaea61)
Bölme bileşeninde yeniden adlandırılan parametreler (Ic4373)
children (Ia6d19)
MaterialTheme.emphasisLevels kaldırıldı. Bunun yerine vurgu düzeylerini almak için EmphasisAmbient.current'i kullanın (Ib5e40)
Şekil temalandırma sistemi, Materyal Tasarım spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğu tarafından kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz (Ifb4d1)
MaterialTheme.colors(), MaterialTheme.typography() gibi MaterialTheme API'leri işlev yerine özellik olarak değiştirildi. Mevcut çağrılardan parantezleri kaldırın. Davranışta herhangi bir değişiklik beklenmez. (I3565a)
Temel öğeler yerine birleştirilebilir lambdaları kabul edecek şekilde yeniden yapılandırılmış FloatingActionButton API'leri. Kullanım bilgileri için güncellenmiş örneklere bakın. (I00622)
enabled
parametresini onay kutusu, anahtar ve açma/kapatma düğmesine ekleyin (I41c16)Dalga efekti artık bir değiştiricidir. Tıklanabilir henüz dönüştürülmemiş olsa da önerilen kullanım
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763) şeklindedir.Surface ve Card, androidx.ui.material.surface adlı paketten androidx.ui.material adlı pakete taşındı (I88a6d, b/150863888)
Button, FloatingActionButton ve Clickable için artık ayrı bir
enabled
parametresi vardır. Button'daki parametrelerden bazıları yeniden adlandırıldı veya yeniden sıralandı. (I54b5a)Resim verileri ile düzene katılmak ve içerik çizmek için kullanılan yeni Image bileşeni arasındaki farkı daha iyi ayırt etmek amacıyla Image adı ImageAsset olarak değiştirildi. _Body:Geleneksel Android uygulama geliştirmeyi Compose çerçevesiyle birleştirmek için yararlı olan bir ImageAsset örneği oluşturmak amacıyla android.graphics.Bitmap üzerinde Bitmap.asImageAsset() adlı bir uzantı yöntemi oluşturuldu (Id5bbd)
Dize parametreleri içeren Snackbar API'si, birleştirilebilir lambdaları kabul eden aşırı yükleme işlevinin kullanılması için kaldırıldı. Kullanım bilgileri için güncellenmiş örnekleri inceleyin (I55f80)
Sekme API'leri,
text
veicon
lambda'larını kabul edecek şekilde yeniden düzenlendi (Ia057e)BottomNavigation bileşeni eklendi. Kullanım bilgileri için dokümanlara ve örneklere bakın (I731a0)
AppBarIcon kaldırıldı ve Icon, IconButton ve IconToggleButton eklendi. AppBarIcon'un mevcut kullanımlarını doğrudan IconButton ile değiştirebilirsiniz. Böylece, doğru dokunma hedefi elde edilir. Kullanım bilgileri için örneklere ve doğrudan bu bileşenlerle kullanabileceğiniz sağlanan Material Icons simgeleri için Simgeler bölümüne bakın. (I96849)
ButtonStyle, farklı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenmiş ö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ğildir. LayoutModifiers, döndürme veya ölçeklendirme göz önüne alındığında position mülkü anlamlı değildir. Bunun yerine geliştiriciler, bir LayoutCoordinate'dan diğerine dönüşümü hesaplamak için parentCoordinates ve childToLocal() yöntemlerini kullanmalıdır.
LayoutCoordinates, boyut mülkü için PxSize yerine IntPxSize kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullanır. Bu nedenle, tüm düzen boyutları kayan nokta değerleri değil, tam sayılar kullanmalıdır. (I9367b)
Ambiyans API'de önemli değişiklikler. Ayrıntılar için günlüğe ve
Ambient<T>
belgelerine bakın (I4c7ee, b/143769776)İskele malzemesi bileşeni eklendi. İskele aletleri (I7731b)
DrawBorder, Border Modifier (Id335a) ile değiştirildi
Hata Düzeltmeleri
- FocusModifier desteği sonlandırılmış, yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver getirilmiştir. FocusState ve FocusDetailedState için FocusState2'nin (I46919, b/160822875, b/160922136) desteği sonlandırıldı
- VerticalScroller ve HoriziontalScroller kullanımdan kaldırıldı. Sütun/satır davranışı ve parametreleriyle yerleşik deneyim için ScrollableColumn ve ScrollableRow'u veya kendi öğenizde Modifier.verticalScroll ve Modifier.horizontalScroll'u kullanın. Benzer şekilde, ScrollerPosition için desteğin sonlandırılması ve ScrollState'in kullanılması önerilir (I400ce, b/157225838, b/149460415, b/154105299)
- Modifier.draggable ve Modifier.scrollable API'leri yeniden tasarlandı. DragDirection, Orientation için kaldırıldı. Kaydırılabilir için gerekli durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
runOnIdleCompose
,runOnIdle
olarak yeniden adlandırıldı (I83607)- Tek değerli anlambilim özellikleri artık bir çağrı stili kullanıyor. Örneğin, "semantics { hidden = true }" artık şu şekilde yazılır: 'semantics { hidden() }'. (Ic1afd, b/145951226, b/145955412)
- 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 sayede API, animate() API'leriyle daha tutarlı hale gelir. (I24e38)
- Düzendeki tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'si, bu API'yi kullanacak şekilde güncellendi. (I0d8d0, b/159596546)
- Bulma araçlarını test etmek için yeni bir isteğe bağlı işaret olan useUnmergedTree eklendi. (I2ce48)
- Eski boyut testi API'leri kaldırıldı. (Iba0a0)
- NativeShader expect 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 bir sınıftı. Bu nedenle, NativeShader sınıfını doğrudan kullanın. (I25e4d)
- Pop-up'lar, iletişim kutuları ve menüler artık bağlama dayalı MaterialTheme'i (Ia3665, b/156527485) devralıyor
- Material DropdownMenu artık kaydırılabilir. (Ide699)
- Layout() işlevinin measure bloğundan layout direction parametresi kaldırıldı. Ancak sayfa düzeni 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, spring gibi AnimationSpec'ler oluşturmak için lambda koşulunu kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine, doğrudan kurucu parametrelerini alırlar. -Oluşturuculara güvenmek yerine AnimationSpec'in genel kullanım kolaylığını artırmak için yapıcıları açarak -KeyFrames ve Tween için süreyi ve gecikmeyi Int olarak değiştirin. Bu, gereksiz tür dönüştürme işlemlerini ve yöntem aşırı yüklemeyi (hem Long hem de Int'i desteklemek için) ortadan kaldırır. (Ica0b4)
enabled
yanlış olarak ayarlandığında (If4624, b/155941869, b/159331694) Şimdi geç düğmesi devre dışı görünüyor- Modifier.tag, Modifier.testTag ile karışıklık olmaması için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
- Placeable#get(AlignmentLine) işlevinden döndürülen hizalama çizgisi tam sayı konumları artık null değil. Sorgulanan hizalama çizgisi yoksa AlignmentLine.Unspecified döndürülür. (I896c5, b/158134875)
Radius sınıfı satır içi sınıf olacak şekilde yeniden düzenlendi. Y eksenindeki yarıçapın zorunlu x ekseni yarıçap parametresiyle eşleşmesi için varsayılan parametre içeren işlev kurucusu lehine tamamlayıcı oluşturma yöntemleri kaldırıldı.
DrawScope.drawRoundRect, x ve y eksenindeki yarıçap için 2 ayrı kayan değer yerine tek bir Radius parametresi kullanacak şekilde güncellendi (I46d1b)
Konumlandırma bilgilerini temsil etmek için kullanılan sınıf sayısını birleştirmek amacıyla PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, x ve y ofsetlerini kesirli sayı olarak temsil etmek için 2 kesirli sayı değerini paketlemek üzere uzun bir değerden yararlanan satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Açma/kapatma düğmeli bileşenin desteği sonlandırıldı. Bunun yerine Modifier.toggleable özelliğini kullanın (I35220, b/157642842)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I086f4)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Id3434)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli compose sınıflarında Px sınıfının kullanımı değiştirildi (I97a5a)
DropdonMenuItems için onClick çağrılmaması sorunu düzeltildi. (I3998b, b/157673259)
MutuallyExclusiveSetItem desteği sonlandırıldı. Bunun yerine Modifier.selectable kullanın. (I02b47, b/157642842)
Test etiketi için destek sonlandırıldı. Bunun yerine Modifier.testTag kullanın. (If5110, b/157173105)
TextField'in imlecinde yanıp sönen animasyon var (Id10a7)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (I19d02)
VerticalScroller artık kullanıma hazır olarak sütun sağlar. HorizontalScroller artık Row'u kullanıma hazır olarak sunar. (Ieca5d, b/157020670)
Piksel parametreleri için yalnızca Dp ve ilkel türlere güvenmek amacıyla büyük bir yeniden yapılanma çalışması kapsamında çeşitli kompozisyon sınıflarında Px sınıfının kullanımı değiştirildi (Iede0b)
Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için desteği sonlandırılma durumuna alındı. (I4cfdc)
DrawLayer değiştiricileri API'si değiştirildi: outlineShape, shape olarak yeniden adlandırıldı ve RectangleShape varsayılan değerine sahip oldu ve artık null kabul etmiyor; clipToOutline, clip olarak yeniden adlandırıldı; clipToBounds, RectangleShape ile clip == true ile aynı olduğu için kaldırıldı (I7ef11, b/155075735)
Bir Canvas'ı gösteren daha yüksek düzeydeki compose API'leri, bunun yerine CanvasScope'u göstermek için güncellendi. Bu sayede tüketicilerin kendi Paint nesnelerini yönetmesi gerekmez. Yine de bir tuvale erişmesi gereken tüketiciler, temel tuvalde çizim komutları göndermek için geri çağırma sağlayan drawCanvas uzantı yöntemini kullanabilir. (I80afd)
AlignmentLineOffset kompozitinin desteği sonlandırıldı. Lütfen bunun yerine relativePaddingFrom() değiştiricisini kullanın. CenterAlignmentLine bileşeni kaldırıldı. (I60107)
WithConstraints sona eklenen lambda API'si değiştirildi. Artık iki parametre yerine, constraints ve layoutDirection'e ek olarak Dp'de minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamı var (I91b9a, b/149979702)
Yalnızca gelen ilgili kısıtlamalar belirtilmediğinde (min kısıtlamalar için 0 ve max kısıtlamalar için sonsuz) sarmalanmış düzene boyut kısıtlamaları ayarlayan defaultMinSizeConstraints düzen değiştiricisi eklendi. (I311ea, b/150460257)
FocusManagerAmbient kaldırıldı. Odak almak için FocusModifier.requestFocus işlevini kullanın. (Ic4826)
Durumsuz, açıklayıcı bir çizim API yüzeyi göstermek için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyut bilgileri de karşılık gelen içe yerleştirilmiş sınırlara göre kapsamlandırılır. Tüketicinin, çizim işlemlerini yapılandırmak için kendi Paint durum nesnesini koruması gerekmez.
CanvasScopeSample eklendi ve demo uygulama, açıklayıcı grafik demoyu içerecek şekilde güncellendi (Ifd86d)
Metin alanına imleç rengi özelleştirmesi ekleme (I6e33f)
TextField ile kullanılan TextFieldValue, artık şu şekilde kullanıldığında etkinlik yeniden oluşturma işlemine 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 sağlamak için CoreTextField/TextField focusIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)
Layout ve LayoutModifier2'deki içsel ölçüm işlevleri artık, içsel sorgu API'sine dolaylı olarak yayılan düzen yönünü sağlayan bir IntrinsicMeasureScope alıcısına sahiptir. (Id9945)
Aynı üst düzendeki çocukların çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklendi. DrawLayerModifier'daki elevation mülkü shadowElevation olarak yeniden adlandırıldı ve artık çizim sırasını kontrol etmiyor. DrawShadow işlevinin parametre sırası değişti: elevation artık ilk sırada, shape ise varsayılan olarak RectangleShape ile ikinci sırada yer alıyor. (I20150, b/152417501)
RectangleShape, androidx.ui.foundation.shape.* klasöründen androidx.ui.graphics.* klasörüne taşındı. (Ia74d5, b/154507984)
TextField API güncellemesi: onFocus ve onBlur geri çağırma işlevleri, parametre içeren tek bir onFocusChange(Boolean) geri çağırma işlevine birleştirildi (I66cd3)
Satır ve sütun için sırasıyla verticalGravity ve horizontalGravity parametreleri eklendi. (I7dc5a)
wrapContentWidth ve wrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama bekleyeceği şekilde güncellendi. Yerçekimi değiştirici, dikey veya yatay hizalamayı kabul edecek şekilde güncellendi. Satır, sütun ve grup, özel sürekli Hizalamaları desteklemek için güncellendi. (Ib0728)
Bir ImageAsset'ten piksel bilgilerinin sorgulanması için PixelMap API oluşturuldu. (I69ad6)
ProvideContentColor kaldırıldı. Bunun yerine, ContentColorAmbient doğrudan
Providers
(Iee942) ile kullanılmalıdır.ui-text-compose modülü ui-text olarak yeniden adlandırıldı. ui-text artık CoreText ve CoreTextField bileşenlerini içeriyor (Ib7d47)
ui-text modülü, ui-text-core olarak yeniden adlandırıldı (I57ara)
ui-framework/CoreText, CoreTextField bileşenleri ui-text-compose altına taşındı. Projenize ui-text-compose öğesini ekleyebilirsiniz. (I32042)
DrawModifier API'yi iyileştirin:
- draw() için alıcı kapsamını ContentDrawScope yaptı
- draw() işlevindeki tüm parametreler kaldırıldı
- DrawScope, eski CanvasScope ile aynı arayüze sahiptir.
- ContentDrawScope'ta drawContent() yöntemi var (Ibaced, b/152919067)
runOnIdleCompose
verunOnUiThread
artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)[Değişken]Durum mülkü temsilcisi operatörleri, Kotlin 1.4 mülk temsilcisi optimizasyonlarını desteklemek için uzantılara taşındı. Arama yapanların
by state { ... }
veyaby mutableStateOf(...)
'u kullanmaya devam etmek için içe aktarma eklemesi gerekir. (I5312c)LayoutCoordinates için positionInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
ColoredRect kullanımdan kaldı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 desteği sonlandırıldı (If32ac)
Değiştirici artı operatör, fabrika uzantı işlevleriyle değiştirildi (I225e4)
Çekilebilir, değiştiriciye taşındı (Id9b16, b/151959544)
ParentData bileşeninin desteği sonlandırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya ölçüm bloğunda tanınmaları için düzen alt öğelerini etiketlemeniz yeterliyse LayoutTag değiştiriciyi kullanmanız gerekir. (I51368, b/150953183)
Desteği sonlandırılan Center composable. LayoutSize.Fill + LayoutAlign.Center değiştiricisiyle veya uygun değiştiricilerin uygulandığı Box ya da Stack bileşenlerinden biriyle değiştirilmelidir (Idf5e0)
Vektör grafikleri için mevcut alt kompozisyon API'sinin yerini alacak VectorPainter API eklendi. Alt kompozisyonun sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector bileşenlerinin desteği sonlandırıldı ve VectorPainter tercih edildi.
Image(Painter) API'nin adı PaintBox(Painter) olarak değiştirildi. Image bileşeni gibi davranan ancak ImageAsset yerine VectorAsset kullanan bir Vector bileşeni oluşturuldu (I9af9a, b/149030271)
LayoutFlexible, LayoutWeight olarak yeniden adlandırıldı. Doldurulacak sıkı parametre yeniden adlandırıldı. (If4738)
RepaintBoundary, DrawLayerModifier (I00aa4) için kaldırıldı
DrawVector, normal bir birleştirilebilir işlevden, vektörü bir düzenin arka planı olarak çizecek bir Değiştirici drawVector() döndürecek şekilde değiştirildi. (I7b8e0)
Opaklık birleştirilebilir işlevi, drawOpacity değiştiricisiyle değiştirildi. (I5fb62)
Clip adlı birleştirilebilir işlevi, drawClip() değiştiricisiyle değiştirin. DrawClipToBounds, yalnızca bir dikdörtgen şekliyle katman sınırlarına göre kırpmanız gerektiğinde kullanabileceğiniz kullanışlı bir değiştiricidir. (If28eb)
DrawShadow birleştirilebilir işlevi, drawShadow() değiştiricisiyle değiştirildi. Gölgeler artık LayerModifier'ın bir parçası olarak çizilir. (I0317a)
Düzen için bir RenderNode eklemenize olanak tanıyan bir değiştirici olan LayerModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölge ayarlarını yapmanıza olanak tanır. Bu, RepaintBoundary'ın yerini alacak. (I7100d, b/150774014)
androidx.compose.ViewComposer, androidx.ui.node.UiComposer'a taşındı androidx.compose.Emittable kaldırıldı. ComponentNode ile ek bir işlevi yoktu. androidx.compose.ViewAdapters kaldırıldı. Bu kullanım alanı artık desteklenmiyor. Compose.composeInto işlevinin desteği sonlandırıldı. Bunun yerine
setContent
veyasetViewContent
kullanın. Compose.disposeComposition desteği sonlandırıldı. Bunun yerinesetContent
tarafından döndürülenComposition
üzerindedispose
yöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto'ya taşındı ComponentNode#emitInsertAt, ComponentNode#insertAt olarak yeniden adlandırıldı ComponentNode#emitRemoveAt, ComponentNode#removeAt olarak yeniden adlandırıldı ComponentNode#emitMode, ComponentNode#move olarak yeniden adlandırıldı (Idef00)Belirli bir ImageAsset'i ekrana çizmenin yanı sıra boyutlandırma/düzenlemeyi de yönetmek için oluşturulan Image composable. Bu derlenebilir, belirli bir sabit boyutu veya minimum boyutu (Ibcc8f) desteklemenin yanı sıra, kendi boyutuna göre herhangi bir Painter örneğinin çizilmesini de destekler.
Sarma bileşiği desteği sonlandırıldı. LayoutAlign değiştiricisi veya Stack bileşeni (Ib237f) ile değiştirilebilir.
WithConstraints, LayoutDirection parametresini aldı (I6d6f7)
Düzen yönünün, üst düzen düğümünden alt öğelere iletilmesini sağladık. Düzen yönü değiştirici eklendi. (I3d955)
- olduğu için yaygın bir hata kaynağıdır.
Grup bileşeni, sağdan sola yönlülüğe (Ic9e00) destek verir.
DrawShape bileşeni kaldırıldı. Bunun yerine DrawBackground değiştiricisini kullanın. (I7ceb2)
LayoutPadding değiştiricide sağdan sola yönü destekleme (I9e8da)
Yalnızca görünür öğeleri oluşturan ve düzenleyen kaydırılabilir bir liste bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında yalnızca dikey olması ve alt öğelerinde yapılan tüm değişiklikleri tam olarak ele almaması yer alıyor. (Ib351b)
ComposeFlags.COMPOSER_PARAM
işaretitrue
olarak güncellendi. Bu, oluşturma eklentisinin kod oluşturma stratejisini değiştirecek. Bu durum, yüksek düzeyde @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün şekilde yönetmesi için sonraki @Composable çağrılarına iletilir. Bu, ikili kodda önemli bir değişikliktir ancak compose'in izin verilen tüm kullanımlarında kaynak düzeyinde uyumluluğu korumalıdır. (I7971c)Tuval bileşeni eklendi. Bu kompozisyon, belirli bir boyut kaplar (kullanıcı tarafından sağlanır) ve CanvasScope'u (I0d622) kullanarak çizim yapmanıza olanak tanır.
Density ve DensityScope tek bir arayüzde birleştirildi. Artık ambientDensity() yerine DensityAmbient.current değerini kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)
LayoutCoordinates, sağlananAlignmentLines'i bir Harita yerine bir Set yapmak ve LayoutCoordinates'in bir değer almak için get() operatörünü uygulamak üzere değiştirildi. Bu, değiştiricilerin her değiştirici için yeni bir koleksiyon oluşturmadan grubun bir veya daha fazla değerini değiştirmesini kolaylaştırır. (I0245a)
Kaydırma çubuğu artık yerel Android fırlatma hareketi davranışını sergiliyor. (I922af, b/147493715)
Kısıtlamalar API yüzeyinde yapılan iyileştirmeler (I0fd15)