Navegación con named routes en Flutter: ejercicio resuelto
Si quieres dominar named routes en Flutter, este ejercicio te muestra una estructura limpia para moverte entre pantallas.
Enunciado
Configura dos pantallas y navega desde Home a Detail usando rutas nombradas.
Solución en Flutter
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
initialRoute: '/',
routes: {
'/': (_) => const HomePage(),
'/detail': (_) => const DetailPage(),
},
));
}
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Home')),
body: Center(
child: ElevatedButton(
onPressed: () => Navigator.pushNamed(context, '/detail'),
child: const Text('Ir a detalle'),
),
),
);
}
}
class DetailPage extends StatelessWidget {
const DetailPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Detalle')),
body: Center(
child: ElevatedButton(
onPressed: () => Navigator.pop(context),
child: const Text('Volver'),
),
),
);
}
}Resultado esperado
La app navega con rutas centralizadas y flujo claro ida-vuelta.
Errores frecuentes
- Mezclar rutas nombradas y no nombradas sin criterio.
- Duplicar nombres de rutas.
- No manejar retorno con
Navigator.pop.
Aplicación práctica
Este patrón ayuda a escalar apps con múltiples módulos y navegación mantenible.
Siguiente ejercicio recomendado
- BottomNavigationBar en Flutter: ejercicio resuelto con IndexedStack
- go_router en Flutter: ejercicio resuelto de navegación
- Contador en Flutter con setState: ejercicio resuelto paso a paso
- Todos los ejercicios Flutter
Práctica guiada y siguiente paso
- Más ejercicios de Flutter
- Ejercicios C para reforzar fundamentos
- Programación en C en 100 ejercicios resueltos
- Ver el libro en Amazon (incluido en Kindle Unlimited)
- Suscribirte a la newsletter
FAQ
¿Es mejor usar named routes o Router 2.0?
Para apps pequeñas y medias, named routes suele ser suficiente y más rápido de implementar.
¿Se pueden pasar argumentos con named routes?
Sí. Puedes usar arguments en pushNamed y leerlos en destino.
¿Este patrón es válido en 2026?
Sí, especialmente en proyectos que priorizan simplicidad y velocidad de entrega.