2017-08-27 93 views
2

我有3片段,但是當第一次我加載片段一,然後片段二,當我按下後退按鈕,爲什麼片段一和二是concat?例如下面的圖片:片段錯誤當返回按鈕

也許,我必須銷燬新片段的最後一個片段。如何解決這個問題?謝謝。

bug view fragment

回答

0

在此改變在你按下片段回來,把你在那裏的代碼。

public class MyFragment extends BaseFragment { 

    /** 
    * Back pressed send from activity. 
    * 
    * @return if event is consumed, it will return true. 
    */ 
    @Override 
    public boolean onBackPressed() { 
    startActivity(new Intent(this, blabla.class)); 
    //or you could say finish(); 
    //or you could say moveTaskToBack(true); 

}

0

檢查下列可能的條件下,請....

  • 檢查你曾經使用過的片段的方法,replace or Add

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.replace(R.id.rlContainer, fragment); // replace the existing one 
    
  • 啓用backStack支持然後你在012上顯式加載同一個片段

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.replace(R.id.rlContainer, fragment); 
    //ft.addToBackStack(null); // will add to the fragment stack 
    ft.commitAllowingStateLoss(); 
    

如果您能backStack支持,你可以檢查計數

FragmentManager fm = getFragmentManager(); // or 'getSupportFragmentManager();' 
int count = fm.getBackStackEntryCount(); 
for(int i = 0; i < count; ++i) {  
    fm.popBackStack(); 
}