J'ai formé pour saisir des informations de l'utilisateur. Mais lorsque je tapote sur TeintFormfield et le clavier, cela disparaît.
https://youtu.be/uhvl2hqwolq p>
Voici mon code: p>
3 Réponses :
envelopper le conteneur code> code> qui a le TextFormfield code> dans un SIZEBOX CODE>: new Form(
autovalidate: false,
key: _formKey,
child: new Container(
height: orientation == Orientation.portrait ? MediaQuery.of(context).size.height : MediaQuery.of(context).size.width/1.2 ,
padding: EdgeInsets.only(left: 10.0, right: 10.0),
child: new Column(
//mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Container(
padding: EdgeInsets.only(top: 20.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
new SizedBox(
width: MediaQuery.of(context).size.width,
height: 100.0,
child: new Container(
padding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 0.0),
child:new TextFormField(
style: styleTextField,
keyboardType: TextInputType.text,
autofocus: true,
maxLength: 45,
decoration: InputDecoration(
hintText: 'Enter Title',
prefixIcon: Icon(
Icons.title,
size: 30.0,
color: blueColor,
)
),
validator: validateTitle,
onSaved: (String val) {
strTitle = val;
},
),
),
)
]
)
)
]
)
)
)
J'ai utilisé un SIZEBOX CODE> avec une colonne code> enfant code>, puis je mettez le TextFormfield code> à l'intérieur et cela fonctionne pour moi. Essayez de l'ajouter et dites-moi si cela fonctionnait pour vous.
Ok, laissez-moi vous dire plus de détails comme je comprends que votre solution est la meilleure pour un autre scénario. J'ai un contrôleur de barre d'onglets et pour cela, j'ai créé une classe distincte. Dans cette classe, j'ai ajouté un formulaire. Cela ne fonctionne pas comme dont j'ai besoin. Pour plus d'informations, j'ai aussi ajouté une vidéo.
@Codehunter Je vais vous montrer la hiérarchie complète de ma forme, je ne pense pas la mettre dans une barre d'onglets causant le problème.
Par mon compréhension de la vidéo, car vous avez utilisé un Essayez de régler Exemple: P> listview code> à l'intérieur de votre formulaire, la liste défile vers le haut une fois que le clavier apparaît donc qu'il disparaît. resizetoavoidebottompadding : faux code> dans votre échafaudage. Cela fera apparaître le clavier comme une superposition et ne poussera pas le contenu vers le haut. P> @override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
resizeToAvoidBottomPadding: false,
body:new Container(
child: new Form(
key: _key,
autovalidate: _validate,
child: formUI(),
),
),
);
}
Flutter: ══╡ Exception capturée par la bibliothèque de rendu ╞═══════════════════════════════════════ ══════════════════ Flutter: Le message suivant a été lancé pendant la mise en page: Flutter: un renduflex débordé de 295 pixels sur le fond. Flutter: Flutter: Le Renderflex débordant a une orientation d'axis.vertical. flotter: le bord du rendu qui déborde a été marqué dans le rendu avec un jaune et
Si j'exécute le code que vous avez publié ci-dessus, je ne reçois pas l'exception, mais l'exception est probablement parce que le conteneur principal code> a été donné une hauteur infinie. Essayez de définir une hauteur finie comme hauteur: 200.0 code> pour le conteneur code> et laissez-moi savoir si vous avez toujours l'exception.
Définir le resizetoavoidbottompadding: false code> puis modifiez la colonne code> vers un listview code> p> p>
Pourriez-vous ajouter une capture d'écran de son apparence avant et après la disparition, cela facilitera la tâche de vous aider si nous savons ce qui se passe également visuellement.