2015-04-01 3 views
2

Кажется, что люди, использующие устройства с аппаратной кнопкой меню с меньшим количеством Android Kitkat, по-прежнему не получают кнопку меню на экране, даже с новым апплетом r21/r22 библиотека.appcompat-v7 r21/r22: значок меню переполнения приложения показать

Я предполагаю, что это определяется внутренним ActionBarPolicy класса:

public boolean showsOverflowMenuButton() { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     return true; 
    } else { 
     return !ViewConfigurationCompat.hasPermanentMenuKey(ViewConfiguration.get(mContext)); 
    } 
} 

кнопки так вынужденное меню переполнения только на KitKat и выше.

Есть ли способ заставить меню переполнения отображаться, даже если приложение работает на устройствах, не превышающих KitKat, с кнопкой меню оборудования?

+0

Генеральный консенсус в том, что вы должны просто дать ОС определить, нужно ли это показывать, и что это плохая практика, чтобы заставить меню переполнения, если устройство имеет кнопку меню аппаратного обеспечения. Однако в этом посте есть ответ: http://stackoverflow.com/a/15493649/4409409 Я не тестировал его, поэтому не уверен, работает ли он. –

ответ

0

В appcomt библиотеке поддержки, использовать свои собственную панель инструментов (которые надувают из XML или созданные из кода) заменить по умолчанию ActionBar (в вашем ActionbarActivity вызова setSupportActionar(toolbar)), вы увидите меню переполнения (если вы настроил меню).

тест на android 2.3.x эмулятор.

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