Как сделать overflow-кнопку в ActionBar видимой на всех устройствах

Рейтинг: 2Ответов: 3Опубликовано: 24.03.2015

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

Была мысль сделать костыль: добавить item и дать свойство отображения always, но думаю, что в какой-то момент таких кнопок будет две на экране.

Ответы

▲ 2Принят

Я таким костылём пользуюсь и ничего - не замечал дублирования кнопки. Оно может возникнуть, если я не ошибаюсь, если вы некоторым item (на одном уровне с костыльной кнопкой) выставите значение ifroom и им не хватит места.

▲ 2

Если вам нужно отображать всегда Overflow, то просто задайте всем элементам меню

howAsAction="never"
▲ 1

Этот код лучше всего вставить в onCreate() своего Application.

 try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if (menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }