một cách là thẻ sự backstack
và khi bạn muốn xóa nó
mFragmentManager.popBackStack("myfancyname", FragmentManager.POP_BACK_STACK_INCLUSIVE);
nơi "myfancyname"
nên phù hợp với chuỗi bạn sử dụng với addToBackStack
. Ví dụ.
Fragment fancyFragment = new FancyFragment();
fragmentTransaction.replace(R.id.content_container, fancyFragment, "myfragmentag");
fragmentTransaction.addToBackStack("myfancyname");
tên 's backstack
và tên thẻ của mảnh có thể giống nhau nhưng không có ép về vấn đề này
Từ các tài liệu
Nếu được đặt, và tên hoặc ID của một mục nhập ngăn xếp lại đã được cung cấp, thì tất cả các mục phù hợp sẽ được sử dụng cho đến khi một mục không phù hợp với số hoặc dưới cùng của ngăn xếp. Nếu không, tất cả các mục nhập tối đa nhưng không bao gồm mục nhập đó sẽ bị xóa.
nếu bạn không muốn sử dụng tên cho backstack của bạn, bạn có thể vượt qua sử dụng một tham số đầu tiên
mFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
Tôi có cùng một vấn đề và điều này không làm việc cho tôi! –
Vui lòng giải thích vì đây là một trong những giải pháp tốt nhất. Thay vào đó, bạn có thể phải gọi popBackStackImmediate nếu bạn đang thêm nội dung mới vào hậu trường ngay sau khi xóa. – marsbear
Điều này sẽ chỉ bật trạng thái hàng đầu, không xóa hậu trường nếu có nhiều hơn một. – Tapirboy