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 просто заменяет onCreateView() раздувая только уважаемую XML. В коде fragments код еще не написан.

+0

использования .Добавьте вместо .Привернуть для загрузки фрагмента и увидеть – 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() { 

}