Je veux que ma TextField
hauteur soit la même que la hauteur de mon conteneur. Veuillez vérifier mon code ci-dessous et faites-moi savoir comment puis-je faire TextField
match_parent de mon conteneur. J'ai vérifié cette question L'équivalent de wrap_content et match_parent dans flutter? mais je n'ai trouvé aucune solution. Je dois faire TextField
pour prendre toute la hauteur et la largeur de mon conteneur.
new Container(
height: 200.0,
decoration: new BoxDecoration(
border: new Border.all(color: Colors.black)
),
child: new SizedBox.expand(
child: new TextField(
maxLines: 2,
style: new TextStyle(
fontSize: 16.0,
// height: 2.0,
color: Colors.black
),
decoration: const InputDecoration(
hintText: "There is no data",
contentPadding: const EdgeInsets.symmetric(vertical: 40.0),
)
),
),
)
Veuillez vérifier la capture d'écran ci-dessous. Comme dit, j'ai besoin que mon TextField
pour prendre toute la hauteur de Container
Voici ma solution:
Container(
height: 200,
color: Color(0xffeeeeee),
padding: EdgeInsets.all(10.0),
child: new ConstrainedBox(
constraints: BoxConstraints(
maxHeight: 200.0,
),
child: new Scrollbar(
child: new SingleChildScrollView(
scrollDirection: Axis.vertical,
reverse: true,
child: SizedBox(
height: 190.0,
child: new TextField(
maxLines: 100,
decoration: new InputDecoration(
border: InputBorder.none,
hintText: 'Add your text here',
),
),
),
),
),
),
),
Cela fonctionne assez bien pour moi. Et voici une capture d'écran.
Supprimons quelques lignes dans le code et comprenons comment fonctionne le flottement.
200
à Conteneur . Le Container
ne peut-il pas ajuster la hauteur en fonction de son enfant (dans ce cas SizedBox.expand)Container
occupait tout l'écran à cause de SizedBox.expand
SizedBox
pour notre cas d'utilisation. Supprimons cela pour voir également ce qui se passe.Container
enveloppe le TextField
. Mais il y a un espace au-dessus et en dessous.Version finale du code qui affiche l'image ci-dessus
new Container(
// height: 200.0,
decoration: new BoxDecoration(
border: new Border.all(color: Colors.black)
),
child: new TextField(
maxLines: 2,
style: new TextStyle(
fontSize: 16.0,
// height: 2.0,
color: Colors.black
),
decoration: const InputDecoration(
hintText: "There is no data",
// contentPadding: const EdgeInsets.symmetric(vertical: 40.0),
)
),
)