我想在我的应用程序中有一个教程,它将弹出描述如何与界面/菜单交互的窗口。
有没有办法在代码中确定哪些操作项是可见的以及它们的位置。我希望弹出窗口指向它们。
还有一种简单的方法可以确定是否有溢出按钮?我想我可能不得不检查硬件菜单按钮。
我想在我的应用程序中有一个教程,它将弹出描述如何与界面/菜单交互的窗口。
有没有办法在代码中确定哪些操作项是可见的以及它们的位置。我希望弹出窗口指向它们。
还有一种简单的方法可以确定是否有溢出按钮?我想我可能不得不检查硬件菜单按钮。
好吧,我会被诅咒的,尽管 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;