我的活动有片段A。单击某个视图时,我需要显示另一个片段B。
我通过以下方式显示片段(A)。
supportFragmentManager
.beginTransaction()
.replace(R.id.container, FragmentA(), "FragmentA")
.commit()
这就是我显示片段(B)的方式
supportFragmentManager.beginTransaction()
.add(R.id.container, FragmentB(), "FragmentB")
.addToBackStack("FragmentA")
.commit()
但是有时,当我多次打电话 showFragmentB() -> popBackStack()
片段(B)停止显示,但同时我在日志中看到{{1} }被调用,但片段未显示
答案 0 :(得分:0)
您应该改为执行此操作。替换下面的代码。
supportFragmentManager.beginTransaction()
.add(R.id.container, FragmentB(), "FragmentB")
.addToBackStack("FragmentA")
.commit()
使用此代码..它有效
supportFragmentManager
.beginTransaction()
.replace(R.id.container, FragmentB(), "FragmentB")
.addToBackStack("FragmentA")
.commit()
答案 1 :(得分:0)
在您的fragmentActivity中添加
jan 2019
答案 2 :(得分:0)
尝试
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
YOUR_FRAGMENT fragment3 = new YOUR_FRAGMENT ();
fragmentTransaction.replace(R.id.content_frame, fragment3);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
然后,如果需要返回,请按
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() == 1) {
moveTaskToBack(false);
}else {
super.onBackPressed();
}
}