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.
Verwendung .ADD statt .replace zum Laden Fragment und sehen – Redman
haben Sie außer Kraft setzen 'onBackPressed()' –
Aber warum funktioniert es bei T & C-Fragment dann? – VVB