Kể từ Android 10 (API cấp 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ó 2 điều 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ỉ ứng dụng xung đột.
Ngoài ra, 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 trong một bản phát hành kéo dài 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 rằng ứng dụng của họ hỗ trợ tính năng 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 nhất định trong ứng dụng.
Xem bài viết 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ác cử chỉ ứng dụng xung đột
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 từng sử dụng. 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ỉ mới của hệ thống để quay lại là vuốt vào 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 phần tử điều hướng của ứng dụng ở những khu vực đó. Để duy trì chức năng của các thành phần ở cạnh trái và 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 những khu vực cần nhận dữ liệu đầu vào cảm ứng. Bạn có thể thực hiện việc này bằng cách truyền 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 chuyển đổi nhanh
Cả cử chỉ mới của hệ thống cho màn hình chính và tính năng chuyển đổi nhanh đều liên quan đến thao tác vuốt ở cuối màn hình trong không gian trước đây do thanh điều hướng chiếm giữ. Các ứng dụng không thể chọn không sử dụng những cử chỉ này vì có thể dùng 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ề các ngưỡng nhận dạng cảm ứng.
Trò chơi và các ứng dụng không phải View khác
Các trò chơi và ứng dụng khác không có hệ phân cấp khung hiển thị thường yêu cầu người dùng vuốt gần các khu vực cử chỉ của hệ thống. Trong những trường hợp đó, trò chơi có thể sử dụng Window.setSystemGestureExclusionRects()
để loại trừ những khu vực chồng chéo với những 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ừ những khu vực này khi cần thiết, chẳng hạn như trong khi chơi.
Nếu một trò chơi yêu cầu người dùng vuốt gần khu vực cử chỉ trên màn hình chính, thì ứng dụng có thể yêu cầu bố trí ở chế độ chìm đắm. Thao tác này sẽ tắt các 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ác 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ợ tính năng 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 được triển khai đầy đủ, tính năng này cho phép người dùng xem trước đích đến hoặc kết quả khác của một cử chỉ quay lại trước khi hoàn tất cử chỉ đó, từ đó quyết định sẽ tiếp tục hay ở lại khung hiển thị hiện tại.
Hãy xem phần Thêm tính năng hỗ trợ cho tính năng 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 những nội dung sau: