我想在我的应用程序中有一个教程,它将弹出窗口,描述如何与界面/菜单进行交互。
是否有办法在代码中确定哪些操作项可见以及它们位于何处。我想要弹出窗口指向他们。
还有一种简单的方法可以确定是否有溢出按钮?我想我可能不得不检查硬件菜单按钮。
答案 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;