Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***** main.dart *****/
- class DiceNotifier extends ChangeNotifier {
- List<DieWidget> dice = [];
- void add() {
- dice.add(DieWidget());
- notifyListeners();
- }
- void removeDie(int id) {
- print(id);
- notifyListeners();
- }
- }
- final diceProvider = ChangeNotifierProvider((_) {
- return DiceNotifier();
- });
- class MyHomePage extends ConsumerWidget {
- @override
- Widget build(BuildContext context, ScopedReader watch) {
- final dice = watch(diceProvider).dice;
- return Scaffold(
- appBar: AppBar(
- title: Text("Dice"),
- ),
- body: Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- ...dice,
- ],
- ),
- ),
- floatingActionButton: FloatingActionButton(
- onPressed: () {
- context.read(diceProvider).add();
- },
- child: Icon(Icons.add),
- ), // This trailing comma makes auto-formatting nicer for build methods.
- );
- }
- }
- /***** die_widget.dart *****/
- class DieWidget extends StatefulWidget {
- @override
- _DieWidgetState createState() => _DieWidgetState();
- }
- class _DieWidgetState extends State<DieWidget> {
- int value = 0;
- int id = 0;
- @override
- Widget build(BuildContext context) {
- return FlatButton(
- child: Text(
- '$value',
- ),
- onPressed: () {
- setState(() {
- value++;
- id++;
- });
- // context.read(dieProvider).increment();
- },
- onLongPress: () {
- final dice = context.read(diceProvider);
- dice.removeDie(id);
- // print(this.value);
- },
- );
- }
- }
Add Comment
Please, Sign In to add comment