所以,终于让我找到解决方案。当你想在ActionBar中将弹出菜单定位到ActionItem时,你需要找到呈现ActionItem的视图。 使用findViewById()简单查找视图,其中id与xml中菜单项的id相同。
DISPLAYING跳出:
public boolean onOptionsItemSelected(MenuItem item) {
// ...
View menuItemView = findViewById(R.id.menu_overflow); // SAME ID AS MENU ID
PopupMenu popupMenu = new PopupMenu(this, menuItemView);
popupMenu.inflate(R.menu.counters_overflow);
// ...
popupMenu.show();
// ...
return true;
}
MENU:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
....
<item
android:id="@+id/menu_overflow"
android:icon="@drawable/ic_overflow"
android:showAsAction="ifRoom"
android:title="@string/menu_overflow"/>
....
</menu>
如果菜单项是不可见的(在溢出),这是行不通的。 findViewById返回null,因此您必须检查这种情况并将其锚定到另一个视图。
来源
2013-02-07 06:50:37
pcu
我在做类似的事情! http://stackoverflow.com/questions/16621070/get-context-of-popupmenu-like-contextmenu – toobsco42