Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tài liệu này trình bày cách sử dụng đích đến của hộp thoại để đưa ra một số cân nhắc riêng về cách bạn cần quản lý ngăn xếp lui.
Tổng quan
Một hoặc nhiều đích đến của hộp thoại chỉ có thể tồn tại ở lớp trên cùng của ngăn xếp lui.
Nguyên nhân là do khi người dùng di chuyển tới một đích đến không phải là đích đến của hộp thoại, NavController sẽ tự động làm bật mọi đích đến của hộp thoại ra khỏi lớp trên cùng của ngăn xếp. Nhờ vậy, đích đến hiện tại luôn hiển thị đầy đủ ở trên các đích đến khác trong ngăn xếp lui.
Nếu ngăn xếp lui chỉ bao gồm các đích đến được lưu trữ lấp đầy máy chủ điều hướng và người dùng di chuyển tới một đích đến của hộp thoại, thì ngăn xếp lui này sẽ có dạng tương tự như hình 2:
Hình 2. Ngăn xếp lui có đích đến của hộp thoại ở trên cùng.
Sau đó, nếu người dùng di chuyển tới một đích đến khác của hộp thoại, thì đích đến này sẽ được thêm vào lớp trên cùng của ngăn xếp lui, như trong hình 3:
Hình 3. Ngăn xếp lui có 2 đích đến Dialog ở trên cùng.
Nếu sau đó người dùng di chuyển tới một đích đến không nổi, thì đích đến của hộp thoại sẽ bật lên từ lớp trên cùng của ngăn xếp lui trước rồi mới chuyển tới đích đến mới, như trong hình 4:
Hình 4. Đích đến Dialog bật ra và đích đến mới được thêm vào.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Dialog destinations\n\nThis document outlines how the use of [dialog destinations](/guide/navigation/design) can introduce\nunique considerations for how you need to manage your back stack.\n\nOverview\n--------\n\nOne or more dialog destinations can only exist on the top of the back stack.\nThis is because when the user navigates to a destination that is not a dialog\ndestination, the `NavController` automatically pops all dialog destinations off\nthe top of the stack. This ensures that the current destination is always fully\nvisible over other destinations on the back stack.\n\nDestinations can be either [hosted destinations](/guide/navigation/design), [activity\ndestinations](/guide/navigation/design/activity-destinations), or [dialog destination](/guide/navigation/design/dialog-destinations).\n| **Note:** Dialog destinations implement the [`FloatingWindow`](/reference/androidx/navigation/FloatingWindow) interface. As such, they overlay other destinations on the back stack.\n\nExample\n-------\n\nIf the back stack consists solely of [hosted destinations](/guide/navigation/design)\nthat fill the navigation host, and the user navigates to a dialog destination,\nthen the back stack might look similar to figure 2:\n**Figure 2.** A back stack with a dialog destination on top.\n\nIf the user then navigates to another dialog destination, it is then added to\nthe top of the back stack, as shown in figure 3:\n**Figure 3.** A back stack with two `Dialog` destinations on top.\n\nIf the user then navigates to a non-floating destination, any dialog\ndestinations are first popped from the top of the back stack before navigating\nto the new destination, as shown in figure 4:\n**Figure 4.** The `Dialog` destinations are popped, and the new destination is added."]]