Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Compose Animation

Mem-build animasi di aplikasi Jetpack Compose untuk memperkaya pengalaman pengguna.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
7 September 2022 1.2.1 - 1.3.0-beta02 -

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.

GrupDeskripsi
compose.animationMem-build animasi di aplikasi Jetpack Compose untuk memperkaya pengalaman pengguna.
compose.compilerMentransformasi fungsi @Composable dan mengaktifkan pengoptimalan dengan plugin compiler Kotlin.
compose.foundationMenulis aplikasi Jetpack Compose dengan elemen penyusun siap pakai dan memperluas dasar untuk mem-build bagian sistem desain Anda sendiri.
compose.materialMem-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.material3Mem-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.runtimeElemen penyusun yang penting untuk model pemrograman dan pengelolaan status Compose, serta runtime inti untuk ditargetkan oleh Plugin Compiler Compose.
compose.uiKomponen 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.animation:animation:1.3.0-beta03"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.3.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.animation:animation:1.3.0-beta03")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.3.0-beta03"
    }

    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.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.3

Versi 1.3.0-beta02

7 September 2022

androidx.compose.animation:animation:1.3.0-beta02, androidx.compose.animation:animation-core:1.3.0-beta02, dan androidx.compose.animation:animation-graphics:1.3.0-beta02 dirilis. Versi 1.3.0-beta02 berisi commit ini.

  • Menghapus Kotlin.experiment dari opsi compiler karena tidak digunakan lagi

Versi 1.3.0-beta01

24 Agustus 2022

androidx.compose.animation:animation:1.3.0-beta01, androidx.compose.animation:animation-core:1.3.0-beta01, dan androidx.compose.animation:animation-graphics:1.3.0-beta01 dirilis. Versi 1.3.0-beta01 berisi commit ini.

Versi 1.3.0-alpha03

10 Agustus 2022

androidx.compose.animation:animation:1.3.0-alpha03, androidx.compose.animation:animation-core:1.3.0-alpha03, dan androidx.compose.animation:animation-graphics:1.3.0-alpha03 dirilis. Versi 1.3.0-alpha03 berisi commit ini.

Perubahan API

  • Parameter baru di Crossfade, animateAsState, dan Animatable untuk label alat (Iac08a)
  • Menambahkan fungsi atFraction untuk menentukan keyframe pada pecahan, bukan pada durasi tertentu. (I20c76, b/232059455)

Versi 1.3.0-alpha02

27 Juli 2022

androidx.compose.animation:animation:1.3.0-alpha02, androidx.compose.animation:animation-core:1.3.0-alpha02, dan androidx.compose.animation:animation-graphics:1.3.0-alpha02 dirilis. Versi 1.3.0-alpha02 berisi commit ini.

Versi 1.3.0-alpha01

29 Juni 2022

androidx.compose.animation:animation:1.3.0-alpha01, androidx.compose.animation:animation-core:1.3.0-alpha01, dan androidx.compose.animation:animation-graphics:1.3.0-alpha01 dirilis. Versi 1.3.0-alpha01 berisi commit ini.

Perubahan API

  • LookaheadLayout baru yang mendukung penerusan lookahead sebelum pengukuran/tata letak sebenarnya. Hal ini memungkinkan pra-penghitungan tata letak saat tata letak berubah, serta mengizinkan pengukuran/tata letak pasca-lookahead menggunakan ukuran/posisi yang telah dihitung sebelumnya untuk menganimasikan ukuran dan posisi ke target. SubcomposeLayouts belum didukung, tetapi akan ada dalam rilis mendatang. (I477f5)

Versi 1.2

Versi 1.2.1

10 Agustus 2022

androidx.compose.animation:animation:1.2.1, androidx.compose.animation:animation-core:1.2.1, dan androidx.compose.animation:animation-graphics:1.2.1 dirilis. Versi 1.2.1 berisi commit ini.

Versi 1.2.0

27 Juli 2022

androidx.compose.animation:animation:1.2.0, androidx.compose.animation:animation-core:1.2.0, dan androidx.compose.animation:animation-graphics:1.2.0 dirilis. Versi 1.2.0 berisi commit ini.

Perubahan penting sejak 1.1.0

  • Animasi Compose sekarang mendukung setelan 'Animator duration scale' dari Opsi Developer.
  • Banyak pilihan kurva easing eksperimental baru.
  • AnimatedImageVector sekarang mendukung repeatCount dan repeatMode

Versi 1.2.0-rc03

29 Juni 2022

androidx.compose.animation:animation:1.2.0-rc03, androidx.compose.animation:animation-core:1.2.0-rc03, dan androidx.compose.animation:animation-graphics: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.animation:animation:1.2.0-rc02, androidx.compose.animation:animation-core:1.2.0-rc02, dan androidx.compose.animation:animation-graphics:1.2.0-rc02 dirilis. Versi 1.2.0-rc02 berisi commit ini.

Perbaikan Bug

  • Menghapus anotasi ExperimentalEasingApi pada fungsi Easing (Ied441)

Versi 1.2.0-rc01

15 Juni 2022

androidx.compose.animation:animation:1.2.0-rc01, androidx.compose.animation:animation-core:1.2.0-rc01, dan androidx.compose.animation:animation-graphics: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)

Versi 1.2.0-beta03

1 Juni 2022

androidx.compose.animation:animation:1.2.0-beta03, androidx.compose.animation:animation-core:1.2.0-beta03, dan androidx.compose.animation:animation-graphics:1.2.0-beta03 dirilis. Versi 1.2.0-beta03 berisi commit ini.

Perubahan API

  • Menambahkan Kurva Easing Eksperimental untuk Animasi (I64a38)

Versi 1.2.0-beta02

18 Mei 2022

androidx.compose.animation:animation:1.2.0-beta02, androidx.compose.animation:animation-core:1.2.0-beta02, dan androidx.compose.animation:animation-graphics:1.2.0-beta02 dirilis. Versi 1.2.0-beta02 berisi commit ini.

Versi 1.2.0-beta01

11 Mei 2022

androidx.compose.animation:animation:1.2.0-beta01, androidx.compose.animation:animation-core:1.2.0-beta01, dan androidx.compose.animation:animation-graphics:1.2.0-beta01 dirilis. Versi 1.2.0-beta01 berisi commit ini.

  • Ini adalah rilis 1.2 beta pertama. Tidak ada perubahan sejak versi alfa terakhir.

