获取行动项目位置

时间:2013-03-20 13:53:02

标签: android android-actionbar

我想在我的应用程序中有一个教程,它将弹出窗口,描述如何与界面/菜单进行交互。

是否有办法在代码中确定哪些操作项可见以及它们位于何处。我想要弹出窗口指向他们。

还有一种简单的方法可以确定是否有溢出按钮?我想我可能不得不检查硬件菜单按钮。

1 个答案:

答案 0 :(得分:0)

好吧,我会被诅咒,尽管MenuItem不是从View继承的,在引擎盖下它是一个视图,它的id可以像任何其他视图一样传递给findViewById()。

获得视图后,您可以使用getLocationOnScreen()

例如:

View menuItem = findViewById(R.id.menuItem );
int[] location = new int[2];
menuItem.getLocationOnScreen(location);

显然,鉴于行动项目的可见性不可靠,你必须小心这一点。

这是我的菜单解决方法:

boolean hasMenu = false;
if (Utils.hasIceCreamSandwich())
    hasMenu = ViewConfiguration.get(this).hasPermanentMenuKey();
else
    hasMenu = Build.VERSION.SDK_INT <= 10;