Как вернуться к основной активности, когда я нажимаю кнопку? - PullRequest
0 голосов
/ 29 декабря 2018
Override
public void onBackPressed(){
  if(drawer.isDrawerOpen(GravityCompat.START)){
      drawer.closeDrawer(GravityCompat.START);
  }else {
      super.onBackPressed();
  }
}

У меня есть навигационный ящик с некоторыми предметами и фрагментами.Когда я нажимаю на Предмет, очевидно, открываю фрагмент, но как, когда какой-либо фрагмент открыт, кнопка возвращается к макету mainacctivity?

Ответы [ 3 ]

0 голосов
/ 29 декабря 2018

Вы также можете попробовать это в самом MainActivity:

@Override
 public void onBackPressed() {
     if(getFragmentManager().getBackStackEntryCount() > 0) {
         getFragmentManager().popBackStack();
     } else if(drawer.isDrawerOpen(GravityCompat.START)){
         drawer.closeDrawer(GravityCompat.START);
     } else {
         super.onBackPressed(); 
     } 
 }
0 голосов
/ 29 декабря 2018

вы должны вручную поддерживать весь фрагмент в mainActivity Backpressed (), вы можете найти, какой фрагмент открыт сейчас, с помощью этого старшего вы можете заменить основной фрагмент на backButton.

0 голосов
/ 29 декабря 2018

Если вы определяете кнопку возврата внутри фрагмента и обрабатываете с использованием класса фрагмента.Вы можете использовать это:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {
    // do something
    return true;  // return true if back handled, false otherwise
}

return super.onKeyUp(keyCode, event);
}
...