如何在按钮顶部创建对话框

时间:2012-03-27 07:20:06

标签: android android-layout android-dialog

我想创建一个用户按下按钮时出现的对话框。 (事实上​​,当用户点击带耳机的按钮时,会出现音量控制)

我有一个对话框的布局文件(高度取决于内容) 在onCreate方法中我尝试设置重力顶部|右边和自定义边距(与我的按钮相同)。

this.getWindow().setGravity(Gravity.TOP | Gravity.RIGHT);
WindowManager.LayoutParams lp = this.getWindow().getAttributes();
lp.x = x;
lp.y = y;

但我得到的只是一个右边的中心对话框(不是右上角!),没有任何余地。

换句话说,我想在屏幕上的指定点绘制带有自定义布局的对话框。

2 个答案:

答案 0 :(得分:1)

实现这一目标的最简单方法是使用相对布局

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(WIDTH, HEIGHT);
params.topMargin = X;
params.leftMargin = Y;
yourRelativeLayout.addView(myDialog, params);

X应该像clickedX - WIDTH / 2 ...

希望这是有帮助的!

答案 1 :(得分:1)

我认为你要找的是一个弹出窗口。看看这里:

http://developer.android.com/reference/android/widget/PopupWindow.html

Positioning a Popup Window in Android

如果您在放置弹出窗口时遇到问题,请尝试使用PopupWindow的方法showAsDropDown(View,int offsetx,offsety),它将通过特定偏移量将窗口锚定到给定视图。