片段在第二次替换时重叠,没有添加到堆栈

时间:2019-05-15 09:48:39

标签: android android-fragments

场景:

  1. 活动将片段A添加到帧布局。

  2. 片段A替换为片段B。

在步骤2之前,一切正常。

  1. 将片段B替换为片段B(也尝试将其替换为片段A)。

在步骤3中使用addToBackStack()时,一切正常。输出将为A> B> B(重新创建)> B(onBackPressed()/ popBackStack())> A。

但是当我在第3步中未使用addToBackStack()时,输出将为A> B> B(重新创建)> A(与B重叠)。

发生重叠的任何原因?

活动添加片段A:

FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

    ChartFragment fragment = new ChartFragment();
    fragmentTransaction.add(R.id.container, fragment);
    fragmentTransaction.commit();    

将片段A替换为片段B:

FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

                        ChildChartFragment fragment = new ChildChartFragment();
                        fragmentTransaction.replace(R.id.container, fragment);
                        fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                        fragment.setArguments(b);
                        fragmentTransaction.addToBackStack(null);
                        fragmentTransaction.commit();

重新创建片段B:

getFragmentManager().beginTransaction().replace(R.id.container, new ChildChartFragment()).commit();

1 个答案:

答案 0 :(得分:1)

尝试在片段中设置背景颜色。