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à đi từ các đích đến cũng đơn giản như 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 linh hoạt cho ứng dụng bằng cách cung cấp:
- Quy ước mô hình hoá 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 đã chuyển đến
- Một giao diện người dùng tự động cập nhật khi có thay đổi về ngăn xếp lui (bao gồm cả ảnh động)
- Một 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
- Một 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 đó
- Một 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 những cách sau:
- Xác định nội dung mà người dùng có thể chuyển đế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á đó thành nội dung. Xem phần Giải quyết các khoá cho nội dung.
- Tạo một 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 của bạn. Hãy xem phần Tạo ngăn xếp lui.
- Sử dụng
NavDisplayđể hiển thị ngăn xếp quay lại của ứng dụng. Bất cứ khi nào ngăn xếp quay lại 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 quay lại. - Sửa đổi chiến lược cảnh của
NavDisplaynếu cần để hỗ trợ bố cục thích ứng và các nền tảng khác nhau.
Bạn có thể xem mã nguồn đầy đủ cho Navigation 3 trên AOSP.
Những điểm cải tiến so với thành phần Điều hướng của Jetpack
Navigation 3 cải thiện API Điều hướng Jetpack ban đầu theo những cách sau:
- Cung cấp một quy trình tích hợp đơn giản hơn với Compose
- Cho phép bạn kiểm soát hoàn toàn ngăn xếp lui
- Cho phép tạo bố cục có thể đọc nhiều đích đến từ ngăn xếp sau cùng cùng một lúc, cho phép 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 và lựa chọn thiết kế API của Navigation 3 trong bài đăng này trên blog.
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 dựng Navigation 3 để giải quyết các thách thức thường gặp về điều hướng.