Navegación con named routes en Flutter: ejercicio resuelto

  2 minutos

Si quieres dominar named routes en Flutter, este ejercicio te muestra una estructura limpia para moverte entre pantallas.

Configura dos pantallas y navega desde Home a Detail usando rutas nombradas.

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'),
        ),
      ),
    );
  }
}

La app navega con rutas centralizadas y flujo claro ida-vuelta.

  • Mezclar rutas nombradas y no nombradas sin criterio.
  • Duplicar nombres de rutas.
  • No manejar retorno con Navigator.pop.

Este patrón ayuda a escalar apps con múltiples módulos y navegación mantenible.

Para apps pequeñas y medias, named routes suele ser suficiente y más rápido de implementar.

Sí. Puedes usar arguments en pushNamed y leerlos en destino.

Sí, especialmente en proyectos que priorizan simplicidad y velocidad de entrega.