Как сделать Android EditText расширяться по вертикали, когда полный

У меня есть этот EditText

<EditText
    android:layout_width="match_parent"
    android:layout_height="72dp"
    android:hint="@string/write_message"
    android:textColorHint="@color/primary_color"
    android:ems="10"
    android:imeOptions="actionDone"
    android:inputType="textImeMultiLine"
    android:id="@+id/message_input"
    android:layout_gravity="center_horizontal"
    android:backgroundTint="@color/primary_color"/>

когда поле заполняется введенным пользователем текстом, он прокручивается вправо, чтобы освободить место для большего количества текста, мне не нравится это поведение, и я бы предпочел, чтобы поле EditText расширилось вверх, когда ему нужно больше места? Есть ли способ сделать это? Спасибо.

1 ответов


Да, это на самом деле включает в себя две вещи:

  1. делает EditText принимаем мульти-линейный вход.
  2. его высота растет по мере добавления дополнительных текстовых строк.

поэтому для достижения этой цели необходимо настроить:

android:inputType="textMultiLine"
android:layout_height="wrap_content"

(помните о разницу между textMultiLine и textImeMultiLine).

полный фрагмент XML будет:

<EditText
    android:layout_width="match_parent"
    android:inputType="textMultiLine"
    android:layout_height="wrap_content"
    android:hint="@string/write_message"
    android:textColorHint="@color/primary_color"
    android:ems="10"
    android:imeOptions="actionDone"
    android:id="@+id/message_input"
    android:layout_gravity="center_horizontal"
    android:backgroundTint="@color/primary_color"/>