片段后台中的导航问题

时间:2016-12-13 15:40:44

标签: android navigationbar

底部导航栏上的多次点击未按预期发生

底栏有5个标签

每个标签选择都会弹出标签并推送标签

点击片段A - >点击片段B,重复两到五次。

例如:

点按A. - >从堆栈中弹出A. - >将A推送到堆栈 点按B - >来自Stack的pop B. - >把B推到堆叠

行为: 默认情况下加载一个片段,点击B导航到B,稍后点击A转到A,此时返回按app关闭。

预计: 结果应该是这样的 默认情况下加载一个片段,点击B导航到B,稍后点击A转到A,这里当按下它时它应该转到B并且反压转到A然后反压关闭应用程序。

case FragmentA: 
    fragmenta = new FragmentA();

    getSupportFragmentManager().popBackStack(FragmentReferenceTags.FragmentA, FragmentManager.POP_BACK_STACK_INCLUSIVE); // returns False - can't find the tag!

    transaction.add(R.id.fragment_container_layout, fragmenta, FragmentReferenceTags.FragmentA);
    transaction.addToBackStack(FragmentReferenceTags.FragmentA);

    transaction.commit();
    hideSubTabs();
    break;

case FragmentB:
    fragmentb = new FragmentB();

    getSupportFragmentManager().popBackStack(FragmentReferenceTags.FragmentB, FragmentManager.POP_BACK_STACK_INCLUSIVE); // returns False - can't find the tag!

    transaction.add(R.id.fragment_container_layout, fragmentb, FragmentReferenceTags.FragmentB);
    transaction.addToBackStack(FragmentReferenceTags.FragmentB);

    transaction.commit();
    hideSubTabs();
    break;

1 个答案:

答案 0 :(得分:0)

使用replace代替add

transaction.replace(R.id.fragment_container_layout, fragmentb, FragmentReferenceTags.FragmentB);
transaction.addToBackStack(null);