当我们在安卓系统中显示AlertDialog时,它会显示在屏幕的中央。有什么方法可以改变位置吗?
发布于 2011-05-19 04:56:44
在搜索了各种帖子后,我找到了解决方案。
代码如下:
private CharSequence[] items = {"Set as Ringtone", "Set as Alarm"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(item == 0) {
} else if(item == 1) {
} else if(item == 2) {
}
}
});
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位置,值是从下到上。
发布于 2012-08-09 20:49:00
例如,如果您想要进一步向下移动进度对话框,并且不设置确切的像素位置,那么这就足够了:
progressDialog.getWindow().getAttributes().verticalMargin = 0.2F;
发布于 2013-11-02 20:22:23
为了使设置生效,我添加了以下代码
dialog.getWindow().setAttributes(wmlp);
在gypsicoder的答案中更改wmlp的值之后,或者wmlp的设置在我的测试中没有生效。
https://stackoverflow.com/questions/5469005
复制相似问题