android中PopupMenu的使用

PopupMenu可以非常方便的在指定view的下面显示一个弹出菜单,类似于actionbar溢出菜单的效果。它的菜单选项可以来自于menu资源,因此非常方便。下面是在网上找的一个PopupMenu的运行图片。

使用方法

res/menu下面新建 popup_menu.xml

1
2
3
4
5
6
7
8
9
10
11
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools">
<item
android:id="@+id/special_topic"
android:title="专题"/>

<item
android:id="@+id/elite"
android:title="精选"/>

</menu>

在activity或者fragment中使用PopupMenu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
final  ImageButton moreMenu = (ImageButton)v.findViewById(R.id.more_menu);
moreMenu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v){
PopupMenu popup = new PopupMenu(getActivity(), moreMenu);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());

//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {

return true;
}
});

popup.show(); //showing popup menu
}
});

其中MoreMenu是一个按钮,由他触发PopupMenu的显示。