如何按一下按钮返回上一个片段

时间:2014-10-24 11:08:29

标签: android android-fragments

我有2个片段,一个添加到后台堆叠,而另一个没有添加。考虑一下我在第二个片段中,它没有被添加到backstack中。顶部有一个关闭按钮。单击此按钮,我应该回到上一个片段。怎么做到这一点?我试过这样的事情:但是只有当它被添加到后台时才能完成。

public void onCloseBtnClicked(Fragment fragment, FragmentActivity activity) {
    if(fragment instanceof ImageFragment)
        FragmentHelper.removeCurrentFragment(activity, fragment);
}

public static void removeCurrentFragment(final FragmentActivity activity, final Fragment fragment) {
    if (fragment != null && !fragment.isDetached()) {
        FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
        transaction.remove(fragment);
        transaction.commitAllowingStateLoss();
    }
}

这不起作用,因为我没有将它添加到后台堆栈中。有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:1)

尝试getFragmentManager().popBackStack()

另请查看http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack()

如果您使用SupportFragment尝试getSupportFragmentManager().popBackStack();

答案 1 :(得分:0)

使用getFragmentManager().popBackStack()

答案 2 :(得分:0)

在使用新片段提交事务之前,请将其添加到backstack:

transaction.addToBackStack(tag);

所以当你想回去时:

if (mFragmentManager.getBackStackEntryCount() > 1) {
        mFragmentManager.popBackStack();
    }