我有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();
}
}
这不起作用,因为我没有将它添加到后台堆栈中。有没有办法实现这个目标?
答案 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();
}