it-swarm.com.de

Wie ändert man den Wert innerhalb eines Textfeldes?

Ich habe ein TextEditingController, bei dem ein Benutzer, wenn er auf eine Schaltfläche klickt, Informationen hinzufügt. Ich kann anscheinend nicht herausfinden, wie ich den Text in einem Textfield oder TextFormField ändern kann. Gibt es eine lösung

25
Daniel

Ändern Sie einfach die Eigenschaft text

    TextField(
      controller: txt,
    ),
    RaisedButton(onPressed: () {
        txt.text = "My Stringt";
    }),

während txt nur ein TextEditingController ist

  var txt = TextEditingController();
37
Raouf Rahiche
_mytexteditingcontroller.value = new TextEditingController.fromValue(new TextEditingValue(text: "My String")).value;

Dies scheint zu funktionieren, wenn jemand einen besseren Weg hat, zögern Sie nicht, mich zu informieren.

6
Daniel

Sie können den Textbearbeitungs-Controller verwenden, um den Wert in einem Textfeld zu bearbeiten.

var textController = new TextEditingController();

Erstellen Sie nun ein neues Textfeld und legen Sie textController als Controller für das Textfeld fest (siehe unten).

 new TextField(controller: textController)

Erstellen Sie nun irgendwo in Ihrem Code einen RaisedButton und setzen Sie den gewünschten Text in der onPressed -Methode des RaisedButton.

new RaisedButton(
       onPressed: () {
          setState(() {
             textController.text = "New text";
          });
       }
    ),
4
Chaythanya nair

Mit dieser Lösung können Sie auch den Cursor an das Ende setzen von neuem Text.

final TextEditingController _controller = TextEditingController();

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: Center(child: TextField(controller: _controller)),
    floatingActionButton: FloatingActionButton(
      onPressed: () {
        _controller.text = "Hello";

        // this changes cursor position
        _controller.selection = TextSelection.fromPosition(TextPosition(offset: _controller.text.length));
        setState(() {});
      },
    ),
  );
}
1
CopsOnRoad