Android 在多个片段中移动

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

假设我有片段的A、B、C和D。片段之间的正常移动是A->B->C->D。现在假设我想从A->D跳转,但在从D返回时,我希望能够分别导航回C和B。有没有办法做到这一点?我尝试的代码是这样的,但它目前无法工作

 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,然后再次按照简单导航进行操作