Versi 1.2.0-alpha08

20 April 2022

androidx.compose.animation:animation:1.2.0-alpha08, androidx.compose.animation:animation-core:1.2.0-alpha08, dan androidx.compose.animation:animation-graphics:1.2.0-alpha08 dirilis. Versi 1.2.0-alpha08 berisi commit ini.

Versi 1.2.0-alpha07

6 April 2022

androidx.compose.animation:animation:1.2.0-alpha07, androidx.compose.animation:animation-core:1.2.0-alpha07, dan androidx.compose.animation:animation-graphics:1.2.0-alpha07 dirilis. Versi 1.2.0-alpha07 berisi commit ini.

Perubahan API

  • AnimatedImageVector kini mendukung repeatCount dan repeatMode (Ia3e75, b/199304067)

Versi 1.2.0-alpha06

23 Maret 2022

androidx.compose.animation:animation:1.2.0-alpha06, androidx.compose.animation:animation-core:1.2.0-alpha06, dan androidx.compose.animation:animation-graphics:1.2.0-alpha06 dirilis. Versi 1.2.0-alpha06 berisi commit ini.

Perubahan API

  • Mengupdate penguraian vektor drawable untuk mendukung pencerminan otomatis untuk membalik konten VectorPainter jika arah tata letak saat ini adalah RTL. (I79cd9, b/185760237)

Perbaikan Bug

  • Mengupdate API grafik Vektor untuk menggunakan anotasi composable @VectorComposable yang tepat, bukan @UiComposable (I942bc)

Versi 1.2.0-alpha05

9 Maret 2022

androidx.compose.animation:animation:1.2.0-alpha05, androidx.compose.animation:animation-core:1.2.0-alpha05, dan androidx.compose.animation:animation-graphics:1.2.0-alpha05 dirilis. Versi 1.2.0-alpha05 berisi commit ini.

Perubahan API

  • Hore! Animasi Compose sekarang mendukung setelan 'Animator duration scale' dari Opsi Developer. (I5a4fc, b/161675988)

Versi 1.2.0-alpha04

23 Februari 2022

androidx.compose.animation:animation:1.2.0-alpha04, androidx.compose.animation:animation-core:1.2.0-alpha04, dan androidx.compose.animation:animation-graphics:1.2.0-alpha04 dirilis. Versi 1.2.0-alpha04 berisi commit ini.

Versi 1.2.0-alpha03

9 Februari 2022

androidx.compose.animation:animation:1.2.0-alpha03, androidx.compose.animation:animation-core:1.2.0-alpha03, dan androidx.compose.animation:animation-graphics:1.2.0-alpha03 dirilis. Versi 1.2.0-alpha03 berisi commit ini.

Versi 1.2.0-alpha02

26 Januari 2022

androidx.compose.animation:animation:1.2.0-alpha02, androidx.compose.animation:animation-core:1.2.0-alpha02, dan androidx.compose.animation:animation-graphics:1.2.0-alpha02 dirilis. Versi 1.2.0-alpha02 berisi commit ini.

Versi 1.2.0-alpha01

12 Januari 2022

androidx.compose.animation:animation:1.2.0-alpha01, androidx.compose.animation:animation-core:1.2.0-alpha01, dan androidx.compose.animation:animation-graphics:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Perubahan API

  • Gunakan AnimatedImageVector.animatedVectorResource sebagai ganti animatedVectorResource, untuk memuat file resource <animated-vector>.
    • Gunakan rememberAnimatedVectorResource sebagai ganti AnimatedImageVector#painterFor untuk merender AnimatedImageVector. (I9c300)

Perbaikan Bug

  • Menambahkan metode toString ke Animatable dan AnimationResult. (Icd3a6)

Update Dependensi

  • Sekarang bergantung pada Kotlin 1.6.10.

Versi 1.1

Versi 1.1.1

23 Februari 2022

androidx.compose.animation:animation:1.1.1, androidx.compose.animation:animation-core:1.1.1, dan androidx.compose.animation:animation-graphics:1.1.1 dirilis. Versi 1.1.1 berisi commit ini.

Perbaikan Bug

Versi 1.1.0

9 Februari 2022

androidx.compose.animation:animation:1.1.0, androidx.compose.animation:animation-core:1.1.0, dan androidx.compose.animation:animation-graphics: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 yang stabil untuk Kolom Samping Navigasi
  • Menstabilkan sejumlah API yang sebelumnya masih eksperimental
  • Dukungan untuk versi Kotlin yang lebih baru

Versi 1.1.0-rc03

26 Januari 2022

androidx.compose.animation:animation:1.1.0-rc03, androidx.compose.animation:animation-core:1.1.0-rc03, dan androidx.compose.animation:animation-graphics:1.1.0-rc03 dirilis. Versi 1.1.0-rc03 berisi commit ini.

Perbaikan Bug

  • Diupdate agar mendukung Compose Material 1.1.0-rc03

Versi 1.1.0-rc01

15 Desember 2021

androidx.compose.animation:animation:1.1.0-rc01 dan androidx.compose.animation:animation-core:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit berikut ini.

Perubahan API

  • Gunakan AnimatedImageVector.animatedVectorResource sebagai ganti animatedVectorResource, untuk memuat file resource <animated-vector>.
    • Gunakan rememberAnimatedVectorResource sebagai ganti AnimatedImageVector#painterFor untuk merender AnimatedImageVector. (I9c300)

Versi 1.1.0-beta04

1 Desember 2021

androidx.compose.animation:animation:1.1.0-beta04, androidx.compose.animation:animation-core:1.1.0-beta04, dan androidx.compose.animation:animation-graphics: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.animation:animation:1.1.0-beta03, androidx.compose.animation:animation-core:1.1.0-beta03, dan androidx.compose.animation:animation-graphics:1.1.0-beta03 dirilis. Versi 1.1.0-beta03 berisi commit ini.

