Widget Runtime for WidgetStudio
MIT License
A Dynamic Widget Runtime from JSON for Flutter Widgets.
This package powers https://widget.studio
Based on code gen from this package: https://github.com/rodydavis/widget_gen
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void increment() {
if (mounted)
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: DynamicWidget(
data: {
'name': 'Center',
'params': {
'child': {
'id': '0',
'name': 'FractionallySizedBox',
'params': {
'widthFactor': 0.5,
'heightFactor': 0.5,
'child': {
'id': '1',
'name': 'Container',
'params': {
'color': '#Color(${Colors.red.value})',
'child': {
'id': '2',
'name': 'Text',
'params': {
'0': 'Counter Value: $_counter',
'style': {
'name': 'TextStyle',
'params': {
'color': '#Color(${Colors.white.value})',
'fontSize': 30.0,
}
}
},
},
},
},
},
},
},
},
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: increment,
),
);
}
}