2017-08-27 4 views
2

私は3つのフラグメントを持っていますが、最初にフラグメント1をロードしてからフラグメント2をロードし、バックボタンを押したときにフラグメント1と2が連結されます。フラグメントが間違っている場合バックボタン

多分、私は新しい断片のために最後の断片を破壊しなければなりません。この問題を解決するにはどうすればよいですか?ありがとう。背面のフラグメント、あなたに押されて、そこにあなたのコードを入れオーバライド

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(); 
} 
を確認することができます
関連する問題