2014-12-30 75 views
6

我有這樣的EditText如何讓Android的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框向上擴展,會更喜歡它?有沒有辦法做到這一點?謝謝。

回答

16

是的,這實際上涉及到兩個方面:

  1. 使得EditText接受多行輸入。
  2. 隨着更多文本行的添加,其高度也隨之增加。

因此,要做到這一點,你需要設置:

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

(要留意difference between textMultiLine and 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"/>  
+1

奇妙感謝。 – ChristianCuevas

+7

如果'inputType'爲'textMultiline','imeOptions'將被忽略 – Eliezer