SlideShare a Scribd company logo
1 of 30
Download to read offline
ConstraintLayout: Handle
with Care
Presented by: Danviero Yuzwan
Pendahuluan
ConstraintLayout merupakan sebuah komponen layout ViewGroup
yang memungkinkan Anda untuk mengatur posisi dan ukuran widget
dengan cara yang fleksibel. ConstraintLayout memungkinkan Anda
membuat tata letak yang kompleks dan besar dengan hierarki tampilan
datar (tidak ada grup tampilan tersarang). ConstraintLayout mirip
dengan RelativeLayout yang semua tampilannya diletakkan sesuai
dengan hubungan antara tampilan yang setara dan tata letak induk,
tetapi lebih fleksibel dari RelativeLayout dan lebih mudah digunakan
dengan Layout Editor Android Studio.
https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout
Menambahkan ConstraintLayout ke project
1. Pastikan Anda memiliki repositori
maven.google.com yang dinyatakan pada file
build.gradle di tingkat modul:
2. Tambahkan library sebagai dependensi di file
build.gradle yang sama, seperti yang
ditunjukkan di contoh berikut. Perlu diperhatikan
bahwa versi terbaru mungkin berbeda dengan
yang ditunjukkan di contoh:
Cara menambahkan ConstraintLayout di project Anda, silakan ikuti langkah-langkah berikut:
3. Pada notifikasi sinkronisasi atau toolbar, klik Sync Project with
Gradle Files.
Constraint
Apa yang dimaksud dengan constraints?
Fundamental dari membangun ConstraintLayout
adalah menciptakan constraint. Constraint
mendefinisikan hubungan antara dua widget di
dalam layout dan mengontrol bagaimana widget
tersebut akan ditempatkan di dalam layout.
Bagi yang baru mengenal ConstraintLayout,
tetapi cukup akrab/familiar dengan
RelativeLayout, prinsip dasar tentang
bagaimana constraint berfungsi sebenarnya
sangat mirip dengan bagaimana kita membuat
hubungan antar widget pada RelativeLayout.
Menambahkan
Constraint
Cara termudah untuk mempelajari
bagaimana membuat Constraint
adalah menggunakan visual editor
pada Android Studio. Beberapa
gambar contoh pada bagian ini akan
menunjukkan bagaimana cara untuk
menambahkannya, yang ditampilkan
dalam bentuk tampilan blueprint.
Caranya Klik constraint handle
(lingkaran) kemudian tarik ke titik link
yang tersedia. Titik ini dapat menjadi
tepi tampilan lain, tepi layout, atau
guideline misalnya. Anda akan melihat
bahwa saat menarik constraint handle,
Layout Editor akan menampilkan
anchor sambungan potensial dan
overlay berwarna biru.
Menghapus
Constraint
Anda dapat menghapus batasan
dengan melakukan salah satu langkah
berikut:
1. Klik constraint yang dipilih, lalu
tekan tombol Delete.
2. Tekan dan tahan Control
(Command di macOS), lalu klik
anchor pembatas. Constraint akan
menjadi berwarna merah Anda
dapat mengklik untuk
menghapusnya.
3. Pada bagian Layout jendela
Attributes, klik anchor point.
4. Pada file XML, dengan cara
menghapus atribut constraint
itu sendiri.
Aturan membuat Constraint
Saat membuat constraint, ingat aturan berikut:
● Setiap tampilan harus memiliki setidaknya dua constraint: satu horizontal dan satu vertikal.
Contoh attribute:
Vertical constraint -> app:layout_constraintTop_toTopOf="parent"
Horizontal constraint -> app:layout_constraintStart_toStartOf="parent"
● Anda hanya dapat membuat constraint di antara constraint handle dan titik link yang memiliki
bidang sama. Jadi, bidang vertikal (sisi kiri dan kanan) tampilan hanya dapat dibatasi ke bidang
vertikal lain; dan baseline hanya dapat dibatasi ke baseline lain.
● Setiap constraint handle hanya dapat digunakan untuk satu constraint saja, tetapi Anda dapat
membuat beberapa batasan (dari tampilan yang berbeda) ke titik link yang sama.
Membuat UI Responsif dengan ConstraintLayout
Bagaimana hasilnya?
Apakah kalian menemukan
sesuatu?
Teks “200K IDR” menumpuk dengan
button “Pilih”. Lalu apakah terdapat
kekurangan dalam menentukan
constraint pada widget TextView
tersebut?
Menambahkan constraint pada teks harga
Ada perubahan data
Bagaimana hasil perubahannya?
Handle with
Care
Why we should care about
constraint?
How to fix it?
Chains
Membuat sebuah chainsApa itu chains?
Chains adalah jenis constraint tertentu yang
memungkinkan untuk berbagi ruang antar view
(multiple view) dalam chains dan mengontrol
bagaimana ruang yang tersedia dibagi di antara
view. Analogi terdekat dengan layout tradisional
Android adalah bobot (weight) di
LinearLayout, tetapi chains lebih dari itu.
Tampilan dalam rantai dapat didistribusikan
secara vertikal atau horizontal.
Menambahkan horizontal chains pada title dan button
Perubahan file XML layout setelah menambahkan chains
Menambahkan weight (bobot) pada chains
Chains
Menambahkan constraint baru pada teks description
Jenis style pada chains
1. Spread: Views didistribusikan secara
merata (setelah margin diperhitungkan)
merupakan default.
2. Spread inside: View pertama dan kedua
dilekatkan pada constraint di setiap ujung
chains dan sisanya didistribusikan secara
merata.
3. Weighted: "match constraints" (0dp).
layout_constraintHorizontal_weight
layout_constraintVertical_weight. Jika
Anda sudah terbiasa dengan
layout_weight di LinearLayout, ini
memiliki cara kerja yang sama.
4. Packed: Views dikemas bersama. Posisi
view yang dikemas dapat lebih dikontrol
dengan mengubah nilai bias
Menerapkan vertical chains pada teks harga dan button
Menerapkan style “packed” pada chains
Terima kasih!
Contact me:
Danviero Yuzwan
yuzwan19@gmail.com
@yuzwan19
Medium:
https://medium.com/@yuzwan19/chapter-
1-clean-code-dd75e8c30b1c
What’s Next?
Try Codelabs
Use ConstraintLayout to
design your Android views
https://codelabs.developers.google.com/c
odelabs/constraint-layout/index.html#0
Building interfaces
with
ConstraintLayout in
Android Studio
From Android Developers
youtube channel
Lihat referensi
layout UI yang lagi
populer
Contohnya dari :
https://dribbble.com/shots/popular/
Referensi
● https://developer.android.com/training/constraint-layout
● https://constraintlayout.com/
● https://codelabs.developers.google.com/codelabs/constraint-layout/index.html#0
● https://www.dicoding.com/blog/kenal-lebih-dekat-dengan-constraintlayout/

