Flutter Notes
A class can have values such as a title. This is like a property
class MyWidget extends StatefulWidget {
final String title;
MyWidget({this.title});
}
State is achieved by extending a StatefulWidget
. Example of a class:
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
The state class is a private class that extends State
. It has a build method that returns a widget. Example:
class _MyWidgetState extends State<MyWidget> {
@override
Widget build(BuildContext context) {
return Scaffold( // Scaffold is a widget that provides a default layout
appBar: AppBar( // AppBar is a widget that provides a title
title: Text(widget.title),
),
body: Center( // Center is a widget that centers its child
child: Text('Hello World'),
),
drawer: Drawer(), // Drawer is a widget that provides a drawer
bottomNavigationBar: BottomNavigationBar(), // BottomNavigationBar is a widget that provides a bottom navigation bar
floatingActionButton: FloatingActionButton(), // FloatingActionButton is a widget that provides a floating action button
);
}
}
Dart seems to revolve around widgets. Above seems like the basic blocks to build a Flutter app. Widgets can be found in https://docs.flutter.dev/ui/widgets. Basic widgets for building something: https://docs.flutter.dev/ui/widgets/basics.
The build
method is called whenever the state changes. It’s like the render method in React.
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text('Hello World'),
),
);
}