import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class CounterA extends ChangeNotifier { int _count = 0; int get count => _count; void increment() { _count++; notifyListeners(); } } class CounterB extends ChangeNotifier { int _count = 0; int get count => _count; void increment() { _count++; notifyListeners(); } } class MultiProviderPage extends StatelessWidget { const MultiProviderPage({super.key}); @override Widget build(BuildContext context) { return MultiProvider( providers: [ ChangeNotifierProvider(create: (_) => CounterA()), ChangeNotifierProvider(create: (_) => CounterB()), ], child: Scaffold( appBar: AppBar( title: const Text('MultiProvider Example'), ), body: const Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ CounterAWidget(), SizedBox(height: 20), CounterBWidget(), ], ), ), ), ); } } class CounterAWidget extends StatelessWidget { const CounterAWidget({super.key}); @override Widget build(BuildContext context) { return Column( children: [ Text('Counter A: ${context.watch().count}'), Text('Counter B: ${context.watch().count}'), ElevatedButton( onPressed: () => context.read().increment(), child: const Text('Increment Counter A'), ), ], ); } } class CounterBWidget extends StatelessWidget { const CounterBWidget({super.key}); @override Widget build(BuildContext context) { return Column( children: [ Text('Counter B: ${context.watch().count}'), ElevatedButton( onPressed: () => context.read().increment(), child: const Text('Increment Counter B'), ), ], ); } }