Jetpack Navigation 3 phiên bản 1.0 đã ổn định 🎉. Hãy dùng phiên bản này trong các ứng dụng chính thức của bạn ngay hôm nay. JetBrains đã sử dụng phiên bản này trong ứng dụng KotlinConf.
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 state. Thư việ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 (như danh sách-chi tiết). JetBrains thậm chí còn có một phiên bản đa nền tảng.
Tại sao cần có một thư viện mới?
Thư viện Jetpack Navigation ban đầu (nay là Nav2) được thiết kế cách đây 7 năm. Mặc dù thư viện này đáp ứng tốt các mục tiêu ban đầu và đã được cải thiện nhiều lần, nhưng cách xây dựng ứng dụng hiện nay đã 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 hỗ trợ 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 quan sát danh sách các 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 đáng tin cậy duy nhất cho trạng thái điều hướng vì thư viện này 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, giúp bạn kiểm soát hoàn toàn.
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 nguyên khối duy nhất, 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 chức năng phức tạp. Bản thân Nav3 sử dụng các khối xây 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 màn hình ở cả cấp độ chung và cấp độ riêng lẻ
- Hiển thị nhiều ngăn cùng lúc và tạo bố cục linh hoạt bằng API Scenes
- 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 thư viện này trong blog ra mắt.
Di chuyển từ Navigation 2
Nếu bạn đang sử dụng Nav2, cụ thể là Navigation Compose, thì bạn nên cân nhắc việc di chuyển sang Nav3. Để hỗ trợ bạn trong việc này, có một hướng dẫn di chuyển. Các bước chính là:
- Thêm các phần phụ thuộc điều hướng 3.
- Cập nhật các tuyến điều hướng để triển khai NavKey. Các tuyến của bạn 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 ngăn xếp lui liên tục.
- Tạo các lớp để giữ và sửa đổi trạng thái điều hướng của bạn – đây là nơi giữ các ngăn xếp lui.
- 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 entryProvider.
- Thay thế NavHost bằng NavDisplay.
Thử nghiệm di chuyển tác nhân AI
Bạn có thể thử nghiệm việc sử dụng 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 với Gemini trong Chế độ tác nhân của 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 lời nhắc này vào tác nhân (nhưng không nhấn phím Enter): "Migrate this project to Navigation 3 using ".
- Nhập @migration-guide.md – thao tác này sẽ cung cấp hướng dẫn dưới dạng ngữ cảnh cho tác nhân.
Như mọi khi, hãy nhớ xem xét kỹ các thay đổi do tác nhân AI thực hiện – tác nhân này có thể mắc lỗi!
Chúng tôi rất muốn biết hiệu suất của bạn hoặc tác nhân của bạ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ó sắc thái, chúng tôi có một kho lưu trữ công thức. Kho lưu trữ này cho biết 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 "nâng cấp" các phần không có sắc thái của công thức đó thành thư viện Nav3 cốt lõi hoặc thư viện bổ sung.
Hiện có 19 công thức, bao gồm:
- Nhiều ngăn xếp lui
- Phân tách mô-đun và chèn phần phụ thuộc
- Truyền đối số điều hướng đến ViewModel (bao gồm cả việc sử dụng Koin)
- Trả về kết quả từ màn hình theo sự kiện và theo trạng thái được chia sẻ
Chúng tôi hiện đang phát triển một công thức đường liên kết sâu, cùng với một tính năng tích hợp Koin và có nhiều công thức 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 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 một tuần nội dung kỹ thuật, bao gồm:
- Video nghiên cứu chuyên sâu về API bao gồm phân tách mô-đun, ảnh động và bố cục thích ứng.
- Buổi Hỏi tôi bất cứ điều gì (AMA) trực tiếp với các kỹ sư đã xây dựng Nav3.
Tuần giới thiệu Nav3 bắt đầu từ ngày 1 tháng 12 năm 2025.
Như mọi khi, nếu bạn gặp bất kỳ vấn đề nào, vui lòng báo cáo tại đây.
Tiếp tục đọc
-
Tin tức về sản phẩm
Vào năm 2025, hệ sinh thái Android đã phát triển vượt xa điện thoại. Ngày nay, 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, XR, Chromebook và ô tô tương thích.
Fahd Imtiaz • 2 phút đọc
-
Tin tức về sản phẩm
Quy trình làm việc và nhu cầu về AI của mỗi nhà phát triển là riêng biệt. Do đó, bạn cần có thể chọn cách AI hỗ trợ quá trình phát triển của mình. Vào tháng 1, chúng tôi đã giới thiệu khả năng chọn bất kỳ mô hình AI cục bộ hoặc từ xa nào để hỗ trợ chức năng AI trong Android Studio
Matthew Warner • 2 phút đọc
-
Tin tức về sản phẩm
Android Studio Panda 3 hiện đã ổn định và sẵn sàng để bạn sử dụng trong bản chính thức. Bản phát hành này giúp bạn kiểm soát và tuỳ chỉnh quy trình làm việc dựa trên AI nhiều hơn nữa, giúp bạn dễ dàng hơn bao giờ hết để xây dựng các ứng dụng Android chất lượng cao.
Matt Dyor • 3 phút đọc
Nhận thông tin cập nhật
Nhận thông tin chi tiết mới nhất về quá trình phát triển Android được gửi đến hộp thư đến của bạn hằng tuần.