如果添加了 childFragment,我正在尝试在 childFragmentManager 上弹出BackStack,但是当我检查 getChildFragmentManager.getBackStackEntryCount() 是否 > 0 时,它总是错误的。关于这个问题有什么建议吗?
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() < 2) {
this.finishAffinity();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
} else {
FragmentManager fm = getSupportFragmentManager();
for (Fragment frag : fm.getFragments()) {
FragmentManager childFm = frag.getChildFragmentManager();
Log.i("RAZZZVI", "Number " + childFm.getBackStackEntryCount());
if (childFm.getBackStackEntryCount() > 0) {
childFm.popBackStackImmediate();
return;
} else {
getSupportFragmentManager().popBackStackImmediate();
}
}
}
}
这就是我添加片段的方式
layout_chart1.setOnClickListener {
child_fragment_container.visibility = View.VISIBLE
val transaction = childFragmentManager.beginTransaction()
transaction.addToBackStack(null)
.setCustomAnimations(R.anim.pull_in_right, R.anim.push_out_right)
.add(R.id.child_fragment_container, PieChartDetails(chartsViewModel), "STATUS_DETAILS")
.commit()
}
layout_chart2.setOnClickListener {
child_fragment_container.visibility = View.VISIBLE
val transaction = childFragmentManager.beginTransaction()
transaction.addToBackStack(null)
.setCustomAnimations(R.anim.pull_in_right, R.anim.push_out_right)
.add(R.id.child_fragment_container, BarChartDetails(chartsViewModel))
.commit()
}