1
A
回答
4
您可以覆盖Activity.onMenuOpened
和Activity.onPanelClosed
以确定何时显示溢出菜单或其他子菜单,如ShareActionProvider
。这里有一个例子:
/** True if an options menu has been opened, false otherwise */
private boolean mMenuOpened;
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
mMenuOpened = true;
return super.onMenuOpened(featureId, menu);
}
@Override
public void onPanelClosed(int featureId, Menu menu) {
super.onPanelClosed(featureId, menu);
mMenuOpened = false;
}
或者
ActionBarView
子AbsActionBarView
包含AbsActionBarView.isOverflowMenuShowing
。由于这些课程是内部和隐藏的,您需要通过反射访问它。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final int actionBarViewId = getResources().getIdentifier("action_bar", "id", "android");
final View actionBarView = findViewById(actionBarViewId);
actionBarView.postDelayed(new Runnable() {
@Override
public void run() {
System.out.println(isOverflowMenuShowing(actionBarView));
}
}, 2500);
}
private static boolean isOverflowMenuShowing(View actionBarView) {
try {
final Class<?> abv = Class.forName("com.android.internal.widget.ActionBarView");
final Method isOverflowShowing = abv.getMethod("isOverflowMenuShowing", new Class[] {});
return (boolean) isOverflowShowing.invoke(actionBarView, new Object[] {});
} catch (final Exception ignored) {
// Nothing to do
}
return false;
}
相关问题
- 1. 弹出窗口不显示
- 2. 弹出窗口不显示
- 3. 显示弹出窗口
- 4. iPhone:MKAnnotation显示弹出窗口?
- 5. 如何显示其他弹出窗口上的弹出窗口?
- 6. asp.net - 弹出窗口显示弹出窗口
- 7. Flex弹出窗口:堆栈溢出?
- 8. 检查MenuItem是否在ActionBar溢出
- 9. 显示iframe之外的弹出窗口?
- 10. 显示CD的弹出窗口
- 11. 弹出窗口中的显示视图
- 12. 显示弹出中心的新窗口
- 13. 弹出窗口:当弹出弹出窗口时关闭弹出
- 14. 检查一个弹出窗口关闭
- 15. 在c#中显示弹出窗口.net
- 16. 如何显示弹出窗口?
- 17. 在弹出窗口中显示viewpager
- 18. 如何显示弹出窗口
- 19. jquery移动弹出窗口不显示。
- 20. jsf + richfaces弹出窗口不显示
- 21. UIActionSheet不显示在弹出窗口
- 22. 在弹出窗口中显示UISplitViewController
- 23. 显示一个模态弹出窗口
- 24. HTML弹出窗口不显示
- 25. 在弹出窗口中显示html
- 26. 在弹出窗口中显示结果
- 27. 使用Fancybox显示弹出窗口div
- 28. Android Webview不显示弹出窗口
- 29. 在webgrid中显示弹出窗口
- 30. 在Python中显示弹出窗口(PyQt4)
你真的帮了我。谢谢! – kirik88
@ kirik88来搞清楚,我完全忽略了'Activity.onMenuOpened'和'Activity.onPanelClosed'。你不需要使用反射,我更新了我的答案。 – adneal
哦,谢谢!该方法是更优选的。 – kirik88