import 'package:flutter/material.dart'; class CounterDemo extends StatefulWidget { final ValueNotifier<int> counter; const CounterDemo({ super.key, required this.counter, }); @override State<CounterDemo> createState() => _CounterDemoState(); } class _CounterDemoState extends State<CounterDemo> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: const Text('Counter'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ const Text( 'You have pushed the button this many times:', ), ValueListenableBuilder( valueListenable: widget.counter, builder: (context, value, child) => Text( '$value', style: Theme.of(context).textTheme.headlineMedium, ), ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: () { widget.counter.value++; }, tooltip: 'Increment', child: const Icon(Icons.add), ), ); } }