0

我想动态改变PopupWindow的位置。曾经使用过以下方法:

public void showAtLocation (View parent, int gravity, int x, int y)

但有时 PopupWindow 显示在屏幕外。那么我应该使用哪个相对参数来更改值 x 和 y(如布局高度或宽度等)?

4

2 回答 2

1

你需要使用

public void update(int x, int y, int width, int height)

弹出窗口中的方法

于 2019-10-10T14:52:26.650 回答
0

尝试这个

 AlertDialog dialog = builder.create();
 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
 WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes();



wmlp.gravity = Gravity.TOP | Gravity.LEFT;
wmlp.x = 100;   //x position
wmlp.y = 100;   //y position

dialog.show();

其中 X 和 Y 以像素为单位。

如果您只想向下移动警报对话框,那么

alertDialog.getWindow().getAttributes().verticalMargin = 0.2F;

于 2014-07-01T09:52:59.213 回答