从上一个片段返回时如何避免活动空白

喜玛尼坦克

我在这里用

public void replaceFragment(Fragment fragment, boolean isMainPage, Bundle bundle) {
    String backStateName = fragment.getClass().getName();
    FragmentManager manager = getSupportFragmentManager();
    boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);

    if (bundle != null) {
        fragment.setArguments(bundle);
    }

    System.out.println("isMainPage :: " + isMainPage);
    System.out.println("FRAGMENT NAME :: " + backStateName + " fragmentPopped :: " + fragmentPopped);

    if (!fragmentPopped) { //fragment not in back stack, create it.
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(R.id.main_fragment, fragment);

        if (isMainPage) {
            getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

        }
        int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
        System.out.println("backStackCount :: " + backStackCount);
        transaction.addToBackStack(backStateName);
        transaction.commit();
    }
}

用于替换整个项目中的片段。我的问题是,当我从最后一个片段弹出时,它显示空白页面,在该页面上放置了我的框架布局以替换片段

<FrameLayout
    android:id="@+id/main_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
阿维纳什·库玛·辛格(Avinash Kumar Singh)

只需从代码中删除此行,即可解决您的问题。

transaction.addToBackStack(backStateName);

说明

您将片段添加到堆栈中,以便首先返回片段,该片段从后堆栈弹出,并且可以看到空容器。

注意:如果你想给标签名称为您的片段,然后只需更换你的这行代码transaction.replace(R.id.main_fragment, fragment);与此transaction.replace(R.id.main_fragment, fragment, backStateName);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何完成当前活动并返回上一个片段?

如何返回上一个活动?

如何返回上一个活动

当当前活动具有 SurfaceView 时如何返回上一个活动?

如何正确返回上一个片段?

如何从上一个活动中使用onBackPressed永久退出我的Android应用

避免在屏幕旋转时被替换的片段调用上一个片段

最近屏幕后如何返回上一个活动

Android:如何返回上一个活动

Android:返回上一个活动

如何使用活动显示的片段转到上一个活动

跳至下一个活动时如何销毁上一个活动

按后退按钮移动到上一个片段时显示空白屏幕

如何从上一个div删除边框

从活动移至上一个片段

当用户从上一个元素中选择一个选项时,如何显示隐藏的元素

如何在Android中关闭活动并返回上一个活动

如何在android中关闭当前活动返回上一个活动?

如何不完成当前活动就返回上一个活动

Java Android getApplicationContext() 从上一个类返回一个空对象

当我们使用android中的backstack返回上一个片段时,上一个片段正在重新启动

打开新的活动时如何清除上一个活动的位图内存

按下不返回上一个片段

Android 通过 popBackStack 返回上一个片段

以编程方式返回Backstack中的上一个片段

返回Android中onBackPressed上的上一个片段

选择日期后返回上一个片段

如何返回到后栈中的上一个片段?

单击上一个按钮时保留片段的状态