Aplikasi di Wear OS menggunakan teknik tata letak yang sama dengan perangkat Android lainnya, tetapi perlu didesain dengan batasan khusus smartwatch.
Catatan: Jangan mem-port fungsi dan UI yang tepat dari aplikasi seluler ke Wear OS dan mengharapkan pengalaman pengguna yang baik.
Jika Anda mendesain aplikasi untuk perangkat genggam persegi panjang, konten di dekat sudut layar mungkin akan terpangkas pada smartwatch berbentuk lingkaran. Jika Anda menggunakan daftar vertikal yang dapat di-scroll, hal ini tidak menjadi masalah, karena pengguna dapat men-scroll untuk menempatkan konten di tengah. Namun, untuk layar tunggal, tindakan ini dapat memberikan pengalaman pengguna yang buruk.
Jika Anda menggunakan setelan berikut untuk tata letak, teks akan ditampilkan dengan tidak benar pada perangkat yang memiliki layar lingkaran:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text" android:layout_width="0dp" android:layout_height="0dp" android:text="@string/very_long_hello_world" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
Untuk mengatasi masalah ini, gunakan tata letak di Library UI Wear OS yang mendukung perangkat berbentuk lingkaran.
- Anda dapat menggunakan
BoxInsetLayoutagar tampilan tidak dipangkas di dekat tepi layar berbentuk lingkaran. - Anda dapat menggunakan
WearableRecyclerViewuntuk membuat tata letak melengkung jika ingin menampilkan dan mengubah daftar vertikal item yang dioptimalkan untuk layar berbentuk lingkaran.
Untuk mengetahui informasi selengkapnya tentang mendesain aplikasi, baca Panduan desain Wear OS.
Menggunakan BoxInsetLayout
Gambar 2. Inset jendela pada layar berbentuk lingkaran.
Class
BoxInsetLayout di Library UI Wear OS memungkinkan
Anda menentukan tata letak yang berfungsi untuk layar berbentuk lingkaran. Class ini memungkinkan Anda
menyelaraskan tampilan dengan mudah di bagian tengah atau di dekat tepi layar.
Kotak abu-abu pada gambar 2 menunjukkan area tempat BoxInsetLayout
dapat menempatkan tampilan turunannya secara otomatis di layar berbentuk lingkaran setelah menerapkan
inset jendela yang diperlukan. Untuk ditampilkan di dalam area ini, tampilan
turunan menentukan atribut layout_boxedEdges dengan nilai berikut:
- Kombinasi
top,bottom,left, danright. Misalnya, nilai"left|top"menempatkan tepi kiri dan atas turunan di dalam kotak abu-abu pada gambar 2. - Nilai
"all"menempatkan semua konten turunan dalam kotak abu-abu pada gambar 2. Ini adalah pendekatan yang paling umum denganConstraintLayoutdi dalamnya.
Tata letak yang ditampilkan pada gambar 2 menggunakan elemen <BoxInsetLayout>
dan berfungsi pada layar berbentuk lingkaran:
<androidx.wear.widget.BoxInsetLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:padding="15dp"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp" app:layout_boxedEdges="all"> <TextView android:layout_height="wrap_content" android:layout_width="match_parent" android:text="@string/sometext" android:textAlignment="center" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageButton android:background="@android:color/transparent" android:layout_height="50dp" android:layout_width="50dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" android:src="@drawable/cancel" /> <ImageButton android:background="@android:color/transparent" android:layout_height="50dp" android:layout_width="50dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" android:src="@drawable/ok" /> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.wear.widget.BoxInsetLayout>
Perhatikan bagian tata letak yang ditandai dengan cetak tebal:
-
android:padding="15dp"Baris ini menetapkan padding ke elemen
<BoxInsetLayout>. -
android:padding="5dp"Baris ini menetapkan padding ke elemen
ConstraintLayoutdalam. -
app:layout_boxedEdges="all"Baris ini memastikan bahwa elemen
ConstraintLayoutdan turunannya berada di dalam area yang ditentukan oleh inset jendela pada layar berbentuk lingkaran.
Menggunakan tata letak melengkung
Class
WearableRecyclerView di Library UI Wear OS
memungkinkan Anda mengaktifkan tata letak melengkung yang dioptimalkan untuk layar berbentuk lingkaran.
Guna mengaktifkan tata letak melengkung untuk daftar yang dapat di-scroll dalam aplikasi
Anda, lihat
Membuat daftar di Wear OS.