decodeWidgetStatePropertyEdgeInsetsGeometry static method
WidgetStateProperty<EdgeInsetsGeometry?> ?
decodeWidgetStatePropertyEdgeInsetsGeometry(
- dynamic value, {
- bool validate = true,
Decodes a value
into a EdgeInsetsGeometry based
WidgetStateProperty.
If the value is a String, double, or int then this will parse the number and pass it to EdgeInsets.all for each state.
If the value is an array with two entities, this calls EdgeInsets.symmetric with the first element passed as the horizontal and the second as the vertical.
If the value is an array with four entities, this calls EdgeInsets.fromLTRB passing each element in order.
The value may be a Map in the following format:
{
"bottom": "<double>",
"left": "<double>",
"right": "<double>",
"top": "<double>"
}
Finally, the value
may be a Map in the following format:
{
"disabled": "<EdgeInsetsGeometry>",
"dragged": "<EdgeInsetsGeometry>",
"empty": "<EdgeInsetsGeometry>",
"error": "<EdgeInsetsGeometry>",
"focused": "<EdgeInsetsGeometry>",
"hovered": "<EdgeInsetsGeometry>",
"pressed": "<EdgeInsetsGeometry>",
"scrolledUnder": "<EdgeInsetsGeometry>",
"selected": "<EdgeInsetsGeometry>"
}
See also:
Implementation
static WidgetStateProperty<EdgeInsetsGeometry?>?
decodeWidgetStatePropertyEdgeInsetsGeometry(
dynamic value, {
bool validate = true,
}) {
WidgetStateProperty<EdgeInsetsGeometry?>? result;
if (value is WidgetStateProperty<EdgeInsetsGeometry?>) {
result = value;
} else if (value != null) {
if (value is EdgeInsetsGeometry) {
result = WidgetStateProperty.all<EdgeInsetsGeometry?>(value);
} else if (value is String || value is List || value is int) {
result = WidgetStateProperty.all<EdgeInsetsGeometry?>(
decodeEdgeInsetsGeometry(
value,
validate: false,
),
);
} else if (value is Map) {
final testValues = [
'disabled',
'dragged',
'empty',
'error',
'focused',
'hovered',
'pressed',
'scrolledUnder',
'selected',
];
var isMsp = false;
for (var key in value.keys) {
if (testValues.contains(key)) {
isMsp = true;
break;
}
}
if (isMsp != true) {
result = WidgetStateProperty.all<EdgeInsetsGeometry?>(
decodeEdgeInsetsGeometry(
value,
validate: false,
),
);
} else {
assert(SchemaValidator.validate(
schemaId:
'$_baseSchemaUrl/widget_state_property_edge_insets_geometry',
value: value,
validate: validate,
));
result = MapWidgetStateProperty.resolveWith((states) {
EdgeInsetsGeometry? result;
if (states.contains(WidgetState.disabled)) {
result = decodeEdgeInsetsGeometry(
value['disabled'],
validate: false,
);
} else if (states.contains(WidgetState.dragged)) {
result = decodeEdgeInsetsGeometry(
value['dragged'],
validate: false,
);
} else if (states.contains(WidgetState.error)) {
result = decodeEdgeInsetsGeometry(
value['error'],
validate: false,
);
} else if (states.contains(WidgetState.focused)) {
result = decodeEdgeInsetsGeometry(
value['focused'],
validate: false,
);
} else if (states.contains(WidgetState.hovered)) {
result = decodeEdgeInsetsGeometry(
value['hovered'],
validate: false,
);
} else if (states.contains(WidgetState.pressed)) {
result = decodeEdgeInsetsGeometry(
value['pressed'],
validate: false,
);
} else if (states.contains(WidgetState.scrolledUnder)) {
result = decodeEdgeInsetsGeometry(
value['scrolledUnder'],
validate: false,
);
} else if (states.contains(WidgetState.selected)) {
result = decodeEdgeInsetsGeometry(
value['selected'],
validate: false,
);
} else {
result = decodeEdgeInsetsGeometry(
value['empty'],
validate: false,
);
}
return result;
});
}
} else {
result = WidgetStateProperty.all<EdgeInsetsGeometry?>(value);
}
}
return result;
}