通过多个片段android移动

时间:2013-10-29 12:12:18

标签: android android-fragments

假设我有片段A,B,C和D.片段之间的正常移动是A - > B - > C - > D.现在假设我想跳过A - > D,但来自D的onBackPressed()我希望能够分别导航回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();
           } 
    }
 }

1 个答案:

答案 0 :(得分:1)

你有片段,所以你可以做任何你想做的事情。您应按照以下步骤来实现此目的。

  • 首先声明清单中所有片段的顺序为A而不是B而不是C而不是D
  • 因此,您可以使用简单的下一个片段设置可见性方法,从A&gt; B&gt; C&gt; D实现正常导航。
  • 当您想要从A到D的直接导航时,只需隐藏B和C片段。
  • 如果您想从D&gt; C&gt; B&gt; A移动,只需再次看到B和C,然后再次按照简单导航。