decodeWidgetStatePropertyDouble static method
WidgetStateProperty<double?> ?
decodeWidgetStatePropertyDouble(
- dynamic value, {
- bool validate = true,
Decodes a value
into a double based WidgetStateProperty. This
accepts a double or a String which will be resolved for all states.
Alternatively, if the value
is a Map then this expects the following
format:
{
"disabled": "<double>",
"dragged": "<double>",
"empty": "<double>",
"error": "<double>",
"focused": "<double>",
"hovered": "<double>",
"pressed": "<double>",
"scrolledUnder": "<double>",
"selected": "<double>"
}
Implementation
static WidgetStateProperty<double?>? decodeWidgetStatePropertyDouble(
dynamic value, {
bool validate = true,
}) {
WidgetStateProperty<double?>? result;
if (value is WidgetStateProperty<double?>) {
result = value;
} else if (value != null) {
if (value is int) {
result = WidgetStateProperty.all<double?>(value.toDouble());
} else if (value is double) {
result = WidgetStateProperty.all<double?>(value);
} else if (value is String) {
result = WidgetStateProperty.all<double?>(
JsonClass.maybeParseDouble(value),
);
} else if (value is Map) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/widget_state_property_double',
value: value,
validate: validate,
));
result = MapWidgetStateProperty.resolveWith((states) {
double? result;
if (states.contains(WidgetState.disabled)) {
result = JsonClass.maybeParseDouble(value['disabled']);
} else if (states.contains(WidgetState.dragged)) {
result = JsonClass.maybeParseDouble(value['dragged']);
} else if (states.contains(WidgetState.error)) {
result = JsonClass.maybeParseDouble(value['error']);
} else if (states.contains(WidgetState.focused)) {
result = JsonClass.maybeParseDouble(value['focused']);
} else if (states.contains(WidgetState.hovered)) {
result = JsonClass.maybeParseDouble(value['hovered']);
} else if (states.contains(WidgetState.pressed)) {
result = JsonClass.maybeParseDouble(value['pressed']);
} else if (states.contains(WidgetState.scrolledUnder)) {
result = JsonClass.maybeParseDouble(value['scrolledUnder']);
} else if (states.contains(WidgetState.selected)) {
result = JsonClass.maybeParseDouble(value['selected']);
} else {
result = JsonClass.maybeParseDouble(value['empty']);
}
return result;
});
} else {
result = WidgetStateProperty.all<double?>(value);
}
}
return result;
}