Start Debugging

dart

122 posts · Página2de13

2026-10-19 flutterdarttheming

Como definir design tokens personalizados com ThemeExtension e animá-los entre os temas claro e escuro no Flutter

Herde de ThemeExtension, registre uma instância por ThemeData pela lista extensions, leia com Theme.of(context).extension<T>() e escreva um lerp de verdade para que o AnimatedTheme do MaterialApp interpole seus tokens durante a troca entre claro e escuro. Cobre cores, raios, sombras, estilos de texto e booleanos, o crash por extensão ausente, a armadilha do copyWith que descarta todas as outras extensões e por que você precisa de == e hashCode, tudo verificado com testes de widget no Flutter 3.44.8.

Como fazer o AnimatedSwitcher animar quando o tipo do widget filho não muda no Flutter

O AnimatedSwitcher só faz a transição quando Widget.canUpdate indica que o novo filho é outro widget, então de Text para Text sem key ele apenas atualiza no lugar. Aqui estão a correção de uma linha, onde a key precisa ficar, por que UniqueKey é uma armadilha, o bug de direção do slide causado por um transitionBuilder estático e o salto de layout do Stack padrão, tudo verificado com testes de widget no Flutter 3.44.8.
2026-10-19 flutterdartandroid

Como restaurar o estado da UI após a morte do processo no Android em Flutter com RestorationMixin

O Android encerra apps Flutter em segundo plano para recuperar memória, e quando o usuário volta todo StatefulWidget começa do zero. Veja como ativar a restauração com restorationScopeId, RestorationMixin e propriedades Restorable, restaurar campos de texto, posições de rolagem e rotas empilhadas, escrever um RestorableValue personalizado e testar tudo com restartAndRestore e adb, verificado no Flutter 3.44.8 e em um emulador Android 16.
2026-10-18 dartflutterstreams

Como reemitir o último valor para assinantes tardios de um Stream do Dart sem o BehaviorSubject do rxdart

Um StreamController broadcast descarta todo evento disparado antes de você assinar. Aqui está um substituto do BehaviorSubject sem dependências, construído com Stream.multi, uma extensão replayLatest() para streams existentes, o atalho com async* que perde eventos silenciosamente e o detalhe do initialData no StreamBuilder, tudo verificado no Dart 3.12.2.

Migre o armazenamento local de um app Flutter do Hive para o Drift (hive_ce 2.22 para drift 2.35)

Uma importação única e segura contra falhas dos boxes existentes do Hive para um banco SQLite drift no dispositivo do usuário: design do schema, a função de importação, idempotência, exclusão dos boxes e as duas armadilhas que corrompem dados silenciosamente (precisão de DateTime e colisão de nomes de classe). Testado no Flutter 3.44.8 com hive_ce 2.22.0 e drift 2.35.2.

Como manter a aba selecionada da NavigationBar sincronizada com a rota atual usando StatefulShellRoute no go_router

Controle NavigationBar.selectedIndex a partir de StatefulNavigationShell.currentIndex, nunca de um campo com setState nem de uma cópia feita no initState. Medido no Flutter 3.44.8 e no go_router 18.0.2: quais padrões saem de sincronia em deep links, context.go e pushes entre branches, por que índices baseados na localização mentem e como reagir a mudanças de aba com didUpdateWidget.
Anterior Próximo