build_value_navigation_saver 0.3.3 build_value_navigation_saver: ^0.3.3 copied to clipboard
This library is a helper library for converting routes with arguments to a string.
import 'dart:convert';
import 'package:build_value_navigation_saver/navigation_saver_routes_info.dart';
import 'package:example/home/home_page.dart';
import 'package:example/home/home_page_arguments.dart';
import 'package:flutter/material.dart';
import 'package:navigation_saver/navigation_saver.dart';
import 'package:shared_pref_navigation_saver/shared_pref_navigation_saver.dart';
import 'serializers.dart';
void main() {
final NavigationSaver _navigatorSaver = SharedPrefNavigationSaver(
(Iterable<RouteSettings> routes) async =>
json.encode(serializeRoutes(serializers, routes)),
(String routesAsString) async =>
deserializeRoutes(serializers, json.decode(routesAsString)),
);
runApp(MyApp(_navigatorSaver));
}
class MyApp extends StatelessWidget {
MyApp(this._navigationSaver);
final NavigationSaver _navigationSaver;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: NavigationSaver.restoreRouteName,
onGenerateRoute: (RouteSettings routeSettings) =>
_navigationSaver.onGenerateRoute(
routeSettings,
(
RouteSettings settings, {
NextPageInfo nextPageInfo,
}) =>
MaterialPageRoute(
builder: (BuildContext context) => MyHomePage(
initialCounter: settings.arguments is MyHomePageArguments
? (settings.arguments as MyHomePageArguments).deepIndex
: 0,
nextPageInfo: nextPageInfo,
),
settings: routeSettings,
),
),
navigatorObservers: [_navigationSaver],
);
}
}