Как создать меню опций в activity_main.xml? - PullRequest
0 голосов
/ 09 сентября 2018

Я пытался показать меню параметров в панели действий Activity_main.xml, поэтому я захожу в папку значений, а затем создаю меню и пишу этот код в MainActivity.kt

.
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.main_menu, menu)
    return true

Если я запускаю это приложение на экране устройства 5.0, тогда на панели приложений отображаются 3 точки и работает нормально, но если я запускаю это приложение на меньшем экране, например 4,0 дюйма или меньше, чем 5,0, то меню 3 точек не отображается на панели приложений, но все еще работает, если я нажмите кнопку меню в функциональных клавишах. Почему это меню выходит за пределы экрана на меньшем экране. Я думаю, что забыл что-то написать или создать.

1 Ответ

0 голосов
/ 09 сентября 2018

Устройства с меньшим экраном в версии Android под KitKat? В более старых версиях по умолчанию не будет отображаться трехточечное меню в панели действий, если они имеют либо кнопку аппаратного меню, либо панель программного обеспечения с возможностью отображения кнопки меню.

Также возможно, что на меньшем экране может не хватить места для отображения кнопки на панели действий, и при этом все равно будут отображаться заголовок и потенциальные элементы кнопки NavigationDrawer.

Если вы хотите, чтобы он отображался на всех устройствах, прочитайте это . По сути, вам нужно добавить следующее к вашему onCreate() методу:

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

Кажется, я помню, что есть атрибут темы, который вы можете определить в своей AppTheme, но я не могу его найти.

...