看起来下图中的EditText太宽了。我假设我以某种方式滥用了SDK,直到确信我没有想办法在EditText
的两侧指定一些边距/填充像素。
这个看起来更合适。
这是我的代码(创建第一个“创建标记”对话框):
final Dao<Tag, Integer> tagDao = getHelper().getTagDao();
final EditText input = new EditText(this);
input.setSingleLine(true);
input.setHint(R.string.create_tag_dialog_hint);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(input);
builder.setTitle(getString(R.string.create_tag_dialog_title));
builder.setPositiveButton(
getString(R.string.create_tag_dialog_positive),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString().trim();
Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();
Tag tag = new Tag(value);
try {
tagDao.create(tag);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
builder.setNegativeButton(
getString(R.string.create_tag_dialog_negative), null);
builder.show();
对不起该帖子的长度,感谢任何有用的评论。
答案 0 :(得分:30)
我自己整理了一下。使用AlertDialog
的实例,您可以指定setView
并传入间距参数。这将有效。
final EditText input = new EditText(this);
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Title");
alertDialog.setMessage("Message");
alertDialog.setView(input, 10, 0, 10, 0); // 10 spacing, left and right
alertDialog.setButton("OK", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Clicked
}
});
alertDialog.show();
编辑:我知道这个问题很旧,但没有提供任何解决方案。
答案 1 :(得分:13)
你可以这样做:
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setGravity(Gravity.CENTER_HORIZONTAL);
final EditText input = new EditText(this);
input.setSingleLine(true);
layout.setPadding(10, 0, 10, 0);
input.setHint("Hint");
layout.addView(input);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(layout);
此外,不推荐使用setSingleLine
。您应该使用InputStyle
。
答案 2 :(得分:1)
将布局marginleft和layout marginright设置为5sp。边距设置视图组周围的空间。看看ViewGroup.MarginLayoutParams
答案 3 :(得分:0)
尝试使用setPadding方法在EditText
上设置一些填充。这应该在EditText的边缘和对话框的边框之间添加一个间隙。 Ñ