Skip to content

Instantly share code, notes, and snippets.

@AlexKenbo
Created February 8, 2020 09:49
Show Gist options
  • Save AlexKenbo/8b4532b6df57aff8d76ee18cdf86d36f to your computer and use it in GitHub Desktop.
Save AlexKenbo/8b4532b6df57aff8d76ee18cdf86d36f to your computer and use it in GitHub Desktop.
When to use keys, part 1 - stataless
import 'package:flutter/material.dart';
import 'dart:math';
void main() {
runApp(new MaterialApp(home: PositionedTiles()));
}
class PositionedTiles extends StatefulWidget {
@override
State<StatefulWidget> createState() => PositionedTilesState();
}
class PositionedTilesState extends State<PositionedTiles> {
List<Widget> tiles = [
StatelessColorfulTile(),
StatelessColorfulTile(),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Row(children: tiles),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.sentiment_very_satisfied), onPressed: swapTiles),
);
}
swapTiles() {
setState(() {
tiles.insert(1, tiles.removeAt(0));
});
}
}
class StatelessColorfulTile extends StatelessWidget {
final Color myColor = UniqueColorGenerator().getColor();
@override
Widget build(BuildContext context) {
return Container(
color: myColor, child: Padding(padding: EdgeInsets.all(70.0)));
}
}
class UniqueColorGenerator {
UniqueColorGenerator();
var randomGenerator = Random();
List<Color> _listColors = [
Colors.pinkAccent,
Colors.brown,
Colors.green,
Colors.purple,
Colors.yellow
];
Color getColor() {
return _listColors[randomGenerator.nextInt(4)];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment