Skip to content

Instantly share code, notes, and snippets.

View csells's full-sized avatar

Chris Sells csells

View GitHub Profile
@csells
csells / main.dart
Created August 13, 2020 21:20
flutter-long-press-vs-short-press
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main() => runApp(App());
class App extends StatelessWidget {
static const title = 'Flutter longpress';
@override
Widget build(BuildContext context) => MaterialApp(
@csells
csells / main.dart
Last active August 13, 2020 23:13
Flutter ExpansionTile with TextField as the title
import 'package:flutter/material.dart';
void main() => runApp(App());
class App extends StatelessWidget {
static const title = 'Flutter App';
@override
Widget build(BuildContext context) => MaterialApp(
title: title,
theme: ThemeData(
@csells
csells / main.dart
Created August 13, 2020 23:46
flutter-expansion-tile-forced-expansion
import 'dart:math';
import 'package:flutter/material.dart';
void main() => runApp(App());
class App extends StatelessWidget {
static const title = 'Flutter App';
@override
Widget build(BuildContext context) => MaterialApp(
@csells
csells / main.dart
Created August 14, 2020 00:40
flutter-reorderable-list-view-and-tooltip
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/gestures.dart';
void main() => runApp(App());
class App extends StatelessWidget {
static const title = 'Flutter Tooltip + ReorderableListView';
@override
@csells
csells / mbox.dart
Created September 22, 2020 23:56
Dart FFI wrapper for the Win32 MessageBox API
typedef MessageBoxNative = Int32 Function(
IntPtr hWnd,
Pointer<Utf16> lpText,
Pointer<Utf16> lpCaption,
Int32 uType
);
typedef MessageBoxDart = int Function(
int hWnd,
Pointer<Utf16> lpText,
@csells
csells / nav2_demo.dart
Last active September 30, 2020 20:43
flutter-nav2-part1
class ColorListScreen extends StatelessWidget {
final List<Color> colors;
final void Function(Color color) onTapped;
ColorListScreen({this.colors, this.onTapped});
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: Text('Colors')),
body: Column(
children: [
@csells
csells / nav2_demo.dart
Last active September 30, 2020 20:43
flutter-nav2-part2
class _ColorAppState extends State<ColorApp> {
List<Color> _colors = [Colors.red, Colors.green, Colors.blue];
@override
Widget build(BuildContext context) => MaterialApp(
title: 'Color App',
home: Builder(
builder: (context) => ColorListScreen(
colors: _colors,
// the Navigator manages the list of pages itself; you can only push and pop
@csells
csells / nav2_demo.dart
Created September 30, 2020 20:42
flutter-nav2-part3
class _ColorAppState extends State<ColorApp> {
Color _selectedColor;
List<Color> _colors = [Colors.red, Colors.green, Colors.blue];
@override
Widget build(BuildContext context) => MaterialApp(
title: 'Color App',
home: Navigator(
// you can see and decide on every page in this list
@csells
csells / state_demo.dart
Created September 30, 2020 20:47
flutter-state-restoration
class CounterState extends State<RestorableCounter> with RestorationMixin {
@override
String get restorationId => widget.restorationId;
RestorableInt _counter = RestorableInt(0);
@override
void restoreState(RestorationBucket oldBucket) => registerForRestoration(_counter, 'count');
void _incrementCounter() => setState(() => _counter.value++);
@csells
csells / resample.dart
Last active October 1, 2020 17:50
flutter-resampling
void main() {
GestureBinding.instance.resamplingEnabled = true;
run(MyApp());
}