osam_flutter 1.1.5 copy "osam_flutter: ^1.1.5" to clipboard
osam_flutter: ^1.1.5 copied to clipboard

discontinued
outdated

Navigation and UI elements which fits with Osam library

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:osam_flutter/osam_flutter.dart';

void main() async {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return UseCaseProvider(
      null,
      null,
      null,
      child: PresenterProvider(
        presenter: NavPresenter(),
        child: MaterialApp(
          home: App(),
        ),
      ),
    );
  }
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Builder(builder: (context) {
        return OsamNavigator<NavPresenter>(
          {
            '1': (ctx) => Page1(key: ValueKey('1'), color: Colors.red),
            '2': (ctx) => Page1(key: ValueKey('2'), color: Colors.green),
            '3': (ctx) => Page1(key: ValueKey('3'), color: Colors.yellow),
            '4': () => showBottomSheet(
                context: context,
                builder: (ctx) => WillPopScope(
                      onWillPop: () async {
                        ctx.presenter<NavPresenter>().pop();
                        return true;
                      },
                      child: Container(
                        height: 90,
                        width: 50,
                        color: Colors.green,
                      ),
                    ))
          },
          log: true,
        );
      }),
    );
  }
}

//showDialog(
//useRootNavigator: false,
//context: context,
//child: Container(
//color: Colors.deepOrangeAccent,
//child: Center(
//child: RaisedButton(
//child: Icon(Icons.backspace),
//onPressed: () {
//context.presenter<NavPresenter>().pop();
//},
//),
//),
//))

//child: WillPopScope(
//child: ,
//onWillPop: () async {
//context.presenter<NavPresenter>().pop();
//return true;
//},
//)

class Page1 extends StatelessWidget {
  final Color color;

  const Page1({Key key, this.color}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
        color: color,
        child: Center(
          child: Column(
            children: <Widget>[
              RaisedButton(
                onPressed: () async {
                  if (color == Colors.red) {
                    nav.push('2');
                  } else if (color == Colors.green) {
                    nav.push('3');
                  } else {
                    nav.push('4');
                  }
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class NavPresenter extends Presenter with NavigationPresenter {
  @override
  NavigationState get navigationState => nav;
}

final nav = NavigationState(['1']);
2
likes
0
pub points
0%
popularity

Publisher

verified publisherrenesanse.net

Navigation and UI elements which fits with Osam library

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

after_layout, flutter, osam, provider

More

Packages that depend on osam_flutter