Constraintlayout

Mengubah posisi dan ukuran widget secara fleksibel dengan posisi relatif.

Tabel ini mencantumkan semua artefak dalam grup androidx.constraintlayout.

Artefak Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
constraintlayout 2.1.4 - - 2.2.0-alpha07
constraintlayout-compose 1.0.1 - - 1.1.0-alpha07
constraintlayout-core 1.0.4 - - 1.1.0-alpha07

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada ConstraintLayout, Anda harus menambahkan repositori Maven Google ke project. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

dependencies {
    implementation "androidx.constraintlayout:constraintlayout:2.2.0-alpha07"
    // To use constraintlayout in compose
    implementation "androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha07"
}

Kotlin

dependencies {
    implementation("androidx.constraintlayout:constraintlayout:2.2.0-alpha07")
    // To use constraintlayout in compose
    implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha07")
}

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.

ConstraintLayout-compose, dan ConstraintLayout-Core 1.1

Versi 1.1.0-alpha07

8 Februari 2023

androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha07 dan androidx.constraintlayout:constraintlayout-core:1.1.0-alpha07 dirilis. Versi 1.1.0-alpha07 berisi commit ini.

Fitur Baru

  • Menambahkan API baru untuk mengaktifkan Grid Helper di Compose menggunakan DSL (I1143b)

Perbaikan Bug

  • Memperbaiki Wrap.Chain untuk Flow yang tidak menata letak dengan benar ke parameter maxElement yang diberikan. (e1f2ed3)
  • Memperbaiki start ConstraintSet yang tidak diupdate saat mengubah Transisi melalui MotionLayout(motionScene: MotionScene, progress: Float, transitionName: String). (17ffff1)
  • Memperbaiki ConstraintSet yang tidak mencerminkan beberapa perubahan saat mewarisi batasan melalui ConstraintSet(extendConstraintSet: ConstraintSet, description: ConstraintSetScope.() -> Unit).(740804b)

Versi 1.1.0-alpha06

25 Januari 2023

androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha06 dan androidx.constraintlayout:constraintlayout-core:1.1.0-alpha06 dirilis. Versi 1.1.0-alpha06 berisi commit ini.

Fitur Baru

  • Menambahkan API baru untuk mengaktifkan Grid Helper di Compose dengan representasi JSON yang memungkinkan composable ditempatkan dalam petak 2D. (I968ad)

Perubahan API

  • Menambahkan dukungan untuk mode lengkungan ke atas dan lengkungan ke bawah Arc.Above dan Arc.Below mode lengkungan arah independen ke MotionLayout (I184a9)
  • Sekarang Anda dapat membatasi anchor dasar ke anchor bagian atas/bawah dan sebaliknya. (I54628)
  • Mengganti nama MotionLayoutScope#motionProperties (termasuk turunan) menjadi MotionLayoutScope#customProperties. Hal ini harus konsisten seperti saat menetapkan properti khusus. (Ib34c9)
  • Sekarang Anda dapat membuat beberapa referensi di ConstraintSet dan MotionScene: val (box, text, button) = createRefsFor("box", "text","button"). Menerapkan batasan ke beberapa elemen dengan constrain(box, button, text). Dalam ConstrainScope, Anda kini dapat menetapkan dimensi tetap secara intuitif dengan Dp.asDimension: width = 10.dp.asDimension. (I021ec, Ia0960)
  • Metode MotionScene() dan Transition() kini menjadi fungsi non-Composable. Objek dari fungsi ini (termasuk ConstraintSet) kini seharusnya sudah dapat dibandingkan satu sama lain dengan tepat. animateChanges = true di ConstraintLayout sekarang hanya dapat digunakan dengan satu referensi ConstraintSet, selama propertinya berubah pada rekomposisi. (I7d22e)

Perbaikan Bug

  • Memperbaiki masalah saat ConstraintLayout selalu memicu rekomposisi tambahan yang tidak perlu saat helper diubah. (Id83ad, b/222093277)
  • Memperbaiki perilaku saat menggunakan Intrinsik dengan ConstraintLayout & MotionLayout. (I487ae, b/220527863)
  • Memperbaiki masalah saat konten yang berubah tidak dapat diukur ulang. (Ibfe8a, b/219091179)

