Every Flutter application is made up of widgets. This can range from buttons, columns, rows, icons, to even the app itself.
However, to better understand how to manage these widgets in your Flutter applications, it is important that you understand what each state is and what states each widget should take at specific times.
In a previous article, you learned about Stateless widgets in Flutter. A stateless widget is any widget that does not change with user input.
Such as:
Stateful widgets are reactive to the user’s input.
For example: When a user updates a profile picture on an application like WhatsApp or Twitter, it changes the
of the application. state current condition
When you build mobile applications, there are instances where you need to make choices based on the state of the app. You can use
However, if you need to accomplish any of the following tasks:
You need to make use of the stateful widget. The stateful widget has a
The snippet below shows a skeletal representation for a stateless widget with a MyStatefulBox
subclass. This is a container widget with a blue property color.
import '';class MyStatefulBox extends StatefulWidget {const MyStatefulBox({ Key? key }) : super(key: key);@overrideState<MyStatefulBox> createState() => _MyStatefulBoxState();}class _MyStatefulBoxState extends State<MyStatefulBox> {@overrideWidget build(BuildContext context) {return Container(color: const Colors.blue);}}
The screenshot below shows a stateful widget used in a calculator. This widget has more constructor arguments, each of which corresponds to a final property.
The stateful widget provides immutable configuration info and a state object that can change over time and trigger a rebuild of the UI.
A stateful widget makes it possible for you to manage data based on the user’s input or depending on the system’s state.
A simple application of a stateful widget can be seen in this sample tip calculator below:
The image above shows a tip calculator that allows a user to calculate a tip amount for various percentages of the cost of a service. It also provides the total amount that includes the tip.
The UI has been developed using flutter and is comprised of both stateful and stateless widgets.
From the image above, you can see a combination of both stateful and stateless widgets coming together to form a functional application.
In the application above, the rows, columns, and borders of the app don’t need to change. Therefore, it can be a stateless widget. However, when you input a number into the text field and move the slider, it updates on a part of the screen that is built as a stateful widget.
Stateful widgets maintain and manage data, and react according to what the data is doing within the mobile application.
Stateful widgets are as important as stateless widgets. It is important to understand where to make use of each, because one will make development easier.
For more information on stateful widgets, head over to flutter.io