suggestion: Make buildFromMap accept dynamic instead of Map
change static Widget buildFromMap(Map<String, dynamic> map, BuildContext buildContext, ClickListener listener) { to static Widget buildFromMap(dynamic map, BuildContext buildContext, ClickListener listener) { if(map is String) return Text(map);
if((map==null) || !map.containsKey('type'))
return null;
so the meta data can be more simple, more error tolerable, support setting like
{ "type":"Padding", "padding":"0,4,0,0" }
{ "type":"Padding", "padding":"0,4,0,0", "child":"test" }
change static Widget buildFromMap(Map<String, dynamic> map, BuildContext buildContext, ClickListener listener) { to static Widget buildFromMap(dynamic map, BuildContext buildContext, ClickListener listener) { if(map is String) return Text(map);
if((map==null) || !map.containsKey('type')) return null;so the meta data can be more simple, more error tolerable, support setting like
{ "type":"Padding", "padding":"0,4,0,0" }
{ "type":"Padding", "padding":"0,4,0,0", "child":"test" }
I don't think it's a good way to handle json widget, it can lead to more problems.