Navigation 3 là một thư viện điều hướng mới được thiết kế để hoạt động với Compose. Với Navigation 3, bạn có toàn quyền kiểm soát ngăn xếp lui và việc điều hướng đến và từ các đích đến cũng đơn giản như việc thêm và xoá các mục khỏi danh sách. Thư viện này tạo ra một hệ thống điều hướng ứng dụng linh hoạt bằng cách cung cấp:
- Quy ước để lập mô hình ngăn xếp lui, trong đó mỗi mục trên ngăn xếp lui đại diện cho nội dung mà người dùng đã điều hướng đến
- Giao diện người dùng tự động cập nhật theo các thay đổi trong ngăn xếp lui (bao gồm cả ảnh động)
- Phạm vi cho các mục trong ngăn xếp lui, cho phép giữ lại trạng thái trong khi một mục nằm trong ngăn xếp lui
- Hệ thống bố cục thích ứng cho phép hiển thị nhiều đích đến cùng một lúc và cho phép chuyển đổi liền mạch giữa các bố cục đó
- Cơ chế để nội dung giao tiếp với bố cục mẹ (siêu dữ liệu)
Nhìn chung, bạn triển khai Navigation 3 theo các cách sau:
- Xác định nội dung mà người dùng có thể điều hướng đến trong ứng dụng của bạn, mỗi nội dung có một khoá duy nhất và thêm một hàm để phân giải khoá đó cho nội dung. Xem phần Giải quyết khoá cho nội dung.
- Tạo ngăn xếp lui mà các khoá được đẩy vào và xoá khi người dùng di chuyển trong ứng dụng. Hãy xem phần Tạo ngăn xếp lui.
- Sử dụng
NavDisplay
để hiển thị ngăn xếp lui của ứng dụng. Bất cứ khi nào ngăn xếp lui thay đổi, ngăn xếp này sẽ cập nhật giao diện người dùng để hiển thị nội dung có liên quan. Xem phần Hiển thị ngăn xếp lui. - Sửa đổi chiến lược cảnh của
NavDisplay
nếu cần để hỗ trợ bố cục thích ứng và nhiều nền tảng.
Bạn có thể xem mã nguồn đầy đủ cho Navigation 3 trên AOSP.
Các điểm cải tiến đối với Jetpack Navigation
Navigation 3 cải tiến API Điều hướng Jetpack ban đầu theo các cách sau:
- Cung cấp khả năng tích hợp đơn giản hơn với Compose
- Cho phép bạn toàn quyền kiểm soát ngăn xếp lui
- Cho phép tạo các bố cục có thể đọc nhiều đích đến từ ngăn xếp lui cùng một lúc, cho phép các bố cục đó thích ứng với các thay đổi về kích thước cửa sổ và các dữ liệu đầu vào khác.
Đọc thêm về các nguyên tắc của Navigation 3 và các lựa chọn thiết kế API trong bài đăng trên blog này.
Mã mẫu
Kho lưu trữ công thức chứa các ví dụ về cách sử dụng các khối xây dựng Navigation 3 để giải quyết các thách thức thường gặp về điều hướng.