Skip to content

Commit

Permalink
feat: implement router
Browse files Browse the repository at this point in the history
  • Loading branch information
wps13 committed Feb 12, 2022
1 parent 05a829b commit 7222e6f
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 7 deletions.
20 changes: 13 additions & 7 deletions lib/main.dart
Expand Up @@ -7,6 +7,18 @@ void main() {
runApp(const MyApp());
}

class Router extends NuRouter{
@override
String get initialRoute => 'home';

@override
List<NuRoute<NuRouter, Object, Object>> get registerRoutes => [
HomeRouter(),
DetailsRoute()
];

}

class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);

Expand All @@ -18,13 +30,7 @@ class MyApp extends StatelessWidget {
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Nuvigator.routes(initialRoute: 'home', routes: [
NuRouteBuilder(path: 'home', builder: (BuildContext contextNuvigator, __, ___) => HomeScreen(onPressed: (){
Nuvigator.of(contextNuvigator).open('details');
},), screenType: materialScreenType),
NuRouteBuilder(
path: 'details', builder: (_, __, ___) => const DetailsScreen(), screenType: materialScreenType)
]),
home: Nuvigator(router: Router()),
);
}

Expand Down
15 changes: 15 additions & 0 deletions lib/screens/details_screen.dart
@@ -1,4 +1,19 @@
import 'package:flutter/material.dart';
import 'package:nuvigator/next.dart';

class DetailsRoute extends NuRoute {
@override
Widget build(BuildContext context, NuRouteSettings<Object> settings) {
return DetailsScreen();
}

@override
String get path => 'details';

@override
ScreenType get screenType => materialScreenType;

}

class DetailsScreen extends StatelessWidget {
const DetailsScreen({Key key}) : super(key: key);
Expand Down
17 changes: 17 additions & 0 deletions lib/screens/home_screen.dart
@@ -1,4 +1,21 @@
import 'package:flutter/material.dart';
import 'package:nuvigator/next.dart';

class HomeRouter extends NuRoute {
@override
Widget build(BuildContext context, NuRouteSettings<Object> settings) {
return HomeScreen(onPressed: (){
nuvigator.pushNamed('details');
},);
}

@override
String get path => 'home';

@override
ScreenType get screenType => materialScreenType;

}

class HomeScreen extends StatelessWidget {
final Function onPressed;
Expand Down

0 comments on commit 7222e6f

Please sign in to comment.