Code the Flex using Dart Flutter
2 min readJul 6, 2022
This article is a part of User Interface development notebook by Fariz Mamad
UI design may have typical components or widgets ratio to make it aesthetic. We, the UI developer, have to scale the ratio of widgets appropriately within the screen.
Flex helps us code the ratio. In short, flex is the parameter that set the area occupied by widgets based on the number of widgets. For examples:
# w = widgets
2 w in 1 area = flex with denominator 2
3 w in 1 area = flex with denominator 3
4 w in 1 area = flex with denominator 4
… and so forth.
Good news! Code snippets for Dart Flutter is provided here. Check this out.
Flex 1/2
class MyFlexPage extends StatelessWidget {
const MyFlexPage({ Key? key }) : super(key: key);
@override Widget build(BuildContext context) {
return Column (
children: [
Expanded(
flex: 1,
child: Container(
alignment: Alignment.center,
width: double.infinity,
decoration: BoxDecoration(color: Colors.amber,),
child: Text(
"Flex: 1/2",
style: TextStyle(color: Colors.white),
)
),
),
Expanded(
flex: 1,
child: Container(
alignment: Alignment.center,
width: double.infinity,
decoration: BoxDecoration(color: Colors.green,),
child: Text(
"Flex: 1/2",
style: TextStyle(color: Colors.white),
),
),
)
]
);
}
}
Flex 2/3 vs 1/3
class MyFlexPage extends StatelessWidget {
const MyFlexPage({ Key? key }) : super(key: key);
@override Widget build(BuildContext context) {
return Column (
children: [
Expanded(
flex: 2,
child: Container(
alignment: Alignment.center,
width: double.infinity,
decoration: BoxDecoration (color: Colors.amber,),
child: Text(
"Flex: 2/3",
style: TextStyle(color: Colors.white),
)
),
),
Expanded(
flex: 1,
child: Container(
alignment: Alignment.center,
width: double.infinity,
decoration: BoxDecoration(color: Colors.green,),
child: Text(
"Flex: 1/3",
style: TextStyle(color: Colors.white),
),
),
),
],
)
}
}
Flex 3/4 vs 1/4
class MyFlexPage extends StatelessWidget {
const MyFlexPage({ Key? key }) : super(key: key);
@override Widget build(BuildContext context) {
return Column (
children: [
Expanded(
flex: 3,
child: Container(
alignment: Alignment.center,
width: double.infinity,
decoration: BoxDecoration (color: Colors.amber,),
child: Text(
"Flex: 3/4",
style: TextStyle(color: Colors.white),
),
),
Expanded(
flex: 1,
child: Container(
alignment: Alignment.center,
width: double.infinity,
decoration: BoxDecoration (color: Colors.green,),
child: Text(
"Flex: 1/4",
style: TextStyle(color: Colors.white),
),
),
),
],
);
}
}