Android Android PopupWindow 概述

1、简述
简单点说,popputWindow 只是一个小弹框
2、PopWindow 的创建
2.1 、PopupWindow的构造函数
    //方法一:  public PopupWindow (Context context)  //方法二:  public PopupWindow(View contentView)  //方法三:  public PopupWindow(View contentView, int width, int height)  //方法四:  public PopupWindow(View contentView, int width, int height, boolean focusable)

也就是说 Popwindow 的创建方式有四种 , 在这里需要声明的是,无论哪一种创建方式来创建,都必需声明所创建Popwindow 的显示View 以及宽与高 .

2.2 、创建PopupWindow

// 1 、创建PopupWindow
PopupWindow pop = new  PopupWindow (this);
// 2、设置显示视图
// 2.1、加载Popwindow 中使用的显示视图
View contentView = LayoutInflater.from(MainActivity.this).inflate(R.layout.pop_item_1, null);
// 2.2、设置视图
pop.setContentView(contentView);
// 3、设置宽度
pop.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
// 4、设置高度
pop.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);

也就是说必需声明所创建Popwindow 的显示View 以及宽与高 .

3、PopupWindow 显示
3.1 、显示方式一

在某个View 的正下方显示


// 在控件view的正下方显示
pop.showAsDropDown(view);
3.2 、显示方式二 showAsDropDown(View anchor, int xoff, int yoff)

在某个View 的正下方显示 ,并且在 轴方向 与 y轴方向有偏移

在x 轴方向的偏移 xoff 为正向右偏移,为负向左偏移
在y 轴方向的偏移 yoff 为正向下偏移,为负向上偏移

// 在控件view的正下方显示 并向右偏移20px 向下偏移20px
pop.showAsDropDown(view,20,20);
3.3 、显示方式三 showAtLocation(View parent, int gravity, int x, int y)

相对于父控件显示

1 gravity 为相对于父控件显示的方式

Gravity.TOP -->  相对于父布局的顶部显示
Gravity.LEFT--> 相对于父布局的左边显示
Gravity.RIGHT--> 相对于父布局的右边显示
Gravity.BOTTOM -->相对于父布局的底部显示
Gravity.CENTER --> 相对于父布局的中心显示
Gravity.CENTER_HORIZONTAL--> 竖直方向中心</font>
Gravity.CENTER_VERTICAL --> 水平方向中 </font>

2 x 为 在x 轴方向的偏移 xoff 为正向右偏移,为负向左偏移
3 y 为 在y 轴方向的偏移 yoff 为正向下偏移,为负向上偏移

//相对于父控件的顶部显示 无任何偏移
pop.showAtLocation(mRootView,Gravity.CENTER,0,0);

当设置显示为相对于交布局的顶部显示 出来的时候 ,默认的是垂直剧中

//相对于父控件的左边显示 无任何偏移
pop.showAtLocation(mRootView,Gravity.LEFT,0,0);

//相对于父控件的右边显示 无任何偏移
pop.showAtLocation(mRootView,Gravity.RIGHT,0,0);

//相对于父控件的底部显示 无任何偏移
pop.showAtLocation(mRootView,Gravity.BOTTOM,0,0);

//相对于父控件的中心显示 无任何偏移
pop.showAtLocation(mRootView,Gravity.CENTER,0,0);
//相对于父控件左上角显示  无任何偏移
pop.showAtLocation(mRootView,Gravity.LEFT|Gravity.TOP,0,0);//相对于父控件的左上角显示  在x轴方向向右偏移200的距离
pop.showAtLocation(mRootView,Gravity.LEFT|Gravity.TOP,200,0);//相对于父控件左上角显示  在x轴方向向下偏移200的距离
pop.showAtLocation(mRootView,Gravity.LEFT|Gravity.TOP,0,200);... ... ...

