Jetpack Navigation 3 phiên bản 1.0 đã ổn định 🎉. Hãy sử dụng phiên bản này trong các ứng dụng phát hành công khai của bạn ngay hôm nay. JetBrains đã sử dụng công nghệ này trong ứng dụng KotlinConf của họ.
Navigation 3 là một thư viện điều hướng mới được xây dựng từ đầu để hỗ trợ trạng thái Jetpack Compose. Thành phần này giúp bạn kiểm soát hoàn toàn ngăn xếp lui, duy trì trạng thái điều hướng và dễ dàng tạo bố cục thích ứng (chẳng hạn như danh sách-chi tiết). Thậm chí còn có một phiên bản đa nền tảng của JetBrains.
Tại sao cần có thư viện mới?
Thư viện Điều hướng Jetpack ban đầu (nay là Nav2) được thiết kế cách đây 7 năm và mặc dù đáp ứng tốt các mục tiêu ban đầu cũng như đã được cải thiện nhiều lần, nhưng cách các ứng dụng hiện được xây dựng đã thay đổi về cơ bản.
Lập trình phản ứng với giao diện người dùng khai báo hiện là tiêu chuẩn. Nav3 áp dụng phương pháp này. Ví dụ: NavDisplay (thành phần giao diện người dùng Nav3 hiển thị màn hình của bạn) chỉ cần theo dõi danh sách khoá (mỗi khoá đại diện cho một màn hình) được hỗ trợ bởi trạng thái Compose và cập nhật giao diện người dùng khi danh sách đó thay đổi.
Nav2 cũng có thể gây khó khăn trong việc có một nguồn thông tin xác thực duy nhất cho trạng thái điều hướng vì nó có trạng thái nội bộ riêng. Với Nav3, bạn cung cấp trạng thái của riêng mình, nhờ đó bạn có toàn quyền kiểm soát.
Cuối cùng, bạn yêu cầu có thêm sự linh hoạt và khả năng tuỳ chỉnh. Thay vì có một API đơn lẻ, nguyên khối, Nav3 cung cấp các API nhỏ hơn, tách rời (hoặc "khối xây dựng") có thể kết hợp với nhau để tạo ra chức năng phức tạp. Bản thân Nav3 sử dụng các khối dựng này để cung cấp các giá trị mặc định hợp lý cho các trường hợp sử dụng điều hướng được xác định rõ.
Phương pháp này cho phép bạn:
- Tuỳ chỉnh ảnh động trên màn hình ở cả cấp độ chung và cấp độ riêng lẻ
- Hiển thị nhiều ngăn cùng một lúc và tạo bố cục linh hoạt bằng Scenes API
- Dễ dàng thay thế các thành phần Nav3 bằng cách triển khai của riêng bạn nếu bạn muốn có hành vi tuỳ chỉnh
Đọc thêm về thiết kế và các tính năng của công cụ này trong blog ra mắt.
Di chuyển từ Navigation 2
Nếu đang sử dụng Nav2, cụ thể là Navigation Compose, bạn nên cân nhắc việc di chuyển sang Nav3. Để hỗ trợ bạn trong quá trình này, chúng tôi có một hướng dẫn di chuyển. Các bước chính là:
- Thêm 3 phần phụ thuộc điều hướng.
- Cập nhật các tuyến điều hướng để triển khai NavKey. Các tuyến đường không cần triển khai giao diện này để sử dụng Nav3, nhưng nếu triển khai, bạn có thể tận dụng hàm rememberNavBackStack của Nav3 để tạo một ngăn xếp quay lại liên tục.
- Tạo các lớp để lưu giữ và sửa đổi trạng thái điều hướng – đây là nơi lưu giữ các ngăn xếp quay lại.
- Thay thế NavController bằng các lớp này.
- Di chuyển các đích đến từ NavGraph của NavHost vào một entryProvider.
- Thay thế NavHost bằng NavDisplay.
Thử nghiệm với hoạt động di chuyển trợ lý AI
Bạn có thể thử dùng một tác nhân AI để đọc hướng dẫn di chuyển và thực hiện các bước trên dự án của mình. Cách dùng thử tính năng này bằng Chế độ tác nhân của Gemini trong Android Studio:
- Lưu phiên bản markdown này của hướng dẫn vào dự án của bạn.
- Dán câu lệnh này vào tác nhân (nhưng đừng nhấn phím Enter): "Di chuyển dự án này sang Navigation 3 bằng cách sử dụng ".
- Nhập @migration-guide.md – thao tác này sẽ cung cấp hướng dẫn làm bối cảnh cho tác nhân.
Như thường lệ, hãy nhớ kiểm tra kỹ những thay đổi do tác nhân AI thực hiện vì tác nhân này có thể mắc lỗi!
Chúng tôi rất mong nhận được ý kiến phản hồi của bạn về hiệu suất của bạn hoặc của người đại diện. Vui lòng gửi ý kiến phản hồi tại đây.
Công thức điều hướng hữu ích cho các trường hợp phổ biến
Đối với các trường hợp sử dụng phổ biến nhưng có nhiều sắc thái, chúng tôi có kho lưu trữ công thức. Điều này cho thấy cách kết hợp các API Nav3 theo một cách cụ thể, cho phép bạn chọn hoặc sửa đổi công thức cho phù hợp với nhu cầu cụ thể của mình. Nếu một công thức trở nên phổ biến, chúng tôi sẽ cân nhắc việc "nâng cấp" các phần không có sắc thái của công thức đó vào thư viện Nav3 cốt lõi hoặc các thư viện bổ trợ.
Hiện có 19 công thức, bao gồm cả công thức cho:
- Nhiều ngăn xếp lui
- Phân chia theo mô-đun và chèn phần phụ thuộc
- Truyền đối số điều hướng đến ViewModel (kể cả khi dùng Koin)
- Trả về kết quả từ các màn hình theo sự kiện và theo trạng thái được chia sẻ
Chúng tôi hiện đang xây dựng một công thức liên kết sâu, cũng như một quy trình tích hợp Koin và còn nhiều quy trình khác đang được lên kế hoạch. Một kỹ sư của JetBrains cũng đã xuất bản phiên bản Compose Multiplatform của các công thức.
Nếu bạn có một trường hợp sử dụng phổ biến mà bạn muốn xem công thức, vui lòng gửi yêu cầu về công thức.
Tóm tắt
Để bắt đầu sử dụng Nav3, hãy xem tài liệu và các công thức. Ngoài ra, hãy theo dõi nội dung kỹ thuật trong suốt một tuần, bao gồm:
- Video tìm hiểu sâu về API, bao gồm cả việc mô-đun hoá, ảnh động và bố cục thích ứng.
- Một buổi Hỏi đáp (AMA) trực tiếp với các kỹ sư đã xây dựng Nav3.
Tuần nổi bật Nav3 bắt đầu từ ngày 1 tháng 12 năm 2025.
Như thường lệ, nếu bạn gặp phải vấn đề nào, vui lòng báo cáo tại đây.
-
Tin tức về sản phẩmĐến năm 2025, hệ sinh thái Android đã phát triển vượt xa phạm vi điện thoại. Hiện nay, các nhà phát triển có cơ hội tiếp cận hơn 500 triệu thiết bị đang hoạt động, bao gồm cả thiết bị có thể gập lại, máy tính bảng, thiết bị thực tế mở rộng (XR), Chromebook và ô tô tương thích.
Fahd Imtiaz • 2 phút đọc -
Tin tức về sản phẩmVào tháng 3, chúng tôi đã giới thiệu Android Bench – bảng xếp hạng LLM của chúng tôi cho các tác vụ phát triển Android trong thực tế. Kể từ đó, chúng tôi đã cải thiện điểm chuẩn dựa trên ý kiến phản hồi của bạn, bao gồm cả việc đánh giá các mô hình có trọng số mở và thêm các phương diện chi phí và hiệu quả vào bảng xếp hạng.
Zoe Lopez-Latorre • Đọc trong 3 phút -
Tin tức về sản phẩmTại Google Play, chúng tôi cam kết mang đến trải nghiệm tốt nhất có thể cho người dùng, đồng thời đảm bảo nhà phát triển có các công cụ và khả năng thích ứng để thành công.
Paul Feng • Đọc trong 3 phút
Nhận thông tin chi tiết mới nhất về hoạt động phát triển trên Android trong hộp thư đến của bạn mỗi tuần.