我想动态改变PopupWindow的位置。曾经使用过以下方法:
public void showAtLocation (View parent, int gravity, int x, int y)
但有时 PopupWindow 显示在屏幕外。那么我应该使用哪个相对参数来更改值 x 和 y(如布局高度或宽度等)?
我想动态改变PopupWindow的位置。曾经使用过以下方法:
public void showAtLocation (View parent, int gravity, int x, int y)
但有时 PopupWindow 显示在屏幕外。那么我应该使用哪个相对参数来更改值 x 和 y(如布局高度或宽度等)?
你需要使用
public void update(int x, int y, int width, int height)
弹出窗口中的方法
尝试这个
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;