Как заставить однострочный EditText правильно рисовать себя при использовании определенного размера - PullRequest
1 голос
/ 19 февраля 2011

Мне нужно программно установить высоту и ширину виджета EditText.Я использую RelativeLayout, чтобы сделать это, и он отлично работает, насколько размер, но фактический виджет рисует себя неправильно:

Incorrect Drawing of EditText

Я бы ожидал, что он будет рисоватьвот так (что будет, если я установлю высоту ViewGroup.LayoutParams.WRAP_CONTENT вместо запрашиваемой мной высоты - иногда): enter image description here

Есть идеи?

Обратите внимание, что я не могу переключиться на DIP: s (независимость от dpi фактически уже обработана движком, использующим этот код).Также обратите внимание, что я не нашел никакого значения setTextSize (), которое исправляет неправильное поведение.

Вот как я создаю свой виджет:

  EditText et = new EditText(this);
  et.setFocusable(true);
  et.setSingleLine(true);
  et.setHint(label);
  et.setText(text);
  et.setTextSize(TypedValue.COMPLEX_UNIT_PX,(h/3)+5);
  et.setId(cn); 
  rllp = new RelativeLayout.LayoutParams(w,h);
  rllp.leftMargin = x;
  rllp.topMargin = y;
  layout.addView(et,rllp);

1 Ответ

1 голос
/ 19 февраля 2011

попробуйте изменить последнюю строку опубликованного кода на

layout.addView(et);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...