Skip to content

Instantly share code, notes, and snippets.

View brianegan's full-sized avatar

Brian Egan brianegan

View GitHub Profile
@brianegan
brianegan / undo_change_notifier.dart
Created March 5, 2020 12:32
ChageNotifier with Undo/Redo functionality
import 'package:flutter/cupertino.dart';
class UndoChangeNotifier<T> extends ChangeNotifier {
List<T> _history;
int _historyIndex;
UndoChangeNotifier([T initialState]) {
_history = initialState != null ? [initialState] : [];
_historyIndex = initialState != null ? 0 : -1;
}
@brianegan
brianegan / undo_change_notifier.dart
Created March 5, 2020 12:28
Undo/Redo with ChangeNotifier
import 'package:flutter/cupertino.dart';
class UndoChangeNotifier<T> extends ChangeNotifier {
final List<T> _history;
int _historyIndex = -1;
UndoChangeNotifier(T initialState) : _history = [initialState];
T get state => hasState ? _history[_historyIndex] : null;
import 'dart:math' show pi;
import 'package:flutter/material.dart';
void main() => runApp(SpinniesApp());
class SpinniesApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@brianegan
brianegan / main.dart
Created February 18, 2020 22:17
A material style spinner
import 'dart:math' show pi;
import 'package:flutter/material.dart';
void main() => runApp(SpinniesApp());
class SpinniesApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final appTitle = 'Opacity Demo';
return MaterialApp(
title: appTitle,
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final appTitle = 'Orientation Demo';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
final appTitle = 'Drawer Demo';
@override
Widget build(BuildContext context) {
return MaterialApp(
import 'package:flutter/material.dart';
import 'package:flutter/physics.dart';
main() {
runApp(MaterialApp(home: PhysicsCardDragDemo()));
}
class PhysicsCardDragDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
import 'package:flutter/material.dart';
main() {
runApp(MaterialApp(
home: Page1(),
));
}
class Page1 extends StatelessWidget {
Widget build(BuildContext context) {