encodeThemeData static method
Encodes the given value
to a JSON compatible Map. The returned Map will
have the following structure:
{
"androidOverscrollIndicator": <AndroidOverscrollIndicator>,
"appBarTheme": <AppBarTheme>,
"applyElevationOverlayColor": <bool>,
"bannerTheme": <MaterialBannerThemeData>,
"backgroundColor": <Color>,
"bottomAppBarColor": <Color>,
"bottomAppBarTheme": <BottomAppBarTheme>,
"bottomNavigationBarTheme": <BottomNavigationBarThemeData>,
"bottomSheetTheme": <BottomSheetThemeData>,
"brightness": <Brightness>,
"buttonBarTheme": <ButtonBarThemeData>,
"buttonTheme": <ButtonThemeData>,
"canvasColor": <Color>,
"cardColor": <Color>,
"cardTheme": <CardTheme>,
"checkboxTheme": <CheckboxThemeData>,
"chipTheme": <ChipThemeData>,
"colorScheme": <ColorScheme>,
"cupertinoOverrideTheme": <CupertinoThemeData>,
"dataTableTheme": <DataTableThemeData>,
"dialogBackgroundColor": <Color>,
"dialogTheme": <DialogTheme>,
"disabledColor": <Color>,
"dividerColor": <Color>,
"dividerTheme": <DividerThemeData>,
"drawerTheme": <DrawerThemeData>,
"elevatedButtonTheme": <ElevatedButtonThemeData>,
"errorColor": <Color>,
"floatingActionButtonTheme": <FloatingActionButtonThemeData>,
"focusColor": <Color>,
"fontFamily": <String>,
"highlightColor": <Color>,
"hintColor": <Color>,
"hoverColor": <Color>,
"iconTheme": <IconThemeData>,
"indicatorColor": <Color>,
"inputDecorationTheme": <InputDecorationTheme>,
"listTileTheme": <ListTileThemeData>,
"materialTapTargetSize": <MaterialTapTargetSize>,
"navigationBarTheme": <NavigationBarThemeData>,
"navigationRailTheme": <NavigationRailThemeData>,
"outlinedButtonTheme": <OutlinedButtonThemeData>,
"platform": <TargetPlatform>,
"popupMenuTheme": <PopupMenuThemeData>,
"primaryColor": <Color>,
"primaryColorDark": <Color>,
"primaryColorLight": <Color>,
"primaryIconTheme": <IconThemeData>,
"primarySwatch": <MaterialColor>,
"primaryTextTheme": <TextTheme>,
"radioTheme": <RadioThemeData>,
"scaffoldBackgroundColor": <Color>,
"secondaryHeaderColor": <Color>,
"selectedRowColor": <Color>,
"shadowColor": <Color>,
"sliderTheme": <SliderThemeData>,
"snackBarTheme": SnackBarThemeData>,
"splashColor": <Color>,
"splashFactory": <InteractiveInkFeatureFactory>,
"switchTheme": <SwitchThemeData>,
"tabBarTheme": <TabBarTheme>,
"textButtonTheme": <TextButtonThemeData>,
"textSelectionTheme": <TextSelectionThemeData>,
"textTheme": <TextTheme>,
"toggleButtonsTheme": <ToggleButtonsThemeData>,
"toggleableActiveColor": <Color>,
"tooltipTheme": <TooltipThemeData>,
"typography": <Typography>,
"unselectedWidgetColor": <Color>,
"useMaterial3": <bool>,
"visualDensity": <VisualDensity>
}
See also:
- encodeAndroidOverscrollIndicator
- encodeAppBarTheme
- encodeBrightness
- encodeBottomAppBarTheme
- encodeBottomSheetThemeData
- encodeButtonBarThemeData
- encodeButtonThemeData
- encodeCardTheme
- encodeCheckboxThemeData
- encodeChipThemeData
- encodeColor
- encodeColorScheme
- encodeDataTableThemeData
- encodeDialogTheme
- encodeDividerThemeData
- encodeDrawerThemeData
- encodeElevatedButtonThemeData
- encodeFloatingActionButtonThemeData
- encodeIconThemeData
- encodeInputDecorationTheme
- encodeInteractiveInkFeatureFactory
- encodeListTileThemeData
- encodeMaterialBannerThemeData
- encodeMaterialTapTargetSize
- encodeNavigationBarThemeData
- encodeNavigationRailThemeData
- encodeOutlinedButtonThemeData
- encodePopupMenuThemeData
- encodeRadioThemeData
- encodeSliderThemeData
- encodeSnackBarThemeData
- encodeSwitchThemeData
- encodeTabBarTheme
- encodeTargetPlatform
- encodeTextButtonThemeData
- encodeTextSelectionThemeData
- encodeTextStyle
- encodeToggleButtonsThemeData
- encodeTypography
- encodeVisualDensity
Implementation
static Map<String, dynamic>? encodeThemeData(ThemeData? value) {
Map<String, dynamic>? result;
if (value != null) {
result = <String, dynamic>{
'androidOverscrollIndicator': encodeAndroidOverscrollIndicator(
value.androidOverscrollIndicator,
),
'appBarTheme': encodeAppBarTheme(value.appBarTheme),
'applyElevationOverlayColor': value.applyElevationOverlayColor,
'bannerTheme': encodeMaterialBannerThemeData(value.bannerTheme),
'backgroundColor': encodeColor(value.backgroundColor),
'bottomAppBarColor': encodeColor(value.bottomAppBarColor),
'bottomAppBarTheme': encodeBottomAppBarTheme(value.bottomAppBarTheme),
'bottomNavigationBarTheme': encodeBottomNavigationBarThemeData(
value.bottomNavigationBarTheme,
),
'bottomSheetTheme': encodeBottomSheetThemeData(value.bottomSheetTheme),
'brightness': encodeBrightness(value.brightness),
'buttonBarTheme': encodeButtonBarThemeData(value.buttonBarTheme),
'buttonTheme': encodeButtonThemeData(value.buttonTheme),
'canvasColor': encodeColor(value.canvasColor),
'cardColor': encodeColor(value.cardColor),
'cardTheme': encodeCardTheme(value.cardTheme),
'checkboxTheme': encodeCheckboxThemeData(value.checkboxTheme),
'chipTheme': encodeChipThemeData(value.chipTheme),
'colorScheme': encodeColorScheme(value.colorScheme),
'cupertinoOverrideTheme': encodeCupertinoThemeData(
value.cupertinoOverrideTheme,
),
'dataTableTheme': encodeDataTableThemeData(value.dataTableTheme),
'dialogBackgroundColor': encodeColor(value.dialogBackgroundColor),
'dialogTheme': encodeDialogTheme(value.dialogTheme),
'disabledColor': encodeColor(value.disabledColor),
'dividerColor': encodeColor(value.dividerColor),
'dividerTheme': encodeDividerThemeData(value.dividerTheme),
'drawerTheme': encodeDrawerThemeData(value.drawerTheme),
'elevatedButtonTheme': encodeElevatedButtonThemeData(
value.elevatedButtonTheme,
),
'errorColor': encodeColor(value.errorColor),
'floatingActionButtonTheme': encodeFloatingActionButtonThemeData(
value.floatingActionButtonTheme,
),
'focusColor': encodeColor(value.focusColor),
'highlightColor': encodeColor(value.highlightColor),
'hintColor': encodeColor(value.hintColor),
'hoverColor': encodeColor(value.hoverColor),
'iconTheme': encodeIconThemeData(value.iconTheme),
'indicatorColor': encodeColor(value.indicatorColor),
'inputDecorationTheme': encodeInputDecorationTheme(
value.inputDecorationTheme,
),
'listTileTheme': encodeListTileThemeData(value.listTileTheme),
'materialTapTargetSize': encodeMaterialTapTargetSize(
value.materialTapTargetSize,
),
'navigationBarTheme': encodeNavigationBarThemeData(
value.navigationBarTheme,
),
'navigationRailTheme': encodeNavigationRailThemeData(
value.navigationRailTheme,
),
'outlinedButtonTheme': encodeOutlinedButtonThemeData(
value.outlinedButtonTheme,
),
'platform': encodeTargetPlatform(value.platform),
'popupMenuTheme': encodePopupMenuThemeData(value.popupMenuTheme),
'primaryColor': encodeColor(value.primaryColor),
'primaryColorDark': encodeColor(value.primaryColorDark),
'primaryColorLight': encodeColor(value.primaryColorLight),
'primaryIconTheme': encodeIconThemeData(value.primaryIconTheme),
'primaryTextTheme': encodeTextTheme(value.primaryTextTheme),
'radioTheme': encodeRadioThemeData(value.radioTheme),
'scaffoldBackgroundColor': encodeColor(value.scaffoldBackgroundColor),
'secondaryHeaderColor': encodeColor(value.secondaryHeaderColor),
'selectedRowColor': encodeColor(value.selectedRowColor),
'shadowColor': encodeColor(value.shadowColor),
'sliderTheme': encodeSliderThemeData(value.sliderTheme),
'snackBarTheme': encodeSnackBarThemeData(value.snackBarTheme),
'splashColor': encodeColor(value.splashColor),
'splashFactory':
encodeInteractiveInkFeatureFactory(value.splashFactory),
'switchTheme': encodeSwitchThemeData(value.switchTheme),
'tabBarTheme': encodeTabBarTheme(value.tabBarTheme),
'textButtonTheme': encodeTextButtonThemeData(value.textButtonTheme),
'textSelectionTheme': encodeTextSelectionThemeData(
value.textSelectionTheme,
),
'textTheme': encodeTextTheme(value.textTheme),
'toggleButtonsTheme': encodeToggleButtonsThemeData(
value.toggleButtonsTheme,
),
'toggleableActiveColor': encodeColor(value.toggleableActiveColor),
'tooltipTheme': encodeTooltipThemeData(value.tooltipTheme),
'typography': encodeTypography(value.typography),
'unselectedWidgetColor': encodeColor(value.unselectedWidgetColor),
'useMaterial3': value.useMaterial3,
'visualDensity': encodeVisualDensity(value.visualDensity),
};
}
return _stripNull(result);
}