2

我有Base Activity包括NavigationView与2 menu items。在开始时,它会加载Home fragment,其中有background image。每个加载特定的fragment。当我选择条款&条件菜单项时,它会加载T & C fragment &当我按回按钮时,它只是简单地杀死它。为什么我需要按两次按钮才能第一次解散片段?

但是,当我选择关于我们菜单项时,它会加载关于我们fragment但我需要按两次BACK button来杀死它。我需要知道为什么会发生?码在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()。在fragments中没有编写代码。

+0

使用。新增的,而不是.replace装载片段,看看 – Redman

+0

你覆盖'onBackPressed()' –

+0

但是为什么它那么T&C片段的情况下工作? – VVB

回答

-2
@Override 
    public void onBackPressed() { 
    super.onBackPressed();  
} 
+0

简要说明可能对OP有用。 – Nevertheless

0

如果需要,您可以停止硬件导航。

只需用onBackPressed()super.onBackPressed()

@Override 
public void onBackPressed() { 

} 
相关问题