如何在使用特定大小时使单行EditText正确绘制

时间:2011-02-19 15:44:17

标签: java android android-edittext

我需要以编程方式设置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 个答案:

答案 0 :(得分:1)

尝试将发布代码的最后一行更改为此

layout.addView(et);