Materyal Oluşturma
androidx.compose.material
androidx.compose.material.icons
(Tüm oluşturma paketleriyle ilgili API referans belgelerine bakın)
Son Güncelleme | Kararlı Sürüm | Serbest Bırakma Adayı | Beta Sürümü | Alfa Sürümü |
---|---|---|---|---|
29 Kasım 2023 | 1.5.4 | - | 1.6.0-beta02 | - |
Yapı
Oluştur, androidx
içindeki 7 Maven Grup Kimliğinin birleşiminden oluşur. Her Grup, her birinin kendi sürüm notlarına sahip olan, hedeflenmiş bir işlev alt kümesi içerir.
Bu tabloda gruplar ve her sürüm notu grubunun bağlantıları açıklanmaktadır.
Gruplandır | Açıklama |
---|---|
compose.animation | Jetpack Compose uygulamalarında kullanıcı deneyimini zenginleştirmek için animasyonlar oluşturur. |
compose.derleyici | @Composable işlevlerini dönüştürün ve bir Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. |
compose.foundation | Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin. |
compose.material | Kullanıma hazır Materyal Tasarım Bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış Compose'un daha üst düzey giriş noktasıdır. |
compose.material3 | Materyal Tasarımın yeni evrimi olan Materyal Tasarım 3 Bileşen ile Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenen tema ve bileşenlerin yanı sıra dinamik renk gibi Material You kişiselleştirme özellikleri içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlandı. |
compose.runtime | Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler Eklentisi'nin hedeflemesi için temel çalışma zamanı. |
compose.ui | Cihazla etkileşim kurmak için gereken temel yazma kullanıcı arayüzü bileşenleri (ör. düzen, çizim ve giriş). |
Bağımlılıkları bildirme
Compose'da bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:
Modern
dependencies { implementation "androidx.compose.material:material:1.5.4" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.6" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.5.4") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.6" } kotlinOptions { jvmTarget = "1.8" } }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme bölümüne bakın.
Geri bildirim
Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerine bakın.
Sürüm 1.6
Sürüm 1.6.0-beta02
29 Kasım 2023
androidx.compose.material:material-*:1.6.0-beta02
yayınlandı. Sürüm 1.6.0-beta02 bu kayıtları içerir.
Sürüm 1.6.0-beta01
15 Kasım 2023
androidx.compose.material:material-*:1.6.0-beta01
yayınlandı. Sürüm 1.6.0-beta01 bu kayıtları içerir.
Sürüm 1.6.0-alpha08
18 Ekim 2023
androidx.compose.material:material-*:1.6.0-alpha08
yayınlandı. Sürüm 1.6.0-alpha08 bu kayıtları içerir.
API Değişiklikleri
autoMirror
parametresi alan aşırı yüklenmesini sağlamak içinmaterialIcon
işlevini kullanımdan kaldırın. (Ia338d)
Hata Düzeltmeleri - Büyük içerik için gezinme öğesinin yüksekliğini otomatik olarak artırır. (0c4ecc, b/272336962)
Sürüm 1.6.0-alpha07
4 Ekim 2023
androidx.compose.material:material-*:1.6.0-alpha07
yayınlandı. Sürüm 1.6.0-alpha07 bu kaydetmeleri 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ınlandı. Sürüm 1.6.0-alpha06 bu kayıtları içerir.
Davranışı Kırıcı Değişim
- Çekmeceyle ilgili işlev
BottomSheetScaffold
öğesinden kaldırıldı. Önceki işleve ulaşmak içinBottomSheetScaffold
öğenizi bir Çekmecede sarmalayın. Örnek için bkz.BottomSheetScaffoldWithDrawerSample
. (I1dcc8)
API Değişiklikleri
- Scaffold'un ölçüm sırasında veya yerleştirme sırasında çocuklarını ölçmesinin gerekip gerekmediğini kontrol etmek için geçici bir işaret uygulamaya koyuldu. Varsayılan olarak, ölçümde ölçüm yapılır. Yeni davranışla ilgili sorun yaşıyorsanız lütfen sorun bildirin. (If6e3b)
Sürüm 1.6.0-alpha05
6 Eylül 2023
androidx.compose.material:material-*:1.6.0-alpha05
yayınlandı. Sürüm 1.6.0-alpha05 bu kayıtları içerir.
Yeni Özellikler
- Sağdan sola düzenlerde oluşturulduğunda otomatik olarak yansıtılan simgeler için destek eklendi. Materyal-simgeler-temel ve malzeme-simgeleri genişletilmiş modüllerdeki simgeler, artık simge izin verdiğinde otomatik yansıtmayı desteklemek için ek simge grupları sağlamaktadır. Yeni grupların önünde
Icons.AutoMirrored.Filled...
vb. bulunur ve sağ taraftaki düzenlerde otomatik olarak yansıtılacak simgeler gösterilir. Otomatik olarak yansıtılabilen (ve otomatik olarak yansıtılabilen) simgelerin listesi için Materyal simgeleri listesine bakın.
API Değişiklikleri
- Sağdan sola düzenlerde oluşturulduğunda otomatik olarak yansıtılan simgeler için destek eklendi. Materyal-simgeler-temel ve malzeme-simgeleri genişletilmiş modüllerdeki simgeler, artık simge izin verdiğinde otomatik yansıtmayı desteklemek için ek simge grupları sağlamaktadır. Yeni grupların önünde
Icons.AutoMirrored.Filled...
vb. bulunur ve sağ taraftaki düzenlerde otomatik olarak yansıtılacak simgeler gösterilir. Otomatik olarak yansıtılabilen (ve otomatik olarak yansıtılabilen) simgelerin listesi için Materyal simgeleri listesine bakın. Bu simgeler için daha önce sağlanan simge özellikleri artık kullanımdan kaldırıldı olarak işaretlenmektedir ve taşıma işlemine yardımcı olmak için bir değiştirme engelleme önerisi sunulmaktadır. RTL'de yansıtma simgeleri için özel bir işlem yapmıyorsanız yeni simge kümesine geçmenizi öneririz. ÖrneğinIcons.Filled.ArrowBack
,Icons.AutoMirrored.Filled.ArrowBack
olarak yeniden düzenlenmelidir. (I4b511)
Sürüm 1.6.0-alpha04
23 Ağustos 2023
androidx.compose.material:material-*:1.6.0-alpha04
yayınlandı. Sürüm 1.6.0-alpha04 bu kayıtları içerir.
Hata Düzeltmeleri
LookaheadScope
içindeki bir İskele içindeSubcomposition
(ör.BottomSheetScaffold
) kullanan bazı bileşenlerin boyutlarını çok erken okumaya çalışması sorunu düzeltildi. (If2c5d)DropdownMenu
ürünününoffset
hesaplaması, x ofsetlerinin yalnızca yerel düzen yönüne bağlı olacağı ve menü ekranın alt kısmına yakın olduğunda y ofsetlerinin artık tersine çevrilmeyeceği şekilde düzeltildi. (Iccc74, b/294103942)BottomSheetScaffold
aracının dahili düzeni optimize edildi veLookaheadLayout
içindeBottomSheetScaffold
ile ilgili olası bir sorun düzeltildi. (Ic0afa)
Sürüm 1.6.0-alpha03
9 Ağustos 2023
androidx.compose.material:material-*:1.6.0-alpha03
yayınlandı. Sürüm 1.6.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- Material2 bileşenleri, Android'de uçtan uca işlevselliği desteklemek için
windowInsets
API'sini iletecek ayrı bir API'ye sahiptir. Material3 bileşenlerinden farklı olarak, malzeme2 bileşenleri varsayılan olarak ekleri desteklemez ve değer, manuel olarak iletilmelidir. Yol gösterici bilgiler 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ınlandı. Sürüm 1.6.0-alpha02 bu kaydetmeleri içerir.
API Değişiklikleri
- Yoğunluk bağımlılığını bileşen düzeyine taşıyoruz. Bu, şu bileşenler için geçerlidir:
SwipeToDismiss
ve E-tablo tabanlı bileşenler. Lütfen, yoğunluğun bir parametre olduğu yeni aşırı yükü kullanın. (I1846e) - Oluşturulabilir öğelere izin verilen girişleri belirtmek için ek ek açıklamalar (I51109)
- API dosyaları, uyumluluk önleme ek açıklaması içerecek şekilde güncellendi (I8e87a, b/287516207)
FabPosition
için yeni Başlangıç hizalaması eklendi (Ib7aea, b/170592777)- Materyal 2'deki
TextFieldColorsWithIcons
desteği sonlandırıldı ve yerineTextFieldColors
eklendi.leadingIconColor
veyatrailingIconColor
geçersiz kılınırken aşırı yükü 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ınlandı. Sürüm 1.6.0-alpha01 bu kayıtları içerir.
Davranış Değişiklikleri
includeFontPadding
artık Malzeme 2 tipografisinde varsayılan olarakfalse
değerine sahip. Varsayılan satır yüksekliği stili deTrim.None
veAlignment.Center
olarak değiştirildi. Bu değerleri özelleştirmek istiyorsanız lütfen API belgelerine bakın. Bu değişikliklerin ayrıntılı bir açıklaması için blog yayınına göz atın. (Icabc3, I3f801, I04c03)
API Değişiklikleri
- Materyalin
Swipeable
API'leri kullanımdan kaldırıldı. Lütfen Foundation'ın hem basit hem de karmaşık kullanım alanları için optimize edilmişAnchoredDraggable
API'lerini inceleyin. (I732e0)
Hata Düzeltmeleri
BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (yerleştirilmiş) bağlayıcı ile kaydırma yönünde en yakın sabitleyici arasındaki ilerlemeyi gösteren bir ilerleme özelliği gösteriyor. (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ınlandı. 1.5.4 sürümü bu kayıtları içerir.
Sürüm 1.5.3
4 Ekim 2023
androidx.compose.material:material-*:1.5.3
yayınlandı. 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ınlandı. 1.5.2 sürümü bu kayıtları içerir.
Sürüm 1.5.1
6 Eylül 2023
androidx.compose.material:material-*:1.5.1
, hiçbir değişiklik yapılmadan serbest bırakıldı. 1.5.1 sürümü bu kayıtları içerir.
Sürüm 1.5.0
9 Ağustos 2023
androidx.compose.material:material-*:1.5.0
yayınlandı. 1.5.0 sürümü bu kayıtları içerir.
1.4.0 sürümünden sonraki önemli değişiklikler
API Değişiklikleri
BottomSheetScaffold
ürününde Scrollable1 API'lerine değişiklikler eklendi.BottomSheetState
hesabınınconfirmStateChange
parametresiconfirmValueChange
olarak yeniden adlandırıldı.progress
artık kayan değer olarak gösteriliyor.animateTo
vesnapTo
dahili verilerdir. Bunun yerineexpand()
vecollapse()
kullanın.direction
veoverflow
kaldırıldı.offset
,requireOffset()
ile değiştirildi. I323b4- Çekmecedeki
snapTo
işlevini, deneysel olmayan API olarak işaretleyin. (Ib9c18, b/261425368) - Dairesel ilerleme göstergeleri için bir parkur renk parametresi ve hem dairesel hem de doğrusal ilerleme göstergeleri için bir çizgi sınırı parametresi eklendi. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
verememberModalBottomSheetState
adlı kullanıcınınconfirmStateChange
adlı cihazıconfirmValueChange
olarak yeniden adlandırıldı. (Ib48d1)Modifier.minimumInteractiveComponentSize
adlı kullanıcıyı ekleyin. Öğenin daha küçük ölçülmesi durumunda, dokunma etkileşimlerini belirginleştirmek için en az 48.dp boyut ayırmak üzere kullanılabilir. (I33f58, b/258495559)ModalBottomSheetLayout
ürününde Kaydırılabilir API'lere değişiklikler eklendi.ModalBottomSheetState
canlandırması artıkanimationSpec
parametresini almıyor ve gösterilen göreli konum artık null özellikli. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (Ia2e79)@JvmDefaultWithCompatibility
notu ekleniyor (I8f206)ModalDrawer. DrawerState
tarayıcısınınanimateTo
nesnesindeki Kaydırılabilir API'lere eklenen değişiklikler, açık ve kapatma yöntemleriyle değiştirildi ve göreli konum artık null olabilir. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (I3de9e)- Hareketlerin kaydırma etkinliğine dönüşmesi ihtimaline karşı Çekmeceler ve E-Tablolar, basmaları doğru şekilde geciktirecek şekilde güncellendi.
- Malzeme ve malzeme3 Metin,
TextField
veOutlinedTextField
öğelerineminLines
parametresi eklendi. Bu parametre, satır sayısı (I4af1d) açısından bileşenin minimum yüksekliğinin ayarlanmasını sağlar.
Hata Düzeltmeleri
pullRefresh
ürününün hız kullanmadığı ve fazla kaydırmanın gösterilmesine neden olan bir sorun düzeltildi. AyrıcaModifier.pullRefresh
içindekionRelease
lambda'nın API imzası, tüketilen hız için bir Float değerini döndürecek şekilde değiştirildi (I7db65, b/266874741)BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (yerleştirilmiş) bağlayıcı ile kaydırma yönünde en yakın sabitleyici arasındaki ilerlemeyi gösteren bir ilerleme özelliği gösteriyor. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)AlertDialog
kapatma işlemi, iletişim kutusunun genişliğine sığacak şekilde birbirinin üzerine yığıldığında onay işleminin altında görünecek şekilde düzeltildi. Bu düzeltme, uygulamanın Materyal Tasarım spesifikasyonuyla uyumlu olmasını sağlar. (I029de, b/235454277)gesturesEnabled
yanlış değerine ayarlandığındaBottomSheetScaffold
artık iç içe yerleştirilmiş kaydırma işlemine katılmaz. (I634f3, b/215403277)- Slotlar için boş içerik sağlandığında
BottomSheetScaffold
ürününün kilitlenmesine neden olan hata düzeltildi. (Ib24a5, b/235588730) - Tıklamalara/işaretçi etkinliklerine müdahale eden
PullRefreshIndicator
sorununu düzeltir. (2494256, b/271777421) - Yön değişikliğinde
ModalBottomSheetLayout
öğesinin uç durumda kilitlenmesine neden olan sorun düzeltildi. Sayfa içeriğindeki/sayfa içeriği üzerindeki düzen animasyonları (ör.Modifier.animateContentSize
) artık sorunsuz çalışıyor. (I2f981, b/266780234)
Sürüm 1.5.0-rc01
26 Temmuz 2023
androidx.compose.material:material-*:1.5.0-rc01
yayınlandı. Sürüm 1.5.0-rc01 bu kayıtları içerir.
Sürüm 1.5.0-beta03
28 Haziran 2023
androidx.compose.material:material-*:1.5.0-beta03
yayınlandı. Sürüm 1.5.0-beta03 bu kayıtları içerir.
Hata Düzeltmeleri
BottomSheetState
,ModalBottomSheetState
veBottomDrawerState
artık mevcut (yerleştirilmiş) bağlayıcı ile kaydırma yönünde en yakın sabitleyici arasındaki ilerlemeyi gösteren bir ilerleme özelliği gösteriyor. (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ınlandı. Sürüm 1.5.0-beta02 bu kayıtları içerir.
Sürüm 1.5.0-beta01
24 Mayıs 2023
androidx.compose.material:material-*:1.5.0-beta01
yayınlandı. Sürüm 1.5.0-beta01 bu kayıtları içerir.
API Değişiklikleri
DrawerState
veBottomDrawerState
adlı öğenin ofseti artık null özellikli değil. Bunun yerine, ofsetin olmadığını belirtmek içinFloat.NaN
değerini döndürür. (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) ModalBottomSheetLayout
hareketini etkinleştirme/devre dışı bırakma desteği eklendi. Böylece kullanıcılar daha fazla öne çıkan alt sayfada bunu yapılandırabilir (I40af0)- Metin renginin verimli bir şekilde canlandırılmasına veya ayarlanmasına olanak tanımak için
BasicText
öğesine bir renk parametresi eklendi. (Iffd88, b/246961787) isContainer
semantik özelliğiniisTraversalGroup
olarak yeniden adlandırma (I121f6)
Hata Düzeltmeleri
AlertDialog
kapatma işlemi, iletişim kutusunun genişliğine sığacak şekilde birbirinin üzerine yığıldığında onay işleminin altında görünecek şekilde düzeltildi. Bu düzeltme, uygulamanın Materyal Tasarım spesifikasyonuyla uyumlu olmasını sağlar. (I029de, b/235454277)
Sürüm 1.5.0-alpha04
10 Mayıs 2023
androidx.compose.material:material-*:1.5.0-alpha04
yayınlandı. Sürüm 1.5.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Yoğunluk bağımlılığını bileşen düzeyine taşıyoruz. Bu, şu bileşenler için geçerlidir:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. Lütfen, yoğunluğun bir parametre olduğu yeni aşırı yükü kullanın. (I8fbd8)
Sürüm 1.5.0-alpha03
19 Nisan 2023
androidx.compose.material:material-*:1.5.0-alpha03
yayınlandı. Sürüm 1.5.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
- Yeni
SwipeableV2
API'lerini kullanmak içinBottomDrawer
dahili öğelerini güncelleyin. Bu nedenleBottomDrawerState
artık yalnızca sınıf düzeyinde API'ler tanımlayacak veSwipeableState
öğesinden yöntemleri/özellikleri devralmayacak. Besteyi dahili birSwipeableV2State
ile kullanıyoruz. Göreli konum artık null özellikli bir kayan nokta mülküdür. Geçerli değere ve kaydırma hedefi değerine, currentValue ve targetValue özellikleri üzerinden erişmeye devam edilebilir. Open/expand/close gibi önceki sınıf düzeyindeki yöntemler veisOpen/isClosed
gibi özellikler desteklenmeye devam etmektedir. (Iad40c, b/178529942, b/220676296)
Hata Düzeltmeleri
- Switch bileşeninin dahili öğeleri güncellendi. Anahtar artık sürüklerken en yakın durumu (hedef durumu) önizleyecek. (Id90d4)
BottomSheetScaffold
dilindeki animasyonlu sayfa içeriği (ör. sayfa içeriğindeModifier.animateContentSize
) optimize edildi ve artık sorunsuz bir şekilde çalışıyor. (Ia913c, b/270518202, b/254446195)gesturesEnabled
,false
olarak ayarlandığındaBottomSheetScaffold
artık iç içe yerleştirilmiş kaydırma işlemine katılmayacak. (I634f3, b/215403277)
Sürüm 1.5.0-alpha02
5 Nisan 2023
androidx.compose.material:material-*:1.5.0-alpha02
yayınlandı. Sürüm 1.5.0-alpha02 bu kayıtları içerir.
Hata Düzeltmeleri
- Slotlar için boş içerik sağlandığında
BottomSheetScaffold
ürününün kilitlenmesine neden olan hata düzeltildi. (Ib24a5, b/235588730) PullRefreshIndicator
müdahale eden tıklama / işaretçi etkinliklerini düzeltir (2494256, b/271777421)
Sürüm 1.5.0-alpha01
22 Mart 2023
androidx.compose.material:material-*:1.5.0-alpha01
yayınlandı. Sürüm 1.5.0-alpha01 bu kayıtları içerir.
Hata Düzeltmeleri
- Çip grubu yeniden düzenleme örneği ekleyin. Tek satırlı çip grubu örneğinde alt çipler arasındaki yatay dolguyu spesifikasyonla eşleşecek şekilde güncelleyin. (I3b155)
- Yön değişikliğinde
ModalBottomSheetLayout
öğesinin uç durumda kilitlenmesine neden olan sorun düzeltildi. Sayfa içeriğindeki/sayfa içeriği üzerindeki düzen animasyonları (ör.Modifier.animateContentSize
) artık sorunsuz ç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
, hiçbir değişiklik olmadan yayınlandı (yalnızca sürüm güncellemesi).
Sürüm 1.4.2
19 Nisan 2023
androidx.compose.material:material-*:1.4.2
yayınlandı. 1.4.2 sürümü bu kayıtları içerir.
Sürüm 1.4.1
5 Nisan 2023
androidx.compose.material:material-*:1.4.1
yayınlandı. Sürüm 1.4.1 bu kayıtları içerir.
Sürüm 1.4.0
22 Mart 2023
androidx.compose.material:material-*:1.4.0
yayınlandı. 1.4.0 sürümü bu kayıtları içerir.
1.3.0 sürümünden sonraki önemli değişiklikler
API Değişiklikleri
Modifier.minimumInteractiveComponentSize
adlı kullanıcıyı ekleyin. Öğenin daha küçük ölçülmesi durumunda, dokunma etkileşimlerini belirginleştirmek için en az 48.dp boyut ayırmak üzere kullanılabilir. (I33f58, b/258495559)ModalDrawer
ürününde Kaydırılabilir API'lere değişiklikler eklendi.DrawerState
öğesininanimateTo
'si, açık ve kapatma yöntemleriyle değiştirilmiştir ve göreli konum artık null yapılabilir. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (I3de9e)- Malzeme ve malzeme3 Metin,
TextField
veOutlinedTextField
öğelerineminLines
parametresi eklendi. Bu parametre, satır sayısı (I4af1d) açısından bileşenin minimum yüksekliğinin ayarlanmasını sağlar. BasicText
veBasicTextField
öğelerineminLines
parametresi eklendi. Bu kompozitlerin minimum yüksekliğini satır sayısı olarak (I24294, b/122476634) ayarlamaya olanak tanır.
Sürüm 1.4.0-rc01
8 Mart 2023
androidx.compose.material:material-*:1.4.0-rc01
, hiçbir değişiklik yapılmadan serbest bırakıldı. Sürüm 1.4.0-rc01 bu kayıtları içerir.
Sürüm 1.4.0-beta02
22 Şubat 2023
androidx.compose.material:material-*:1.4.0-beta02
yayınlandı. Sürüm 1.4.0-beta02 bu kayıtları içerir.
API Değişiklikleri
BottomSheetScaffold
ürününde Kaydırılabilir API'lere değişiklikler eklendi.BottomSheetState
hesabınınconfirmStateChange
parametresiconfirmValueChange
olarak yeniden adlandırıldı.progress
artık kayan değer olarak gösteriliyor.animateTo
vesnapTo
dahili verilerdir. Bunun yerineexpand()
vecollapse()
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ı, değiştirici.semantics (Ibb4ba) aracılığıyla rol belirlemek için bunları kullanan bileşenler güncellendi
- Genişletilmiş Materyal simgelerinde, doldurulmuş
desktop_mac
,directions
vekitchen
simgelerinde küçük güncelleme yapıldı. (I65f5e)
Sürüm 1.4.0-beta01
8 Şubat 2023
androidx.compose.material:material-*:1.4.0-beta01
yayınlandı. Sürüm 1.4.0-beta01 bu kayıtları içerir.
API Değişiklikleri
pullRefresh
ürününün hız kullanmadığı ve fazla kaydırmanın gösterilmesine neden olan bir sorun düzeltildi. AyrıcaModifier.pullRefresh
içindekionRelease
lambda'nın API imzası, tüketilen hız için bir Float değerini döndürecek şekilde değiştirildi (I7db65, b/266874741)LocalMinimuTouchTargetEnforcement
mülk alıcısı geri yüklendi, kullanımdan kaldırıldı olarak işaretlenipLocalMinimumInteractiveComponentEnforcement
adresine yönlendiriyor. (I60dd5)
Sürüm 1.4.0-alpha05
25 Ocak 2023
androidx.compose.material:material-*:1.4.0-alpha05
yayınlandı. Sürüm 1.4.0-alpha05 bu kayıtları içerir.
Hata Düzeltmeleri
ModalBottomSheetLayout's HalfExpanded
durumunun yanlış hesaplanması ve sayfanın kayan olarak görünmesine neden olan sorun düzeltildi. (I8c615, b/265610459)ModalBottomSheetLayout
özelliğinde, bazı durumlarda gizli durumdan görünür duruma geçerken sayfanın kilitlenmesine neden olan hata düzeltildi. (Ia9265, b/265444789)
Sürüm 1.4.0-alpha04
11 Ocak 2023
androidx.compose.material:material-*:1.4.0-alpha04
yayınlandı. Sürüm 1.4.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Yüzeyler'deki
IsContainer
semantik özelliğine eklendi. Bu özellik, geçiş sırasını yüzeyler gibi öğelerin anlamsal anlamına göre belirleyen daha sonraki bir değişiklikte kullanılacaktır. (I63379) - Çekmecedeki
snapTo
işlevini, deneysel olmayan API olarak işaretleyin. (Ib9c18, b/261425368) - Dairesel ilerleme göstergeleri için bir parkur renk parametresi ve hem dairesel hem de doğrusal ilerleme göstergeleri için bir çizgi sınırı parametresi eklendi. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
verememberModalBottomSheetState
adlı kullanıcınınconfirmStateChange
adlı cihazıconfirmValueChange
olarak yeniden adlandırıldı. (Ib48d1)- Kullanımdan kaldırılan gizli işlevlerin daha fazla dönüş türü null değeri (Ibf7b0)
Modifier.minimumInteractiveComponentSize
adlı kullanıcıyı ekleyin. Öğenin daha küçük ölçülmesi durumunda, dokunma etkileşimlerini belirginleştirmek için en az 48.dp boyut ayırmak üzere kullanılabilir. (I33f58, b/258495559)ModalBottomSheetLayout
ürününde Kaydırılabilir API'lere değişiklikler eklendi.ModalBottomSheetState
öğesininanimateTo
parametresi artıkanimationSpec
parametresi kabul etmiyor ve kullanıma sunulanoffset
artık null özellikli.offset
öğesini zorunlu kılmak içinrequireOffset
öğesini kullanın. (Ia2e79)
Hata Düzeltmeleri
ModalBottomSheetLayout
adlı sayfalar artık 640 dp'lik maksimum genişliğe sahip. (I71a4f, b/234927577)rememberPullRefreshState
uygulamasının zaman içinderefreshThreshold
verefreshingOffset
güncelleme yapmamasına yol açan sorun düzeltildi. (Ifed10, b/263159832)- İlerleme göstergelerinin ilerleme durumu, artık beklenen aralığa düzgün bir şekilde sınırlanmıştır. (I8a7eb, b/262262727)
ModalBottomSheetState
henüz hiç bağlantı almadığında,snapTo
veyaanimateTo
çağrıldığında istisna göndermek yerinecurrentValue
öğesini animasyon olmadan günceller. (I2c91b)- Materyal 2
FilterChip
uygulamasındaki etkin durumu düzeltildi. (Id326a, b/261329817) - Dikeyden yataya döndürüldüğünde
HalfExpanded
olduğundaModalBottomSheetLayout
öğesinin kilitlenmesine neden olan hata düzeltildi. Lütfen yapılandırmayı kontrol ederek doğruinitialValue
erişimini geçirdiğinizden emin olun. (Ie8df7, b/182882364) - Sayfa içeriği boş olduğunda
ModalBottomSheetLayout
ürününün kilitlenmesine neden olan sorun düzeltildi.ModalBottomSheetLayout
artık boş sayfa içeriğine izin veriyor. Sayfa içeriği boşsa yalnızca Gizli durumu görünür. (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. Burada, sorunun ilk olarak bildirildiği yerdir. Bir düzeltme gönderildi. Bu düzeltme bir sonraki Compose güncellemesinde kullanıma sunulacak. Geçici bir çözüm olarakandroidx.compose.material
veandroidx.compose.material3
kitaplıklarınızı en son sürüme(1.1.0-alpha04) güncelleyin veyaandroidx.compose.foundation
sürümünüzü 1.4.0-alpha03'e düşürün.
Sürüm 1.4.0-alpha03
7 Aralık 2022
androidx.compose.material:material-*:1.4.0-alpha03
yayınlandı. Sürüm 1.4.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
@JvmDefaultWithCompatibility
notu ekleniyor (I8f206)ModalDrawer
konumundakiSwipeable
API'lerine değişiklikler eklendi.DrawerState
öğesininanimateTo
öğesi,open
veclose
yöntemleriyle değiştirilmiştir ve göreli konum artık null özelliklidir. Ofseti zorunlu kılmak içinrequireOffset
öğesini kullanın. (I3de9e)- Üst öğelerin kaydırma bilgilerini sorgulamak için bir Değiştirici API'si eklendi. (I2ba9d, b/203141462)
- Hareketlerin kaydırma etkinliğine dönüşebileceği durumlarda, basın etkileşimlerini doğru şekilde geciktirmek için
Clickable
içinde kullanılır. - Bir
Scrollable ViewGroup
içinde kullanıldığındaClickables
dalgalarını doğru şekilde geciktirmemesi düzeltildi. - Hareketlerin kaydırma etkinliğine dönüşmesi ihtimaline karşı Çekmeceler ve E-Tablolar, basmaları doğru şekilde geciktirecek şekilde güncellendi.
Hata Düzeltmeleri
- Yenileme durumu doğru olarak değiştirilmezse
onRefresh
çağrıldıktan sonraPullRefreshIndicator
öğesinin takılmasına neden olan sorun düzeltildi. (Ie2416, b/248274004)
Bağımlılık Güncellemeleri
- Oluşturma Kullanıcı Arayüzü ve Oluşturma Materyali artık Yaşam Döngüsü 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ınlandı. Sürüm 1.4.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
awaitFirstDown
vewaitForUpOrCancellation
artık daha fazla esneklik içinPointerEventPass
kabul ediyor. (I7579a, b/212091796)- Malzeme ve malzeme3 Metin,
TextField
veOutlinedTextField
öğelerineminLines
parametresi eklendi. Bu parametre, satır sayısı (I4af1d) açısından bileşenin minimum yüksekliğinin ayarlanmasını sağlar. BasicTex
t veBasicTextField
öğelerineminLines
parametresi eklendi. Bu birleşim öğelerinin minimum yüksekliğini satır sayısı olarak (I24294, b/122476634) belirlemenize olanak tanır.
Sürüm 1.4.0-alpha01
24 Ekim 2022
androidx.compose.material:material-*:1.4.0-alpha01
yayınlandı. Sürüm 1.4.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- Hareket algılayıcıları için yeni bir yöntem (
awaitEachGesture()
) eklendi.forEachGesture()
ile benzer şekilde çalışır ancak hareketler üzerindeki döngü tamamenAwaitPointerEventScope
içinde çalıştığından etkinlikler yinelemeler arasında kaybolamaz. - Hareketler arasında etkinliklerin kaybolmasına izin verdiği için
forEachGesture()
kullanımdan kaldırıldı. Bu nedenleawaitEachGesture()
kullanıma sunuldu. (Iffc3f, b/251260206)
Sürüm 1.3
Sürüm 1.3.1
9 Kasım 2022
androidx.compose.material:material-*:1.3.1
yayınlandı. 1.3.1 sürümü bu kayıtları içerir.
Sürüm 1.3.0
24 Ekim 2022
androidx.compose.material:material-*:1.3.0
yayınlandı. 1.3.0 sürümü bu kayıtları içerir.
1.2.0 sürümünden sonraki önemli değişiklikler
Zarar veren davranış değişikliği
- İletişimlerde ve pop-up'larda desteklenen maksimum yükseklik 8 dp'ye düşürüldü.
API Değişiklikleri
- Oluştur'a "Yenilemek için Çekme" bileşeni ekleyin (I29168).
- RangeSlider'da (I3b79a) değerler olan parametre adını değer olarak değiştirin.
Sürüm 1.3.0-rc01
5 Ekim 2022
androidx.compose.material:material-*:1.3.0-rc01
yayınlandı. Sürüm 1.3.0-rc01 bu kayıtları içerir.
Sürüm 1.3.0-beta03
21 Eylül 2022
androidx.compose.material:material-*:1.3.0-beta03
yayınlandı. 1.3.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
- Oluşturmak için aşağı çekme bileşeni ekleme (I29168)
Sürüm 1.3.0-beta02
7 Eylül 2022
androidx.compose.material:material-*:1.3.0-beta02
yayınlandı. 1.3.0-beta02 sürümü bu kayıtları içerir.
1.3.0-beta01 sürümünden beri değişiklik yok
Sürüm 1.3.0-beta01
24 Ağustos 2022
androidx.compose.material:material-*:1.3.0-beta01
yayınlandı. 1.3.0-beta01 sürümü bu kayıtları içerir.
Zarar veren davranış değişikliği
İletişimlerde 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ını etkiler. Bu değişiklik, S altındaki Android sürümlerinde erişilebilirlik hatası riskini azaltmak ve bu pencerelerdeki erişilebilirlik hizmetlerinin iletişim kutusu 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 kutusu veya pop-up'ınızın yüksekliğini azaltmayı düşünün. Bu yeni davranışı devre dışı bırakmanız gerekirse kendi iletişim kutunuzu veya pop-up'ınızı istediğiniz yükseklik ayarıyla bölebilirsiniz. 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 erişilebilir ve okunabilir olduğundan emin olmak geliştiriciye ait olduğundan bunun yapılması önerilmez.
Sürüm 1.3.0-alpha03
10 Ağustos 2022
androidx.compose.material:material-*:1.3.0-alpha03
yayınlandı. Sürüm 1.3.0-alpha03 bu kaydetmeleri içerir.
Sürüm 1.3.0-alpha02
27 Temmuz 2022
androidx.compose.material:material-*:1.3.0-alpha02
yayınlandı. 1.3.0-alpha02 sürümü bu kayıtları içerir.
Harici Katkı
- Scaffold'daki
FloatingActionButton
ile ilgiliAnimatedVisibility
sorunu düzeltin (I3a0ae, b/224005027)
Sürüm 1.3.0-alpha01
29 Haziran 2022
androidx.compose.material:material-*:1.3.0-alpha01
yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
RangeSlider
ürününde değerler olan parametre adını değer olarak değiştirin (I3b79a)
Hata Düzeltmeleri
- Daha anlamlı içerik açıklaması sağlamak için rozet örneğini 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ınlandı. Sürüm 1.2.1 bu kayıtları içerir.
Sürüm 1.2.0
27 Temmuz 2022
androidx.compose.material:material-*:1.2.0
yayınlandı. 1.2.0 sürümü bu kayıtları içerir.
Sürüm 1.2.0-rc03
29 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc03
yayınlandı. Sürüm 1.2.0-rc03 bu kayıtları içerir.
- 1.2.0-rc02 sürümünden beri değişiklik yok.
Sürüm 1.2.0-rc02
22 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc02
yayınlandı. Sürüm 1.2.0-rc02 bu kayıtları içerir.
Sürüm 1.2.0-rc01
15 Haziran 2022
androidx.compose.material:material-*:1.2.0-rc01
yayınlandı. Sürüm 1.2.0-rc01 bu kayıtları içerir.
API Değişiklikleri
- Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturulmuştur
Hata Düzeltmeleri
- Rozetin simge yerine etikete eklenmesi için önünde simge sekmesi bulunan güncellemeler rozeti. (I90993)
Sürüm 1.2.0-beta03
1 Haziran 2022
androidx.compose.material:material-*:1.2.0-beta03
yayınlandı. Sürüm 1.2.0-beta03 bu kayıtları içerir.
Hata Düzeltmeleri
BottomSheetScaffold
ürününün, üst uygulama çubuğunun gölgesi üzerinde çizim yapmasına neden olan hata düzeltildi.BottomSheetScaffold
artık Snackbar'ları yerleştirirken sayfanın durumunu da dikkate alıyor: Snackbar'lar daraltılmış durumda sayfanın ve FAB'ın üzerine yerleştirilir; genişletilmiş durumda ise Snackbar'lar sayfanın alt kısmına sabitlenir. (Ia80b5, b/187771422)
Sürüm 1.2.0-beta02
18 Mayıs 2022
androidx.compose.material:material-*:1.2.0-beta02
yayınlandı. Sürüm 1.2.0-beta02 bu kayıtları içerir.
Sürüm 1.2.0-beta01
11 Mayıs 2022
androidx.compose.material:material-*:1.2.0-beta01
yayınlandı. Sürüm 1.2.0-beta01 bu kayıtları içerir.
Yeni Özellikler
- Bu, 1.2'nin ilk beta sürümüdür!
API Değişiklikleri
OutlinedTextField
içinde kenarlık çizgisi çizenTextFieldDefaults.BorderStroke
adlı oluşturma biçimiTextFieldDefaults.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ınlandı. Sürüm 1.2.0-alpha08 bu kayıtları içerir.
API Değişiklikleri
PointerInputChange
konumunda kısmi tüketim (düşük VEYA konum) kullanımdan kaldırıldı. Değişiklikten tamamen yararlanmak içinconsume()
öğesini kullanabilirsiniz. Daha önce başka birinin değişikliği uygulayıp uygulamadığını belirlemek içinisConsumed
kullanabilirsiniz.PointerInputChange::copy()
artık her zaman yüzeysel bir kopya oluşturuyor. Bu daPointerInputChange
kopyalarının biri kullanıldıktan sonra tüketileceği anlamına gelir. Bağlantısı kaldırılmış birPointerInputChange
oluşturmak istiyorsanız bunun yerine oluşturucuyu kullanın. (Ie6be4, b/225669674)
Sürüm 1.2.0-alpha07
6 Nisan 2022
androidx.compose.material:material-*:1.2.0-alpha07
yayınlandı. Sürüm 1.2.0-alpha07 bu kayıtları içerir.
Sürüm 1.2.0-alpha06
23 Mart 2022
androidx.compose.material:material-*:1.2.0-alpha06
yayınlandı. Sürüm 1.2.0-alpha06 bu kaydetmeleri içerir.
API Değişiklikleri
- Surface API'deki (I56bcb) değişiklikleri takip etmek için tıklanabilir Card API'de yapılan güncellemeler
- Seçilebilir ve açılabilir Yüzeyler için ek aşırı yükleme işlevleri ekleyen Material 2 Surface API'si güncellemeleri. (Ifcca5)
Sürüm 1.2.0-alpha05
9 Mart 2022
androidx.compose.material:material-*:1.2.0-alpha05
yayınlandı. Sürüm 1.2.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
LazyVerticalGrid
veLazyHorizontalGrid
artık kararlı. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
ve ilgili tüm API'ler .grid alt paketine taşındı. Lütfen androidx.compose.foundation.lazy'den içe aktarma işlemlerinizi androidx.compose.foundation.lazy.grid olarak güncelleyin. (I2d446, b/219942574)WindowInsetsControllerCompat
için yalnızca bir Görünüme dayalı önceki değişiklik geri alındı ve yine bazı pencere işaretlerini yönetmek için gerekli olan bir Pencere gerekiyor. Doğru Pencerenin kullanıldığından emin olmak için (örneğin, Görünüm iletişim kutusundaysa)ViewCompat.getWindowInsetsController
yerineWindowCompat.getInsetsController
kullanılmalıdır. (I660ae, b/219572936)- Metin:
includeFontPadding
artık varsayılan olarak kapalı.includeFontPadding=false
sonucunda ortaya çıkan kırpma sorunları ele alınır ve uzun komut dosyalarında kırpma işlemi gerçekleşmez. (I31c84, b/171394808) - Çapraz eksen boyutlarını tanımlamak için yeni bir
LazyVerticalGrid
API'si eklendi (I17723)
Sürüm 1.2.0-alpha04
23 Şubat 2022
androidx.compose.material:material-*:1.2.0-alpha04
yayınlandı. Sürüm 1.2.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
Add support for filter chips
(I39a6e, b/192585545)TextFieldDecorationBox
veOutlinedTextFieldDecorationBox
eklendi. BunlarıBasicTextField
ile birlikte kullandığınızda, Materyal Tasarım metin alanlarını temel alan ancak daha fazla özelleştirme seçeneği sunan özel metin alanları oluşturabilirsiniz.- Metin alanlarında yatay ve dikey dolguları ayarlamak için bir yol sağlandı. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/6168b/168
Oluşturulabilir bir işlevin, kullanmak üzere tasarlanmamış bir uygulamayı hedefleme olarak adlandırıldığı durumların derleme zamanı raporlamasını sağlayan
ComposableTarget
,ComposableTargetMarker
veComposableOpenTarget
eklendi.Çoğu durumda, ek açıklamalar yazma derleyici eklentisi tarafından anlaşılabilir. Dolayısıyla, bu ek açıklamaların doğrudan kullanılması nadirdir . Tahmin edilemeyen durumlar arasında özel bir uygulama aracı, soyut birleştirilebilir işlevler (arayüz yöntemleri gibi), oluşturulabilir lambda olan alanlar veya genel değişkenler (yerel değişkenler ve parametreler tahmin edilir) oluşturup kullanma veya
ComposeNode
ya da ilgili bir oluşturma işlevi kullanılır.Özel uygulayıcılar için
ComposeNode
veyaReusableComposeNode
çağıran oluşturulabilir işlevlerin, işlev ve oluşturulabilir lambda parametre türleri içinCompoableTarget
ek açıklaması eklemesi gerekir. Bununla birlikte,ComposableTargetMarker
ek açıklaması içeren bir ek açıklama oluşturmanız ve daha sonra, işaretli ek açıklamanın doğrudanComposableTarget
yerine kullanılması önerilir.ComposableTargetMarker
ile işaretlenmiş bir ek açıklama, uygulama parametresi olarak özellik sınıfının tam nitelikli adına sahipComposbleTarget
ile eşdeğerdir.ComposableTargetMarker
kullanımına ilişkin örnek içinanroidx.compose.ui.UiComposable
sayfasını inceleyin. (I38f11)
Sürüm 1.2.0-alpha03
9 Şubat 2022
androidx.compose.material:material-*:1.2.0-alpha03
yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları 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ınlandı. Sürüm 1.2.0-alpha02 bu kaydetmeleri içerir.
API Değişiklikleri
- Karmaşık mantık gerektirmeden mevcut yöntemlerin aşırı yüklü olduğu yöntemlere
NonRestartableComposable
eklendi. Bu, çağrılan iç işlevde tekrarlanan tüm parametreler için derleyici tarafından oluşturulan notlandırma kontrollerini azaltır (eşittir). (I90490) - İşlem çipi desteği ekleyin (I07100, b/192585545)
Sürüm 1.2.0-alpha01
12 Ocak 2022
androidx.compose.material:material-*:1.2.0-alpha01
yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Artık Kotlin
1.6.10
uygulamasına bağlı.
Harici Katkı
ModalBottomSheetState
artıkisSkipHalfExpanded
işaretine sahip. Bu, oluşturucu aracılığıyla ayarlanabilir veya daha sonraModalBottomSheetState
öğesininisSkipHalfExpanded
özelliğitrue
değerine ayarlanarak güncellenebilir.isSkipHalfExpanded
değerinin güncellenmesi sayfanın yeniden oluşturulmasına neden olur. (I18b86, b/186669820)
Sürüm 1.1
Sürüm 1.1.1
23 Şubat 2022
androidx.compose.material:material-*:1.1.1
yayınlandı. Sürüm 1.1.1 bu kayıtları içerir.
Hata Düzeltmeleri
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
adresindekiNullPointerException
sorununu düzeltin (aosp/1947059, b/206677462)- Android'de panodan okuma sırasında pano içeriğinin neden olduğu kilitlenmeyi düzeltin. (I06020, b/197769306)
LazyVerticalGrid
cinsinden sabit RTL (aosp/1931080, b/207510535)
Sürüm 1.1.0
9 Şubat 2022
androidx.compose.material:material-*:1.1.0
yayınlandı. Sürüm 1.1.0 bu kayıtları içerir.
1.0.0 sürümünden sonraki önemli değişiklikler
- Android 12 Fazla kaydırma efekti için kararlı destek
- Dokunma hedefi boyutlandırmayla ilgili iyileştirmeler
- Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını, dokunma hedefi boyutu için Materyal erişilebilirlik kurallarına uyacak şekilde 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, Materyal Oluşturma Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirerek Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
- Navigasyon Rail için Kararlı Desteği
- Önceden deneysel API'lerden bazılarını kararlı sürüme geçirir
- Kotlin'in yeni sürümleri için destek
Sürüm 1.1.0-rc03
26 Ocak 2022
androidx.compose.material:material-*:1.1.0-rc03
yayınlandı. Sürüm 1.1.0-rc03 bu kayıtları içerir.
Davranış Değişiklikleri
Compose 1.0'a göre, Materyal bileşenlerinin düzen alanlarını, Materyal erişilebilirlik yönergeleri dokunma hedefi boyutuna uyacak şekilde 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, Materyal Oluşturma Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirerek Görünümler ve Oluşturma'yı birlikte kullandığınızda tutarlı bir davranış sağlar. Bu değişiklik, kullanıcı arayüzünüzü Material Material bileşenlerini kullanarak oluşturduğunuzda, dokunma hedefi erişilebilirliği için minimum gereksinimlerin karşılanmasını da sağlar.
Hata Düzeltmeleri
- Minimum dokunma hedefi değiştiricileri incelenirken düzen inceleyici için daha iyi hata ayıklama bilgileri eklendi. (aosp/1955036)
Sürüm 1.1.0-rc01
15 Aralık 2021
androidx.compose.material:material-*:1.1.0-rc01
yayınlandı. Sürüm 1.1.0-rc01 bu kayıtları içerir.
Hata Düzeltmeleri
Checkbox
es için uygulanan köşe yarıçapını düzeltin (I38b03, b/175198975, b/202309440)
Sürüm 1.1.0-beta04
1 Aralık 2021
androidx.compose.material:material-*:1.1.0-beta04
yayınlandı. 1.1.0-beta04 sürümü bu kayıtları 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ınlandı. 1.1.0-beta03 sürümü bu kayıtları içerir.
Sürüm 1.1.0-beta02
3 Kasım 2021
androidx.compose.material:material-*:1.1.0-beta02
yayınlandı. 1.1.0-beta02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Dalgalar ve diğer göstergeler artık yalnızca Modifier.scrollable() kapsayıcısının içinde olduğunda gecikecek ve aşağı etkinliği için her zaman ertelenecektir. (Ibefe0, b/203141462)
Sürüm 1.1.0-beta01
27 Ekim 2021
androidx.compose.material:material-*:1.1.0-beta01
yayınlandı. Sürüm 1.1.0-beta01 bu kayıtları içerir.
Yeni Özellikler
- Dalgalar artık fareyle üzerine gelme ve odak durumlarını desteklemektedir. Böylece, Düğme gibi bir bileşenin üzerine gelindiğinde / odaklanıldığında artık doğru durum yer paylaşımı gösterilecektir.
Sürüm 1.1.0-alpha06
13 Ekim 2021
androidx.compose.material:material-*:1.1.0-alpha06
yayınlandı. Sürüm 1.1.0-alpha06 bu kayıtları içerir.
API Değişiklikleri
- Layout için iyileştirilmiş verimlilikle çocuksuz bir aşırı yükleme eklendi (Ib0d9a)
- İçinde
TextField
veDropdownMenu
bulunanExposedDropdownMenuBox
tabanlıExposedDropdownMenu
uygulaması (If60b2) - Kullanımdan kaldırılan
dismissOnClickOutside
yerinedismissOnOutsideClick
,PopupProperties
adlı ürüne eklendi. Yeni mülk, tıklama konumunu ve çapa sınırlarını alarak onDismissRequest'in çağrılıp çağrılmayacağı üzerinde daha ayrıntılı kontrol sağlar. Örneğin bu şekilde, sabite yapılan dokunmalarda sabitleyicinin kapatılmasını önleyebilirsiniz.updateAndroidWindowManagerFlags
,PopupProperties
öğesine eklendi ve pop-up tarafından Android WindowManager'a iletilen işaretler üzerinde alt düzey kontrol olanağı sundu. Lambda'nın parametresi, WindowManager flag'leriyle sonuçlanan PopupProperties değerlerinden hesaplanan işaretler olacaktır: ör. odaklanılabilir. Lambda'nın sonucu, Android WindowManager'a aktarılacak son flag'ler olur. Varsayılan olarak, updateAndroidWindowManagerFlags, parametrelerden hesaplanan işaretleri değiştirmeden bırakır. Bu API, yalnızca pop-up'ın çok özel davranış gereksinimleri olduğu durumlarda dikkatli 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ınlandı. Sürüm 1.1.0-alpha05 bu kayıtları içerir.
API Değişiklikleri
- Erişilebilir dokunma hedefi olmayan Malzeme bileşenleri için minimum dokunma hedefi boyutlandırması ekler. Bu şekilde, yeterince büyük bir dokunma hedefine sahip olduklarından emin olmak için bileşenlerin etrafına fazladan boşluk eklendiğinden, bu bileşenlerin boyutunun görsel boyutları olduğunu varsayan mevcut kullanıcı arayüzleri değişebilir ve dokunma hedefi boyutunu dikkate almaz. Bir hiyerarşide bu davranışı devre dışı bırakmak için yerel
LocalMinimumTouchTargetEnforcement
bestesini kullanabilirsiniz. Ancak bunun yalnızca, mevcut kullanıcı arayüzlerini yeni minimum boyutu dikkate alacak şekilde güncellerken geçici bir çıkış yolu olması amaçlanmıştır. (I9b966, b/149691127, b/171509422) - Deneysel TextFieldColorsWithIcons arayüzü eklendi, EngagementSource'un öncü renk ve postingColor'a sağlanması için TextFieldColors genişletildi. Bu, TextField'in görünümünü odak durumuna göre değiştirmeyi sağlar. (I66923, b/198402662)
Sürüm 1.1.0-alpha04
15 Eylül 2021
androidx.compose.material:material-*:1.1.0-alpha04
yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.
API Değişiklikleri
- Kullanımdan kaldırılan
performGesture
veGestureScope
,performTouchInput
veTouchInjectionScope
ile değiştirildi. (Ia5f3f, b/190493367) - Geliştiricilerin dokunma hedeflerinin minimum erişilebilirlik değerlerini karşılamasını sağlayabilmeleri için minimum dokunma hedefi boyutunu içeren
touchBoundsInRoot
,SemanticsNode
öğesine eklendi. (I2e14b, b/197751214)
Hata Düzeltmeleri
- Klibin, minimum dokunma hedefi amaçları için dokunma hedefi sınırlarını klip bölgesinin dışına genişletmesine izin verin. (I43e10, b/171509422)
- Görüntü yoğunluğundan bağımsız olarak tek piksellik ayırıcılar çizmeyi desteklemek için kalınlık parametresi için
Dp.Hairline
yönergesine uyacak şekildeDivider
oluşturma işlemi 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ınlandı. Sürüm 1.1.0-alpha03 bu kaydetmeleri içerir.
Yeni Özellikler
- Oluşturma
1.1.0-alpha03
öğesi, Kotlin1.5.30
sürümünü temel alacak şekilde güncellendi. (I74545)
API Değişiklikleri
- Kırpılan sınırları almak için test yöntemi eklendi. (I6b28e)
- Erişilebilirliği sağlamak amacıyla, anlambilimde ve işaretçi girişinde kullanılmak üzere ViewConfiguration'a minimum dokunma hedefi boyutu eklendi. (Ie861c)
Sürüm 1.1.0-alpha02
18 Ağustos 2021
androidx.compose.material:material-*:1.1.0-alpha02
yayınlandı. Sürüm 1.1.0-alpha02 bu kaydetmeleri içerir.
Harici Katkı
- Kaydırma ofsetinin, bir bağlayıcının yuvarlama hatası içinde olduğu durumlarda ScrollableState 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ınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.
API Değişiklikleri
- İsteğe bağlı bir FilterQuality parametresini kullanmak için kaynak ve hedef rektörlerini kullanan
DrawScope#drawImage
yöntemi güncellendi. Bu özellik, piksel tabanlı çizim için ölçek büyütüldüğünde pikselleştirilmesi amaçlanan piksel sanatı için faydalıdır. BitmapPainter + Image composable, isteğe bağlı bir FilterQuality parametresi (Ie4fb0, b/180311607) kullanacak şekilde güncellendi - Rozetin yeni bir adı RozetidBox olarak değiştirildi, parametreler, Rozet kompozisyonunu kabul edecek şekilde değiştirildi. RozetidBox için 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
- Alta hizalı NavigationRail örneği ve Katalog uygulaması demosu eklendi. (I3cffc)
- İletişim kutuları artık platform boyutlandırma davranışını izler. Bu davranışı geçersiz kılmak için usePlatformDefaultAvailability politikasını false (yanlış) değerine ayarlayın. (Iffaed, b/192682388)
- Katalog uygulamasına gezinme treni 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ınlandı. 1.0.5 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- türetStateOf örneklerinin kilitlenmesini izlemeyle ilgili sorun düzeltildi. (aosp/1792247)
Sürüm 1.0.4
13 Ekim 2021
androidx.compose.material:material-*:1.0.4
yayınlandı. 1.0.4 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.31
modeline bağlı olacak şekilde güncellendi
Sürüm 1.0.3
29 Eylül 2021
androidx.compose.material:material-*:1.0.3
yayınlandı. 1.0.3 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.30
modeline bağlı olacak şekilde güncellendi
Sürüm 1.0.2
1 Eylül 2021
androidx.compose.material:material-*:1.0.2
yayınlandı. 1.0.2 sürümü bu kayıtları içerir.
Compose 1.0.2
sürümünü destekleyecek şekilde güncellendi. 1.0.2
oluşturma işlemi, Kotlin 1.5.21
ile hâlâ uyumlu.
Sürüm 1.0.1
4 Ağustos 2021
androidx.compose.material:material-*:1.0.1
yayınlandı. 1.0.1 sürümü bu kayıtları içerir.
Bağımlılık Güncellemeleri
- Kotlin
1.5.21
sürümüne bağlı olacak şekilde güncellendi.
Sürüm 1.0.0
28 Temmuz 2021
androidx.compose.material:material-*:1.0.0
yayınlandı. 1.0.0 sürümü bu kayıtları içerir.
1.0.0'ın temel özellikleri
Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Sürüm Oluşturma bloguna göz atın.
Bilinen Sorunlar
Android Studio Bumblebee Canary 4 veya AGP
7.1.0-alpha04
/7.1.0-alpha05
kullanıyorsanız şu kilitlenmeyle karşılaşabilirsiniz:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Sorunu düzeltmek için
build.gradle
dosyanızda minSdkVersion değerini geçici olarak 24'e yükseltin. Bu sorun, Android Studio Bumblebee ve7.1
AGP'nin yeni sürümünde düzeltilecektir. (b/194289155)
Sürüm 1.0.0-rc02
14 Temmuz 2021
androidx.compose.material:material-*:1.0.0-rc02
yayınlandı. 1.0.0-rc02 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- İletişim kutuları artık platform boyutlandırma davranışını izler. Bu davranışı geçersiz kılmak için
usePlatformDefaultWidth
değerini false 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ınlandı. Sürüm 1.0.0-rc01 bu kayıtları içerir.
API Değişiklikleri
BadgeBox
bileşeni eklendi. Kullanım bilgileri için dokümanlara ve örneklere göz atın (I5e284)PopupProperties
öğesindekiuseDefaultMaxWidth
,usePlatformDefaultWidth
olarak yeniden adlandırıldı. (I05710)- İletişim kutuları artık tüm ekran genişliğini kullanabilmektedir. (I83929, b/190810877)
- Deneysel Aralık Kaydırma Çubuğu uygulaması eklendi (I2f4b3)
Hata Düzeltmeleri
- Materyal Tasarım özelliklerine uygun olması için, geçersiz giriş içeren OutlineTextField özellikleri, etiket yer tutucu olarak kullanılırken etikette hata rengi kullanılması durduruldu. İkinci yöntem, metin alanında giriş metni yoksa ve metin alanı odakta değilken geçerlidir. Bu değişiklikle birlikte
TextFieldColors.labelColor()
işlevindekierror:Boolean
parametresinin anlamı da değişti: Etiket yer tutucu olarak kullanılıyorsa giriş geçersiz olsa bile artıkfalse
değerini döndürecektir. (I45f78)
Sürüm 1.0.0-beta09
16 Haziran 2021
androidx.compose.material:material-*:1.0.0-beta09
yayınlandı. 1.0.0-beta09 sürümü bu kayıtları içerir.
API Değişiklikleri
- Kenarlığın şeklini özelleştirebilmek için OutlineTextField öğesine Şekil parametresi eklendi (I8f39e, b/181322957)
- TextOverflow, satır içi sınıf olarak değiştirildi. (I433af)
Hata Düzeltmeleri
- BottomDrawer, BackdropScaffold ve ModalBottomSheetLayout'ta Scrim kaybolur. ardından Color.Unspecified değeri geçirildi (I2d899, b/182063309)
Profil Kuralları Eklendi
Bu sürüm, aşağıdaki oluşturma modüllerine profil kuralları ekler (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.çalışma zamanı
- 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. Dosya, her satır için bir kural belirtir. Buradaki kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme için bir kalıptır. Bu kuralların söz dizimi,adb shell profman --dump-classes-and-methods ...
kullanılırken kullanılan, kullanıcılar tarafından okunabilen ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini kullanır.Bir yöntem kuralının kalıbı aşağıdaki gibi olur:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Sınıf kuralının kalıbı aşağıdaki gibidir:
<CLASS_DESCRIPTOR>
Burada
<FLAGS>
, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmemesi gerektiğini belirtmek içinH
,S
veP
karakterlerinden bir veya daha fazlasını gösterilmektedir.<CLASS_DESCRIPTOR>
, hedeflenen yöntemin ait olduğu sınıfı tanımlar. Örneğin,androidx.compose.runtime.SlotTable
sınıfının tanımlayıcısıLandroidx/compose/runtime/SlotTable;
olur.<METHOD_SIGNATURE>
, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürme türlerini içerir. Örneğin,LayoutNode
üzerindekifun isPlaced(): Boolean
yöntemiisPlaced()Z
imzasına sahiptir.Tek bir kuralın birden fazla yöntemi veya sınıfı kapsaması için bu kalıplarda joker karakterler (
**
,*
ve?
) bulunabilir.
Kurallar ne işe yarar?
H
işaretine sahip bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini belirtir.S
işaretine sahip bir yöntem, başlangıçta çağrılan bir yöntem olduğunu ve derleme ile yöntemin başlangıç zamanında yorumlanmasını önlemek için önceden derlenmesi gerektiğini belirtir.P
işaretine sahip bir yöntem, bunun başlangıçtan sonra çağrılan bir yöntem olduğunu gösterir.Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetinden kaçınmak için yığında önceden ayrılması gerektiğini belirtir.
Nasıl çalışır?
- Kitaplıklar, AAR yapılarına paketlenecek bu kuralları tanımlayabilir. Ardından bu yapıları içeren bir APK oluşturulduğunda, bu kurallar birleştirilir ve birleştirilmiş kurallar, APK'ya özel kompakt bir ikili ART profili oluşturmak için kullanılır. Böylece ART, uygulamanın performansını artırmak amacıyla uygulamanın belirli bir alt kümesini önceden derlemek için APK cihazlara yüklendiğinde bu profilden yararlanabilir, özellikle de ilk çalıştırmada bunu yapar. Bu işlemin, hata ayıklaması yapılabilecek uygulamalar üzerinde etkisi olmayacağını unutmayın.
Sürüm 1.0.0-beta08
2 Haziran 2021
androidx.compose.material:material-*:1.0.0-beta08
yayınlandı. 1.0.0-beta08 sürümü bu kayıtları içerir.
Yeni Özellikler
Behavior Breaking API Değişikliği
- DAVRANIŞI BIRAKMA: Kart artık tıklamaları tüketiyor ve
Card(Modifier.clickable)
aracılığıyla eklenen tıklamalar işlemsiz hale geliyor. Lütfen onClick'i kabul eden bir Kartın yeni deneysel aşırı yüklemesini kullanın. (Ia8744, b/183775620)- Tıklamaların yanı sıra diğer tıklanabilir işlevleri de ele alan yeni bir Kart aşırı yüklemesi eklendi: gösterimi, engagementSource, etkin/devre dışı. Tıklanamayan normal bir Kart,
Modifier.clickable
ile birlikte kullanılamadı. Çünkü Kart bu gibi durumlarda dalga göstergesini kırpmayacaktır.
- Tıklamaların yanı sıra diğer tıklanabilir işlevleri de ele alan yeni bir Kart aşırı yüklemesi eklendi: gösterimi, engagementSource, etkin/devre dışı. Tıklanamayan normal bir Kart,
- DAVRANIŞI BIRAKTI: Şu anda yüzey tıklamaları tüketiyor ve
Surface(Modifier.clickable)
aracılığıyla eklenen tıklamalar işlemsiz hale geliyor. Lütfen onClick'i kabul eden yeni bir deneysel aşırı yük uygulamayı kullanın. (I73e6c, b/183775620)- Tıklamaların yanı sıra diğer tıklanabilir işlevleri de ele alan yeni bir Surface aşırı yüklemesi eklendi: gösterim, engagementSource, etkin/devre dışı. Tıklanamayan normal bir Yüzey,
Modifier.clickable
ile kullanıldığında dalga göstergesini kırpmayacağı için mümkün değildi.
- Tıklamaların yanı sıra diğer tıklanabilir işlevleri de ele alan yeni bir Surface aşırı yüklemesi eklendi: gösterim, engagementSource, etkin/devre dışı. Tıklanamayan normal bir Yüzey,
API Değişiklikleri
FabPosition
, gelecekte olası genişletmeyi 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ı ifadelerle ilgili sorunları önlemek için satır içi sınıflarda enum kullanımları yeniden düzenlendi. (I2b5eb)
- Kaydırma / sürükleme sırasında dalga gösterilmesini engellemek için tıklanabilir / değiştirilebilir cihazlara dokunma zaman aşımı ekler (Ia2704, b/168524931)
- ContentDescription ve Text semantics özellikleri artık tek değerler değil, listelerdir. Böylece, öğeler birleştirme yerine oldukları gibi birleştirilebilir. Ayrıca bu değişikliklerden yararlanmak için daha iyi test API'leri sağlandı (Ica6bf, b/184825850)
Modifier.focusModifier()
desteği sonlandırılmış ve yeriniModifier.focusTarget()
(I6c860) almıştırFocusState
sıralaması,FocusState
arayüzüyle değiştirildi (Iccc1a, b/187055290)- Görüntüleme destekli dalga uygulaması kararlı olduğu için
LocalRippleNativeRendering
kaldırıldı (I7fab3, b/188569367)
Hata Düzeltmeleri
Modifier.onGloballyPositioned()
, tüm değiştiriciler uygulandıktan sonra düzen koordinatlarını değil, değiştirici zincirindeki bu değiştiricinin koordinatlarını raporlayacak ş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 Compose Materyal kataloğuna BENİOKU eklendi. (If9191)
Sürüm 1.0.0-beta07
18 Mayıs 2021
androidx.compose.material:material-*:1.0.0-beta07
yayınlandı. 1.0.0-beta07 sürümü bu kayıtları içerir.
API Değişiklikleri
- Navigasyon Oluşturma'da rota desteği için artık uzantı yöntemlerini kullanmanız gerekmez. (I22beb, b/172823546)
Sürüm 1.0.0-beta06
5 Mayıs 2021
androidx.compose.material:material-*:1.0.0-beta06
yayınlandı. 1.0.0-beta06 sürümü bu kayıtları içerir.
API Değişiklikleri
- Dalga, Android cihazlarda dahili olarak
RippleDrawable
kullanmak üzere taşındı. Bu, dalga animasyonlarının RenderThread'de gerçekleşeceği ve bu nedenle, ekranlar arasında gezinme gibi işlemlerde kullanıcı arayüzü iş parçacığı yüklüyken bile düzgün olacağı anlamına gelir. Bu durum, Ripple'ın API yüzeyini değiştirmez ancak bu değişikliğin sonucunda davranış değişiklikleri görülebilir. Taşımaya yardımcı olmak içinLocalRippleNativeRendering
eklendi. CompositionLocalProvider içindeki önceki dalga uygulamasına dönmek için bu CompositionLocal'afalse
değeri gir. 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 bildiriminde bulunun. (I902f8, b/168777351, b/183019123) - Koleksiyonun ve öğelerinin erişilebilirlik hizmetleri için işaretlenmesine olanak tanıyan CollectionInfo ve CollectionItemInfo erişilebilirlik API'leri eklendi (Id54ef, b/180479017)
- Geçersiz giriş içeren bir düğümün işaretlenmesine olanak tanıyan
error
Erişilebilirlik API'si eklendi (I12997, b/180584804, b/182142737)
Hata Düzeltmeleri
- Materyal Oluşturma kataloğuna ait eklerin uygulanması güncellendi: https://github.com/google/accompanist/pull/365. (I25dc3)
- Ağırlığı(fill = false) olan Satır ve Sütun alt öğeleri, artık üst öğenin mevcut 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ınlandı. 1.0.0-beta05 sürümü bu kayıtları içerir.
Hata Düzeltmeleri
- Mevcut Materyal Oluşturma kataloğuna bileşen karosu 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ınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.
API Değişiklikleri
- API DEĞİŞİKLİĞİ:
DrawerState
durumu artık deneysel ScrollableState kapsamını genişletmiyor.- API DEĞİŞİKLİĞİ:
BottomDrawerState
, zaten Deneysel BottomDrawer bileşeniyle (I81114, b/181656094) eşleşecek şekilde Deneysel olarak işaretlendi
- API DEĞİŞİKLİĞİ:
SoftwareKeyboardController
üzerindekihideSoftwareKeyboard
veshowSoftwareKeyboard
adlı kullanıcıların adlarını sırasıylahide()
veshow()
olarak değiştirin.- LocalYazılımKlavyeController için tam CompositionLocal arayüzünü sağlayın. Bu arayüz, ayarlanmasına olanak tanıyın (özellikle testlerde kullanılır) (I579a6)
- LiveRegion Accessibility API eklendi. Düğüm canlı bölge olarak işaretlenirse erişilebilirlik hizmetleri kullanıcıyı değişiklikleri hakkında otomatik olarak bilgilendirir (Idcf6f, b/172590946).
Hata Düzeltmeleri
- Mevcut modüle Materyal Oluşturma kataloğu özelliği eklendi. Şu anda eksik: Bileşen karosu resimleri, tema seçici (takip değişikliklerinde eklenecek). (IE7a94)
Sürüm 1.0.0-beta03
24 Mart 2021
androidx.compose.material:material-*:1.0.0-beta03
yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.
API Değişiklikleri
DefaultMonotonicFrameClock
desteği sonlandırıldı.MonotonicFrameClock
olmadanwithFrameNanos
veyaRecomposer.runRecomposeAndApplyChanges
çağrılırsa artıkIllegalStateException
politikası geçerli. (I4eb0d)- Sekmelerde simge ve satır içi metin görüntülemeyi desteklemek için yeni bir API
LeadingIconTab
eklendi. (I23267)
Harici Katkı
- [Jossi Wolf'tan]
BottomDrawer
artık çekmece yuvasının içeriğini sarmalıyor. Üst öğe sonsuz yüksekliğe sahip olduğundaBottomDrawer
,IllegalStateException
öğesi göndermez. Alt çekmece, üst çekmecesinin% 50'sinden küçükse genişletilmiş durumda açılır.BottomDrawerState
veModalBottomSheetLayoutState
çevresindeki dokümanlar güncellendi.BottomDrawerState#isOpen
, açık veya genişletilmiş durumdaysa şimdi true değerini döndürür. (I87241)
Sürüm 1.0.0-beta02
10 Mart 2021
androidx.compose.material:material-*:1.0.0-beta02
yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.
API Değişiklikleri
- TextField'te önceki
SoftwareKeyboardController
arayüzünün yerine yeniLocalSoftwareKeyboardController
beste yerel API'si eklendi. (I5951e, b/168778053)
Hata Düzeltmeleri
- Deneysel API'lerin herkese açık kullanımında kısıtlamalar uygula (I6aa29, b/174531520)
- TopAppBar ve BottomAppBar'ın varsayılan yatay hizalaması Satır (Ib2dc7) ile tutarlı olacak şekilde Başlangıç olarak değiştirildi
- Mevcut entegrasyon testi demolarında iç içe yerleştirilmiş olan Materyal Oluşturma kataloğu için yeni modül ve yer tutucu kullanıcı arayüzü eklendi. (Idfcb3)
androidx.compose.ui:ui
artık AppCompat veya Fragment'a bağlı değil. Uygulamanızda ComposeView'un yanı sıra Fragment ve/veya AppCompat kullanıyorsanız AppCompat 1.3 veya sonraki sürümleri / Fragment 1.3 ve sonraki sürümleri kullanın. Bu sürümler, ComposeView için gereken yaşam döngüsünü ve kayıtlı durum sahiplerini doğru şekilde ayarlamak için gereklidir. (I1d6fa, b/161814404)
Sürüm 1.0.0-beta01
24 Şubat 2021
androidx.compose.material:material-*:1.0.0-beta01
yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.
Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.
API Değişiklikleri
- Boyut değiştiriciler yeniden adlandırıldı. Modifier.width/height/size, requiredwidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.PreferredGenişlik/tercih edilenYükseklik/tercih edilenBoyut, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)
- resim (I89130)
- Yerleşik öğelere boyutlandırmak için kullanılan değiştiriciler artık deneysel değildir. (I15744)
- dp onayları kaldırıldı (I798d2)
- Kısa süre içinde yeni bir API ile değiştirilecek olan SoftwareKlavyeController geri çağırması tüm metin alanlarından kaldırıldı. (Iae869, b/168778053)
- Switch, Checkbox ve RadioButton işlem lambda'ları artık null özelliklidir. Tıklanabilir satırdaki onay kutusu örnekleri, bu özelliği kullanacak şekilde güncellendi. (If601b, b/171819073)
InteractionState
,[Mutable]InteractionSource
ile değiştirildi- Arayüzler, Etkileşim etkinliklerinin yayınlanmasından / toplanmasından sorumludur.
interactionState = remember { InteractionState() }
öğesiniButton
veModifier.clickable()
gibi bileşenlere iletmek yerineinteractionSource = remember { MutableInteractionSource() }
kullanın.Interaction.Pressed in interactionState
yerine, EngagementSource'ta EngagementSource.collectIs PressedAsState() gibi uzantı işlevlerini kullanmalısınız.- Karmaşık kullanım örneklerinde, Etkileşim akışını gözlemlemek için EngagementSource.interactions'ı kullanabilirsiniz. Daha fazla bilgi için Etkileşim Kaynağı dokümanlarına ve örneklerine bakın.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals'a AccessibilityMananger arayüzü ve LocalAccessibilityMananger'ı ekle (I53520)
- Kullanımdan kaldırılan LayoutKoordinat yöntemleri kaldırıldı, locationInParent ve boundsInParent için özellik yerine işlev kullanın (I580ed, b/169874631, b/175142755)
- Kaydırma çubuğu artık etkin/devre dışı durumunu destekliyor (I6d56b, b/179793072)
- CoreTextField gibi alt düzey metin bileşenlerinden gelen giriş oturumları için yeni TextInputSession oluşturuldu. (I8817f, b/177662148)
- AnimationEndREASON.Interrupted kaldırıldı. Animasyon kesintiye uğrarsa CancelException hatası verilir. (I2cbbc, b/179695417)
@ExperimentalRippleApi
dosyası kaldırılmış veRippleAlpha
, arayüz yerine özelliklere sahip bir sınıf olacak şekilde değiştirilmiştir. (I6df7c)- Farklı durumlarda TextField ve OutlineTextField'te kullanılan farklı renkleri göstermek için TextFieldColors arayüzü eklendi. Varsayılan uygulama için bkz.TextFieldDefaults.textFieldColors ve TextFieldDefaults.outlinedTextFieldColors
- TextField ve OutlineTextField içindeki isErrorValue parametresi isError olarak yeniden adlandırıldı. (I831f9, b/171305338, b/168004067)
- Erişilebilirlik amacıyla Sekme veya Radyo Düğmelerinin koleksiyonunu işaretlemeye olanak tanıyan seçim Grubu değiştiricisi ekleyin (Ie5c29)
LazyListState.animateScrollToItem Ekle
Bu yöntem, listedeki belirli bir öğeye sorunsuz bir şekilde kaydırma yapar. (I4bfd7)
ScrollableState.smoothScrollBy()
,animateScrollBy()
olarak yeniden adlandırıldıLazyListState.snapToItemIndex()
,scrollToItem()
olarak yeniden adlandırıldıScrollState.smoothScrollTo()
,animateScrollTo()
(I35ded) olarak yeniden adlandırıldı@ReadOnlyComposable
ile işaretlenmiş olan besteler artık yalnızca diğer@ReadOnlyComposables
(I58961) öğesine çağrı yaptığından emin olmak için derleme zamanı doğrulanıyor.TargetAnimation API kaldırıldı. (If47d1, b/177457083)
Modifier.verticalScroll()/LandscapeScroll() içindeki kaydırma konumu artık Ints ile temsil edilir (I81298)
smoothScrollBy ve ScrollBy yöntemlerinin paketleri
androidx.compose.foundation.gestures.*
olarak değiştirildi (I3f7c1, b/175294473)FlingConfig, FlingBehavior olarak yeniden adlandırıldı. Artık önceden tanımlanmış Decays yerine askıya alma animasyonunun özelleştirilmesine izin veriliyor. (I02b86, b/175294473)
Boyut değiştiriciler yeniden adlandırıldı. Modifier.width/height/size, requiredwidth/requiredHeight/requiredSize olarak yeniden adlandırıldı. Modifier.PreferredGenişlik/tercih edilenYükseklik/tercih edilenBoyut, genişlik/yükseklik/boyut olarak yeniden adlandırıldı. (I5b414)
defaultMinSizeConstraints, defaultMinSize olarak yeniden adlandırıldı. (I4eaae)
Yön, temel paketine taşındı. VelocirtTracker, ui.gesture'dan ui.input.pointer'a taşındı. (Iff4a8, b/175294473)
drawerState.open() vedrawerState.close() artık işlevleri askıya alıyor. Onları çağıracak bestenin kapsamını almak için readCoroutineScope() kullanın (I16f60, b/175294473)
Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı
- Beste oluşturucu artık anahtar parametresi kabul etmiyor ve kullanımdan kaldırıldı.
- currentCompositeKeyHash, derlenebilir bir üst düzey işlev yerine birleştirilebilir üst düzey mülke dönüştürüldü.
- CompositionData ve CompositionGroup androidx.compose.runtime.tooling ad alanına taşındı
- ComposableLambda, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- ComposableLambdaN, beton sınıf yerine arayüz haline getirilmiştir ve artık tür parametrelerine sahip değildir.
- Snapshot işlevi, androidx.compose.runtime ad alanına taşındı
- SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil.
@TestOnly
üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.- keySourceInfoOf ve sıfırlaSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
- Composer.collectKeySourceInformation kaldırıldı. Artık gerekli değildir.
- isjoinedKey, katılmışKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar artık gerekli değildir.
- Çeşitli üst düzey API'ler taşındı ve farklı dosyalar halinde yeniden düzenlendi. Kotlin'in dosya sınıfı semantiği nedeniyle bu, ikili program uyumluluğunu bozar ancak kaynak uyumluluğunu bozar. Bu nedenle çoğu kullanıcı için bir sorun olmamalıdır.
- (I99b7d, b/177245490)
Modifier.scrollable yeniden düzenlendi. Artık ScrollableController sınıfı yerine Scrollable arayüzü kullanıyor (I4f5a5, b/174485541, b/175294473)
Modifier.draggable artık basit bir lambda yerine DraggableState'i 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şlevleri olarak adlandırılmaktadır. (I7f970, b/177457083)
Daha önce desteği sonlandırılmış API'lerden bazıları silindi (Ice5da, b/178633932)
Aşağıdaki Material API değişiklikleri yapıldı:
- Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
- BackdropScaffold'daki parametreler, isteğe bağlı parametrelerden önce gelen gerekli parametreler için API yönergelerine uygun olacak şekilde yeniden sıralandı.
- BottomNavigasyonItem öğesindeki
icon
parametresi,selected
veonClick
satırlarından sonra olacak şekilde taşındı. - BottomNavigasyonItem öğesindeki
alwaysShowLabels
parametresialwaysShowLabel
olarak yeniden adlandırıldı. - Birkaç bileşendeki
bodyContent
parametreleri yalnızcacontent
olarak yeniden adlandırıldı. - Parametreler
ButtonDefaults.buttonColors()
içinde yeniden sıralandı. Parametrelerin türü değişmediği için bunun kodunuzda bir hataya neden olmayacağı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 öncekiyle aynı şekilde çalışmaz. secondaryVariant
parametresidarkColors()
parametresine eklendi. Bu renk, koyu temada genelliklesecondary
ile aynıdır, ancak tutarlılık ve daha fazla özelleştirme için eklenmiştir.- Yaygın olarak kullanılmadıkları / yararlı olmadıkları için ElevationDefaults veactivateElevation() herkese açık API yüzeyinden kaldırıldı.
Slider
içindekionValueChangeEnd
öğesi,onValueChangeFinished
olarak yeniden adlandırıldı ve boş değer atanabilir.- Tutarlılık için
Snackbar
içindekitext
parametresicontent
olarak yeniden adlandırıldı. - Varsayılan dolgunun özelleştirilmesine olanak tanımak için
DropdownMenuItem
parametresinecontentPadding
parametresi eklendi vecontent
,RowScope
üzerinde uzantı haline getirildi. ModalDrawerLayout
adlı dosyaModalDrawer
olarak yeniden adlandırıldı.BottomDrawerLayout
adlı dosyaBottomDrawer
olarak yeniden adlandırıldı.- (I1cc66)
BasicTextField, daha iyi özelleştirme için artık Renk yerine Fırça'yı kabul ediyor (I83a36)
resim (I89130)
Indication#createIndication(), Indication#rememberUpdatedIndication(EtkileşimState) olarak değiştirildiğini ve IndicationInstance#drawIndication()() içindeki EngagementState parametresini kaldırır. IndicationInstance, EngagementState değişikliklerine yanıt olarak animasyonları başlatmayı veya durumları yazma durumunu değil yalnızca görsel efektleri çizmekten sorumlu olmalıdır. Bu animasyonlar ve durum yazma işlemleri
rememberUpdatedIndication()
içinde gerçekleşmelidir.Modifier.indication
öğesindekiindication
parametresi de zorunlu parametre olacak şekilde değiştirildi. (Ic1764, b/152525426)
Hata Düzeltmeleri
- TextField'te önceki SoftwareKlavyeController arayüzünün yerini almak üzere yeni Local SoftwareKlavyeController bileşimi 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ınlandı. 1.0.0-alpha12 sürümü bu kayıtları içerir.
API Değişiklikleri
- Modifier.pointerInput artık yeni bağımlılıklar için işaretçi girişi algılama eş yordasının ne zaman yeniden başlatılması gerektiğini belirtmek için tuşların hatırlanmasını gerektiriyor. (I849cd)
- BottomDrawerLayout ve ListItem @DeneyselalMaterialApi (Id766e) olarak işaretlenmiştir
- PaddingValues.absolute eklendi ve PaddingValues kabul eden API'lerde kullanılabilir. (Ia5f30)
- onImeActionPerformed desteği sonlandırıldı. Bunun yerine KlavyeActions'ı kullanın (If0bbd, b/179071523)
- Adlandırma kurallarını ImageBitmap ve ImageVector ile daha iyi eşleştirmek için ImagePainter'ın adı BitmapPainter, paralel VectorPainter olarak değiştirildi. (Iba381, b/174565889)
- Animatable.snapTo ve Animatable.stop, artık askıya alma işlevleri olarak adlandırılıyor (If4288)
- ComponentActivity.setContent, androidx.activity:activity-compose modülündeki androidx.activity.compose.setContent konumuna taşındı. (Icf416)
- Destructstruct ve copy() yöntemleri nadiren kullanıldıkları birkaç sınıftan kaldırıldı. (I26702, b/178659281)
- ModalBottomSheetState dahili içinde expand() ve expand() yöntemini yapın (Ic914e)
- Indication#createInstance, @Composable olarak değiştirildi ve LocalIndication, () -> Indication yerine bir Göstergeyi içerecek şekilde değiştirildi. (I5eea, b/157150564)
- Uyarı İletişim Kutusu ve Açılır Menü, şimdilik yalnızca Android olacak şekilde taşındı. Temel Pop-up öğesinin daha ayrıntılı yapılandırılması için DropdownMenü'ye PopupProperties parametresi eklendi. (I9c443)
- loadFontResource desteği sonlandırıldı. Bunun yerine fontResource kullanın. imageResource, loadImageResource, VektörResource ve loadVectorResource desteği sonlandırılmıştır. Bunun yerine PaintterResource kullanın. (I6b809)
- DropdownMenü'den
toggle
vetoggleModifier
parametresi kaldırıldı,dropdownModifier
,dropdownOffset
vedropdownContent
sırasıylamodifier
,offset
vecontent
olarak yeniden adlandırıldı. DropdownMenü artıkPopup
ile tutarlı bir şekilde çalışıyor. Burada menünün konumu için üst düzen kullanılır. Çoğu durumdatoggle
öğesiniDropdownMenu
öğesinin kardeşi olacak şekilde taşıyabilir ve her ikisini deBox
ile sarmalayabilirsiniz. Bu API'nin kullanımı hakkında daha fazla bilgi için belgelerdeki 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)
- Anlamsal genişletme ve daraltma işlemleri eklendi. ModalBottomSheetState'e (Ib5064) genişletme ve yarısı genişletme eklendi.
- Modifier.dragToolsFilter kullanımdan kaldırılmıştır. Bunun yerine
Modifier.pointerInput { detectDragGestures (...)}
politikasını kullanın. Alternatif olarak, bir eksenli sürüklemeler için Modifier.draggable'ı kullanın (I0ba93, b/175294473) - Ambiyans -> CompositionLocal yeniden adlandırmasıyla eşleşecek şekilde Ambiyanslar yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılırken artık CompositionLocals adı LocalFoo olarak adlandırılıyor. (I2d55d)
- Seçim, temele taşındı. (I7892b)
- Benzer şekilde, daha önce
state { 0 }
composposto öğesini, şimdi deremember { mutableStateOf(0) }
gibi kullanımı teşvik etmek için tasarladığımızsavedInstanceState { 0 }
kompozit içeriğini kaldıracağız. Bunun yerinerememberSaveable { mutableStateOf(0) }
kullanmanız gerekir. MutableState içinde kullanılan tür Paket'te depolanabiliyorsa bu öğe otomatik olarak kaydedilir ve geri yüklenir. Daha önce bir özel tasarruf nesnesi iletiyorsanız şimdistateSaver
parametresine sahip yeni bir forceSaveable aşırı yüklemesi kullanmanız gerekir. Kullanım şöyle 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 kullanımdan kaldırılmış ve üç ek ek açıklama kullanıma sunulmuştur.
@ComposableContract(restartable = false)
,@NonRestartableComposable
oldu@ComposableContract(readonly = true)
,@ReadOnlyComposable
oldu@ComposableContract(preventCapture = true)
,@DisallowComposableCalls
oldu@ComposableContract(tracked = true)
kaldırıldı.- (I60a9d)
emptyContent()
ve(@Composable () -> Unit).orEmpty()
yardımcı programları, artık performans üzerinde herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırıldı (I0484d)JuneSaveInstanceState(), voiceSaveable() olarak yeniden adlandırılıp androidx.compose.runtime.saveable paketine taşınmıştır. (I1366e, b/177338004)
RounderCornerShape, CutCornerShape ve CornerBasedShape parametreleri, şeklin rtl yönünde otomatik yansıtmasını desteklemek için başlangıç/bitiş olarak soldan/sağdan farklı olarak yeniden adlandırıldı. Otomatik yansıtmanın istenmediği durumlar için absoluteRounderCornerShape ve absoluteCutCornerShape kullanıma sunuldu. (I61040, b/152756983)
Bileşenin boyutunu ve düzenini etkilediği için bu parametreler sağlanmadığında / sağlanmadığında bileşenin davranışını daha iyi iletmek amacıyla Sekme'nin
text
veicon
parametreleri ve BottomTrafficItemlabel
parametresi boş değer olarak değiştirildi. Şu anda metin / simge / etiketi temsil etmemesi içinemptyContent()
iletiyorsanız bunun yerinenull
kullanılmalıdır. (I57ed4)contentColorFor parametresinin adı backgroundColor olarak değiştirildi (I5bb67)
TabDefaults kullanımdan kaldı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'si kullanıma sunuldu. Refactored ColorFilter API, bir arayüze dönüşür ve PathEffect uygulamasıyla eşleşir. (Ica1e8)
Animasyon Değeri/Kayan artık kullanımdan kaldırıldı. Lütfen bunun yerine Animasyon özelliğini kullanın. (I71345, b/177457083)
SemanticsProperties.PaneTitle API'yi ekleyin. (I20d5a)
Tıklanabilir olmamalarını sağlamak için Sekme ve Bottom NavigationItem öğelerine etkin parametreler eklendi. API'sinde düzen gereksinimlerini daha iyi ifade etmek için BottomNavigasyonItem, RowScope.BottomTrafficItem olarak değiştirildi. (Id683d)
dokunun. Bunun yerine, Dedefier.clickable veya Modifier.pointerInput'u tespit TapHarekets işleviyle kullanın. (I6baf9, b/175294473)
Shape'in createOutline öğesine layoutDirection parametresini ekleyin. Bu, düzen yönüne duyarlı şekiller oluşturulmasına olanak tanır. (I57c20, b/152756983)
Recomposer.current()
kaldırıldı. [Abstract]ComposeView artık varsayılan olarak pencere için ViewTreeLifecycleOwner tarafından yönlendirilen geç oluşturulmuş, pencere kapsamlı Yeniden Oluşturucular'dır. Ana makine Yaşam Döngüsü durdurulurken yeniden oluşturma veFrameNanos tabanlı animasyon kareleri duraklatılır. (I38e11)
Hata Düzeltmeleri
- Simge, uygulanan boyut değiştiricilere uygun olarak kendi boyutuna sığacak şekilde ölçeklendirilir. Örneğin,
Icon(.., modifier = Modifier.size(50.dp)
şimdi 50x50 dp'lik bir alanda çizim yapacaktır. (Ib2ba9, b/178796190)
Sürüm 1.0.0-alpha11
28 Ocak 2021
androidx.compose.material:material-*:1.0.0-alpha11
yayınlandı. Sürüm 1.0.0-alpha11 bu kayıtları içerir.
API Değişiklikleri
- Bazı Material API'lerini artık
@Experimental
olmayacak şekilde tanıtıyor (I5d20e) - İçerik açıklaması parametresi, Resim ve Simge'ye eklendi. Erişilebilirlik hizmetleriyle ilgili açıklama sunmak için kullanılır (I2ac4c)
- Materyal durum bilgili parametre arayüzlerini,
State<T>
değerini döndüren @Composable işlevlerine sahip olacak şekilde değiştirir. Animasyonlu bir öğeyi Duruma dönüştürmeyi kolaylaştırmak içinAnimatable.asState()
ekler. Ayrıca,mationElevation, Animatable'da bir askıya alma uzantısı olarak da değiştirilir. (If613c) - Snackbar, SnackbarHost, SnackbarHostState artık
@ExperimentalMaterialAPI
değil (Id1fb5) - Tipografi, Şekiller ve Sekme Konumu artık veri sınıfı olmayacak şekilde değiştirilir. Oluşturulanların yerine Tipografi ve Şekiller için kopyalama işlevi ekler. (I40037)
- Daha önce kullanımdan kaldırılan bazı Materyal API'ler (Ifaa25) silindi
Hata Düzeltmeleri
- onCommit, onDispose ve onActive; kullanımdan kaldırılarak, SideEffect ve DisposableEffect API'lerinin (If760e) yerini aldı.
- TransitionDefinition tabanlı Geçişin desteği sonlandırıldı (I0ac57)
- UpdateTransition'daki İlk Durum artık desteklenmektedir (Ifd51d)
- WithConstraints, BoxWithConstraints olarak yeniden tasarlanıp foundation.layout'a taşındı. (I9420b, b/173387208)
Askıya alınmayan ScrollBy öğesini kullanımdan kaldır, askıya alınmayan görünümü kaldır
Artık kaydırmayı kontrol etmek için askıya alma işlevlerini kullanmanızı ve kaydırmanın bitmesini beklemenizi öneririz. Geçiş kapsamında bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz ve/veya kaldırıyoruz. (Ie9ced)
Askıya alınmayan smoothScrollBy öğesini kullanımdan kaldırın Artık kaydırmayı kontrol etmek için askıya alma işlevlerini kullanmanızı ve kaydırmanın bitmesini beklemenizi öneririz. Geçiş kapsamında bu işlevlerin askıya alınmayan sürümlerini kullanımdan kaldırıyoruz. (I12880)
ComposeTestRule
kapsamını genişleten vesetContent
özelliğini tanımlayan veComposeTestRule
ürününden kaldırılanComposeContentTestRule
kullanıma sunuldu.ComposeTestRule
döndüren ve sizin için Etkinlik başlatmayan bir fabrika yöntemicreateEmptyComposeRule()
eklendi. Test sırasında Etkinliğinizi başlatmak istediğinizde bunu kullanın (ör.ActivityScenario.launch
kullanarak (I9d782, b/174472899)Button ve FloatingActionButton'da kullanılan dalga artık AmbientIndication aracılığıyla yeni bir Gösterge sağlanarak özelleştirilemez. Bu, hiçbir zaman bu bileşenleri özelleştirmek için bir yol olarak tasarlanmamıştı ve bu da artık bu bileşenleri diğer Material bileşenleriyle tutarlı hale getiriyor. Bir uygulamadaki dalgaları özelleştirmek için Dalga Teması'na bakın. (I546c5)
animasyonluAsState artık animasyonluFooAsState şeklindedir. Burada Foo, animasyonlu değişkenin türüdür.Örneğin, Kayma, Dp, Offset vb. (Ie7e25)
BasicTextField,
decorationBox
adlı yeni bir parametre aldı. Simge, yer tutucu, etiket ve metin alanına benzer süslemelerin eklenmesine ve bunun isabet hedef alanının artırılmasına olanak tanır. (I16996)Malzeme metin alanının genişliğinin 280.dp'den (I78373) küçük olarak ayarlanmasını engelleyen bir hata düzeltildi.
canDrag parametresi Değiştirici.draggable öğesinden kaldırıldı (Ic4bec, b/175294473)
Kaçınılması gerektiği için displaySize özelliğini kaldırın. Tipik olarak, en azından onRoot() boyutunu veya pencere boyutunu kullanmak daha iyidir. (I62db4)
Yüzeyde artık birden fazla düzen alt öğesi olabilir. (I66a92, b/144488459)
inexpiration ve beste (I583a8)
PopupPositionProvider'ı genel koordinatları değil, pencereye göre koordinatları kullanacak şekilde değiştirir. parentGlobalBounds adını anchorBounds ve windowGlobalBounds adını
windowSize: IntSize
(I2994a) olarak değiştirirSüre ve Çalışma Süresi, Uzun milisaniyelerle değiştirilir ve bu adım, bu sınıflardaki işaretçi girişinin bağımlılığını ortadan kaldırır. (Ia33b2, b/175142755, b/177420019)
FlingConfig'i kabul eden MoviesFloat.fling kaldırıldı. Lütfen bunun yerine Animatable.animateDecay adlı askıya alma işlemini kullanın. (I4659b, b/177457083)
Artık kompozisyon dışında tıklanabilir, geçiş yapılabilir ve seçilebilir olarak oluşturulabilir (I0a130, b/172938345, b/175294473)
Yumuşak geçiş, işlevsel bir arayüz olarak değiştirildi (Ib14e5)
ScrollableColumn/Row desteği sonlandırıldı. ScrollableColumn kullanımı, büyük bir kayan içeriğe sahip olduğunuz LazyColumn ile karşılaştırıldığında daha az verimlidir. Çünkü LazyColumn ile yalnızca görünür öğeleri oluşturabilir/ölçebilir veya çizebiliriz. Kullanıcıların verimsiz bir şekilde hareket etmesini önlemek için ScrollableColumn ve ScrollableRow'u kullanımdan kaldırmaya ve bunun yerine LazyColumn ve LazyRow'un kullanımlarını desteklemeye karar verdik. Kullanıcılar, tembel davranışa ihtiyaç duymadıklarına karar verebilir ve değiştiricileri doğrudan şu şekilde kullanabilir: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid kapsamı için yeni
items(count: Int)
fabrika yöntemi.items(items: List)
veitemsIndexed(items: List)
artık uzantı işlevleri olduğundan, kullanıldıklarında bunları manuel olarak içe aktarmanız gerekir. Şu diziler için yeni uzantı aşırı yüklemeleri:items(items: Array)
veitemsIndexed(Array)
(I803fc, b/175562574)Deneysel monotonicFrameAnimationClockOf yöntemleri (Ib753f, b/170708374) kaldırıldı
Global koordinat yöntemleri kullanımdan kaldırıldı ve yeni pencere tabanlı koordinat yöntemleri geliştirildi. (Iee284)
Denetleme açıkken grafik katmanı değiştiricisi ekleyen Modifier.toolingGraphicsKatman eklendi. (I315df)
FocusRequester.createRefs, değişebileceği için artık deneysel olarak işaretlendi. (I2d898, b/177000821)
SemanticspropertyReceiver.hidden, invisibleToUser olarak yeniden adlandırıldı ve @DeneyselalComposeUiApi olarak işaretlendi. AccessibilityRangeInfo, progressBarRangeInfo olarak yeniden adlandırıldı. stateDescriptionRange, progressBarRangeInfo olarak yeniden adlandırıldı. AccessibilityScrollState, ScrollAxisRange olarak yeniden adlandırılmıştır. issueAccessibilityScrollState, YatayScrollAxisRange olarak yeniden adlandırılır. verticalAccessibilityScrollState, dikeyScrollAxisRange olarak yeniden adlandırılır. (Id3148)
Testlerde TestCoroutineDispatcher'dan yararlanın (I532b6)
Vektör grafikleri API'si, vektör grafiklerinin köküne uygulanan tonlamanın ayrıştırılmasını destekleyecek şekilde güncellendi. (Id9d53, b/177210509)
Sürüm 1.0.0-alpha10
13 Ocak 2021
androidx.compose.material:material-*:1.0.0-alpha10
yayınlandı. Sürüm 1.0.0-alpha10 bu kaydetmeleri içerir.
API Değişiklikleri
- Bileşen parçaları ve matematik işlemleri olacak şekilde değiştirilmiş Hız. (Ib0447)
@ExperimentalTesting
adı, benzer deneysel API ek açıklamalarıyla tutarlı olacak şekilde@ExperimentalTestApi
olarak değiştirildi (Ia4502, b/171464963)- Konum Dpoffset olarak yeniden adlandırıldı ve getMesafe() (Ib2dfd) kaldırıldı
- Color.useOrElse(), Color.takeOrElse() olarak ranamelendi (Ifdcf5)
- Temel Strings.kt dosyasına Geçiş Ekle (I4a5b7, b/172366489)
- FlowRow ve FlowColumn kullanımdan kaldırıldı. Lütfen bunun yerine özel bir düzen kullanın. (I09027)
- Modifier.focus() ve Modifier.focusRequester() desteği sonlandırıldı. Bunun yerine Modifier.focusModifier() ve Modifier.focusReference() öğelerini kullanın. (I75a48, b/175160751, b/175160532, b/175077829)
- NativeClass'ı UI modülüne taşıyıp dahili hale getirdiler. NativeClass'ın kullanımları, bunun yerine "is MyClass" kullanılacak şekilde eşittir. (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ıkT
yerineState<T>
döndürenanimateAsState()
ile değiştiriliyor. Geçersiz kılma kapsamı, State değerinin okunduğu yere daraltılabileceği için daha iyi performans sağlar. (Ib179e)- Semantics rol API'sini ekleyin ve tıklanabilir, seçilebilir ve geçiş yapılabilir SemanticsModifier'a parametre olarak rol ekleyin. Modifier.progressSemantics artık Kaydırma Çubuğu'nu 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ınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.
API Değişiklikleri
- Animasyonu manuel olarak tetiklemek ve Modifier.skayable'da sürüklemeyi sağlayan API eklendi (Iaa17a, b/162408885)
- ButtonConstants gibi *Sabit öğeler, bunun yerine ButtonDefaults gibi Varsayılanlarla bitecek şekilde yeniden adlandırıldı. Ayrıca, bu yeni nesnelerdeki mülklerden gereksiz
default
önekleri de kaldırılır. (Ibb915, b/159982740) Compose, oluşturulabilir çağrılar yapabilen mülk alıcılarını destekler. Bu konuyla ilgili destek kaldırılmıyor, ancak bir özellik alıcıyı @Composable olarak tanımlamak için kullanılan söz dizimi değişiyor.
Bu işlemi gerçekleştirmek için kullanımdan kaldırılan söz dizimi, özelliğin kendisine ek açıklama ekliyordu:
@Composable val someProperty: Int get() = ...
Bunu yapmak için şu anda en doğru olan söz dizimi, özelliğin alıcısına ek açıklama eklemektir:
val someProperty: Int @Composable get() = ...
Her iki söz dizimi de bir süre çalışmaya devam eder, ancak kullanımdan kaldırılan eski söz dizimi nihayetinde derleme hatasına dönüşür. (Id9197)
Materyal kitaplığının geri kalanına ihtiyaç duymadan etkileşimli bileşenlerin derlenmesi için Ripple API'leri içeren
androidx.compose.material:material-ripple
kitaplığı eklendi. safetyRippleIndication desteği sonlandırıldı ve Hatırlanabilirlik Dalgası ile değiştirildi. (Ibdf11)
Hata Düzeltmeleri
- Ofset değiştiricilerdeki lambdalar artık Kayan öğe yerine Intoffset değerini döndürüyor. (Ic9ee5, b/174137212, b/174146755)
Çizim ortamının boyutları mevcut olduğunda gölgelendirici örneği oluşturmak için yeniden düzenlenen ShaderBrush. Bu, beste zamanında özel DrawModifier uygulamalarını uygulamak zorunda kalmadan, oluşturulabilir bir öğenin tüm çizim sınırlarını kaplayan renk geçişlerini tanımlamak için yararlıdır.
Kullanımdan kaldırılan gradyan işlevi oluşturucu API'leri yerine bir Gradyan nesnesinde fabrika yöntemleri kullanılıyor. (I511fc, b/173066799)
Modifier.focusObserver desteği sonlandırıldı. Bunun yerine Modifier.onFocusChanged veya Modifier.onFocusEvent öğelerini kullanın (I30f17, b/168511863, b/168511484)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed ve LazyRowForIndexed öğelerini kullanımdan kaldırın. Bunun yerine LazyColumn ve LazyRow'u kullanın (I5b48c)
Dp.VectorConverter, Position.VectorConverter vb. yolu animation-core'a taşındı ve eski VectorConveters'ın (If0c4b) desteği sonlandırıldı.
Autofill API artık deneysel bir API'dir ve kaydolmayı gerektirir (I0a1ec)
FocusRequester örnekleri oluşturmak için yapı bozma bildirimleri ekleme (I35d84, b/174817008)
AccessibilityLabel, contentDescription olarak yeniden adlandırıldı. accessibilityValue, stateDescription olarak yeniden adlandırıldı. (I250f2)
InfiniteRepeatableSpec (I668e5) oluşturmak için yeni infinite Repeatable işlevi
DropdownMenü'lerin konumlandırma davranışı, Malzeme spesifikasyonuna göre biraz değiştirildi. (I34c72, b/168594123)
TextFields için EngagementState desteği eklendi. (I61d91)
Alt anlamların temizlenip yenilerini ayarlamak için Modifier.clearAndSetSemantics eklendi. (I277ca)
ContentDrawScope, DrawScope ile yapılacak şekilde kullanıcı arayüzü 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 kayıtları içerir.
API Değişiklikleri
- MaterialTheme, seçim tutma yerleri ve seçim arka planı için doğru renkleri ayarlıyor. Malzeme harici uygulamalar, seçim için kullanılan renkleri özelleştirmek için AmbientTextSelectionColors'ı manuel olarak kullanabilir. (I1e6f4, b/139320372, b/139320907)
- Oluşturma yönergeleriyle tutarlılığı kontrol etmek amacıyla birleştirilebilir lambda parametresi adlandırma ve konumu için hata analizi denetimi eklendi.
Ayrıca, hata analizi ve yönlendirmelere göre sondaki lambdalarının adı olarak
children
kullanan bazı API'lericontent
'e taşıdı. (Iec48e) - VectorAsset adı ImageVector olarak değiştirildi. API konseyi kurallarına göre VectorAsset adı, dahili bir ImageVector sınıfı olarak VectorAsset olarak Builder olarak değiştirildi. Uyumluluk için ImageVector.Builder'a bağlantı vermek üzere VectorAssetBuilder'ın typealias'ı eklendi. (Icfdc8)
- ImageAsset ve ilgili yöntemler, ImageBitmap olarak yeniden adlandırıldı. (Ia2d99)
- Temel anlam bilimi özellikleri kullanıcı arayüzüne taşındı (I6f05c)
fun RippleIndication()
desteği sonlandırılmış olup diğer API'lerle tutarlılık sağlamak amacıylarememberRippleIndication()
ile değiştirilmiştir. (Id8e2c)- BasicTextField, TextField ve OutlineTextField öğelerine bir 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
- Anlamsal ekleme işlemi Kapat (I2b706)
- DrawModifier API'leri androidx.compose.ui paketinden androidx.compose.ui.draw paketine taşındı. Kullanımdan kaldırılan API'den mevcut API'lere geçişe yardımcı olacak typealiases/yardımcı yöntemleri eklemek için DrawModifierUsage.kt dosyası oluşturuldu. (Id6044, b/173834241)
- Değiştirme. (I0bd29, b/173834241)
<T>
, SubcomposeLayout bildiriminden kaldırıldı. Artık bir tür belirtmeden kullanabilirsiniz. (Ib60c8)- Çizimler katmanına kolaylık sağlamak için Modifier.scale/rotate API'leri eklendi.
Modifier.drawOpacity
adlı dosyaModifier.alpha
olarak yeniden adlandırıldıModifier.drawShadow
adıModifier.shadow
olarak değiştirildi (I264ca, b/173208140)
- Box'ın hizalama parametresi, contentHizalama olarak yeniden adlandırıldı. (I2c957)
- offsetPx değiştiricileri, ofset olarak yeniden adlandırıldı. Artık Eyalet yerine lambda parametrelerini alıyorlar. (Ic3021, b/173594846)
- SweepGradientShader ve SweepGradientBrush API'leri kullanıma sunuldu. (Ia22c1)
- Oluşturulabilir işlevlerdeki Değiştirici parametreleri için hata analizi kontrolü eklendi. Bu hata analizi denetimi, Oluşturma yönergelerine tutarlılık için parametrenin adlandırma, döndürme türü, varsayılan değeri ve sırasını kontrol eder. (If493b)
- TextFieldValue API güncellendi
- TextFieldValue.composition salt okunur hale getirildi
- geçersiz seçim aralığı için kaldırılan istisna atıldı (I4a675, b/172239032)
- Yeni bir
Modifier.drawLayer()
aşırı yüklemesi eklendi. Katman parametrelerini durum değişikliği gerçekleştiğinde yeniden birleştirme ve geçişten kaçınmaya izin verecek şekilde tanımladığınız yeni GraphicstierScope'ta bir lambda bloğu kullanılır. DrawlayerModifier, mantığınıplaceable.placeWithLayer()
LayoutModifier yöntemine (I15e9f, b/173030831) taşımaya hazırdır. - Kullanımdan kaldırılan Ambiyanslar, son eki
Ambient
olarak adlandırdı ve diğer Ambiyans ve Compose API kurallarına uyarak bunların ön ekini Ambient içeren yeni özelliklerle değiştirdi. (I33440) - Değiştirici fabrikalarının
@Composable
olarak işaretlenmek yerine dahili olarakandroidx.compose.ui.composed {}
kullandığını kontrol etmek için hata kontrolü eklendi. (I3c4bc) - Semantik bağımsız değişkeni discoveryAllDescendants,mergeDescendants olarak yeniden adlandırıldı. (Ib6250)
- Testlerdeki zaman kontrolü (TestAnimationClock ve kullanımları) artık deneysel (I6ef86, b/171378521)
- Eski kullanıcı arayüzü testi modülünü ve taslaklarını (I3a7cb) kaldırın
- TextUnit.Inherit, TextUnit olarak yeniden adlandırıldı.Diğer birimlerle tutarlılık için belirtilmedi. (Ifce19)
- Hizalama arayüzü güncellendi ve işlevsel hale getirildi. (I46a07, b/172311734)
- id, LayoutIdParentData için layoutId olarak yeniden adlandırıldı. Measurable.id, Measurable.layoutId olarak yeniden adlandırıldı. (Iadbcb, b/172449643)
Sürüm 1.0.0-alpha07
11 Kasım 2020
androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
ve androidx.compose.material:material-icons-extended:1.0.0-alpha07
yayınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.
API Değişiklikleri
- Emphasis kullanımdan kaldırıldı ve AmbientContentAlpha ile değiştirildi. AmbientContentAlpha, AmbientContentColor'ın tercih edilen içerik rengini temsil etmesine benzer şekilde, hiyerarşinin bir parçası için tercih edilen içerik alfasını temsil eden daha basit bir soyutlamadır. Metin ve Simge artık varsayılan olarak AmbientContentAlpha'nın geçerli değerini kullanır. Ayrıca bileşenlerinizde de aynı etkiyi elde etmek için
color.copy(alpha = AmbientContentAlpha.current)
işlemini manuel olarak yapabilirsiniz. şunları kullanmak yerine AmbientContentAlpha ile doğrudan bir değer sağlayabilir ve eski EmphasisLevels'ın yerine ContentAlpha'daki yeni varsayılan düzeyleri kullanabilirsiniz. (Idf03e, b/159017896) - androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770) yerine androidx.compose.material.AmbientContentColor eklendi
- Temaya uygun üst düzey bir Metin bileşeni olarak androidx.compose.foundation.Text'in yerine androidx.compose.material.Text öğesini ekler. Temadan renk / metin stilini kullanmayan temel bir metin bileşeni için Temel Metin'i kullanın. (Ie6ae0)
- textFields'e maxLines eklendi (Ib2a5b)
- Metin Alanları'nı, KlavyeOptions'ı kabul edecek şekilde güncelleyin (Ida7f3)
- Yüzey, artık yükseklik bindirmelerini hesaplarken mutlak (toplam) yüksekliği kullandığından, başka bir Yüzey içine iç içe yerleştirilmiş bir Yüzey, bindirmeyi çizmek için birleştirilmiş yüksekliği kullanacaktır. (I7bd2b, b/171031040)
Hata Düzeltmeleri
captureToBitmap
,captureToImage
adlı kümeye taşındı. (I86385)- AmbientTextStyle,ProvideTextStyle ve AmbientContentColor temel desteği sonlandırıldı. Bunun yerine, Malzeme kitaplığındaki yeni sürümleri kullanın. Materyal dışı uygulamalarda, kendi bileşenlerinizde kullanabileceğiniz, kendi tasarım sisteminize özgü tema ortamları oluşturmanız gerekir. (I74acc, b/172067770)
- foundation.Text kullanımdan kaldırıldı ve Matter.Text ile değiştirildi. Bir temadaki değerleri kullanmayan temel ve yorumsuz bir metin API'si için androidx.compose.foundation.BasicText adresine bakın. (If64cb)
- KlavyeOptions'ı ImeOptions olarak yeniden adlandırma (I82f36)
- KlavyeType ve ImeAction, KlavyeOptions'a taşındı (I910ce)
- BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField politikasını kullanın. (I896eb)
- ExperimentalSubcomposeLayoutApi ek açıklaması kaldırıldı. SubcomposeLayout artık @OptIn (I708ad) eklenmeden kullanılabilir
- FirstBaseline ve LastBaseline, androidx.compose.ui.layout paketine (Ied2e7) taşındı
- Simge API, Rengi alacak şekilde güncellendi.Sağlanan öğeyi veya ressamı ColorFilter olmadan çizecek olası bir ton rengi olarak belirtilmedi. Önceden renklendirmeyi Renk ile yok saymayı deniyorlardı.Belirtilmemişse, şeffaf bir renkle tonlama yapılıyordu ve hiçbir şey hiç oluşturulmamış oluyordu. (I049e2, b/171624632)
- göreliPaddingFrom, paddingFrom olarak yeniden adlandırıldı. Düzen sınırlarından metin referans çizgilerine olan mesafeleri belirleme kolaylığı sağlamak için paddingFromBaseline değiştiricisi eklendi. (I0440a, b/170633813)
- LaunchedTask, SideEffect ve DisposableEffect API'leriyle tutarlılık sağlamak amacıyla LaunchedEffect olarak yeniden adlandırıldı. En iyi uygulamaları teşvik etmek için "Subject" parametresi içermeyen LaunchedEfektine izin verilmez. (Ifd3d4)
- measureResult, MeasurementScope dışına taşındı. (Ibf96d, b/171184002)
- Düzenleyle ilgili birçok simge androidx.compose.ui'den androidx.compose.layout.ui konumuna 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 kayıtları içerir.
API Değişiklikleri
- androidx.compose.foundation.Icon, androidx.compose.material.Icon'a taşındı. Malzeme kitaplığını kullanmak istemiyorsanız bir Ressam ile Resim bileşenini / Modifier.paint() öğesini de kullanabilirsiniz. (I9f622)
- Farklı durumlarda FAB'ler tarafından kullanılan yüksekliği temsil etmek için FloatingActionButtonElevation ekler. Varsayılan uygulama için FloatingActionButtonConstants.defaultElevation() öğesine bakın (I2d4f5)
- Bir Switch tarafından farklı durumlarda kullanılan renkleri temsil etmek üzere SwitchColors arayüzü ekler. Bu renkleri özelleştirmek için SwitchConstants.defaultColors bölümüne bakın. (I93805)
- Farklı durumlardaki düğmelerin kullandığı yüksekliği ve renkleri göstermek için ButtonElevation ve ButtonColors arayüzleri 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ü ekler. Farklı durumlarda kullanılan renkleri özelleştirmek için RadioButtonConstants.defaultColors() öğesine bakın. (I74130)
- Farklı durumlardaki bir onay kutusunun kullandığı renkleri temsil etmek için CheckboxColors arayüzü ekler. Farklı durumlarda kullanılan renkleri özelleştirmek için CheckboxConstants.defaultColors() öğesine bakın. (I7dbdb)
Hata Düzeltmeleri
- Malzeme bileşenleri artık yüksekliği zIndex olarak ayarlamamaktadır. Bu, aynı üst öğede daha büyük gölgeye sahip çocuğun, otomatik olarak küçük olanın üzerine çizilmeyeceği anlamına gelir. Bu gibi bir davranışa ihtiyacınız varsa lütfen Modifier.zIndex()'i gereken yerlerde manuel olarak ayarlayın (I70417, b/170623932)
- Oluşturulabilir API'nin, verileri kompozisyonlar genelinde korumak için dahili olarak "hatırlatma" özelliğinden yararlandığını daha iyi belirtmek amacıyla VectorPainter'ı keepVectorPainter yerine kaldırın. (Ifda43)
- ComposeTestRule'da geçişleri etkinleştirin; ComposeTestRule'da yanıp sönen imleci etkinleştirme seçeneğini kaldırın. (If0de3)
- CoreTextField'e tek satırlı klavye seçeneği eklendi (I72e6d)
- Radius API, Compose'da nasıl kullanıldığını daha iyi ifade etmek için CornerRadius olarak yeniden adlandırıldı. Dokümanlar, negatif köşe yarıçaplarının sıfıra sabitlendiğini gösterecek şekilde güncellendi. (I130c7, b/168762961)
- DrawScope ve
ContentDrawScope soyut sınıflar yerine arayüz olarak yeniden düzenlendi
- DrawScope'un CanvasDrawScope uygulaması oluşturuldu
- Bunun yerine CanvasScope'u kullanmak için DrawScope uygulamaları yeniden düzenlendi
- DrawScope için bağımlılıkları sarmalamak amacıyla DrawContext oluşturuldu
- DrawScope'taki (I56f5e) desteği sonlandırılmış yöntemler kaldırıldı
- Box, satır içi bir işleve dönüştürüldü. (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 kayıtları içerir.
API Değişiklikleri
- Pop-up'lar ve iletişim kutuları artık üst pencereden FLAG_SECURE değerini devralmaktadır. Bunu açıkça yapılandırma seçeneği de eklendi (I64966, b/143778148, b/143778149)
- Modifier.sdeleteable artık varsayılan olarak 56.dp eşik değerine sahip (Iab825, b/168610267)
- @Kararlı olarak işaretlenmiş tüm yapı iskeleleri. ScaffoldState'tekidrawerActionsEnabled Scaffold'a taşındı. (I36645, b/168297016)
- Scaffold lambda parametrelerinden nullable türü kaldırır, belirli bir parametre için hiçbir içeriği temsil etmemek üzere emptyContent() kullanabilirsiniz. (I2b318, b/157633857, b/158551084)
contentColor() ve currentTextStyle() API'lerini kullanımdan kaldırıp bunları sırasıyla AmbientContentColor ve AmbientTextStyle ambients ile değiştirir. Geçerli değere, ambiyans özelliğinde (diğer ambiyanslarda olduğu gibi)
.current
kullanarak erişebilirsiniz. Bu değişiklik, tutarlılık sağlamak ve aynı şeyi birden fazla şekilde gerçekleştirmenin önüne geçmek için yapılmıştır. Buna ek olarak, bazı ortam özelliklerini aşağıdaki şekilde daha iyi açıklamak için yeniden adlandırır:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> Ambiyans Göstergesi
- Vurgu Ambiyansı -> AmbiyansEmphasisLevels
- Dalga TemasıAmbient -> Ambiyans Dalgası Teması (I37b6d)
AmbientElevationOverlay'i ekleyerek koyu temadaki yüzeylere uygulanan varsayılan yükseklik yer paylaşımının özelleştirilmesine / devre dışı bırakılmasına olanak tanır. (I5b74d)
Hata Düzeltmeleri
- Satır içi sınıflarda koruyucu değerlerin standartlaştırılmasının bir parçası olarak, Color.Unset to Color olarak yeniden adlandırıldı.Diğer satır içi sınıflarla tutarlılık için belirtilmedi (I97611, b/169797763)
- TextOverflow.None kullanıma sunuldu. Taşma Yok olduğunda, Metin artık taşmayı işlemez ve gerçek boyutunu LayoutNode'a bildirir. (I175c9, b/158830170)
- LaunchInComposition, Compose API yönergelerine uygun olacak şekilde LaunchedTask olarak yeniden adlandırıldı (I99a8e)
- OnPositionedModifier, OnGloballyPositionedModifier ve onPositioned() olarak onGloballyPositioned() olarak yeniden adlandırılır. (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 kayıtları içerir.
API Değişiklikleri
- Durumu yükseltmeye ve durumu okumaya / kontrol etmeye olanak tanımak için, durum bilgili Malzeme bileşenlerinde EngagementState parametrelerini ortaya çıkarır. (Iaca5f, b/168025711, b/167164434)
- Her bir durumda kullanılan renklerin tamamen özelleştirilmesini ve istendiğinde renklerin durumlar arasında animasyonlarının değiştirilmesini sağlamak için RadioButton ve TriStateCheckbox'taki
*color
parametrelerini değiştirir. Daha fazla bilgi için CheckboxConstants ve RadioButtonConstants'taki yeni publishDefault* renk işlevlerine bakın. (I1c532) - ThankBackdropState, purchaseBackdropScaffoldState olarak yeniden adlandırıldı ve animasyon saati için ek bir parametre eklendi. "backdropScaffoldState of BackdropScaffold" parametresi, sadece scaffoldState olarak yeniden adlandırıldı. BackdropConstants, BackdropScaffoldConstants olarak yeniden adlandırıldı. (Ib644d)
- Deneysel BottomSheetScaffold bileşeni eklendi. (Ie02f0, b/148996320)
- Deneysel ModalBottomSheetLayout bileşeni eklendi. (Ic209e, b/148996320)
- ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation adını defaultElevation olarak değiştirir ve artık Animasyon Değeri yerine bir Dp değeri döndürür. (I5f3ed)
Hata Düzeltmeleri
- Birçok Grafik API güncellendi
- DrawScope ve DrawTransform'da x/y koordinatları için ayrı kayan nokta parametreleri yerine pivot koordinatını temsil eden tek bir Offset parametresi kullanmak için ölçek ve rotasyon dönüşüm API'leri güncellendi
- Rect.expandToInclude ve Rect.join yöntemleri kaldırıldı
- Yarıçap dokümanları güncellendikten sonra eliptik bisiklete ek olarak oval
- Satır içi Yarıçap sınıfı için herkese açık kurucunun doğrudan çağrılmaması, bunun yerine Yarıçap nesnelerinin işlev kurucuları aracılığıyla örneklendirilmesi gerekir
- topRight,bottomRight, bottomCenter vb. sorgulamak için RoundRect API'leri kaldırıldı.
- Rect.translate yerine Rect.shift desteği sonlandı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.maxBoyut olarak yeniden adlandırıldı.
- RoundRect.shortestSide, RoundRect.minDIMENSION olarak yeniden adlandırıldı.
- RoundRect.center, işlev yerine özellik olarak değiştirildi
- RoundRect oluşturucu, x/y yarıçap değerleri için tek tek parametreler yerine Yarıçap özelliklerini kullanmak üzere güncellendi
- Kaynağı 0,0 olan bir Dikdörtgen olduğunu varsayan Boyut API'leri kaldırıldı
- Yarıçapa yıkıcı bir API eklendi
- Çeşitli RoundRect uzantı işlevleri ise mülk olarak taşındı.
- (I8f5c7, b/168762961)
- foundation.Box kullanımdan kaldırıldı. Lütfen bunun yerine foundation.layout.Box kullanın. (Ie5950, b/167680279)
- Yığın, Box olarak yeniden adlandırıldı. Daha önce mevcut olan Box desteği sonlandırılacak ve ardından generate.foundation.layout'ta yeni Box kullanıma sunulacak. Yeni Box'ın davranışı, birden fazla alt öğesi olduğunda alt öğeleri üst üste yığmaktır. Bu, bir Sütuna benzer şekilde davranan önceki Box'tan farklıdır. (I94893, b/167680279)
- Kutu süsleme parametreleri kullanımdan kaldırıldı. Kutunuzda süslemeler/dolgular olmasını istiyorsanız bunun yerine Değiştiriciler'i (Modifier.background, Modifier.Sınır, Modifier.padding) (Ibae92, b/167680279) kullanın.
- Birçok Grafik API 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 Yola işaret edecek şekilde güncellendi
- pixelPath'de doğru parametreyle ilgili dokümanlardaki boşluk düzeltildi
- DrawScope.drawCanvas yeniden adlandırıldı ve boyut parametresi kaldırıldı
- inset yöntemindeki dx/dy parametreleri yatay ve dikey olarak yeniden adlandırıldı
- 4 sınırın hepsine aynı inset değerini sağlayan ek aşırı yük eklendi.
- inset yönteminde, inset'in 4 tarafa da uygulanacağını belirten belgeler kaldırıldı
- Rect sınıfıyla ilgili dokümanlar güncellendi
- Rect parametrelerindeki yorumlar, kdoc stiliyle eşleşecek şekilde güncellendi
- Rect.join ve Rect.expandToInclude kaldırıldı
- Rect.translate(offset) için aşırı yük oluşturuldu ve kullanımdan kaldırılan Rect.shift
- (If086a, b/167737376)
- Düzen kapsamlarının içeriğinin statik olarak içe aktarılmasını engelledik (ör. RowScope'taki alignWithSiblings). 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ı. Sürüm 1.0.0-alpha03 bu kayıtları içerir.
API Değişiklikleri
BottomNavigationItem
ürünününonSelect
parametresinionClick
olarak yeniden adlandırır (I91925, b/161809324)- Bottom NavigationItem ve Tab'a EngagementState parametresi ekleyerek bu durumu yükseltmeye ve bileşenin farklı durumlarda nasıl görüneceğini ayarlamaya 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 kullanmanız gerekir. ContentColor / backgroundColor ayarlarını zaten açık bir şekilde yapıyorsanız bu varsayılan işlevleri kullanmanız ve hem etkin/devre dışı durumlarda rengin üzerine yazılmaması için parametrelerin bazılarını veya tümünü özelleştirmeniz gerekir. (If9b52) - Metin alanının arka plan rengi, artık dolaylı olarak alfa şeffaflığı uygulamıyor. Bunun yerine, backgroundColor parametresiyle sağlanan herhangi bir renk 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
uygulamasına yeni birdefaultResistanceConfig
yöntemi eklendi. (I54238)- Button ve FloatingActionButton için animasyonlu durum bilgili yükseltme desteği ekler. Yükselti artık varsayılan ve basılmış durumlar arasında animasyonlu olarak gösterilir. Eyaletler arasındaki yüksekliği özelleştirmek için her durumda düz bir Dp değeri ayarlamak yerine
ButtonConstants.defaultAnimatedElevation()
veFloatingActionButtonConstants.defaultAnimatedElevation()
değerlerini kullanın. (I37925) - Etiket, TextField ve OutlineTextField içinde isteğe bağlı bir parametre haline geldi (I267f6, b/162234081)
Hata Düzeltmeleri
onNode
veyawaitForIdle
gibi küresel test işlevleri kullanımdan kaldırıldı. LütfenComposeTestRule'da (I7f45a) tanımlanan yeni eşdeğerlerine geçiş yapın.- Bu API'yi kullanan DpConstraints ve API'lerin desteği sonlandırıldı. (I90cdb, b/167389835)
- Genişlik Genişliği ve maksimum Genişliği parametreleri, min. ve maks. genişlikleri olarak yeniden adlandırıldı. Aynı şekilde, PreferredwidthIn, yükseklikIn, tercih edilen Yükseklik için de aynı şekilde yeniden adlandırıldı. (I0e5e1, b/167389544)
- İleri/geri kaydırma anlamlarını kaldır. AccessibilityRangeInfo'ya adımlar eklendi. (Ia47b0)
- Yer çekimi kullanımları, düzen API'lerini hizalamak veya uyumlu hale getirmek için tutarlı bir şekilde yeniden adlandırıldı. (I2421a, b/164077038)
- Mevcut genel yöntemler kullanımdan kaldırılacağı için onNode ve diğer genel yöntemler ComposeTestRule'a eklendi. (Ieae36)
createAndroidComposeRule
veAndroidInputDispatcher
,androidx.ui.test.android
konumundanandroidx.ui.test
konumuna 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ı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.
API Değişiklikleri
- Deneysel bir BackdropScaffold bileşeni eklendi. (Iad908)
Hata Düzeltmeleri
- Matris4, Matris ile değiştirildi. Vektörmath paketinin diğer tüm kısımları 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ı. Sürüm 1.0.0-alpha01 bu kayıtları içerir.
Bilinen Sorun
= TextField
bir malzemedeki ilk karakter geri tuşu (b/165956313) kullanılarak kaldırılamaz
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ı. Sürüm 0.1.0-dev17 bu kayıtları içerir.
API Değişiklikleri
- Daha önce desteği sonlandırılan RadioGroup ve RadioGroupItems kaldırıldı. Bunun yerine Row ve RadioBotton'u kullanın (I381b7, b/163806637)
- TextField'den onFocusChanged geri çağırmaları kaldırıldı. Bunun yerine Modifier.focusObserver'ı kullanın. (I51089, b/161297615)
- Modifier.drawBorder kullanımdan kaldırıldı. Bunun yerine Modifier.border'ı kullanın. Kenarlık veri sınıfı, BorderStroke ile değiştirildi (I4257d, b/158160576)
- ScrollableState'teki bazı özellikler yeniden adlandırıldı: slideTarget -> targetValue, slideprogress -> progress, ScrollDirection ->Direction. ScrollableStates oluşturmak için bir keepSClearableState işlevi eklendi. (I2fc9c, b/163129614, b/163132293)
- Konumlandırma ve düzgün sıralama ile Snackbar desteği eklendi. Bu öğeye
SnackbarHostState.showSnackbar
askıya alma işlevi aracılığıyla erişebilirsiniz. Ayrıca:- SnackbarHost bileşenleri eklendi. Eyalete göre Snackbar'lar barındırır ve atıştırmalık çubukları arasındaki geçişten sorumludur.
- SnackbarHostState, atıştırmalık çubukları ve atıştırmalık çubuğu ana makineleri üzerinde kontrol sağlamak ve ScaffoldState'ten ayrılmasını sağlamak için eklenmiştir. Bu duruma
scaffoldState.snackbarHostState
üzerinden de erişebilirsiniz. - Snackbar aşırı yüklemesi, SnackbarHostState ile Snackbar'ların kendisi arasındaki ortak arayüzü desteklemek için eklendi. (I79aaa)
- Simgesi
- Dize Tabanlı API'yi içeren ListItem sürümü kaldırıldı. Bunun yerine slot sürümü kullanın. (Ib8f57, b/161804681)
- Kullanımdan kaldırılan FilledTextField bileşeni kaldırıldı. Doldurulmuş metin alanının Materyal Tasarım uygulamasını almak için lütfen bunun yerine TextField'i kullanın. (I5e889)
- AlertDialog artık düğmeler için FlowRow'u kullanıyor (I00ec1, b/161809319, b/143682374)
- Sınırların üzerine kaydırırken direnç miktarını değiştirmek için Modifier.skayable'a parametreler eklendi. [min/max]Değer parametreleri kaldırıldı. (I93d98)
- Doğrusal İlerleme Göstergesi'ne backgroundColor parametresi eklendi ve CircularprogressIndicator'dan dahili dolgu kaldırıldı. Değerler arasındaki ilerlemeyi canlandırırken varsayılan AnimationSpec (If38b5, b/161809914, b/161804677) olarak kullanılabilen yeni progressIndicatorConstants.DefaultprogressAnimationSpec eklendi
- İsteğe bağlı velocityThreshold parametresi Modifier.skayable'a eklendi. (I698ba)
- lowBarSize, fabSize ve diğer özellikler eklendi ve artık ScaffoldState'te kullanılamıyor. Bunun yerine, boyutunu öğrenmek istediğiniz bileşende Modifier.onPosition özelliğini kullanın. ContentColor ve Değiştirici pamateres 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ıp yeniden sıralar (Ia2d12, b/161807532)
- TabRow, TabRow ve ScrollableTabRow olarak bölerek isScrollable seçeneğini TabRow'dan kaldırın. Ayrıca, ScrollableTabRow içinde EdgePadding'i de ortaya çıkarır. Böylece, sekmelerden önceki / sonraki boş alanın kontrol edilmesi sağlanır. (I583e8, b/161809544)
TabRow
nesnesi kaldırıldı ve yerini TabConstants aldı. TabRow.TabPosition üst düzeye (SekmePosition) taşındı ve iconContainerindicator
olarak yeniden adlandırıldı. Güncellenen API'nin ve varsayılanların nasıl kullanılacağı hakkında ayrıntılı bilgi için örneklere ve belgelere bakın. (I54d45, b/161809544)- Değiştirme. Bir lambda (DismissDirection) -> ThresholdConfig öğesi olan SClearToDismiss'e bir closeThresholds parametresi eklendi. (Ie1080)
- Kaydırma çubuğu, ayrıntılı özelleştirme için daha fazla renk içerir (I73e64, b/161810475)
- Kartın renk parametresi, backgroundColor olarak yeniden adlandırıldı (I01fc1, b/161809546)
- Snackbar artık özelleştirilebilir arka plan ve içerik renkleri sunuyor (I238f2, b/161804381)
- Çekmecelere düzenleyici, backgroundColor, contentColor ve scrimColor özelleştirme parametreleri eklendi (I23655, b/161804378)
state { ... }
derlemesi artık kullanımdan kaldırıldı. Bunun yerine, açıklık sağlamak amacıylaremember { mutableStateOf(...) }
öğesine yapılan açık çağrılar devre dışı bırakıldı. Bu, genel API yüzeyini ve durum yönetimiyle ilgili kavramların sayısını azaltır ve sınıf özelliği yetkilendirmesi içinby mutableStateOf()
kalıbıyla eşleşir. (Ia5727)- Düğmenin dolgu parametresi contentPadding olarak yeniden adlandırıldı (Id252e, b/161809394)
- Deneysel bir malzeme bileşeni ScrollToDismiss'i ekleyin. (I129e5)
Hata Düzeltmeleri
onChildPositioned
veOnChildPositionedModifier
kaldırıldı. Geliştiriciler bunun yerine alt düzendeonPositioned
veOnPositionedModifier
kullanmalıdır. (I4522e, b/162109766)- SemanticsMülkAnahtarı'na birleştirme Politikası lambda'sı eklendi. Bu, birleştirmeAllDescendants semantik birleştirmesi için özel bir politika tanımlamak amacıyla kullanılabilir. Varsayılan politika, zaten mevcutsa üst değeri, aksi takdirde alt değeri kullanmaktır. (Iaf6c4, b/161979921)
- IntSize artık bir satır içi sınıf (I2bf42)
PlacementScope.placeAbsolute()
,PlacementScope.place()
olarak, öncekiPlacementScope.place()
isePlacementScope.placeRelative()
olarak yeniden adlandırıldı. Sonuç olarak,PlacementScope.place()
yöntemi artık sağdan sola bağlamlarda konumu otomatik olarak yansıtmaz. İsterseniz bunun yerinePlacementScope.placeRelative()
politikasını kullanın. (I873ac, b/162916675)- Kullanımdan kaldırılan PxBounds'un yöntemi Rect oldu. PxBound'ların tüm kullanımları dikdörtgen ile güncellendi ve taşıma işlemine yardımcı olmak için uygun kullanımdan kaldırma/değiştirme notlarıyla eklendi. (I37038, b/162627058)
- RRect, oluşturma adlandırma kalıplarına daha iyi uyması için RoundRect olarak yeniden adlandırıldı RRect ve kullanımdan kaldırılan RRect işlevi oluşturuculara benzer işlev oluşturucular oluşturuldu (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ı. Sürüm 0.1.0-dev16 bu kayıtları içerir.
API Değişiklikleri
- Renkler artık bir arayüz yerine son sınıf oldu. Özelliği genişletmek ve özel bir uygulama sağlamak yerine özel tema nesneniz için yeni bir ortam oluşturmalı ve tema nesnesine, MaterialTheme'nin dahili çalışma şekline benzer şekilde bileşenlerinizdeki yeni ortam üzerinden erişmelisiniz. (Ibae84)
- Materyal renk sistemiyle daha uyumlu olması ve ColorPalette'in 'genel' bir tema nesnesi olmasıyla ilgili karmaşayı ortadan kaldırmak için, ColorPalette'in adı Renkler olarak değiştirildi. Buna ek olarak, lightColorPalette ve darkColorPalette, sırasıyla açıkRenk ve koyuRenkler olarak yeniden adlandırılır. (I9e976, b/161812111)
- BottomNavigasyonItem'in
text
parametresinilabel
,onSelected
,onSelect
,activeColor
,selectedContentColor
,inactiveColor
,unselectedContentColor
olarak yeniden adlandırıp parametre sıralamasını kurallara uyacak şekilde günceller. (Icb605, b/161809324) Modifier.stateDraggable
baştan aşağı yenilendi ve Modifier.swipeable olarak yeniden adlandırıldı. Yeni bir ScrollableState sınıfı kullanıma sunuldu ve DrawerState ile BottomDrawerState sınıfını devralacak şekilde yeniden düzenleme yapıldı. [Modal/Bottom]DrawerLayout artık onStateChange parametresi almaz. (I72332, b/148023068)- foundation.shape.corner paketi, foundation.share olarak düzleştirildi (I46491, b/161887429)
- ExperimentalMaterialApi ek açıklaması eklendi. Deneysel olarak işaretlenmiş DalgaTema (Ic5fa0, b/161784800)
- Material FilledTextField, TextField olarak, temel TextField'in adı ise BaseTextField olarak değiştirildi
Hata Düzeltmeleri
- OnChildPositioned kullanımdan kaldırıldı. Bunun yerine alt öğede OnPositioned özelliğini kullanın. (I87f95, b/162109766)
- Genel API düzeltmelerini ele alın (I077bc)
- Kullanılmayan OffsetBase arayüzünü kaldırın
- Offset ve Intoffset sınıflarını, tutarlı bir API yüzeyine sahip olacak şekilde
- Offset API ile tutarlı olması için Intoffset.Origin'i Intoffset.Zero olarak yeniden adlandırın
- Tüketicileri kendi Canvas örneklerini oluşturmalarında desteklemek için yerelCanvas yöntemi Canvas arayüzünün dışına taşındı.
- DrawScope'u lateinit yerine null olmayan bir parametre olacak şekilde yeniden düzenlemek ve alanın boş bırakılmamasını sağlamak için BlankCanvas sınıfı oluşturuldu
- ClipOp enum'ları, Pascal Case olarak yeniden adlandırıldı
- Filter Quality enum'ları Pascal Case olarak yeniden adlandırıldı
- Stroke Join enum'ları, Pascal Olgusu olacak şekilde 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 olacak şekilde yeniden adlandırıldı
- StrokeCap enum'ları, Pascal Kılıfı olarak yeniden adlandırıldı
- DrawCache uygulaması, artık lateinit parametrelerini kullanmayacak şekilde güncellendi
- DrawScope artık fillPaint ve drawPaint dahili parametreleri için geç yetkiyi kullanmayacak şekilde güncellendi
- Daha az ek yük için Box kullanımını önlemek üzere Resim oluşturma özelliği güncellendi
- Outline sınıfı, @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- PathNode, her yol talimatı için @Immutable ek açıklamalarına sahip olacak şekilde güncellendi
- Vektör alt bestesi, oluşturma işlevi bunları zaten işlerken eşitlik için gereksiz koşullu denetimleri kaldıracak şekilde güncellendi.
- Kullanımdan kaldırılan Rect tamamlayıcı oluşturucu yöntemlerinin yerine işlev kurucular
- @Immutable ve @Stable API'leri ile güncellenmiş Brush sınıfları ve işlev oluşturucular
- VertexMode sıralaması PascalCase olarak güncellendi
- Çizim kapsamı değiştiyse boyamadaki çizgi parametrelerinin üzerine koşullu olarak yazmak için DrawScope selectPaint yöntemi güncellendi
- Boyut, yıkıcı API'yi eklemek için güncellendi, UnspecifiedSize olarak yeniden adlandır ve Kullanılmayan yöntemler kaldırıldı
- İletişim kutusunu kullanıcı arayüzüne taşı (I47fa6)
SemanticsNodeInteraction.performPartialGesture
kaldırıldı. Bunun yerineSemanticsNodeInteraction.performGesture
politikasını kullanın. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
adıSemanticsNodeInteraction.getUnclippedBoundsInRoot()
olarak değiştirildi (Icafdf, b/161336532)- Sağdan sola 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.deternimateİlerleme, Modifier.progressSemantics olarak yeniden adlandırıldı (I9c0b4)
- Material.io/icons'a eklenen en son simgelerle zenginleştirilmiş materyal-simgelerini günceller (I4b1d3)
- MigrationDefinition için T türünün açıkça belirtilmesini zorunlu kılın. (I1aded)
- Modifier.plus kullanımdan kaldırıldı. Bunun yerine Modifier.then adını kullanın. "Sonra"da sıralama sinyali daha güçlüyken
Modifier.padding().background() + anotherModifier
yazmanız da yasaklanır, bu da zinciri bozar ve okunması daha zordur (Iedd58, b/161529964) - AndroidComposeTestRule yeniden adlandırılarak AndroidComposeRule oluşturuldu. (I70aaf)
- isFocused() ve isNotFocused() SemanticsMatcher öğelerini ekleyin. (I0b760)
- Testlerden kullanılmaması gereken
BaseGestureScope.globalBounds
kaldırıldı. Bunun yerine, etkileşimde bulunduğunuz düğümün yerel koordinatlarını kullanın. (Ie9b08) - Kesilen ekranlarda pop-up konumu düzeltildi. (Idd7dd)
- Modifier.drawArka Plan, 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ı. Sürüm 0.1.0-dev15 bu kayıtları içerir.
Bağımlılıkları Güncelleme
- Compose'un
0.1.0-dev15
sürümünü kullanmak için bağımlılıklarınızı yukarıda Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre güncellemeniz gerekir.
API Değişiklikleri
@Model
ek açıklaması kullanımdan kaldırılmıştır. Alternatif olarak state ve mutableStateOf ifadesini kullanın. Bu kullanımdan kaldırma kararı, ayrıntılı bir tartışma sonrasında alınmıştır.Gerekçe
Gerekçe aşağıdakileri kapsar, ancak bunlarla sınırlı değildir:
- API yüzey alanını ve öğretmemiz gereken kavramları azaltır
- Diğer benzer araç setleriyle daha uyumlu (Swift UI, React, Flutter)
- Karar geri alınabilir.
@Model
adlı sağlayıcıyı daha sonra dilediğiniz zaman geri getirebiliriz. @Model
ürününün köşeye kullanımını ve yanıtlanması zor soruları ele almamız gereken işlemler olarak yapılandırmayla ilgili sorunları ortadan kaldırır@Model
veri sınıfı, eşittir, karma kodu vb.- Bazı mülklerim nasıl "gözlemleniyor", bazıları ise görmüyorum?
- Gözlemde kullanılacak yapısal ve referanssal eşitliği nasıl belirtirim?
- Sistemdeki “sihir”i azaltır. Bir kişinin sistemin olduğundan daha akıllı olduğunu varsayma (ör. bir listeyi nasıl fark edeceğini bilmesi) olasılığını azaltır
- Gözlem ayrıntı düzeyini daha sezgisel hale getirir.
- Sınıftaki değişken -> özelliğinden yeniden düzenlemeye olanak sağlar
- Potansiyel olarak devlete özgü el ile yapılmış optimizasyonlar yapma olanakları sağlar
- Ekosistemin geri kalanıyla daha uyumlu olur ve sabit durumu bize ya da "değişken durumu benimsemeye" yönelik belirsizliği azaltır
Taşıma Notları
@Model
ürününün neredeyse tüm mevcut kullanımları, iki yöntemden biriyle oldukça küçük değişiklikler içerir. Aşağıdaki örnekte, yalnızca örnek olması açısından iki özellik içeren bir@Model
sınıfı vardır ve bu sınıf composable bir şekilde kullanılmıştır.@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>
kullanarak kopyalarını oluşturun.Kotlin'in veri sınıfları sayesinde bu yaklaşım daha kolay hâle getirilmiştir. Esas olarak, önceki tüm
var
özelliklerini bir veri sınıfınınval
özelliklerinde oluşturun, ardındanremember
yerinestate
kullanın ve durum değerini,copy(...)
veri sınıfı kolaylık yöntemini kullanarak orijinalin klonlanmış kopyalarına atayın.Bu yaklaşımın yalnızca sınıfta yapılan mutasyonların yalnızca
State
örneğinin oluşturulmasıyla aynı kapsamda yapılması durumunda işe yaradığını unutmamak önemlidir. Sınıf, kullanım kapsamı dışında kendi kendine değişiyorsa ve bunun gözlemine güveniyorsanız bir sonraki yaklaşım kullanmak isteyeceğiniz yaklaşımdır.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
2. Alternatif: mutableStateOf ve mülk yetki verilmiş kullanıcılarını kullanın
Bu yaklaşım, Kotlin’in mülk delegeleri ve kompozisyon dışında MutableState örnekleri oluşturmanıza olanak tanıyan
mutableStateOf
API ile daha kolay hâle getirildi. Aslında, orijinal sınıfın tümvar
özelliklerinivar
mülkleriyle değiştirin. Bunların yerine, özellik temsilcisi olarakmutableStateOf
koyun. Bu, sınıfın kullanımının hiçbir şekilde değişmeyecek ve yalnızca dahili olarak uygulanması gibi bir avantaja sahiptir. Ancak davranış, orijinal örnekle tamamen aynı değildir. Çünkü her özellik artık ayrı ayrı gözlemlenmektedir/abone edilmiştir. Bu nedenle, bu yeniden düzenleme işleminden sonra göreceğiniz yeniden düzenlemeler daha dar olabilir (iyi bir şeydir).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/93}b/143}
Metin alanlarındaki onFocusChange geri çağırması, onFocusChanged (Ida4a1) olarak yeniden adlandırıldı
Sabitler arasındaki eşikleri belirtmek için stateDraggable öğesine eşikler parametresi eklendi. Bu değer, alt çekmecede 56 dp eşiği ayarlamak için kullanıldı. Ayrıca BottomDrawerLayout artık ayrı bir BottomDrawerState enum. (I533fa)
Daha önce kullanımdan kaldırılan Modifier.ripple'ı kaldırır. Tıklanabilir özellik artık varsayılan gösterge olarak dalgaları kullanmaktadır (uygulamanızda bir MaterialTheme {} ayarladıysanız). Böylece, çoğu durumda tıklanabilir özelliğini kullanabilir ve ücretsiz dalga gösteriminden yararlanabilirsiniz. Dalga için renk / boyut / sınırlı parametreyi özelleştirmeniz gerekiyorsa manuel olarak bir Dalga Göstergesi oluşturabilir ve bunu gösterge parametresi olarak tıklanabilir moda geçirebilirsiniz. (I663b2, b/155375067)
FilledTextField composable öğesinin kullanımdan kaldırılan geçersiz kılması kaldırıldı (I7f8f8)
Düğme nesnesini (Düğme işlevi tarafından kullanılan varsayılanları içeren) ButtonConstants olarak yeniden adlandırın (I7c5f7, b/159687878)
Düğmenin içerik alanı artık Satır görevi görüyor (metin içeren bir simgeniz olması gerektiğinde kullanışlıdır. Nasıl yazılacağı düğmesiyle ilgili örneklere bakın) (I0ff10, b/158677863)
RadioGroup ve RadioGroupItem kullanımdan kaldırıldı. Tasarımınıza göre uygun radyo düğmesi seçimleri yapmak için Modifier.selectable, Satır ve Sütun ile Box'ı kullanın (I7f5cf, b/149528535)
Dış çizgili Malzeme Alanı Eklendi (I1a518)
androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Bu türü kullanan TextField,FilledTextField ve CoreTextField besteleri de kullanımdan kaldırılmıştır. Lütfen bunun yerine androidx.ui.input.TextFieldValue öğesini kullanın (I4066d, b/155211005)
TabRow.TabPosition, Dp'de konum içermiyor, IntPx'te değil (I34a07, b/158577776)
IntPx kullanımı, IntPxPosition (IntPxPosition) ile Intoffset olarak değiştirildi. IntPxSize, IntSize ile değiştirildi. (Ib7b44)
Boyutlandırma bilgilerini temsil eden sınıfların sayısını birleştirmek için PxSize yerine Beden sınıfının kullanımını standart hâle getirin. Bu, kayan öğe olarak gösterilen genişlik ve yüksekliği temsil etmek için, paketleme için uzun 2 kayan değer değerinden yararlanmak amacıyla satır içi sınıfın avantajlarını sağlar. (Ic0191)
Modifier.ripple'ı kullanımdan kaldırır. Tıklanabilir özellik artık varsayılan gösterge olarak dalgaları kullanmaktadır (uygulamanızda bir MaterialTheme {} ayarladıysanız). Böylece, çoğu durumda tıklanabilir özelliğini kullanabilir ve ücretsiz dalga gösteriminden yararlanabilirsiniz. Dalga için renk / boyut / sınırlı parametreyi özelleştirmeniz gerekiyorsa manuel olarak bir Dalga Göstergesi oluşturabilir ve bunu gösterge parametresi olarak tıklanabilir moda geçirebilirsiniz. (I101cd, b/155375067)
Scaffold API üzerinde geliştirmeler yapıldı: Adları birkaç parametreyle değiştirildi, daha iyi özelleştirme için yeni parametreler eklendi. Fab, ÜstBar ve BottomBar'ın sorgu boyutlarına getter eklendi (I0e7ce)
Bir Materyal Tasarım menü uygulaması olan ui-material'a DropdownMenü bileşeni eklendi. (I9bb3d)
SoftwareKlavyeController uygulamasını kullanarak yazılım klavyesini manuel olarak göstermeye/gizlemeye izin ver (Ifb9d6, b/155427736)
Modifier.indication, temel paketine eklendi. Özel etkileşim öğelerinizde basma/sürükleme/diğer göstergelerini göstermek için bu özelliği kullanın (I8425f, b/155287131)
Birleştirilmiş CanvasScope uygulamaları artık sadece DrawScope ve ContentDrawScope olarak CanvasScope'u DrawScope olarak adlandırıyoruz. Yoğunluk arayüzünü uygulamak ve LayoutDirection'ı eklemek ve LayoutDirection'ı eklemek için DrawScope güncellendi ContentDrawScope'ta DrawScope alt sınıfını sağladı Painter ve PainterModifier artık RTL özelliğini tutmayacak şekilde güncellendi (DrawScope bunu manuel olarak sağlamadan zaten sağlıyor) (I1798e)
Emphasis.sensitive() adını Emphasis.applyEmphasis() (Iceebe) olarak yeniden adlandırır
Devre dışı bırakılan düğmeler artık görsel olarak Materyal Tasarım spesifikasyonuna uyuyor (I47dcb, b/155076924)
FilledTextField, ime eylemi, görsel dönüştürme ve klavye türü desteği alır (I1f9cf, b/155075201)
Çizgi boyutunu özelleştirmek için CircularprogressIndicator'a motionWIDTH parametresini ekler. Doğrusal İlerleme Göstergesi'nin çizgi boyutunu (yükseklik) değiştirmek için Modifier.PreferredHeight() veya başka bir boyut değiştiriciyi kullanabilirsiniz. (Icea16, b/154919081)
Çizgi boyutunu özelleştirmek için CircularprogressIndicator'a motionWIDTH parametresini ekler. Doğrusal İlerleme Göstergesi'nin çizgi boyutunu (yükseklik) değiştirmek için Modifier.PreferredHeight() veya başka bir boyut değiştiriciyi kullanabilirsiniz. (Icea16, b/154919081)
FilledTextField alanında son ve baştaki simgeler ve hata durumunun işlenmesi (Ic12e0) için slot API'si eklendi
FAB'ların ve Genişletilmiş FAB'ların varsayılan rengi MaterialTheme.colors.secondary olarak değiştirildi. (I3b9b9, b/154118816)
API'deki tüm null özellikli Renk kullanımları, null yapılamayan renkle değiştirildi ve null yerine Color.Unset (Iabaa7) kullanılıyor
EdgeInsets, InnerPadding olarak yeniden adlandırıldı. Malzeme Düğmeleri'nin InnerPadding parametresi kadranlar için yeniden adlandırıldı. (I66165)
Kaydırma çubuğu artık durum bilgisiz. Kullanıcıların, diğer kontrollerde olduğu gibi durumu kendi başlarına geçirmeleri ve güncellemeleri gerekir. (Ia00aa)
StaticDrawer kaldırıldı. Gerekirse bunun yerine malzeme spesifikasyonunda belirtilen genişlikle Box'ı kullanın (I244a7)
Doldurulmuş Metin Alanı için Materyal Tasarım uygulaması eklendi (Ic75cd)
ListeÖğesi'ne değiştirici parametre eklendi ve sondaki lambda gövdesini tanıtmak için yeniden sıralanan parametreler (I66e21)
Typography'ye defaultFontFamily oluşturucu parametresi ekler. Böylece, aile grubu olmayan sağlanan TextStyles için kullanılacak varsayılan yazı tipi ailesini belirleyebilirsiniz. (I89d07)
Materyal Veri Tabloları, API yüzeyinden geçici olarak kaldırıldı. (Iaea61)
Divider composable'da yeniden adlandırılmış parametreler (Ic4373)
çocuklar (Ia6d19)
MaterialTheme.emphasisLevels'i kaldırır, bunun yerine vurgu seviyelerini (Ib5e40) almak için EmphasisAmbient.current öğesini kullanın.
Şekil teması sistemi, Materyal tasarım spesifikasyonuna göre güncellendi. Artık bileşenlerin çoğu (Ifb4d1) tarafından kullanılacak küçük, orta ve büyük şekiller sağlayabilirsiniz
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ış değişikliği beklenmemektedir. (I3565a)
FloatingActionButton API'leri temel öğeler yerine birleştirilebilir lambda'ları kabul edecek şekilde yeniden düzenlendi. Kullanım bilgileri için güncellenmiş örneklere bakın. (I00622)
Onay Kutusu, Anahtar ve Geçiş Yapılabilir bölümlerine
enabled
parametresi ekle (I41c16)Ripple artık bir Değiştirici. Tıklanabilir henüz dönüştürülmemiş olsa da önerilen kullanım
Clickable(onClick = { ... }, modifier = ripple())
'dir (Ie5200, b/151331852, b/150060763)Surface ve Card, androidx.ui.material.surface konumundan androidx.ui.material (I88a6d, b/150863888) konumuna taşındı
Düğme, FloatingActionButton ve Clickable artık ayrı bir
enabled
parametresine sahiptir. 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 Resim-oluşturulabilirliği arasındaki farkı daha iyi ayırt etmek için Resim, ImageAsset olarak yeniden adlandırıldı. _Body:Geleneksel Android uygulaması geliştirmeyi yazma çerçevesi (Id5bbd) ile birleştirmek için yararlı bir ImageAsset örneği oluşturmak üzere android.graphics.Bitmap, Bitmap.asImageAsset() üzerinde uzantı yöntemi oluşturuldu.
String parametrelerine sahip Snackbar API'si kaldırıldı ve yerine, derlenebilir lambda'ları kabul eden aşırı yük kullanılıyor. Kullanım bilgileri için güncellenmiş örneklere göz atın (I55f80)
Sekme API'leri
text
veicon
lambdaları kabul edecek şekilde yeniden düzenlendi, (Ia057e)BottomNavigasyon bileşeni eklendi. Kullanım bilgileri için dokümanlara ve örneklere bakın (I731a0)
Simge, Simge Düğmesi ve SimgeToggleButton eklenerek AppBarIcon kaldırıldı. AppBarIcon'ın mevcut kullanımlarını doğrudan iconButton ile değiştirebilirsiniz. Artık bu kullanımlar doğru dokunma hedefine sahip olacaktır. Kullanım bilgileri için örneklere bakın ve doğrudan bu bileşenlerle kullanabileceğiniz, sağlanan Malzeme Simgeleri için Simgelere 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 (I8ffcc)Düzen Koordinatları artık bir konum özelliğine sahip değil. LayoutModifiers, rotasyon veya ölçeklendirme düşünüldüğünde konum özelliği anlamlı değildir. Bunun yerine, geliştiriciler bir Layout Kodlayıcıdan diğerine geçişi hesaplamak için parentKoordinatörleri ve altToLocal() işlevini kullanmalıdır.
LayoutKoordinatları, boyut özelliği için PxSize yerine IntPxSize değerini kullanır. Düzenler, düzenler için tam sayı piksel boyutları kullandığından tüm düzen boyutları, kayan nokta değerleri yerine tamsayılar kullanmalıdır. (I9367b)
Ambiyans API'sinde önemli değişiklikler. Ayrıntılar için günlüğe ve
Ambient<T>
dokümanlarına bakın (I4c7ee, b/143769776)İskele malzemesi bileşeni eklendi. İskele uygulamaları (I7731b)
Kenarlık Değiştirici'nin (Id335a) yerine DrawBorder değiştirildi
Hata Düzeltmeleri
- FocusModifier kullanımdan kaldırılmıştır. Bunun yerine Modifier.focus, Modifier.focusRequester, Modifier.focusObserver’a sahiptir. FocusState ve FocusDetailsState kullanımdan kaldırıldı. Bunun yerine FocusState2 (I46919, b/160822875, b/160922136) kullanıma sunuldu.
- VerticalScroller ve HoriziontalScroller desteği sonlandırıldı. Sütun/Satır davranışı ve parametreleriyle ilgili yerleşik deneyim için ScrollableColumn ve ScrollableRow'u kullanın veya kendi öğenizde Modifier.verticalScroll ve Modifier.LandscapeScroll'i kullanın. Benzer şekilde, ScrollerPosition desteği sonlandırıldı ve ardından ScrollState (I400ce, b/157225838, b/149460415, b/154105299) kullanıma sunuldu
- Modifier.draggable ve Modifier.scrollable API'leri yeniden düzenlendi. DragDirection (Yön) kaldırıldı. Kaydırılabilir özellik için gereken durum basitleştirildi. ScrollableState, ScrollableController olarak yeniden adlandırıldı (Iab63c, b/149460415)
runOnIdleCompose
,runOnIdle
(I83607) olarak yeniden adlandırıldı- Tek değerli anlamsal özellikler artık bir çağrı stili kullanıyor. Örneğin, 'semantik { gizlendi = doğru }' artık şu şekilde yazılır: 'semantik { gizli() }'. (Ic1afd, b/145951226, b/145955412)
- Bazı test API'leri, daha sezgisel olacak şekilde yeniden adlandırıldı. Tüm findXYZ API'lerinin adı onNodeXYZ olarak değiştirildi. Tüm doXYZ API'lerinin adı performansXYZ olarak değiştirildi. (I7f164)
- Transition API, TransitionState değerini alt öğelere iletmek yerine bir TransitionState döndürecek şekilde değiştirilmiştir. Bu, API'yianimate() API'leriyle daha tutarlı hale getirir. (I24e38)
- Düzendeki tam sayı piksel sınırlarını temsil eden bir IntBounds birim sınıfı eklendi. PopupPositionProvider API'si kullanılacak şekilde güncellendi. (I0d8d0, b/159596546)
- Test bulucularına yeni bir isteğe bağlı useUnmergedTree işareti eklendi. (I2ce48)
- Eski boyut testi API'leri kaldırıldı. (Iba0a0)
- NativeShader'ı sarmalayan Shader satır içi sınıfı kaldırıldı NativeShader'ı Shader olarak yeniden adlandırdı. Sarmalanmış Shader satır içi sınıfı, API yüzeyine değerli bir şey eklememiştir ve bir satır içi sınıftır. Bu nedenle doğrudan NativeShader sınıfını kullanın. (I25e4d)
- Pop-up'lar, İletişim Kutuları ve Menüler artık bağlamsal MaterialTheme'i devralıyor (Ia3665, b/156527485)
- Material DropdownMenü'yü artık kaydırılabilir. (Ide699)
- Layout() işlevinin ölçüm bloğundan düzen yönü parametresi kaldırıldı. Bununla birlikte, düzen yönü ölçüm kapsamı nesnesi (Ic7d9d) 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 nesnesini kullanın -Tween, ilkbahar gibi AnimationSpecs oluşturmak için lambda gereksinimini kaldırarak geçiş DSL'sini iyileştirin. Bunun yerine, doğrudan oluşturucu parametrelerini alırlar. -Oluşturuculara güvenmek yerine AnimationSpec değişkenlerinin açılmasıyla ilgili kullanımı genel olarak daha kolay hale getirin -KeyFrames ve Tween için süreyi ve gecikmeyi, Int olarak değiştirin. Bu, gereksiz tür yayınları ve yöntem aşırı yüklemesini ortadan kaldırır (uzun ve Int'i desteklemek için). (Ica0b4)
enabled
yanlış değerine ayarlandığında anahtar artık devre dışı durumda görünür (If4624, b/155941869, b/159331694)- Modifier.tag, Modifier.testTag ile karıştırılma ihtimalini ortadan kaldırmak için Modifier.layoutId olarak yeniden adlandırıldı. (I995f0)
- Placeable#get(alignmentLine) öğesinden döndürülen hizalama satırı Int konumları artık null değil. Sorgulanan hizalama çizgisi eksikse Hizalama Satırı.Belirtilmemiş değeri döndürülür. (I896c5, b/158134875)
Yarıçap sınıfı, satır içi sınıf olacak şekilde yeniden düzenlendi. Tamamlayıcı oluşturma yöntemlerinin yerine, varsayılan parametreye sahip işlev oluşturucunun y ekseni boyunca yarıçapının, zorunlu x ekseni yarıçap parametresinin yarıçapıyla eşleşmesini sağlayacak şekilde kaldırıldı.
DrawScope.drawroundRect, x ve y ekseni boyunca yarıçap için 2 ayrı kayan değer değeri yerine tek bir Yarıçap parametresi kullanacak şekilde güncellendi (I46d1b)
Konumlandırma bilgilerini temsil etmek üzere kullanılan sınıfların sayısını birleştirmek için PxPosition yerine Offset sınıfının kullanımını standartlaştırın. Bu, kayan noktalı olarak temsil edilen x ve y ofsetlerini temsil etmek için 2 kayan değer değerini paketlemek için uzun bir değerden yararlanmak üzere satır içi sınıfın avantajlarını sağlar. (I3ad98)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi. Px sınıfı tamamen silindi (I3ff33)
Geçiş yapılabilir bileşen kullanımdan kaldırıldı. Bunun yerine Değiştirici.toggleable'ı kullanın (I35220, b/157642842)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışması kapsamında, çeşitli beste sınıflarında Px sınıfı kullanımı değiştirildi (I086f4)
Piksel parametreleri (Id3434) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli beste sınıflarında Px sınıfı kullanımı değiştirildi
Piksel parametreleri (I97a5a) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli beste sınıflarında Px sınıfı kullanımı değiştirildi
DropdonMenüItems için onClick'in çağrılmaması düzeltildi. (I3998b, b/157673259)
MutuallyPrivateSetItem desteği sonlandırıldı. Bunun yerine Modifier.selectable öğesini kullanın. (I02b47, b/157642842)
TestTag artık kullanımdan kaldırılmıştır. Bunun yerine Modifier.testTag'i kullanın. (If5110, b/157173105)
TextField'in imlecinde yanıp sönen bir animasyon var (Id10a7)
Piksel parametreleri (I19d02) için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi
VerticalScroller artık Sütun özelliğini kutudan çıkarır. HorizontalScroller artık Row özelliğini kullanıma sunuyor. (Ieca5d, b/157020670)
Piksel parametreleri için yalnızca Dp ve temel türlere güvenmek amacıyla yapılan kapsamlı yeniden düzenleme çalışmaları kapsamında, çeşitli kompozisyon sınıflarında Px sınıfı kullanımı değiştirildi (Iede0b)
Modifier.semantics, üst düzey bileşenlerin kullanımına izin vermek için kullanımdan kaldırılmıştır. (I4cfdc)
Drawlayer değiştiricileri API değiştirildi: Outline Shape yeniden şekillendi
Canvas'ı CanvasScope'u kullanıma sunacak şekilde gösteren üst düzey oluşturma API'leri güncellendi. Bu sayede, tüketicilerin kendi Paint nesnelerini tutma gerekliliği ortadan kalkar. Hâlâ bir Canvas'a erişmesi gereken tüketiciler, çizim komutu vermek için temel Tuval'e geri çağırma sağlayandrawCanvas uzantı yöntemini kullanabilir. (I80afd)
HizalamaLineoffset composable desteği sonlandırıldı. Bunun yerine lütfen göreliPaddingFrom() değiştiricisini kullanın. CenteralignmentLine composable kaldırıldı. (I60107)
WithConstraints sondaki lambda API'si değiştirildi. Artık iki parametre yerine, kısıtlamalar ve layoutDirection'a ek olarak Dp'de minwidth, maxwidth, minHeight ve maxHeight özelliklerini sağlayan bir alıcı kapsamına sahiptir (I91b9a, b/149979702)
Yalnızca gelen ilgili kısıtlamalar belirtilmediğinde sarmalanmış düzene boyut kısıtlamaları ayarlayan defaultMinSizeConstraints düzen değiştiricisi eklendi (minimum kısıtlamalar için 0, maksimum kısıtlamalar için sonsuz). (I311ea, b/150460257)
FocusManagerAmbient kaldırıldı. Odaklanmak için FocusModifier.requestFocus öğesini kullanın. (Ic4826)
Durum bilgisiz ve bildirim temelli çizim API'si yüzeyini ortaya çıkarmak için bir Canvas nesnesini sarmalayan CanvasScope API oluşturuldu. Dönüşümler kendi alıcı kapsamları içinde yer alır ve boyutlandırma bilgileri de ilgili alt sınır sınırlarına dahil edilir. Tüketicinin, çizim işlemlerini yapılandırmak için kendi Paint durum nesnesini tutması gerekmez.
CanvasScopeSample eklendi ve demo uygulaması, bildirim temelli bir grafik demosu içerecek şekilde güncellendi (Ifd86d)
TextField'e imleç rengi özelleştirmesi ekleyin (I6e33f)
TextField ile kullanılan TextFieldValue, şu şekilde kullanıldığında artık etkinlik oluşturma işlemlerinden sonra kullanılabilir:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)LayoutModifier2, LayoutModifier olarak yeniden adlandırıldı. (Id29f3)
Kullanımdan kaldırılan LayoutModifier arayüzü kaldırıldı. (I2a9d6)
Odak alt sistemiyle entegrasyon sağlamak için CoreTextField/TextField odakIdentifier parametresi FocusNode ile değiştirildi. (I7ea48)
Layout ve LayoutModifier2'deki dahili ölçüm işlevleri, artık dolaylı olarak yayılmış düzen yönüyle dahili sorgu API'si sağlayan bir IntrinsicmeasureScope alıcısına sahiptir. (Id9945)
Aynı üst düzendeki alt öğelerin çizim sırasını kontrol etmek için yeni Modifier.zIndex() eklenmiştir. DrawtierModifier'daki yükseltme özelliği, shadowElevation olarak yeniden adlandırıldı ve çizim sırasını artık kontrol etmemektedir. DrawShadow'un parametre sırası değiştirilmiştir: Yükseklik artık ilk sırada ve şekil, Dikdörtgen Şekil varsayılanı olan ikinci sıradadır. (I20150, b/152417501)
RectangleShape, androidx.ui.foundation.shape.*'dan androidx.ui.graphics'e taşındı.* (Ia74d5, b/154507984)
TextField API güncellemesi - onFocus ve onBlur geri çağırmaları, (I66cd3) parametresiyle tek bir onFocusChange (Boolean) geri çağırmasında birleştirildi
Sırasıyla Satır'a ve Sütuna dikeyGravity ve YatayGravity parametreleri eklendi. (I7dc5a)
wrapContentwidth ve wrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama beklenecek şekilde güncellendi. Yerçekimi değiştirici, dikey veya yatay Hizalamayı kabul edecek şekilde güncellendi. Satır, Sütun ve Yığın, özel sürekli Hizalamaları destekleyecek şekilde güncellendi. (Ib0728)
ImageAsset'teki piksel bilgilerinin sorgulanmasını desteklemek için PixelMap API'si oluşturuldu. (I69ad6)
Sağlam ContentColor'ı kaldırır, bunun yerine ContentColorAmbient'i doğrudan
Providers
(Iee942) ile kullanın.ui-text-compose modülü, ui-text olarak yeniden adlandırıldı. Kullanıcı arayüzü, artık CoreText ve CoreTextField composable öğelerini (Ib7d47) içeriyor
kullanıcı arayüzü modülü, ui-text-core (I57dec) olarak yeniden adlandırılmıştır
ui-framework/CoreText, CoreTextField composable öğeleri UI-text-compose altına taşındı. Projenize ui-text-compose eklemek isteyebilirsiniz. (I32042)
DrawModifier API'yi iyileştirin:
- schema() ContentDrawScope için alıcı kapsamı oluşturuldu
- draw() üzerindeki tüm parametreler kaldırıldı
- DrawScope eski CanvasScope ile aynı arayüze sahip
- ContentDrawScope yöntemi,drawContent() yöntemine (Ibaced, b/152919067) sahiptir
runOnIdleCompose
verunOnUiThread
artık ComposeTestRule'daki yöntemler yerine genel işlevlerdir. (Icbe8f)[Mutable]Eyalet mülk yetki verilmiş operatörleri, Kotlin 1.4 mülk yetkilendirmesi optimizasyonlarını desteklemek için uzantılara taşındı. Arayanların
by state { ... }
veyaby mutableStateOf(...)
kullanmaya devam etmek için içe aktarma işlemleri eklemesi gerekir. (I5312c)Düzen Koordinatları için locationInParent ve boundsInParent eklendi. (Icacdd, b/152735784)
ColoredRect kullanımdan kaldırıldı. Bunun yerine Box(Modifier.PreferredSize(width, height).drawArka Plan(color)) yöntemini kullanın. (I499fa, b/152753731)
LayoutResult, measureResult olarak yeniden adlandırıldı. (Id8c68)
Düzen değiştiricileri tanımlamaya yönelik yeni bir API olan LayoutModifier2 eklendi; kullanımdan kaldırılan LayoutModifier (If32ac)
Değiştirici artı operatörü, fabrika uzantı işlevleriyle değiştirildi (I225e4)
Sürüklenebilir öğe değiştiriciye taşındı (Id9b16, b/151959544)
ParentData composable kullanımdan kaldırıldı. ParentDataModifier arayüzünü uygulayan bir değiştirici oluşturmanız veya yalnızca düzen alt öğelerini ölçüm bloğunda tanımaları için etiketlemeniz gerekiyorsa LayoutTag değiştiricisini kullanmanız gerekir. (I51368, b/150953183)
Desteği sonlandırılan Center komposable. Bu değer, LayoutSize.Fill + LayoutLayout.Center değiştiricisi veya uygun değiştiricilerin uygulandığı Box ya da Stack oluşturma öğelerinden biriyle (Idf5e0) değiştirilmelidir.
Vektör grafikleri için mevcut alt bileşim API'sinin yerini alması için VectorPainter API'si eklendi. Alt bileşimin sonucu, DrawModifier yerine bir VectorPainter nesnesi olur. Önceki DrawVector kompozisyonları kullanımdan kaldırıldı ve VectorPainter oldu.
Image(Painter) API, PaintBox(Painter) olarak yeniden adlandırıldı ImageAsset yerine VectorAsset (I9af9a, b/149030271) hariç olmak üzere composable gibi davranan bir Vector oluşturuldu
LayoutEsnek adlı düzen, Layoutweight olarak yeniden adlandırıldı. Sıkı parametre, doldurulacak şekilde yeniden adlandırıldı. (If4738)
DrawKatmanlarModifier'ın yerini alan RepaintBoundary kaldırıldı (I00aa4)
DrawVector, normal bir composable işlevden, vektörü arka plan olarak bir düzene çizecek bir DeğiştiricidrawVector() döndürmesine dönüştürüldü. (I7b8e0)
Opaklık kompozisyon işlevi, çizimOpaklık değiştiricisiyle değiştirildi. (I5fb62)
Kompozit işlev Clip işlevini,drawClip() değiştiriciyle değiştirin. DrawClipToBounds, yalnızca katman sınırlarına göre dikdörtgen şeklinde kırpma yapmanız gerektiğinde kullanılacak kullanışlı bir değiştiricidir. (If28eb)
DrawShadow composable işlevi,drawShadow() değiştiriciyle değiştirildi. Gölgeler artık Katman Değiştirici'nin bir parçası olarak çiziliyor. (I0317a)
Bir Düzen için RenderNode eklemeyi sağlayan bir değiştirici olan tierModifier eklendi. Kırpma, opaklık, döndürme, ölçeklendirme ve gölgelerin ayarlanmasına olanak tanır. Bu, RepaintBoundary'nin yerini alır. (I7100d, b/150774014)
androidx.compose.ViewComposer kaldırıldı. androidx.ui.node.UiComposer androidx.compose.Emittable kaldırıldı. componentNode ile yedekliydi. androidx.compose.ViewAdapters kaldırıldı. Bunlar artık desteklenen bir kullanım alanı değildir. Compose.composeInto kullanımdan kaldırıldı. Bunun yerine
setContent
veyasetViewContent
kullanın. Compose.disposeComposition kullanımdan kaldırıldı. Bunun yerine,setContent
tarafından döndürülenComposition
üzerindedispose
yöntemini kullanın. androidx.compose.Compose.subcomposeInto, androidx.ui.core.subcomposeInto'ya taşındı BileşenNode#emitInsertAt, BileşenNode#insertAt olarak yeniden adlandırıldı BileşenNode#emitRemoveAt, BileşenNode#removeAt NoefNodemove#emitMode (BileşenNoef#emitMode), BileşenEkrana belirli bir ImageAsset çizmeye ek olarak boyutlandırma/düzeni işlemek için oluşturulan Resim oluşturuldu. Bu beste, doğal boyutuna uygun olarak herhangi bir Painter örneğini çizmeyi ve belirli bir sabit veya minimum boyutu (Ibcc8f) desteklemeyi de destekler.
Kullanımdan kaldırılan Sarmalama kompozit özelliği. LayoutLayout değiştiricisi veya Stack composable (Ib237f) aracıyla değiştirilebilir.
WithConstraints, LayoutDirection parametresini (I6d6f7) aldı
Düzen yönünün üst düzen düğümünden alt öğelere yayılması sağlandı. Düzen yönü değiştiricisi eklendi. (I3d955)
Yığın bileşeni sağdan sola yönü destekler (Ic9e00)
DrawShape composable kaldırıldı. Bunun yerine DrawDraw değiştiricisini kullanın. (I7ceb2)
LayoutPadding değiştiricisinde sağdan sola yönü destekleme (I9e8da)
Sadece görünür öğeleri oluşturan ve yerleştiren kaydırma listesi bileşeni olan AdapterList eklendi. Şu anda bilinen sorunlar arasında, yalnızca dikey yönde olması ve alt öğelerinde yapılan değişikliklerin tüm durumlarını tam olarak ele almaması sayılabilir. (Ib351b)
ComposeFlags.COMPOSER_PARAM
işareti,true
olarak güncellendi. Bu durum, oluşturma eklentisinin kod oluşturma stratejisini değiştirecek. Yüksek düzeyde bu durum, @Composable işlevlerinin ek bir sentetik parametreyle oluşturulmasına neden olur. Bu parametre, çalışma zamanının yürütmeyi düzgün bir şekilde yönetebilmesi için sonraki @Composable çağrılarına aktarılır. Bu, önemli bir ikili program değişikliğidir. Ancak tüm onaylı oluşturma kullanımlarında kaynak düzeyindeki uyumluluğun korunması gerekir. (I7971c)Tuval bileşeni eklendi. Bu kompozisyon küçük bir boyut kaplar (kullanıcı tarafından sağlanır) ve CanvasScope (I0d622) aracını kullanarak çizim yapmanıza olanak tanır.
Yoğunluk ve DensityScope tek bir arayüzde birleştirildi. ambientDensity() yerine artık DensityAmbient.current kullanabilirsiniz. withDensity(yoğunluk) yerine sadece with(yoğunluk) (I11cb1)
Sağlanan Düzen Koordinatları değiştirildi, böylece Düzen Koordinatları Harita yerine Küme haline getirildi ve Düzen Koordinatları , değer almak için get() operatörü uyguladı. Bu, değiştiricilerin her bir değiştirici için yeni bir koleksiyon oluşturmadan kümedeki bir veya daha fazla değeri değiştirmelerini kolaylaştırır. (I0245a)
Kaydırma araçları artık yerel Android sallama hareketi davranışı sergiliyor. (I922af, b/147493715)
Kısıtlamaların API yüzeyinde iyileştirmeler (I0fd15)