Skip to content

Instantly share code, notes, and snippets.

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_svg/flutter_svg.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@stegrams
stegrams / chat_with_dotted_activity.dart
Last active May 18, 2020 23:24
Chat sample that displays a dotted balloon as editing activity indicator.
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'dart:async';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@stegrams
stegrams / push-replacement-named-with-args.dart
Created May 16, 2020 00:07
A pushReplacementNamed navigation with arguments.
import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
debugShowCheckedModeBanner: false,
initialRoute: '/',
routes: {
'/': (context) => AuthService(),
'/dash': (context) => DashBoardScreen(),
@stegrams
stegrams / funny_state_behavior.dart
Last active May 12, 2020 22:06
Funny state behavior that I can't reproduce
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
@stegrams
stegrams / gridview2TextColumn.dart
Last active May 11, 2020 18:44
Grid view sample with 2 texts per row.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(title: 'Flutter Demo Home Page'),
@stegrams
stegrams / bottom_tab_sample.dart
Created May 10, 2020 01:23
Minimalistic bottom tabbar sample inspired by Paul Halliday's Flutter Shopping
// Inspired by https://github.com/PaulHalliday/flutter_indexed_stack_tab_view
import 'package:flutter/material.dart';
typedef RouteFor = Future<dynamic> Function(BuildContext);
RouteFor createRoute(Widget widget) =>
(BuildContext context) => Navigator.of(context).push(MaterialPageRoute(
builder: (context) => widget,
));
@stegrams
stegrams / async_returns_future.dart
Last active May 6, 2020 18:15
If an async returns actual Future the result is NOT a nested Future but a flatten to mere one.
String customerOrder = 'Large Latte';
Future<String> delayOrder(Future<String> order) async {
// I HAVE TO WAIT THE ARGUMENT FUTURE FIRST OR ELSE
// AFTER THE EXPIRATION OF THE INTERNAL FUTURE,
// ARGUMENT FUTURE WILL BE EXPIRED TOO. (NOT A BUG)
String strOrder = await order;
await Future.delayed(Duration(seconds: 1));
// return await order;
return strOrder;
@stegrams
stegrams / middle_tabbar_layout.dart
Last active May 7, 2020 09:28
A sample layout with a tabbar in the left middle of the page.
import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/ticker_provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
@stegrams
stegrams / simple_listview_inside_col.dart
Last active May 5, 2020 18:39
Limit the infinite effect of two vertical widgets inside each other
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
@stegrams
stegrams / shopping_counter_badge.dart
Last active November 12, 2020 18:24
A counter badge increasing in every add click.
// Heavily influenced by
// https://ouzaniabdraouf.medium.com/flutter-take-your-badge-with-you-dde3cab42316
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {