Как заставить использование переполнения меню на устройствах с помощью кнопки меню - PullRequest
158 голосов
/ 15 февраля 2012

Я бы хотел, чтобы все пункты меню, которые не вписывались в панель действий, переходили в меню переполнения (тот, который вызывается из панели действий, а не кнопка меню) даже на устройствах, которые do имеет кнопку меню .Это кажется гораздо более интуитивно понятным для пользователей, чем выбрасывание их в отдельный список меню, требующий от пользователя перехода от сенсорного (экранного) взаимодействия к взаимодействию на основе кнопок просто потому, что макет панели действий не помещается на панели.

В эмуляторе я могу установить значение «Аппаратная часть / Домашние ключи» на «нет» и получить этот эффект.Я искал способ сделать это в коде для фактического устройства, которое имеет кнопку меню, но не может точно.Кто-нибудь может мне помочь?

Ответы [ 11 ]

0 голосов
/ 01 сентября 2016

Для тех, кто использует новые Toolbar:

private Toolbar mToolbar;

@Override
protected void onCreate(Bundle bundle) {
    super.onCreate(bundle);

    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);

    ...
}


@Override
public boolean onKeyUp(int keycode, KeyEvent e) {
    switch(keycode) {
        case KeyEvent.KEYCODE_MENU:
            mToolbar.showOverflowMenu();
            return true;
        }

    return super.onKeyUp(keycode, e);
}
...