根据内容动态设置EditText的高度

时间:2017-10-14 06:33:17

标签: android android-layout android-edittext

我有一个编辑文本,我在其中使用setText在编辑表单上加载数据。目前editText高度是固定的,如果文本大于editText高度,我不能一次看到全文。  有没有基于内容的方法我可以动态设置EditText的高度。

提前感谢您的帮助和建议

此致 [R

5 个答案:

答案 0 :(得分:4)

您可以将此代码用于xml文件:

<EditText
   android:id="@+id/edtFirstName"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:hint="@string/first_name"
   android:padding="5dp"
   android:textColor="@color/black"
   android:textSize="16sp" />

当您的编辑文字包含时,它会自动适合文字大小。

请勿使用 android:singleLine="true"android:minLines="1"android:maxLines="1"

答案 1 :(得分:2)

尝试设置编辑文本的高度,如下所示:

android:layout_height="wrap_content"

答案 2 :(得分:2)

设置 android:layout_height wrap_content是最好的方法。

  

视图应该足够大,以包含其内容。

使用DisplayMetrics 动态设置 EditText 的高度。

    DisplayMetrics metrics = getResources().getDisplayMetrics();

    int DeviceTotalWidth = metrics.widthPixels;
    int DeviceTotalHeight = metrics.heightPixels;

如何?

if(length()>n) // n is your String length
editTEXT.getLayoutParams().height=DeviceTotalHeight*10/100;

答案 3 :(得分:1)

试试,这可能会有所帮助 - :

  edittext.getLayoutParams().width=50
    et= (CustomEditText) findViewById(R.id.et);
    ViewGroup.LayoutParams lp = et.getLayoutParams();
    lp.width = 100;
    lp.height = 100;
    et.setLayoutParams(lp);

答案 4 :(得分:1)

这可能会对你有帮助,

使用 android:layout_height ="wrap_content" android:inputType="textMultiLine" 是最佳方法

 <EditText
    android:id ="@+id/editText"
    android:layout_width ="match_parent"
    android:layout_height ="wrap_content"
    android:inputType="textMultiLine"
    android:hint ="Hint"
    android:scrollHorizontally="false" />

我建议您使用 ScrollView 作为 EditText

的父级布局

如果EditText

较大,会阻止text从屏幕上切断(屏幕外)