Android 如何处理带有碎片的反压

Android 如何处理带有碎片的反压,android,android-fragments,Android,Android Fragments,我在contatin navigation drawer中有片段活动。单击导航抽屉项目后,它将打开片段1、片段2、片段3。然后在片段1中的按钮单击事件后,打开新片段4 我想处理返回键按下事件如何在片段4上执行此操作?单击片段4中的返回键后,我想返回片段1 将碎片添加到backbackback。在提交()事务之前,请使用addToBackStack()方法 i、 e 在onBackPressed()中 重写onBackPress()方法,并检查fragement管理器的backbackback条目

我在contatin navigation drawer中有片段活动。单击导航抽屉项目后,它将打开片段1、片段2、片段3。然后在片段1中的按钮单击事件后,打开新片段4

我想处理返回键按下事件如何在片段4上执行此操作?单击片段4中的返回键后,我想返回片段1


将碎片添加到backbackback。在提交()事务之前,请使用addToBackStack()方法 i、 e

在onBackPressed()中

重写onBackPress()方法,并检查fragement管理器的backbackback条目是否大于0,否则请完成活动

if(getFramentManager().getBackStackEntryCount()>0){
      // popback statck.
}
 else{
     // finish your activity.
 }
不要忘记将碎片添加到BackStack以维护碎片层次结构

fragTransacion.addToBackStack(TAG);

将片段添加到backstack的代码应该如下所示:

getFragmentManager() .beginTransaction() .replace(R.id.content_frame, Entry_Account.newInstance(), Entry_Account.TAG).addToBackStack("Some string") .commit();
然后在Activity的onBackPressed方法上,使用以下代码段:

@Override
public void onBackPressed () {
if(getFramentManager().getBackStackEntryCount()>0){
      // popback statck.
}
 else{
     // finish your activity.
 }
}

如果你不做任何事情,这一定会发生,巫婆片段在反压后打开?不,在反压后打开我的主页布局,它是
片段2
,它被设置为导航抽屉中的主片段请发布一些代码,因为我想如果你不更改任何东西,则必须在Activity on backpressed()方法中打开预片段,如果(fm.getbackbackbackentrycount()>0){pop the fragment}else{super.onBackPressed();}@sandeep maramThank yout这是正确答案。将片段事务添加到backbackbackback将反转backpressed上的事务。
addToBackStack(“某些字符串”).commit();
我认为还有{super.onBackPressed();}将提供比假设Activity.finish()更优雅的回退。另外,奇怪的是,在使用android.app.FragmentManager时,您需要实现此逻辑,而不是android.support.v4.app.FragmentManager。在使用支持库版本时,我收到了默认的后堆栈处理。如何将碎片添加到BackStack以维护碎片层次结构?
@Override public void onBackPressed(){if(getSupportFragmentManager().getBackStackEntryCount()>0){getSupportFragmentManager().popBackStack();}其他{this.finish();}}}
getFragmentManager() .beginTransaction() .replace(R.id.content_frame, Entry_Account.newInstance(), Entry_Account.TAG).addToBackStack("Some string") .commit();
@Override
public void onBackPressed () {
if(getFramentManager().getBackStackEntryCount()>0){
      // popback statck.
}
 else{
     // finish your activity.
 }
}