Android 在多个片段中移动
假设我有片段的A、B、C和D。片段之间的正常移动是A->B->C->D。现在假设我想从A->D跳转,但在从D返回时,我希望能够分别导航回C和B。有没有办法做到这一点?我尝试的代码是这样的,但它目前无法工作Android 在多个片段中移动,android,android-fragments,Android,Android Fragments,假设我有片段的A、B、C和D。片段之间的正常移动是A->B->C->D。现在假设我想从A->D跳转,但在从D返回时,我希望能够分别导航回C和B。有没有办法做到这一点?我尝试的代码是这样的,但它目前无法工作 public void showNestedFragment(LinkedList<Fragment> fragments, boolean allowBack) { FragmentTransaction fragmentTransaction = getSuppo
public void showNestedFragment(LinkedList<Fragment> fragments, boolean allowBack)
{
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (allowBack == false) // pop all thats in the backstack
getSupportFragmentManager()
.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
for(Fragment fragment : fragments){
fragmentTransaction.add(R.id.fragment, fragment);
if (allowBack)
{
fragmentTransaction.addToBackStack(null);
}
try
{
fragmentTransaction.commit();
}
catch (IllegalStateException e)
{
e.printStackTrace();
}
}
}
public void showNestedFragment(LinkedList片段,布尔allowBack)
{
FragmentTransaction FragmentTransaction=getSupportFragmentManager().beginTransaction();
if(allowBack==false)//弹出backbackback中的所有内容
getSupportFragmentManager()
.popBackStack(null,FragmentManager.POP_BACK_STACK_,包括在内);
for(片段:片段){
fragmentTransaction.add(R.id.fragment,fragment);
if(allowBack)
{
fragmentTransaction.addToBackStack(空);
}
尝试
{
fragmentTransaction.commit();
}
捕获(非法状态)
{
e、 printStackTrace();
}
}
}
你有片段,所以你可以做任何你想做的事情。您应该遵循这些步骤来实现这一点
- 首先声明清单中的所有片段,顺序为A、B、C、D
- 所以,您可以使用设置下一个片段的可见性的简单方法从A>B>C>D实现正常导航
- 当您需要从A到D的直接导航时,只需隐藏B和C片段
- 当您想从D>C>B>A移动时,只需再次显示B和C,然后再次按照简单导航进行操作
- 首先声明清单中的所有片段,顺序为A、B、C、D
- 所以,您可以使用设置下一个片段的可见性的简单方法从A>B>C>D实现正常导航
- 当您需要从A到D的直接导航时,只需隐藏B和C片段
- 当您想从D>C>B>A移动时,只需再次显示B和C,然后再次按照简单导航进行操作
- 你有碎片,所以你可以做任何你想做的事。您应该遵循这些步骤来实现这一点