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. 显示弹出窗口
- 5. iPhone:MKAnnotation显示弹出窗口?
- 6. 如何显示其他弹出窗口上的弹出窗口?
- 7. asp.net - 弹出窗口显示弹出窗口
- 8. Flex弹出窗口:堆栈溢出?
- 9. 如何检查MIUI中的显示弹出窗口(WindowManager)权限?
- 10. 检查MenuItem是否在ActionBar溢出
- 11. 显示CD的弹出窗口
- 12. 弹出窗口中的显示视图
- 13. 显示弹出中心的新窗口
- 14. 显示iframe之外的弹出窗口?
- 15. 弹出窗口:当弹出弹出窗口时关闭弹出
- 16. 如何显示验证弹出窗口之类的弹出窗口?
- 17. 检查窗口是否弹出关闭
- 18. 检查一个弹出窗口关闭
- 19. 检查弹出窗口是否存在
- 20. 如何检查Firefox WebExtension弹出窗口?
- 21. 在webgrid中显示弹出窗口
- 22. 显示弹出式窗口使用AppleScript
- 23. JQuery - 仅显示弹出窗口一次
- 24. JavaScript弹出窗口只显示一次
- 25. jquery移动弹出窗口不显示。
- 26. 在iOS中显示弹出窗口
- 27. 如何显示弹出窗口
- 28. 在c#中显示弹出窗口.net
- 29. jQuery弹出式窗口单独显示$?
- 30. 在弹出窗口中显示结果
你真的帮了我。谢谢! – kirik88
@ kirik88来搞清楚,我完全忽略了'Activity.onMenuOpened'和'Activity.onPanelClosed'。你不需要使用反射,我更新了我的答案。 – adneal
哦,谢谢!该方法是更优选的。 – kirik88