Skip to content

Instantly share code, notes, and snippets.

@erikwco
Last active October 14, 2019 21:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erikwco/43b619249a73c717f57bc4f7f002ae66 to your computer and use it in GitHub Desktop.
Save erikwco/43b619249a73c717f57bc4f7f002ae66 to your computer and use it in GitHub Desktop.
Flutter Communication With Streams
import 'dart:async';
import 'package:flutter/material.dart';
class ClientInformationPage extends StatefulWidget{
ClientInformationPage();
@override
ClientInformationPageState createState() => ClientInformationPageState();
}
class ClientInformationPageState extends State<ClientInformationPage> {
final TextEditingController _clientNameController = TextEditingController();
final TextEditingController _clientPhoneController = TextEditingController();
StreamSubscription<ClientEvents> subEvents;
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 20.0),
child: TextField(
controller: _clientNameController,
decoration: InputDecoration(
labelText: 'Client Name'
),
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 20.0),
child: TextField(
keyboardType: TextInputType.phone,
controller: _clientPhoneController,
decoration: InputDecoration(
labelText: 'Client Phone'
),
),
),
],
);
}
}
import 'dart:async';
import 'package:flutter/material.dart';
class ClientInvoicePage extends StatefulWidget{
ClientInvoicePage();
@override
ClientInvoicePageState createState() => ClientInvoicePageState();
}
class ClientInvoicePageState extends State<ClientInvoicePage> {
final TextEditingController _addressController = TextEditingController();
final TextEditingController _invoiceController = TextEditingController();
StreamSubscription<ClientEvents> subEvents;
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 20.0),
child: TextField(
controller: _addressController,
decoration: InputDecoration(
labelText: 'Address'
),
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 20.0),
child: TextField(
keyboardType: TextInputType.number,
controller: _invoiceController,
decoration: InputDecoration(
labelText: 'Invoice Ammount'
),
),
),
],
);
}
}
import 'dart:async';
import 'package:flutter/material.dart';
class ClientServicePage extends StatefulWidget{
ClientServicePage();
@override
ClientServicePageState createState() => ClientServicePageState();
}
class ClientServicePageState extends State<ClientServicePage> {
final TextEditingController _serviceNameController = TextEditingController();
final TextEditingController _servicePriceController = TextEditingController();
StreamSubscription<ClientEvents> subEvents;
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 20.0),
child: TextField(
controller: _serviceNameController,
decoration: InputDecoration(
labelText: 'Service Name'
),
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 20.0),
child: TextField(
keyboardType: TextInputType.number,
controller: _servicePriceController,
decoration: InputDecoration(
labelText: 'Service Price'
),
),
),
],
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment