#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;
}