Страница 1 из 1

Проблемы с меню в ActionBar

Добавлено: 16 ноя 2014, 12:53
Zammm
Добрый день, друзья!
Столкнулся с проблемой отображения меню в приложении. Потребовалось закрепить меню в ActionBar, с чем я успешно справился посредством следующего кода:
  • try {
    ViewConfiguration config = ViewConfiguration.get(this);
    Field menuKeyField = ViewConfiguration.class
    .getDeclaredField("sHasPermanentMenuKey");
    if (menuKeyField != null) {
    menuKeyField.setAccessible(true);
    menuKeyField.setBoolean(config, false);
    }
    } catch (Exception ex) {
    // Ignore
    }
Однако при нажатии на кнопку "свойства" на самом телефоне отображается выпадающее снизу меню, а при нажатии на меню в ActionBar появляется другое меню с теми же пунктами, только выпадающее сверху. По сути - у меня получилось два меню с одним содержанием... Как избавиться теперь от навязчивого меню снизу и заставить стандартной кнопкой телефона вызывать верхнее меню из ActionBar?

Re: Проблемы с меню в ActionBar

Добавлено: 19 ноя 2014, 11:56
Zammm
Ребят, проблему так и не решил, так что до сиз пор буду рад, если кто-то что-то сможет подсказать...

Re: Проблемы с меню в ActionBar

Добавлено: 19 ноя 2014, 13:28
Foenix
отформатируй код для читабельности тегами и добавь скриншоты

Re: Проблемы с меню в ActionBar

Добавлено: 19 ноя 2014, 15:19
klblk
1) google->"android hardware menu button override"->http://stackoverflow.com/questions/8137 ... enu-button
2) google->"android overflow menu open programmatically"->http://stackoverflow.com/questions/3133 ... mmatically

Итого (в нужной активити):
[syntax=java] @Override
public boolean onKeyDown(int keycode, KeyEvent e) {
switch(keycode) {
case KeyEvent.KEYCODE_MENU:
openOptionsMenu();
return true;
}

return super.onKeyDown(keycode, e);
}[/syntax]

Re: Проблемы с меню в ActionBar

Добавлено: 20 ноя 2014, 21:41
Zammm
Спасибо большое!! В простых одностраничных приложениях пошло! Но вот в приложении с табами всё-равно появляется два меню... и при нажатии на системную кнопку всплывает меню снизу...(((