1.) 让PopupWindow以下拉方式显示在指定位置

这个简单,PopupWindow提供了showAsDropDown,如

[java] view plain copy

  1. mPopupWindow.showAsDropDown(mAnchorView, 0, 0);

mAchorView是一个基准,popupWindow会显示在它的下面。当然也可以显示在它的上面或者左面和右面,这个可以通过其他方法和参数控制。

2。做出类似对话框的背景半透效果

1) 设置PopupWindow全屏:

[java] view plain copy

  1. mPopupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);

  2. mPopupWindow.setHeight(ViewGroup.LayoutParams.MATCH_PARENT);

2) 设置背景

背景有两中方式,一种方式是通过mPopupWindow.setBackgroundDrawable, 一种方式是增加一个自己的容器,如FrameLayout。

建议增加自己的容器,因为后面我们要处理touch事件,让窗口关闭。设置容器通过

[java] view plain copy

  1. mPopupWindow.setContentView(mContainer);

3) 处理touch事件,当touch在非内容区域时,popup窗口关闭

非内容区域分两类:半透明区域,这是在容器上的;透明区域,这一部分在popup窗口外。之所以出现这种情况,是在调用showAsDropDown后,AnchorView之上的区域没有被Popupwindow覆盖。

所以首先:

[java] view plain copy

  1. mPopupWindow.setFocusable(true);

这样,让PopupWindow能够接受全屏的touch事件,然后,处理容器的touch事件

[java] view plai

  1. private class ContainerView extends FrameLayout {

  2. public ContainerView(Context context, AttributeSet attrs, int defStyle) {

  3. super(context, attrs, defStyle);

  4. }

  5. @Override

  6. public boolean onTouchEvent(MotionEvent event) {

  7. if (!super.onTouchEvent(event)) {

  8. if (event.getAction() == event.ACTION_UP) {

  9. dismiss();

  10. }

  11. }

  12. return true;

  13. }

  14. }

转载于:https://blog.51cto.com/10594050/1772510

PopupWindow的一些使用总结相关推荐

  1. android 封装的popwindow,Android UI开发 popupwindow介绍以及代码实例

    PopupWindow在android.widget包下,弹出窗口的形式展示.官方文档对该控件的描述是:"一个弹出窗口控件,可以用来显示任意视图(View),而且会浮动在当前 活动(acti ...

  2. android window 大小,android popupWindow 中宽度莫名很大,求帮助?

    这个是popupwindow的内容xml(就是放了个ListView): android:layout_width="wrap_content" android:layout_he ...

  3. PopupWindow响应返回键的问题

    假设情景是这样的:在一个Activity中弹出一个PopupWindow,要求在按返回键时关闭该PopupWindow. 如果该PopupWindow是无焦点的(默认情况),那么可以在Activity ...

  4. android 虚拟按键挡住布局,Android 关于导航栏(虚拟按键)遮挡PopupWindow底部布局的问题...

    我们自定义popupWindow的时候,一般会设置这些参数 setContentView(contentView); //设置高度为屏幕高度 setWidth(UIUtils.getScreenHei ...

  5. android设置控件的坐标,Android中使PopupWindow显示在指定控件的上下左右!

    **1.View中的方法getLocationOnScreen(int[] location):获取该控件在屏幕中的绝对坐标并将坐标保存在数组中:如下图所示,A为屏幕的原点,R,C点即为view的绝对 ...

  6. android 中的PopupWindow

    android UI进阶之弹窗的使用 android 中的PopupWindow 弹出菜单 PopupWindow 转载于:https://www.cnblogs.com/Rocky_/archive ...

  7. Android中的PopupWindow详解

     Android的对话框有两种:PopupWindow和AlertDialog.它们的不同点在于: AlertDialog的位置固定,而PopupWindow的位置可以随意 AlertDialog ...

  8. 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9023451          在今天的这篇文章当中,我依然会以实战加理论结合 ...

  9. 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题

    如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 参考文章: (1)如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 (2)https://ww ...

  10. Android下PopupWindow隐藏及显示(showAtLocation/showAsDropDown)

    转载:http://orgcent.com/android-popupwindow-showasdropdown-showatlocation/ 上一篇对PopupWindow的用法(位置.动画.焦点 ...

最新文章

  1. go微服务框架go-micro深度学习(一) 整体架构介绍
  2. 升维:ValueError: all the input arrays must have same number of dimensions,
  3. HashMap的实现原理-----哈希讲解
  4. Openstack_通用模块_Oslo_vmware 创建 vSS PortGroup
  5. 【CTF大赛】2021 DASCTF July cybercms 一探再探
  6. SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)
  7. 深度学习之双线性插值(Bilinear interpolation)
  8. webpack devserver配置_在webpack中使用babel
  9. 201409-3-字符串匹配
  10. windows查看usb信息命令_Linux dumpe2fs命令:查看文件系统信息
  11. 三维重建_基于RGB-D相机的三维重建总览(静态动态)
  12. 图书馆占座系统(二)
  13. 域名含义解释查询_域名含义解释查询
  14. foxpro导入 mysql_无法导入、导出或链接到 FoxPro 数据库 | Microsoft Docs
  15. column xxx is of type integer but expression is of type character varying。String的成员变量存到int的数据库列 报错
  16. 数据结构期末考试错点汇总
  17. 万年历、黄历,获取每日的宜忌、五行、冲煞、值神、彭祖百忌、吉神宜趋、今日胎神、凶神宜忌、二十八星宿、建除十二神
  18. div用css显示隐藏的效果
  19. 换手机了备忘录怎么恢复?专家为你解答数据恢复问题
  20. 投身开源,需要持之以恒的热爱与贡献 —— Apache Spark Committer 姜逸坤

热门文章

  1. 1707: [Usaco2007 Nov]tanning分配防晒霜
  2. PHP 入门 - 1.语言基础
  3. 使用MyEclipse将HTML5移动项目迁移到PhoneGap(一)
  4. 敏捷冲刺每日报告——Day5
  5. Elasticsearch 安装配置 外网访问 及 后台启动
  6. Python学习笔记- Python threading模块
  7. 在mvc4里怎样引用:System.Web.Optimization和entityframework
  8. JS判断访问设备(userAgent)加载不同页面 JS判断客户端操作系统类型(platform)
  9. 主函数main中变量(int argc,char *argv[ ])的含义
  10. 小程序 -- [sitemap 索引情况提示] 根据 sitemap 的规则[0],当前页面 [pages/index/index] 将被索引