Respuestas:
(De la lista de correo. No se me ocurrió esta respuesta).
class _FooState extends State<Foo> {
TextEditingController _controller;
@override
void initState() {
super.initState();
_controller = new TextEditingController(text: 'Initial value');
}
@override
Widget build(BuildContext context) {
return new Column(
children: <Widget>[
new TextField(
// The TextField is first built, the controller has some initial text,
// which the TextField shows. As the user edits, the text property of
// the controller is updated.
controller: _controller,
),
new RaisedButton(
onPressed: () {
// You can also use the controller to manipuate what is shown in the
// text field. For example, the clear() method removes all the text
// from the text field.
_controller.clear();
},
child: new Text('CLEAR'),
),
],
);
}
}
Puede usar un en TextFormField
lugar de TextField
, y usar la initialValue
propiedad. por ejemplo
TextFormField(initialValue: "I am smart")
No tiene que definir una variable separada en el alcance del widget, solo hágalo en línea:
TextField(
controller: TextEditingController()..text = 'Your initial value',
onChanged: (text) => {},
)
Si está utilizando TextEditingController , configure el texto como se muestra a continuación
TextEditingController _controller = new TextEditingController();
_controller.text = 'your initial text';
final your_text_name = TextFormField(
autofocus: false,
controller: _controller,
decoration: InputDecoration(
hintText: 'Hint Value',
),
);
y si no está utilizando ningún TextEditingController , puede usar directamente InitialValue como se muestra a continuación
final last_name = TextFormField(
autofocus: false,
initialValue: 'your initial text',
decoration: InputDecoration(
hintText: 'Last Name',
),
);
Para más referencia TextEditingController
text
propiedad según los documentos de la TextEditingController.text
propiedad: al configurar esto, se notificará a todos los oyentes de este TextEditingController que necesitan actualizar (llama a notifyListeners). Por esta razón, este valor solo debe establecerse entre cuadros, por ejemplo, en respuesta a las acciones del usuario, no durante las fases de construcción, diseño o pintura. ( api.flutter.dev/flutter/widgets/TextEditingController/text.html )
Si desea manejar múltiples TextInput
correos electrónicos según lo solicitado por @MRT en el comentario a la respuesta aceptada, puede crear una función que tome un valor inicial y devuelva un aspecto TextEditingController
como este:
initialValue(val) {
return TextEditingController(text: val);
}
Luego, configure esta función como el controlador para el TextInput
y proporcione su valor inicial allí de esta manera:
controller: initialValue('Some initial value here....')
Puede repetir esto para el otro TextInput
s.
Esto se puede lograr usando TextEditingController
.
Para tener un valor inicial puedes agregar
TextEditingController _controller = TextEditingController(text: 'initial value');
o
Si está utilizando TextFormField
, tiene una initialValue
propiedad allí. Lo que básicamente proporciona esto initialValue
al controlador automáticamente.
TextEditingController _controller = TextEditingController();
TextFormField(
controller: _controller,
initialValue: 'initial value'
)
Para borrar el texto puedes usar el
_controller.clear()
método.
dentro de clase,
final usernameController = TextEditingController(text: 'bhanuka');
Campo de texto,
child: new TextField(
controller: usernameController,
...
)
TextEdittingController _controller = new TextEdittingController(text: "your Text");
o
@override
void initState() {
super.initState();
_Controller.text = "Your Text";
}
Si no ha encontrado la respuesta para esto y para aquellos que vienen aquí buscando una respuesta: InputDecoration
Revise la pista del campo Texto:
new TextField(
decoration: new InputDecoration(
hintText:"My Text String."
),
...