More Related Content

Similar to ConstraintLayout: Handle with Care - Danviero Yuzwan (Mobile Developer Loket)

Presentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGPresentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGBayu Rimba
 
AutoCAD LD, Surveying Module - Day#1
AutoCAD LD, Surveying Module - Day#1AutoCAD LD, Surveying Module - Day#1
AutoCAD LD, Surveying Module - Day#1Tutus Kusuma
 
Teknik Dasar Adobe Photoshop
Teknik Dasar Adobe PhotoshopTeknik Dasar Adobe Photoshop
Teknik Dasar Adobe PhotoshopRaissa Sugiarto
 
Bootstrap Component.pptx
Bootstrap Component.pptxBootstrap Component.pptx
Bootstrap Component.pptxiyanddc1
 
Pocket book window builder eclipse
Pocket book window builder eclipsePocket book window builder eclipse
Pocket book window builder eclipseresarahadian
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingIndividual Consultants
 
2022 - Pertemuan - Layout.pptx
2022 - Pertemuan - Layout.pptx2022 - Pertemuan - Layout.pptx
2022 - Pertemuan - Layout.pptxJimmy Sitorus
 
Xcelsius engage Presentation by dashboardcafe.com
Xcelsius engage Presentation by dashboardcafe.comXcelsius engage Presentation by dashboardcafe.com
Xcelsius engage Presentation by dashboardcafe.comSigit Yunanto
 
Laporan pratikum II web
Laporan pratikum II webLaporan pratikum II web
Laporan pratikum II webrahmi wahyuni
 
Sgs macromedia-dreamweaver-8
Sgs macromedia-dreamweaver-8Sgs macromedia-dreamweaver-8
Sgs macromedia-dreamweaver-8Sejahtera Affif
 

Similar to ConstraintLayout: Handle with Care - Danviero Yuzwan (Mobile Developer Loket) (20)

Mari belajar vue js
Mari belajar vue jsMari belajar vue js
Mari belajar vue js
 
