FragmentTransaction 什么时候调用 show 方法?

when FragmentTransaction call show method?

我想要片段 A 到片段 B 的过渡。 片段A交易代码为

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.hide(this);
ft.add(R.id.front_side_container , detail);
ft.addToBackStack(null);
ft.commit();

在片段 A 代码中,ft.hid(this) <- 我隐藏片段 A

片段 B 中的代码

getFragmentManager().popBackStack();

popBackStack()的时候,我不打FrangmentTransaction.show()

但是片段A出现了。为什么?我不叫show()

执行popBackStack()时自动调用show()是否正确?

当您调用 'popBackStack()' 时,Fragment 框架将自动处理显示后台堆栈中的最后一个元素,所以是的,它是 100% 正确的。

如果你调用了.hide(),它会调用.show(),如果你没有调用.hide()(意味着旧片段被销毁),它会创建一个全新的片段并显示那。