Đảm bảo khả năng tương thích với thao tác bằng cử chỉ

Kể từ Android 10 (cấp độ API 29), hệ thống Android hỗ trợ hoàn toàn tính năng điều hướng dựa trên cử chỉ. Có hai việc mà nhà phát triển ứng dụng phải làm để đảm bảo ứng dụng của họ tương thích với tính năng này:

  • Mở rộng nội dung ứng dụng từ cạnh này sang cạnh kia.
  • Xử lý các cử chỉ xung đột của ứng dụng.

Ngoài ra, Android 13 (cấp độ API 33) còn ra mắt tính năng xem trước thao tác quay lại cho các thiết bị Android như điện thoại, thiết bị màn hình lớn và thiết bị có thể gập lại. Tính năng này nằm trong một bản phát hành nhiều năm. Nhà phát triển ứng dụng có thể thực hiện các bước để đảm bảo ứng dụng của họ hỗ trợ cử chỉ xem trước thao tác quay lại.

Cung cấp nội dung ứng dụng tràn viền

Để tận dụng không gian màn hình bổ sung do thanh điều hướng nổi cung cấp, bạn cần định cấu hình một số thay đổi trong ứng dụng.

Xem phần Hiển thị nội dung tràn viền trong ứng dụng của bạn để biết thông tin chi tiết.

Xử lý cử chỉ xung đột của ứng dụng

Mô hình điều hướng bằng cử chỉ có thể xung đột với các cử chỉ mà nhà phát triển ứng dụng đã sử dụng trước đó. Do đó, bạn có thể cần điều chỉnh giao diện người dùng của ứng dụng.

Xung đột với cử chỉ quay lại

Cử chỉ hệ thống mới để quay lại là vuốt vào trong từ cạnh trái hoặc cạnh phải của màn hình. Điều này có thể ảnh hưởng đến các thành phần điều hướng của ứng dụng trong những khu vực đó. Để duy trì chức năng của các phần tử ở cạnh trái và cạnh phải của màn hình, hãy chọn không sử dụng cử chỉ quay lại bằng cách cho hệ thống biết vùng nào cần nhận nhập bằng cách chạm. Bạn có thể thực hiện việc này bằng cách truyền một List<Rect> đến API View.setSystemGestureExclusionRects() được giới thiệu trong Android 10. Phương thức này cũng có trong ViewCompat kể từ androidx.core:core:1.1.0-dev01.

Ví dụ:

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);
}

Xung đột với cử chỉ về màn hình chính hoặc cử chỉ chuyển đổi nhanh

Cử chỉ hệ thống mới cho màn hình chính và chuyển đổi nhanh đều liên quan đến thao tác vuốt ở cuối màn hình trong không gian mà thanh điều hướng từng chiếm giữ. Ứng dụng không thể chọn không sử dụng các cử chỉ này như khi thực hiện với cử chỉ quay lại.

Để giảm thiểu vấn đề này, Android 10 ra mắt API WindowInsets.getMandatorySystemGestureInsets() để thông báo cho ứng dụng về ngưỡng nhận dạng thao tác chạm.

Trò chơi và các ứng dụng không phải Chế độ xem khác

Trò chơi và các ứng dụng khác không có hệ phân cấp view thường yêu cầu người dùng vuốt gần các vùng cử chỉ hệ thống. Trong những trường hợp đó, trò chơi có thể sử dụng Window.setSystemGestureExclusionRects() để loại trừ các khu vực trùng lặp với khu vực dành riêng cho cử chỉ hệ thống. Trò chơi phải đảm bảo chỉ loại trừ các khu vực này khi cần thiết, chẳng hạn như trong khi chơi trò chơi.

Nếu trò chơi yêu cầu người dùng vuốt gần khu vực cử chỉ màn hình chính, thì ứng dụng có thể yêu cầu được bố trí ở chế độ hiển thị tối đa. Thao tác này sẽ tắt cử chỉ hệ thống trong khi người dùng tương tác với trò chơi, nhưng cho phép người dùng bật lại cử chỉ hệ thống bằng cách vuốt từ cuối màn hình.

Cập nhật ứng dụng để hỗ trợ cử chỉ xem trước thao tác quay lại

Android 13 (API cấp 33) ra mắt tính năng xem trước thao tác quay lại cho các thiết bị Android như điện thoại, thiết bị màn hình lớn và thiết bị có thể gập lại. Cử chỉ xem trước thao tác quay lại là một phần của bản phát hành nhiều năm. Khi tính năng này được triển khai đầy đủ, người dùng có thể xem trước đích đến hoặc kết quả khác của một cử chỉ quay lại trước khi quay lại, từ đó quyết định sẽ tiếp tục hay ở lại khung hiển thị hiện tại.

Hãy xem bài viết Thêm tính năng hỗ trợ cho cử chỉ xem trước thao tác quay lại để biết thông tin chi tiết.

Tài nguyên khác

Để tìm hiểu thêm về tính năng điều hướng bằng cử chỉ, hãy xem các nội dung sau:

Bài đăng trên blog

Video