我知道之前已经问过这个问题,我尝试了几个答案,但没有一个有效。我有一个EditText,用户可以在其中给出图片的标题。 editText继续将文本写入一行。它没有进入下一行。我希望文本在到达屏幕的边框/结尾时自动转到下一行。这是我的代码。如果我在代码中犯了任何错误,请告诉我。
<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 :(得分: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;
}
});
希望这会对你有所帮助。