我试图在像素中获取 AlertDialog 的宽度,并动态设置其宽度。
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int width = displaymetrics.widthPixels;
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = width;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.CENTER;
dialog.getWindow().setAttributes(lp);
以上代码对我不起作用。另外,我跟其他代码一样here,但没有人帮忙。
如何以像素或dp获取和设置 AlertDialog 的宽度?
答案 0 :(得分:1)
你只能获得高度和视野, 因此,如果它的自定义对话框,请按照其根视图,按照示例
RelativeLayout rl = (RelativeLayout) dialog.findViewById(R.id.root_relative_layout);
这里相对布局是父视图,组件在其中。
现在要获得高度和宽度: -
int width = rl.getWidth();
int height = rl.getHeight();
要设置widht和height,请执行此操作
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(layout);
builder.setTitle("Title");
alertDialog = builder.create();
alertDialog.getWindow().setLayout(600, 400); //Controlling width and height.
alertDialog.show();
OR
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(alertDialog.getWindow().getAttributes());
lp.width = 150;
lp.height = 500;
lp.x=-170;
lp.y=100;
alertDialog.getWindow().setAttributes(lp);
答案 1 :(得分:0)
替换下面的代码:
request.data