Es mag einfach klingen, aber wie können wir ein mehrzeiliges bearbeitbares Textfeld im Flattern erstellen? TextField funktioniert nur mit einer einzelnen Zeile.
Bearbeiten: einige Präzisionen, weil es scheint, dass es nicht klar ist. Sie können festlegen, dass der Textinhalt mehrzeilig umbrochen wird, er ist jedoch immer noch nicht mehrzeilig. Es ist eine einzelne Zeile, die in mehreren Zeilen angezeigt wird. Wenn Sie so etwas tun möchten, können Sie es nicht. Weil Sie keinen Zugriff auf die ENTER
Schaltfläche haben. Und keine Eingabetaste bedeutet keine mehrzeilige.
maxLines: null
. Ohne Hallo scheint es nicht zu funktionierenWenn Sie möchten, dass sich Ihr TextInputField an die Benutzereingaben anpasst, gehen Sie folgendermaßen vor:
Stellen Sie hier die maximale Anzahl der Zeilen auf das ein, was Sie möchten, und Sie können loslegen. Meiner Meinung nach ist es keine gute Wahl, die Maxlines auf Null zu setzen. Wir sollten sie auf einen bestimmten Wert setzen.
quelle
Obwohl andere bereits erwähnt haben, dass der Tastaturtyp "TextInputType.multiline" verwendet werden kann, wollte ich meine Implementierung eines TextField hinzufügen, das seine Höhe automatisch anpasst, wenn eine neue Zeile eingegeben wird, da häufig das Eingabeverhalten von nachgeahmt werden soll WhatsApp und ähnliche Apps.
Zu diesem Zweck analysiere ich bei jeder Änderung des Textes die Anzahl der Chat-Zeichen in der Eingabe. Dies scheint ein Overkill zu sein, aber leider habe ich bisher in Flutter keine bessere Möglichkeit gefunden, dieses Buhivour zu erreichen, und ich habe auch bei älteren Smartphones keine Leistungsprobleme festgestellt.
quelle
TextField
hat die Eigenschaft maxLines .quelle
benutze das
quelle
Geben Sie TextInputAction.newline einen machen TextField- reagieren auf die Enter - Taste und akzeptieren Eingang mehrzeiligen :
quelle
Verwenden Sie
expands
und Sie brauchen nicht zu gebenminLines
odermaxLines
einen bestimmten Wert:quelle
Offizielles Dokument besagt : Die
maxLines
Eigenschaft kann auf null gesetzt werden, um die Beschränkung der Anzahl der Zeilen aufzuheben. Standardmäßig ist es eins, was bedeutet, dass dies ein einzeiliges Textfeld ist.HINWEIS:
maxLines
darf nicht Null sein.quelle
Wenn oben einmal nicht für Sie funktioniert hat, versuchen Sie auch , minLines hinzuzufügen
quelle