Sap2000
Sap2000Sap2000
Sap2000
 
Pengenalan sap 2000
Pengenalan sap 2000Pengenalan sap 2000
Pengenalan sap 2000
 
pemweb itts materi 5.pdf
pemweb itts materi 5.pdfpemweb itts materi 5.pdf
pemweb itts materi 5.pdf
 
Presentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGPresentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWING
 
Modul mvc part 1
Modul mvc part 1Modul mvc part 1
Modul mvc part 1
 
Tugas 6 rekweb
Tugas 6 rekwebTugas 6 rekweb
Tugas 6 rekweb
 
Web templating
Web templatingWeb templating
Web templating
 
Web templating
Web templatingWeb templating
Web templating
 
AutoCAD LD, Surveying Module - Day#1
AutoCAD LD, Surveying Module - Day#1AutoCAD LD, Surveying Module - Day#1
AutoCAD LD, Surveying Module - Day#1
 
Teknik Dasar Adobe Photoshop
Teknik Dasar Adobe PhotoshopTeknik Dasar Adobe Photoshop
Teknik Dasar Adobe Photoshop
 
Bootstrap Component.pptx
Bootstrap Component.pptxBootstrap Component.pptx
Bootstrap Component.pptx
 
Pocket book window builder eclipse
Pocket book window builder eclipsePocket book window builder eclipse
Pocket book window builder eclipse
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
 
Totorial weap
Totorial weapTotorial weap
Totorial weap
 
Tugas 6 – rekayasa web
Tugas 6 – rekayasa webTugas 6 – rekayasa web
Tugas 6 – rekayasa web
 
2022 - Pertemuan - Layout.pptx
2022 - Pertemuan - Layout.pptx2022 - Pertemuan - Layout.pptx
2022 - Pertemuan - Layout.pptx
 
Xcelsius engage Presentation by dashboardcafe.com
Xcelsius engage Presentation by dashboardcafe.comXcelsius engage Presentation by dashboardcafe.com
Xcelsius engage Presentation by dashboardcafe.com
 
Laporan pratikum II web
Laporan pratikum II webLaporan pratikum II web
Laporan pratikum II web
 
Sgs macromedia-dreamweaver-8
Sgs macromedia-dreamweaver-8Sgs macromedia-dreamweaver-8
Sgs macromedia-dreamweaver-8
 

More from DicodingEvent

Developer Coaching #114.pdf
Developer Coaching #114.pdfDeveloper Coaching #114.pdf
Developer Coaching #114.pdfDicodingEvent
 
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...DicodingEvent
 
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21DicodingEvent
 
Mengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatMengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatDicodingEvent
 
Membangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSMembangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSDicodingEvent
 
IDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingIDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingDicodingEvent
 
Membuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornMembuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornDicodingEvent
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsDicodingEvent
 
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDDicodingEvent
 
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanMembuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanDicodingEvent
 
Potensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanPotensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanDicodingEvent
 
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101DicodingEvent
 
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021DicodingEvent
 
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiTeknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiDicodingEvent
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...DicodingEvent
 
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...DicodingEvent
 
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusPengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusDicodingEvent
 
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...DicodingEvent
 
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...DicodingEvent
 
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...DicodingEvent
 

More from DicodingEvent (20)

Developer Coaching #114.pdf
Developer Coaching #114.pdfDeveloper Coaching #114.pdf
Developer Coaching #114.pdf
 
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
 
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21
 
Mengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatMengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchat
 
Membangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSMembangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWS
 
IDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingIDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational Thinking
 
Membuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornMembuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup Unicorn
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
 
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
 
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanMembuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
 
Potensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanPotensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depan
 
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101
 
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021
 
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiTeknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
 
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
 
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusPengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
 
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
 
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
 
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
 

Recently uploaded

Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...
Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...
Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...MaulanaKenta
 
"PPT K1_pengantar komunikasi pendidikan"
"PPT K1_pengantar komunikasi pendidikan""PPT K1_pengantar komunikasi pendidikan"
"PPT K1_pengantar komunikasi pendidikan"bayuputra151203
 
Power Point seminar proposal skripsi Dita
Power Point seminar proposal skripsi DitaPower Point seminar proposal skripsi Dita
Power Point seminar proposal skripsi DitaDestyRamadhani5
 
BAB I Probabilitas konsep peluang kejadian.ppt
BAB I Probabilitas konsep peluang kejadian.pptBAB I Probabilitas konsep peluang kejadian.ppt
BAB I Probabilitas konsep peluang kejadian.pptAnggunKhairunnisa2
 