Perubahan API

  • Menambahkan pengubah Modifier.onPlaced baru untuk memungkinkan pengamatan terhadap perubahan penempatan. Oleh sebab itu, perubahan tambahan untuk offset pengubah turunan dapat dilakukan berdasarkan perubahan penempatan yang teramati. (I558fd)
  • Dukungan baru untuk contentKey di Crossfade. ContentKey akan digunakan untuk pemeriksaan kesetaraan oleh sistem animasi. Oleh karena itu, diffing kustom pada state dapat dicapai dengan menetapkan contentKey yang sesuai untuk setiap state.

    ContentKey juga akan digunakan sebagai kunci untuk menyimpan & memulihkan konten. (I2e055, b/197907070)

Versi 1.1.0-beta02

3 November 2021

androidx.compose.animation:animation:1.1.0-beta02, androidx.compose.animation:animation-core:1.1.0-beta02, dan androidx.compose.animation:animation-graphics:1.1.0-beta02 dirilis. Versi 1.1.0-beta02 berisi commit ini.

Perbaikan Bug

  • Animation API baru untuk mendukung alat. Secara khusus, fungsi ini memungkinkan alat untuk memeriksa animasi & konfigurasinya dalam Transisi. (I4116e)

Versi 1.1.0-beta01

27 Oktober 2021

androidx.compose.animation:animation:1.1.0-beta01, androidx.compose.animation:animation-core:1.1.0-beta01, dan androidx.compose.animation:animation-graphics:1.1.0-beta01 dirilis. Versi 1.1.0-beta01 berisi commit ini.

Perubahan API

  • Animation API baru untuk mendukung alat. Secara khusus, fungsi ini memungkinkan alat untuk memeriksa animasi & konfigurasinya dalam Transisi. (I4116e)

Versi 1.1.0-alpha06

13 Oktober 2021

androidx.compose.animation:animation:1.1.0-alpha06, androidx.compose.animation:animation-core:1.1.0-alpha06, dan androidx.compose.animation:animation-graphics:1.1.0-alpha06 dirilis. Versi 1.1.0-alpha06 berisi commit ini.

Versi 1.1.0-alpha05

29 September 2021

androidx.compose.animation:animation:1.1.0-alpha05, androidx.compose.animation:animation-core:1.1.0-alpha05, dan androidx.compose.animation:animation-graphics:1.1.0-alpha05 dirilis. Versi 1.1.0-alpha05 berisi commit ini.

Perubahan API

  • EnterTransition, ExitTransition, dan beberapa API AnimatedVisibility telah dibuat stabil. MutableTransitionState.isIdle juga tidak lagi bersifat eksperimental. (I5072d)

  • Perubahan yang dapat menyebabkan gangguan: lambda di setelan factory Enter/ExitTransition telah dipindahkan ke posisi terakhir dalam daftar parameter. (I5072d)

Versi 1.1.0-alpha04

15 September 2021

androidx.compose.animation:animation:1.1.0-alpha04, androidx.compose.animation:animation-core:1.1.0-alpha04, dan androidx.compose.animation:animation-graphics:1.1.0-alpha04 dirilis. Versi 1.1.0-alpha04 berisi commit berikut ini.

Versi 1.1.0-alpha03

1 September 2021

androidx.compose.animation:animation:1.1.0-alpha03, androidx.compose.animation:animation-core:1.1.0-alpha03, dan androidx.compose.animation:animation-graphics:1.1.0-alpha03 dirilis. Versi 1.1.0-alpha03 berisi commit ini.

Fitur Baru

  • Mengupdate Compose 1.1.0-alpha03 agar bergantung pada Kotlin 1.5.30. (I74545)

Versi 1.1.0-alpha02

18 Agustus 2021

androidx.compose.animation:animation:1.1.0-alpha02, androidx.compose.animation:animation-core:1.1.0-alpha02, dan androidx.compose.animation:animation-graphics:1.1.0-alpha02 dirilis. Versi 1.1.0-alpha02 berisi commit ini.

Perubahan API

  • StartOffset kini didukung dalam repeatable dan infiniteRepeatable, sebagai cara untuk menunda waktu mulai atau mempercepat animasi sebelum animasi dimulai. Offset awal ini tidak akan diulang (Ic679f, b/195079908)
  • Transisi Enter/Exit baru untuk skala. Transisi ini dapat digunakan bersama dengan jenis Enter/ExitTransitions lainnya. (I372da, b/191325593)

Versi 1.1.0-alpha01

4 Agustus 2021

androidx.compose.animation:animation:1.1.0-alpha01, androidx.compose.animation:animation-core:1.1.0-alpha01, dan androidx.compose.animation:animation-graphics:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit ini.

Perubahan API

  • AnimatedImageVector dan API terkait kini berada dalam modul androidx.compose.animation:animation-graphics baru. (I60873)

Perbaikan Bug

Versi 1.0

Versi 1.0.5

3 November 2021

androidx.compose.animation:animation:1.0.5 dan androidx.compose.animation:animation-core:1.0.5 dirilis. Versi 1.0.5 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki instance derivedStateOf pelacakan error. (aosp/1792247)

Versi 1.0.4

13 Oktober 2021

androidx.compose.animation:animation:1.0.4 dan androidx.compose.animation:animation-core:1.0.4 dirilis. Versi 1.0.4 berisi commit berikut ini.

Update Dependensi

  • Diupdate agar bergantung pada Kotlin 1.5.31

Versi 1.0.3

29 September 2021

androidx.compose.animation:animation:1.0.3 dan androidx.compose.animation:animation-core:1.0.3 dirilis. Versi 1.0.3 berisi commit berikut ini.

Update Dependensi

  • Diupdate agar bergantung pada Kotlin 1.5.30

Versi 1.0.2

1 September 2021

androidx.compose.animation:animation:1.0.2 dan androidx.compose.animation:animation-core:1.0.2 dirilis. Versi 1.0.2 berisi commit berikut ini.

Update 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.animation:animation:1.0.1 dan androidx.compose.animation:animation-core:1.0.1 dirilis. Versi 1.0.1 berisi commit berikut ini.

Update Dependensi

  • Diupdate agar bergantung pada Kotlin 1.5.21.

Versi 1.0.0

28 Juli 2021

androidx.compose.animation:animation:1.0.0 dan androidx.compose.animation:animation-core: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 AGP 7.1. (b/194289155)

Versi 1.0.0-rc02

