Android EditText в AlertDialog кажется слишком широким
Похоже, что EditText на изображении ниже слишком широк. Я предполагаю, что я неправильно использовал SDK и до тех пор, пока не убедился в противном случае, я не ищу способ указать некоторое количество пикселов margin/padding по сторонам EditText
.
![enter image description here]()
Это выглядит более подходящим.
![enter image description here]()
Здесь мой код (который создает первый, "Создать тег", диалог):
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();
Извините за длину сообщения и спасибо за любые полезные комментарии.
Ответы
Ответ 1
Просто отсортировал это сам. Используя экземпляр 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();
Изменить: я знаю, что этот вопрос старый, но решение не было предоставлено.
Ответ 2
Вы можете сделать это следующим образом:
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
.
Ответ 3
Установите макет marginleft и layout marginright на 5sp. Поля задают пространство вокруг группы просмотра. Взгляните на ViewGroup.MarginLayoutParams
Ответ 4
Попробуйте установить дополнение на вашем EditText
с помощью метода setPadding. Это должно добавить разрыв между краем EditText и границей диалога. N