我也有類似的問題,在我的case getFragmentManager()。getBackStackEntryCount()總是返回零。
我的問題是我一直在使用支持片段:
Fragment fragment = new MyFragment();
// note getSupportFragmentManager() instead getFragmentManager()
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame, fragment)
.addToBackStack(null)
.commit();
fragmentManager.executePendingTransactions();
,我已經檢查getFragmentManager() backStackEntryCount,它總是返回零(它使用另一個片段經理):
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
}
}
而不是getSupportFragmentManager,它返回正確的數字:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack();
}
}
希望它有幫助!
bool init的值是什麼? – Arvis
無論真假,它始終爲零。 – beiliubei