Skip to content

Instantly share code, notes, and snippets.

@efortuna
efortuna / hover.dart
Created March 26, 2019 22:51
Flutter hover event -- a small modification of the Flutter base app
import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(title: 'Flutter Demo Home Page'),
@efortuna
efortuna / fixed.dart
Last active September 16, 2019 05:31
A demonstration of the proper key placement (at the top of your widget tree) in scenarios that require keys.
void main() => runApp(new MaterialApp(home: PositionedTiles()));
class PositionedTiles extends StatefulWidget {
@override
State<StatefulWidget> createState() => PositionedTilesState();
}
class PositionedTilesState extends State<PositionedTiles> {
List<Widget> tiles = [
Padding(
@efortuna
efortuna / danger.dart
Last active December 21, 2018 21:43
An illustration of why you need to put keys at the top of your widget tree in scenarios that require keys.
void main() => runApp(new MaterialApp(home: PositionedTiles()));
class PositionedTiles extends StatefulWidget {
@override
State<StatefulWidget> createState() => PositionedTilesState();
}
class PositionedTilesState extends State<PositionedTiles> {
// Stateful tiles now wrapped in padding (a stateless widget) to increase height
// of widget tree and show why keys are needed at the Padding level.
@efortuna
efortuna / main.dart
Created December 20, 2018 23:15
Fixed stateful tile swapping example
List<Widget> tiles = [
StatefulColorfulTile(key: UniqueKey()), // Keys added here
StatefulColorfulTile(key: UniqueKey()),
];
...
class StatefulColorfulTile extends StatefulWidget {
StatefulColorfulTile({Key key}) : super(key: key); // NEW CONSTRUCTOR
@override
@efortuna
efortuna / main.dart
Created December 20, 2018 22:07
BUGGY Stateful tile swapping code
List<Widget> tiles = [
StatefulColorfulTile(),
StatefulColorfulTile(),
];
...
class StatefulColorfulTile extends StatefulWidget {
@override
ColorfulTileState createState() => ColorfulTileState();
}
@efortuna
efortuna / main.dart
Created December 20, 2018 22:05
Stateless Tile swapping demonstration
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(),
@efortuna
efortuna / main.dart
Last active April 20, 2019 22:30
WikipediaExplorer class demoing the use of WebViews (subset of https://github.com/efortuna/wiki_browser/blob/master/lib/main.dart)
class WikipediaExplorer extends StatefulWidget {
@override
_WikipediaExplorerState createState() => _WikipediaExplorerState();
}
class _WikipediaExplorerState extends State<WikipediaExplorer> {
Completer<WebViewController> _controller = Completer<WebViewController>();
final Set<String> _favorites = Set<String>();
@override