Versi 1.1.0-alpha05

7 Desember 2022

androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha05 dan androidx.constraintlayout:constraintlayout-core:1.1.0-alpha05 dirilis. Versi 1.1.0-alpha05 berisi commit ini.

Fitur Baru

  • Mendukung KeyAttributes kustom di DSL (b94e748)
  • Properti bias platform di ConstrainScope (32625d0)
  • Mendukung parameter kustom dalam rantai (72a2e9e)
  • Menambahkan pengujian Macrobenchmark untuk MotionLayout di Compose (36f43bc)
  • Untuk informasi selengkapnya tentang perubahan dalam rilis sebelumnya di Compose, lihat halaman wiki

Perubahan API

  • Membalik parameter addConstraintSet dan addTransition (152facc)

Perbaikan Bug

  • Memperbaiki Rantai Horizontal (ed5f56e)

Versi 1.1.0-alpha01

20 Mei 2022

androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha01 dirilis.

Perlu diperhatikan bahwa MotionLayout API bersifat eksperimental dan memerlukan keikutsertaan.

Untuk informasi selengkapnya, lihat Yang baru di Compose 1.1.0-alpha01 di GitHub.

Versi 2.2

Versi 2.2.0-alpha07

8 Februari 2023

androidx.constraintlayout:constraintlayout:2.2.0-alpha07 dirilis. Versi 2.2.0-alpha07 berisi commit ini.

Perbaikan Bug

  • Memperbaiki masalah konten halaman ConstraintLayout yang tidak ada. (I82e25)

Versi 2.2.0-alpha05

7 Desember 2022

androidx.constraintlayout:constraintlayout:2.2.0-alpha05 dirilis. Versi 2.2.0-alpha05 berisi commit ini.

  • Untuk informasi selengkapnya tentang perubahan dalam rilis sebelumnya, lihat halaman wiki GitHub

Perbaikan Bug

  • Memperbaiki kebocoran di View Carousel (eb67b82)

Versi 2.2.0-alpha01

20 Mei 2022

androidx.constraintlayout:constraintlayout:2.2.0-alpha01 dirilis.

Menyertakan pratinjau helper Grid baru.

Untuk informasi selengkapnya, lihat Yang baru di 2.2.0-alpha01 di GitHub.

ConstraintLayout-compose 1.0

ConstraintLayout-compose 1.0 menyediakan fungsi ConstraintLayout di Jetpack Compose.

Versi 1.0.1

20 Mei 2022

androidx.constraintlayout:constraintlayout-compose:1.0.1 dirilis.

Perlu diperhatikan bahwa MotionLayout API bersifat eksperimental dan memerlukan keikutsertaan.

Untuk mengetahui informasi selengkapnya, lihat Yang baru di Compose 1.0.1 di GitHub.

Versi 1.0.0

13 Januari 2022

androidx.constraintlayout:constraintlayout-compose:1.0.0 dirilis.

Perlu diperhatikan bahwa MotionLayout API kini bersifat eksperimental dan memerlukan keikutsertaan.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 1.0 (Compose).

Versi 1.0.0-rc02

16 November 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-rc02 dirilis.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 1.0 (Compose).

Versi 1.0.0-rc01

27 September 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-rc01 dirilis.

Rilis ini merupakan versi beta kedua. Fitur ini dianggap sebagai fitur lengkap, yang menyediakan ConstraintLayout dan MotionLayout untuk Compose.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 1.0 (Compose).

Versi 1.0.0-beta02

30 Juli 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-beta02 dirilis.

Rilis ini merupakan versi beta kedua. Fitur ini dianggap sebagai fitur lengkap, yang menyediakan ConstraintLayout dan MotionLayout untuk Compose.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 1.0 (Compose).

Versi 1.0.0-beta01

22 Juli 2020

androidx.constraintlayout:constraintlayout-compose:1.0.0-beta01 dirilis.

Rilis ini merupakan versi beta pertama. Fitur ini dianggap sebagai fitur lengkap, yang menyediakan ConstraintLayout dan MotionLayout untuk Compose.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 1.0 (Compose).

