Я открываю фрагмент через другой фрагмент. Из фрагмента календаря я открываю фрагмент поиска, мне бы хотелось, чтобы, когда человек находился во фрагменте поиска и давил назад, он переводил их во фрагмент календаря, а не закрывал приложение.
В моей MainActivity. java Я реализовал метод onBackPressed
@Override
public void onBackPressed() {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
Так я открываю фрагменты в MainActivity. java
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_calendar:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new CalendarFragment()).commit();
break;
case R.id.nav_survey:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new SurveyFragment()).commit();
break;
case R.id.nav_forum:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new ForumFragment()).commit();
break;
case R.id.nav_logout:
logout();
break;
case R.id.nav_contact:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new ContactFragment()).commit();
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
Вот так я открываю поисковый фрагмент из фрагмента календаря
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.search:
getFragmentManager().beginTransaction().replace(R.id.fragment_container, new SearchFragment()).commit();
return false;
default:
break;
}
return super.onOptionsItemSelected(item);
}
Есть ли способ изменить поведение только для этого фрагмента и сохранить нормальное поведение для остальных?