Memastikan kompatibilitas dengan navigasi gestur

Mulai dari Android 10 (API level 29), sistem Android sepenuhnya mendukung navigasi berbasis {i>gesture <i}(gestur). 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 (API level 33) memperkenalkan gestur kembali prediktif untuk Android perangkat seperti ponsel, perangkat layar besar, dan perangkat foldable yang merupakan bagian dari uji coba data. Developer aplikasi dapat mengambil langkah untuk memastikan bahwa aplikasi mereka mendukung gestur kembali prediktif.

Menyediakan konten aplikasi tata letak layar penuh

Untuk memanfaatkan ruang layar tambahan yang disediakan oleh objek di bilah navigasi, 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. Anda mungkin perlu melakukan penyesuaian terhadap pengguna aplikasi antarmuka pengguna.

Konflik dengan gestur kembali

{i>Gesture <i}sistem yang baru untuk kembali adalah geser ke dalam dari kiri atau tepi kanan layar. Hal ini dapat mengganggu elemen navigasi aplikasi di area tersebut. Untuk mempertahankan fungsionalitas elemen di tepi kiri dan kanan layar, pilih keluar dari gestur kembali secara selektif dengan menunjukkan sistem mana yang perlu menerima input sentuh. Anda dapat melakukannya dengan meneruskan List<Rect> ke View.setSystemGestureExclusionRects() API yang diperkenalkan di Android 10. Metode ini juga tersedia di ViewCompat mulai 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 utama atau peralihan cepat

Gestur sistem yang baru untuk layar utama dan beralih cepat, keduanya melibatkan gestur geser pada bagian bawah layar dalam ruang yang sebelumnya ditempati oleh {i>navigation bar<i}. Aplikasi tidak dapat menggunakan {i>gesture <i}ini karena mereka juga tidak bisa menggunakan {i>gesture <i}kembali.

Untuk mengurangi masalah ini, Android 10 memperkenalkan WindowInsets.getMandatorySystemGestureInsets() API, yang menginformasikan aplikasi tentang nilai minimum pengenalan sentuhan.

Game dan aplikasi non-Tampilan lainnya

Game dan aplikasi lain yang tidak memiliki hierarki tampilan sering kali mengharuskan pengguna untuk geser di dekat area gestur sistem. Dalam kasus tersebut, {i>game<i} dapat menggunakan Window.setSystemGestureExclusionRects() untuk mengecualikan area yang tumpang tindih dengan area yang disediakan untuk gestur sistem. Game harus memastikan untuk hanya mengecualikan area ini bila diperlukan, seperti selama dalam gameplay.

Jika game mengharuskan pengguna untuk menggeser di dekat area gestur beranda, aplikasi dapat permintaan untuk diatur dalam mode imersif. Ini menonaktifkan gestur sistem saat pengguna berinteraksi dengan game, tetapi memungkinkan pengguna mengaktifkan kembali {i>gesture <i}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. Kembali prediktif {i>gesture <i}adalah bagian dari rilis multitahun. Ketika sepenuhnya diterapkan, fitur ini memungkinkan pengguna melihat pratinjau tujuan atau hasil lainnya dari gestur kembali sebelum mereka menyelesaikannya sepenuhnya, memungkinkan mereka untuk memutuskan apakah akan melanjutkan atau tetap tampilan saat ini.

Lihat Menambahkan dukungan untuk gestur kembali prediktif untuk mengetahui detailnya.

Referensi lainnya

Untuk mempelajari navigasi gestur lebih lanjut, lihat hal berikut:

Postingan blog

Video