我有一个菜单,其中所有项目的showAsAction
设置为ifRoom
。 现在,我想获取任何这些菜单项中心的确切位置(x,y)。
我最初想从底层视图获取此信息,但我不知道如何可靠地访问特定菜单项的视图。
在onCreateOptionsMenu
中:
MenuItem someItem = menu.findItem(R.id.some_action);
// someItem.getX();
// someItem.getY();
我预计这些坐标是相对于应用程序的工具栏的。在这种情况下,我还需要访问
someItem.get{Width,Height}()
来计算中心坐标。一个示例菜单:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/ic_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView" />
<item
android:id="@+id/action_example"
android:title="@string/action_example"
android:icon="@drawable/ic_example"
app:showAsAction="ifRoom" />
</menu>