2017-06-17 60 views
1

我知道這個問題已被問及之前,我嘗試了幾個答案,但他們都沒有工作。我有一個EditText用戶給圖片的標題。 editText不斷將文本寫入一行。它不會去下一行。我希望文本在到達屏幕邊框/結尾時自動轉到下一行。這是我的代碼。如果我在代碼中犯了錯誤,請告訴我。EditText一直寫在單行Android

<EditText 
       android:layout_marginTop="8dp" 
       android:layout_width="match_parent" 
       android:layout_height="80dp" 
       android:gravity="start" 
       android:inputType="textMultiLine|textPersonName" 
       android:hint="Write some thing about the photo" 
       android:maxLength="160" 
       android:paddingLeft="8dp" 
       android:textSize="14sp" 
       android:layout_below="@+id/privacyHolder" 
       android:lines="3" 
       android:layout_alignParentEnd="true" 
       android:ems="20" 
       android:paddingEnd="4dp" 
       android:maxLines="3" 
       android:layout_marginEnd="4dp" 
       android:layout_marginStart="4dp" 
       android:paddingTop="4dp" 
       android:background="@drawable/roundedbutton" 
       android:id="@+id/description" 
       /> 

回答

0

在資源,設計自己的編輯文本如下:

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="text|textMultiLine|textCapSentences" 
    android:gravity="left" 
    /> 

在活動中您可以使用TextWatcher當文本超過幾個字符,並自動下移聽。

下面是摘錄:

private boolean isReach = false; 

// put this in onCreate method 
edittext.addTextChangedListener(new TextWatcher(){ 
    @Override 
    public void afterTextChanged(Editable s) { 
     // if edittext has 20 character reached add a new line, you can use either 20 or more here 
     if(yourtextEd.getText().length() == 20 && !isReach) { 
      yourtextEd.append("\n"); 
      isReach = true; 
     } 
     // if edittext has less than 20 characters and isReach has set , change 
     if(yourtextEd.getText().length() < 20 && isReach) isReach = false; 
    } 
}); 

希望這會幫助你。

+0

對於遲到回覆感到抱歉。我試過解決方案,但不幸的是這不起作用:( –