私は3つのフラグメントを持っていますが、最初にフラグメント1をロードしてからフラグメント2をロードし、バックボタンを押したときにフラグメント1と2が連結されます。フラグメントが間違っている場合バックボタン
多分、私は新しい断片のために最後の断片を破壊しなければなりません。この問題を解決するにはどうすればよいですか?ありがとう。背面のフラグメント、あなたに押されて、そこにあなたのコードを入れオーバライド
私は3つのフラグメントを持っていますが、最初にフラグメント1をロードしてからフラグメント2をロードし、バックボタンを押したときにフラグメント1と2が連結されます。フラグメントが間違っている場合バックボタン
多分、私は新しい断片のために最後の断片を破壊しなければなりません。この問題を解決するにはどうすればよいですか?ありがとう。背面のフラグメント、あなたに押されて、そこにあなたのコードを入れオーバライド
。
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);
}
次の可能な条件を確認して下さい....
あなたが使用しているフラグメントの方法を確認し、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();
}
を確認することができます