decodeBottomNavigationBarThemeData static method

BottomNavigationBarThemeData? decodeBottomNavigationBarThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to an BottomNavigationBarThemeData. This expects the given value to follow the structure below:

{
  "backgroundColor": "<Color>",
  "elevation": "<double>",
  "enableFeedback": "<bool>",
  "landscapeLayout": "<BottomNavigationBarLandscapeLayout>",
  "mouseCursor": "<WidgetStateProperty<MouseCursor>>",
  "selectedIconTheme": "<IconThemeData>",
  "selectedIconColor": "<Color>",
  "selectedLabelStyle": "<TextStyle>",
  "showSelectedLabels": "<bool>",
  "showUnselectedLabels": "<bool>",
  "type": "<BottomNavigationBarType>",
  "unselectedIconTheme": "<IconThemeData>",
  "unselectedItemColor": "<Color>",
  "unselectedLabelStyle": "<TextStyle>",
}

See also:

Implementation

static BottomNavigationBarThemeData? decodeBottomNavigationBarThemeData(
  dynamic value, {
  bool validate = true,
}) {
  BottomNavigationBarThemeData? result;

  if (value is BottomNavigationBarThemeData) {
    result = value;
  } else if (value != null) {
    result = BottomNavigationBarThemeData(
      backgroundColor: decodeColor(
        value['backgroundColor'],
        validate: false,
      ),
      elevation: JsonClass.maybeParseDouble(value['elevation']),
      enableFeedback: JsonClass.maybeParseBool(value['enableFeedback']),
      landscapeLayout: decodeBottomNavigationBarLandscapeLayout(
        value['landscapeLayout'],
        validate: false,
      ),
      mouseCursor: decodeWidgetStatePropertyMouseCursor(
        value['mouseCursor'],
        validate: false,
      ),
      selectedIconTheme: decodeIconThemeData(
        value['selectedIconTheme'],
        validate: false,
      ),
      selectedItemColor: decodeColor(
        value['selectedItemColor'],
        validate: false,
      ),
      selectedLabelStyle: decodeTextStyle(
        value['selectedLabelStyle'],
        validate: false,
      ),
      showSelectedLabels: JsonClass.maybeParseBool(
        value['showSelectedLabels'],
      ),
      showUnselectedLabels: JsonClass.maybeParseBool(
        value['showUnselectedLabels'],
      ),
      type: decodeBottomNavigationBarType(
        value['type'],
        validate: false,
      ),
      unselectedIconTheme: decodeIconThemeData(
        value['unselectedIconTheme'],
        validate: false,
      ),
      unselectedItemColor: decodeColor(
        value['unselectedItemColor'],
        validate: false,
      ),
      unselectedLabelStyle: decodeTextStyle(
        value['unselectedLabelStyle'],
        validate: false,
      ),
    );
  }

  return result;
}