Android fragments 替换1活动中的片段

Android fragments 替换1活动中的片段,android-fragments,back-stack,Android Fragments,Back Stack,我有两个片段,称为片段A和片段B Log.d(TAG, "replacing fragment"); FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.setCustomAnimations(enterAnim, exitAnim); ft.replace(resId, fragment);

我有两个片段,称为片段A和片段B

            Log.d(TAG, "replacing fragment");
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(enterAnim, exitAnim);
    ft.replace(resId, fragment);
    ft.addToBackStack(null);
    ft.commit();
显示时,两个片段占据半屏幕(这是正常的)

活动加载时附加了onCreate中的片段A(这是确定的)

现在按下片段a中的一个按钮,我想用片段B替换屏幕上的片段a(完成了)

但是,当我进行反压时,我想用原始片段a替换片段B

    Log.d(TAG, "replacing fragment");
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.replace(resId, fragment);
    ft.commit();
下面是我在onCreate中显示片段A的代码

    Log.d(TAG, "replacing fragment");
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.replace(resId, fragment);
    ft.commit();
//不需要故意调用backbackback,这样碎片A就不能用back press分离

这是我的代码,点击按钮显示片段B

            Log.d(TAG, "replacing fragment");
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(enterAnim, exitAnim);
    ft.replace(resId, fragment);
    ft.addToBackStack(null);
    ft.commit();
现在,当我用onbackpress方法写

getSupportFragmentManager().popBackStack();
事情就是这样:片段B被移除,片段A不显示在它后面。这意味着我得到了一个空白的白色屏幕,上面什么也没有,在碎片a应该在的地方

为什么会发生这种情况