ff_annotation_route 1.1.6 copy "ff_annotation_route: ^1.1.6" to clipboard
ff_annotation_route: ^1.1.6 copied to clipboard

outdated

Provide a route generator to create route map quickly by annotations.

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:oktoast/oktoast.dart';

import 'package:example/src/no_route.dart';
import 'example_route.dart';
import 'example_route_helper.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return OKToast(
      child: MaterialApp(
        title: 'ff_annotation_route demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        navigatorObservers: [
          FFNavigatorObserver(routeChange: (name) {
            //you can track page here
            print(name);
          }, showStatusBarChange: (bool showStatusBar) {
            if (showStatusBar) {
              SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
              SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
            } else {
              SystemChrome.setEnabledSystemUIOverlays([]);
            }
          })
        ],
        builder: (c, w) {
          ScreenUtil.instance = ScreenUtil(
            width: 750,
            height: 1334,
            allowFontScaling: true,
          )..init(c);
          var data = MediaQuery.of(c);
          return MediaQuery(
            data: data.copyWith(textScaleFactor: 1.0),
            child: w,
          );
        },
        initialRoute: "fluttercandies://mainpage",
        onGenerateRoute: (RouteSettings settings) {
          var routeResult = getRouteResult(
            name: settings.name,
            arguments: settings.arguments,
          );

          if (routeResult.showStatusBar != null ||
              routeResult.routeName != null) {
            settings = FFRouteSettings(
              arguments: settings.arguments,
              name: settings.name,
              isInitialRoute: settings.isInitialRoute,
              routeName: routeResult.routeName,
              showStatusBar: routeResult.showStatusBar,
            );
          }

          var page = routeResult.widget ?? NoRoute();

          switch (routeResult.pageRouteType) {
            case PageRouteType.material:
              return MaterialPageRoute(
                settings: settings,
                builder: (c) => page,
              );
            case PageRouteType.cupertino:
              return CupertinoPageRoute(
                settings: settings,
                builder: (c) => page,
              );
            case PageRouteType.transparent:
              return FFTransparentPageRoute(
                settings: settings,
                pageBuilder: (
                  BuildContext context,
                  Animation<double> animation,
                  Animation<double> secondaryAnimation,
                ) =>
                    page,
              );
            default:
              return Platform.isIOS
                  ? CupertinoPageRoute(
                      settings: settings,
                      builder: (c) => page,
                    )
                  : MaterialPageRoute(
                      settings: settings,
                      builder: (c) => page,
                    );
          }
        },
      ),
    );
  }
}
13
likes
0
pub points
51%
popularity

Publisher

verified publisherfluttercandies.com

Provide a route generator to create route map quickly by annotations.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

analyzer, meta, path, yaml

More

Packages that depend on ff_annotation_route