android popupwindow依次间隔50从左到右,无需确定当前XY,与popupwindow数量,保证此方法不会受到popupwindow的宽度影响
时间: 2024-03-10 08:49:42 浏览: 60
Android 灵活使用Popupwimdow
要实现android多个popupwindow从左到右排序每个间隔都是50,可以使用PopupWindow的偏移量来实现,无需确定当前XY和popupwindow数量,并且保证此方法不会受到popupwindow的宽度影响。
首先,你需要维护一个变量来表示当前已经显示了多少个popupwindow,假设该变量为n。
然后,在创建每个popupwindow时,设置它的偏移量,例如:
```
int xOff = 50 + popupWindow.getWidth() * n;
int yOff = 0;
popupWindow.showAsDropDown(anchorView, xOff, yOff);
```
其中,xOff为水平方向的偏移量,可以根据当前显示的popupwindow数量来计算。偏移量中的50表示第一个popupwindow距离anchorView的距离为50,后续每个popupwindow距离前一个popupwindow的距离也为50。popupWindow.getWidth()表示当前popupwindow的宽度。
在显示完当前的popupwindow之后,将n加1,表示下一个popupwindow的偏移量需要加上50。
需要注意的是,如果每个popupwindow的宽度不同,那么这种方法可能会导致popupwindow之间的间隔不一致。如果要保证每个popupwindow之间的间隔都是50,可以将所有popupwindow的宽度设置为相同的值。
完整的示例代码如下:
```
int n = 0;
// 创建第一个popupwindow
PopupWindow popupWindow1 = new PopupWindow(view1, width1, height1);
int xOff1 = 50;
int yOff1 = 0;
popupWindow1.showAsDropDown(anchorView, xOff1, yOff1);
n++;
// 创建第二个popupwindow
PopupWindow popupWindow2 = new PopupWindow(view2, width2, height2);
int xOff2 = 50 + popupWindow1.getWidth() * n;
int yOff2 = 0;
popupWindow2.showAsDropDown(anchorView, xOff2, yOff2);
n++;
// 创建第三个popupwindow
PopupWindow popupWindow3 = new PopupWindow(view3, width3, height3);
int xOff3 = 50 + popupWindow1.getWidth() * n;
int yOff3 = 0;
popupWindow3.showAsDropDown(anchorView, xOff3, yOff3);
n++;
```
这样,每个popupwindow就会按照从左到右的顺序排列,并且它们之间的间隔都是50,而且不会受到popupwindow的宽度影响。
阅读全文