我尝试使用 Imagebutton 关闭当前片段。
我在 Fragment-A 中,当我单击按钮时它会转到 Fragment-B。
当我点击 Fragment-B 的按钮时,它会转到 Fragment-C 并关闭 Fragment-B。
如果我单击 Fragment-C 的后退按钮,它将返回到 Fragment-A。
我尝试过的代码如下
camera_album = (ImageButton) view.findViewById(R.id.camera_album);
camera_album.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
closefragment();
Fragment fragment = FileBrowserFragment.newInstance(null, null, null) ;
MainActivity.addFragment(LocalFileBrowserFragment.this, fragment) ;
}
});
private void closefragment() {
getActivity().getFragmentManager().beginTransaction().remove(this).commit();
}
当我单击 fragment-B 的后退按钮时,它会转到 Fragment-C。
但是当我单击 Fragment-C 上的后退按钮时,它不会返回到 Fragment-A。它回到空的背景。如果我想返回 Fragment-A ,我必须再次单击返回按钮。
所以,它似乎没有关闭当前的片段完整。
如何像 Android 的后退按钮一样完成当前片段?
原文由 Wun 发布,翻译遵循 CC BY-SA 4.0 许可协议
从片段 A 转到 B,将 A 替换为 B 并在 —
addToBackstack()
commit()
。现在从 Fragment B 转到 C,首先使用
popBackStackImmediate()
,这将带回 A。现在将 A 替换为 C,就像第一个事务一样。