Compose Material
androidx.compose.material
androidx.compose.material.icons
(Lihat dokumen referensi API untuk mengetahui semua paket Compose)
Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
---|---|---|---|---|
21 Agustus 2024 | 1.6.8 | 1.7.0-rc01 | - | - |
Struktur
Compose adalah kombinasi 7 ID Grup Maven dalam androidx
. Setiap Grup
berisi subkumpulan fungsi yang ditargetkan, masing-masing dengan kumpulan catatan
rilisnya sendiri.
Tabel ini menjelaskan grup tersebut dan disertai link ke setiap kumpulan catatan rilis.
Grup | Deskripsi |
---|---|
compose.animation | Mem-build animasi di aplikasi Jetpack Compose untuk memperkaya pengalaman pengguna. |
compose.compiler | Mentransformasi fungsi @Composable dan mengaktifkan pengoptimalan dengan plugin compiler Kotlin. |
compose.foundation | Menulis aplikasi Jetpack Compose dengan elemen penyusun siap pakai dan memperluas dasar untuk mem-build bagian sistem desain Anda sendiri. |
compose.material | Mem-build UI Jetpack Compose dengan Komponen Desain Material siap pakai. Ini adalah titik entri pada tingkat yang lebih tinggi untuk Compose, yang dirancang untuk menyediakan komponen yang cocok dengan yang dijelaskan di www.material.io. |
compose.material3 | Mem-build UI Jetpack Compose dengan Komponen Desain Material 3, evolusi berikutnya dari Desain Material. Material 3 menyertakan tema dan komponen yang diperbarui serta fitur personalisasi Material You, seperti warna dinamis. Material 3 juga didesain agar selaras dengan gaya visual dan UI sistem Android 12 yang baru. |
compose.runtime | Elemen penyusun yang penting untuk model pemrograman dan pengelolaan status Compose, serta runtime inti untuk ditargetkan oleh Plugin Compose Compiler. |
compose.ui | Komponen dasar compose UI yang diperlukan untuk berinteraksi dengan perangkat, termasuk tata letak, gambar, dan input. |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada Compose, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle
bagi aplikasi atau modul Anda:
Groovy
dependencies { implementation "androidx.compose.material:material:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.7
Versi 1.7.0-rc01
21 Agustus 2024
androidx.compose.material:material-*:1.7.0-rc01
dirilis. Versi 1.7.0-rc01 berisi commit ini.
Versi 1.7.0-beta07
7 Agustus 2024
androidx.compose.material:material-*:1.7.0-beta07
dirilis. Versi 1.7.0-beta07 berisi commit ini.
Versi 1.7.0-beta06
24 Juli 2024
androidx.compose.material:material-*:1.7.0-beta06
dirilis. Versi 1.7.0-beta06 berisi commit ini.
Versi 1.7.0-beta05
10 Juli 2024
androidx.compose.material:material-*:1.7.0-beta05
dirilis. Versi 1.7.0-beta05 berisi commit ini.
Versi 1.7.0-beta04
26 Juni 2024
androidx.compose.material:material-*:1.7.0-beta04
dirilis. Versi 1.7.0-beta04 berisi commit ini.
Versi 1.7.0-beta03
12 Juni 2024
androidx.compose.material:material-*:1.7.0-beta03
dirilis. Versi 1.7.0-beta03 berisi commit ini.
Versi 1.7.0-beta02
29 Mei 2024
androidx.compose.material:material-*:1.7.0-beta02
dirilis. Versi 1.7.0-beta02 berisi commit ini.
Perubahan API
- Mengupdate API untuk menata gaya link: memindahkan
TextLinkStyles
keTextStyle
dan menghapusTextDefaults
dari material (I5477b)
Versi 1.7.0-beta01
14 Mei 2024
androidx.compose.material:material-*:1.7.0-beta01
dirilis. Versi 1.7.0-beta01 berisi commit ini.
Perubahan API
- Mengupdate API untuk mendapatkan link bertema Material di Teks. Secara khusus, menghapus metode dari
TextDefaults
untuk membuatLinkAnnotations
bertema dan mengurai HTML dengan link bertema. Sebagai gantinya, telah ditambahkan classTextLinkStyles
yang memungkinkan penataan gaya link sebagai parameter ke composable Text. (I31b93)
Versi 1.7.0-alpha08
1 Mei 2024
androidx.compose.material:material-*:1.7.0-alpha08
dirilis. Versi 1.7.0-alpha08 berisi commit ini.
Perubahan API
- Memperbaiki
backgroundColor
yang tidak berlaku untukTextFieldDecorationBox
danOutlinedTextFieldDecorationBox
. Kotak dekorasi kini menerima parametershape
. (I371c2, b/307694651) RippleConfiguration#isEnabled
telah dihapus, danLocalRippleConfiguration
telah dibuat nullable. Untuk menonaktifkan ripple, alih-alih memberikanRippleConfiguration
denganisEnabled = false
, berikannull
keLocalRippleConfiguration
. (I22725)- Link teks memiliki opsi gaya status ditekan selain gaya normal, kursor diarahkan, dan difokuskan. Setiap metode
TextDefaults
memiliki argumenpressedStyle
untuk mendukungnya. (Ic473f, b/139312671)
Perbaikan Bug
- Padding atas
OutlinedTextField
untuk label kini memperhitungkan ukuran font sistem. (Idc781)
Versi 1.7.0-alpha07
17 April 2024
androidx.compose.material:material-*:1.7.0-alpha07
dirilis. Versi 1.7.0-alpha07 berisi commit ini.
Perubahan API
- Link teks mendapatkan opsi gaya visual status yang ditekan, selain gaya normal, yaitu diarahkan kursor dan difokuskan. (I5f864, b/139312671)
- Menambahkan objek
TextDefaults
yang berisi metode untuk membuatLinkAnnotation
dan mengurai string yang diberi tag HTML yang menerapkanMaterialTheme
ke link. (I98532, b/139312671)
Versi 1.7.0-alpha06
3 April 2024
androidx.compose.material:material-*:1.7.0-alpha06
dirilis. Versi 1.7.0-alpha06 berisi commit ini.
Pengumuman
androidx.compose.material
tidak lagi memerlukan penggunaan versi yang sama dari setiap artefak adalah grup maven ini. Pengguna dapat mengombinasikan versi library dasar Compose (Ie5fba)
Perubahan API
- Memindahkan lebih banyak default
ModalDrawer
danBottomDrawer
ke objekDrawerDefaults
. (Ib5b2e)
Versi 1.7.0-alpha05
20 Maret 2024
androidx.compose.material:material-*:1.7.0-alpha05
dirilis. Versi 1.7.0-alpha05 berisi commit ini.
Perubahan API
- Flag
ScaffoldSubcomposeInMeasureFix
telah dihapus. (I67363)
Versi 1.7.0-alpha04
6 Maret 2024
androidx.compose.material:material-*:1.7.0-alpha04
dirilis. Versi 1.7.0-alpha04 berisi commit ini.
Fitur Baru
- Menambahkan artefak
androidx.compose.material:material-navigation
baru yang menambahkan dukungan untuk sheet bawah sebagai tujuan saat menggunakan Navigation Compose. Versi ini menggantikan library Accompanist Navigation Material. (d65d57, b/180247978)
Versi 1.7.0-alpha03
21 Februari 2024
androidx.compose.material:material-*:1.7.0-alpha03
dirilis. Versi 1.7.0-alpha03 berisi commit ini.
Perubahan API
BottomDrawer
telah dipromosikan dari eksperimental menjadi stabil.BottomDrawerState
kini menampilkan progres sebagai fungsi, sehingga memungkinkan pembuatan kueri progres di antara target tertentu.BottomDrawerState
kini memungkinkan penyesuaian spesifikasi animasi, danconfirmStateChange
bukan lagi lambda akhir. (I9c029, b/261423850)BackdropScaffold
telah dipromosikan dari eksperimental menjadi stabil. Spesifikasi animasi sekarang adalah spesifikasitween
sesuai dengan panduan. ParametersnackbarHost
dariBackdropScaffold
bukan lagi parameter terakhir untuk menghindari kebingungan dengan lambda akhir.BackdropScaffoldState
mengeksposprogress(from, to)
API untuk membuat kueri yang berlangsung di antara anchor. (I73f48, b/261423218)- Sheet bawah standar telah dipromosikan dari eksperimental menjadi stabil. Konstruktor yang tidak digunakan lagi telah dihapus. Spesifikasi animasi sekarang adalah spesifikasi hitung nilai berdasarkan panduan. (I3c1a8, b/278692145, b/261409034)
- Sheet bawah modal telah dipromosikan dari eksperimental menjadi stabil. Konstruktor yang tidak digunakan lagi telah dihapus. Spesifikasi animasi sekarang adalah spesifikasi
tween
sesuai dengan panduan. (Ic53f4, b/278692145, b/266780235, b/261409034)
Perbaikan Bug
- Memperbaiki masalah saat
BackdropScaffold
dapat mengalami error dalam skenario tertentu jika dikombinasikan denganLookaheadScope
. (I51396) - Menghapus subkomposisi di dalam
BottomSheetScaffold
untuk meningkatkan performa. Memperbaiki masalah saatBottomSheetScaffold
mengalami error dalam skenario tertentu jika dikombinasikan denganLookaheadScope
. (I2f90c) - Menghapus subkomposisi di dalam
ModalBottomSheetLayout
, sehingga meningkatkan performa. (I7a025)
Versi 1.7.0-alpha02
7 Februari 2024
androidx.compose.material:material-*:1.7.0-alpha02
dirilis. Versi 1.7.0-alpha02 berisi commit ini.
Versi 1.7.0-alpha01
24 Januari 2024
androidx.compose.material:material-*:1.7.0-alpha01
dirilis. Versi 1.7.0-alpha01 berisi commit ini.
Perubahan Perilaku
- Komponen Material telah dimigrasikan untuk menggunakan API ripple baru, dan tidak lagi mengkueri
RippleTheme
.
Perubahan API
rememberRipple
danRippleTheme
tidak digunakan lagi dari ripple material, dengan ripple baru danRippleConfiguration
API yang ditambahkan ke library material dan sistem desain lainnya.Komponen Material yang sebelumnya menerima
MutableInteractionSource
dan secara default mengingat{ MutableInteractionSource() }
kini menerimaMutableInteractionSource
nullable dan default ke null sebagai gantinya. Jika tidak mengangkat dan menggunakanMutableInteractionSource
, Anda harus meneruskan null. Hal ini memungkinkan beberapa komponen untuk membuat instance hanya jika diperlukan, sehingga meningkatkan performa. Sebaiknya buat perubahan serupa pada komponen Anda sendiri.
Versi 1.6
Versi 1.6.8
12 Juni 2024
androidx.compose.material:material-*:1.6.8
dirilis. Versi 1.6.8 berisi commit ini.
Versi 1.6.7
1 Mei 2024
androidx.compose.material:material-*:1.6.7
dirilis. Versi 1.6.7 berisi commit ini.
Versi 1.6.6
17 April 2024
androidx.compose.material:material-*:1.6.6
dirilis. Tidak ada perubahan sejak rilis terakhir.
Versi 1.6.5
3 April 2024
androidx.compose.material:material-*:1.6.5
dirilis. Versi 1.6.5 berisi commit ini.
Versi 1.6.4
20 Maret 2024
androidx.compose.material:material-*:1.6.4
dirilis. Versi 1.6.4 berisi commit ini.
Versi 1.6.3
6 Maret 2024
androidx.compose.material:material-*:1.6.3
dirilis. Versi 1.6.3 berisi commit ini.
Perbaikan Bug
- Perbaiki regresi dalam
ExposedDropdownMenu
agar dapat difokuskan lagi. (c0e0ed, b/323694447)
Versi 1.6.2
21 Februari 2024
androidx.compose.material:material-*:1.6.2
dirilis. Versi 1.6.2 berisi commit ini.
Versi 1.6.1
7 Februari 2024
androidx.compose.material:material-*:1.6.1
dirilis. Versi 1.6.1 berisi commit ini.
Versi 1.6.0
24 Januari 2024
androidx.compose.material:material-*:1.6.0
dirilis. Versi 1.6.0 berisi commit ini.
Versi 1.6.0-rc01
10 Januari 2024
androidx.compose.material:material-*:1.6.0-rc01
dirilis. Versi 1.6.0-rc01 berisi commit ini.
Versi 1.6.0-beta03
13 Desember 2023
androidx.compose.material:material-*:1.6.0-beta03
dirilis. Versi 1.6.0-beta03 berisi commit ini.
Versi 1.6.0-beta02
29 November 2023
androidx.compose.material:material-*:1.6.0-beta02
dirilis. Versi 1.6.0-beta02 berisi commit ini.
Versi 1.6.0-beta01
15 November 2023
androidx.compose.material:material-*:1.6.0-beta01
dirilis. Versi 1.6.0-beta01 berisi commit ini.
Versi 1.6.0-alpha08
18 Oktober 2023
androidx.compose.material:material-*:1.6.0-alpha08
dirilis. Versi 1.6.0-alpha08 berisi commit ini.
Perubahan API
- Menghentikan penggunaan fungsi
materialIcon
dan menggantinya dengan overload yang menggunakan parameterautoMirror
. (Ia338d)
Perbaikan Bug - Tingkatkan otomatis tinggi item navigasi untuk konten besar. (0c4ecc, b/272336962)
Versi 1.6.0-alpha07
4 Oktober 2023
androidx.compose.material:material-*:1.6.0-alpha07
dirilis. Versi 1.6.0-alpha07 berisi commit ini.
- Pembaruan dependensi
Versi 1.6.0-alpha06
20 September 2023
androidx.compose.material:material-*:1.6.0-alpha06
dirilis. Versi 1.6.0-alpha06 berisi commit ini.
Perubahan yang Dapat Menyebabkan Gangguan Perilaku
- Fungsi terkait panel samping dihapus dari
BottomSheetScaffold
. GabungkanBottomSheetScaffold
dalam composable Panel Samping untuk mencapai fungsi sebelumnya. LihatBottomSheetScaffoldWithDrawerSample
untuk mengetahui contohnya. (I1dcc8)
Perubahan API
- Memperkenalkan flag sementara untuk mengontrol apakah Scaffold harus mengukur turunannya selama pengukuran atau selama penempatan. Secara default, nilai ini akan diukur dalam pengukuran. Jika Anda mengalami masalah dengan perilaku baru, harap ajukan masalah. (If6e3b)
Versi 1.6.0-alpha05
6 September 2023
androidx.compose.material:material-*:1.6.0-alpha05
dirilis. Versi 1.6.0-alpha05 berisi commit ini.
Fitur Baru
- Menambahkan dukungan untuk ikon yang dicerminkan otomatis saat dirender dalam tata letak kanan-ke-kiri. Ikon di modul material-ikon-inti dan ikon-material-diperluas kini menyediakan set ikon tambahan untuk mendukung pencerminan otomatis jika ikon memungkinkannya. Set baru ini diawali dengan
Icons.AutoMirrored.Filled...
dll., dan tahan ikon yang akan otomatis mencerminkan tata letak RTL. Lihat daftar ikon Material untuk mengetahui daftar ikon yang dapat (dan harus) dicerminkan secara otomatis.
Perubahan API
- Menambahkan dukungan untuk ikon yang dicerminkan otomatis saat dirender dalam tata letak kanan-ke-kiri. Ikon di modul material-ikon-inti dan ikon-material-diperluas kini menyediakan set ikon tambahan untuk mendukung pencerminan otomatis jika ikon memungkinkannya. Set baru ini diawali dengan
Icons.AutoMirrored.Filled...
dll., dan tahan ikon yang akan otomatis mencerminkan tata letak RTL. Lihat daftar ikon Material untuk mengetahui daftar ikon yang dapat (dan harus) dicerminkan secara otomatis. Properti ikon yang disediakan sebelumnya untuk ikon tersebut kini ditandai sebagai tidak digunakan lagi, dan memberikan saran blok penggantian untuk membantu migrasi. Jika Anda tidak memiliki penanganan khusus untuk pencerminan ikon di RTL, sebaiknya bermigrasilah ke kumpulan ikon baru. Misalnya,Icons.Filled.ArrowBack
harus difaktorkan ulang keIcons.AutoMirrored.Filled.ArrowBack
. (I4b511)
Versi 1.6.0-alpha04
23 Agustus 2023
androidx.compose.material:material-*:1.6.0-alpha04
dirilis. Versi 1.6.0-alpha04 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah saat beberapa komponen yang menggunakan
Subcomposition
(misalnyaBottomSheetScaffold
) di dalam Scaffold di dalamLookaheadScope
mencoba membaca ukurannya terlalu awal. (If2c5d) - Perbaikan penghitungan
offset
DropdownMenu
sehingga offset x hanya bergantung pada arah tata letak lokal, dan offset y tidak akan lagi dibalik saat menu berada di dekat bagian bawah layar. (Iccc74, b/294103942) - Mengoptimalkan internal tata letak
BottomSheetScaffold
dan memperbaiki potensi masalah terkaitBottomSheetScaffold
di dalamLookaheadLayout
. (Ic0afa)
Versi 1.6.0-alpha03
9 Agustus 2023
androidx.compose.material:material-*:1.6.0-alpha03
dirilis. Versi 1.6.0-alpha03 berisi commit ini.
Perubahan API
- Komponen Material2 kini memiliki API terpisah untuk meneruskan
windowInsets
guna mendukung fungsi edge-to-edge di Android. Tidak seperti komponen material3, komponen material2 tidak mendukung inset secara default dan nilainya harus diteruskan secara manual. Lihat contoh terkait untuk mendapatkan panduan. (I655e8)
Versi 1.6.0-alpha02
26 Juli 2023
androidx.compose.material:material-*:1.6.0-alpha02
dirilis. Versi 1.6.0-alpha02 berisi commit ini.
Perubahan API
- Kita memindahkan dependensi kepadatan ke level komponen. Hal ini berlaku untuk komponen berikut:
SwipeToDismiss
dan komponen berbasis Sheet. Gunakan overload baru yang disediakan dengan kepadatan sebagai parameternya. (I1846e) - Anotasi tambahan untuk menentukan input yang diizinkan ke composable (I51109)
- Memperbarui file API untuk menganotasi penyembunyian kompatibilitas (I8e87a, b/287516207)
- Menambahkan perataan Start baru untuk
FabPosition
(Ib7aea, b/170592777) TextFieldColorsWithIcons
di Material 2 tidak digunakan lagi dan digantikan olehTextFieldColors
. Saat menggantileadingIconColor
atautrailingIconColor
, ganti juga overload denganinteractionSource
. (Id57ed, b/199377790)
Versi 1.6.0-alpha01
21 Juni 2023
androidx.compose.material:material-*:1.6.0-alpha01
dirilis. Versi 1.6.0-alpha01 berisi commit ini.
Perubahan Perilaku
includeFontPadding
sekarang adalahfalse
secara default dalam tipografi Material 2. Gaya tinggi baris default juga telah diubah menjadiTrim.None
danAlignment.Center
, danlineHeight
eksplisit (dalam sp) telah ditambahkan keTextStyle
dariTypography
. Lihat dokumen API jika Anda ingin menyesuaikan nilai ini, dan lihat postingan blog untuk penjelasan mendalam tentang perubahan ini. (Icabc3, I3f801, I04c03)
Perubahan API
Swipeable
API Material tidak digunakan lagi. LihatAnchoredDraggable
API Foundation yang dioptimalkan untuk kasus penggunaan sederhana dan kompleks. (I732e0)
Perbaikan Bug
BottomSheetState
,ModalBottomSheetState
, danBottomDrawerState
kini menampilkan properti progres yang menunjukkan progres antara anchor saat ini (sudah diselesaikan) dan anchor terdekat dalam arah geser. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versi 1.5
Versi 1.5.4
18 Oktober 2023
androidx.compose.material:material-*:1.5.4
dirilis. Versi 1.5.4 berisi commit ini.
Versi 1.5.3
4 Oktober 2023
androidx.compose.material:material-*:1.5.3
dirilis. Versi ini tidak memiliki perubahan
Versi 1.5.2
27 September 2023
androidx.compose.material:material-*:1.5.2
dirilis. Versi 1.5.2 berisi commit ini.
Versi 1.5.1
6 September 2023
androidx.compose.material:material-*:1.5.1
dirilis tanpa perubahan. Versi 1.5.1 berisi commit ini.
Versi 1.5.0
9 Agustus 2023
androidx.compose.material:material-*:1.5.0
dirilis. Versi 1.5.0 berisi commit ini.
Perubahan penting sejak versi 1.4.0
Perubahan API
- Memasukkan perubahan dalamSwipeable1 API di
BottomSheetScaffold
. ParameterconfirmStateChange
BottomSheetState
telah diganti namanya menjadiconfirmValueChange
.progress
sekarang ditampilkan sebagai nilai float.animateTo
dansnapTo
bersifat internal. Sebagai gantinya, gunakanexpand()
dancollapse()
.direction
danoverflow
telah dihapus.offset
telah diganti denganrequireOffset()
. I323b4 - Menandai fungsi
snapTo
di Panel Samping sebagai API non-eksperimental. (Ib9c18, b/261425368) - Menambahkan parameter warna trek untuk indikator progres sirkular, dan parameter ujung goresan untuk indikator progres sirkular dan linear. (Ie668c, b/216325962, b/222964817)
- Mengganti nama
confirmStateChange
ModalBottomSheetState
,ModalBottomSheetState.Saver
, danrememberModalBottomSheetState
menjadiconfirmValueChange
. (Ib48d1) - Menambahkan
Modifier.minimumInteractiveComponentSize
. Ini dapat digunakan untuk menyimpan setidaknya 48.dp untuk membedakan interaksi sentuh jika elemen akan berukuran lebih kecil. (I33f58, b/258495559) - Menyertakan perubahan dalam Swipeable API di
ModalBottomSheetLayout
. animateToModalBottomSheetState
tidak menggunakan parameteranimationSpec
lagi dan offset yang ditampilkan sekarang nullable. GunakanrequireOffset
untuk mewajibkan offset. (Ia2e79) - Menambahkan anotasi
@JvmDefaultWithCompatibility
(I8f206) - Perubahan yang disertakan dalam API Geser di
animateTo
ModalDrawer. DrawerState
telah diganti dengan metode buka dan tutup, serta offsetnya sekarang nullable. GunakanrequireOffset
untuk mewajibkan offset. (I3de9e) - Mengupdate Panel Samping dan Sheet untuk menunda penekanan dengan benar jika gestur dapat menjadi peristiwa scroll.
- Menambahkan parameter
minLines
ke dalam material dan material3 Text,TextField
, danOutlinedTextField
yang memungkinkan penetapan tinggi minimum komponen dalam jumlah baris (I4af1d)
Perbaikan Bug
- Memperbaiki masalah yang menyebabkan
pullRefresh
tidak menggunakan kecepatan, sehingga menyebabkan overscroll ditampilkan. Selain itu, mengubah tanda tangan API lambdaonRelease
diModifier.pullRefresh
untuk menampilkan Float untuk kecepatan yang digunakan (I7db65, b/266874741) BottomSheetState
,ModalBottomSheetState
, danBottomDrawerState
kini menampilkan properti progres yang menunjukkan progres antara anchor saat ini (sudah diselesaikan) dan anchor terdekat dalam arah geser. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- Memperbaiki tindakan tutup
AlertDialog
agar muncul di bawah tindakan konfirmasi saat tindakan ditumpuk satu sama lain agar sesuai dengan lebar dialog. Perbaikan ini menyelaraskan penerapan dengan spesifikasi Desain Material. (I029de, b/235454277) BottomSheetScaffold
tidak akan berpartisipasi lagi dalam scroll bertingkat jikagesturesEnabled
ditetapkan ke salah. (I634f3, b/215403277)- Memperbaiki bug yang menyebabkan
BottomSheetScaffold
error saat diberikan dengan konten kosong untuk slot. (Ib24a5, b/235588730) - Memperbaiki
PullRefreshIndicator
intersepsi klik/peristiwa pointer. (2494256, b/271777421) - Memperbaiki masalah saat
ModalBottomSheetLayout
mengalami error dalam kasus ekstrem saat orientasi berubah. Animasi tata letak (misalnya,Modifier.animateContentSize
) di/pada konten sheet sekarang berfungsi dengan lancar. (I2f981, b/266780234)
Versi 1.5.0-rc01
26 Juli 2023
androidx.compose.material:material-*:1.5.0-rc01
dirilis. Versi 1.5.0-rc01 berisi commit ini.
Versi 1.5.0-beta03
28 Juni 2023
androidx.compose.material:material-*:1.5.0-beta03
dirilis. Versi 1.5.0-beta03 berisi commit ini.
Perbaikan Bug
BottomSheetState
,ModalBottomSheetState
, danBottomDrawerState
kini menampilkan properti progres yang menunjukkan progres antara anchor saat ini (sudah diselesaikan) dan anchor terdekat dalam arah geser. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versi 1.5.0-beta02
7 Juni 2023
androidx.compose.material:material-*:1.5.0-beta02
dirilis. Versi 1.5.0-beta02 berisi commit ini.
Versi 1.5.0-beta01
24 Mei 2023
androidx.compose.material:material-*:1.5.0-beta01
dirilis. Versi 1.5.0-beta01 berisi commit ini.
Perubahan API
- Offset
DrawerState
danBottomDrawerState
tidak lagi nullable. Sebaliknya, parameter tersebut menampilkanFloat.NaN
untuk menunjukkan tidak adanya offset. (Ie9855) - Menambahkan opsi untuk meneruskan
ScrollState
saat membuatDropdownMenu
atauExposedDropdownMenu
untuk mengontrol status scroll vertikal dari item menu yang ditampilkan. (Idb009, b/185304441) - Menambahkan dukungan untuk mengaktifkan/menonaktifkan gestur
ModalBottomSheetLayout
sehingga pengguna dapat mengonfigurasi ini untuk bottomsheet fitur lainnya (I40af0) - Menambahkan parameter warna ke
BasicText
untuk memungkinkan animasi atau penyetelan warna teks secara efisien. (Iffd88, b/246961787) - Mengganti nama properti Semantik
isContainer
menjadiisTraversalGroup
(I121f6)
Perbaikan Bug
- Memperbaiki tindakan tutup
AlertDialog
agar muncul di bawah tindakan konfirmasi saat tindakan ditumpuk satu sama lain agar sesuai dengan lebar dialog. Perbaikan ini menyelaraskan implementasi dengan spesifikasi Desain Material. (I029de, b/235454277)
Versi 1.5.0-alpha04
10 Mei 2023
androidx.compose.material:material-*:1.5.0-alpha04
dirilis. Versi 1.5.0-alpha04 berisi commit ini.
Perubahan API
- Kita memindahkan dependensi kepadatan ke level komponen. Hal ini berlaku untuk komponen berikut:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. Gunakan overload baru yang disediakan dengan kepadatan sebagai parameternya. (I8fbd8)
Versi 1.5.0-alpha03
19 April 2023
androidx.compose.material:material-*:1.5.0-alpha03
dirilis. Versi 1.5.0-alpha03 berisi commit ini.
Perubahan API
- Update internal
BottomDrawer
untuk menggunakanSwipeableV2
API baru. KarenaBottomDrawerState
ini sekarang hanya akan memiliki API yang ditentukan di tingkat class, kode tersebut tidak akan mewarisi metode/properti dariSwipeableState
. Kita menggunakan komposisi denganSwipeableV2State
internal. Offset kini menjadi properti floating point nullable. Nilai saat ini dan nilai target geser masih dapat diakses melalui properti currentValue dan targetValue. Metode tingkat class sebelumnya seperti buka/luaskan/tutup dan properti sepertiisOpen/isClosed
akan terus didukung. (Iad40c, b/178529942, b/220676296)
Perbaikan Bug
- Memperbarui internal komponen Switch. Tombol kini akan melihat pratinjau terdekat (status target) saat menarik. (Id90d4)
- Konten sheet animasi (misalnya
Modifier.animateContentSize
pada konten sheet) diBottomSheetScaffold
telah dioptimalkan dan kini berfungsi dengan lancar. (Ia913c, b/270518202, b/254446195) BottomSheetScaffold
tidak akan berpartisipasi lagi dalam scroll bertingkat saatgesturesEnabled
ditetapkan kefalse
. (I634f3, b/215403277)
Versi 1.5.0-alpha02
5 April 2023
androidx.compose.material:material-*:1.5.0-alpha02
dirilis. Versi 1.5.0-alpha02 berisi commit ini.
Perbaikan Bug
- Memperbaiki bug yang menyebabkan
BottomSheetScaffold
error saat diberikan dengan konten kosong untuk slot. (Ib24a5, b/235588730) - Memperbaiki intersepsi klik / peristiwa pointer
PullRefreshIndicator
(2494256, b/271777421)
Versi 1.5.0-alpha01
22 Maret 2023
androidx.compose.material:material-*:1.5.0-alpha01
dirilis. Versi 1.5.0-alpha01 berisi commit ini.
Perbaikan Bug
- Tambahkan contoh perubahan posisi/geometri chipgroup. Perbarui padding horizontal di antara chip turunan dalam contoh chipgroup baris tunggal untuk mencocokkan spesifikasi. (I3b155)
- Memperbaiki masalah saat
ModalBottomSheetLayout
mengalami error dalam kasus ekstrem saat orientasi berubah. Animasi tata letak (misalnya,Modifier.animateContentSize
) di/pada konten sheet sekarang berfungsi dengan lancar. (I2f981, b/266780234)
Versi 1.4
Versi 1.4.3
3 Mei 2023
androidx.compose.material:material-*:1.4.3
dirilis tanpa perubahan (hanya peningkatan versi).
Versi 1.4.2
19 April 2023
androidx.compose.material:material-*:1.4.2
dirilis. Versi 1.4.2 berisi commit ini.
Versi 1.4.1
5 April 2023
androidx.compose.material:material-*:1.4.1
dirilis. Versi 1.4.1 berisi commit ini.
Versi 1.4.0
22 Maret 2023
androidx.compose.material:material-*:1.4.0
dirilis. Versi 1.4.0 berisi commit ini.
Perubahan penting sejak versi 1.3.0
Perubahan API
- Menambahkan
Modifier.minimumInteractiveComponentSize
. Ini dapat digunakan untuk menyimpan setidaknya 48.dp untuk membedakan interaksi sentuh jika elemen akan berukuran lebih kecil. (I33f58, b/258495559) - Menyertakan perubahan dalam Swipeable API di
ModalDrawer
.animateTo
DrawerState
telah diganti dengan metode buka dan tutup dan offsetnya sekarang nullable. GunakanrequireOffset
untuk mewajibkan offset. (I3de9e) - Menambahkan parameter
minLines
ke dalam material dan material3 Text,TextField
, danOutlinedTextField
yang memungkinkan penetapan tinggi minimum komponen dalam jumlah baris (I4af1d) - Menambahkan parameter
minLines
keBasicText
danBasicTextField
. Fungsi ini memungkinkan untuk menetapkan tinggi minimum composable ini dalam jumlah baris (I24294, b/122476634)
Versi 1.4.0-rc01
8 Maret 2023
androidx.compose.material:material-*:1.4.0-rc01
dirilis tanpa perubahan. Versi 1.4.0-rc01 berisi commit ini.
Versi 1.4.0-beta02
22 Februari 2023
androidx.compose.material:material-*:1.4.0-beta02
dirilis. Versi 1.4.0-beta02 berisi commit ini.
Perubahan API
- Menyertakan perubahan dalam Swipeable API di
BottomSheetScaffold
. ParameterconfirmStateChange
BottomSheetState
telah diganti namanya menjadiconfirmValueChange
.progress
sekarang ditampilkan sebagai nilai float.animateTo
dansnapTo
bersifat internal. Sebagai gantinya, gunakanexpand()
dancollapse()
.direction
danoverflow
telah dihapus.offset
telah diganti denganrequireOffset()
. (I323b4)
Perbaikan Bug
- Menghapus peran semantik dari platform yang dapat diklik dan dapat dipilih, memperbarui komponen yang menggunakannya untuk menetapkan peran menggunakan modifier.semantics (Ibb4ba)
- Update kecil pada ikon Material yang diperluas yang menyesuaikan ikon
desktop_mac
,directions
, dankitchen
yang terisi. (I65f5e)
Versi 1.4.0-beta01
8 Februari 2023
androidx.compose.material:material-*:1.4.0-beta01
dirilis. Versi 1.4.0-beta01 berisi commit ini.
Perubahan API
- Memperbaiki masalah yang menyebabkan
pullRefresh
tidak menggunakan kecepatan, sehingga menyebabkan overscroll ditampilkan. Selain itu, mengubah tanda tangan API lambdaonRelease
diModifier.pullRefresh
untuk menampilkan Float untuk kecepatan yang digunakan (I7db65, b/266874741) - Memulihkan pengambil properti
LocalMinimuTouchTargetEnforcement
dan menandainya sebagai tidak digunakan lagi dan mengalihkan keLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
Versi 1.4.0-alpha05
25 Januari 2023
androidx.compose.material:material-*:1.4.0-alpha05
dirilis. Versi 1.4.0-alpha05 berisi commit ini.
Perbaikan Bug
- Memperbaiki masalah saat status
ModalBottomSheetLayout's HalfExpanded
salah dihitung dan sheet akan tampak mengambang. (I8c615, b/265610459) - Memperbaiki bug
ModalBottomSheetLayout
saat sheet mengalami error dan beralih dari status tersembunyi ke status yang terlihat dalam situasi tertentu. (Ia9265, b/265444789)
Versi 1.4.0-alpha04
11 Januari 2023
androidx.compose.material:material-*:1.4.0-alpha04
dirilis. Versi 1.4.0-alpha04 berisi commit ini.
Perubahan API
- Menambahkan properti semantik
IsContainer
di Platform. Properti ini akan digunakan dalam perubahan selanjutnya yang menentukan urutan traversal berdasarkan makna semantik elemen seperti platform. (I63379) - Menandai fungsi
snapTo
di Panel Samping sebagai API non-eksperimental. (Ib9c18, b/261425368) - Menambahkan parameter warna trek untuk indikator progres sirkular, dan parameter ujung goresan untuk indikator progres sirkular dan linear. (Ie668c, b/216325962, b/222964817)
- Mengganti nama
confirmStateChange
ModalBottomSheetState
,ModalBottomSheetState.Saver
, danrememberModalBottomSheetState
menjadiconfirmValueChange
. (Ib48d1) - Lebih banyak nullability jenis nilai yang ditampilkan dari fungsi tersembunyi yang tidak digunakan lagi (Ibf7b0)
- Menambahkan
Modifier.minimumInteractiveComponentSize
. Ini dapat digunakan untuk menyimpan setidaknya 48.dp untuk membedakan interaksi sentuh jika elemen akan berukuran lebih kecil. (I33f58, b/258495559) - Menyertakan perubahan dalam Swipeable API di
ModalBottomSheetLayout
.animateTo
ModalBottomSheetState
tidak lagi menggunakan parameteranimationSpec
danoffset
yang ditampilkan sekarang bersifat nullable. GunakanrequireOffset
untuk mewajibkanoffset
. (Ia2e79)
Perbaikan Bug
- Sheet
ModalBottomSheetLayout
sekarang memiliki lebar maksimum 640 dp. (I71a4f, b/234927577) - Memperbaiki masalah yang menyebabkan
rememberPullRefreshState
tidak mengupdaterefreshThreshold
danrefreshingOffset
dari waktu ke waktu. (Ifed10, b/263159832) - Progres untuk indikator progres kini dikaitkan dengan benar ke rentang yang diharapkan. (I8a7eb, b/262262727)
- Jika
ModalBottomSheetState
belum menerima anchor,currentValue
akan diupdate tanpa animasi saatsnapTo
atauanimateTo
dipanggil, bukan menampilkan pengecualian. (I2c91b) - Memperbaiki status yang diaktifkan pada penerapan
FilterChip
Material 2. (Id326a, b/261329817) - Memperbaiki bug yang menyebabkan
ModalBottomSheetLayout
mengalami error jikaHalfExpanded
saat memutar dari orientasi potret ke lanskap. Pastikan Anda meneruskaninitialValue
yang benar, misalnya dengan memeriksa konfigurasi. (Ie8df7, b/182882364) - Memperbaiki masalah yang menyebabkan
ModalBottomSheetLayout
mengalami error jika konten sheet kosong.ModalBottomSheetLayout
kini mengizinkan konten sheet kosong. Jika konten sheet kosong, konten hanya akan memiliki status Tersembunyi. (Ic2288, b/200980998, b/216693030)
Masalah Umum
- Saat mengupdate dari
androidx.compose.foundation:1.4.0-alpha03
keandroidx.compose.foundation:1.4.0-alpha04
, Anda mungkin mengalami errorjava.lang.NoSuchFieldError
. Masalah awalnya dilaporkan di sini. Perbaikan telah dikirim dan akan tersedia di update Compose berikutnya. Sebagai solusi, update libraryandroidx.compose.material
danandroidx.compose.material3
ke versi terbaru (1.1.0-alpha04) atau downgradeandroidx.compose.foundation
ke 1.4.0-alpha03.
Versi 1.4.0-alpha03
7 Desember 2022
androidx.compose.material:material-*:1.4.0-alpha03
dirilis. Versi 1.4.0-alpha03 berisi commit ini.
Perubahan API
- Menambahkan anotasi
@JvmDefaultWithCompatibility
(I8f206) - Menyertakan perubahan dalam
Swipeable
API diModalDrawer
.animateTo
DrawerState
telah diganti dengan metodeopen
danclose
dan offsetnya sekarang nullable. GunakanrequireOffset
untuk mewajibkan offset. (I3de9e) - Menambahkan Modifier API untuk mengkueri info scroll ancestor. (I2ba9d, b/203141462)
- Digunakan di
Clickable
untuk menunda interaksi tekan dengan benar, saat gestur dapat menjadi peristiwa scroll. - Memperbaiki
Clickables
yang tidak menunda ripple dengan benar, saat digunakan di dalamScrollable ViewGroup
. - Mengupdate Panel Samping dan Sheet untuk menunda penekanan dengan benar jika gestur dapat menjadi peristiwa scroll.
Perbaikan Bug
- Memperbaiki masalah yang menyebabkan
PullRefreshIndicator
macet setelahonRefresh
dipanggil, jika status pemuatan ulang tidak diubah ke benar (true). (Ie2416, b/248274004)
Update Dependensi
- Compose UI dan Compose Material sekarang bergantung pada Lifecycle 2.5.1. (I05ab0, b/258038814)
Versi 1.4.0-alpha02
9 November 2022
androidx.compose.material:material-*:1.4.0-alpha02
dirilis. Versi 1.4.0-alpha02 berisi commit ini.
Perubahan API
awaitFirstDown
danwaitForUpOrCancellation
kini menerimaPointerEventPass
untuk fleksibilitas yang lebih besar. (I7579a, b/212091796)- Menambahkan parameter
minLines
ke dalam material dan material3 Text,TextField
, danOutlinedTextField
yang memungkinkan penetapan tinggi minimum komponen dalam jumlah baris (I4af1d) - Menambahkan parameter
minLines
keBasicTex
t danBasicTextField
. Perubahan ini memungkinkan untuk menetapkan tinggi minimum composable ini dalam jumlah baris (I24294, b/122476634)
Versi 1.4.0-alpha01
24 Oktober 2022
androidx.compose.material:material-*:1.4.0-alpha01
dirilis. Versi 1.4.0-alpha01 berisi commit ini.
Perubahan API
- Metode baru,
awaitEachGesture()
, untuk mendeteksi gestur telah ditambahkan. Metode ini beroperasi mirip denganforEachGesture()
, tetapi gestur loop over beroperasi sepenuhnya dalamAwaitPointerEventScope
sehingga peristiwa di antara iterasi tidak dapat hilang. forEachGesture()
tidak digunakan lagi dan digantikan denganawaitEachGesture()
karena memungkinkan peristiwa di antara gestur hilang. (Iffc3f, b/251260206)
Versi 1.3
Versi 1.3.1
9 November 2022
androidx.compose.material:material-*:1.3.1
dirilis. Versi 1.3.1 berisi commit ini.
Versi 1.3.0
24 Oktober 2022
androidx.compose.material:material-*:1.3.0
dirilis. Versi 1.3.0 berisi commit berikut ini.
Perubahan penting sejak versi 1.2.0
Perubahan yang dapat menyebabkan gangguan perilaku
- Elevasi maksimum yang didukung dalam dialog dan pop-up telah dikurangi menjadi 8 dp.
Perubahan API
- Menambahkan komponen Pull-To-Refresh ke Compose (I29168).
- Mengubah nama parameter dari values menjadi value di RangeSlider (I3b79a).
Versi 1.3.0-rc01
5 Oktober 2022
androidx.compose.material:material-*:1.3.0-rc01
dirilis. Versi 1.3.0-rc01 berisi commit ini.
Versi 1.3.0-beta03
21 September 2022
androidx.compose.material:material-*:1.3.0-beta03
dirilis. Versi 1.3.0-beta03 berisi commit ini.
Perubahan API
- Menambahkan komponen Pull-To-Refresh ke Compose (I29168)
Versi 1.3.0-beta02
7 September 2022
androidx.compose.material:material-*:1.3.0-beta02
dirilis. Versi 1.3.0-beta02 berisi commit ini.
Tidak ada perubahan sejak versi 1.3.0-beta01
Versi 1.3.0-beta01
24 Agustus 2022
androidx.compose.material:material-*:1.3.0-beta01
dirilis. Versi 1.3.0-beta01 berisi commit ini.
Perubahan yang dapat menyebabkan gangguan perilaku
Elevasi maksimum yang didukung dalam dialog dan pop-up telah dikurangi menjadi 8 dp.
Elevasi maksimum yang didukung untuk dialog dan pop-up Compose telah dikurangi dari 30 dp menjadi 8 dp. Perubahan ini memengaruhi dialog khusus dan pop-up Material dan UI. Perubahan ini dilakukan untuk memitigasi bug aksesibilitas pada versi Android di bawah S, dan untuk memastikan bahwa layanan aksesibilitas dalam jendela tersebut dapat berinteraksi dengan konten di dalam dialog atau pop-up.
Anda hanya akan terpengaruh oleh perubahan ini jika membuat dialog kustom atau penerapan pop-up dengan elevasi yang ditetapkan ke level yang lebih tinggi dari 8 dp. Sebaiknya turunkan elevasi dialog atau pop-up Anda. Jika tidak ingin menerapkan perilaku baru ini, sebaiknya lakukan fork dialog atau pop-up dengan kumpulan elevasi yang diinginkan. Hal ini tidak direkomendasikan, karena berpengaruh negatif pada aksesibilitas dan developer bertanggung jawab untuk memastikan bagian bawah dialog atau pop-up dapat berinteraksi dan dapat dibaca oleh layanan aksesibilitas.
Versi 1.3.0-alpha03
10 Agustus 2022
androidx.compose.material:material-*:1.3.0-alpha03
dirilis. Versi 1.3.0-alpha03 berisi commit ini.
Versi 1.3.0-alpha02
27 Juli 2022
androidx.compose.material:material-*:1.3.0-alpha02
dirilis. Versi 1.3.0-alpha02 berisi commit ini.
Kontribusi Eksternal
- Memperbaiki masalah
AnimatedVisibility
denganFloatingActionButton
di Scaffold (I3a0ae, b/224005027)
Versi 1.3.0-alpha01
29 Juni 2022
androidx.compose.material:material-*:1.3.0-alpha01
dirilis. Versi 1.3.0-alpha01 berisi commit ini.
Perubahan API
- Mengubah nama parameter dari values menjadi value di
RangeSlider
(I3b79a)
Perbaikan Bug
- Memperbarui contoh badge untuk memberikan deskripsi konten yang lebih bermakna. (I10b9d)
Versi 1.2
Versi 1.2.1
10 Agustus 2022
androidx.compose.material:material-*:1.2.1
dirilis. Versi 1.2.1 berisi commit ini.
Versi 1.2.0
27 Juli 2022
androidx.compose.material:material-*:1.2.0
dirilis. Versi 1.2.0 berisi commit ini.
Versi 1.2.0-rc03
29 Juni 2022
androidx.compose.material:material-*:1.2.0-rc03
dirilis. Versi 1.2.0-rc03 berisi commit ini.
- Tidak ada perubahan sejak versi 1.2.0-rc02.
Versi 1.2.0-rc02
22 Juni 2022
androidx.compose.material:material-*:1.2.0-rc02
dirilis. Versi 1.2.0-rc02 berisi commit ini.
Versi 1.2.0-rc01
15 Juni 2022
androidx.compose.material:material-*:1.2.0-rc01
dirilis. Versi 1.2.0-rc01 berisi commit ini.
Perubahan API
- Antarmuka di library Compose kini dibuat menggunakan metode antarmuka default jdk8 (I5bcf1)
Perbaikan Bug
- Memperbarui badge dengan tab ikon utama untuk menempelkan badge ke label, bukan ikon. (I90993)
Versi 1.2.0-beta03
1 Juni 2022
androidx.compose.material:material-*:1.2.0-beta03
dirilis. Versi 1.2.0-beta03 berisi commit ini.
Perbaikan Bug
- Memperbaiki bug yang menyebabkan
BottomSheetScaffold
menggambar di atas bayangan panel aplikasi.BottomSheetScaffold
kini juga mempertimbangkan status sheet saat menempatkan Snackbar: dalam status diciutkan, Snackbar ditempatkan di atas sheet dan FAB; dalam status diluaskan, Snackbar ditambatkan ke bagian bawah sheet. (Ia80b5, b/187771422)
Versi 1.2.0-beta02
18 Mei 2022
androidx.compose.material:material-*:1.2.0-beta02
dirilis. Versi 1.2.0-beta02 berisi commit ini.
Versi 1.2.0-beta01
11 Mei 2022
androidx.compose.material:material-*:1.2.0-beta01
dirilis. Versi 1.2.0-beta01 berisi commit ini.
Fitur Baru
- Ini adalah rilis beta pertama 1.2.
Perubahan API
- Mengganti nama composable
TextFieldDefaults.BorderStroke
yang menggambar goresan batas diOutlinedTextField
menjadiTextFieldDefaults.BorderBox
. (I5f295)
Versi 1.2.0-alpha08
20 April 2022
androidx.compose.material:material-*:1.2.0-alpha08
dirilis. Versi 1.2.0-alpha08 berisi commit ini.
Perubahan API
- Konsumsi parsial (posisi OR turun) tidak digunakan lagi di
PointerInputChange
. Anda dapat menggunakanconsume()
untuk sepenuhnya memakai perubahan. Anda dapat menggunakanisConsumed
untuk menentukan apakah orang lain sudah pernah memakai perubahan tersebut sebelumnya. PointerInputChange::copy()
kini selalu membuat shallow copy. Ini berarti bahwa salinanPointerInputChange
akan dipakai setelah salah satu salinan tersebut digunakan. Jika Anda ingin membuatPointerInputChange
yang tidak terikat, gunakan konstruktor. (Ie6be4, b/225669674)
Versi 1.2.0-alpha07
6 April 2022
androidx.compose.material:material-*:1.2.0-alpha07
dirilis. Versi 1.2.0-alpha07 berisi commit ini.
Versi 1.2.0-alpha06
23 Maret 2022
androidx.compose.material:material-*:1.2.0-alpha06
dirilis. Versi 1.2.0-alpha06 berisi commit ini.
Perubahan API
- Update pada Card API yang dapat diklik untuk mengikuti perubahan di Surface API (I56bcb)
- Update pada Material 2 Surface API yang menambahkan fungsi kelebihan beban tambahan untuk Platform yang dapat dipilih dan diganti. (Ifcca5)
Versi 1.2.0-alpha05
9 Maret 2022
androidx.compose.material:material-*:1.2.0-alpha05
dirilis. Versi 1.2.0-alpha05 berisi commit ini.
Perubahan API
LazyVerticalGrid
danLazyHorizontalGrid
kini stabil. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
dan semua API terkait dipindahkan ke sub-paket .grid. Update impor Anda dari androidx.compose.foundation.lazy ke androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)- Mengembalikan perubahan sebelumnya yang hanya mengandalkan View untuk
WindowInsetsControllerCompat
, dan sekali lagi memerlukan Window yang diperlukan untuk mengelola beberapa flag jendela.ViewCompat.getWindowInsetsController
tidak digunakan lagi dan diganti denganWindowCompat.getInsetsController
untuk memastikan bahwa Window yang benar digunakan (seperti jika View ada dalam dialog). (I660ae, b/219572936) - Teks:
includeFontPadding
kini dinonaktifkan secara default. Masalah pemotongan akibatincludeFontPadding=false
ditangani dan tidak ada pemotongan yang harus dilakukan untuk skrip yang tinggi. (I31c84, b/171394808) - Menambahkan
LazyVerticalGrid
API baru untuk menentukan ukuran sumbu silang (I17723)
Versi 1.2.0-alpha04
23 Februari 2022
androidx.compose.material:material-*:1.2.0-alpha04
dirilis. Versi 1.2.0-alpha04 berisi commit ini.
Perubahan API
Add support for filter chips
(I39a6e, b/192585545)- Menambahkan
TextFieldDecorationBox
danOutlinedTextFieldDecorationBox
. Menggunakannya bersama denganBasicTextField
akan membantu Anda membuat kolom teks kustom berdasarkan kolom teks Desain Material, tetapi dengan lebih banyak opsi untuk penyesuaian. - Memberikan cara untuk menyesuaikan padding horizontal dan vertikal di kolom teks. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
Menambahkan
ComposableTarget
,ComposableTargetMarker
, danComposableOpenTarget
yang memungkinkan pelaporan waktu kompilasi saat fungsi composable dipanggil, menargetkan applier yang tidak dirancang untuk digunakan.Dalam sebagian besar kasus, anotasi dapat ditentukan oleh plugin compiler Compose, sehingga penggunaan anotasi ini secara langsung seharusnya jarang terjadi. Kasus yang tidak dapat ditentukan mencakup pembuatan dan penggunaan applier kustom, fungsi composable abstrak (seperti metode antarmuka), kolom, atau variabel global yang merupakan lambda composable (variabel dan parameter lokal ditentukan), atau saat menggunakan
ComposeNode
atau fungsi composable terkait.Untuk applier kustom, fungsi composable yang memanggil
ComposeNode
atauReusableComposeNode
perlu menambahkan anotasiCompoableTarget
untuk fungsi dan jenis parameter lambda composable. Namun, sebaiknya buat anotasi yang dianotasikan denganComposableTargetMarker
, lalu anotasi yang ditandai akan digunakan sebagai gantiComposableTarget
secara langsung. Anotasi composable yang ditandai denganComposableTargetMarker
setara denganComposbleTarget
dengan nama class atribut yang sepenuhnya memenuhi syarat sebagai parameter applier. Untuk contoh penggunaanComposableTargetMarker
, lihatanroidx.compose.ui.UiComposable
. (I38f11)
Versi 1.2.0-alpha03
9 Februari 2022
androidx.compose.material:material-*:1.2.0-alpha03
dirilis. Versi 1.2.0-alpha03 berisi commit ini.
Perbaikan Bug
- Menambahkan contoh grup chip (I97080, b/192585545)
Versi 1.2.0-alpha02
26 Januari 2022
androidx.compose.material:material-*:1.2.0-alpha02
dirilis. Versi 1.2.0-alpha02 berisi commit ini.
Perubahan API
- Menambahkan
NonRestartableComposable
ke metode yang membebani metode yang ada tanpa logika yang kompleks. Tindakan ini akan mengurangi pemeriksaan memoisasi yang dihasilkan compiler (sama dengan) untuk semua parameter yang diulang dalam fungsi internal yang dipanggil. (I90490) - Menambahkan dukungan untuk chip tindakan (I07100, b/192585545)
Versi 1.2.0-alpha01
12 Januari 2022
androidx.compose.material:material-*:1.2.0-alpha01
dirilis. Versi 1.2.0-alpha01 berisi commit ini.
Update Dependensi
- Sekarang bergantung pada Kotlin
1.6.10
.
Kontribusi Eksternal
ModalBottomSheetState
sekarang memiliki flagisSkipHalfExpanded
. Flag ini dapat disetel melalui konstruktor atau diperbarui nanti dengan menyetel propertiisSkipHalfExpanded
ModalBottomSheetState
ketrue
. Memperbarui nilaiisSkipHalfExpanded
akan menyebabkan rekomposisi sheet. (I18b86, b/186669820)
Versi 1.1
Versi 1.1.1
23 Februari 2022
androidx.compose.material:material-*:1.1.1
dirilis. Versi 1.1.1 berisi commit ini.
Perbaikan Bug
- Memperbaiki
NullPointerException
diandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - Memperbaiki error yang disebabkan oleh konten papan klip saat membaca dari papan klip di Android. (I06020, b/197769306)
- Memperbaiki RTL di
LazyVerticalGrid
(aosp/1931080, b/207510535)
Versi 1.1.0
9 Februari 2022
androidx.compose.material:material-*:1.1.0
dirilis. Versi 1.1.0 berisi commit ini.
Perubahan penting sejak versi 1.0.0
- Dukungan yang stabil untuk Efek overscroll Android 12
- Peningkatan penentuan ukuran target sentuh
- Perhatikan bahwa, sehubungan dengan Compose 1.0, komponen Material akan memperluas ruang tata letaknya untuk memenuhi ukuran target sentuh panduan aksesibilitas Material. Misalnya, target sentuh Button akan diperluas hingga ukuran minimum 48x48 dp, meskipun Anda menyetel ukuran Button menjadi lebih kecil. Tindakan ini akan menyelaraskan Compose Material ke perilaku Komponen Desain Material yang sama, sehingga memberikan perilaku yang konsisten jika Anda menggabungkan View dan Compose. Perubahan ini juga memastikan bahwa saat Anda membuat UI menggunakan komponen Compose Material, persyaratan minimum untuk aksesibilitas target sentuh akan terpenuhi.
- Dukungan Stabil untuk Navigation Rail
- Menstabilkan sejumlah API eksperimental sebelumnya
- Dukungan untuk versi Kotlin yang lebih baru
Versi 1.1.0-rc03
26 Januari 2022
androidx.compose.material:material-*:1.1.0-rc03
dirilis. Versi 1.1.0-rc03 berisi commit ini.
Perubahan Perilaku
Perhatikan bahwa, sehubungan dengan Compose 1.0, komponen Material akan memperluas ruang tata letaknya untuk memenuhi ukuran target sentuh panduan aksesibilitas Material. Misalnya, target sentuh Button akan diperluas hingga ukuran minimum 48x48 dp, meskipun Anda menyetel ukuran Button menjadi lebih kecil. Tindakan ini akan menyelaraskan Compose Material ke perilaku Komponen Desain Material yang sama, sehingga memberikan perilaku yang konsisten jika Anda menggabungkan View dan Compose. Perubahan ini juga memastikan bahwa saat Anda membuat UI menggunakan komponen Compose Material, persyaratan minimum untuk aksesibilitas target sentuh akan terpenuhi.
Perbaikan Bug
- Menambahkan beberapa informasi debug yang lebih baik untuk Layout Inspector saat memeriksa pengubah target sentuh minimum. (aosp/1955036)
Versi 1.1.0-rc01
15 Desember 2021
androidx.compose.material:material-*:1.1.0-rc01
dirilis. Versi 1.1.0-rc01 berisi commit ini.
Perbaikan Bug
- Memperbaiki radius sudut yang diterapkan untuk
Checkbox
(I38b03, b/175198975, b/202309440)
Versi 1.1.0-beta04
1 Desember 2021
androidx.compose.material:material-*:1.1.0-beta04
dirilis. Versi 1.1.0-beta04 berisi commit ini.
Fitur Baru
- Diupdate agar kompatibel dengan Kotlin
1.6.0
Versi 1.1.0-beta03
17 November 2021
androidx.compose.material:material-*:1.1.0-beta03
dirilis. Versi 1.1.0-beta03 berisi commit ini.
Versi 1.1.0-beta02
3 November 2021
androidx.compose.material:material-*:1.1.0-beta02
dirilis. Versi 1.1.0-beta02 berisi commit ini.
Perbaikan Bug
- Ripple dan indikasi lainnya sekarang hanya akan tertunda jika berada dalam container Modifier.scrollable(), bukan selalu tertunda untuk peristiwa down. (Ibefe0, b/203141462)
Versi 1.1.0-beta01
27 Oktober 2021
androidx.compose.material:material-*:1.1.0-beta01
dirilis. Versi 1.1.0-beta01 berisi commit ini.
Fitur Baru
- Ripple kini mendukung status arahkan kursor dan fokus, sehingga pengarahan kursor/pemfokusan komponen seperti Button kini akan menampilkan overlay status yang benar.
Versi 1.1.0-alpha06
13 Oktober 2021
androidx.compose.material:material-*:1.1.0-alpha06
dirilis. Versi 1.1.0-alpha06 berisi commit ini.
Perubahan API
- Overload tanpa turunan untuk Layout telah ditambahkan, dengan peningkatan efisiensi (Ib0d9a)
- Implementasi
ExposedDropdownMenu
berdasarkanExposedDropdownMenuBox
denganTextField
danDropdownMenu
di dalamnya (If60b2) dismissOnOutsideClick
ditambahkan kePopupProperties
, menggantikandismissOnClickOutside
yang tidak digunakan lagi. Properti baru menerima posisi klik dan batas anchor, yang memberikan kontrol yang lebih baik atas apakah onDismissRequest harus dipanggil atau tidak. Misalnya, hal ini dapat berguna untuk mencegah penutupan anchor untuk sentuhan pada anchor.updateAndroidWindowManagerFlags
telah ditambahkan kePopupProperties
, menawarkan kontrol tingkat rendah atas flag yang diteruskan oleh pop-up ke Android WindowManager. Parameter lambda akan menjadi flag yang dihitung dari nilai PopupProperties yang menghasilkan flag WindowManager: misalnya focusable. Hasil lambda akan menjadi flag akhir yang akan diteruskan ke Android WindowManager. Secara default, updateAndroidWindowManagerFlags tidak akan mengubah flag yang dihitung dari parameter. API ini harus digunakan dengan hati-hati, hanya jika pop-up memiliki persyaratan perilaku yang sangat spesifik. (I6e9f9)
Versi 1.1.0-alpha05
29 September 2021
androidx.compose.material:material-*:1.1.0-alpha05
dirilis. Versi 1.1.0-alpha05 berisi commit ini.
Perubahan API
- Menambahkan ukuran target sentuh minimum untuk komponen Material yang tidak memiliki target sentuh yang dapat diakses. Karena ini menambahkan ruang tambahan di sekitar komponen untuk memastikannya memiliki target sentuh yang cukup besar, hal ini dapat mengubah UI yang ada yang mengasumsikan ukuran komponen ini adalah ukuran visualnya, dan tidak memperhitungkan ukuran target sentuh. Anda dapat menggunakan lokal komposisi
LocalMinimumTouchTargetEnforcement
eksperimental untuk menonaktifkan perilaku ini di seluruh hierarki, tetapi ini hanya dimaksudkan sebagai solusi sementara saat memperbarui UI yang ada untuk memperhitungkan ukuran minimum baru. (I9b966, b/149691127, b/171509422) - Menambahkan antarmuka TextFieldColorsWithIcons eksperimental, yang memperluas TextFieldColors untuk menyediakan InteractionSource ke leadingColor dan trailingColor. Ini memungkinkan modifikasi tampilan TextField sesuai dengan status fokus. (I66923, b/198402662)
Versi 1.1.0-alpha04
15 September 2021
androidx.compose.material:material-*:1.1.0-alpha04
dirilis. Versi 1.1.0-alpha04 berisi commit ini.
Perubahan API
performGesture
danGestureScope
tidak digunakan lagi, telah diganti denganperformTouchInput
danTouchInjectionScope
. (Ia5f3f, b/190493367)- Menambahkan
touchBoundsInRoot
keSemanticsNode
termasuk ukuran target sentuh minimum sehingga developer dapat memastikan bahwa target sentuh memenuhi batas minimum aksesibilitas. (I2e14b, b/197751214)
Perbaikan Bug
- Mengizinkan klip untuk memperluas batas target sentuh di luar area klip untuk tujuan target sentuh minimum. (I43e10, b/171509422)
- Memperbarui composable
Divider
untuk mengamatiDp.Hairline
bagi parameter thickness guna mendukung penggambaran pembagi piksel tunggal terlepas dari kepadatan tampilan. (I16ffb, b/196840810)
Versi 1.1.0-alpha03
1 September 2021
androidx.compose.material:material-*:1.1.0-alpha03
dirilis. Versi 1.1.0-alpha03 berisi commit ini.
Fitur Baru
- Mengupdate Compose
1.1.0-alpha03
agar bergantung pada Kotlin1.5.30
. (I74545)
Perubahan API
- Metode pengujian telah ditambahkan agar mendapatkan batas yang terpotong. (I6b28e)
- Ukuran target sentuh minimum ditambahkan ke ViewConfiguration agar digunakan dalam semantik dan input pointer untuk memastikan aksesibilitas. (Ie861c)
Versi 1.1.0-alpha02
18 Agustus 2021
androidx.compose.material:material-*:1.1.0-alpha02
dirilis. Versi 1.1.0-alpha02 berisi commit ini.
Kontribusi Eksternal
- Memperbaiki perilaku SwipeableState jika selisih geser berada dalam error pembulatan anchor. (I03d39, b/191993377)
Versi 1.1.0-alpha01
4 Agustus 2021
androidx.compose.material:material-*:1.1.0-alpha01
dirilis. Versi 1.1.0-alpha01 berisi commit ini.
Perubahan API
- Memperbarui metode
DrawScope#drawImage
yang menggunakan rect sumber dan tujuan untuk menggunakan parameter FilterQuality opsional. Hal ini berguna untuk seni piksel yang memang sengaja dibuat menjadi piksel saat diskalakan untuk seni berbasis piksel. Mengupdate composable BitmapPainter + Image agar menggunakan parameter FilterQuality opsional juga (Ie4fb0, b/180311607) - Mengganti nama BadgeBox menjadi BadgedBox, mengubah parameter agar menerima composable Badge. Menambahkan komponen Badge yang merupakan konten badge standar untuk BadgedBox. (I639c6)
- Menambahkan komponen NavigationRail; lihat dokumen dan contoh untuk informasi penggunaannya (I8de77)
Perbaikan Bug
- Menambahkan contoh NavigationRail rata bawah dan demo aplikasi Catalog. (I3cffc)
- Dialog sekarang mengikuti perilaku pengubahan ukuran platform. Setel usePlatformDefaultWidth ke salah (false) untuk mengganti perilaku ini. (Iffaed, b/192682388)
- Menambahkan demo navigation-rail ke aplikasi katalog. (I04960)
- Demo badge ditambahkan ke aplikasi katalog. (If285d)
Versi 1.0
Versi 1.0.5
3 November 2021
androidx.compose.material:material-*:1.0.5
dirilis. Versi 1.0.5 berisi commit ini.
Perbaikan Bug
- Memperbaiki instance derivedStateOf pelacakan error. (aosp/1792247)
Versi 1.0.4
13 Oktober 2021
androidx.compose.material:material-*:1.0.4
dirilis. Versi 1.0.4 berisi commit ini.
Update Dependensi
- Diupdate agar bergantung pada Kotlin
1.5.31
Versi 1.0.3
29 September 2021
androidx.compose.material:material-*:1.0.3
dirilis. Versi 1.0.3 berisi commit ini.
Update Dependensi
- Diupdate agar bergantung pada Kotlin
1.5.30
Versi 1.0.2
1 September 2021
androidx.compose.material:material-*:1.0.2
dirilis. Versi 1.0.2 berisi commit ini.
Diupdate untuk mendukung rilis Compose 1.0.2
. Compose 1.0.2
masih kompatibel dengan Kotlin 1.5.21
.
Versi 1.0.1
4 Agustus 2021
androidx.compose.material:material-*:1.0.1
dirilis. Versi 1.0.1 berisi commit ini.
Update Dependensi
- Diupdate agar bergantung pada Kotlin
1.5.21
.
Versi 1.0.0
28 Juli 2021
androidx.compose.material:material-*:1.0.0
dirilis. Versi 1.0.0 berisi commit ini.
Fitur utama 1.0.0
Ini adalah rilis stabil pertama Compose. Lihat blog Rilis Compose resmi untuk mengetahui detail selengkapnya.
Masalah Umum
Jika menggunakan Android Studio Bumblebee Canary 4 atau AGP
7.1.0-alpha04
/7.1.0-alpha05
, Anda mungkin mengalami error berikut:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Untuk memperbaikinya, tingkatkan minSdkVersion Anda sementara waktu ke 24+ di file
build.gradle
. Masalah ini akan diperbaiki di versi Android Studio Bumblebee berikutnya dan AGP7.1
. (b/194289155)
Versi 1.0.0-rc02
14 Juli 2021
androidx.compose.material:material-*:1.0.0-rc02
dirilis. Versi 1.0.0-rc02 berisi commit ini.
Perbaikan Bug
- Dialog sekarang mengikuti perilaku pengubahan ukuran platform. Setel
usePlatformDefaultWidth
ke salah (false) untuk mengganti perilaku ini. (Iffaed, b/192682388)
Versi 1.0.0-rc01
1 Juli 2021
androidx.compose.material:material-*:1.0.0-rc01
dirilis. Versi 1.0.0-rc01 berisi commit ini.
Perubahan API
- Menambahkan komponen
BadgeBox
, lihat dokumen dan contoh untuk mengetahui informasi penggunaannya (I5e284) useDefaultMaxWidth
diPopupProperties
diganti namanya menjadiusePlatformDefaultWidth
. (I05710)- Dialog kini dapat menggunakan seluruh lebar layar. (I83929, b/190810877)
- Menambahkan implementasi Range Slider Eksperimental (I2f4b3)
Perbaikan Bug
- Agar selaras dengan spesifikasi Desain Material, OutlinedTextField dengan input yang tidak valid berhenti menggunakan warna error untuk label saat label digunakan sebagai placeholder. Hal ini berlaku jika tidak ada teks input dalam kolom teks dan kolom teks tidak dalam fokus. Dengan perubahan tersebut, arti parameter
error:Boolean
di fungsiTextFieldColors.labelColor()
juga berubah: parameter tersebut sekarang akan menampilkanfalse
bahkan saat input tidak valid jika label digunakan sebagai placeholder. (I45f78)
Versi 1.0.0-beta09
16 Juni 2021
androidx.compose.material:material-*:1.0.0-beta09
dirilis. Versi 1.0.0-beta09 berisi commit ini.
Perubahan API
- Menambahkan parameter Shape ke OutlinedTextField agar dapat menyesuaikan bentuk batas (I8f39e, b/181322957)
- TextOverflow diubah menjadi class inline. (I433af)
Perbaikan Bug
- Scrim dalam BottomDrawer, BackdropScaffold, dan ModalBottomSheetLayout akan hilang, lalu Color.Unspecified diteruskan (I2d899, b/182063309)
Aturan Profil yang Ditambahkan
Rilis ini menambahkan aturan profil ke modul Compose berikut (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Apa itu aturan profil?
Aturan profil untuk library ditentukan dalam file teks
baseline-prof.txt
yang berada disrc/main
atau direktori yang setara. File ini menetapkan aturan per baris. Dalam hal ini, aturan adalah pola untuk pencocokan dengan metode atau class dalam library. Sintaksis untuk aturan ini adalah superset dari format profil ART yang dapat dibaca manusia yang digunakan saat menggunakanadb shell profman --dump-classes-and-methods ...
. Aturan ini menggunakan salah satu dari dua bentuk untuk ditarget, yaitu metode atau class.Aturan metode akan memiliki pola berikut:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Dan aturan class akan memiliki pola berikut:
<CLASS_DESCRIPTOR>
Di sini,
<FLAGS>
adalah satu atau beberapa karakterH
,S
, danP
untuk menunjukkan apakah metode ini harus ditandai sebagai "Hot", "Startup", atau "Post Startup".<CLASS_DESCRIPTOR>
adalah deskripsi untuk class tempat metode yang ditargetkan berada. Misalnya, classandroidx.compose.runtime.SlotTable
akan memiliki deskripsiLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
adalah tanda tangan metode, dan menyertakan nama, jenis parameter, serta jenis nilai yang ditampilkan metode. Misalnya, metodefun isPlaced(): Boolean
padaLayoutNode
memiliki tanda tanganisPlaced()Z
.Pola ini dapat memiliki karakter pengganti (
**
,*
, dan?
) agar memiliki satu aturan yang mencakup beberapa metode atau class.
Apa fungsi aturan tersebut?
Metode yang memiliki flag
H
menunjukkan bahwa metode ini adalah metode "hot", dan harus dikompilasi sebelumnya.Metode yang memiliki flag
S
menunjukkan bahwa ini adalah metode yang dipanggil saat memulai, dan harus dikompilasi terlebih dahulu untuk menghindari biaya kompilasi dan penafsiran metode tersebut pada waktu mulai.Metode yang memiliki flag
P
menunjukkan bahwa ini adalah metode yang dipanggil setelah memulai.Class yang ada dalam file ini menunjukkan bahwa class digunakan saat memulai dan harus dialokasikan sebelumnya di heap untuk menghindari biaya pemuatan class.
Bagaimana cara kerjanya?
- Library dapat menentukan aturan ini yang akan dikemas dalam artefak AAR. Saat APK kemudian dibuat dengan menyertakan artefak ini, aturan ini digabung menjadi satu dan aturan yang digabungkan digunakan untuk membuat profil ART biner ringkas yang khusus untuk APK. ART kemudian dapat memanfaatkan profil ini saat APK diinstal pada perangkat untuk mengompilasi subset aplikasi tertentu terlebih dahulu guna meningkatkan performa aplikasi, terutama saat dijalankan pertama kali. Perhatikan bahwa tindakan ini tidak akan berpengaruh pada aplikasi yang dapat di-debug.
Versi 1.0.0-beta08
2 Juni 2021
androidx.compose.material:material-*:1.0.0-beta08
dirilis. Versi 1.0.0-beta08 berisi commit ini.
Fitur Baru
Perubahan API yang Dapat Menyebabkan Gangguan Perilaku
- GANGGUAN PERILAKU: Card kini menggunakan klik, sehingga membuat klik yang ditambahkan melalui
Card(Modifier.clickable)
menjadi tanpa pengoperasian. Gunakan overload eksperimental baru untuk Card yang menerima onClick. (Ia8744, b/183775620)- Menambahkan overload Card baru yang menangani klik serta fungsi yang dapat diklik lainnya: indication, interactionSource, enabled/disabled. Penggunaan Card biasa yang tidak dapat diklik dengan
Modifier.clickable
tidak memungkinkan karena Card tidak akan memangkas indikasi ripple dalam kasus tersebut.
- Menambahkan overload Card baru yang menangani klik serta fungsi yang dapat diklik lainnya: indication, interactionSource, enabled/disabled. Penggunaan Card biasa yang tidak dapat diklik dengan
- GANGGUAN PERILAKU: Surface kini menggunakan klik, sehingga membuat klik yang ditambahkan melalui
Surface(Modifier.clickable)
menjadi tanpa pengoperasian. Gunakan overload eksperimental baru untuk Surface yang menerima onClick. (I73e6c, b/183775620)- Menambahkan overload Surface baru yang menangani klik serta fungsi yang dapat diklik lainnya: indication, interactionSource, enabled/disabled. Penggunaan Surface biasa yang tidak dapat diklik dengan
Modifier.clickable
tidak memungkinkan karena Surface tidak akan memangkas indikasi ripple dalam kasus tersebut.
- Menambahkan overload Surface baru yang menangani klik serta fungsi yang dapat diklik lainnya: indication, interactionSource, enabled/disabled. Penggunaan Surface biasa yang tidak dapat diklik dengan
Perubahan API
FabPosition
dikonversi ke class inline dari enum untuk mendukung potensi perluasan di masa mendatang (I030fb)- Memfaktorkan ulang penggunaan enum ke class inline untuk menghindari masalah pernyataan when menyeluruh saat nilai enum baru ditambahkan. (I2b5eb)
- Menambahkan waktu tunggu ketuk untuk yang dapat diklik/dapat dialihkan agar tidak menampilkan ripple selama aktivitas scroll/tarik (Ia2704, b/168524931)
- Properti semantik ContentDescription dan Text bukan lagi nilai tunggal, melainkan daftar. Hal ini memungkinkan untuk menggabungkannya sebagai daftar, bukan penyambungan. Juga disediakan API pengujian yang lebih baik untuk memanfaatkan perubahan ini (Ica6bf, b/184825850)
Modifier.focusModifier()
tidak digunakan lagi dan diganti denganModifier.focusTarget()
(I6c860)- Mengganti enum
FocusState
dengan antarmukaFocusState
(Iccc1a, b/187055290) - Menghapus
LocalRippleNativeRendering
karena penerapan ripple yang didukung View sudah stabil (I7fab3, b/188569367)
Perbaikan Bug
Modifier.onGloballyPositioned()
diubah untuk melaporkan koordinat pengubah ini dalam rantai pengubah, bukan koordinat tata letak setelah menerapkan semua pengubah. Artinya, kini urutan pengubah memengaruhi koordinat yang akan dilaporkan. (Ieb67d, b/177926591)- Menambahkan README untuk katalog Compose Material yang ada. (If9191)
Versi 1.0.0-beta07
18 Mei 2021
androidx.compose.material:material-*:1.0.0-beta07
dirilis. Versi 1.0.0-beta07 berisi commit ini.
Perubahan API
- Anda tidak perlu lagi menggunakan metode ekstensi untuk dukungan rute di Navigation Compose. (I22beb, b/172823546)
Versi 1.0.0-beta06
5 Mei 2021
androidx.compose.material:material-*:1.0.0-beta06
dirilis. Versi 1.0.0-beta06 berisi commit ini.
Perubahan API
- Ripple telah dimigrasikan untuk menggunakan
RippleDrawable
secara internal di perangkat Android. Artinya, animasi ripple akan terjadi di RenderThread, sehingga akan lancar bahkan saat UI thread sedang dimuat, seperti saat menavigasi antar-layar. Tindakan ini tidak mengubah antarmuka API ripple, tetapi mungkin terdapat perubahan perilaku yang diakibatkan oleh perubahan ini. Untuk membantu migrasi,LocalRippleNativeRendering
telah ditambahkan - berikan nilaifalse
ke CompositionLocal ini untuk kembali ke implementasi ripple sebelumnya di dalam CompositionLocalProvider. API ini bersifat sementara dan akan dihapus di masa mendatang, jadi jika Anda mengalami masalah yang menyebabkan Anda menggunakan API ini, laporkan bug. (I902f8, b/168777351, b/183019123) - Menambahkan API aksesibilitas CollectionInfo dan CollectionItemInfo yang memungkinkan untuk menandai koleksi beserta itemnya untuk layanan aksesibilitas (Id54ef, b/180479017)
- Menambahkan API aksesibilitas
error
yang memungkinkan untuk menandai node berisi input yang tidak valid (I12997, b/180584804, b/182142737)
Perbaikan Bug
- Memperbarui implementasi inset katalog Compose Material dari: https://github.com/google/accompanist/pull/365. (I25dc3)
- Turunan Row & Column dengan ketebalan (fill = false) tidak lagi membuat induknya mengisi seluruh ruang sumbu utama yang tersedia. (Ied94d, b/186012444, b/184355105)
Versi 1.0.0-beta05
21 April 2021
androidx.compose.material:material-*:1.0.0-beta05
dirilis. Versi 1.0.0-beta05 berisi commit berikut ini.
Perbaikan Bug
- Menambahkan gambar kartu komponen, alat pilih tema, dan URL menu yang lebih spesifik ke katalog Compose Material yang sudah ada. (I9b58e)
Versi 1.0.0-beta04
7 April 2021
androidx.compose.material:material-*:1.0.0-beta04
dirilis. Versi 1.0.0-beta04 berisi commit berikut ini.
Perubahan API
- PERUBAHAN API: Status
DrawerState
tidak lagi memperpanjang SwipeableState eksperimental.- PERUBAHAN API:
BottomDrawerState
kini ditandai sebagai Eksperimental, agar cocok dengan komponen BottomDrawer Eksperimental (I81114, b/181656094)
- PERUBAHAN API:
- Mengganti nama
hideSoftwareKeyboard
danshowSoftwareKeyboard
diSoftwareKeyboardController
menjadihide()
danshow()
.- Memberikan antarmuka CompositionLocal lengkap untuk LocalSoftwareKeyboardController, sehingga dapat ditetapkan (sangat berguna dalam pengujian) (I579a6)
- API aksesibilitas LiveRegion ditambahkan. Jika node ditandai sebagai live region, layanan aksesibilitas akan otomatis memberi tahu pengguna tentang perubahannya (Idcf6f, b/172590946)
Perbaikan Bug
- Menambahkan implementasi katalog Compose Material ke modul yang ada. Saat ini tidak ada: gambar kartu komponen, alat pilih tema (akan ditambahkan dalam perubahan berikutnya). (Ie7a94)
Versi 1.0.0-beta03
24 Maret 2021
androidx.compose.material:material-*:1.0.0-beta03
dirilis. Versi 1.0.0-beta03 berisi commit ini.
Perubahan API
DefaultMonotonicFrameClock
tidak digunakan lagi. MemanggilwithFrameNanos
atauRecomposer.runRecomposeAndApplyChanges
tanpaMonotonicFrameClock
sekarang akan menampilkanIllegalStateException
. (I4eb0d)- Menambahkan API
LeadingIconTab
baru untuk mendukung ditampilkannya ikon dan teks inline di tab. (I23267)
Kontribusi Eksternal
- [oleh Jossi Wolf]
BottomDrawer
sekarang menggabungkan konten slot panel samping.BottomDrawer
tidak menampilkanIllegalStateException
saat induk memiliki tinggi yang tak terbatas. Panel samping bawah sekarang akan terbuka ke status diluaskan jika panel tersebut lebih kecil 50% dari induknya. Dokumen tentangBottomDrawerState
danModalBottomSheetLayoutState
telah diperbarui.BottomDrawerState#isOpen
sekarang akan menampilkan nilai benar (true) jika dalam status terbuka atau diluaskan. (I87241)
Versi 1.0.0-beta02
10 Maret 2021
androidx.compose.material:material-*:1.0.0-beta02
dirilis. Versi 1.0.0-beta02 berisi commit berikut ini.
Perubahan API
- Menambahkan API lokal komposisi
LocalSoftwareKeyboardController
baru untuk menggantikan antarmukaSoftwareKeyboardController
sebelumnya di TextField. (I5951e, b/168778053)
Perbaikan Bug
- Menerapkan batasan di penggunaan API eksperimental publik (I6aa29, b/174531520)
- Mengubah perataan horizontal default untuk TopAppBar dan BottomAppBar untuk Start, konsisten dengan Row (Ib2dc7)
- Menambahkan modul dan UI placeholder baru untuk katalog Compose Material, yang saat ini bertingkat dalam demo pengujian integrasi yang ada. (Idfcb3)
androidx.compose.ui:ui
tidak lagi bergantung pada AppCompat atau Fragment. Jika Anda menggunakan ComposeView di aplikasi, dan Anda menggunakan Fragment dan/atau AppCompat, pastikan bahwa Anda menggunakan AppCompat 1.3+/Fragment 1.3+ - versi ini diperlukan untuk menyetel siklus proses dengan benar dan pemilik status tersimpan yang diperlukan untuk ComposeView. (I1d6fa, b/161814404)
Versi 1.0.0-beta01
24 Februari 2021
androidx.compose.material:material-*:1.0.0-beta01
dirilis. Versi 1.0.0-beta01 berisi commit ini.
Ini adalah rilis pertama Compose 1.0.0 Beta.
Perubahan API
- Pengubah ukuran telah diganti namanya. Modifier.width/height/size diganti namanya menjadi requiredWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize diganti namanya menjadi width/height/size. (I5b414)
- imageResource dan vectorResource sekarang merupakan fungsi ekstensi pada pendamping ImageBitmap dan ImageVector. Fungsi load{Image,Vector,Font}Resource telah dihapus. (I89130)
- Pengubah ukuran ke intrinsik tidak lagi bersifat eksperimental. (I15744)
- Menghapus pernyataan dp (I798d2)
- Menghapus callback SoftwareKeyboardController dari semua kolom teks, untuk segera diganti dengan API baru. (Iae869, b/168778053)
- Lambda tindakan Switch, Checkbox, dan RadioButton kini nullable. Contoh Checkbox-in-clickable-row diupdate untuk menggunakan fitur ini. (If601b, b/171819073)
InteractionState
telah diganti dengan[Mutable]InteractionSource
- Antarmuka bertanggung jawab untuk mengirimkan/mengumpulkan peristiwa Interaksi.
- Daripada meneruskan
interactionState = remember { InteractionState() }
ke komponen sepertiButton
danModifier.clickable()
, gunakaninteractionSource = remember { MutableInteractionSource() }
. - Sebagai ganti:
Interaction.Pressed in interactionState
Anda sebaiknya menggunakan fungsi ekstensi di InteractionSource, seperti InteractionSource.collectIsPressedAsState(). - Untuk kasus penggunaan yang kompleks, Anda dapat menggunakan InteractionSource.interactions untuk mengamati streaming Interaksi. Lihat dokumentasi InteractionSource dan contoh untuk informasi selengkapnya.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Menambahkan antarmuka AccessibilityManager dan LocalAccessibilityManager di CompositionLocals (I53520)
- Menghapus metode LayoutCoordinates yang tidak digunakan lagi dan menggunakan fungsi, bukan properti, untuk positionInParent dan boundsInParent (I580ed, b/169874631, b/175142755)
- Slider kini mendukung status diaktifkan/dinonaktifkan (I6d56b, b/179793072)
- Membuat TextInputSession baru untuk sesi input dari komponen teks tingkat rendah seperti CoreTextField. (I8817f, b/177662148)
- AnimationEndReason.Interrupted dihapus. CancellationException akan dilempar jika animasi terhenti. (I2cbbc, b/179695417)
- Menghapus
@ExperimentalRippleApi
dan mengubahRippleAlpha
menjadi class dengan properti, bukan antarmuka. (I6df7c) - Menambahkan antarmuka TextFieldColors untuk mewakili berbagai warna yang digunakan di TextField dan OutlinedTextField di status yang berbeda. Untuk implementasi default, lihat TextFieldDefaults.textFieldColors dan TextFieldDefaults.outlinedTextFieldColors.
- Mengganti nama parameter isErrorValue di dalam TextField dan OutlinedTextField menjadi isError. (I831f9, b/171305338, b/168004067)
- Menambahkan pengubah selectionGroup yang memungkinkan untuk menandai koleksi Tab atau RadioButtons untuk tujuan aksesibilitas (Ie5c29)
Menambahkan LazyListState.animateScrollToItem
Metode ini dapat men-scroll ke item tertentu dalam daftar dengan lancar. (I4bfd7)
ScrollableState.smoothScrollBy()
diganti namanya menjadianimateScrollBy()
LazyListState.snapToItemIndex()
diganti namanya menjadiscrollToItem()
ScrollState.smoothScrollTo()
diganti namanya menjadianimateScrollTo()
(I35ded)Semua composable yang ditandai dengan
@ReadOnlyComposable
kini divalidasi di waktu kompilasi untuk memastikan bahwa komponen tersebut hanya melakukan panggilan ke@ReadOnlyComposables
lainnya (I58961)TargetAnimation API telah dihapus. (If47d1, b/177457083)
Posisi scroll di Modifier.verticalScroll()/horizontalScroll() kini ditampilkan dengan Ints (I81298)
Paket metode smoothScrollBy dan scrollBy berubah menjadi
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)FlingConfig telah berganti nama menjadi FlingBehavior dan kini memungkinkan penyesuaian animasi yang ditangguhkan, bukan Decay yang telah ditentukan. (I02b86, b/175294473)
Pengubah ukuran telah diganti namanya. Modifier.width/height/size diganti namanya menjadi requiredWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize diganti namanya menjadi width/height/size. (I5b414)
defaultMinSizeConstraints berganti nama menjadi defaultMinSize. (I4eaae)
Orientation telah dipindahkan ke paket foundation. VelocirtTracker dipindahkan dari ui.gesture ke ui.input.pointer. (Iff4a8, b/175294473)
drawerState.open() dan drawerState.close() sekarang menjadi fungsi penangguhan. Gunakan rememberCoroutineScope() untuk mendapatkan cakupan komposisi untuk memanggilnya (I16f60, b/175294473)
Providers telah diganti namanya menjadi CompositionLocalProvider
- Konstruktor Composition tidak lagi menerima parameter kunci, dan sudah tidak digunakan lagi.
- currentCompositeKeyHash telah diubah menjadi properti tingkat atas composable, bukan fungsi tingkat atas composable.
- CompositionData dan CompositionGroup telah dipindahkan ke namespace androidx.compose.runtime.tooling
- ComposableLambda telah dibuat sebagai antarmuka, bukan class konkret, dan tidak lagi memiliki parameter jenis.
- ComposableLambdaN telah dibuat sebagai antarmuka, bukan class konkret, dan tidak lagi memiliki parameter jenis.
- Fungsi snapshotFlow telah dipindahkan ke namespace androidx.compose.runtime
- Metode penggabungan SnapshotMutationPolicy tidak lagi bersifat eksperimental
- Fungsi clearRoots level atas
@TestOnly
telah dihapus. Fungsi tersebut tidak diperlukan lagi. - Fungsi keySourceInfoOf dan resetSourceInfo telah dihapus. Fungsi tersebut tidak diperlukan lagi.
- Composer.collectKeySourceInformation telah dihapus. Fungsi tersebut tidak diperlukan lagi.
- Metode isJoinedKey, joinedKeyLeft, dan joinedKeyRight telah dihapus. Fungsi tersebut tidak diperlukan lagi.
- Berbagai API tingkat atas telah dipindahkan dan diatur ulang menjadi file yang berbeda. Karena semantik class file Kotlin, ini akan memutus kompatibilitas biner, tetapi tidak dengan kompatibilitas sumber, sehingga tidak menjadi masalah bagi sebagian besar pengguna.
- (I99b7d, b/177245490)
Modifier.scrollable telah dikerjakan ulang. Kini menggunakan antarmuka Scrollable, bukan class ScrollableController (I4f5a5, b/174485541, b/175294473)
Modifier.draggable kini menerima DraggableState dan bukan lambda sederhana. Anda dapat membuat status melalui
rememberDraggableState { delta -> }
untuk mendapatkan perilaku yang sama seperti sebelumnya (Ica70f, b/175294473)ZoomableController.smoothScaleBy dan ZoomableController.stopAnimation kini fungsi penangguhan. (I7f970, b/177457083)
Menghapus beberapa API sebelumnya yang tidak digunakan lagi (Ice5da, b/178633932)
Membuat perubahan Material API berikut:
- Menambahkan parameter contentPadding ke Top/BottomAppBar untuk memungkinkan penyesuaian padding default.
- Mengurutkan ulang parameter dalam BackdropScaffold untuk mengikuti panduan API bagi parameter wajib sebelum parameter opsional.
- Memindahkan parameter
icon
di BottomNavigationItem ke setelahselected
danonClick
. - Mengganti nama parameter
alwaysShowLabels
di BottomNavigationItem menjadialwaysShowLabel
. - Mengganti nama parameter
bodyContent
di beberapa komponen menjadi hanyacontent
. - Mengurutkan ulang parameter di
ButtonDefaults.buttonColors()
. Harap perhatikan bahwa karena jenis parameter tidak berubah, hal ini tidak akan menyebabkan error di kode Anda. Pastikan Anda menggunakan parameter bernama atau memperbarui urutannya secara manual. Jika tidak, kode Anda tidak akan berfungsi sama seperti sebelumnya. - Menambahkan parameter
secondaryVariant
kedarkColors()
. Warna ini biasanya sama dengansecondary
dalam tema gelap, tetapi menambahkan konsistensi dan penyesuaian lebih lanjut. - Menghapus ElevationDefaults dan animateElevation() dari tampilan API publik karena tidak umum digunakan/berguna.
- Mengganti nama
onValueChangeEnd
diSlider
menjadionValueChangeFinished
dan membuatnya nullable. - Mengganti nama parameter
text
diSnackbar
menjadicontent
untuk konsistensi. - Menambahkan parameter
contentPadding
keDropdownMenuItem
untuk memungkinkan penyesuaian padding default dan menjadikancontent
sebagai ekstensi diRowScope
. - Mengganti nama
ModalDrawerLayout
menjadiModalDrawer
. - Mengganti nama
BottomDrawerLayout
menjadiBottomDrawer
. - (I1cc66)
BasicTextField kini menerima Brush, bukan Color untuk penyesuaian yang lebih baik (I83a36)
imageResource dan vectorResource sekarang merupakan fungsi ekstensi pada pendamping ImageBitmap dan ImageVector. Fungsi load{Image,Vector,Font}Resource telah dihapus. (I89130)
Mengubah Indication#createIndication() menjadi Indication#rememberUpdatedIndication(InteractionState) dan menghapus parameter InteractionState dari IndicationInstance#drawIndication(). IndicationInstance seharusnya hanya bertanggung jawab untuk efek visual gambar, dan tidak meluncurkan animasi/status penulisan sebagai respons terhadap perubahan InteractionState. Animasi dan penulisan status ini seharusnya terjadi dalam
rememberUpdatedIndication()
. Parameterindication
diModifier.indication
juga diubah menjadi parameter wajib. (Ic1764, b/152525426)
Perbaikan Bug
- Menambahkan API lokal komposisi LocalSoftwareKeyboardController baru untuk menggantikan antarmuka SoftwareKeyboardController sebelumnya di TextField. (I658b6, b/168778053)
Versi 1.0.0-alpha12
10 Februari 2021
androidx.compose.material:material-*:1.0.0-alpha12
dirilis. Versi 1.0.0-alpha12 berisi commit ini.
Perubahan API
- Modifier.pointerInput sekarang mengharuskan kunci remember untuk menunjukkan kapan coroutine deteksi input pointer harus dimulai ulang untuk dependensi baru. (I849cd)
- BottomDrawerLayout dan ListItem telah ditandai sebagai @ExperimentalMaterialApi (Id766e)
- PaddingValues.Absolute telah ditambahkan dan dapat digunakan dalam API yang menerima PaddingValues. (Ia5f30)
- onImeActionPerformed tidak digunakan lagi. Sebagai gantinya, gunakan KeyboardActions (If0bbd, b/179071523)
- Untuk lebih mencocokkan konvensi penamaan dengan ImageBitmap dan ImageVector, ImagePainter diganti namanya menjadi BitmapPainter ke VectorPainter paralel. (Iba381, b/174565889)
- Animatable.snapTo dan Animatable.stop sekarang menangguhkan fungsi (If4288)
- ComponentActivity.setContent telah dipindahkan ke androidx.activity.compose.setContent di dalam modul androidx.activity:activity-compose. (Icf416)
- Metode penataan dan copy() telah dihapus dari beberapa class yang jarang digunakan. (I26702, b/178659281)
- Membuat halfExpand() dan expand() di internal ModalBottomSheetState (Ic914e)
- Mengubah Indication#createInstance menjadi @Composable, dan mengubah LocalIndication agar dapat memuat sebuah Indication, bukan () -> Indication. (I5eeea, b/157150564)
- Memindahkan AlertDialog dan DropdownMenu menjadi Android hanya untuk saat ini. Menambahkan parameter PopupProperties ke DropdownMenu untuk konfigurasi lebih lanjut Popup dasar. (I9c443)
- loadFontResource tidak digunakan lagi. Sebagai gantinya, gunakan fontResource. imageResource, loadImageResource, vectorResource, dan loadVectorResource tidak digunakan lagi. Sebagai gantinya, gunakan painterResource. (I6b809)
- Menghapus parameter
toggle
dantoggleModifier
dari DropdownMenu, dan mengganti namadropdownModifier
,dropdownOffset
dandropdownContent
masing-masing menjadimodifier
,offset
, dancontent
. DropdownMenu sekarang berperilaku konsisten terhadapPopup
, dengan tata letak induk digunakan untuk posisi menu. Dalam sebagian besar kasus, Anda dapat memindahkantoggle
untuk menjadi pasanganDropdownMenu
dan menggabungkan keduanya diBox
. Lihat contoh yang diupdate dalam dokumentasi untuk mengetahui informasi selengkapnya tentang penggunaan API ini. (I884fb) - toIntPx() diganti namanya menjadi roundToPx(). (I9b7e4, b/173502290)
- IntBounds diganti namanya menjadi IntRect dan API-nya telah diperbaiki. (I1f6ff)
- Menambahkan tindakan semantik expand dan collapse. Menambahkan expand dan halfExpand di ModalBottomSheetState (Ib5064)
- Modifier.dragGestureFilter sudah tidak digunakan lagi. Sebagai gantinya, gunakan
Modifier.pointerInput { detectDragGestures (...)}
. Atau, gunakan Modifier.draggable untuk menarik satu sumbu (I0ba93, b/175294473) - Mengganti nama Ambients agar cocok dengan penggantian nama Ambient -> CompositionLocal. Ambients sebelumnya bernama AmbientFoo, dan sekarang CompositionLocals diberi nama LocalFoo. (I2d55d)
- Selection telah dipindahkan ke foundation. (I7892b)
- Sama seperti saat kami menghapus composable
state { 0 }
dan kini mempromosikan penggunaan sepertiremember { mutableStateOf(0) }
, kami juga akan menghapus composablesavedInstanceState { 0 }
. Sebagai gantinya, Anda harus menggunakanrememberSaveable { mutableStateOf(0) }
dan tindakan ini akan disimpan dan otomatis dipulihkan jika jenis yang digunakan dalam MutableState dapat disimpan di Bundle. Jika sebelumnya Anda meneruskan objek saver kustom, sekarang Anda harus menggunakan overload rememberSaveable baru yang memiliki parameterstateSaver
. Penggunaannya akan terlihat seperti ini:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Menambahkan ProgressBarRangeInfo.Indeterminate guna menandai status progres tidak pasti untuk aksesibilitas (I6fe05)
@ComposableContract tidak digunakan lagi dan digantikan dengan tiga anotasi yang lebih spesifik.
@ComposableContract(restartable = false)
telah menjadi@NonRestartableComposable
@ComposableContract(readonly = true)
telah menjadi@ReadOnlyComposable
@ComposableContract(preventCapture = true)
telah menjadi@DisallowComposableCalls
@ComposableContract(tracked = true)
telah dihapus.- (I60a9d)
Utilitas
emptyContent()
dan(@Composable () -> Unit).orEmpty()
tidak digunakan lagi karena tidak lagi memiliki dampak atau nilai performa yang bagus (I0484d)rememberSavedInstanceState() telah diganti namanya menjadi rememberSaveable() dan dipindahkan ke paket androidx.compose.runtime.saveable. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), dan autoSaver telah dipindahkan dari androidx.compose.runtime.savedinstancestate ke androidx.compose.runtime.saveable (I77fe6)
Parameter di RounderCornerShape, CutCornerShape, dan CornerBasedShape telah diganti namanya dari kiri/kanan menjadi awal/akhir untuk mendukung pencerminan otomatis bentuk ke arah rtl. AbsoluteRounderCornerShape dan AbsoluteCutCornerShape digunakan saat pencerminan otomatis tidak diinginkan. (I61040, b/152756983)
Mengubah parameter
text
danicon
Tab, serta parameterlabel
BottomNavigationItem menjadi nullable untuk menyampaikan perilaku komponen dengan lebih baik saat parameter ini disediakan/tidak disediakan karena ini akan memengaruhi ukuran dan tata letak komponen. Jika saat ini Anda mengirimkanemptyContent()
agar tidak menampilkan teks/ikon/label, sebaiknya gunakannull
. (I57ed4)Mengganti nama parameter warna contentColorFor menjadi backgroundColor (I5bb67)
TabDefaults tidak digunakan lagi dan menggantinya dengan TabRowDefaults. (I0f189)
Memperkenalkan ColorMatrix API yang digunakan untuk mengubah nilai rgb di konten sumber Memfaktorkan ulang ColorFilter API menjadi antarmuka dan sesuai dengan implementasi PathEffect. (Ica1e8)
AnimatedValue/Float sekarang tidak digunakan lagi. Sebagai gantinya, gunakan Animatable. (I71345, b/177457083)
Menambahkan SemanticsProperties.PaneTitle API. (I20d5a)
Menambahkan parameter yang diaktifkan ke Tab dan BottomNavigationItem agar keduanya tidak dapat diklik. Mengubah BottomNavigationItem menjadi RowScope.BottomNavigationItem agar dapat menyatakan persyaratan tata letak di API-nya lebih baik. (Id683d)
tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter, dan pressIndicaitonGestureFilter tidak digunakan lagi. Sebagai gantinya, gunakan Modifier.clickable atau Modifier.pointerInput dengan fungsi detectTapGestures. (I6baf9, b/175294473)
Tambahkan parameter layoutDirection ke createOutline Shape. Ini memungkinkan untuk membuat bentuk sadar arah tata letak. (I57c20, b/152756983)
Recomposer.current()
dihapus. [Abstract]ComposeView kini disetel secara default ke Recomposer dengan cakupan jendela dan dibuat secara lambat yang dikelola oleh ViewTreeLifecycleOwner untuk jendela. Tick animasi berbasis Recomposition dan withFrameNanos dijeda selama Lifecycle host dihentikan. (I38e11)
Perbaikan Bug
- Ukuran ikon kini akan ditingkatkan agar sesuai dengan ukurannya dengan memperhatikan pengubah ukuran yang diterapkan padanya. Misalnya, sekarang
Icon(.., modifier = Modifier.size(50.dp)
akan menggambar dalam ruang berukuran 50x50 dp. (Ib2ba9, b/178796190)
Versi 1.0.0-alpha11
28 Januari 2021
androidx.compose.material:material-*:1.0.0-alpha11
dirilis. Versi 1.0.0-alpha11 berisi commit ini.
Perubahan API
- Meningkatkan beberapa Material API agar tidak lagi menjadi
@Experimental
(I5d20e) - Parameter deskripsi konten telah ditambahkan ke Image dan Icon. Digunakan untuk memberikan deskripsi ke layanan aksesibilitas (I2ac4c)
- Mengubah antarmuka parameter stateful Material agar memiliki fungsi @Composable yang menampilkan
State<T>
. MenambahkanAnimatable.asState()
untuk mempermudah konversi Animatable menjadi State. Selain itu, mengubah juga animateElevation menjadi ekstensi yang ditangguhkan di Animatable. (If613c) - Snackbar, SnackbarHost, SnackbarHostState sudah bukan lagi
@ExperimentalMaterialAPI
(Id1fb5) - Mengubah Typography, Shapes, dan TabPosition agar tidak lagi menjadi class data. Menambahkan fungsi salin untuk Typography dan Shapes guna menggantikan keduanya yang telah dibuat. (I40037)
- Menghapus beberapa API Material yang tidak digunakan lagi sebelumnya (Ifaa25)
Perbaikan Bug
- onCommit, onDispos, dan onActive sudah tidak digunakan lagi dan digantikan dengan API SideEffect dan DisposableEffect (If760e)
- Transition berbasis TransitionDefinition sudah tidak digunakan lagi (I0ac57)
- State awal di updateTransition sekarang didukung (Ifd51d)
- WithConstraints didesain ulang sebagai BoxWithConstraints dan dipindahkan ke foundation.layout. (I9420b, b/173387208)
Menghentikan penggunaan scrollBy yang tidak ditangguhkan, menghapus scrollTo yang tidak ditangguhkan
Sebaiknya gunakan fungsi menangguhkan untuk mengontrol scrolling dan tunggu hingga scroll selesai. Kami menghentikan penggunaan dan/atau menghapus versi fungsi ini yang tidak ditangguhkan sebagai bagian dari transisi ini. (Ie9ced)
Menghentikan penggunaan smoothScrollBy yang tidak ditangguhkan Sebaiknya gunakan fungsi menangguhkan untuk mengontrol scrolling dan tunggu hingga scroll selesai. Kami menghentikan penggunaan versi fungsi ini yang tidak ditangguhkan sebagai bagian dari transisi ini. (I12880)
Memperkenalkan
ComposeContentTestRule
, yang memperluasComposeTestRule
dan menentukansetContent
, yang telah dihapus dariComposeTestRule
. Menambahkan metode factorycreateEmptyComposeRule()
yang menampilkanComposeTestRule
dan tidak meluncurkan Aktivitas untuk Anda. Gunakan ini jika Anda ingin meluncurkan Aktivitas selama pengujian, misalnya menggunakanActivityScenario.launch
(I9d782, b/174472899)Ripple yang digunakan di Button dan FloatingActionButton tidak dapat disesuaikan lagi dengan menyediakan Indication baru melalui AmbientIndication karena cara ini tidak pernah dimaksudkan untuk menyesuaikan komponen ini dan sekarang cara ini membuat komponen ini konsisten dengan komponen Material lainnya. Untuk menyesuaikan Ripple di seluruh aplikasi, lihat RippleTheme. (I546c5)
animateAsState sekarang menjadi animateFooAsState dengan Foo merupakan jenis variabel yang dianimasikan. misalnya, Float, Dp, Offset, dll. (Ie7e25)
BasicTextField menerima parameter baru bernama
decorationBox
. Dengan ini, penambahan dekorasi seperti ikon, placeholder, label, dan sejenisnya ke kolom teks dan perluasan area target klik dapat dilakukan. (I16996)Memperbaiki bug yang menyebabkan lebar kolom teks material tidak dapat disetel kurang dari 280.dp (I78373)
Parameter canDrag telah dihapus dari Modifier.draggable (Ic4bec, b/175294473)
Menghapus displaySize karena harus dihindari. Biasanya, lebih baik gunakan ukuran onRoot() atau minimal ukuran jendela. (I62db4)
Sekarang Surface dapat memiliki beberapa turunan tata letak. (I66a92, b/144488459)
invalidate dan compositionReference() sekarang tidak digunakan lagi dan masing-masing telah digantikan dengan currentRecomposeScope dan rememberCompositionReference. (I583a8)
Mengubah PopupPositionProvider untuk menggunakan koordinat relatif jendela, bukan koordinat global. Mengganti nama parentGlobalBounds menjadi anchorBounds, dan mengubah windowGlobalBounds menjadi
windowSize: IntSize
(I2994a)Duration dan Uptime akan diganti dengan milidetik Long, dan langkah ini akan menghapus dependensi input pointer di class tersebut. (Ia33b2, b/175142755, b/177420019)
AnimatedFloat.fling yang menerima FlingConfig telah dihapus. Sebagai gantinya, gunakan Animatable.animateDecay yang ditangguhkan. (I4659b, b/177457083)
clickable, toggleable, and selectable sekarang bisa dibuat di luar komposisi (I0a130, b/172938345, b/175294473)
Easing telah diubah menjadi antarmuka fungsional (Ib14e5)
ScrollableColumn/Row tidak digunakan lagi. Menggunakan ScrollableColumn kurang efisien dibandingkan dengan LazyColumn jika Anda memiliki konten scroll yang besar karena dengan LazyColumn kami hanya dapat menulis/mengukur/menggambar elemen yang terlihat. Untuk mencegah pengguna menggunakan cara yang tidak efisien, kami memutuskan untuk menghentikan penggunaan ScrollableColumn dan ScrollableRow serta mempromosikan penggunaan LazyColumn dan LazyRow. Pengguna tetap dapat memutuskan bahwa mereka tidak memerlukan perilaku lambat dan menggunakan pengubah secara langsung seperti ini: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
Metode factory
items(count: Int)
baru untuk cakupan LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
danitemsIndexed(items: List)
kini merupakan fungsi ekstensi sehingga Anda harus mengimpornya secara manual saat digunakan. Kelebihan ekstensi baru untuk Array:items(items: Array)
danitemsIndexed(Array)
(I803fc, b/175562574)Menghapus metode monotonicFrameAnimationClockOf eksperimental (Ib753f, b/170708374)
Menghentikan penggunaan metode koordinat global dan membuat metode koordinat berbasis jendela yang baru. (Iee284)
Menambahkan Modifier.toolingGraphicsLayer yang menambah pengubah lapisan grafis saat pemeriksaan diaktifkan. (I315df)
FocusRequester.createRefs kini ditandai sebagai eksperimental karena mungkin berubah. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden diganti namanya menjadi invisibleToUser dan ditandai @ExperimentalComposeUiApi. AccessibilityRangeInfo diganti namanya menjadi ProgressBarRangeInfo. stateDescriptionRange diganti namanya menjadi progressBarRangeInfo. AccessibilityScrollState diganti namanya menjadi ScrollAxisRange. horizontalAccessibilityScrollState diganti namanya menjadi horizontalScrollAxisRange. verticalAccessibilityScrollState diganti namanya menjadi verticalScrollAxisRange. (Id3148)
Memanfaatkan TestCoroutineDispatcher dalam pengujian (I532b6)
Mengupdate API grafik vektor untuk mendukung penguraian penambahan tint yang diterapkan ke root grafik vektor. (Id9d53, b/177210509)
Versi 1.0.0-alpha10
13 Januari 2021
androidx.compose.material:material-*:1.0.0-alpha10
dirilis. Versi 1.0.0-alpha10 berisi commit ini.
Perubahan API
- Mengubah Velocity agar memiliki bagian komponen dan operasi matematika. (Ib0447)
- Mengganti nama
@ExperimentalTesting
menjadi@ExperimentalTestApi
agar konsisten dengan anotasi API eksperimental yang serupa (Ia4502, b/171464963) - Mengganti nama Position menjadi DpOffset dan menghapus getDistance() (Ib2dfd)
- Mengganti nama Color.useOrElse() menjadi Color.takeOrElse() (Ifdcf5)
- Menambahkan Toggle ke Strings.kt foundation (I4a5b7, b/172366489)
- FlowRow dan FlowColumn tidak digunakan lagi. Gunakan tata letak kustom sebagai gantinya. (I09027)
- Modifier.focus() dan Modifier.focusRequester() tidak digunakan lagi. Gunakan Modifier.focusModifier() dan Modifier.focusReference() sebagai gantinya. (I75a48, b/175160751, b/175160532, b/175077829)
- Memindahkan nativeClass ke modul ui dan membuatnya internal. Penggunaan nativeClass yang diperbarui sama dengan implementasi untuk menggunakan 'is MyClass' sebagai gantinya. (I4f734)
Perbaikan Bug
- Menambahkan dukungan untuk kolom teks yang dinonaktifkan dan hanya baca (I35279, b/171040474, b/166478534)
animate()
sekarang diganti dengananimateAsState()
, yang menampilkanState<T>
, bukanT
. Hal ini memungkinkan performa yang lebih baik, karena cakupan pembatalan validasi dapat dipersempit ke tempat nilai State dibaca. (Ib179e)- Menambahkan API peran Semantik dan menambahkan Peran sebagai parameter ke SemanticsModifier yang dapat diklik, dipilih, dan diubah. Mengubah Modifier.progressSemantics agar Penggeser juga dapat menggunakannya. (I216cd)
Versi 1.0.0-alpha09
16 Desember 2020
androidx.compose.material:material-*:1.0.0-alpha09
dirilis. Versi 1.0.0-alpha09 berisi commit ini.
Perubahan API
- menambahkan API untuk memicu animasi penyelesaian secara manual dan menarik Modifier.swipeable (Iaa17a, b/162408885)
- Mengganti nama objek *Constants seperti ButtonConstants agar diakhiri dengan Defaults, misalnya ButtonDefaults. Juga menghapus awalan
default
yang tidak diperlukan dari properti dalam objek baru ini. (Ibb915, b/159982740) Compose mendukung pengambil properti yang dapat membuat pemanggilan composable. Dukungan untuk ini tidak akan dihapus, tetapi sintaksis untuk mendeklarasikan pengambil properti sebagai @Composable akan berubah.
Sintaksis yang kini tidak digunakan lagi untuk melakukan tindakan ini adalah dengan menganotasi properti itu sendiri:
@Composable val someProperty: Int get() = ...
Sintaksis yang sekarang benar untuk melakukan tindakan ini adalah dengan menganotasi pengambil properti:
val someProperty: Int @Composable get() = ...
Kedua sintaksis akan berfungsi selama beberapa waktu, tetapi sintaksis yang tidak digunakan lagi pada akhirnya akan menjadi error kompilasi. (Id9197)
Menambahkan library
androidx.compose.material:material-ripple
yang berisi API ripple agar komponen interaktif dapat dibuat tanpa memerlukan library Material lainnya. rememberRippleIndication sudah tidak digunakan lagi dan diganti dengan rememberRipple. (Ibdf11)
Perbaikan Bug
- Lambda pada pengubah offset kini menampilkan IntOffset, bukan Float. (Ic9ee5, b/174137212, b/174146755)
Memfaktorkan ulang ShaderBrush untuk membuat instance shader dengan lambat saat informasi pengaturan ukuran lingkungan gambar tersedia. Ini berguna untuk menentukan gradien yang memenuhi batas gambar penuh fungsi composable pada waktu komposisi, tanpa harus menerapkan implementasi DrawModifier kustom.
Menghentikan penggunaan API konstruktor fungsi gradien dan menggantinya dengan metode factory pada objek Gradient. (I511fc, b/173066799)
Modifier.focusObserver tidak digunakan lagi. Gunakan Modifier.onFocusChanged atau Modifier.onFocusEvent sebagai gantinya (I30f17, b/168511863, b/168511484)
Menghentikan penggunaan LazyColumnFor, LazyRowFor, LazyColumnForIndexed, dan LazyRowForIndexed. Gunakan LazyColumn dan LazyRow sebagai gantinya (I5b48c)
Memindahkan Dp.VectorConverter, Position.VectorConverter, dll. ke animasi inti, dan tidak menggunakan lagi VectorConveters lama (If0c4b)
Autofill API kini menjadi API eksperimental dan mewajibkan keikutsertaan (I0a1ec)
Menambahkan deklarasi destrukturisasi untuk membuat instance FocusRequester (I35d84, b/174817008)
accessibilityLabel diganti namanya menjadi contentDescription. accessibilityValue diganti namanya stateDescription. (I250f2)
Fungsi infiniteRepeatable untuk membuat InfiniteRepeatableSpec (I668e5)
Perilaku positioning DropdownMenus sedikit berubah sesuai dengan spesifikasi Material. (I34c72, b/168594123)
Dukungan InteractionState untuk TextFields telah ditambahkan. (I61d91)
Menambahkan Modifier.clearAndSetSemantics untuk menghapus semantik turunan dan menetapkan yang baru. (I277ca)
Memindahkan ContentDrawScope ke modul ui-graphics agar bersama dengan DrawScope. (Iee043, b/173832789)
Versi 1.0.0-alpha08
2 Desember 2020
androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha08
dirilis. Versi 1.0.0-alpha08 berisi commit berikut ini.
Perubahan API
- MaterialTheme kini menetapkan warna yang tepat untuk handle pemilihan dan latar belakang pilihan. Aplikasi Non-Material dapat menggunakan AmbientTextSelectionColors secara manual untuk menyesuaikan warna yang digunakan untuk pemilihan. (I1e6f4, b/139320372, b/139320907)
- Menambahkan pemeriksaan lint untuk penamaan dan posisi parameter lambda composable, agar konsisten dengan pedoman Compose.
Selain itu, memigrasikan beberapa API menggunakan
children
sebagai nama untuk lambda akhirnya kecontent
, sesuai dengan pemeriksaan lint dan panduan. (Iec48e) - Mengganti nama VectorAsset menjadi ImageVector Memindahkan dan mengganti nama VectorAsset menjadi Builder untuk menjadikan class dalam ImageVector sesuai pedoman dewan API. Menambahkan typealias VectorAssetBuilder ke link ke ImageVector.Builder untuk compat. (Icfdc8)
- Mengganti nama ImageAsset dan metode terkait menjadi ImageBitmap. (Ia2d99)
- Memindahkan properti semantik dasar ke ui (I6f05c)
fun RippleIndication()
sudah tidak digunakan lagi dan diganti denganrememberRippleIndication()
agar konsisten dengan API lain. (Id8e2c)- Menambahkan parameter singeLine ke BasicTextField, TextField, dan OutlineTextField. Setel parameter ini ke benar (true) untuk membuat kolom teks menjadi satu baris yang dapat di-scroll secara horizontal. (I57004, b/168187755)
Perbaikan Bug
- Menambahkan tindakan semantik Dismiss (I2b706)
- Memindahkan DrawModifier API dari paket androidx.compose.ui ke paket androidx.compose.ui.draw. Membuat file DrawModifierDeprecated.kt untuk menyertakan metode typealiases/helper guna membantu migrasi dari API yang tidak digunakan lagi ke API saat ini. (Id6044, b/173834241)
- Mengganti nama Modifier.drawLayer menjadi Modifier.graphicsLayer Juga memperbarui class terkait ke GraphicsLayer sesuai masukan API. (I0bd29, b/173834241)
<T>
telah dihapus dari deklarasi SubcomposeLayout. Kini Anda dapat menggunakannya tanpa menentukan jenis. (Ib60c8)- Menambahkan Modifier.scale/rotate
API agar memudahkan untuk drawLayer.
- Mengganti nama
Modifier.drawOpacity
menjadiModifier.alpha
- Mengganti nama
Modifier.drawShadow
menjadiModifier.shadow
(I264ca, b/173208140)
- Mengganti nama
- Parameter perataan Box diganti namanya menjadi contentAlignment. (I2c957)
- Pengubah offsetPx diganti namanya menjadi offset. Pengubah tersebut kini mengambil parameter lambda, bukan State. (Ic3021, b/173594846)
- Memperkenalkan SweepGradientShader API dan SweepGradientBrush API. (Ia22c1)
- Menambahkan pemeriksaan lint untuk parameter Modifier dalam fungsi Composable. Pemeriksaan lint ini memeriksa penamaan, jenis nilai yang ditampilkan, nilai default, dan urutan parameter agar konsisten dengan pedoman Compose. (If493b)
- Mengupdate TextFieldValue API
- menjadikan TextFieldValue.composition hanya baca
- menghapus pengecualian yang dimunculkan untuk rentang pilihan yang tidak valid (I4a675, b/172239032)
- Menambahkan overload
Modifier.drawLayer()
baru. Dibutuhkan blok lambda pada GraphicsLayerScope baru tempat Anda menentukan parameter lapisan dengan cara yang memungkinkan untuk melewatkan rekomposisi dan penataan letak ulang saat perubahan status terjadi. DrawLayerModifier kini sedang disiapkan untuk memigrasikan logikanya ke dalam metodeplaceable.placeWithLayer()
LayoutModifier (I15e9f, b/173030831) - Ambient yang tidak digunakan lagi dinamai dengan
Ambient
sebagai akhirannya, dan menggantinya dengan properti baru yang diawali dengan Ambient, mengikuti pedoman Ambients dan Compose API lainnya. (I33440) - Menambahkan pemeriksaan lint untuk memeriksa apakah factory Modifier menggunakan
androidx.compose.ui.composed {}
secara internal, bukan ditandai sebagai@Composable
. (I3c4bc) - Argumen semantik mergeAllDescendants diganti namanya menjadi mergeDescendants. (Ib6250)
- Kontrol waktu dalam pengujian (TestAnimationClock dan penggunaannya) kini bersifat eksperimental (I6ef86, b/171378521)
- Menghapus modul ui-test lama dan stub-nya (I3a7cb)
- TextUnit.Inherit diganti namanya menjadi TextUnit.Unspecified agar konsisten dengan unit lain. (Ifce19)
- Antarmuka Alignment telah diperbarui dan berfungsi. (I46a07, b/172311734)
- Nama id diganti menjadi layoutId untuk LayoutIdParentData. Measurable.id diganti namanya menjadi Measurable.layoutId. (Iadbcb, b/172449643)
Versi 1.0.0-alpha07
11 November 2020
androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha07
dirilis. Versi 1.0.0-alpha07 berisi commit berikut ini.
Perubahan API
- Emphasis sudah tidak digunakan lagi dan digantikan dengan AmbientContentAlpha. AmbientContentAlpha merupakan abstraksi sederhana yang mewakili alfa konten pilihan untuk bagian hierarki dan ini mirip dengan cara AmbientContentColor mewakili warna konten pilihan. Teks dan Ikon kini menggunakan nilai saat ini dari AmbientContentAlpha secara default, dan Anda dapat secara manual melakukan:
color.copy(alpha = AmbientContentAlpha.current)
agar memiliki efek yang sama dalam komponen. Daripada menggunakan ProvideEmphasis, Anda dapat langsung memberikan nilai melalui AmbientContentAlpha, dan menggunakan level default baru di ContentAlpha untuk menggantikan EmphasisLevels lama. (Idf03e, b/159017896) - Menambahkan androidx.compose.material.AmbientContentColor untuk mengganti androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
- Menambahkan androidx.compose.material.Text untuk mengganti androidx.compose.foundation.Text sebagai komponen Teks tingkat tinggi yang bertema. Untuk komponen teks dasar yang tidak menggunakan gaya warna/teks dari tema, gunakan BasicText. (Ie6ae0)
- Menambahkan maxLines ke TextFields (Ib2a5b)
- Mengupdate TextFields untuk menerima KeyboardOptions (Ida7f3)
- Kini permukaan menggunakan elevasi (total) mutlak saat menghitung overlay ketinggian sehingga Permukaan yang ditambahkan di atas Permukaan lain akan menggunakan elevasi gabungan untuk menggambar overlay. (I7bd2b, b/171031040)
Perbaikan Bug
captureToBitmap
dipindahkan kecaptureToImage
. (I86385)- Fondasi AmbientTextStyle, ProvideTextStyle, dan AmbientContentColor sudah tidak digunakan lagi. Sebagai gantinya, gunakan versi baru yang tersedia di library Material. Untuk aplikasi non-Material, Anda harus membuat ambient tema khusus sistem desain sendiri yang dapat dipakai dalam komponen sendiri. (I74acc, b/172067770)
- foundation.Text sudah tidak digunakan lagi dan diganti dengan material.Text. Untuk API teks dasar tidak terkonfigurasi yang tidak memakai nilai dari tema, lihat androidx.compose.foundation.BasicText. (If64cb)
- Mengganti nama KeyboardOptions sebagai ImeOptions (I82f36)
- Memindahkan KeyboardType dan ImeAction ke KeyboardOptions (I910ce)
- BaseTextField sudah tidak digunakan lagi. BasicTextField digunakan sebagai gantinya. (I896eb)
- Anotasi ExperimentalSubcomposeLayoutApi dihapus. SubcomposeLayout kini dapat digunakan tanpa menambahkan @OptIn (I708ad)
- FirstBaseline dan LastBaseline dipindahkan ke paket androidx.compose.ui.layout (Ied2e7)
- Memperbarui Icon API untuk menggunakan Color.Unspecified sebagai warna tint yang akan menggambar aset atau painter yang disediakan tanpa ColorFilter. Sebelumnya, upaya untuk mengabaikan penambahan tint dengan Color.Unspecified akan menambahkan tint berwarna transparan yang berakhir tanpa ada yang dirender. (I049e2, b/171624632)
- relativePaddingFrom diganti namanya menjadi paddingFrom. Pengubah paddingFromBaseline ditambahkan, karena memudahkan penentuan jarak dari batas tata letak ke dasar pengukuran teks. (I0440a, b/170633813)
- LaunchedTask diganti namanya menjadi LaunchedEffect agar konsisten dengan SideEffect dan DisposableEffect API. LaunchedEffect tanpa parameter subjek tidak diizinkan agar mendorong praktik terbaik. (Ifd3d4)
- MeasureResult dikeluarkan dari MeasureScope. (Ibf96d, b/171184002)
- Beberapa simbol terkait tata letak dipindahkan dari androidx.compose.ui ke androidx.compose.layout.ui. (I0fa98, b/170475424)
Versi 1.0.0-alpha06
28 Oktober 2020
androidx.compose.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha06
dirilis. Versi 1.0.0-alpha06 berisi commit berikut ini.
Perubahan API
- androidx.compose.foundation.Icon telah dipindahkan ke androidx.compose.material.Icon. Anda juga dapat menggunakan komponen Image/Modifier.paint() dengan Painter jika tidak ingin menggunakan library Material. (I9f622)
- Menambahkan FloatingActionButtonElevation untuk merepresentasikan elevasi yang digunakan oleh FAB di berbagai keadaan. Lihat FloatingActionButtonConstants.defaultElevation() untuk mengetahui implementasi default (I2d4f5)
- Menambahkan antarmuka SwitchColors untuk merepresentasikan warna yang digunakan oleh Switch di berbagai keadaan. Lihat SwitchConstants.defaultColors untuk menyesuaikan warna ini. (I93805)
- Menambahkan antarmuka ButtonElevation dan ButtonColors untuk merepresentasikan elevasi dan warna yang digunakan oleh tombol di berbagai keadaan. Lihat fungsi default di ButtonConstants untuk menyesuaikan parameter ini. (Ic5b7b)
- Menambahkan antarmuka RadioButtonColors untuk merepresentasikan warna yang digunakan oleh RadioButton di berbagai keadaan. Lihat RadioButtonConstants.defaultColors() untuk menyesuaikan warna yang digunakan di berbagai keadaan. (I74130)
- Menambahkan antarmuka CheckboxColors untuk merepresentasikan warna yang digunakan oleh kotak centang di berbagai keadaan. Lihat CheckboxConstants.defaultColors() untuk menyesuaikan warna yang digunakan di berbagai keadaan. (I7dbdb)
Perbaikan Bug
- Komponen material tidak lagi menetapkan elevasi sebagai zIndex. Artinya, dalam induk yang sama, turunan dengan ukuran bayangan yang lebih besar tidak akan otomatis digambar pada turunan dengan ukuran bayangan yang lebih kecil. Jika Anda masih memerlukan perilaku tersebut, tetapkan Modifier.zIndex() secara manual bila perlu (I70417, b/170623932)
- Tidak lagi menggunakan VectorPainter untuk kepentingan rememberVectorPainter agar lebih menunjukkan bahwa API composable secara internal memanfaatkan 'remember' untuk mempertahankan data di seluruh komposisi. (Ifda43)
- Mengaktifkan transisi di ComposeTestRule; menghapus opsi untuk mengaktifkan kursor yang berkedip dari ComposeTestRule. (If0de3)
- Menambahkan opsi keyboard satu baris ke CoreTextField (I72e6d)
- Mengganti nama Radius API menjadi CornerRadius untuk menyatakan penggunaannya secara lebih baik di seluruh Compose. Memperbarui dokumen untuk menunjukkan bahwa radius sudut negatif dikunci ke nol. (I130c7, b/168762961)
- DrawScope dan ContentDrawScope
yang difaktorkan ulang menjadi antarmuka,
bukan class abstrak
- Membuat implementasi CanvasDrawScope dari DrawScope
- Implementasi DrawScope yang difaktorkan ulang untuk menggunakan CanvasScope sebagai gantinya
- Membuat DrawContext guna menggabungkan dependensi untuk DrawScope
- Menghapus metode yang tidak digunakan lagi di DrawScope (I56f5e)
- Box dibuat menjadi fungsi inline. (Ibce0c, b/155056091)
Versi 1.0.0-alpha05
14 Oktober 2020
androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha05
dirilis. Versi 1.0.0-alpha05 berisi commit berikut ini.
Perubahan API
- Pop-ups dan dialogs sekarang mewarisi FLAG_SECURE dari Jendela induk. Juga menambahkan opsi untuk mengonfigurasi ini secara eksplisit (I64966, b/143778148, b/143778149)
- Secara default, Modifier.swipeable kini memiliki nilai minimum status sebesar 56.dp (Iab825, b/168610267)
- semua status scaffold yang ditandai sebagai @Stable. drawerGesturesEnabled dalam ScaffoldState dipindahkan ke Scaffold itu sendiri. (I36645, b/168297016)
- Untuk menghapus jenis nullable dari parameter lambda Scafold, Anda dapat menggunakan emptyContent() untuk menyatakan tidak ada konten untuk parameter tertentu. (I2b318, b/157633857, b/158551084)
Tidak lagi menggunakan API contentColor() dan currentTextStyle(), dan menggantinya masing-masing dengan ambient AmbientContentColor dan AmbientTextStyle. Anda dapat mengakses nilai saat ini dengan menggunakan
.current
di properti ambient, seperti dengan ambient lainnya. Perubahan ini dilakukan demi konsistensi dan untuk menghindari banyaknya cara untuk menyelesaikan hal yang sama. Selain itu, mengganti nama properti ambient tertentu untuk mendeskripsikan tujuannya dengan lebih baik sebagai berikut:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Penambahan AmbientElevationOverlay memungkinkan penyesuaian/penonaktifan overlay elevasi default yang diterapkan pada Surface dalam tema gelap. (I5b74d)
Perbaikan Bug
- Sebagai bagian dari standardisasi nilai sentinel untuk class inline, ganti nama Color.Unset ke Color.Unspecified agar konsisten dengan class inline lainnya (I97611, b/169797763)
- TextOverflow.None diperkenalkan. Bila tambahan adalah Tidak Ada, Teks tidak akan lagi menangani tambahan, dan akan melaporkan ukuran sebenarnya ke LayoutNode. (I175c9, b/158830170)
- launchInComposition diganti nama menjadi LaunchedTask agar sesuai dengan pedoman Compose API (I99a8e)
- OnPositionedModifier diganti nama menjadi OnGloballyPositionedModifier dan onPositioned() diganti nama menjadi onGloballyPositioned(). (I587e8, b/169083903)
Versi 1.0.0-alpha04
1 Oktober 2020
androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha04
dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.
Perubahan API
- Mengekspos parameter InteractionState dalam komponen Material stateful, untuk memungkinkan penarikan status dan pembacaan/pengontrolan status. (Iaca5f, b/168025711, b/167164434)
- Mengubah parameter
*color
di RadioButton dan TriStateCheckbox untuk memungkinkan penyesuaian sepenuhnya warna yang digunakan di setiap status, serta perubahan cara warna dianimasikan antar-status jika diinginkan. Lihat fungsi warna animateDefault* baru di CheckboxConstants dan RadioButtonConstants untuk informasi selengkapnya. (I1c532) - Mengganti nama rememberBackdropState menjadi rememberBackdropScaffoldState dan menambahkan parameter tambahan untuk jam animasi. Mengganti nama parameter backdropScaffoldState BackdropScaffold menjadi hanya scaffoldState. Mengganti nama BackdropConstants menjadi BackdropScaffoldConstants. (Ib644d)
- Menambahkan komponen BottomSheetScaffold eksperimental. (Ie02f0, b/148996320)
- Menambahkan komponen ModalBottomSheetLayout eksperimental. (Ic209e, b/148996320)
- Mengganti nama ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation menjadi defaultElevation, dan sekarang menampilkan nilai Dp, bukan AnimatedValue. (I5f3ed)
Perbaikan Bug
- Mengupdate banyak Graphics API
- Mengupdate API transformasi skala dan rotasi untuk menggunakan parameter Offset tunggal guna mewakili koordinat pivot, bukan parameter float terpisah untuk koordinat x/y di DrawScope dan DrawTransform
- Menghapus metode Rect.expandToInclude dan Rect.join
- Memperbarui dokumentasi Radius untuk menetapkan oval, selain eliptis
- Menambahkan dokumentasi yang menunjukkan bahwa konstruktor publik untuk class Radius inline tidak akan dipanggil secara langsung, tetapi objek Radius harus dibuat instance-nya melalui konstruktor fungsinya
- Menghapus RoundRect API untuk mengkueri topRight, bottomRight, bottomCenter, dll.
- Rect.shift tidak digunakan lagi dan digantikan dengan Rect.translate
- Menghapus API RoundRect.grow dan Rect.shrink
- Mengganti nama RoundRect.outerRect menjadi Rect.boundingRect
- Menghapus metode RoundRect.middleRect/tallMiddleRect/wideMiddleRect dan Rect.isStadium
- Mengganti nama RoundRect.longestSide menjadi RoundRect.maxDimension
- Mengganti nama RoundRect.shortestSide menjadi RoundRect.minDimension
- Mengubah RoundRect.center menjadi properti, bukan fungsi
- Mengupdate konstruktor RoundRect untuk menggunakan properti Radius, bukan parameter individual untuk nilai radius x/y
- Menghapus Size API yang mengasumsikan sebagai Rectangle dengan asal pada 0,0
- Menambahkan API penghancuran ke Radius
- Memigrasikan berbagai fungsi ekstensi RoundRect sebagai properti
- (I8f5c7, b/168762961)
- foundation.Box sudah tidak digunakan lagi. Sebagai gantinya, gunakan foundation.layout.Box. (Ie5950, b/167680279)
- Stack diganti namanya menjadi Box. Box yang sudah ada sebelumnya tidak akan digunakan lagi sebagai ganti Box baru di compose.foundation.layout. Perilaku Box baru adalah untuk menumpuk turunan satu per satu jika ada beberapa turunan - ini berbeda dari Box sebelumnya, yang berperilaku mirip dengan Column. (I94893, b/167680279)
- Parameter dekorasi box tidak digunakan lagi. Jika Anda ingin memiliki dekorasi/padding di box, gunakan Modifier (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Mengupdate banyak Graphics API
- Mengupdate DrawScope API ke metode transformasi tercakup untuk menunjukkan bahwa transformasi hanya diterapkan dalam callback dan dihapus setelah callback dipanggil
- Memperbarui dokumentasi clipPath untuk merujuk ke Path, bukan persegi panjang bulat
- Memperbaiki spasi dalam dokumentasi untuk parameter yang tepat di clipPath
- Mengganti nama DrawScope.drawCanvas menjadi drawIntoCanvas dan menghapus parameter ukuran
- Mengganti nama parameter dx/dy dalam metode inset menjadi horizontal dan vertikal
- Menambahkan kelebihan inset yang memberikan nilai inset yang sama ke 4 batas
- Menghapus dokumentasi tentang metode inset yang menunjukkan bahwa inset tersebut akan diterapkan ke 4 sisi
- Memperbarui dokumentasi untuk class Rect
- Memperbarui komentar tentang parameter Rect agar cocok dengan gaya kdoc
- Menghapus Rect.join dan Rect.expandToInclude
- Membuat overload untuk Rect.translate(offset) dan Rect.shift yang tidak digunakan lagi
- (If086a, b/167737376)
- Kami mencegah impor statis konten dari cakupan tata letak (misalnya, alignWithSiblings di RowScope). Sebagai gantinya, alternatif cakupan eksplisit harus digunakan:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Versi 1.0.0-alpha03
16 September 2020
androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha03
dirilis. Versi 1.0.0-alpha03 berisi commit berikut ini.
Perubahan API
- Mengganti nama parameter
onSelect
dariBottomNavigationItem
menjadionClick
(I91925, b/161809324) - Menambahkan parameter InteractionState ke BottomNavigationItem dan Tab, yang memungkinkan penarikan status ini dan menyesuaikan tampilan komponen dalam status yang berbeda. (Ia3e9e, b/168025711)
- Menghapus parameter
disabledBackgroundColor
dandisabledContentColor
dari tombol. Sebagai gantinya, gunakan fungsi warna default baru di dalam ButtonConstants. Jika Anda telah menyetel contentColor/backgroundColor secara eksplisit, sebaiknya Anda menggunakan fungsi default ini dan menyesuaikan beberapa/semua parameter agar tidak menimpa warna untuk status diaktifkan/dinonaktifkan. (If9b52) - Warna latar belakang Textfield tidak menerapkan lagi alfa transparansi secara implisit. Sebagai gantinya, warna apa pun yang disediakan melalui parameter backgroundColor akan diterapkan secara langsung. (Iecee9, b/167951441)
- InnerPadding diganti namanya menjadi PaddingValues. (I195f1, b/167389171)
- Parameter
resistanceFactorAtMin
danresistanceFactorAtMax
diModifier.swipeable
diganti dengan parameter ketahanan tunggal. MetodedefaultResistanceConfig
baru telah ditambahkan diSwipeableConstants
. (I54238) - Menambahkan dukungan elevasi stateful animasi untuk Button dan FloatingActionButton. Elevasi sekarang menganimasikan antara status default dan ditekan. Untuk menyesuaikan elevasi antarstatus, gunakan
ButtonConstants.defaultAnimatedElevation()
danFloatingActionButtonConstants.defaultAnimatedElevation()
, bukan menyetel nilai Dp tetap dalam semua kasus. (I37925) - Label menjadi parameter opsional di dalam TextField dan OutlinedTextField (I267f6, b/162234081)
Perbaikan Bug
- Fungsi pengujian global seperti
onNode
atauwaitForIdle
kini tidak digunakan lagi. Bermigrasilah ke fungsi versi baru yang ditetapkan di ComposeTestRule (I7f45a) - DpConstraint dan API yang menggunakannya tidak digunakan lagi. (I90cdb, b/167389835)
- Parameter minWidth dan maxWidth dari widthIn diganti namanya menjadi min dan maks. Demikian pula untuk preferredWidthIn, heightIn, preferredHeightIn. (I0e5e1, b/167389544)
- Menghapus tindakan semantik scroll maju/mundur. Menambahkan langkah di AccessibilityRangeInfo. (Ia47b0)
- Penggunaan gravitasi secara konsisten diganti namanya menjadi untuk meratakan atau perataan dalam API tata letak. (I2421a, b/164077038)
- Menambahkan onNode dan metode global lainnya di ComposeTestRule karena metode global yang ada saat ini akan segera dihentikan. (Ieae36)
- Memindahkan
createAndroidComposeRule
danAndroidInputDispatcher
dariandroidx.ui.test.android
keandroidx.ui.test
(Idef08, b/164060572)
Versi 1.0.0-alpha02
2 September 2020
androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha02
dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Perubahan API
- Menambahkan komponen BackdropScaffold eksperimental. (Iad908)
Perbaikan Bug
- Matrix4 diganti dengan Matrix. Semua bagian lain dari paket vectormath telah dihapus. (Ibd665, b/160140398)
Versi 1.0.0-alpha01
26 Agustus 2020
androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
, dan androidx.compose.material:material-icons-extended:1.0.0-alpha01
dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.
Masalah Umum
= Karakter pertama dalam TextField
material tidak dapat dihapus menggunakan backspace (b/165956313)
Versi 0.1.0-dev
Versi 0.1.0-dev17
19 Agustus 2020
androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
, dan androidx.compose.material:material-icons-extended:0.1.0-dev17
dirilis. Versi 0.1.0-dev17 berisi commit berikut ini.
Perubahan API
- Sebelumnya, RadioGroup dan RadioGroupItems yang tidak digunakan lagi telah dihapus. Gunakan Row dan RadioButton sebagai gantinya (I381b7, b/163806637)
- Menghapus callback onFocusChanged dari TextField. Gunakan Modifier.focusObserver sebagai gantinya. (I51089, b/161297615)
- Modifier.drawBorder tidak digunakan lagi. Gunakan Modifier.border sebagai gantinya. Class data Border telah diganti dengan BorderStroke (I4257d, b/158160576)
- Mengganti nama beberapa properti di SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. Menambahkan fungsi rememberSwipeableState untuk membuat SwipeableStates. (I2fc9c, b/163129614, b/163132293)
- Dukungan Snackbar dengan positioning dan antrean yang tepat telah ditambahkan. Akses melalui fungsi penangguhan
SnackbarHostState.showSnackbar
. Selain itu:- Komponen SnackbarHost telah ditambahkan. Komponen ini menjadi host Snackbar berdasarkan status dan bertanggung jawab atas transisi antar-snackbar.
- SnackbarHostState telah ditambahkan untuk memungkinkan kontrol atas snackbar, host snackbar, dan memisahkannya dari ScaffoldState. Anda juga dapat mengakses status ini melalui
scaffoldState.snackbarHostState
. - Overload snackbar telah ditambahkan untuk mendukung antarmuka umum antara snackbarbarHostState dan snackbar itu sendiri. (I79aaa)
- Menambahkan parameter yang diaktifkan ke IconButton, dan mengurutkan ulang parameter di IconToggleButton (I0a941, b/161809385, b/161807956)
- Versi ListItem dengan API berbasis String telah dihapus. Gunakan versi slot sebagai gantinya. (Ib8f57, b/161804681)
- Menghapus komponen FilledTextField yang sudah tidak digunakan lagi. Sebagai gantinya, harap gunakan TextField untuk mendapatkan implementasi Filled text field Desain Material. (I5e889)
- AlertDialog kini menggunakan FlowRow untuk tombol (I00ec1, b/161809319, b/143682374)
- Menambahkan parameter dalam Modifier.swipeable untuk mengubah jumlah ketahanan saat menggeser melewati garis batas. Parameter [min/max]Value dihapus. (I93d98)
- Menambahkan parameter backgroundColor ke LinearProgressIndicator dan menghapus padding internal dari CircularProgressIndicator. Menambahkan ProgressIndicatorConstants.DefaultProgressAnimationSpec baru yang dapat digunakan sebagai AnimationSpec default saat membuat animasi progres antarnilai (If38b5, b/161809914, b/161804677)
- Parameter opsional velocityThreshold ditambahkan ke Modifier.swipeable. (I698ba)
- bottomBarSize, fabSize, dan lainnya tidak lagi tersedia di ScaffoldState. Sebagai gantinya, gunakan Modifier.onPosition pada komponen yang ingin Anda ketahui ukurannya. Parameter contentColor dan Modifier telah ditambahkan ke Scaffold (Ic6f7b, b/161811485, b/157174382)
- Mengganti nama dan mengurutkan ulang beberapa parameter di Tab demi konsistensi dengan API lainnya (Ia2d12, b/161807532)
- Memisahkan TabRow menjadi TabRow dan ScrollableTabRow dengan menghapus isScrollable dari TabRow. Juga mengekspos edgePadding dalam ScrollableTabRow yang memungkinkan pengontrolan ruang kosong di depan/di belakang tab. (I583e8, b/161809544)
- Objek
TabRow
telah dihapus dan diganti dengan TabConstants. TabRow.TabPosition telah dipindahkan ke level teratas (TabPosition), dan indicatorContainer telah diganti nama menjadiindicator
. Lihat contoh dan dokumentasi untuk informasi mendetail tentang cara menggunakan API yang diupdate dan default-nya. (I54d45, b/161809544) - Parameter ambang batas pada Modifier.swipeable telah diubah; sekarang parameter ini mengambil sepasang status (dari jenis T) dan menampilkan ambang batas di antara status tersebut dalam bentuk ThresholdConfig. Parameter dismissThresholds ditambahkan ke SwipeToDismiss yang merupakan lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
- Penggeser memiliki lebih banyak warna untuk penyesuaian terperinci (I73e64, b/161810475)
- Nama parameter warna kartu telah diganti menjadi backgroundColor (I01fc1, b/161809546)
- Sekarang, snackbar memiliki warna latar belakang dan konten yang dapat disesuaikan (I238f2, b/161804381)
- Parameter penyesuaian modifier, backgroundColor, contentColor, dan scrimColor telah ditambahkan ke Drawers (I23655, b/161804378)
- Composable
state { ... }
kini tidak lagi digunakan agar panggilan eksplisit keremember { mutableStateOf(...) }
menjadi lebih jelas. Ini mengurangi keseluruhan tampilan API dan jumlah konsep untuk pengelolaan status, serta mencocokkan polaby mutableStateOf()
untuk delegasi properti class. (Ia5727) - Nama parameter padding tombol telah diganti menjadi contentPadding (Id252e, b/161809394)
- Menambahkan komponen materi eksperimental SwipeToDismiss. (I129e5)
Perbaikan Bug
- Menghapus
onChildPositioned
danOnChildPositionedModifier
. Sebagai gantinya, developer sebaiknya menggunakanonPositioned
danOnPositionedModifier
pada tata letak turunan. (I4522e, b/162109766) - Menambahkan lambda mergePolicy ke SemanticsPropertiKey. Ini dapat digunakan untuk menentukan kebijakan kustom untuk penggabungan semantik mergeAllDescendants. Kebijakan defaultnya adalah menggunakan nilai induk jika sudah ada, atau nilai turunan jika tidak ada. (Iaf6c4, b/161979921)
- IntSize kini menjadi class inline (I2bf42)
PlacementScope.placeAbsolute()
diganti namanya menjadiPlacementScope.place()
, danPlacementScope.place()
sebelumnya diganti namanya menjadiPlacementScope.placeRelative()
. Akibatnya, metodePlacementScope.place()
tidak akan lagi secara otomatis mencerminkan posisi dalam konteks kanan-ke-kiri. Jika menginginkannya, gunakan sajaPlacementScope.placeRelative()
. (I873ac, b/162916675)- Menghentikan penggunaan PxBounds untuk digantikan Rect. Memperbarui semua penggunaan PxBounds dengan Rect dan menambahkan penghentian/penggantian yang benar dengan anotasi untuk membantu migrasi. (I37038, b/162627058)
- Mengganti nama RRect menjadi RoundRect agar lebih cocok untuk menulis pola penamaan Membuat konstruktor fungsi serupa pada RRect dan konstruktor fungsi RRect yang tidak digunakan lagi (I5d325)
Versi 0.1.0-dev16
5 Agustus 2020
androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
, dan androidx.compose.material:material-icons-extended:0.1.0-dev16
dirilis. Versi 0.1.0-dev16 berisi commit berikut ini.
Perubahan API
- Warna kini merupakan class final, bukan antarmuka. Daripada memperluas dan menyediakan implementasi kustom, Anda sebaiknya membuat suasana baru untuk objek tema khusus dan mengakses objek tema melalui suasana baru di komponen Anda, mirip dengan cara kerja MaterialTheme secara internal. (Ibae84)
- Nama ColorPalette diganti menjadi Colors, untuk memetakan sistem warna Material dengan lebih baik dan menghilangkan kebingungan terkait ColorPalette menjadi objek bertema 'generik', bukan implementasi khusus sistem warna Material. Selain itu, nama lightColorPalette dan darkColorPalette diganti menjadi lightColors dan darkColors. (I9e976, b/161812111)
- Mengganti nama parameter
text
BottomNavigationItem menjadilabel
,onSelected
menjadionSelect
,activeColor
menjadiselectedContentColor
,inactiveColor
menjadiunselectedContentColor
, dan memperbarui urutan parameter agar cocok dengan panduan. (Icb605, b/161809324) Modifier.stateDraggable
sepenuhnya diperbaiki dan diganti namanya menjadi Modifier.swipeable. Class SwipeableState baru sudah diperkenalkan, serta DrawerState dan BottomDrawerState difaktorkan ulang untuk mewarisi class tersebut. [Modal/Bottom]DrawerLayout tidak lagi menggunakan parameter onStateChange. (I72332, b/148023068)- Paket foundation.shape.corner diratakan menjadi foundation.share (I46491, b/161887429)
- Menambahkan anotasi ExperimentalMaterialApi. RippleTheme ditandai sebagai Experimental (IC5fa0, b/161784800)
- Nama Material FillingTextField diganti menjadi TextField dan nama TextField dasar diganti menjadi BaseTextField, agar API paling sederhana yang diinginkan mudah ditemukan dan digunakan (Ia6242, b/155482676)
Perbaikan Bug
- OnChildPositioned sudah tidak digunakan lagi. Sebagai gantinya, gunakan OnPositioned pada turunan. (I87f95, b/162109766)
- Mengatasi masalah API umum (I077bc)
- Menghapus antarmuka OffsetBase yang tidak digunakan
- Meratakan class Offset dan IntOffset agar memiliki tampilan API yang konsisten
- Mengganti nama IntOffset.Origin menjadi IntOffset.Zero agar konsisten dengan Offset API
- Memindahkan metode nativeCanvas dari antarmuka Canvas untuk mendukung konsumen membuat instance Canvas mereka sendiri
- Membuat class EmptyCanvas stub untuk memfaktorkan ulang DrawScope menjadi parameter non-null, bukan lateinit, dan memastikan non-nullability pada kolom
- Mengganti nama enum ClipOp menjadi Pascal Case
- Mengganti nama enum FilterQuality menjadi Pascal Case
- Mengganti nama enum StrokeJoin menjadi Pascal Case
- Mengganti nama enum PointMode menjadi Pascal Case
- Mengganti nama enum PaintingStyle menjadi Pascal Case
- Mengganti nama enum PathFillType menjadi Pascal Case
- Mengganti nama enum StrokeCap menjadi Pascal Case
- Memperbarui implementasi DrawCache agar tidak lagi menggunakan parameter lateinit
- Memperbarui DrawScope agar tidak lagi menggunakan delegasi lambat untuk parameter internal fillPaint dan strokePaint
- Memperbarui composable Image untuk menghindari penggunaan Box untuk overhead yang lebih rendah
- Memperbarui class Outline agar memiliki anotasi @Immutable
- Memperbarui PathNode agar memiliki anotasi @Immutable untuk setiap petunjuk jalur
- Memperbarui subkomposisi Vektor untuk menghapus pemeriksaan persamaan bersyarat yang berlebihan karena compose sudah menanganinya
- Metode konstruktor pendamping Rect tidak digunakan lagi dan diganti dengan konstruktor fungsi
- Memperbarui class Brush dan konstruktor fungsi dengan API @Immutable dan @Stable
- Memperbarui enum VertexMode menjadi PascalCase
- Memperbarui metode DrawScope selectPaint untuk menimpa parameter goresan secara bersyarat pada paint jika telah diubah
- Memperbarui Ukuran untuk menambahkan API destrukturisasi, mengganti nama UnspecifiedSize menjadi Unspecified dan menghapus metode yang tidak digunakan
- Memindahkan dialog ke ui (I47fa6)
SemanticsNodeInteraction.performPartialGesture
dihapus. Sebagai gantinya, gunakanSemanticsNodeInteraction.performGesture
. (Id9b62)- Mengganti nama
SemanticsNodeInteraction.getBoundsInRoot()
menjadiSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532) - API untuk dukungan dari kanan ke kiri telah diupdate. Menambahkan LayoutDirectionAmbient yang bisa digunakan untuk membaca dan mengubah arah tata letak. Modifier.rtl dan Modifier.ltr telah dihapus. (I080b3)
- Nama Modifier.deternimateProgress telah diganti menjadi Modifier.progressSemantics (I9c0b4)
- Memperbarui ikon material-diperluas dengan ikon terbaru yang ditambahkan ke Material.io/icons (I4b1d3)
- Memerlukan jenis T agar ditentukan secara eksplisit untuk transitionDefinition. (I1aded)
- Modifier.plus sudah tidak digunakan lagi. Sebagai gantinya, gunakan Modifier.then. 'Then' memiliki sinyal pengurutan yang lebih kuat, serta melarang pengetikan
Modifier.padding().background() + anotherModifier
yang memutus rantai dan lebih sulit dibaca (Iedd58, b/161529964) - Mengganti nama AndroidComposeTestRule menjadi createAndroidComposeRule. (I70aaf)
- Menambahkan SemanticsMatcher isFocused() dan isNotFocused(). (I0b760)
- Menghapus
BaseGestureScope.globalBounds
, yang tidak boleh digunakan dari pengujian. Menggunakan koordinat lokal ke node tempat Anda berinteraksi. (Ie9b08) - Memperbaiki posisi pop-up pada tampilan terpotong. (Idd7dd)
- Nama Modifier.drawBackground telah diganti menjadi Modifier.background (I13677)
Versi 0.1.0-dev15
22 Juli 2020
androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
, dan androidx.compose.material:material-icons-extended:0.1.0-dev15
dirilis. Versi 0.1.0-dev15 berisi commit berikut ini.
Update Dependensi
- Untuk menggunakan Compose versi
0.1.0-dev15
, Anda harus mengupdate dependensi sesuai dengan cuplikan kode baru yang ditampilkan di atas dalam Mendeklarasikan dependensi.
Perubahan API
Anotasi
@Model
kini tidak digunakan lagi. Gunakan state dan mutableStateOf sebagai alternatif. Keputusan penghentian ini tercapai setelah diskusi yang dilakukan secara saksama.Pembenaran
Alasan mencakup, tetapi tidak terbatas pada:
- Mengurangi konsep dan area permukaan API yang perlu diajari
- Lebih selaras dengan toolkit lainnya yang dapat dibandingkan (Swift UI, React, Flutter)
- Keputusan yang reversibel. Kita selalu dapat mengembalikan
@Model
di lain waktu. - Meniadakan penggunaan corner-case dan pertanyaan yang sulit dijawab tentang mengonfigurasi
@Model
sebagai hal-hal yang perlu ditangani - Class data
@Model
, sama dengan, kode hash, dll. - Bagaimana cara membuat beberapa properti "diamati" dan yang lainnya tidak?
- Bagaimana cara menentukan kesetaraan struktural vs. referensi untuk digunakan dalam pengamatan?
- Mengurangi "magic" di dalam sistem. Akan mengurangi kemungkinan seseorang menganggap sistem lebih cerdas dari seharusnya (contoh, mengetahui cara membedakan daftar)
- Membuat perincian pengamatan lebih intuitif.
- Meningkatkan kemampuan pemfaktoran ulang dari variabel -> properti pada class
- Berpotensi membuka kemungkinan untuk melakukan pengoptimalan khusus Status secara manual
- Lebih selaras dengan bagian ekosistem lainnya dan mengurangi ambiguitas terhadap status yang tidak dapat diubah atau kami “menerapkan status yang dapat diubah”
Catatan Migrasi
Hampir semua penggunaan
@Model
yang sudah ada telah diubah dengan baik menggunakan salah satu dari dua cara. Contoh di bawah ini menampilkan class@Model
dengan dua properti hanya untuk keperluan contoh, dan menunjukkan class tersebut saat sedang digunakan dalam composable.@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 } ) }
Alternatif 1: Gunakan
State<OriginalClass>
dan buat salinan.Pendekatan ini dibuat lebih mudah dengan class data Kotlin. Intinya, buat semua properti
var
sebelumnya menjadi propertival
pada class data, kemudian gunakanstate
sebagai ganti dariremember
, lalu tetapkan nilai status ke salinan clone aslinya menggunakan metode praktiscopy(...)
class data.Penting untuk diperhatikan bahwa pendekatan ini hanya berfungsi saat satu-satunya mutasi ke class tersebut dilakukan dalam cakupan yang sama tempat instance
State
dibuat. Jika class secara internal bermutasi sendiri di luar cakupan penggunaan tersebut, dan Anda mengandalkan pengamatannya, maka gunakan pendekatan berikutnya.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) } ) }
Alternatif 2: Gunakan mutableStateOf dan delegasi properti
Pendekatan ini dibuat lebih mudah dengan delegasi properti Kotlin dan
mutableStateOf
API yang memungkinkan Anda membuat instance MutableState di luar komposisi. Intinya, ganti semua propertivar
dari class asli menggunakan propertivar
denganmutableStateOf
sebagai delegasi propertinya. Hal ini memiliki keuntungan bahwa penggunaan class tidak akan berubah sama sekali, kecuali implementasi internalnya. Perilaku ini tidak sepenuhnya identik dengan contoh aslinya, karena setiap properti saat ini diamati/berlangganan satu per satu, sehingga rekomposisi yang Anda lihat setelah pemfaktoran ulang berikut dapat menjadi lebih sempit (hal yang baik).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
Nama callback onFocusChange di kolom teks diganti menjadi onFocusChanged (Ida4a1)
Menambahkan parameter batas pada stateDraggable untuk menentukan batas antara anchor. Ini digunakan untuk menetapkan ambang batas 56dp di panel samping bawah. Selain itu, BottomDrawerLayout kini menggunakan enum BottomDrawerState terpisah. (I533fa)
Menghapus Modifier.ripple yang sebelumnya tidak digunakan lagi. Clickable kini menggunakan ripple sebagai indikasi default (jika Anda memiliki MaterialTheme {} yang disetel di aplikasi Anda) sehingga pada umumnya, Anda cukup menggunakan clickable saja dan mendapatkan indikasi ripple secara gratis. Jika Anda perlu menyesuaikan warna/ukuran/parameter terbatas untuk ripple, Anda dapat membuat RippleIndication secara manual dan meneruskannya ke clickable sebagai parameter indikasi. (I663b2, b/155375067)
Menghapus penggantian composable FilledTextField yang tidak digunakan lagi (I7f8f8)
Mengganti nama objek Button (berisi default yang digunakan oleh fungsi Button) menjadi ButtonConstants (I7c5f7, b/159687878)
Slot konten Button kini berfungsi sebagai Row (berguna jika Anda harus memiliki ikon dengan teks, lihat contoh cara menulis di Button) (I0ff10, b/158677863)
RadioGroup dan RadioGroupItem sudah tidak digunakan lagi. Gunakan Box dengan Modifier.selectable, Row, dan Column untuk menentukan kumpulan radioButton yang sesuai oleh desain Anda (I7f5cf, b/149528535)
Menambahkan Material Outlined Textfield (I1a518)
androidx.ui.foundation.TextFieldValue dan androidx.ui.input.EditorValue tidak digunakan lagi. Composable TextField, FilledTextField, dan CoreTextField yang menggunakan jenis tersebut juga tidak digunakan lagi. Sebagai gantinya, gunakan androidx.ui.input.TextFieldValue instead (I4066d, b/155211005)
TabRow.TabPosition tidak berisi posisi di Dp, bukan di IntPx (I34a07, b/158577776).
Mengganti penggunaan IntPx dengan Int. Mengganti IntPxPosition dengan IntOffset. Mengganti IntPxSize dengan IntSize. (Ib7b44)
Untuk menggabungkan jumlah class yang digunakan untuk menyatakan informasi pengubahan ukuran, standarkan penggunaan class Size, bukan PxSize. Tindakan ini memberikan manfaat dari class inline untuk menggunakan 2 nilai float yang panjang untuk dipaketkan untuk menyatakan lebar dan tinggi yang dinyatakan sebagai float. (Ic0191)
Menghentikan penggunaan Modifier.ripple. Clickable kini menggunakan ripple sebagai indikasi default (jika Anda memiliki MaterialTheme {} yang disetel di aplikasi Anda) sehingga pada umumnya, Anda cukup menggunakan clickable saja dan mendapatkan indikasi ripple secara gratis. Jika Anda perlu menyesuaikan warna/ukuran/parameter terbatas untuk ripple, Anda dapat membuat RippleIndication secara manual dan meneruskannya ke clickable sebagai parameter indikasi. (I101cd, b/155375067)
Scaffold API telah dibuat ulang: beberapa parameter telah berubah namanya, menambahkan parameter baru untuk penyesuaian yang lebih baik. Menambahkan pengambil ke ukuran kueri Fab, TopBar, dan BottomBar (I0e7ce)
Menambahkan komponen DropdownMenu di ui-material, untuk implementasi menu Desain Material. (I9bb3d)
Mengizinkan penampilan/penyembunyian keyboard virtual secara manual menggunakan SoftwareKeyboardController (Ifb9d6, b/155427736)
Modifier.indication telah ditambahkan ke paket dasar. Gunakan API tersebut untuk menampilkan indikator tekan/tarik/lainnya pada elemen khusus yang digunakan untuk berinteraksi (I8425f, b/155287131)
Menggabungkan implementasi CanvasScope sehingga hanya terdapat DrawScope dan ContentDrawScope Mengganti nama CanvasScope ke DrawScope. Mengupdate DrawScope untuk menerapkan antarmuka Density dan menyediakan subclass LayoutDirection. Menghapus DrawScope di ContentDrawScope Painter dan PainterModifier telah diupdate untuk tidak lagi mempertahankan properti RTL sendiri karena DrawScope menyediakan ini tanpa menyediakannya secara manual (I1798e)
Nama Emphasis.emphasize() berganti menjadi Emphasis.applyEmphasis() (Iceebe)
Desain tombol yang tidak aktif kini secara visual mengikuti spesifikasi Desain Material (I47dcb, b/155076924)
FilledTextField mendapatkan tindakan ime, transformasi visual, dan dukungan jenis keyboard (I1f9cf, b/155075201)
Menambahkan parameter strokeWidth ke CircularProgressIndicator untuk menyesuaikan ukuran goresan. Untuk mengubah ukuran goresan (tinggi) LinearProgressIndicator, Anda dapat menggunakan Modifier.preferredHeight() atau pengubah ukuran lainnya. (Icea16, b/154919081)
Menambahkan parameter strokeWidth ke CircularProgressIndicator untuk menyesuaikan ukuran goresan. Untuk mengubah ukuran goresan (tinggi) LinearProgressIndicator, Anda dapat menggunakan Modifier.preferredHeight() atau pengubah ukuran lainnya. (Icea16, b/154919081)
Menambahkan slot API untuk ikon awal dan ikon akhir pada FillingTextField dan penanganan status error-nya (Ic12e0)
Warna default FAB dan FAB yang Diperpanjang telah diubah menjadi MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
Mengganti semua penggunaan Color nullable di API dengan non-nullable dan menggunakan Color.Unset, bukan null (Iabaa7)
Mengganti nama EdgeInsets menjadi InnerPadding. Mengganti parameter innerPadding dari Material Buttons menjadi padding. (I66165)
Penggeser sekarang bersifat stateless. Pengguna perlu meneruskan dan memperbarui statusnya sendiri, seperti halnya pada kontrol lainnya. (Ia00aa)
StaticDrawer telah dihapus. Jika Anda membutuhkannya, gunakan Box dengan lebar yang ditentukan material sebagai gantinya (I244a7)
Menambahkan implementasi Desain Material dari Kolom Teks yang Terisi (Ic75cd)
Menambahkan param pengubah ke ListItem dan mengurutkan ulang param untuk mempromosikan isi lambda di akhir (I66e21)
Menambahkan parameter konstruktor defaultFontFamily ke Typography, memungkinkan penetapan jenis font default yang akan digunakan untuk TextStyles yang disediakan yang tidak memiliki rangkaian jenis. (I89d07)
Menghapus Tabel Data Material untuk sementara dari antarmuka API. (Iaea61)
Nama parameter diganti dalam composable Divider (IC4373)
turunan (Ia6d19)
Menghapus MaterialTheme.emphasisLevels, bukan menggunakan EmphasisAmbient.current untuk mengambil tingkat penekanan (Ib5e40)
Sistem bertema bentuk telah diperbarui berdasarkan spesifikasi desain Material. Sekarang Anda dapat menyediakan bentuk kecil, sedang, dan besar untuk digunakan oleh sebagian besar komponen (Ifb4d1)
Mengubah MaterialTheme API seperti MaterialTheme.colors(), MaterialTheme.typography() menjadi properti, bukan fungsi. Menghapus tanda kurung dari panggilan yang ada, tidak ada perubahan perilaku yang diharapkan. (I3565a)
FloatingActionButton API telah difaktorkan ulang untuk menerima lambda composable, bukan primitive. Lihat contoh terbaru untuk informasi penggunaan. (I00622)
Menambahkan param
enabled
ke Checkbox, Switch, dan Toggleable I41c16)Ripple kini menjadi Modifier. Meskipun Clickable belum dikonversi, penggunaan yang direkomendasikan adalah
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)Surface dan Card dipindahkan dari androidx.ui.material.surface ke androidx.ui.material (I88a6d, b/150863888)
Button, FloatingActionButton, dan Clickable kini memiliki param
enabled
tersendiri. Beberapa param pada Button telah diganti namanya atau disusun ulang. (I54b5a)Mengganti nama Image menjadi ImageAsset agar dapat membedakan dengan jelas data Image dan Image yang dapat disusun mendatang yang digunakan untuk menyusun tata letak dan konten gambar. Metode ekstensi dibuat di android.graphics.Bitmap, Bitmap.asImageAsset(), untuk membuat instance ImageAsset yang berguna untuk menggabungkan pengembangan aplikasi Android tradisional dengan framework compose (Id5bbd)
Snackbar API dengan parameter String telah dihapus, karena telah digantikan dengan overload yang menerima lambda composable. Lihat contoh terbaru untuk mengetahui informasi penggunaan (I55f80)
Tab API telah difaktorkan ulang untuk menerima lambda
text
danicon
(Ia057e)Komponen BottomNavigation telah ditambahkan, lihat dokumen dan contoh untuk mengetahui informasi penggunaannya (I731a0)
Menambahkan Icon, IconButton, dan IconToggleButton, serta menghapus AppBarIcon. Anda dapat langsung mengganti penggunaan AppBarIcon yang ada dengan IconButton, dan target sentuhnya akan menjadi benar. Lihat contoh untuk mengetahui informasi penggunaan, dan lihat Ikon untuk Ikon Material yang telah tersedia yang dapat Anda gunakan secara langsung dengan komponen ini. (I96849)
Mengganti ButtonStyle dengan fungsi yang berbeda dan penghapusan overload pada teks (string). Lihat contoh terbaru untuk informasi penggunaan. (If63ab, b/146478620, b/146482131)
Mengganti nama pengubah
Border
menjadiDrawBorder
(I8ffcc)LayoutCoordinates tidak lagi memiliki properti posisi. Properti posisi tidak berfungsi saat mempertimbangkan LayoutModifiers, rotasi, atau penskalaan. Sebagai gantinya, developer sebaiknya menggunakan parentCoordinates dan childToLocal() untuk menghitung transformasi dari suatu LayoutCoordinate ke yang lainnya.
LayoutCoordinates menggunakan IntPxSize untuk properti ukuran, bukan PxSize. Layouts menggunakan ukuran piksel bilangan bulat untuk tata letak, sehingga semua ukuran tata letak harus menggunakan bilangan bulat dan bukan nilai floating point. (I9367b)
Perubahan yang dapat menyebabkan gangguan pada API ambien. Lihat log dan dokumentasi
Ambient<T>
untuk detail selengkapnya (I4c7ee, b/143769776)Komponen material Scaffold telah ditambahkan. Scaffold mengimplementasikan (I7731b)
DrawBorder diganti dengan Border Modifier (Id335a)
Perbaikan Bug
- FocusModifier tidak digunakan lagi dan digantikan oleh Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. FocusState dan FocusDetailedState tidak digunakan lagi dan digantikan dengan FocusState2 (I46919, b/160822875, b/160922136)
- VerticalScroller dan HorizontalScroller sudah tidak lagi digunakan. Gunakan ScrollableColumn dan ScrollableRow untuk pengalaman bawaan dengan parameter dan perilaku Column/Row, atau Modifier.verticalScroll dan Modifier.horizontalScroll pada elemen Anda sendiri. Demikian pula, ScrollerPosition tidak digunakan lagi untuk mendukung ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
- API Modifier.draggable dan Modifier.scrollable telah dikerjakan ulang. DragDirection telah dihapus untuk mendukung Orientation. Status yang diperlukan untuk dapat di-scroll telah disederhanakan. Nama ScrollableState telah diganti menjadi ScrollableController (Iab63c, b/149460415)
runOnIdleCompose
diganti namanya menjadirunOnIdle
(I83607)- Properti semantik satu nilai sekarang menggunakan gaya pemanggilan. Misalnya, 'semantik { hidden = true }' sekarang ditulis sebagai: 'semantik { hidden() }'. (Ic1afd, b/145951226, b/145955412)
- Beberapa nama API pengujian diganti menjadi lebih intuitif. Semua nama API findXYZ diganti menjadi onNodeXYZ. Semua nama API doXYZ diganti menjadi performXYZ. (I7f164)
- Transition API telah diubah untuk mengembalikan TransitionState, bukan meneruskan TransitionState ke turunan. Hal ini membuat API lebih konsisten dengan API animate(). (I24e38)
- Class unit IntBounds telah ditambahkan dan mewakili batas piksel bilangan bulat dari tata letak. API PopupPositionProvider telah diupdate untuk menggunakannya. (I0d8d0, b/159596546)
- Sebuah flag opsional baru useUnmergedTree telah ditambahkan ke pencari pengujian. (I2ce48)
- Menghapus API pengujian ukuran yang tidak digunakan lagi. (Iba0a0)
- Menghapus class inline Shader yang menggabungkan class expect NativeShader. Mengganti nama NativeShader menjadi Shader. Class inline Shader yang digabungkan tidak menambahkan apa pun yang berharga ke permukaan API dan merupakan class inline, jadi gunakan class NativeShader secara langsung. (I25e4d)
- Pop-ups, Dialogs, dan Menus sekarang mewarisi MaterialTheme kontekstual (Ia3665, b/156527485)
- DropdownMenu material kini dapat di-scroll. (Ide699)
- Menghapus parameter arah tata letak dari blok ukuran fungsi Layout(). Namun, arah tata letak tersedia di dalam callback melalui objek cakupan pengukuran (Ic7d9d)
- Gunakan AnimationSpec, bukan AnimationBuilder di API level atas untuk memperjelas konsep spesifikasi animasi statis -Meningkatkan DSL transisi dengan menghapus persyaratan lambda untuk membuat AnimationSpec seperti tween, spring. Sebaliknya, API mengambil parameter konstruktor secara langsung. -Meningkatkan kemudahan penggunaan AnimationSpec secara keseluruhan yang membuka konstruktor, bukan mengandalkan builder -Mengubah durasi dan penundaan untuk KeyFrames dan Tween menjadi Int. Tindakan ini menghilangkan tipe transmisi yang tidak perlu dan overloading metode (untuk mendukung Long dan Int). (Ica0b4)
- Tombol akses sekarang muncul dalam status nonaktif saat
enabled
ditetapkan ke false (If4624, b/155941869, b/159331694) - Nama Modifier.tag diganti menjadi Modifiers.layoutId untuk menghindari kebingungan dengan Modifier.testTag. (I995f0)
- Posisi Int baris perataan yang ditampilkan dari Placeable#get(AlignmentLine) sekarang tidak null. Jika baris perataan kueri tidak ada, AlignmentLine.Unspecified akan ditampilkan. (I896c5, b/158134875)
Memfaktorkan ulang class Radius untuk menjadi class inline. Menghapus metode pembuatan pengiring yang mendukung konstruktor fungsi dengan parameter default agar memiliki radius sepanjang sumbu y yang cocok dengan parameter radius sumbu x wajib.
Mengupdate DrawScope.drawRoundRect agar dapat menggunakan parameter Radius tunggal, bukan 2 nilai float terpisah untuk radius di sepanjang sumbu x dan y (I46d1b)
Untuk menggabungkan jumlah class yang digunakan untuk menyatakan informasi positioning, standarkan penggunaan class Offset, bukan PxPosition. Tindakan ini memberikan manfaat dari class inline untuk menggunakan 2 nilai float yang panjang untuk dipaketkan untuk menyatakan offset x dan y yang dinyatakan sebagai float. (I3ad98)
Mengganti penggunaan class Px di berbagai class compose sebagai bagian dari upaya pemfaktoran ulang besar-besaran agar hanya mengandalkan jenis primitif dan Dp untuk parameter piksel. Menghapus class Px secara keseluruhan (I3ff33)
Komponen yang dapat dialihkan sudah tidak digunakan lagi. Sebagai gantinya, gunakan Modifier.toggleable (I35220, b/157642842)
Mengganti penggunaan class Px dalam berbagai class compose sebagai bagian dari upaya pemfaktoran ulang yang besar-besaran agar hanya mengandalkan jenis primitif dan Dp untuk parameter piksel (I086f4)
Mengganti penggunaan class Px di berbagai class compose sebagai bagian dari upaya pemfaktoran ulang besar-besaran agar hanya mengandalkan jenis primitif dan Dp untuk parameter piksel (Id3434)
Mengganti penggunaan class Px dalam berbagai class compose sebagai bagian dari upaya pemfaktoran ulang besar-besaran agar hanya mengandalkan jenis primitif dan Dp untuk parameter piksel (I97a5a)
Memperbaiki onClick yang tidak dipanggil untuk DropdonMenuItems. (I3998b, b/157673259)
MutuallyExclusiveSetItem sudah tidak digunakan lagi. Sebagai gantinya, gunakan Modifier.selectable. (I02b47, b/157642842)
TestTag sekarang tidak digunakan lagi. Sebagai gantinya, gunakan Modifier.testTag. (If5110, b/157173105)
Kursor TextField memiliki animasi berkedip (Id10a7)
Mengganti penggunaan class Px di berbagai class compose sebagai bagian dari upaya pemfaktoran ulang besar-besaran agar hanya mengandalkan jenis primitif dan Dp untuk parameter piksel (I19d02)
VerticalScroller sekarang otomatis menyediakan Kolom. HorizontalScroller sekarang menyediakan Baris dari kotak. (Ieca5d, b/157020670)
Mengganti penggunaan class Px dalam berbagai class compose sebagai bagian dari upaya pemfaktoran ulang besar-besaran guna hanya mengandalkan jenis primitif dan Dp untuk parameter piksel (Ieda0b)
Modifier.semantics sudah tidak digunakan lagi untuk memungkinkan penggunaan komponen tingkat tinggi. (I4cfdc)
API pengubah DrawLayer telah diubah: nama outlineShape diganti ke shape dan memiliki nilai default RectangleShape, serta kini tidak dapat dinolkan; nama clipToOutline diganti menjadi clip; clipToBounds dihapus karena sama dengan clip == true dengan RectangleShape (I7ef11, b/155075735)
Mengupdate API compose dengan level yang lebih tinggi yang mengekspos Canvas untuk mengekspos CanvasScope. Tindakan ini akan menghapus keperluan konsumen untuk mengelola objek Paint-nya. Bagi konsumen yang masih memerlukan akses ke Canvas, mereka dapat menggunakan metode ekstensi drawCanvas yang menyediakan callback untuk mengeluarkan perintah menggambar menggunakan Canvas yang mendasarinya. (I80afd)
Composable AlignmentLineOffset sudah tidak digunakan lagi, sebagai gantinya harap gunakan pengubah relativePaddingFrom(). Composable CenterAlignmentLine telah dihapus. (I60107)
API lambda akhir WithConstraints telah diubah. Sekarang, sebagai ganti dua parameter, memiliki cakupan penerima yang merupakan tambahan untuk batasan dan layoutDirection menyediakan properti minWidth, maxWidth, minHeight, dan maxHeight di Dp (I91b9a, b/149979702)
Menambahkan pengubah tata letak defaultMinSizeConstraints yang menentukan batasan ukuran ke tata letak gabungan saja saat batasan tersebut belum ditentukan (0 untuk batasan minimal dan tidak terbatas untuk batasan maksimal). (I311ea, b/150460257)
FocusManagerAmbient dihapus. Gunakan FocusModifier.requestFocus untuk mendapatkan fokus. (Ic4826)
Membuat CanvasScope API yang menggabungkan objek Canvas untuk mengekspos antarmuka API gambar yang deklaratif dan stateless. Transformasi disertakan dalam cakupan penerimanya sendiri dan informasi pengubahan ukuran juga mencakup batas inset yang sesuai. Ini tidak mengharuskan konsumen untuk mempertahankan state object Paint-nya sendiri dalam mengonfigurasi operasi gambar.
Menambahkan CanvasScopeSample serta mengupdate aplikasi demo guna menyertakan Demo grafis deklaratif (Ifd86d)
Tambahkan penyesuaian warna kursor ke TextField (I6e33f)
Sekarang TextFieldValue yang digunakan dengan TextField dapat mempertahankan rekreasi aktivitas saat digunakan seperti ini:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Nama LayoutModifier2 diganti menjadi LayoutModifier. (Id29f3)
Menghapus antarmuka LayoutModifier yang sudah tidak digunakan lagi. (I2a9d6)
Mengganti parameter focusIdentifier CoreTextField/TextField dengan FocusNode untuk diintegrasikan dengan subsistem fokus. (I7ea48)
Fungsi pengukuran intrinsik di Layout dan LayoutModifier2 kini memiliki penerima IntrinsicMeasureScope yang memberikan API kueri instrinsik dengan arah tata letak yang disebarkan secara implisit. (Id9945)
Modifier.zIndex() baru ditambahkan untuk mengontrol urutan gambar turunan dalam tata letak induk yang sama. Properti elevasi pada DrawLayerModifier diganti namanya menjadi shadowElevation dan tidak lagi mengontrol urutan gambar. Urutan parameter DrawShadow diubah: elevasi kini menjadi yang pertama dan bentuknya adalah yang kedua dengan default RectangleShape. (I20150, b/152417501)
RectangleShape dipindahkan dari androidx.ui.foundation.shape.* ke androidx.ui.graphics.* (Ia74d5, b/154507984)
Mengupdate TextField API agar menggabungkan callback onFocus dan onBlur ke dalam callback onFocusChange(Boolean) tunggal dengan parameter (I66cd3)
Menambahkan parameter verticalGravity dan horizontalGravity ke Row dan Column. (I7dc5a)
Memperbarui wrapContentWidth dan wrapContentHeight untuk mengharapkan Alignment vertikal atau horizontal, bukan sembarang Alignment. Pengubah gravitasi diperbarui untuk menerima Alignment vertikal atau horizontal. Row, Column, dan Stack telah diperbarui untuk mendukung Alignment berkelanjutan khusus. (Ib0728)
Membuat PixelMap API untuk mendukung kueri informasi piksel dari ImageAsset. (I69ad6)
Menghapus ProvideContentColor, sebagai gantinya cukup gunakan ContentColorAmbient langsung dengan
Providers
(Iee942)Nama modul ui-text-compose diganti menjadi ui-text. ui-text kini berisi composable CoreText dan CoreTextField (Ib7d47)
Nama modul ui-text diganti menjadi ui-text-core (I57dec)
Memindahkan composable ui-framework/CoreText, CoreTextField di bagian ui-text-compose. Anda mungkin ingin menyertakan ui-text-compose dalam project Anda. (I32042)
Meningkatkan kualitas DrawModifier API:
- Membuat cakupan penerima untuk draw() ContentDrawScope
- Menghapus semua parameter pada draw()
- DrawScope memiliki antarmuka yang sama dengan CanvasScope
- ContentDrawScope memiliki metode drawContent() (Ibaced, b/152919067)
Sekarang
runOnIdleCompose
danrunOnUiThread
menjadi fungsi global, bukan metode di ComposeTestRule. (Icbe8f)Operator delegasi properti [Mutable]State dipindahkan ke ekstensi untuk mendukung pengoptimalan delegasi properti Kotlin 1.4. Pemanggil harus menambahkan impor untuk terus menggunakan
by state { ... }
atauby mutableStateOf(...)
. (I5312c)Menambahkan positionInParent dan boundsInParent untuk LayoutCoordinates. (Icacdd, b/152735784)
ColoredRect sudah tidak digunakan lagi. Sebagai gantinya, gunakan Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)
Nama LayoutResult diganti menjadi MeasureResult. (Id8c68)
Menambahkan LayoutModifier2, API baru untuk menentukan pengubah tata letak; LayoutModifier yang tidak digunakan lagi (If32ac)
Mengganti operator Modifier plus dengan fungsi ekstensi factory (I225e4)
Draggable telah dipindahkan ke pengubah (Id9b16, b/151959544)
Composable ParentData tidak digunakan lagi. Sebaiknya buat pengubah yang mengimplementasikan antarmuka ParentDataModifier, atau gunakan pengubah LayoutTag jika Anda hanya perlu memberi tag turunan tata letak agar dapat mengenalinya di dalam blok pengukuran. (I51368, b/150953183)
Composable Center sudah tidak digunakan lagi. Center ini harus diganti baik dengan pengubah LayoutSize.Fill + LayoutAlign.Center maupun dengan salah satu composable Box atau Stack dengan pengubah yang sesuai diterapkan (Idf5e0)
Menambahkan VectorPainter API untuk menggantikan API subkomposisi yang ada untuk grafik vektor. Hasil subkomposisi adalah objek VectorPainter, bukan DrawModifier. Penggunaan composable DrawVector sebelumnya tidak digunakan lagi dan diganti dengan VectorPainter.
Nama Image(Painter) API menjadi PaintBox(Painter) Membuat composable Vector yang berfungsi seperti composable Image kecuali dengan VectorAsset bukan ImageAsset (I9af9a, b/149030271)
Mengganti nama LayoutFlexible menjadi LayoutWeight. Mengganti nama parameter tight menjadi fill. (If4738)
RepaintBoundary dihapus dan digantikan dengan DrawLayerModifier (I00aa4)
DrawVector telah diubah dari fungsi yang dapat dikomposisi reguler menjadi menampilkan drawVector() Modifier yang akan menggambar vektor sebagai latar belakang dari suatu tata letak. (I7b8e0)
Fungsi yang dapat dikomposisi Opacity telah diganti dengan pengubah drawOpacity. (I5fb62)
Mengganti Clip fungsi yang dapat dikomposisi dengan drawClip() pengubah. DrawClipToBounds adalah pengubah yang dapat digunakan dengan mudah saat Anda hanya perlu menyesuaikan batas layer yang memiliki bentuk persegi panjang. (If28eb)
Mengganti fungsi composable DrawShadow dengan pengubah drawShadow(). Sekarang bayangan digambar sebagai bagian dari LayerModifier. (I0317a)
Menambahkan LayerModifier, pengubah yang mengizinkan penambahan RenderNode untuk Layout. Pengubah tersebut memungkinkan pengaturan clipping, opasitas, rotasi, penskalaan, dan bayangan. Ini akan menggantikan RepaintBoundary. (I7100d, b/150774014)
androidx.compose.ViewComposer telah dipindahkan ke androidx.ui.node.UiComposer androidx.compose.Emittable telah dihapus. Berlebihan dengan ComponentNode. androidx.compose.ViewAdapters telah dihapus. Kasus penggunaannya sudah tidak didukung. Compose.composeInto sudah tidak digunakan lagi. Sebagai gantinya, gunakan
setContent
atausetViewContent
. Compose.disposeComposition sudah tidak digunakan lagi. Sebagai gantinya, gunakan metodedispose
padaComposition
yang ditampilkan olehsetContent
. androidx.compose.Compose.subcomposeInto telah dipindahkan ke androidx.ui.core.subcomposeInto Nama ComponentNode#emitInsertAt telah diganti menjadi ComponentNode#insertAt Nama ComponentNode#emitRemoveAt telah diganti menjadi ComponentNode#removeAt Nama ComponentNode#emitMode telah diganti menjadi ComponentNode#move (Idef00)Membuat composable Image untuk menangani pengubahan ukuran/tata letak selain menggambar ImageAsset tertentu ke layar. Composable ini juga mendukung penggambaran semua instance Painter arbitrer yang berkaitan dengan ukuran intrinsiknya, serta mendukung ukuran yang telah ditetapkan atau ukuran minimumnya (Ibcc8f)
Composable Wrap sudah tidak digunakan lagi. Ini dapat diganti dengan pengubah LayoutAlign atau dengan composable Stack (Ib237f)
WithConstraints mendapatkan parameter LayoutDirection (I6d6f7)
Membuat arah tata letak disebarkan dari node tata letak induk ke turunan. Menambahkan pengubah arah tata letak. (I3d955)
Komponen stack mendukung arah kanan-ke-kiri (Ic9e00)
Composable DrawShape telah dihapus. Sebagai gantinya, gunakan pengubah DrawBackground. (I7ceb2)
Mendukung arah kanan-ke-kiri dalam pengubah LayoutPadding (I9e8da)
Menambahkan AdapterList, komponen daftar scroll yang hanya menyusun dan mengatur tata letak item yang terlihat. Saat ini, masalah yang diketahui mencakup vertikal saja dan tidak sepenuhnya menangani semua kasus perubahan pada turunannya. (Ib351b)
Memperbarui flag
ComposeFlags.COMPOSER_PARAM
menjaditrue
, yang akan mengubah strategi pembuatan kode untuk plugin compose. Pada tingkat tinggi, hal ini menyebabkan fungsi @Composable dibuat dengan parameter sintetik tambahan, yang akan diteruskan ke panggilan @Composable berikutnya agar runtime dapat mengelola eksekusi dengan benar. Ini adalah perubahan yang dapat menyebabkan gangguan biner yang signifikan, tetapi semestinya dapat menjaga kompatibilitas tingkat sumber pada semua penggunaan compose yang disetujui. (I7971c)Komponen Canvas ditambahkan. Composable ini menggunakan beberapa ukuran (disediakan oleh pengguna) dan Anda dapat menggambar menggunakan CanvasScope (I0d622)
Density dan DensityScope telah digabungkan dalam satu antarmuka. Sebagai ganti ambientDensity(), sekarang Anda dapat menggunakan DensityAmbient.current. Sebagai ganti withDensity(density), gunakan with(density) (I11cb1)
Mengubah LayoutCoordinates untuk membuat providedAlignmentLines menjadi Set, bukan Map; dan membuat LayoutCoordinates mengimplementasikan operator get(), bukan mengambil nilai. Hal ini mempermudah pengubah untuk mengubah satu atau beberapa nilai kumpulan tanpa membuat koleksi baru untuk setiap pengubah. (I0245a)
Sekarang, scroller menampilkan perilaku gerakan lempar pada Android native. (I922af, b/147493715)
Peningkatan kualitas pada platform API Constraints (I0fd15)