J'ai un TextField comme celui-ci:
new Flexible(
fit: FlexFit.loose,
child: new Container(
alignment: FractionalOffset.topLeft,
child: new TextField(
decoration: new InputDecoration(
hintText: 'Add a note',
),
maxLines: 1,
onChanged: (value) => _showSaveOptions(value),
),
),
),
Je voudrais que mon TextField commence avec maxLines
mis à 1, mais en tapant, j'aimerais que maxLines augmente, de sorte que tout le texte reste sur la page et que je n'ai pas pour faire défiler vers le haut. Cependant, je ne veux pas non plus commencer avec maxLines
défini sur 5 ou 10, car le TextField vide prend plus d'espace que nécessaire. Un exemple du comportement que je veux implémenter se trouve dans l'option Texte à réponse longue dans Google Forms, où il commence par une ligne: et se développe au fur et à mesure que je tape:
J'ai envisagé de définir maxLines
sur un compteur qui s'incrémente chaque fois que l'utilisateur accède à une nouvelle ligne, mais comment puis-je déterminer quand l'utilisateur a rempli une ligne?
Flutter était en retard sur la prise en charge multiligne dans TextField. Après qu'un problème a été soulevé à ce sujet, la fonction multiligne a été ajoutée dans la version .0.16 .
Assurez-vous de mettre à niveau flutter vers la dernière version. Pour obtenir une utilisation TextField multiligne:
new TextField(
maxLines: null,
keyboardType: TextInputType.multiline,
)
J'espère que cela vous a aidé!
son aspect comme une zone de texte. vous pouvez essayer avec maxLines
maxLines: 8
TextField(
maxLines: 8,
decoration: InputDecoration(hintText: "Enter your text here", border: OutlineInputBorder(),
labelText: 'Post Body'),
),