Android PopupWindow系列 (一) —— popupWindow基本使用方略相关推荐

  1. 【Android】Activity和PopupWindow都实现从底部弹出或滑出选择菜单或窗口

    使用Activity和PopupWindow都实现从底部弹出或滑出选择菜单或窗口 [Android]测试与popwindow PopupWindow转载自:Android PopupWindow实现从 ...

  2. android 自定义popupwindow,自定义通过PopupWindow实现通用菜单

    会经常用户到菜单选项提供给用户选择,例如选择图片,图库和相机选择等一系列场景吧,根据为了以后更加方便使用通过自定义封装了一个菜单,主要是通过一个列表展示,将菜单项列表传入设置参数就可以显示,使用方便简 ...

  3. android 自定义popupwindow样式,自定义popupwindow组件

    先看效果...... 现在很多的应用效果都需要做的炫些,像UC,以及天天静听,效果很炫的,源码已经对外开放了,有兴趣的可以去研究下的 上源码 main.xml android:layout_width ...

  4. Android TV 开发有关PopupWindow的KeyListener(手机也能用)

    转载请标明原地址:Android TV 开发有关PopupWindow的KeyListener(手机也能用)_高磊的专栏-CSDN博客 现在这个公司主要是做智能电视视频方面.有硬件电视盒子,APP开发 ...

  5. Android学习系列(10)--App列表之拖拽ListView(上)

    研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨.       鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...

  6. Android 面试系列 Dn.1---- Service?

    Yo....Yo..Yo... 各位学zha老爷们好,我是靠颜值混日子的榴莲欧巴,欢迎学zha老爷们按时来阅读今天的 Android面试系列.如果您是一个年龄小于24岁妹纸,一定要关注微信公众号&qu ...

  7. Android新手系列教程(申明:来源于网络)

    Android新手系列教程(申明:来源于网络) 地址:http://blog.csdn.net/column/details/androidcoder666.html 转载于:https://www. ...

  8. 从零开始搭建Android框架系列

    原文链接:http://www.jianshu.com/nb/3767449 开篇介绍和工程目录结构[从零开始搭建android框架系列(1)] 不容错过,最全的安卓架构合集[从零开始搭建androi ...

  9. Android Studio系列教程三:快捷键

    原文出处:http://stormzhang.com/devtools/2014/12/09/android-studio-tutorial3/ Android Studio 1.0正式版发布啦 今天 ...

最新文章

  1. FAT16文件系统结构扇区数据分析
  2. java,验证码base64编码到json字符串出显数据一行一行的问题,关于base64编码函数解释
  3. eclipse发布web项目到tomcat服务器
  4. edger多组差异性分析_简单使用DESeq2/EdgeR做差异分析
  5. Docker容器资源管理,你真的学会了吗?
  6. 谁说Dota2赢了人类的AI太水?连比尔·盖茨都啧啧称赞了
  7. deepin驱动精灵_Deepin 20 Beta X64官方正式版(64位)
  8. (XWZ)的python学习笔记Ⅶ——正则表达式
  9. 谈谈你对计算机的发展,结合您目前对计算机的认识,请您谈谈对计算机发展趋势的看法。...
  10. 编程技巧│这些好用的网站,你千万别错过
  11. trs java_TRS Java应用开发接口概述
  12. 程序员带新人的几点思考
  13. Linux学习笔记二十九——http服务
  14. windows10 安装msdatlst.ocx控件
  15. webpack学习笔记(六):图片打包处理
  16. mysql isnull()用法
  17. UICC 之 USIM 详解全系列——UICC协议层结构
  18. LTC4054/TP4054的高性价比替代,DP4054线性锂离子电池充电器
  19. linux 中NetworkManager和network的区别
  20. 手把手教你安装 illustrator(Ai)2022 软件

热门文章

  1. ICCV 2019 | 华科提出对称性约束的校正网络ScRN,显著改进场景文本识别
  2. 强烈推荐!FlyAI机器学习数据竞赛启动,丰厚奖金等你来拿
  3. CVPR2019 | 微软、中科大开源基于深度高分辨表示学习的姿态估计算法
  4. 你可能不知道的10个Python Pandas的技巧和特性(下)
  5. 计算机视觉论文-2021-06-22
  6. 收藏 | OpenCV新手入门预处理
  7. 密歇根大学团队成果:自动驾驶视觉系统——Bio-LSTM: 三维步行姿势和步态预测的生物力学反馈神经网络
  8. KaggleTianChi分类问题相关算法快速实现
  9. nginx php exec,PHP Web 端如何操作 Nginx 配置
  10. java递归mysql生成树_JavaScript图形实例:递归生成树