2017-08-27 61 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(); 
}