【发布时间】:2018-03-09 06:24:55
【问题描述】:
我的后台堆栈上有fragmentA,屏幕上有fragmentB。我想用fragmentC替换fragmentB,这样当用户按下时,我们回到fragmentA。这就是我用fragmentC替换fragmentB的方式
final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content_container, fragment);
transaction.commitAllowingStateLoss();
这就是我处理后按的方式
final FragmentManager fm = getSupportFragmentManager();
if (fm.getBackStackEntryCount() != 0) {
fm.popBackStackImmediate();
} else {
super.onBackPressed();
}
用fragmentC替换fragmentB后,当按下后退按钮时fragmentA会显示,但fragmentC仍然在屏幕上可见,这给了我一些非常奇怪的UI。有谁知道为什么会这样??
【问题讨论】:
-
可以向我们展示完整的代码,您在其中为“片段”等赋值。你是在使用带有标签视图还是抽屉视图的片段?
标签: java android android-fragments android-lifecycle fragment-backstack