Android Menus II-Popup Menu和Menu Groups

概述:

Popup menu是挂靠在某一个View的菜单, 在点击View的时候可以弹出. 常见的应用场景有:

1.      未指定的内容指定一个弹出的菜单, 比如Gmail的弹出菜单:


相对于context menu, Popup menu并不影响选中的View. Contextmenu通常是对选中的View的操作.

2.      为某个操作提供更详细的操作.

3.      提供一个类似下拉菜单的操作.(好无聊..)

Popup menu只能用于API11及以上版本.

创建一个Popupmenu的步骤:

1.      实例化一个PopupMenu对象. 需要两个参数, 一个是Context, 另一个是需要悬靠的View. 它会在指定的View旁边出现.

2.      使用MenuInflater来加载菜单资源到PopupMenu.getMenu()返回的Menu对象中. 在API14及以上版本中我们可以使用PopupMenu.inflate()方法代替.

3.      调用PopupMenu.show()方法.

栗子, 首先创建一个button, Popup Menu响应这个button的点击事件:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_overflow_holo_dark"
    android:contentDescription="@string/descr_overflow_button"
    android:onClick="showPopup"/>

然后在Activity中实现show:

public void showPopup(View v){
    PopupMenu popup = new PopupMenu(this, v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.actions, popup.getMenu());
    popup.show();
}

Menu将会在用户点击某个item或者点击菜单外的区域的时候消失, 我们可以通过PopupMenu.OnDismissListener()方法来监听这一事件.

 

处理Popup Menu的点击事件:

跟所有的点击事件差不多, 我们需要通过监听器监听点击事件. 监听器是PopupMenu.OnMenuItemClickListener, 可以通过PopupMenu的setOnMenuItemclickListener()方法来设置这一事件. 当用户点击某个item,Android将会调用监听器的onMenuitemClick()回调方法. 栗子:

public void showMenu(View v){
    PopupMenu popup = new PopupMenu(this, v);<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值