import 'package:flutter/material.dart'
;import 'package:provider/provider.dart';
void main() {
runApp(
ChangeNotifierProvider<Counter>(
child: MyApp(),
create: (_) => Counter(),
),
);
}
class Counter with ChangeNotifier {
int _count = 0;
void increment() {
_count++;
notifyListeners();
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Hello'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
MyText(),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () =>
context.read<Counter>().increment(),
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
}
}
class MyText extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text('${context
.watch<Counter>()
._count}',
style: Theme
.of(context)
.textTheme
.headline4);
}
}
No comments:
Post a Comment