Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.8.2

route_observer_mixin

O RouteObserveMixin fornece acesso fácil a didPush/didPop/didPushNext/didPopNext.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
5,7 mil
Curtidas
20
Pontos Pub
160

Instalar pacote

flutter pub add route_observer_mixin

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

RouteObserveMixin é um mixin de utilidade do Flutter que simplifica o tratamento de eventos de ciclo de vida de rota, como didPush, didPop, didPushNext e didPopNext. Ele permite que widgets reajam às mudanças de navegação sem gerenciar rotas manualmente ou usar observadores globais. Ideal para gerenciamento de estado e atualizações de interface vinculadas ao fluxo de navegação, ele simplifica as interações em cenários de roteamento complexos em múltiplas plataformas.

Casos de uso

  • Manipulando mudanças no estado de navegação
  • Atualizando a IU em transições de rota
  • Gerenciando estado durante eventos de push/pop
  • Sincronizando dados com alterações de rota
  • Implementando comportamentos de navegação personalizados

Principais recursos

  • Integração fácil com widgets existentes
  • Callbacks de evento de ciclo de vida automático
  • Suporta todas as principais plataformas do Flutter
  • Código mínimo de boilerplate
  • Separação clara da lógica de navegação

Indicado para

  • Desenvolvedores usando fluxos de navegação complexos
  • Gerenciamento de estado com consciência de rota
  • Aplicativos Flutter multiplataforma
  • Widgets que precisam de contexto de navegação

Considerações

  • Uso de mixin em classes de widget é necessário
  • Limitado apenas a eventos do ciclo de vida da rota
  • Não substitui o gerenciamento completo do navegador
  • Melhor usado com widgets com estado
  • Não adequado para cenários de navegação simples

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

route_observer_mixin

Gif

RouteObserveMixin provides easy access to didPush/didPop/didPushNext/didPopNext.

Usage

1. Wrap MaterialApp with RouteObserverProvider.
void main() {
  runApp(
    MultiProvider(
      providers: [
        // 1. Wrap MaterialApp with RouteObserverProvider.
        RouteObserverProvider(),
        ChangeNotifierProvider(create: (context) => Logger())
      ],
      child: const App(),
    ),
  );

  // Of course, this is also ok.
  // I demonstrated that [MultiProvider] can be used for RouteObserverProvider👍

  /*
  runApp(
    RouteObserverProvider(
      child: App(),
    ),
  );
  */
}
2. Pass RouteObserverProvider.of(context) to navigatorObservers.
class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // 2. Pass RouteObserverProvider.of(context) to navigatorObservers.
      navigatorObservers: [RouteObserverProvider.of(context)],
      home: const APage(),
    );
  }
}
3. Add with RouteAware, RouteObserverMixin to State and override RouteAware methods.
class APage extends StatefulWidget {
  const APage({Key key}) : super(key: key);

  @override
  _APageState createState() => _APageState();
}

// 3. Add `with RouteAware, RouteObserverMixin` to State and override RouteAware methods.
class _APageState extends State<APage> with RouteAware, RouteObserverMixin {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('A Page'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            Navigator.of(context).push<void>(
              MaterialPageRoute(
                builder: (context) => const BPage(),
              ),
            );
          },
          child: const Text('B Page'),
        ),
      ),
    );
  }

  /// Called when the top route has been popped off, and the current route
  /// shows up.
  @override
  void didPopNext() { }

  /// Called when the current route has been pushed.
  @override
  void didPush() { }

  /// Called when the current route has been popped off.
  @override
  void didPop() { }

  /// Called when a new route has been pushed, and the current route is no
  /// longer visible.
  @override
  void didPushNext() { }
}

Example

  • https://github.com/mono0926/route_observer_mixin/tree/master/example

Categorias

Dependências

Lista de dependências 4 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.