从另一个活动返回后如何恢复 activity 中最后打开的片段

how to restore last opened fragment inside an activity after getting back from another actvivty

我在 activity 中使用多个片段,就像这样的流程:片段 A 在其项目上有一个列表单击片段 B 打开它还有一个列表打开片段 C 有一个列表打开另一个 Activity ,问题是当我从另一个 Activity 返回时,我发现 Fragment A 已打开,从另一个返回时如何恢复最后一个 Fragment C activity?

这里是在我的 activity

中替换 Fragment 的代码
 protected void showFragment(Fragment fragment) {

    String TAG = fragment.getClass().getSimpleName();
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.container_home, fragment, TAG);
    fragmentTransaction.addToBackStack(TAG);
    fragmentTransaction.commit();
}

您可以使用

 fragmentTransaction.addToBackStack(null);

而不是

 fragmentTransaction.addToBackStack(TAG);

希望你的问题能得到解决。

replace 删除现有片段并添加新片段。这意味着当您按下后退按钮时,将创建被替换的片段并调用其 onCreateView 。而 add 保留现有片段并添加一个新片段,这意味着现有片段将处于活动状态。

使用添加而不是替换

fragmentTransaction.add(R.id.container_home, fragment, TAG);

我用上面的代码解决了同样的问题。