14 Juli 2021

androidx.compose.animation:animation:1.0.0-rc02 dan androidx.compose.animation:animation-core:1.0.0-rc02 dirilis. Versi 1.0.0-rc02 berisi commit berikut ini.

Versi 1.0.0-rc01

1 Juli 2021

androidx.compose.animation:animation:1.0.0-rc01 dan androidx.compose.animation:animation-core:1.0.0-rc01 dirilis. Versi 1.0.0-rc01 berisi commit ini.

Perbaikan Bug

  • Memindahkan InfiniteAnimationPolicy ke androidx.compose.ui:ui (I5eb09, b/160602714)

Versi 1.0.0-beta09

16 Juni 2021

androidx.compose.animation:animation:1.0.0-beta09 dan androidx.compose.animation:animation-core:1.0.0-beta09 dirilis. Versi 1.0.0-beta09 berisi commit berikut ini.

Perubahan API

  • Composable AnimatedContent baru. Composable ini mengelola perubahan kontennya menggunakan ContentTransform yang dapat disesuaikan saat konten target baru masuk dan keluar dari konten awal. Kombinasi berbeda dari transisi masuk dan keluar dapat digunakan untuk menghasilkan tampilan dan nuansa yang disesuaikan. Sebagai bagian dari transformasi konten, AnimatedContent secara otomatis membuat animasi ukurannya agar sesuai dengan konten yang masuk. (I2c3df)
  • ManualFrameClock dihapus. Jika Anda perlu mengontrol animasi, gunakan composeTestRule.mainClock. (I3c3e8, b/189951065)

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 di src/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 menggunakan adb 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 karakter H, S, dan P 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, class androidx.compose.runtime.SlotTable akan memiliki deskripsi Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> adalah tanda tangan metode, dan menyertakan nama, jenis parameter, serta jenis nilai yang ditampilkan metode. Misalnya, metode fun isPlaced(): Boolean pada LayoutNode memiliki tanda tangan isPlaced()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 aplikasi kemudian dibuat dengan menyertakan artefak tersebut, aturan ini akan digabung menjadi satu dan aturan yang digabungkan akan digunakan untuk membuat profil ART biner ringkas yang khusus untuk aplikasi. ART kemudian dapat memanfaatkan profil ini jika aplikasi tersebut diinstal di perangkat untuk kompilasi awal subset tertentu dari aplikasi guna meningkatkan performa aplikasi, terutama saat pertama kali dijalankan. Perhatikan bahwa tindakan ini tidak akan berpengaruh pada aplikasi yang dapat di-debug.

Versi 1.0.0-beta08

2 Juni 2021

androidx.compose.animation:animation:1.0.0-beta08 dan androidx.compose.animation:animation-core:1.0.0-beta08 dirilis. Versi 1.0.0-beta08 berisi commit berikut ini.

Perbaikan Bug

  • Sekarang detectDragGesures, detectVerticalGestures, dan detectHorizontalGestures akan otomatis menggunakan perubahan posisi, tidak perlu memanggil change.consumePositionChange dalam callback onDrag (I42fc4, b/185096350, b/187320697)
  • 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)

Versi 1.0.0-beta07

18 Mei 2021

androidx.compose.animation:animation:1.0.0-beta07 dan androidx.compose.animation:animation-core:1.0.0-beta07 dirilis. Versi 1.0.0-beta07 berisi commit berikut ini.

Perubahan API

  • API AnimatedVisibility baru yang mendukung visibilitas yang akan ditentukan dalam MutableTransitionState. Ini juga memungkinkan state animasi diamati secara eksternal ke AnimatedVisibility melalui currentState dan isIdle.
    • Dukungan transisi turunan baru di Transition
    • Mendukung animasi transisi keluar/masuk khusus dalam AnimatedVisibility menggunakan AnimationScope.transition
    • Pengubah animateEnterExit baru yang dapat diakses untuk semua turunan AnimatedVisibility
    • Tidak menggunakan lagi AnimatedVisibility API yang mengambil parameter initiallyVisible (I702f3)

Versi 1.0.0-beta06

5 Mei 2021

androidx.compose.animation:animation:1.0.0-beta06 dan androidx.compose.animation:animation-core:1.0.0-beta06 dirilis. Versi 1.0.0-beta06 berisi commit berikut.

Versi 1.0.0-beta05

21 April 2021

androidx.compose.animation:animation:1.0.0-beta05 dan androidx.compose.animation:animation-core:1.0.0-beta05 dirilis. Versi 1.0.0-beta05 berisi commit berikut ini.

Perbaikan Bug

  • File AndroidManifest dari ui-test-manifest dan ui-tooling-data kini kompatibel dengan Android 12 (I6f9de, b/184718994)

Versi 1.0.0-beta04

7 April 2021

androidx.compose.animation:animation:1.0.0-beta04 dan androidx.compose.animation:animation-core:1.0.0-beta04 dirilis. Versi 1.0.0-beta04 berisi commit berikut ini.

Perubahan API

  • Instance publik RowScope, ColumnScope, BoxScope, BoxWithConstraintsScope telah dihapus. (I4e83e, b/181869067)

Versi 1.0.0-beta03

24 Maret 2021

androidx.compose.animation:animation:1.0.0-beta03 dan androidx.compose.animation:animation-core:1.0.0-beta03 dirilis. Versi 1.0.0-beta03 berisi commit berikut ini.

Versi 1.0.0-beta02

10 Maret 2021

androidx.compose.animation:animation:1.0.0-beta02 dan androidx.compose.animation:animation-core:1.0.0-beta02 dirilis. Versi 1.0.0-beta02 berisi commit berikut ini.

Perbaikan Bug

Versi 1.0.0-beta01

24 Februari 2021

androidx.compose.animation:animation:1.0.0-beta01 dan androidx.compose.animation:animation-core:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit berikut ini.

Ini adalah rilis pertama Compose 1.0.0 Beta.

