Skip to content

Latest commit

History

47 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Buy Me A CoffeeDonateflutter_dynamic_widget

flutter_dynamic_widget

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

Currently Supported Widgets

  • Container
  • Center
  • Icon
  • Expanded
  • Flexible
  • AppBar
  • Scaffold
  • Stack
  • Positioned
  • Column
  • Flex
  • Row
  • FloatingActionButton
  • Wrap
  • Text
  • SizedBox
  • FractionallySizedBox
  • IconData
  • TextStyle
  • IconButton
  • SingleChildScrollView
  • FlutterLogo
  • Theme
  • ThemeData
  • MaterialApp
  • TextTheme
  • Placeholder
  • RaisedButton
  • RaisedButton.icon
  • FlatButton
  • FlatButton.icon
  • Image.network
  • RaisedButton.icon
  • FlatButton
  • FlatButton.icon
  • Image.network
  • Align
  • AspectRatio
  • Baseline
  • ConstrainedBox
  • FittedBox
  • IntrinsicWidth
  • IntrinsicHeight
  • LimitedBox
  • Offstage
  • OverflowBox
  • SizedBox
  • Padding
  • SizedOverflowBox
  • Transform
  • PreferredSize
  • BoxConstraints
  • Form
  • FloatingActionButtonTheme
  • IconButtonTheme
  • TextTheme
  • BottomNavigationBar
  • BottomNavigationBarItem
  • Drawer
  • WidgetsApp
  • ButtonBar
  • OutlineButton
  • Card
  • Chip
  • CircularProgressIndicator
  • LinearProgressIndicator
  • Tooltip
  • Divider
  • ListTile
  • AppBarTheme

Example

classMyHomePageextendsStatefulWidget {
MyHomePage({Key key, this.title}) :super(key: key);
finalString title;
@override_MyHomePageStatecreateState() =>_MyHomePageState();
}
class_MyHomePageStateextendsState<MyHomePage> {
int _counter =0;
voidincrement() {
if (mounted)
setState(() {
_counter++;
});
}
@overrideWidgetbuild(BuildContext context) {
returnScaffold(
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,
),
);
}
}

About

Widget Runtime for WidgetStudio

Topics

Resources

Stars

66 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages