如何在Android中以编程方式设置EditText框的高度和宽度

Ron*_*hta 19 android android-edittext

我想EditText在Android中以编程方式管理框的高度和宽度.我试过edittext.setWidth(32);edittext.setEms(50);,但两者都没有工作.请参阅下面的代码,因为我正在使用它EditText在Android中创建动态s.

private EditText createEditText()
{
    final LayoutParams lparams = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
    final EditText edittext = new EditText(this);
    edittext.setLayoutParams(lparams);
    edittext.setWidth(32);
    edittext.setEms(50);
    return edittext;
}
Run Code Online (Sandbox Code Playgroud)

Dhr*_*sha 27

private EditText createEditText()
{
    final LayoutParams lparams = new LayoutParams(50,30); // Width , height
    final EditText edittext = new EditText(this);
    edittext.setLayoutParams(lparams);
    return edittext;
}
Run Code Online (Sandbox Code Playgroud)

试试这个.

  • 要导入哪个`LayoutParams`? (6认同)
  • 需要导入ViewGroup.LayoutParams (3认同)

小智 13

edittext.getLayoutParams().width=32;
Run Code Online (Sandbox Code Playgroud)

  • 这导致我NullPointerExceptions ... :-( (6认同)

小智 8

DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
final float height = metrics.heightPixels;

EditText edittext = new EditText(this);

edittext.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,(int) (height/2)));
Run Code Online (Sandbox Code Playgroud)