TransformTransform can apply matrix transformations to its child component when rendering, allowing for various visual effects. Matrix4 is a 4D matrix through which we can perform different matrix ope···
30.1 PaddingPadding allows adding spacing (or white space) to its child nodes, similar to the margin effect. We’ve already used it in many examples before, but now let’s take a closer look at its de···
29.1 LayoutBuilderWith LayoutBuilder, we can access the constraints information passed by the parent component during the layout process, allowing us to dynamically construct different layouts based o···
Layered layout is similar to absolute positioning in the Web or Frame layout in Android, where child components can position themselves based on their distance from the four corners of the parent cont···
A flexible layout allows child components to allocate the parent container's space according to certain proportions. The concept of flexible layout exists in other UI systems as well, such as the ···
Size-limiting containers are used to restrict the size of a container. Flutter provides several such containers, including ConstrainedBox, SizedBox, UnconstrainedBox, AspectRatio, etc. This section wi···
3.4.1 IntroductionThe Material component library provides Material-styled switches (Switch) and checkboxes (Checkbox). Although both inherit from StatefulWidget, they do not maintain their selected st···
3.3.1 ImagesIn Flutter, we can use the Image widget to load and display images. The image source can be from assets, files, memory, or the internet.1. ImageProviderImageProvider is an abstract class t···
Before introducing Flutter's exception handling, it is essential to understand Dart's single-threaded model. Only by knowing Dart's code execution process can we determine where to capture···
14.1 Logs and Breakpoints1. The debugger() StatementWhen using the Dart Observatory (or another Dart debugger, such as the one in IntelliJ IDE), you can insert programmatic breakpoints using the debug···