Implementing advanced navigation in a Flutter app can be achieved by using packages like fluro and auto_route. These packages provide additional functionality for navigating between pages in a Flutter app, such as routing with dynamic parameters and transitions between pages.
fluro-
fluro is a routing library for Flutter that allows you to define dynamic routes with parameters and handle them easily. With fluro, you can define routes in a separate file, making it easy to manage and maintain your routes. It also provides an easy way to navigate to a new page and pass data to it, and to handle the return data when the user navigates back.
To use fluro in your app, you first need to add the package to your pubspec.yaml file:
dependencies:
fluro: ^1.6.3
import 'package:fluro/fluro.dart';
import 'package:my_app/screens/home_screen.dart';
import 'package:my_app/screens/profile_screen.dart';
final router = Router();
void defineRoutes(Router router) {
router.define('/', handler: Handler(
handlerFunc: (BuildContext context, Map<String, dynamic> params){
return HomeScreen();
}
));
router.define('/profile/:username', handler: Handler(
handlerFunc: (BuildContext context, Map<String, dynamic> params){
final String username = params['username'][0];
return ProfileScreen(username: username);
}
));
}
router.navigateTo(context, '/profile/flutter');
dependencies:
auto_route: ^2.1.0
import 'package:auto_route/auto_route.dart';
import 'package:my_app/screens/home_screen.dart';
import 'package:my_app/screens/profile_screen.dart';
class Router {
static const homeScreen = '/';
static const profileScreen = '/profile';
}
extension on String {
Route<dynamic> get asAutoRoute {
switch (this) {
case Router.homeScreen:
return MaterialPageRoute<dynamic>(builder: (_) =>
HomeScreen());
case Router.profileScreen:
return MaterialPageRoute<dynamic>(builder: () => ProfileScreen());
default:
return MaterialPageRoute<dynamic>(builder: () => HomeScreen());
}
}
}
ExtendedNavigator.of(context).push(Router.profileScreen);

Comments
Post a Comment