我正在通过另一个片段打开一个片段。我从日历片段中打开一个搜索片段,我希望当这个人在搜索片段中并按下后,它会将他们带到日历片段,而不是关闭应用程序。
在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);
}
有没有一种方法可以只改变该片段的行为,并保持其余片段的正常行为?