使用 FragmentManager 的 addToBackStack 方法来管理 Fragment 的回退栈
时间: 2024-12-15 14:26:05 浏览: 27
FragmentManager 是 Android 中用于管理 Activity 和其包含的 Fragment 的核心组件。当你需要支持用户通过 Back 按钮返回到先前的状态时,可以使用 `addToBackStack()` 方法。这个方法通常配合 `beginTransaction()` 一起使用。
当你开始一个新的 `FragmentTransaction` 时,如果添加了一个 Fragment 并调用了 `addToBackStack()`,那么每当用户按回退键,系统会把这个 Fragment 添加到回退栈上。这样,每次用户按下 Back 按钮,都会从当前显示的 Fragment 向回弹出一个 Fragment,直到回到最初添加到栈的那一步,或者栈为空。
例如:
```java
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Fragment newFragment = SomeFragment.newInstance();
transaction.add(R.id.container, newFragment).addToBackStack("tag");
transaction.commit();
```
在这里,"tag" 是一个自定义的标签名,用于区分不同的 Fragment。当用户想要回退时,可以使用 `popBackStack()` 或者 `popBackStack(tag, flags)` 来指定是否保留特定的 tag 或者使用哪些标志。
阅读全文