我有一个扩展AlertDialog的自定义类。我想创建一个对话框,我可以通过编程方式控制宽度,高度,x和y位置。这是我现在拥有的:
MyDialog md = new MyDialog(context, AlertDialog.THEME_HOLO_LIGHT);
//md.setMessage("");
md.show();
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(md.getWindow().getAttributes());
lp.x = 100;
lp.y = 400;
lp.width = 200;
lp.height = 400;
md.getWindow().setAttributes(lp);
如果删除setMessage行,则不显示任何对话框。如果我把它留在里面虽然会显示一个奇怪的空白对话框:
对话框的高度似乎锁定在单行文本的高度,而不是使用设置的高度值。
对话框显示为一行高,但是,它不允许它在屏幕上比设置的高度允许的更低。一个对话框将自己定位在屏幕上以确保所有内容始终可见,这就是发生这种情况的原因。
另外,如果我在setMessage方法中添加了大量文本,对话框将会拉伸以包含所有文本,有没有办法设置它以便裁剪任何不合适的内容?
总结:在我想要禁用的格式化方面,警报对话框似乎在后面做了很多。有没有更好的格式化对话框的方法? 这个问题的解决方案必须使用Dialog作为基类。提前谢谢。