如何打开对话框,使其位于“按钮”小部件下方的固定位置?
这是我到目前为止所拥有的:
public void showPopup(View v){
mDialog.setContentView(R.layout.dialog_custom_workout_info);
Window window = mDialog.getWindow();
window.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER_HORIZONTAL);
window.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
mDialog.getWindow().setDimAmount(0);
mDialog.show();
}
对话框将打开,但是我只能使用重力将其居中,但是我希望它在相对于另一个小部件的固定位置打开(在这种情况下,小部件标记为“ imageButton”。
谢谢!
答案 0 :(得分:0)
对话框的位置有一个x,y,您可以使用要放置在其下方的按钮的x,y的偏移量吗?我相信还有其他方法,但是如果可行,则无需对您现有的代码进行太多修改
Dialog d = DialogAbout.create(this);
Button b = findViewById(R.id.pick_button);
// Absolute coordinates
int[] location = new int[2];
b.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
// Coordinates relative to parent
int bx = b.getLeft();
int by = b.getTop();
Window window = d.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
// set the new location [you will need to play with this]
wlp.x = x;
wlp.y = (y - b.getHeight());
// add to your window
window.setAttributes(wlp);