Ppt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipan
Ppt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipanPpt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipan
Ppt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipanMaulanaKenta
 
tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...
tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...
tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...dwilarasayuningtias
 
GAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssss
GAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssssGAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssss
GAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssssUZAIRBINIBRAHIMMoe
 
Pemahaman Dasar Ekonometrika pendahuluan.ppt
Pemahaman Dasar Ekonometrika pendahuluan.pptPemahaman Dasar Ekonometrika pendahuluan.ppt
Pemahaman Dasar Ekonometrika pendahuluan.pptAldantiRahmaDina
 

Recently uploaded (8)

Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...
Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...
Makalah kelompok 8 administrasi.pdf. pengelolaan administrasi persuratan dan ...
 
"PPT K1_pengantar komunikasi pendidikan"
"PPT K1_pengantar komunikasi pendidikan""PPT K1_pengantar komunikasi pendidikan"
"PPT K1_pengantar komunikasi pendidikan"
 
Power Point seminar proposal skripsi Dita
Power Point seminar proposal skripsi DitaPower Point seminar proposal skripsi Dita
Power Point seminar proposal skripsi Dita
 
BAB I Probabilitas konsep peluang kejadian.ppt
BAB I Probabilitas konsep peluang kejadian.pptBAB I Probabilitas konsep peluang kejadian.ppt
BAB I Probabilitas konsep peluang kejadian.ppt
 
Ppt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipan
Ppt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipanPpt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipan
Ppt kel.8 administrasi pengelolaan administrasi persuratan dan pengarsipan
 
tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...
tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...
tahapan pengembangan guru profesional, alur dan kebijakan pengembangan profes...
 
GAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssss
GAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssssGAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssss
GAYA HIDUP SIHAT ssssssssssssssssssssssssssssssssssssssss
 
Pemahaman Dasar Ekonometrika pendahuluan.ppt
Pemahaman Dasar Ekonometrika pendahuluan.pptPemahaman Dasar Ekonometrika pendahuluan.ppt
Pemahaman Dasar Ekonometrika pendahuluan.ppt
 

