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

近日发现PopupWindow的位置触摸不定,网上的例子解析就...


先上效果图:

.关于Android popupWindow的位置显示 showAtLocation理解_第1张图片


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


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


关于Android popupWindow的位置显示 showAtLocation理解_第2张图片


代码解析:

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

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

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

1.设置Gravity.NO_GRAVITY的话,就相对屏幕左上角作为参照(即原点[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的长原因了,

如下:


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

关于Android popupWindow的位置显示 showAtLocation理解_第3张图片



你可能感兴趣的:(android,UI,android)