Versi 1.0.0-alpha07

18 Mei 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha07 dirilis.

  • Diupdate agar kompatibel dengan Compose versi 1.0.0-beta07.

Versi 1.0.0-alpha06

4 Mei 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha06 dirilis.

  • Pengoptimalan Compose: Fungsi inline composable Constraintlayout (#193)
  • Meminimalkan pengukuran ulang di Compose (#210)

Versi 1.0.0-alpha05

15 Maret 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha05 dirilis.

  • menyertakan perbaikan untuk mesin pengoptimalan (b/182657720)
  • menambahkan parameter optimizationLevel ke komponen ConstraintLayout

Versi 1.0.0-alpha04

11 Maret 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha04 dirilis.

Perbarui untuk menggunakan mesin constraintlayout-core terbaru

Versi 1.0.0-alpha03

24 Februari 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha03 dirilis.

Update rilis untuk rilis Jetpack Compose beta01

Versi 1.0.0-alpha02

10 Februari 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha02 dirilis.

Update rilis untuk rilis Jetpack Compose alpha12

Versi 1.0.0-alpha01

2 Februari 2021

androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01 dirilis.

Rilis pertama library ini, yang menyediakan DSL inline dan eksternal untuk menyatakan batasan.

Versi 2.1

ConstraintLayout 2.1.0 menyediakan fitur yang lebih kaya di MotionLayout dan helper baru (Carousel, dsb.)

Versi 2.1.4

20 Mei 2022

androidx.constraintlayout:constraintlayout:2.1.4 dirilis.

Untuk informasi selengkapnya, lihat Yang baru di 2.1.4 di GitHub.

Versi 2.1.3

13 Januari 2022

androidx.constraintlayout:constraintlayout:2.1.3 dirilis.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 2.1.

Versi 2.1.2

16 November 2021

androidx.constraintlayout:constraintlayout:2.1.2 dirilis.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 2.1.

Versi 2.1.1

27 September 2021

androidx.constraintlayout:constraintlayout:2.1.1 dirilis.

Ini adalah rilis final untuk 2.1.1.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 2.1.

Versi 2.1.0

30 Juli 2021

androidx.constraintlayout:constraintlayout:2.1.0 dirilis.

Ini adalah rilis final untuk 2.1.0.

Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 2.1.

Versi 2.1.0-rc01

22 Juli 2020

androidx.constraintlayout:constraintlayout:2.1.0-rc01 dirilis.

Ini adalah kandidat rilis untuk 2.1.0 yang memberikan peningkatan dan perbaikan minor dari versi beta terakhir. Untuk informasi selengkapnya, lihat artikel GitHub Yang Baru di 2.1.

Versi 2.1.0-beta02

4 Mei 2021

androidx.constraintlayout:constraintlayout:2.1.0-beta02 dirilis.

Beberapa fitur baru di MotionLayout:

  • Perbaikan OnSwipe mencakup spring (kekakuan, redaman, massa, dsb.) & tidak pernah selesai
  • Fungsi jumpToState
  • Mode downUp ViewTransition yang saat menyentuh Bawah akan memutar ke 100 dan saat menyentuh Atas akan kembali ke 0

Berbagai perbaikan, terutama:

  • Memperbaiki masalah di MotionLayout terkait scroll vertikal (#173)
  • Peningkatan performa pada MotionLayout bertingkat (#189)
  • Transisi cepat dengan NestedScrollView di MotionLayout (#189)
  • ConstraintSet tidak ada lagi di MotionLayout (#189)
  • Mendukung downUp ViewTransitions di MotionLayout (#190)
  • Memperbaiki ImageFilter saat menggunakan kembali drawable (#192)
  • Menambahkan dukungan spring di MotionLayout (#199)
  • Peningkatan performa ke LingkaranFlow (#200)
  • Perbaikan pada kendala turunan/penggantian kendala (#212)

Versi 2.1.0-beta01

11 Maret 2021

androidx.constraintlayout:constraintlayout:2.1.0-beta01 dirilis.

ConstraintLayout

android:layout_width dan android:layout_height kembali menjadi non-opsional karena masalah kompatibilitas.

MotionLayout

  • Dukungan terprogram untuk memasukkan dan menghapus onSwipe dan onClick di Transitions
  • Dukungan Eksperimental untuk Transitions melalui rotasi layar
  • mendukung argumen durasi ke transisi
  • Dukungan yang lebih baik untuk customAttributes yang bersifat boolean atau Referensi

Helpers

  • menambahkan cara untuk menganimasikan atau melompat langsung ke item Carousel tertentu
  • helper CircularFlow baru

Lihat informasi tambahan tentang rilis ini di sini dan bug ditutup.

Versi 2.1.0-alpha2

17 Desember 2020

androidx.constraintlayout:constraintlayout:2.1.0-alpha2 dirilis.

Alfa kedua ini menambahkan beberapa fitur baru:

ConstraintLayout

  • android:layout_width dan android:layout_height kini bersifat opsional, dengan wrap_content sebagai perilaku default
  • new layout_constraintWidth dan layout_constraintHeight baru untuk mengekspresikan batasan dimensi
  • mendukung margin negatif untuk batasan
  • mendukung baseline ke atas dan baseline ke batasan bawah
  • mendukung batasan margin baseline
  • SharedValues memungkinkan nilai eksternal dimasukkan ke dalam ConstraintLayout

MotionLayout

  • Dukungan untuk interpolator overshoot (antisipasi, overshoot)
  • Dukungan MotionHelper yang disempurnakan
  • Menambahkan update animasi ConstraintSet ke MotionLayout updateStateAnimate(id,cset,duration);
  • ViewTransition berdasarkan nilai bersama
  • scheduleTransitonTo memungkinkan Anda memasukkan transisi ke antrean agar dapat berjalan pada penyelesaian transisi saat ini.

Helpers

  • Carousel kini mendukung mode tak terbatas (wrap-around)
  • ReactiveGuide : Panduan yang otomatis memosisikan dirinya saat SharedValue berubah
  • MotionEffect : memasukkan Keyframe ke tampilan referensi yang bergerak ke arah tertentu
  • MotionLabel - Tampilan untuk menganimasikan teks baris tunggal

Lihat informasi tambahan tentang rilis ini di sini.

Versi 2.1.0-alpha1

19 November 2020

androidx.constraintlayout:constraintlayout:2.1.0-alpha1 dirilis.

Alfa pertama dari rilis 2.1. Memperkenalkan dukungan untuk:

  • Helper gerakan carousel, untuk membuat tampilan carousel kustom
  • Adegan MotionLayout mendukung penggantian dan batasan
  • MotionLayout menambahkan dukungan yang lebih kaya untuk rotasi (input dan output)
  • MotionLayout menambahkan ViewTransitions yang memungkinkan transisi tampilan tunggal untuk mutasi kumpulan kendala

Lihat informasi tambahan tentang rilis ini di sini.

Versi 2.0

ConstraintLayout 2.0 menambahkan fitur baru untuk tata letak (tata letak virtual, dll.) dan class baru untuk menyederhanakan animasi tampilan, MotionLayout.

Versi 2.0.4

29 Oktober 2020

androidx.constraintlayout:constraintlayout:2.0.4 dirilis.

Perbaikan Bug

Rilis ini memperbaiki potensi NPE yang mungkin terjadi saat menghapus tampilan turunan di runtime. Sebaiknya update ke versi ini.

Lihat daftar masalah yang sudah ditutup di sini.

Versi 2.0.3

27 Oktober 2020

androidx.constraintlayout:constraintlayout:2.0.3 dirilis.

Perbaikan Bug

Rilis ini memperbaiki beberapa masalah. Sebaiknya update ke versi ini.

  • Penanganan inset Windows
  • Penanganan rasio dimensi dalam beberapa situasi
  • Error pada beberapa tata letak RTL

Lihat daftar masalah yang sudah ditutup di sini.

Versi 2.0.2

6 Oktober 2020

androidx.constraintlayout:constraintlayout:2.0.2 dirilis.

Perbaikan Bug

Rilis ini meningkatkan performa serta memperbaiki beberapa masalah. Sebaiknya update ke versi ini.

  • Penanganan tampilan visibilitas GONE di ConstraintLayout salah dalam beberapa situasi
  • Penanganan rantai paket di ConstraintLayout salah dalam beberapa situasi
  • Memperbaiki pengecualian inflate pada API 15 untuk helper tata letak virtual Flow
  • limitsBoundsTo rusak di MotionLayout
  • Fungsi lompat ke akhir rusak di MotionLayout dalam beberapa situasi (transisi rantai)

Lihat daftar masalah yang sudah ditutup di sini.

Versi 2.0.1

25 Agustus 2020

androidx.constraintlayout:constraintlayout:2.0.1 dirilis.

Ini adalah update minor yang memungkinkan penggunaan MotionEditor di Android Studio.

Versi 2.0.0

21 Agustus 2020

androidx.constraintlayout:constraintlayout:2.0.0 dirilis.

Perbaikan Bug

Lihat daftar masalah yang sudah ditutup di sini.

Perbaikan penting:

  • Penundaan MotionLayout Transition & perbaikan TransitionListener
  • Perbaikan alur & penghalang ConstraintLayout

Versi 2.0.0-rc1

29 Juli 2020

androidx.constraintlayout:constraintlayout:2.0.0-rc1 dirilis.

Perbaikan Bug

Lihat daftar masalah yang sudah ditutup di sini.

Perbaikan penting:

  • Perbaikan alur
  • Perbaikan RecyclerView (sebaiknya update ke recyclerview 1.2.0 alfa 5 atau yang lebih baru)
  • Perbaikan MotionLayout TransitionListener
  • Perbaikan kebocoran memori MotionLayout

Versi 2.0.0-beta8

7 Juli 2020

androidx.constraintlayout:constraintlayout:2.0.0-beta8 dirilis.

Perbaikan Bug

Lihat daftar masalah yang sudah ditutup di sini.

Perbaikan penting:

  • Perilaku placeholder
  • Visibilitas lapisan
  • Perbaikan Alur, Penghalang
  • Perbaikan TransitionListener

Versi 2.0.0-beta7

12 Juni 2020

androidx.constraintlayout:constraintlayout:2.0.0-beta7 dirilis.

Perbaikan Bug

Lihat daftar masalah yang sudah ditutup di sini.

Perbaikan penting:

  • Masalah tampilan scroll bertingkat di MotionLayout
  • Masalah pemroses transisi dengan MotionLayout
  • Kebocoran memori di MotionLayout
  • Masalah RecyclerView
  • Visibilitas grup
  • Masalah padding

Versi 2.0.0-beta6

13 Mei 2020

androidx.constraintlayout:constraintlayout:2.0.0-beta6 dirilis.

Perbaikan Bug

Lihat daftar masalah yang sudah ditutup di sini. Perbaikan pentingnya adalah penanganan visibilitas grup dan masalah batasan turunan di MotionLayout.

Versi 2.0.0-beta5

7 Mei 2020

androidx.constraintlayout:constraintlayout:2.0.0-beta5 dirilis.

Perbaikan Bug

Lihat daftar masalah yang sudah ditutup di sini

Versi 2.0.0-beta4

16 Desember 2019

androidx.constraintlayout:constraintlayout:2.0.0-beta4 dirilis.

Fitur Baru

MotionLayout

Atribut baru dalam Transisi:

  • layoutDuringTransition : memungkinkan Anda mengonfigurasi reaksi MotionLayout terhadap panggilan requestLayouts turunan selama transisi. Nilai yang memungkinkan adalah {ignoreRequest, honorRequest}
  • pathMotionArc : jalur yang diambil oleh elemen yang bergerak akan menggunakan bentuk lengkungan. Nilai yang memungkinkan adalah {startVertical | startHorizontal | flip | none }

Transisi default sekarang dapat ditentukan, cukup dengan menghapus ConstraintSets awal dan akhir. Transisi default tersebut akan digunakan jika tidak ditemukan transisi lain untuk menyesuaikan keadaan awal/akhir saat ini.

Perbaikan Bug

Lihat daftar masalah yang sudah ditutup di sini