Wie kann ich in der Android- EditText
Ansicht mehrzeilig sein ?
481
Wie kann ich in der Android- EditText
Ansicht mehrzeilig sein ?
Standardmäßig sind alle EditText
Widgets in Android mehrzeilig.
Hier ist ein Beispielcode:
<EditText
android:inputType="textMultiLine" <!-- Multiline input -->
android:lines="8" <!-- Total Lines prior display -->
android:minLines="6" <!-- Minimum lines -->
android:gravity="top|left" <!-- Cursor Position -->
android:maxLines="10" <!-- Maximum Lines -->
android:layout_height="wrap_content" <!-- Height determined by content -->
android:layout_width="match_parent" <!-- Fill entire width -->
android:scrollbars="vertical" <!-- Vertical Scroll Bar -->
/>
inputType
negiert mindestens dielines
undminLines
Attribute. Ich hatteinputType="phone"
und die Linien Attribute hatte keine WirkungIndexOutOfBoundsException
, sobald Sie etwasandroid:inputType="textMultiLine"
Möglicherweise finden Sie es besser zu verwenden:
Dies liegt daran, dass
android:singleLine
veraltet ist.quelle
singleLine
Teil ihrer Antwort entfernt haben (vor langer Zeit). In Bezug auf die Frage selbst ist dies der wichtigste Teil ihrer Antwort.IndexOutOfBoundsException
, sobald Sie etwas eingeben. Multiline ist jetzt die Standardeinstellung.Das funktioniert bei mir, eigentlich sind diese 2 Attribute wichtig: inputType und lines . Außerdem benötigen Sie möglicherweise eine Bildlaufleiste. Der folgende Code zeigt, wie Sie eine erstellen:
quelle
So habe ich das folgende Code-Snippet angewendet und es funktioniert einwandfrei. Hoffe, das würde jemandem helfen.
Prost! ...Vielen Dank.
quelle
Versuchen Sie dies, fügen Sie diese Zeilen zu Ihrer Textansicht hinzu, ich werde meine hinzufügen. Stellen Sie sicher, dass Sie es verstehen
und auf Ihrer Java-Klasse machen Sie auf Klicklistener zu diesem Bearbeitungstext wie folgt, ich füge meine, chane Namen entsprechend Ihren hinzu.
Das funktioniert gut für mich
quelle
EditText verfügt über die Eigenschaft singleLine . Sie können im XML oder durch Aufrufen von setSingleLine (false) festlegen. http://developer.android.com/reference/android/widget/TextView.html#setSingleLine%28%29
quelle
Alle diese sind nett, funktionieren aber nicht, wenn Sie Ihren Edittext in der Bildlaufansicht der oberen Ebene haben :) Das vielleicht häufigste Beispiel ist die Ansicht "Einstellungen", die so viele Elemente enthält, dass sie über den sichtbaren Bereich hinausgehen. In diesem Fall setzen Sie sie alle in die Bildlaufansicht, um die Einstellungen scrollbar zu machen. Falls Sie in Ihren Einstellungen mehrzeiligen, scrollbaren Bearbeitungstext benötigen, funktioniert der Bildlauf nicht.
quelle
quelle
Verwenden Sie das XML-Attribut, um die Anzahl der Zeilen zu deaktivieren, die zuvor im Thema zugewiesen wurden:
android:lines="@null"
quelle
Diese Codezeile funktioniert für mich. Fügen Sie diesen Code, den Sie bearbeitet haben, in Ihre XML-Datei ein.
quelle
Fügen Sie dies einfach
android:inputType="textMultiLine"
in der XML-Datei in das entsprechende Feld ein.quelle
Ich habe dies von http://www.pcsalt.com/android/edittext-with-single-line-line-wrapping-and-done-action-in-android/ gelernt , obwohl mir die Website selbst nicht gefällt. Wenn Sie mehrzeilig sein möchten, ABER die Eingabetaste als Post-Schaltfläche beibehalten möchten, setzen Sie das "horizontale Scrollen" der Listenansicht auf "false".
android:scrollHorizontally="false"
Wenn es in XML nicht funktioniert, funktioniert es programmgesteuert seltsam.
listView.setHorizontallyScrolling(false);
quelle
und in Aktivität zum Entfernen von "\ n" drückt der Benutzer auf die nächste Zeile
quelle
Wenn jemand AppCompatEditText verwendet , müssen Sie inputType = "textMultiLine" setzen. Hier ist der Code, den Sie kopieren können
für den Hintergrund
quelle
Eine andere nette Sache zu tun ist,
android:minHeight
zusammen mit zu verwendenandroid:layout_height="wrap_content"
. Auf diese Weise können Sie die Größe der Bearbeitung festlegen, wenn sie leer ist, und wenn der Benutzer Inhalte eingibt, wird sie entsprechend der Eingabe durch den Benutzer, einschließlich mehrerer Zeilen, gedehnt.quelle