Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 导航抽屉-顶部碎片_Java_Android_Android Fragments_Navigation Drawer - Fatal编程技术网

Java 导航抽屉-顶部碎片

Java 导航抽屉-顶部碎片,java,android,android-fragments,navigation-drawer,Java,Android,Android Fragments,Navigation Drawer,我有导航抽屉和一系列的碎片。在层次结构的最后一个片段中,我在操作栏上设置了“向上”按钮。单击此按钮时,将调用根活动的OnOptions ItemSelected(MenuItem item),我可以在其中找到在以下谓词中单击的按钮: else if ( item.getItemId() == android.R.id.home ) { System.out.println("android.R.id.home\n\n"); // super.onB

我有导航抽屉和一系列的碎片。在层次结构的最后一个片段中,我在操作栏上设置了“向上”按钮。单击此按钮时,将调用根活动的OnOptions ItemSelected(MenuItem item),我可以在其中找到在以下谓词中单击的按钮:

    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;
    }

如何删除当前片段?我已经读过关于后堆栈的内容,但这种方法需要使用键在堆栈中保存片段。如何避免此过程?

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

在我第一次开始使用片段时,我曾经遇到过这样的问题。我使用以下代码添加片段:

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();
这将确保当您按下“后退”按钮时,当前按钮将消失,之前的按钮将显示


希望它对你有用。

是的,我已经发现了。不幸的是,片段仍然在屏幕上,但使用较小的alpha-我可以通过它的声音看到前面的片段,就好像你还有其他事情要做一样。如果您添加了一个片段(或替换),并告诉事务将其添加到后堆栈中,pop将删除它并恢复容器中以前的内容。