I am getting an error when I add a row in column. I am getting following error:
I/flutter ( 6449): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═══════════════
This happens only when you are trying to define an infinite width and height for a Row, Column or Container that is a parent of the TextField that wants to use all the space.
To solve this, you should wrap your TextField with Flexible or Expanded.
Do this to solve the issues above and beyond.
Expanded(
child: txtFirstName,
),
Flexible(
child: txtLastName,
),
Full example
Column(
children: <Widget>[
imgHeader,
lblSignUp,
txtEmail,
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Expanded(
child: txtFirstName,
),
Flexible(
child: txtLastName,
),
],
),
],
)
Reason for the error:
TextField expands in horizontal direction and so does the Row, so we need to constrain the width of the TextField, there are many ways of doing it.
Use Expanded
Row(
children: <Widget>[
Expanded(child: TextField()),
// more widgets
],
)
Use Flexible
Row(
children: <Widget>[
Flexible(child: TextField()),
// more widgets
],
)
Wrap it in Container or SizedBox and provide width
Row(
children: <Widget>[
SizedBox(width: 100, child: TextField()),
// more widgets
],
)
If you are using TextField Inside a Row then you need to use Flexible or Expanded.
More details are given here in this answer.
https://stackoverflow.com/a/45990477/4652688