nav_service 0.1.0
nav_service: ^0.1.0 copied to clipboard
Este paquete ayuda a la navegación entre pantallas, sin la necesidad del context, ya que funciona con GlobalKey
example/main.dart
import 'package:flutter/material.dart';
import 'package:nav_service/nav_service.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
scaffoldMessengerKey: SnackService.messagerKey,
navigatorKey: NavService.navigatorKey,
title: 'Material App',
home: const Page1());
}
}
class Page1 extends StatelessWidget {
const Page1({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Home'),
),
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () => NavService.push(const Page2()),
child: const Text('Next page 2')),
const SizedBox(height: 20),
ElevatedButton(
onPressed: () => SnackService.showSnackbar('Message'),
child: const Text('Show message')),
],
)),
);
}
}
class Page2 extends StatelessWidget {
const Page2({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Page 2'),
),
body: Center(
child: ElevatedButton(
onPressed: () => NavService.push(const Page3()),
child: const Text('Next page 3'))),
);
}
}
class Page3 extends StatelessWidget {
const Page3({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Page 3'),
),
body: Center(
child: ElevatedButton(
onPressed: () => NavService.pop(numberSreen: 2),
child: const Text('Return to home'))),
);
}
}