无法在Android中使用Java设置EditText高度?

时间:2013-02-06 11:56:36

标签: java android android-edittext

这是我的代码:

LinearLayout llgrower= new LinearLayout(this);
int percent_x=80,percent_y=10;
Display display = getWindowManager().getDefaultDisplay();
edittextwidth = (int) ((int)(display.getWidth())*percent_x/100);
edittextheight= (int) ((int)(display.getHeight())*percent_y/100);

EditTextObject包含默认方法,如settext,setwidth,setheight等

EditTextObject objedt=new EditTextObject(this);                         
objedt.setText("Some text");
objedt.setWidth(edittextwidth);
objedt.setHeight(edittextheight);
llgrower.addView(objedt);   

setWidth工作正常,但setHeight对Edittext无法正常工作。我在TextView上尝试了相同的代码,setWidth和setHeight都正常工作。

3 个答案:

答案 0 :(得分:0)

使用这样设置edittext的高度小于实际大小。也不要忘记setTextSize,因为你的文本的某些部分可能会进入无法使用状态。

EditText et = (EditText) findViewById(R.id.et);
et.setLayoutParams(new LinearLayout.LayoutParams(200,15)); 
et.setTextSize(10);

我希望这会对你有所帮助。感谢。

答案 1 :(得分:0)

在Java中你可以试试这个:

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

        EditText e = (EditText) findViewById(R.id.edit);
        e.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, (int) (height/2)));

        LinearLayout l = (LinearLayout) findViewById(R.id.layout);
        l.requestLayout();
    }
}

给定布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <EditText android:id="@+id/edit"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:text="@string/hello"
            />
</LinearLayout>

答案 2 :(得分:0)

尝试 .setLayoutParams(*** params * )**

重复此主题?:

how to set EditText box height and width programmatically in android

...
final LayoutParams lparams = new LayoutParams(10,20); // Width , height
final EditText edittext = new EditText(this);
edittext.setLayoutParams(lparams);
...