обратный стек и обратное нажатие с использованием фрагмента и активности Android

#android #android-activity #fragment

#Android #android-активность #фрагмент

Вопрос:

Я использовал 3 фрагмента в одном действии, используя framelayout из 3-го фрагмента, он должен перейти к одному действию, затем при обратном нажатии этого действия он должен перенаправляться на этот 3-й фрагмент, а при обратном нажатии с 3-го фрагмента он должен перенаправляться на 1-й фрагмент без пустого экрана? . я получил пустой экран и зацикливание

Комментарии:

1. Используете ли вы fragmentManager.addToBackstack() при добавлении нового фрагмента на экран?

2. Пожалуйста, опубликуйте XML и код действия

Ответ №1:

Переопределите onBackPressed() и обработайте замену внутри.

 @Override
public void onBackPressed() {

  //Check current fragment 
  Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
  if(f instanceof FragmentThird) {

  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

  // Replace whatever is in the fragment_container view with this fragment,
  // and add the transaction to the back stack if needed
  transaction.replace(R.id.fragment_container, fragmentFirst);
  transaction.addToBackStack(null);

  // Commit the transaction
  transaction.commit();
  }
  return;
  

}