Mulai Android 10 (level API 29), sistem Android mendukung navigasi berbasis gestur sepenuhnya. Ada dua hal yang harus dilakukan developer aplikasi untuk memastikan aplikasi mereka kompatibel dengan fitur ini:
- Memperluas konten aplikasi dari tepi ke tepi.
- Menangani gestur aplikasi yang bertentangan.
Selain itu, Android 13 (level API 33) memperkenalkan gestur kembali prediktif untuk perangkat Android seperti ponsel, perangkat layar besar, dan perangkat foldable yang merupakan bagian dari rilis multi-tahun. Developer aplikasi dapat mengambil langkah-langkah untuk memastikan bahwa aplikasi mereka mendukung gestur kembali prediktif.
Menyediakan konten aplikasi layar penuh
Untuk memanfaatkan ruang layar tambahan yang disediakan oleh menu navigasi floating, Anda perlu mengonfigurasi perubahan tertentu di aplikasi.
Lihat Menampilkan konten layar penuh di aplikasi Anda untuk mengetahui detailnya.
Menangani gestur aplikasi yang bertentangan
Model navigasi gestur mungkin bertentangan dengan gestur yang sebelumnya digunakan oleh developer aplikasi. Oleh karena itu, Anda mungkin perlu melakukan penyesuaian pada antarmuka pengguna aplikasi.
Konflik dengan gestur kembali
Gestur sistem baru untuk kembali adalah geser ke dalam dari tepi kiri atau kanan layar. Hal ini dapat mengganggu elemen navigasi aplikasi di area tersebut. Untuk mempertahankan fungsi elemen di tepi kiri dan kanan layar, hentikan gestur kembali secara selektif dengan menunjukkan kepada sistem area mana yang perlu menerima input sentuhan. Anda dapat melakukannya dengan meneruskan
List<Rect>
ke API View.setSystemGestureExclusionRects()
yang diperkenalkan di Android 10. Metode ini juga tersedia di ViewCompat
pada androidx.core:core:1.1.0-dev01
.
Contoh:
Kotlin
var exclusionRects = listOf(rect1, rect2, rect3) fun onLayout( changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) } fun onDraw(canvas: Canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) }
Java
List<Rect> exclusionRects; public void onLayout( boolean changedCanvas, int left, int top, int right, int bottom) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); } public void onDraw(Canvas canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); }
Konflik dengan gestur layar utama atau beralih cepat
Gestur sistem baru untuk beranda dan beralih cepat melibatkan gestur geser di bagian bawah layar di area yang sebelumnya ditempati menu navigasi. Aplikasi tidak dapat keluar dari gestur ini seperti yang dapat dilakukan dengan gestur kembali.
Untuk mengurangi masalah ini, Android 10 memperkenalkan API
WindowInsets.getMandatorySystemGestureInsets()
, yang menginformasikan ambang pengenalan sentuhan kepada aplikasi.
Game dan aplikasi non-Tampilan lainnya
Game dan aplikasi lain yang tidak memiliki hierarki tampilan sering mengharuskan pengguna untuk menggeser di dekat area gestur sistem. Dalam kasus tersebut, game dapat menggunakan
Window.setSystemGestureExclusionRects()
untuk mengecualikan area yang tumpang tindih dengan area yang disediakan untuk gestur sistem. Game harus memastikan untuk mengecualikan area ini saja jika diperlukan, misalnya selama game dijalankan.
Jika game mengharuskan pengguna untuk menggeser di dekat area gestur beranda, aplikasi dapat meminta untuk ditempatkan dalam mode imersif. Hal ini akan menonaktifkan gestur sistem selagi pengguna berinteraksi dengan game, tetapi memungkinkan pengguna untuk mengaktifkan kembali gestur sistem dengan menggeser dari bagian bawah layar.
Mengupdate aplikasi untuk mendukung gestur kembali prediktif
Android 13 (API level 33) memperkenalkan gestur kembali prediktif untuk perangkat Android seperti ponsel, perangkat layar besar, dan perangkat foldable. Gestur kembali prediktif adalah bagian dari rilis multi-tahun. Setelah sepenuhnya diterapkan, fitur ini memungkinkan pengguna melihat pratinjau tujuan atau hasil gestur kembali lainnya sebelum menyelesaikan sepenuhnya, sehingga pengguna dapat memutuskan apakah akan melanjutkan atau tetap menggunakan tampilan saat ini.
Lihat Menambahkan dukungan untuk gestur kembali prediktif untuk mengetahui detailnya.
Referensi lainnya
Untuk mempelajari navigasi gestur lebih lanjut, lihat artikel berikut: