导航抽屉 - 顶部片段

时间:2014-09-08 12:42:43

标签: java android android-fragments navigation-drawer

我有导航抽屉和一系列碎片。在层次结构的最后一个片段,我在操作栏上有UP按钮。单击此按钮时,将调用root活动的onOptionsItemSelected(MenuItem项),我可以在其中找到,在以下谓词中单击了哪个按钮:

    else if ( item.getItemId() ==  android.R.id.home )
    {
        System.out.println("android.R.id.home\n\n");
       // super.onBackPressed();
      // getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();
        return true;
    }

如何删除当前片段?我已经阅读了关于后台堆栈的内容,但是这种方法需要使用密钥在堆栈中保存片段。我该如何避免这个程序?

2 个答案:

答案 0 :(得分:1)

当我第一次开始使用它们时,我之前就有了这个问题。我使用此代码添加片段:

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction =fragmentManager.beginTransaction();
Fragment fragment = new CustomFragment(); // your fragment to add
transaction.replace(R.id.content_frame, fragment,CustomFragment.TAG); // a string in case you need to check with fragment is currently visible.
transaction.addToBackStack(null);
transaction.commit();

这将确保当您按下后退按钮时,当前的按钮将消失,前一个按钮将显示。

希望它适合你。

答案 1 :(得分:0)

实际上,你可以弹出后台堆栈,不需要通过键/标签进行跟踪:FragmentManager.popBackStack()。将片段添加到后台时只需使用null,系统会自动为其选择一个标签。