Perubahan API

  • InteractionState telah diganti dengan [Mutable]InteractionSource
    • Antarmuka bertanggung jawab untuk mengirimkan/mengumpulkan peristiwa Interaksi.
    • Daripada meneruskan interactionState = remember { InteractionState() } ke komponen seperti Button dan Modifier.clickable(), gunakan interactionSource = 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)
  • Paket metode smoothScrollBy dan scrollBy berubah menjadi androidx.compose.foundation.gestures.* (I3f7c1, 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)
  • Orientasi telah dipindahkan ke paket dasar. VelocirtTracker dipindahkan dari ui.gesture ke ui.input.pointer. (Iff4a8, b/175294473)
  • AnimationClockObservable dan subclass telah dihapus. AnimatedFloat telah dihapus. (Icde52, b/177457083)
  • Modifier.draggable kini menerima DraggableState dan bukan lambda sederhana. Anda dapat membuat state melalui rememberDraggableState { delta -> } untuk mendapatkan perilaku yang sama seperti sebelumnya (Ica70f, b/175294473)
  • animate, animasiValue, AnimatedValue API telah dihapus (If27bc, b/177457083)
  • AnimationEndReason.Interrupted dihapus. CancellationException akan dilempar jika animasi terhenti. (I2cbbc, b/179695417)
  • TargetAnimation API telah dihapus. (If47d1, b/177457083)

Versi 1.0.0-alpha12

10 Februari 2021

androidx.compose.animation:animation:1.0.0-alpha12 dan androidx.compose.animation:animation-core:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit berikut ini.

Perubahan API

  • Modifier.pointerInput sekarang mengharuskan kunci remember untuk menunjukkan kapan coroutine deteksi input pointer harus dimulai ulang untuk dependensi baru. (I849cd)
  • Bounds telah diganti namanya menjadi DpRect (I4b32a)
  • Menggabungkan nama parameter untuk AnimationSpec ke animationSpec di seluruh sistem animasi. Juga membatasi Enter/ExitTransition untuk menerima FiniteAnimationSpec. (Ie47c5, b/177457083)
  • Animatable.snapTo dan Animatable.stop sekarang menangguhkan fungsi (If4288)
  • Sama seperti saat kami menghapus composable state { 0 } dan kini mempromosikan penggunaan seperti remember { mutableStateOf(0) }, kami juga akan menghapus composable savedInstanceState { 0 }. Sebagai gantinya, Anda harus menggunakan rememberSaveable { 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 parameter stateSaver. Penggunaannya akan terlihat seperti ini: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Memperbarui tanda tangan metode Crossfade agar lebih konsisten dengan sistem animasi lainnya. (Ib05ed, b/177457083)
  • rememberSavedInstanceState() telah diganti namanya menjadi rememberSaveable() dan dipindahkan ke paket androidx.compose.runtime.saveable. (I1366e, b/177338004)
  • RestorableStateHolder diganti namanya menjadi SaveableStateHolder dan dipindahkan ke paket androidx.compose.runtime.saveable. Metode internal RestorableStateProvider diganti namanya menjadi SaveableStateProvider. Jenis umum telah dihapus agar Anda dapat meneruskan Any sebagai kunci. Anotasi eksperimental tidak diperlukan lagi. (I0902e, b/174598702)
  • Mengupdate Modifier.animateContentSize API agar konsisten dengan sistem animasi lainnya. (I0bf75, b/177457083)
  • AnimatedValue/Float sekarang tidak digunakan lagi. Sebagai gantinya, gunakan Animatable. (I71345, b/177457083)
  • tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter, dan pressIndicaitonGestureFilter tidak digunakan lagi. Sebagai gantinya, gunakan Modifier.clickable atau Modifier.pointerInput dengan fungsi detectTapGestures. (I6baf9, b/175294473)
  • Memperkenalkan elemen konteks coroutine InfiniteAnimationPolicy yang akan diimplementasikan dalam animasi tak terbatas. Secara default tidak ada kebijakan yang diinstal, kecuali saat menjalankan pengujian dengan ComposeTestRule. (I50ec4, b/151940543)
  • Metode penguraian dan copy() telah dihapus dari beberapa class yang jarang digunakan. (I26702, b/178659281)
  • Waktu putar dalam animasi sekarang digabungkan menjadi nanodetik (If776a)
  • Artefak compose:runtime-dispatch sekarang tidak digunakan lagi. MonotonicFrameClock sekarang dapat ditemukan di compose:runtime dan AndroidUiDispatcher dapat ditemukan di compose:ui. (Ib5c36)
  • Menambahkan Animation.isInfinite dan VectorizedAnimationSpec.isInfinite yang memberi sinyal apakah animasi bersifat tak terbatas atau tidak. Ini dapat digunakan dalam implementasi animasi agar memiliki penanganan khusus untuk animasi semacam itu. Misalnya, pesan khusus "sisa waktu" dapat ditampilkan. Atau selama pengujian, animasi dapat dibatalkan untuk membatasi proses menunggu tanpa ada aktivitas. (Iebb05, b/151940543)
  • Gunakan Long, bukan Uptime, sebagai jenis waktu animasi (Ie3aa7, b/177420019)

Versi 1.0.0-alpha11

28 Januari 2021

androidx.compose.animation:animation:1.0.0-alpha11 dan androidx.compose.animation:animation-core:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit berikut ini.

Perubahan API

  • Transition berbasis TransitionDefinition sudah tidak digunakan lagi (I0ac57)
  • Kolom label ditambahkan untuk Transition dan animasi turunan yang akan ditampilkan di alat (I619fb)
  • animateAsState sekarang menjadi animateFooAsState dengan Foo merupakan jenis variabel yang dianimasikan. misalnya, Float, Dp, Offset, dll. (Ie7e25)
  • InfiniteTransition baru yang menjalankan sejumlah animasi turunan. (I1da81)
  • Mengubah antarmuka parameter stateful Material agar memiliki fungsi @Composable yang menampilkan State<T>. Menambahkan Animatable.asState() untuk mempermudah mengonversi Animatable menjadi State. Selain itu, mengubah juga animateElevation menjadi ekstensi yang ditangguhkan di Animatable. (If613c)

Perbaikan Bug

  • onCommit, onDispos, dan onActive sudah tidak digunakan lagi dan digantikan dengan API SideEffect dan DisposableEffect (If760e)
  • State awal di updateTransition sekarang didukung (Ifd51d)
  • Parameter deskripsi konten telah ditambahkan ke Image dan Icon. Digunakan untuk memberikan deskripsi ke layanan aksesibilitas (I2ac4c)
  • invalidate dan compositionReference() sekarang tidak digunakan lagi dan masing-masing telah digantikan dengan currentRecomposeScope dan rememberCompositionReference. (I583a8)
  • Duration dan Uptime akan diganti dengan milidetik Long, dan langkah ini akan menghapus dependensi input pointer di class tersebut. (Ia33b2, b/175142755, b/177420019)
  • clickable, toggleable, and selectable sekarang bisa dibuat di luar komposisi (I0a130, b/172938345, b/175294473)
  • Easing telah diubah menjadi antarmuka fungsional (Ib14e5)
  • Metode factory items(count: Int) baru untuk cakupan LazyColumn/LazyRow/LasVerticalGrid. items(items: List) dan itemsIndexed(items: List) kini merupakan fungsi ekstensi sehingga Anda harus mengimpornya secara manual saat digunakan. Kelebihan ekstensi baru untuk Array: items(items: Array) dan itemsIndexed(Array) (I803fc, b/175562574)
  • Memanfaatkan TestCoroutineDispatcher dalam pengujian (I532b6)
  • Menghapus PointerInputData dan mengubah PointerInputChange untuk mendapatkan semua kolom PointerInputData. Membuat PointerInputEvent dan PointerInputEventData internal karena tidak digunakan di API publik mana pun. (Ifff97, b/175142755)

Versi 1.0.0-alpha10

13 Januari 2021

androidx.compose.animation:animation:1.0.0-alpha10 dan androidx.compose.animation:animation-core:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit berikut 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)
  • Menghapus API publik Any.identityHashCode() (I025d7)

