我想创建一个用户按下按钮时出现的对话框。 (事实上,当用户点击带耳机的按钮时,会出现音量控制)
我有一个对话框的布局文件(高度取决于内容) 在onCreate方法中我尝试设置重力顶部|右边和自定义边距(与我的按钮相同)。
this.getWindow().setGravity(Gravity.TOP | Gravity.RIGHT);
WindowManager.LayoutParams lp = this.getWindow().getAttributes();
lp.x = x;
lp.y = y;
但我得到的只是一个右边的中心对话框(不是右上角!),没有任何余地。
换句话说,我想在屏幕上的指定点绘制带有自定义布局的对话框。
答案 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),它将通过特定偏移量将窗口锚定到给定视图。