Hello Reader,
This is the 13th post in the "Week In Review" series, where I share the Flutter\Dart tips I tweeted last week. My goal is to have at least 100 tips in this series.
1- Use GestureDetector to detect gestures like tap, double Tap, press, LongPress, pan, drag, zoom etc.
...
Container(
color: _color,
height: 200.0,
width: 200.0,
child: GestureDetector(
onTap: () {
setState(() {
_color = Colors.yellow;
});
},
),
)
...
Try it on DartPad here
2- The AnimatedDefaultTextStyle will transitions the default text style over a given duration whenever the given style changes.
...
AnimatedDefaultTextStyle(
duration: Duration(milliseconds: 300),
child: Text("Flutter"),
style: newStyle,
)
...
Try it on DartPad here
3- Use Future.delayed() to pause program flow for a certain duration.
...
await Future.delayed(const Duration(seconds: 1));
...
Try it on DartPad here
4- Use DecoratedBoxTransition to animates the different properties of DecoratedBox.
...
DecoratedBoxTransition(
position: DecorationPosition.background,
decoration: decorationTween.animate(_controller),
child: Container(
child: Container(
width: 200,
height: 200,
padding: EdgeInsets.all(20),
child: FlutterLogo(),
),
),
),
...
Try it on DartPad here
5- Use Divider widget to create a one pixel thick horizontal line, with padding on either side.
...
ListTile(
title: Text('Item1')
),
Divider(),
ListTile(
title: Text('Item2'),
),
...
Try it on DartPad here
6- Use DropdownButton widget to create a button for selecting from a list of items.
...
DropdownButton<String>(
value: dropdownValue,
onChanged: (String? newValue) {
setState(() {
dropdownValue = newValue!;
});
},
items: <String>['One', 'Two', 'Free', 'Four']
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
),
...
Try it on DartPad here
See you next week. 👋🏻
Follow me on Twitter for more tips about #coding, #learning, #technology...etc.
Check my Apps on Google Play & Apple Store
Cover image Clem Onojeghuo on Unsplash
Top comments (0)