1
是否有可能以编程方式检测菜单何时溢出?如何检测菜单项溢出?
我的意图是让菜单项始终可见(SHOW_AS_ACTION_ALWAYS
),除非它会导致其他项溢出,在这种情况下,根本不显示菜单项。那就是:
if (overflowed) actionBarMenu.removeItem(id);
是否有可能以编程方式检测菜单何时溢出?如何检测菜单项溢出?
我的意图是让菜单项始终可见(SHOW_AS_ACTION_ALWAYS
),除非它会导致其他项溢出,在这种情况下,根本不显示菜单项。那就是:
if (overflowed) actionBarMenu.removeItem(id);
你不是说那里此菜单出现,所以我就放弃,你可以用工具栏做什么的例子。你需要做的是从Toolbar
获得参考ActionMenuView
,然后调用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;
}
这是原油和肮脏 - 我没有测试它 - 但它应该让你开始。