2013-03-20 96 views
0

我想在我的應用程序中有一個教程,該教程將彈出描述如何與界面/菜單交互的窗口。獲取操作項目位置

有沒有一種方法可以在代碼中確定哪些操作項可見,以及它們的位置。我希望彈出窗口指向他們。

還有一種簡單的方法來確定是否有溢出按鈕?我想我可能不得不檢查硬件菜單按鈕。

+0

在API級別14以上,你可以用'ViewConfiguration.hasPermanentMenuKey()'通知,如果有一個硬件菜單鍵。 – Karakuri 2013-03-20 13:56:42

+0

是啊,我希望避免設備的假設徘徊API <14.任何人有任何想法的ActionItem位置? – Anthony 2013-03-20 14:06:23

回答

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;