2016-02-12 65 views
0

在我的應用程序中,我使用的是一個主要活動,其中有一個導航抽屜,並且當用戶轉到抽屜中的選項時,它會相應地將選定的選項更改爲顯示的片段。如何知道所有碎片是否被分離?

如果用戶多次點擊「後退按鈕」,它將返回到它將到達我的主要活動的點,這是一個空白且空白的佈局。

當我到達這一點(我的主要活動,爲空)時,我想退出該應用程序,或打開導航抽屜。

問題是,我不知道任何事件顯示我回到主要活動。我檢查了onResume,但它從未被調用,這是有道理的,因爲主要活動從未停止過。

我想也許會有一個片段管理器的事件,當一個片段被分離時會在主要活動上調用,並且從那裏我可以檢查是否沒有連接片段?

回答

0

當你推動你的第一個片段時,向它添加一個標籤。像

transaction.replace(R.id.rootContainer, firstFragment, "rootFragment"); 

東西只要用戶按下後退按鈕,你可以從FragmentManager

讓你rootFragment
FirstFragment myFragment = (FirstFragment) getSupportFragmentManager().findFragmentByTag("rootFragment"); 

,並檢查該片段可見或不可見,通過myFragment.isVisible(),如果沒有,則繼續出棧,如果它是可見的,則表示用戶在第一個片段上。現在,您可以退出應用程序,或顯示菜單抽屜。

0

晚安好先生。感謝您的提示。 我使用了不同的方法,基於您的重新應用,這給了我不少見解。

在主要活動上,我重寫了onKeyDown並檢查它是否被按下後退按鈕。如果是,那麼我檢查我的Back Stack的大小。

Uppon,我決定是否要完成我的申請。

另外,感謝「貼標籤」背部堆棧上的碎片,我不知道我能做到這一點。

相關問題