PopupMenu的应用

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

使用方法

res/menu下面新建 popup_menu.xml

<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

       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.poupup_menu_home, 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的显示。

时间: 2024-10-17 21:21:02

PopupMenu的应用的相关文章

Android应用中使用Popupmenu

最终效果: 页面布局: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent

Android:自己定义PopupMenu的样式(显示图标/设置RadioButton图标)

PopupMenu是Android中一个十分轻量级的组件.与PopupWindow相比,PopupMenu的可自己定义的能力较小,但使用更加方便. 先上效果图: 本例要实现的功能例如以下: 1.强制显示菜单项的图标. 默认状态下.PopupMenu的图标是不显示的.而且Android没有为我们开放不论什么API去设置它的显示状态.为了显示菜单项的图标,能够自己重写PopupMenu并改动相关属性,也能够直接使用反射: try { Field field = popupMenu.getClass(

菜单(五)ActionMode和PopupMenu

package com.example.actionmode; import android.app.Activity; import android.os.Bundle; import android.view.ActionMode; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.

groovy 简单的弹出菜单popupmenu程序

1 import groovy.swing.* 2 import javax.swing.* 3 import java.awt.* 4 5 def swing = new SwingBuilder() 6 swing.frame(title:"hello",show:true) 7 { 8 panel() 9 { 10 def mm=swing.textField(text:"bcxhdbhd") 11 mm.mousePressed={e-> 12 def

弹出式菜单(下拉菜单)实现——PopupMenu

PopupMenu代表弹出式菜单,它会在指定组件上弹出PopupMenu,默认情况下,PopupMenu会显示在该组件的下方或上方.PopupMenu可增加多个菜单项,并可为菜单项增加子菜单. 使用PopupMenu创建菜单的步骤非常简单,只要如下步骤即可. 调用new PopupMenu(Context context,View anchor)创建下拉菜单,anchor代表要激发该弹出菜单的组件. 调用MenuInflater的inflate()方法将菜单资源填充到PopupMenu中. 调用

背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu

原文:背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹出类) ToolTip Popup PopupMenu 示例1.ToolTip 的示例Controls/FlyoutControl/ToolTipDemo.xaml <Page x:Class="Windows10.Controls.FlyoutControl.ToolTipDemo&q

一种较方便的MATLAB GUI中popupmenu中选取值得获得方法

matlab的GUI编程中Popupmenu是比较常用的一种控件,如何将popupmenu的选取值读取出来?其中有点陷阱需要注意.正确的方法应该如下:list=get(handles.popupmenu1,'String');val1=get(handles.popupmenu1,'Value');selectedval=str2num(list{val1}); 其中的popupmenu1是一个下拉选择框控件.list获取该选择框的全部内容值,是一个列表,例如可能是如下形式的一个列表.0.010

PopupMenu的演示样例

弹出菜单是停靠在一个View上的一个模式菜单. 假设View对象下方有空间,那么弹出菜单将显示在停靠对象的下方,否则会显示在上方. 这是很实用的: 源代码地址:http://download.csdn.net/detail/u013922681/8951537 文章引用: mod=viewthread&tid=83489">1.Android 关于PopupMenu的演示样例 2.Android应用中菜单(Menu)的位置显示问题 源代码: MainActivity.java pa

popupMenu显示图标问题

今天仿真微信做个点击加号,显示的一些状态.界面如下: 其实没啥难的,刚开始就是死活显示不了图标,只能显示文字.最后在网上百度下,Android4.3之后就没有现成的API可以显示了,好在有其它的说法可以用,最后利用反射的原理.加了这个代码,果然图标显示出来. 反射代码: field = popupMenu.getClass().getDeclaredField("mPopup");field.setAccessible(true);MenuPopupHelper mHelper = (

PopupMenu和对话框的使用

1.菜单的使用之 PopupMenu 步骤:1.创建popupMenu对象 参数:上下文对象   当前view对象 2.利用getMenu().addSubMenu创建子菜单 3..show();显示菜单 @SuppressLint("NewApi")    public void popclick(final View view){        PopupMenu pop=new PopupMenu(this,view);        //添加一级菜单        SubMen