当你导航到下一个片段时,你可能想要弹出当前片段,以便返回到之前的片段。以下是一个简单的解决办法,我们可以使用FragmentTransaction类的remove方法或popBackStack方法来完成这个任务。
例如,我们在MainActivity.java文件中有一个名为MyFragment的片段,我们将使用以下方式导航到它:
MyFragment fragment = new MyFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
要弹出当前片段并返回到上一个片段,我们可以使用以下方法之一:
使用remove方法:
fragmentTransaction.remove(fragment).commit();
使用popBackStack方法:
fragmentManager.popBackStack();
在这两种情况下,将删除当前片段并返回到上一个片段。
例如,以下是将remove方法添加到以上代码中的示例:
MyFragment fragment = new MyFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.remove(currentFragment).commit(); // remove current fragment
或者,这是使用popBackStack方法的示例:
MyFragment fragment = new MyFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentManager.popBackStack(); // pop current fragment from back stack
请注意,如果您没有将当前片段添加到后面堆栈中,则popBackStack方法将返回到先前添加到后面堆栈中的片段。因此,在继续使用popBackStack方法之前,请确保正确添加片段。
上一篇:Android导航-确认用户导航
下一篇:Android导航布局项左右对齐