Tôi đang gặp rất nhiều khó khăn với những mảnh Android ... Giả sử trở lại ngăn xếp của tôi trông như thế nàyThay thế đoạn đầu trên stack lại
[C]
[B]
[A]
---
Nhấn nút quay lại sẽ bật Fragment C
tắt, và để lại Fragment B
trên cùng của ngăn xếp. Bây giờ, làm cách nào để trao đổi Fragment C
cho Fragment D
trong khi vẫn duy trì ngăn xếp lại? Lưu ý, không thể nhìn thấy Fragment B
trong quá trình hoạt động.
[C] <- [D] [D]
[B] -----> [B]
[A] [A]
--- ---
Bằng cách này, nhấn vào nút quay lại sẽ bật Fragment D
tắt, và để lại Fragment B
trên đầu trang. Fragment C
bị xóa hoàn toàn khỏi ngăn xếp.
tôi thêm mỗi mảnh vỡ để ngăn xếp như vậy
FragmentTransaction ft = manager.beginTransaction();
ft.replace(id, instance, getTag(instance));
ft.addToBackStack(getTag(instance));
ft.commit();
Tôi nghĩ điều này có thể đạt được bằng cách thực hiện các cuộc gọi tương tự mà không addToBackStack
, nhưng nó chỉ làm Fragment D
và Fragment B
chồng chéo.
mà không có 'addToBackStack', giao dịch của bạn vẫn mặc dù bật ngăn xếp, dẫn đến đoạn D của bạn được hiển thị với B – njzk2