Thao tác

Đ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.

NavGraph

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.

NavController

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.5.3"

  // 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.5.3"

  // 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:

Lớp học lập trình

Video

Mẫu