2016-09-21 64 views
0

我有兩個Activities和每個有3-4個Fragments,每個替換另一個。按回最後一個片段顯示空白活動前不久前活動

Activity1Fragment2啓動第二個活動,Activity2Fragment1啓動並onBackPressed關閉Activity2並回到Activity1爲正常。

當我啓動Activity2Activity1Fragment3不過,我想補充Fragment2到第二個活動,這是通過錐在onCreate方法來完成。

但是,當後退按鈕被按下時,片段消失一秒鐘,屏幕上留下空白,然後關閉Activity2,導致視覺干擾。

有沒有什麼我可以做的關閉Activity2確切的時刻(至少在相同的視覺時刻),當Fragment2被後退按鈕關閉?

謝謝。 PS:不將片段添加到backStack似乎立即關閉活動,這是第一種情況(預期行爲)發生的情況,但是在向backStack添加片段時(根據需要在第二種情況下進行正確操作案例)產生故障。

回答

0

好吧,經過backStack多日的戰鬥後,我決定跳過它,因爲它似乎沒有正常工作,或者我不理解它。

我這樣做的方式是在我的活動的onBackPressed我檢查哪個片段顯示,如果它應該是最後一個(多個是「最後一個」)我只是finish()活動。

@Override 
public void onBackPressed() { 

    MyFragment myFragment = (MyFragment)fragmentManager.findFragmentByTag("MyFragment"); 
    if (myFragment != null && myFragment .isVisible()) { 
     //if myFragment is visible when the back button is pressed... 
     finish(); 
    } else { 
     super.onBackPressed(); 
    } 
} 

不要忘了在FragmentManager transaciton給你的片段的名稱。在我的情況下,它是"MyFragment"