Android中弹出菜单PopupWindow的使用

原创 2015年07月07日 13:26:32

Android中,使用手指触摸,不能像电脑一样有鼠标左键和右键,所以会有一个PopupWindow来代替鼠标右键。当用户点击的时候出现一个弹出的窗口与用户交流信息。好了,现在就开始介绍PopupWindow的用法。

首先声明一个PopupWindow的对象

PopupWindow  pop=null;

初始化pop

pop=new PopupWindow(v,ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);

第一个参数是要在PopupWindow中显示的的View,第二个参数是PopupWindow的宽,我设置的是与其父窗口一样宽,第三个参数是PopupWindow的高度,我设置的是包含它里面的类容。

我们需要在PopupWindow中设置什么样的类容根据需要,我设置的是几个Button,从xml文件中解析出来的

LayoutInflater l=LayoutInflater.from(this);

 View v=l.inflate(R.layout.popup, null);

当用户点击按钮的时候就让PopupWindow显示出来

@Override
public void onClick(View v) {
pop.showAsDropDown(button);

}

这时候PopupWindow就显示在指定

showAsDropDown(View  anchor)
anchor的左下方。

当我们不需要PopupWindow的时候调用

pop.dismiss();


另外PopupWindow显示的时候可以用showAtLocation()方法


void android.widget.PopupWindow.showAtLocation(View parent, int gravity, int x, int y)

parent a parent view to get the android.view.View.getWindowToken() token fromgravity the gravity which controls the placement of the popup windowx the popup's x location offsety the popup's y location offset
第一个参数是要将PopupWindow放到的View,第二个参数是位置,第三第四是偏移值

pop.showAtLocation(WorkPopUpTestActivity.this.ll, Gravity.BOTTOM, 0, 0);

如果是这样的话,就将PopupWindow放到了View的左下角。


最后注意:只有当View加载完成之后才能显示PopupWindow,如果View没有加载完成就加载的话会不成功。

判断View是否加载完成可以判断其宽度是否为为其0,若否,则加载完成。然后我们再加载PopupWindow。这里可以用Handler来实现。

  1. <span style="font-size:18px;">@Override  
  2.     public void run() {  
  3.         // TODO Auto-generated method stub  
  4.         boolean b=true;  
  5.         while(b)  
  6.         {  
  7.             try {  
  8.                 Thread.sleep(5);  
  9.             } catch (InterruptedException e) {  
  10.                 // TODO Auto-generated catch block  
  11.                 e.printStackTrace();  
  12.             }  
  13.             if(ll!=null)  
  14.             {  
  15.                 if(ll.getWidth()!=0)  
  16.                 {  
  17.                     hand.sendEmptyMessage(0);  
  18.                     b=false;  
  19.                 }  
  20.             }  
  21.               
  22.               
  23.         }  
  24.           
  25.     }</span>  
如果加载完成就发送消息。在Handler的handleMessage中处理消息。代码如下

  1. Handler hand=new Handler()  
  2.     {  
  3.   
  4.         @Override  
  5.         public void handleMessage(Message msg) {  
  6.             // TODO Auto-generated method stub  
  7.             super.handleMessage(msg);  
  8.             pop.showAtLocation(WorkPopUpTestActivity.this.ll, Gravity.BOTTOM, 0, 0);  
  9.               
  10.         }  
  11.           
  12.     };  
handleMessage中显示PopupWindow。
版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载。

Android之PopupWindow类似微信右上角的弹出菜单

日常开发过程中对于PopupWindown的使用也是比较多的。这里给大家展示一下PopupWindow的使用。 修改activity_main.xml布局: ...
  • LoveYaozu
  • LoveYaozu
  • 2016年04月14日 12:15
  • 6593

使用PopupWindow实现右上角弹出菜单

Android 使用PopupWindow实现右上角的弹出菜单
  • wxb514438525
  • wxb514438525
  • 2015年09月28日 17:56
  • 977

Android开发技巧——使用PopupWindow实现弹出菜单

在本文当中,我将会与大家分享一个封装了PopupWindow实现弹出菜单的类,并说明它的实现与使用。 因对界面的需求,android原生的弹出菜单已不能满足我们的需求,自定义菜单成了我们的唯一选择,在...
  • maosidiaoxian
  • maosidiaoxian
  • 2014年09月10日 12:30
  • 17814

PopupWindow实现右侧、左侧和底部弹出菜单

先上图,4张:
  • jianfengwen
  • jianfengwen
  • 2015年09月21日 17:10
  • 22198

自定义PopupWindow实现底部弹出式菜单

现在很多应用都采用底部弹出式菜单,觉得挺好看的,先上图 底部弹出菜单通过自定义PopupWindow实现,很简单的一个自定义 1.自定义PopupWindow代码:public class M...
  • qq_30124547
  • qq_30124547
  • 2016年07月13日 16:15
  • 1422

Android中Popupwindow弹出框

在安卓中不仅有对话框 还有弹出框即Popupwindow     弹出框有一个特点就是他不会抢夺焦点,在有弹出框弹出时其他的东西还是可以操作的 实现案例: 首先和AlertDialog一样建立一个自...
  • jack__ming
  • jack__ming
  • 2016年05月10日 18:41
  • 579

底部菜单栏之Fragment+PopupWindow实现

转自:http://blog.csdn.net/yangyu20121224/article/details/9023451  在今天的这篇文章当中,我依然会以实战加理论结合的方式教大家如何设计...
  • zhouboyu
  • zhouboyu
  • 2016年05月08日 03:06
  • 2664

Android 自定义弹出菜单和对话框

Android 开发当中,可能会存在许多自定义布局的需求,比如自定义弹出菜单(popupWindow),以及自定义对话框(Dialog)。 话不多说,直接上图片。 先讲第一种,自定义Pop...
  • m0_37094131
  • m0_37094131
  • 2017年08月14日 09:48
  • 272

Android自定义PopWindow(QQ、微信弹出菜单)

前段时间在个人开发的项目中需要用到弹出菜单,类似QQ右上角的弹出菜单,自己使用popwin的次数也不是很多,其中也遇到过一点问题,今天正好有时间就把一些经验分享给大家。 先来看看最终实现过后的效...
  • caicdd007
  • caicdd007
  • 2016年07月17日 18:44
  • 2152

android 自定义菜单 使用PopupWindow实现菜单的各种效果

随着android手机的不断发展,可以在android手机上实现的菜单方式有多种多样,不同的开发者实现的效果也不一样;想要在android手机上调用菜单,方式也是多种多样的,在此列举三类调用菜单的方式...
  • qq_20916555
  • qq_20916555
  • 2015年11月16日 12:45
  • 3173
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中弹出菜单PopupWindow的使用
举报原因:
原因补充:

(最多只允许输入30个字)