provider_mvc 2.0.4 copy "provider_mvc: ^2.0.4" to clipboard
provider_mvc: ^2.0.4 copied to clipboard

discontinuedreplaced by: tilde
outdated

Flutter Provider MVC Implementation that make state management easier.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:provider_mvc/controller.dart';
import 'package:provider_mvc/view.dart';

void main() => runApp(CounterApp());

class Value {
  int value = 0;
}

class CounterApp extends StatelessWidget {
  final _counter = CounterView();

  @override
  Widget build(BuildContext context) => MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: Scaffold(
          appBar: AppBar(
            title: Text('Flutter Demo Home Page'),
          ),
          body: Center(
            child: _counter,
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: () => _counter.controller.increment(),
            tooltip: 'Increment',
            child: Icon(Icons.add),
          ),
        ),
      );
}

class CounterController extends Controller {
  final Value _count = Value();

  //CounterController({String tag}) : super(tag: tag);

  int get count => _count.value;

  /*set count(int v) {
    _count = v;
    update();
  }*/

  void reset() {
    _count.value = 0;
    update();
  }

  void increment() {
    _count.value++;
    update();
  }
}

class CounterView extends View<CounterController> {
  @override
  Widget builder(
          BuildContext context, CounterController controller, Widget widget) =>
      Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Text(
            'You have pushed the button this many times:',
          ),
          Text(
            '${controller.count}',
            style: Theme.of(context).textTheme.headline4,
          ),
          RaisedButton(
            child: Text("Reset"),
            onPressed: controller.reset,
          )
        ],
      );

  @override
  CounterController create(BuildContext context) =>
      Controller.put<CounterController>(CounterController());

  CounterController get controller => Controller.of<CounterController>().single;
}
1
likes
0
pub points
0%
popularity

Publisher

unverified uploader

Flutter Provider MVC Implementation that make state management easier.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, provider

More

Packages that depend on provider_mvc