Android popupwindow 叠加显示
时间: 2023-10-25 14:14:32 浏览: 63
Android中的PopupWindow可以在界面上显示一个弹出窗口,但是如果在某些情况下需要显示多个PopupWindow,它们可能会叠在一起,导致无法正确显示。可以采取以下措施来避免PopupWindow叠加显示:
1. 设置PopupWindow的高度和宽度,确保它们不会重叠。
2. 设置PopupWindow的位置,避免它们重叠。可以使用showAsDropDown()方法来设置PopupWindow相对于指定View的位置。
3. 使用setFocusable()和setBackgroundDrawable()方法为PopupWindow设置焦点和背景,以确保它们之间不会重叠。
例如,可以使用以下代码来设置两个PopupWindow,它们不会重叠:
```
PopupWindow popupWindow1 = new PopupWindow(context);
popupWindow1.setWidth(LayoutParams.WRAP_CONTENT);
popupWindow1.setHeight(LayoutParams.WRAP_CONTENT);
popupWindow1.setFocusable(true);
popupWindow1.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
popupWindow1.setContentView(view1);
PopupWindow popupWindow2 = new PopupWindow(context);
popupWindow2.setWidth(LayoutParams.WRAP_CONTENT);
popupWindow2.setHeight(LayoutParams.WRAP_CONTENT);
popupWindow2.setFocusable(true);
popupWindow2.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
popupWindow2.setContentView(view2);
int[] location = new int[2];
anchorView.getLocationOnScreen(location);
popupWindow1.showAsDropDown(anchorView, 0, 0);
popupWindow2.showAsDropDown(anchorView, 0, popupWindow1.getHeight());
```