首页 > 解决方案 > 按下后退按钮后片段重叠

问题描述

我有三个片段(片段A、片段B、片段C)。代码从fragmentA 到fragmentB,然后从fragmentB 到Fragemnt C。

当我按下后退按钮时,我从 fragmentC 转到 fragmentA。

按下后退按钮后,会显示 fragmentA,但您也可以在其后面看到 fragmentC。

片段A

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction;

ft.repalce(R.id.container, fragmentB)
  .addToBackStack("Null")  
  .commit();

片段B

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction;

ft.repalce(R.id.container, fragmentC)
  .commit();

片段C

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction;

ft.repalce(R.id.container, fragmentC)
  .commit();

当按下后退按钮时,我想从 fragmentC 转到 fragmentA 并且没有在后台显示片段 C

标签: androidandroid-fragments

解决方案


在 addToBackStack 中使用 null 作为参数,而不是 "Null"

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction;

    ft.repalce(R.id.container, fragmentB)
      .addToBackStack(null)  
      .commit();

推荐阅读