Folgendes stammt aus meiner Durchsicht von theme_data.dart:
primarySwatchstandardmäßig auf Colors.bluedie folgenden Felder und Sätze (einschließlich primaryColor) , um verschiedene Farbtöne des MaterialColorEingangs je nachdem , ob das Motiv brightnesshell oder dunkel ist (Standard ist Licht):
Lichtthemen
primaryColor = primarySwatch;
primaryColorLight = primarySwatch[100];
primaryColorDark = primarySwatch[700];
toggleableActiveColor = primarySwatch[600];
accentColor = primarySwatch[500];
secondaryHeaderColor = primarySwatch[50];
textSelectionColor = primarySwatch[200];
textSelectionHandleColor = primarySwatch[300]
backgroundColor = primarySwatch[200];
* buttonColor ist auf die Standardeinstellung eingestellt (grau [300])
Dunkle Themen
buttonColor = primarySwatch[600];
* Die verbleibenden Felder, die oben für helle Themen aufgeführt sind, werden auf ihre dunklen Standardeinstellungen gesetzt (verschiedene Schattierungen von tealAccent, grau oder schwarz).
Alle Themen (hell oder dunkel)
primaryColorBrightness = estimateBrightnessForColor(primarySwatch);
colorScheme = ColorScheme.fromSwatch(
primarySwatch: primarySwatch,
primaryColorDark: primaryColorDark,
accentColor: accentColor,
cardColor: cardColor,
backgroundColor: backgroundColor,
errorColor: errorColor,
brightness: brightness,
);
Wie in der akzeptierten Antwort erwähnt, primaryColorkönnen Widgets nur durch die Einstellung eine andere Standardfarbe (verschiedene Blautöne) basierend auf einem der anderen oben genannten Felder auswählen, wenn sie nicht auch einzeln festgelegt werden. Dies primarySwatchist eine praktische Abkürzung für einfache Themen.
Im Allgemeinen ist das Feld colorScheme jedoch gemäß den modernen Konventionen, die Sie verwenden sollten, am wichtigsten Theme.of(context).colorScheme.<Color> (obwohl es möglicherweise noch nicht überall funktioniert, je nachdem, wann Sie dies lesen).
Wenn Sie also mehr Kontrolle über einzelne Themenfarben benötigen, können Sie entweder die in verwendeten Felder ColorScheme.fromSwatchfestlegen oder einfach die primarySwatch(aus Gründen der Abwärtskompatibilität von Flatter-Widgets, die noch nicht migriert wurden) festlegen und die colorSchememanuell für zusätzliche festlegen Steuerung. Siehe auch dieses Dokument für weitere Informationen…