Android 碎片回撤替换问题
我使用Android 碎片回撤替换问题,android,android-fragments,back-stack,fragment-backstack,Android,Android Fragments,Back Stack,Fragment Backstack,我使用addtobackstack函数添加了backstack中的片段。 当我在没有使用addtobackstack函数的情况下添加一个片段,然后按下后退按钮时,后退就是返回到错误的片段 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home:
addtobackstack
函数添加了backstack中的片段。
当我在没有使用addtobackstack
函数的情况下添加一个片段,然后按下后退按钮时,后退就是返回到错误的片段
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (getFragmentManager().getBackStackEntryCount() ==0) {
finish();
}else{
getFragmentManager().popBackStack();
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
例如:
使用addtobackstack
使用addtobackstack
在不使用addtobackstack
使用addtobackstack
当我在片段D中并按下后退按钮时,我将进入片段A。但我必须进入片段B
我怎样才能修好它
谢谢,将此代码放入“活动”,然后重试 Fragment后面跟着Activity,所以当您将Fragment与带标记的addToBackStack()一起使用或传递null时,将在FragmentManager的帮助下在堆栈中添加Fragment 无需添加ToBackStack()。注释此代码或传递null
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager .beginTransaction();
fragmentTransaction .replace(R.id.fragment_container, YouNextFragment);
fragmentTransaction .addToBackStack(null);
fragmentTransaction .commit();
当您按下“活动”中的“后退”按钮时,会自动弹出最新添加的片段
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (getFragmentManager().getBackStackEntryCount() ==0) {
finish();
}else{
getFragmentManager().popBackStack();
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
你能解释一下这段代码是如何帮助实现问题中的要求的吗?我认为这个答案与我的要求无关:),但我会尝试。我不想在backbackback中添加特定的片段。但您说过,使用“null”参数将所有片段添加到backstack。