Java 导航抽屉-顶部碎片
我有导航抽屉和一系列的碎片。在层次结构的最后一个片段中,我在操作栏上设置了“向上”按钮。单击此按钮时,将调用根活动的OnOptions ItemSelected(MenuItem item),我可以在其中找到在以下谓词中单击的按钮: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
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将删除它并恢复容器中以前的内容。