您的位置:首页 > 移动开发 > Android开发

关于Android popupWindow的位置显示 showAtLocation理解

2015-08-17 13:07 489 查看
近日发现PopupWindow的位置触摸不定,网上的例子解析就...

先上效果图:

.


我的目的是点击[编辑职位] 时显示popupWindow ,那么popWindow的显示参数如何设置呢?

首先需要知道的是,popupWindow的布局文件长宽我设置为160*42(dip)



代码解析:

这边我使用的是 showAtLocation(view,int,x,y) 方法显示popupWindow,

其中view设置哪个都一样(意思是,不论设置哪个,popwindow的相对参照物都是整个屏幕的根布局)

那么参数二是影响最大的:

1.设置Gravity.NO_GR***ITY的话,就相对屏幕左上角作为参照(即原点[0,0]是屏幕左上角)

2.若设置Gravity.LEFT的话,则原点为 [0,1/2屏幕高],即[x=0,y=1/2屏幕高度];

其他的没测。

然后showAtLocation(view,int,x,y)方法的第三个、第四个参数则是popwindow的左上角坐标。

x+10等于向右移动,x-10等于向左移动;

y+10等于向下移动,x-10等于向上移动

再看我的例子图片,获取了view的坐标;

设置popupWindow的y跟view的y一样。

设置 popupWindow的x为:(view的x坐标-2*popwindow长),至于为什么是两个,我测不出来,理论是减去一个的。若有人大神看到,请留言告知。谢谢

续:

经过同事提醒,终于找到2*popwindow的长原因了,

如下:



不同的分辨率,显示不一样,调试模式下看到如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: