Start Debugging

flutter

162 Beiträge · Seite2von17

2026-10-19 flutterdarttheming

Eigene Design-Tokens mit ThemeExtension definieren und zwischen hellem und dunklem Theme in Flutter animieren

Leiten Sie von ThemeExtension ab, registrieren Sie pro ThemeData eine Instanz über die Liste extensions, lesen Sie sie mit Theme.of(context).extension<T>() und schreiben Sie ein echtes lerp, damit das AnimatedTheme von MaterialApp Ihre Tokens beim Wechsel zwischen hell und dunkel interpoliert. Behandelt Farben, Radien, Schatten, Textstile und Booleans, den Absturz bei fehlender Extension, die copyWith-Falle, die alle anderen Extensions verwirft, und warum == und hashCode nötig sind. Alles mit Widget-Tests unter Flutter 3.44.8 verifiziert.

So animiert AnimatedSwitcher auch dann, wenn sich der Typ des Child-Widgets in Flutter nicht ändert

AnimatedSwitcher startet nur dann einen Übergang, wenn Widget.canUpdate das neue Child als anderes Widget einstuft. Text zu Text ohne Key wird daher einfach an Ort und Stelle aktualisiert. Hier die Ein-Zeilen-Lösung, wo der Key sitzen muss, warum UniqueKey eine Falle ist, der Fehler bei der Slide-Richtung durch einen statischen transitionBuilder und der Layout-Sprung durch den Standard-Stack, alles mit Widget-Tests unter Flutter 3.44.8 verifiziert.
2026-10-19 flutterdartandroid

UI-Zustand nach dem Android-Prozesstod in Flutter mit RestorationMixin wiederherstellen

Android beendet Flutter-Apps im Hintergrund, um Speicher freizugeben, und wenn der Nutzer zurückkehrt, beginnt jedes StatefulWidget bei null. So aktivieren Sie die Wiederherstellung mit restorationScopeId, RestorationMixin und Restorable-Eigenschaften, stellen Textfelder, Scroll-Positionen und gepushte Routen wieder her, schreiben ein eigenes RestorableValue und testen alles mit restartAndRestore und adb, verifiziert mit Flutter 3.44.8 und einem Android-16-Emulator.
2026-10-18 dartflutterstreams

Wie Sie den letzten Wert an spät hinzukommende Abonnenten eines Dart-Streams ausliefern, ohne BehaviorSubject von rxdart

Ein Broadcast-StreamController verwirft jedes Ereignis, das vor dem Abonnieren ausgelöst wurde. Hier ist ein abhängigkeitsfreier Ersatz für BehaviorSubject auf Basis von Stream.multi, eine replayLatest()-Extension für bestehende Streams, die async*-Abkürzung, die stillschweigend Ereignisse verliert, und das Detail zu initialData bei StreamBuilder, alles verifiziert mit Dart 3.12.2.
Zurück Weiter