gradient static method
Implementation
static Gradient? gradient(
Map<String, Object?>? data, {
required Color? Function(Object?) evalColor,
}) {
if (data == null) return null;
final type = as$<String>(data['type']);
final colorList = as$<List>(data['colorList']) ?? [];
final colors = colorList
.map((e) => evalColor(as$<String>(e['color'])) ?? Colors.transparent)
.nonNulls
.toList();
final stops =
colorList.map((e) => NumUtil.toDouble(e['stop'])).nonNulls.toList();
if (colors.isEmpty) return null;
switch (type) {
case 'linear':
final begin = To.alignment(data['begin']);
final end = To.alignment(data['end']);
return LinearGradient(
begin: begin ?? Alignment.centerLeft,
end: end ?? Alignment.centerRight,
colors: colors,
stops: stops.length == colors.length ? stops : null,
);
case 'angular':
final center = To.alignment(data['center']);
final radius = NumUtil.toDouble(data['radius']);
return RadialGradient(
radius: radius ?? 0.5,
center: center ?? Alignment.center,
colors: colors,
stops: stops.length == colors.length ? stops : null,
);
default:
return null;
}
}