按後退按鈕這是我的代碼:不改變片段堆棧中的大小,當我在Actvity
FragmentManager fragmentManager = getSupportFragmentManager();
try {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commitAllowingStateLoss();
} catch (Exception e) {
e.printStackTrace();
}
當我加入了第一個片段,我的方法getSupportFragmentManager().getBackStackEntryCount()
返回0
當我加入第二個片段getBackStackEntryCount()
返回1,但是當我按下後按鈕getBackStackEntryCount()
仍然返回1.
爲什麼?
UPD -
@Override
public void onBackPressed() {
super.onBackPressed();
updateToolbar(); // here I check backstackCount and update Toolbar
}
UPD2 -
private void updateToolbar() {
if (getSupportFragmentManager().getBackStackEntryCount()() > 0) {
showBackButtonOnToolBar();
} else {
showProfileButtonOnToolBar();
}
}
你可以發佈你的'onBackPressed'方法嗎? –
你爲什麼使用'commitAllowingStateLoss'? –
@AlexKlimashevsky完成 – Artem