#android #android-layout
#Android #android-макет
Вопрос:
Возможно ли программно определить, когда меню переполнено?
Я намерен, чтобы пункт меню всегда был видимым ( SHOW_AS_ACTION_ALWAYS
), за исключением случая, когда это приведет к переполнению других элементов, и в этом случае вообще не показывайте пункт меню. То есть:
if (overflowed) actionBarMenu.removeItem(id);
Ответ №1:
Вы не говорите, где появляется это меню, поэтому я просто приведу пример того, что вы можете сделать с помощью панели инструментов. Что вам нужно сделать, это получить ссылку на ActionMenuView
из Toolbar
, а затем вызвать isOverflowMenuShowing
ее, что-то вроде этого:
private boolean isOverflowShowing(Toolbar toolbar) {
if(toolbar == null) {
return false;
}
for(int i = 0; i < toolbarView.getChildCount(); i ) {
View v = toolbarView.getChildAt(i);
if(v instanceof ActionMenuView) {
return ((ActionMenuView)v).isOverflowMenuShowing();
}
}
return false;
}
Это грубо и грязно — и я не тестировал его — но это должно помочь вам начать.