将 Fragment 添加到后堆栈(在后压时出现空白屏幕)

dad*_*odo 2 android android-fragments back-stack

我有两个片段,第一个称为 Summer Jobs Fragment,其中包含项目列表,第二个称为 Summer Jobs Details Fragment,其中包含每个项目的详细信息。我试图设置回溯,以便当我从 Summer Jobs Detail Fragment 按下后退按钮时,我会回到 Summer Jobs Fragment。

这是我从 SJF 到 SJDF 初始转换的代码:

public void onItemClick(
                    AdapterView<?>parent,View view, int position, long id) {

                SummerJobDetailsFragment.mMyAppsBundle.
                        putInt("value", position);
                SummerJobDetailsFragment fragment =
                        new SummerJobDetailsFragment();
                FragmentManager fragmentManager =
                        getFragmentManager();
                list.setVisibility(parent.INVISIBLE);
                fragmentManager.beginTransaction().replace(R.id.displayjobs_detailed, fragment).
                        addToBackStack( "tag" ).commit();

            }
Run Code Online (Sandbox Code Playgroud)

这是我在主文件中修改 OnBackPressed() 的方法:

public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (getFragmentManager().getBackStackEntryCount() > 0 ) {
            getFragmentManager().popBackStack();

        } else {
            super.onBackPressed();

        }
    }
Run Code Online (Sandbox Code Playgroud)

但是当我从 SJDF 按下返回键时,我得到一个空白屏幕:

列表查看详情 按回后

小智 5

fragmentTransaction.addToBackStack() <--不要在你的第一个片段中包含这个。-->

if(getSupportFragmentManager().getBackStackEntryCount() !=1){
                fragmentTransaction.addToBackStack(null);
            }
Run Code Online (Sandbox Code Playgroud)