2015-11-07 48 views
0

我在橫向模式下有2個片段,而縱向上有1個片段。我正在通過xml方法加載所述片段。無論如何,我正在檢查第一個活動中第二個片段的存在,並啓動第二個片段的活動或直接在第二個片段上調用一個方法。一切正常,但是,當用戶最初旋轉(創建兩個片段)然後旋轉回來時,我對第二個片段的檢查現在不爲空,並且在添加到後臺堆棧時打破邏輯。Android +阻止帶片段xml的addToBackStack?

如何解決這個問題?我是否需要從onPause()中的歷史堆棧中刪除片段?或者可能阻止第二個片斷以某種方式被添加到後臺堆棧中。

FirstActivity:

public void onClick(View view) {  
    SecondFragment secondFragment = (SecondFragment) getSupportFragmentManager().findFragmentById(R.id.second_fragment); 

    if (secondFragment != null) { // * this will no longer be not null after rotating 
     // two pane layout : update second fragment 
     secondFragment.updateSecondFragmentView(); 
    } else { 
     // one pane layout : start second activity 
     Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 

     startActivity(intent); 
    } 
} 

SecondFragment:你建議嗎?

@Override 
public void onPause() { 
    super.onPause(); 

    FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 

    fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 
} 

回答

0
if (secondFragment != null && secondFragment.isVisible()) { 
    // two pane layout : update second fragment 
    secondFragment.updateSecondFragmentView(); 
} 

這似乎很好地工作,我的情況。