Perbaikan Bug

  • Animatable API baru berbasis coroutine yang memastikan pengalaman eksklusif di antara animasinya. DecayAnimationSpec baru untuk mendukung animasi peluruhan multi-dimensi (I820f2, b/168014930)
  • animate() sekarang diganti dengan animateAsState(), yang menampilkan State<T>, bukan T. Hal ini memungkinkan performa yang lebih baik, karena cakupan pembatalan validasi dapat dipersempit ke tempat nilai State dibaca. (Ib179e)

Versi 1.0.0-alpha09

16 Desember 2020

androidx.compose.animation:animation:1.0.0-alpha09 dan androidx.compose.animation:animation-core:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit berikut ini.

Perubahan API

  • Memindahkan Dp.VectorConverter, Position.VectorConverter, dll. ke animation-core dan tidak menggunakan lagi VectorConveters lama (If0c4b)
  • Memperkenalkan rangkaian baru Transition API dengan kemudahan penggunaan yang ditingkatkan, serta dukungan untuk animasi yang ditambahkan secara dinamis dan target animasi yang dihitung secara dinamis. API ini ditandai eksperimental agar mudah dibedakan dengan API berbasis TransitionDefinition. (Ia7fe3)

Perbaikan Bug

  • Lambda pada pengubah offset kini menampilkan IntOffset, bukan Float. (Ic9ee5, b/174137212, b/174146755)
  • Menghentikan penggunaan LazyColumnFor, LazyRowFor, LazyColumnForIndexed, dan LazyRowForIndexed. Gunakan LazyColumn dan LazyRow sebagai gantinya (I5b48c)
  • Untuk API input pointer yang ditangguhkan, HandlePointerInputScope diganti namanya menjadi AwaitPointerEventScope dan handlePointerInput() diganti namanya menjadi awaitPointerEventScope(). (Idf0a1, b/175142755)
  • Fungsi infiniteRepeatable untuk membuat InfiniteRepeatableSpec (I668e5)
  • Menghapus anotasi ExperimentalPointerInput (Ia7a24)

Versi 1.0.0-alpha08

2 Desember 2020

androidx.compose.animation:animation:1.0.0-alpha08 dan androidx.compose.animation:animation-core:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit berikut ini.

Perubahan API

  • Menambahkan pemeriksaan lint untuk penamaan dan posisi parameter lambda yang dapat dikomposisi, untuk memeriksa apakah konsisten dengan panduan Compose. Selain itu, memigrasikan beberapa API menggunakan children sebagai nama untuk lambda akhirnya ke content, sesuai dengan pemeriksaan lint dan panduan. (Iec48e)
  • API yang Tidak Digunakan Sebelumnya telah dihapus:
    • Modifier.onPositioned telah dihapus, gunakan Modifier.onGloballyPositioned.
    • Modifier.onDraw telah dihapus, gunakan Modifier.onDrawBehind.
    • Modifier.plus telah dihapus, gunakan Modifier.then.
    • Color.Unset telah dihapus, gunakan Color.Unspecified.
    • Class PxBounds dihapus dan sebagai gantinya gunakan Rect.
    • (Ie9d02, b/172562222)
  • Menambahkan opsi untuk sementara agar TestAnimationClock dapat didorong oleh MonotonicFrameClock (I1403b, b/173402197)

Perbaikan Bug

  • Mengganti nama Modifier.drawLayer menjadi Modifier.graphicsLayer Juga mengupdate class terkait ke GraphicsLayer sesuai masukan dari dewan API. (I0bd29, b/173834241)
  • Menambahkan Modifier.scale/rotate API agar memudahkan drawLayer.
    • Mengganti nama Modifier.drawOpacity menjadi Modifier.alpha
    • Mengganti nama Modifier.drawShadow menjadi Modifier.shadow (I264ca, b/173208140)
  • Membuat kolom waktu beroperasi dan posisi PointerInputData non-nullable. (Id468a)
  • Nama pengubah offsetPx diganti menjadi offset. Pengubah tersebut kini mengambil parameter lambda, bukan State. (Ic3021, b/173594846)
  • API baru untuk menjalankan animasi dalam coroutine (Ied662)
  • 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)
  • Kontrol waktu dalam pengujian (TestAnimationClock dan penggunaannya) kini bersifat eksperimental (I6ef86, b/171378521)
  • Menghapus modul ui-test lama dan stub-nya (I3a7cb)
  • Fungsi RestorableStateHolder.withRestorableState diganti namanya menjadi RestorableStateProvider (I66640)
  • Antarmuka Alignment telah diperbarui dan berfungsi. (I46a07, b/172311734)

Versi 1.0.0-alpha07

