当我们使用addToBackStack()从一个片段切换到另一个片段时如何打开前一个片段

时间:2014-06-24 07:44:48

标签: android android-fragments

我有两个碎片--A和B。

当我用片段B替换片段A时,如何在不添加或替换片段A的情况下从片段B返回片段A?

2 个答案:

答案 0 :(得分:1)

尝试以下代码: -

@Override
public void onBackPressed(){
    FragmentManager fm = getFragmentManager();
    if (fm.getBackStackEntryCount() > 0) {
        Log.i("MainActivity", "popping backstack");
        fm.popBackStack();
    } else {
        Log.i("MainActivity", "nothing on backstack, calling super");
        super.onBackPressed();  
    }
}

http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack

答案 1 :(得分:1)

我总是使用popbackstackimmediage。

在类扩展片段(Api< 11)中使用支持库:

getActivity().getSupportFragmentManager().popBackStackImmediate();//returns a boolean

对于api级别> 11内部类扩展片段:

    getActivity().getFragmentManager().popBackStackImmediate();//returns a boolean

对于类扩展活动,您不需要getActivity()上下文:

getFragmentManager().popBackStackImmediate();//similar for support library