在AlertDialog中调整EditText的大小

6
我正在寻找一种方法来调整位于AlertDialog中的EditText的大小(以便它不会触及边缘)。

enter image description here

我的示例代码

AlertDialog.Builder alert = new AlertDialog.Builder(myActivity.this);

alert.setTitle("Test");

EditText textBox = new EditText(myActivity.this);
alert.setView(textBox);

alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
    // do nothing 
    }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
// do nothing
}
});

alert.show();

我尝试了这里提供的解决方案,但都没有成功:

1个回答

27

将您的EditText放在一个LinearLayout中,并为该布局设置边距。

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Test");

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(20, 0, 30, 0);

EditText textBox = new EditText(myActivity.this);
layout.addView(textBox, params);

alert.setView(layout);

alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
    // do nothing 
    }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
// do nothing
}
});

alert.show();

谢谢您抽出时间,这有助于将正确的代码放在正确的位置上。 - ThePaul
对我来说,这使得editText看起来更好 -> params.setMargins(55, 0, 55, 0); - Rajeev Jayaswal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接