2015-11-12 2 views
1

У меня есть активность с 2 фрагментами и ящиками. Поэтому, когда я нахожусь в фрагменте, я получаю значок «Вверх» вместо значка гамбургера (с помощью setDisplayHomeAsUpEnabled), но действие остается неизменным - navigation_drawer_open/close. Итак, как получить onBackPressed() вместо этого?Как использовать setDisplayHomeAsUpEnabled и фрагмент

И в соответствии с этим комментарием я не знаю, как обращаться с Home/Up самостоятельно, потому что «автоматически обрабатывает клики».

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
+0

Вы когда-нибудь это выясняли? – Plasma

ответ

0

Автоматическая обработка обычно работает только между видами деятельности. Поскольку вы используете фрагменты, вам может понадобиться обработать их вручную.

Вот пример того, как обращаться с нажатием кнопки «Назад».

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: // This is the home/back button 
       onBackPressed(); // Handle what to do on home/back press 
       break; 
     } 

     return false; 
    } 
+0

Я действительно пробовал это, но в моем случае похоже, что onOptionsItemSelected не выстрелил вообще, если я нажму кнопку home \ upp – SERG

0

Для этого необходимо использовать пользовательскую панель инструментов и вместо андроида меню используйте клавишу из этой библиотеки:
material-menu


В этой библиотеке вы можете изменить состояние для стрелка и повернуть -90 для показа Значок «Иконка» вместо значка «Бургер».

Смежные вопросы