Android中的PopupWindow详解
Android的对话框有两种:PopupWindow和AlertDialog。它们的不同点在于:
- AlertDialog的位置固定,而PopupWindow的位置可以随意
- AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的
PopupWindow的位置按照有无偏移分,可以分为偏移和无偏移两种;按照参照物的不同,可以分为相对于某个控件(Anchor锚)和相对于父控件。具体如下
- showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移
- showAsDropDown(View anchor, int xoff, int yoff):相对某个控件的位置,有偏移
- showAtLocation(View parent, int gravity, int x, int y):相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移
/** * 初始化popWindow* */private void initPopWindow() {View popView = inflater.inflate(R.layout.listview_pop, null);popupWindow = new PopupWindow(popView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);popupWindow.setBackgroundDrawable(new ColorDrawable(0));//设置popwindow出现和消失动画 popupWindow.setAnimationStyle(R.style.PopMenuAnimation);btn_pop_close = (ImageView) popView.findViewById(R.id.btn_pop_close);ll_pop_speech=(LinearLayout) popView.findViewById(R.id.ll_pop_speech);ll_pop_favor=(LinearLayout) popView.findViewById(R.id.ll_pop_favor);ll_pop_dislike=(LinearLayout) popView.findViewById(R.id.ll_pop_dislike);btn_pop_close.setOnClickListener(new popItemOnClickListener());ll_pop_speech.setOnClickListener(new popItemOnClickListener());ll_pop_favor.setOnClickListener(new popItemOnClickListener());ll_pop_dislike.setOnClickListener(new popItemOnClickListener());}
/** * 显示popWindow* */public void showPop(View parent, int x, int y,int postion) {//设置popwindow显示位置popupWindow.showAtLocation(parent, 0, x, y);//获取popwindow焦点popupWindow.setFocusable(true);//设置popwindow如果点击外面区域,便关闭。popupWindow.setOutsideTouchable(true);popupWindow.update();if (popupWindow.isShowing()) {}}
/** * 每个ITEM中more按钮对应的点击动作***/public class popAction implements OnClickListener{int position;public popAction(int position){this.position = position;}@Overridepublic void onClick(View v) {int[] arrayOfInt = new int[2];//获取点击按钮的坐标 v.getLocationOnScreen(arrayOfInt);int x = arrayOfInt[0];int y = arrayOfInt[1];showPop(v, x , y, position);}}
源码下载 地址 http://pan.baidu.com/s/1ntJTvol
Android中的PopupWindow详解相关推荐
- android调webview的方法,Android中的WebView详解
Android中的WebView详解 WebView详解 基本用法 布局文件配置WebView android:id="@+id/wv_news_detail" android:l ...
- Android 中malloc_debug 原理详解
版本基于:Android R 关联博文: Android 中malloc_debug 使用详解 0. 前言 最近上项目中遇到一个native 可能内存泄漏的问题,曾考虑使用HWASAN,但这个工具是针 ...
- Android中mesure过程详解 (结合Android 4.0.4 最新源码)
如何遍历并绘制View树?之前的文章Android中invalidate() 函数详解(结合Android 4.0.4 最新源码)中提到invalidate()最后会发起一个View树遍历的请求,并通 ...
- Android中layout过程详解 (结合Android 4.0.4 最新源码)
上一篇文章Android中mesure过程详解 (结合Android 4.0.4 最新源码)介绍了View树的measure过程,相对与measure过程,本文介绍的layout过程要简单多了,正如l ...
- Android中shape属性详解
一.简单使用 刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标签怎么用. 1.新建shape文件 首先在res/drawable文件夹下,新建一个文件,命名为:shape_radius.x ...
- 【Android】 Android中Log调试详解
LOG类: public final class Log extends Object java.lang.Object android.util.Log Constants int ASSERT ...
- android context继承关系,android中Context深入详解
以下分别通过Context认知角度,继承关系,对象创建等方面android中Context做了深入的解释,一起学习下. 1.Context认知. Context译为场景,一个应用程序可以认为是一个工作 ...
- Android中的长度单位详解
http://blog.csdn.net/zuolongsnail/article/details/6397768 in(英寸)长度单位(基本用不到) mm(毫米)长度单位(基本用不到) pt(poi ...
- 【Android】Android中ContentProvider组件详解
原文来自:http://blog.csdn.net/zuolongsnail/article/details/6566317 ContentProvider(内容提供者)是Android中的四大组件之 ...
最新文章
- L1-044 稳赢 (暴力法)
- 阿里云蒋江伟:我们致力于为世界提供70%的算力 | 凌云时刻
- java 风袖,仓库 - 高谷深陵 (gaogushenling) - Gitee.com
- 天合公司 TRW Inc.
- ajax配置要求,AJAX浅谈
- Maven(二):常用命令、依赖管理
- 十天学会ASP.Net——(2)
- 存储世界瞬息万变 SSD掀行业浪潮
- [archlinux][hardware] 查看SSD的使用寿命
- python新手如何编写一个猜数字小游戏
- 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流
- js中的四种常用数组排序方法(冒泡、选择、插入、快排)及sort排序
- ERP软件高效排产计划:如何解决企业排产难题
- 安装httprunner
- dimm和udimm_Adata推出32GB DDR4-2666 UDIMM和SO-DIMM
- 15 条实用 Linux/Unix 磁带管理命令
- 阿蒙森 斯科特_斯科特的电影版本:3下! 1去。
- Grub for DOS/NTLDR中文版Climbing定制版第四版(完全淘汰VFloppy)
- 开源ERP| Odoo系统如何实现企微扫码登录
- 禁止静态文件缓存的方法,可用于JS与CSS文件上
热门文章
- C++知识点38——拷贝赋值运算符、析构函数、=default、阻止拷贝和赋值
- 15.QT布局管理及示例
- 学生卡变成普通卡_刚接触流量卡的小白看这一篇就够了!!!
- 在Heroku上扩展ipify服务
- Android镜像文件的拆解
- cocos2dx spine之一 :spine缓存 (c++ lua)
- JavaScript引擎研究与C、C++与互调用(转)
- Android开发实战三之导入现有Android工程项目
- 一个恶心的无法同步服务器与pda时间的龌龊问题
- [译]Vulkan教程(05)Instance