pcu*_*pcu 47 android popupmenu android-actionbar
我有一个ActionBar
行动项目.单击操作项后,我想显示一个弹出菜单.我实现了这个方法,但是我希望将它锚定到操作项或者ActionBar
布局中的任何视图.如何获得某种视图来锚定它MenuItem
?
public boolean onOptionsItemSelected(MenuItem item) {
PopupMenu popupMenu = new PopupMenu(this, ??????); // What view goes here?
popupMenu.inflate(R.menu.counters_overflow);
popupMenu.show();
// ...
return true;
}
Run Code Online (Sandbox Code Playgroud)
pcu*_*pcu 115
最后我找到了解决方案.当您想要在ActionBar中将popupmenu锚定到ActionItem时,您需要找到呈现ActionItem的视图.使用findViewById()查找简单查看视图,其中id与xml中菜单项的id相同.
显示POPUP:
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;
}
Run Code Online (Sandbox Code Playgroud)
菜单:
<?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>
Run Code Online (Sandbox Code Playgroud)
如果菜单项不可见(溢出)则不起作用.findViewById返回null,因此您必须检查此情况并锚定到另一个视图.
归档时间: |
|
查看次数: |
43769 次 |
最近记录: |