ConstraintLayout: Handle with Care - Danviero Yuzwan (Mobile Developer Loket)

  • 2. Pendahuluan ConstraintLayout merupakan sebuah komponen layout ViewGroup yang memungkinkan Anda untuk mengatur posisi dan ukuran widget dengan cara yang fleksibel. ConstraintLayout memungkinkan Anda membuat tata letak yang kompleks dan besar dengan hierarki tampilan datar (tidak ada grup tampilan tersarang). ConstraintLayout mirip dengan RelativeLayout yang semua tampilannya diletakkan sesuai dengan hubungan antara tampilan yang setara dan tata letak induk, tetapi lebih fleksibel dari RelativeLayout dan lebih mudah digunakan dengan Layout Editor Android Studio. https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout
  • 3. Menambahkan ConstraintLayout ke project 1. Pastikan Anda memiliki repositori maven.google.com yang dinyatakan pada file build.gradle di tingkat modul: 2. Tambahkan library sebagai dependensi di file build.gradle yang sama, seperti yang ditunjukkan di contoh berikut. Perlu diperhatikan bahwa versi terbaru mungkin berbeda dengan yang ditunjukkan di contoh: Cara menambahkan ConstraintLayout di project Anda, silakan ikuti langkah-langkah berikut: 3. Pada notifikasi sinkronisasi atau toolbar, klik Sync Project with Gradle Files.
  • 4. Constraint Apa yang dimaksud dengan constraints? Fundamental dari membangun ConstraintLayout adalah menciptakan constraint. Constraint mendefinisikan hubungan antara dua widget di dalam layout dan mengontrol bagaimana widget tersebut akan ditempatkan di dalam layout. Bagi yang baru mengenal ConstraintLayout, tetapi cukup akrab/familiar dengan RelativeLayout, prinsip dasar tentang bagaimana constraint berfungsi sebenarnya sangat mirip dengan bagaimana kita membuat hubungan antar widget pada RelativeLayout.
  • 5. Menambahkan Constraint Cara termudah untuk mempelajari bagaimana membuat Constraint adalah menggunakan visual editor pada Android Studio. Beberapa gambar contoh pada bagian ini akan menunjukkan bagaimana cara untuk menambahkannya, yang ditampilkan dalam bentuk tampilan blueprint. Caranya Klik constraint handle (lingkaran) kemudian tarik ke titik link yang tersedia. Titik ini dapat menjadi tepi tampilan lain, tepi layout, atau guideline misalnya. Anda akan melihat bahwa saat menarik constraint handle, Layout Editor akan menampilkan anchor sambungan potensial dan overlay berwarna biru.
  • 6. Menghapus Constraint Anda dapat menghapus batasan dengan melakukan salah satu langkah berikut: 1. Klik constraint yang dipilih, lalu tekan tombol Delete. 2. Tekan dan tahan Control (Command di macOS), lalu klik anchor pembatas. Constraint akan menjadi berwarna merah Anda dapat mengklik untuk menghapusnya. 3. Pada bagian Layout jendela Attributes, klik anchor point. 4. Pada file XML, dengan cara menghapus atribut constraint itu sendiri.
  • 7. Aturan membuat Constraint Saat membuat constraint, ingat aturan berikut: ● Setiap tampilan harus memiliki setidaknya dua constraint: satu horizontal dan satu vertikal. Contoh attribute: Vertical constraint -> app:layout_constraintTop_toTopOf="parent" Horizontal constraint -> app:layout_constraintStart_toStartOf="parent" ● Anda hanya dapat membuat constraint di antara constraint handle dan titik link yang memiliki bidang sama. Jadi, bidang vertikal (sisi kiri dan kanan) tampilan hanya dapat dibatasi ke bidang vertikal lain; dan baseline hanya dapat dibatasi ke baseline lain. ● Setiap constraint handle hanya dapat digunakan untuk satu constraint saja, tetapi Anda dapat membuat beberapa batasan (dari tampilan yang berbeda) ke titik link yang sama.
  • 8.
  • 9. Membuat UI Responsif dengan ConstraintLayout
  • 10. Bagaimana hasilnya? Apakah kalian menemukan sesuatu? Teks “200K IDR” menumpuk dengan button “Pilih”. Lalu apakah terdapat kekurangan dalam menentukan constraint pada widget TextView tersebut?
  • 12.
  • 15. Handle with Care Why we should care about constraint?
  • 16. How to fix it?
  • 17. Chains Membuat sebuah chainsApa itu chains? Chains adalah jenis constraint tertentu yang memungkinkan untuk berbagi ruang antar view (multiple view) dalam chains dan mengontrol bagaimana ruang yang tersedia dibagi di antara view. Analogi terdekat dengan layout tradisional Android adalah bobot (weight) di LinearLayout, tetapi chains lebih dari itu. Tampilan dalam rantai dapat didistribusikan secara vertikal atau horizontal.
  • 18. Menambahkan horizontal chains pada title dan button
  • 19. Perubahan file XML layout setelah menambahkan chains
  • 20. Menambahkan weight (bobot) pada chains Chains
  • 21. Menambahkan constraint baru pada teks description
  • 22. Jenis style pada chains 1. Spread: Views didistribusikan secara merata (setelah margin diperhitungkan) merupakan default. 2. Spread inside: View pertama dan kedua dilekatkan pada constraint di setiap ujung chains dan sisanya didistribusikan secara merata. 3. Weighted: "match constraints" (0dp). layout_constraintHorizontal_weight layout_constraintVertical_weight. Jika Anda sudah terbiasa dengan layout_weight di LinearLayout, ini memiliki cara kerja yang sama. 4. Packed: Views dikemas bersama. Posisi view yang dikemas dapat lebih dikontrol dengan mengubah nilai bias
  • 23. Menerapkan vertical chains pada teks harga dan button
  • 25.
  • 26. Terima kasih! Contact me: Danviero Yuzwan yuzwan19@gmail.com @yuzwan19 Medium: https://medium.com/@yuzwan19/chapter- 1-clean-code-dd75e8c30b1c
  • 27. What’s Next? Try Codelabs Use ConstraintLayout to design your Android views https://codelabs.developers.google.com/c odelabs/constraint-layout/index.html#0
  • 28. Building interfaces with ConstraintLayout in Android Studio From Android Developers youtube channel
  • 29. Lihat referensi layout UI yang lagi populer Contohnya dari : https://dribbble.com/shots/popular/
  • 30. Referensi ● https://developer.android.com/training/constraint-layout ● https://constraintlayout.com/ ● https://codelabs.developers.google.com/codelabs/constraint-layout/index.html#0 ● https://www.dicoding.com/blog/kenal-lebih-dekat-dengan-constraintlayout/