Android 片段与反压函数

Android 片段与反压函数,android,android-fragments,Android,Android Fragments,我正在使用导航抽屉和碎片为主要活动充气。 但是,当我按下后退按钮时,它会关闭应用程序,这在片段设置中很明显 我想要的是,当用户单击后退按钮时,如果当前不是视图,他们会转到主页片段,但如果他们在主页上,我希望应用程序关闭 如何解决此问题?您应该重写activity类中的方法,并使用该方法可以确定是否需要切换回主片段或调用super.onBackPressed()重写back按钮将是一个非常糟糕的主意,因为它伤害大于帮助 如果您想添加一个不会被替换的片段(您的初始“HomePageFragment”

我正在使用导航抽屉和碎片为主要活动充气。 但是,当我按下后退按钮时,它会关闭应用程序,这在片段设置中很明显

我想要的是,当用户单击后退按钮时,如果当前不是视图,他们会转到主页片段,但如果他们在主页上,我希望应用程序关闭


如何解决此问题?

您应该重写activity类中的方法,并使用该方法可以确定是否需要切换回主片段或调用
super.onBackPressed()

重写back按钮将是一个非常糟糕的主意,因为它伤害大于帮助

如果您想添加一个不会被替换的片段(您的初始“HomePageFragment”),只需添加以下行:

  transaction.addToBackStack(null);
这会给你一些类似的东西:

 final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.fragment, fragment, TAG_FRAGMENT);
    transaction.addToBackStack(null);
    transaction.commit();

如果您添加了一些其他片段,请不要将它们添加到后堆栈。

{transaction.addToBackStack(null);}这行代码完成了此操作。谢谢你,伙计!但是当我从Fragment_2转到HomeFragment时,HomeFragment的标题说Title1变为Title2,这是Fragment_2的标题,如何解析?根据您对片段的要求,将您的标题放在onActivityCreated()//onResume()中:getActivity().getActionBar().setTitle(“blah”)
transaction.addToBackStack(“yourTag”或无效)标记。popbackbackimmediate
fragmentManager.popbackbackbackimmediate(“yourTag”,0)更多详细信息