我尝试通过按下按钮将片段替换为另一个片段。 这是 android 4.1.2 上的 Successfull ,但 失败 > android 4.0.4 代码是:
if(f13!=null)
{
transaction.remove(f13);
transaction.replace(R.id.place,f10,"f10");
transaction.commit();
}
其中f13和f10是片段。 我添加了这个声明:
transaction.addBackstack(null);
transaction.replace(R.id.place,f10,"f10");
transaction.commit();
应用程序正在运行,但当我在移动设备中点击后退按钮返回f13时,片段f10在 f13下显示。 我希望当我点击后退按钮关闭应用程序。
答案 0 :(得分:0)
让我说清楚,您想要管理 backstack ,以便当您点击后退按钮时,您的应用应该关闭。对于该问题,请使用FragmentManager类的 popBackStack 方法。使用伪代码的代码示例:
Fragment newFragment = new ExampleFragment(); // "f10" fragment
FragmentManager manager = getActivity().getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.place,f10, newFragment);
transaction.commit();
manager.popBackStack();
如果要删除堆栈中的所有项目:
manager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
我从未尝试过POP_BACK_STACK_INCLUSIVE。请让我们发布。祝你好运,Tommy Kwee