Điều hướng (navigation) là các tương tác cho phép người dùng di chuyển qua lại, vào và ra khỏi các phần nội dung khác nhau trong ứng dụng.
Thành phần Điều hướng (Navigation) của Android Jetpack gồm có Thư viện điều hướng, trình bổ trợ Safe Args Gradle và công cụ giúp bạn triển khai quy trình điều hướng trong ứng dụng. Thành phần Điều hướng xử lý nhiều trường hợp sử dụng điều hướng, từ nhấp nút đơn giản đến các loại hình phức tạp hơn, chẳng hạn như thanh ứng dụng và ngăn điều hướng.
Các khái niệm quan trọng
Bảng sau đây đưa ra thông tin tổng quan về 3 khái niệm quan trọng trong thành phần điều hướng, cũng như các kiểu dữ liệu chính mà bạn dùng để triển khai các khái niệm đó.
Khái niệm |
Mục đích |
Loại |
---|---|---|
Thành phần lưu trữ |
Một phần tử trên giao diện người dùng chứa đích đến điều hướng hiện tại. Tức là khi người dùng di chuyển trong một ứng dụng, về cơ bản, ứng dụng đó sẽ hoán đổi đích đến trong và ngoài thành phần lưu trữ điều hướng đó. |
|
Biểu đồ |
Một cấu trúc dữ liệu xác định tất cả đích đến điều hướng trong ứng dụng và cách kết nối các đích đến này với nhau. |
|
Trình điều khiển |
Trình điều phối trung tâm để quản lý việc điều hướng giữa các đích đến. Trình điều khiển này cung cấp các phương thức để điều hướng giữa các đích đến, xử lý đường liên kết sâu, quản lý ngăn xếp lui, v.v. |
Lợi ích và tính năng
Thành phần Điều hướng mang lại một số lợi ích và tính năng khác như:
- Ảnh động và hiệu ứng chuyển đổi: Cung cấp tài nguyên chuẩn hoá để tạo ảnh động và hiệu ứng chuyển đổi.
- Đường liên kết sâu: Triển khai và xử lý các đường liên kết sâu đưa người dùng đến thẳng một đích đến.
- Mẫu giao diện người dùng: Hỗ trợ các mẫu như ngăn điều hướng và thành phần điều hướng ở dưới cùng giúp giảm thiểu công việc cần làm.
- An toàn về kiểu: Đưa trình bổ trợ Safe Args Gradle vào để giúp đảm bảo an toàn về kiểu khi điều hướng và truyền dữ liệu giữa các đích đến.
- Hỗ trợ ViewModel: Bật tính năng xác định phạm vi
ViewModel
cho một biểu đồ điều hướng để chia sẻ dữ liệu liên quan đến giao diện người dùng giữa các đích đến trong biểu đồ. - Giao dịch mảnh (Fragment transactions): Hỗ trợ và xử lý đầy đủ các giao dịch mảnh.
- Quay lại và di chuyển lên: Xử lý chính xác các thao tác quay lại và di chuyển lên theo mặc định.
Thiết lập môi trường
Để đưa tính năng hỗ trợ điều hướng vào dự án của bạn, hãy thêm các phần phụ thuộc sau vào tệp build.gradle
trong ứng dụng:
Groovy
dependencies { def nav_version = "2.7.7" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // Feature module Support implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" }
Kotlin
dependencies { val nav_version = "2.7.7" // Java language implementation implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Kotlin implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version") // Feature module Support implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // Jetpack Compose Integration implementation("androidx.navigation:navigation-compose:$nav_version") }
Để biết thông tin về việc thêm các thành phần cấu trúc khác vào dự án, hãy xem nội dung Thêm các thành phần vào dự án.
Các bước tiếp theo
Để tìm hiểu thêm tài liệu và tài nguyên tham khảo liên quan đến thành phần điều hướng, hãy xem các tài nguyên sau.
Hướng dẫn chi tiết
Để biết thêm thông tin về cách triển khai thành phần lưu trữ điều hướng và NavController
, cũng như thông tin cụ thể về cách các thành phần này tương tác với Compose và những khung giao diện người dùng khác, hãy xem các hướng dẫn sau:
- Tạo trình một điều khiển điều hướng: Trình bày cách tạo một
NavController
. - Tạo biểu đồ điều hướng: Thông tin cụ thể về cách tạo một thành phần lưu trữ điều hướng và biểu đồ điều hướng.
- Điều hướng đến một đích đến: Minh hoạ cách sử dụng
NavController
để điều hướng giữa các đích đến trong biểu đồ.
Lớp học lập trình
- Tìm hiểu về thành phần Điều hướng của Jetpack
- Mảnh và thành phần điều hướng
- Tạo ứng dụng thích ứng bằng tính năng điều hướng động
Video
- Chỉ dẫn điều hướng
- 10 phương pháp hay nhất để di chuyển sang một hoạt động duy nhất
- Một hoạt động: Lý do, thời điểm và cách thức (Hội nghị Nhà phát triển Android 2018)
- Android Jetpack: Quản lý hoạt động điều hướng giao diện người dùng bằng Trình điều khiển thành phần điều hướng (Google I/O 2018)