11 November 2020

androidx.compose.animation:animation:1.0.0-alpha07 dan androidx.compose.animation:animation-core:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit berikut ini.

Perbaikan Bug

  • AmbientTextStyle, ProvideTextStyle, dan AmbientContentColor dasar 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)
  • 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.animation:animation:1.0.0-alpha06 dan androidx.compose.animation:animation-core:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut ini.

Perubahan API

  • Mengaktifkan transisi di ComposeTestRule; menghapus opsi untuk mengaktifkan kursor yang berkedip dari ComposeTestRule. (If0de3)

Versi 1.0.0-alpha05

14 Oktober 2020

androidx.compose.animation:animation:1.0.0-alpha05 dan androidx.compose.animation:animation-core:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit berikut ini.

Perubahan API

  • Antarmuka dan subclass Animasi Baru: Class ini menyimpan kondisi awal dan akhir untuk animasi sehingga nilai yang diizinkan dan kecepatan dapat dikueri hanya melalui waktu putar (Ie95bd, b/163329867)

Perbaikan Bug

  • OnPositionedModifier diganti nama menjadi OnGloballyPositionedModifier dan onPositioned() diganti nama menjadi onGloballyPositioned(). (I587e8, b/169083903)
  • 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)

Version 1.0.0-alpha04

1 Oktober 2020

androidx.compose.animation:animation:1.0.0-alpha04 dan androidx.compose.animation:animation-core:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.

Perubahan API

  • Menganotasi rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled dan textInputServiceFactory dengan @VisibleForTesting, menjadikannya API internal dan menyembunyikan kdoc (I554eb, b/168308412)

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 Pengubah (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • 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.animation:animation:1.0.0-alpha03 dan androidx.compose.animation:animation-core:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.

Perbaikan Bug

  • Penggunaan gravitasi secara konsisten diganti namanya menjadi align atau alignment dalam API tata letak. (I2421a, b/164077038)

Versi 1.0.0-alpha02

2 September 2020

androidx.compose.animation:animation:1.0.0-alpha02 dan androidx.compose.animation:animation-core:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Perubahan API

  • Menambahkan ManualFrameClock.hasAwaiters untuk melihat apakah ada yang menunggu frame dari jam tersebut; runWithManualClock sebagai pengganti runBlocking saat menjalankan pengujian yang memerlukan ManualFrameClock; TestUiDispatcher.Main yang memberikan akses mudah ke dispatcher UI utama dalam pengujian Anda.

    Contoh:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (I0a85b, b/161247083)

Perbaikan Bug

  • onPreCommit sudah tidak digunakan lagi; onCommit kini memiliki perilaku onPreCommit.

    onCommit dan onActive kini dijalankan dalam frame choreographer yang sama dengan tempat perubahan komposisi dilakukan, bukan di awal frame choreographer berikutnya. (I70403)

Versi 1.0.0-alpha01

26 Agustus 2020

androidx.compose.animation:animation:1.0.0-alpha01 dan androidx.compose.animation:animation-core:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.

Versi 0.1.0-dev

Versi 0.1.0-dev17

19 Agustus 2020

androidx.compose.animation:animation:0.1.0-dev17 dan androidx.compose.animation:animation-core:0.1.0-dev17 dirilis. Versi 0.1.0-dev17 berisi commit berikut ini.

Fitur Baru

Perubahan API

  • Offset telah menjadi class inline (Iaec70)
  • IntOffset kini menjadi class inline (Iac0bf)
  • IntSize kini menjadi class inline (I2bf42)
  • Composable AnimatedVisibilty membuat animasi muncul dan menghilang untuk konten turunan.

    EnterTransition dan ExitTransition diperkenalkan agar berfungsi dengan composable AnimatedVisibilty untuk memberikan 3 jenis animasi muncul dan menghilang: memudarkan, menggeser, dan meluaskan/menciutkan konten. Berbagai jenis animasi dapat digabungkan untuk mendapatkan tampilan dan nuansa yang lebih tajam. (Idda11)

  • 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)

Perbaikan Bug

  • PlacementScope.placeAbsolute() diganti namanya menjadi PlacementScope.place(), dan PlacementScope.place() sebelumnya diganti namanya menjadi PlacementScope.placeRelative(). Akibatnya, metode PlacementScope.place() tidak akan lagi secara otomatis mencerminkan posisi dalam konteks kanan-ke-kiri. Jika menginginkannya, gunakan saja PlacementScope.placeRelative(). (I873ac, b/162916675)
  • state { ... } yang dapat dikomposisi kini tidak lagi digunakan agar panggilan eksplisit ke remember { mutableStateOf(...) } menjadi lebih jelas. Ini mengurangi keseluruhan tampilan API dan jumlah konsep untuk pengelolaan status, serta mencocokkan pola by mutableStateOf() untuk delegasi properti class. (Ia5727)

Versi 0.1.0-dev16

5 Agustus 2020

androidx.compose.animation:animation:0.1.0-dev16 dan androidx.compose.animation:animation-core:0.1.0-dev16 dirilis. Versi 0.1.0-dev16 berisi commit berikut ini.

Perubahan API

  • Pengonversi vektor bawaan untuk mengonversi unit bawaan kini dapat diakses melalui Foo.VectorConverter. misalnya, Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter, dll. (I3e273)
  • Mendukung pemroses akhir di Modifier.animateContentSize() sehingga saat animasi perubahan ukuran selesai, pemroses akan diberi tahu, bersama dengan ukuran awal/akhir animasi. (I277b2)
  • Pengubah animateContentSize baru yang menganimasikan perubahan ukuran tata letak pengubah turunannya (Ieffdc)
  • Menambahkan MonotonicFrameAnimationClock yang memungkinkan Anda menggunakan MonotonicFrameClock sebagai AnimationClockObservable untuk menutup kesenjangan antara jam berbasis coroutine baru dan API yang masih menggunakan jam berbasis callback lama.

    MonotonicFrameClock yang setara dengan ManualAnimationClock sekarang adalah ManualFrameClock. (I111c7, b/161247083)

