Я пытался получить мое поле EditText к переходу на новую строку, но, может казаться, не делаю это.
Я занимался намного более сложными проблемами при разработке приложений Android, и это кажется, что должен быть простой процесс.
Однако проблема остается, и у меня есть поле крупного текста, которое только позволяет мне вводить текст на одной строке, продолжаясь прямо через, прокручивая горизонтально, поскольку я ввожу текст.
Вот код XML для объекта EditText из моего файла расположения.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/myWidget48"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ScrollView
android:id="@+id/myScrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<LinearLayout
android:id="@+id/widget37"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<EditText
android:id="@+id/txtNotes"
android:layout_width="300px"
android:layout_height="120px"
android:scrollbars="vertical"
android:textSize="18sp"
android:gravity="left"
android:layout_marginTop="10dip"
android:inputType="textCapSentences"
>
</EditText>
</LinearLayout>
</ScrollView>
</LinearLayout>
Помимо поиска источник проблемы, я нашел решение. Если используется android: inputType
, то необходимо использовать textMultiLine для включения поддержки многострочного типа. Кроме того, использование inputType заменяет код android: singleLine = "false"
. Если используется inputType, то, повторюсь, необходимо использовать textMultiLine, иначе объект EditText будет состоять только из одной строки без переноса слов.
Редактировать: Спасибо Джейкобу Маллиету за дальнейшие полезные советы по этому поводу. Он предложил установить для логического свойства scrollHorizontally значение false, 'android: scrollHorizontally = "false"'
.
Пример кода XML:
<EditText
android:id ="@+id/edtInput"
android:layout_width ="0dip"
android:layout_height ="wrap_content"
android:layout_weight ="1"
android:inputType="textCapSentences|textMultiLine"
android:maxLines ="4"
android:maxLength ="2000"
android:hint ="@string/compose_hint"
android:scrollHorizontally="false" />
Я разобрался. Строка
android:inputType="textCapSentences"
была проблемой. Добавление этой строки к объекту EditText сделает объект EditText одной строкой и не позволит переносить слова или позволить пользователю нажать «Enter» для вставки перевода строки или возврата каретки в EditText.
Хорошо, я понял, вы должны установить android: scrollHorizontally = "false"
для своего EditText
в вашем xml. Я почти уверен, что это должно сработать.