2

Ich habe Base Activity einschließlich NavigationView mit 2 menu items. Beim Start lädt es Home fragment mit background image drin. Jede lädt spezifische fragment. Wenn ich Bedingungen & Bedingungen Menüartikel wähle, lädt es T & C fragment &, wenn ich Knopf zurückdrücke, es tötet es einfach.Warum muss ich die Taste zweimal drücken, um das Fragment beim ersten Mal zu entfernen?

Allerdings, wenn ich Über uns Menüpunkt auswählen, lädt es Über uns fragment aber ich brauche zweimal drücken BACK button, um es zu töten. Ich muss wissen, warum passiert das?

Teil des Codes in 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 einfach haben onCreateView() außer Kraft gesetzt, indem nur respektiert xml aufpumpen. In beiden fragments ist noch kein Code geschrieben.

+0

Verwendung .ADD statt .replace zum Laden Fragment und sehen – Redman

+0

haben Sie außer Kraft setzen 'onBackPressed()' –

+0

Aber warum funktioniert es bei T & C-Fragment dann? – VVB

Antwort

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

Eine kurze Erklärung könnte für OP nützlich sein. – Nevertheless

0

Sie können Hardware-Navigation stoppen, wenn Sie möchten.

einfach mit onBackPressed() ohne super.onBackPressed()

@Override 
public void onBackPressed() { 

} 
Verwandte Themen