Perbaikan Bug

  • 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)
  • Memerlukan jenis T agar ditentukan secara eksplisit untuk transitionDefinition. (I1aded)
  • Paket foundation.shape.corner diratakan menjadi foundation.share (I46491, b/161887429)
  • Modifier.plus 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)
  • Nama Modifier.drawBackground telah diganti menjadi Modifier.background (I13677)

Versi 0.1.0-dev15

22 Juli 2020

androidx.compose.animation:animation:0.1.0-dev15 dan androidx.compose.animation:animation-core: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

  • Transition API telah diubah untuk menampilkan TransitionState, bukan meneruskan TransitionState ke turunan. Hal ini membuat API lebih konsisten dengan API animate(). (I24e38)
  • Parameter pengubah ditambahkan untuk Crossfade (I87cfe, b/159706180)
  • Gunakan AnimationSpec dan bukan AnimationBuilder di API level teratas untuk memperjelas konsep spesifikasi animasi statis
    • Meningkatkan kualitas DSL transisi dengan menghapus persyaratan lambda untuk membuat AnimationSpecs seperti hitung nilai dan efek pegas. Sebaliknya, API mengambil parameter konstruktor secara langsung.
    • Meningkatkan kemudahan penggunaan AnimationSpec secara keseluruhan yang membuka konstruktor, bukan mengandalkan builder
    • Mengubah durasi dan keterlambatan untuk KeyFrames dan Tween menjadi Int. Tindakan ini menghilangkan tipe transmisi yang tidak perlu dan overloading metode (untuk mendukung Long dan Int). (Ica0b4)
  • 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)
  • 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 dalam berbagai class compose sebagai bagian dari upaya pemfaktoran ulang yang besar-besaran agar hanya mengandalkan jenis primitif dan Dp untuk parameter piksel (I086f4)
  • Menambahkan dukungan animate() untuk Dp, Px, Size, Position, Bounds, PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition, IntPxBounds, dan AnimationVector (Ib7518)
  • Kini Crossfade menerima parameter AnimationBuilder opsional untuk memungkinkan konfigurasi animasi (I6d6e0)
  • Mengganti semua penggunaan Color nullable di API dengan non-nullable dan menggunakan Color.Unset, bukan null (Iabaa7)
  • Menghapus class ValueHolder. Menyusun ulang class AnimatedValue, AnimatedFloat untuk membuat kolom nilai animasi menjadi abstrak sehingga subclass dapat menonton pembaruan nilai.
    • Menambahkan class model untuk AnimatedValue, AnimatedFloat, dll.
    • Menambahkan set baru @Composable API ringan untuk menganimasikan di antara nilai. (I79530)
  • Perubahan yang dapat menyebabkan gangguan pada API ambien. Lihat log dan dokumentasi Ambient<T> untuk detail selengkapnya (I4c7ee, b/143769776)
  • Mode pengulangan baru: Reverse. Mode ini membalikkan iterasi sebelumnya saat animasi berulang di RepeatableSpec atau VectorizedRepeatableSpec. (Ibe0f5)
  • Penambahan API ke ManualAnimationClock: hasObservers: Boolean dan parameter konstruktor dispatchOnSubscribe: Boolean (Iaa134)
  • Menambahkan API untuk mendapatkan batas minimum/maksimum di AnimatedFloat (Icd9cc)

Perbaikan Bug

  • runOnIdleCompose diganti namanya menjadi runOnIdle (I83607)
  • Beberapa nama API pengujian diganti menjadi lebih intuitif. Semua nama API findXYZ diganti menjadi onNodeXYZ. Semua nama API doXYZ diganti menjadi performXYZ. (I7f164)
  • Memperkenalkan API animasi stateless tingkat rendah. API ini (I63bf7)
  • Composable Recompose tidak lagi menjadi abstraksi yang berguna. Sebagian besar rekomposisi harus terjadi sebagai hasil penugasan MutableState. Untuk hal-hal selain itu, sebaiknya Anda menggunakan fungsi invalidate untuk memicu rekomposisi cakupan saat ini. (Ifc992)
  • 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)
  • 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)
  • Kini Crossfade dapat berfungsi dengan null sebagai nilai awal (Iad6a4, b/155947711)
  • 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)
  • Menggabungkan implementasi CanvasScope sehingga hanya terdapat DrawScope dan ContentDrawScope Mengganti nama CanvasScope ke DrawScope. Mengupdate DrawScope untuk menerapkan antarmuka Density dan menyediakan LayoutDirection. Menghapus subclass DrawScope di ContentDrawScope. Painter dan PainterModifier telah diupdate untuk tidak lagi mempertahankan properti RTL sendiri karena DrawScope menyediakan ini tanpa menyediakannya secara manual (I1798e)
  • 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)
  • Menambahkan parameter verticalGravity dan horizontalGravity ke Row dan Column. (I7dc5a)
  • Nama modul ui-text diganti menjadi ui-text-core (I57dec)
  • Meningkatkan 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 dan runOnUiThread 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 { ... } atau by mutableStateOf(...). (I5312c)
  • ColoredRect tidak digunakan lagi. Sebagai gantinya, gunakan Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)
  • Penggantian operator Modifier plus dengan fungsi ekstensi factory (I225e4)
  • Menghentikan penggunaan composable Center. 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)
  • Mengganti nama LayoutFlexible menjadi LayoutWeight. Mengganti nama parameter tight menjadi fill. (If4738)
  • Fungsi yang dapat dikomposisi Opacity telah diganti dengan pengubah drawOpacity. (I5fb62)
  • Sekarang pengujian yang menggunakan AndroidComposeTestRule menyediakan jam animasi pada root komposisi yang memungkinkannya untuk dijeda, dilanjutkan, dan dilanjutkan secara manual. (Id54c5)
  • Mendukung arah kanan-ke-kiri dalam pengubah LayoutPadding (I9e8da)
  • 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)
  • Menambahkan metode penyalinan ke berbagai jenis class inline, termasuk:
    • Offset
    • Size
    • Radius
    • Motion
    • TransformOrigin
    • Metode objek pengiring Size.copy sudah tidak digunakan lagi untuk mendukung metode penyalinan instance (Ife290, b/159905651)
  • 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 atau setViewContent. Compose.disposeComposition sudah tidak digunakan lagi. Sebagai gantinya, gunakan metode dispose pada Composition yang ditampilkan oleh setContent. 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)