我有片段A和將片段B添加到同一個容器中(不能代替)。我也在這個backstack上添加了這個事務。現在,當按下設備後,片段B將被刪除,片段A將變爲可見。當片段A變得可見時,我想做點什麼。我搜查了很多,但找不到有用的東西。如何確定是否刪除了其他片段頂部的片段
注 - 我不想添加backstackchangelistner並在該片段上調用onResume。
我有片段A和將片段B添加到同一個容器中(不能代替)。我也在這個backstack上添加了這個事務。現在,當按下設備後,片段B將被刪除,片段A將變爲可見。當片段A變得可見時,我想做點什麼。我搜查了很多,但找不到有用的東西。如何確定是否刪除了其他片段頂部的片段
注 - 我不想添加backstackchangelistner並在該片段上調用onResume。
您可以覆蓋片段中的onHiddenChanged(boolean hidden)
。
這將被顯示/隱藏時調用。
我在我的應用程序中使用相同的方法,其中我添加一個片段並隱藏舊的片段,然後在用戶按下Back時使用onHiddenChanged回調,並再次顯示舊片段。
As you have 2 entries in Back stack, you can check back stack count on
Back Pressed method.
FragmentManager mFragmentManager = getSupportFragmentManager();
int count= mFragmentManager.getBackStackEntryCount();
if(count==1){
// do your work
}
你可以嘗試
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
}
或
`fragment.isVisible();`
正如我所說的,我已經添加片段,而不是替代。我認爲,onHiddenChaged被替換時被調用。 – Virat18