我们需要有关片段导航问题的帮助

时间:2014-08-07 07:51:23

标签: android android-fragments

我们需要有关片段导航问题的帮助

我有 Acitvity1 ,其中动态添加fragmentA和fragmentA有一个名为 next 的按钮,如果我们按 next 按钮然后fragmentB是午饭。现在按设备硬件后退按钮然后onCreateView调用fragmentA。

我的问题是,我们如何在 onResume状态通过阻止oncreateView调用以前的保留状态 <恢复/调用fragmentA / p>

请帮帮我朋友,真的遇到麻烦了 提前谢谢。

3 个答案:

答案 0 :(得分:1)

我认为你使用了FragmentTransaction的替换方法,但你应该使用它来代替。 见documentation

请发布一些源代码,以获得更清晰的视图

答案 1 :(得分:0)

您可以使用 backstackentry 参考this

@Override
public void onBackPressed() {
    loadPreviousFragment();
}

private boolean loadPreviousFragment() {
    FragmentManager fm = getSupportFragmentManager();
    for(int i = 0; i < fm.getBackStackEntryCount(); i++){
        if(fm.getBackStackEntryAt(i).getName().equals(FRAGMENT_A )){
            fm.getFragments().get(i).onResume();
            return true;
        }

        if(fm.getBackStackEntryAt(i).getName().equals(FRAGMENT_B )){
            fm.getFragments().get(i).onResume();
            return true;
        }
    }
}

并且在添加片段时只需设置backstak名称

fragmentTransaction.addToBackStack(FRAGMENT_A);

答案 2 :(得分:0)

据我了解你称为片段替换。你有3个变种:

  1. 调用fragmentTransaction.add()而不是替换你将同时在屏幕上有2个片段,首先应该是不可见的。你回到之前的片段,就没有onCreateView电话。
  2. 存储对第一个片段的引用,并使用它添加方法off fragmentTransaction
  3. 在屏幕上添加fragmentB时调用addToBackStack
相关问题