我有 Base Activity
,包括带有 2 个 menu items
的 NavigationView
。开始时,它会加载 Home fragment
,其中包含 background image
。每个加载特定的 fragment
。当我选择 Terms & Conditions 菜单项时,它会加载 T&C fragment
并且当我按下后退按钮时它会简单地杀死它。
但是,当我选择“关于我们”菜单项时,它会加载“关于我们” fragment
,但我需要按 BACK 按钮
两次才能终止它。我需要知道为什么会这样?
AppBaseActivity
中的部分代码
@Override
protected void onCreate(Bundle savedInstanceState) {
fragmentManager = getSupportFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
HomeFragment homeFragment = new HomeFragment();
fragmentTransaction.add(R.id.body_container, homeFragment, "");
fragmentTransaction.commit();
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
navigationView.getMenu().findItem(item.getItemId()).setChecked(true);
switch (item.getItemId()) {
case R.id.nav_terms :
fragmentTransaction = fragmentManager.beginTransaction();
TCFragment tcFragment = new TCFragment();
fragmentTransaction.replace(R.id.body_container, tcFragment, "");
fragmentTransaction.commit();
break;
case R.id.nav_about_us :
fragmentTransaction = fragmentManager.beginTransaction();
AboutUsFragment aboutUsFragment = new AboutUsFragment();
fragmentTransaction.replace(R.id.body_container, aboutUsFragment, "");
fragmentTransaction.commit();
break;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
All fragments
仅通过膨胀受尊重的 xml 简单地覆盖了 onCreateView()
。两个 fragment
中都没有编写代码。
最佳答案
如果需要,您可以停止返回硬件导航。
简单地使用 onBackPressed()
没有 super.onBackPressed()
@Override
public void onBackPressed() {
}
关于android - 为什么我需要按两次后退按钮才能在第一次关闭 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460249/