You will want to use the LayoutBuilder widget which will build at layout time and provides the parent widget’s constraints.
The LayoutBuilder
takes in a build()
function which has the the standard BuildContext along with the BoxConstraints as parameters that can be used to help dynamically render widgets based on size.
Let’s build a simple example of widget that renders “LARGE” if the parent width is greater than 200px and “SMALL” if the parent width is less or equal to that.
var container = new Container(
// Toggling width from 100 to 300 will change what is rendered
// in the child container
width: 100.0,
// width: 300.0
child: new LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
if(constraints.maxWidth > 200.0) {
return new Text('BIG');
} else {
return new Text('SMALL');
}
}
),
);