Container Widget in Flitter
The Container widget is one of the most versatile and commonly used widgets in Flitter. It combines common painting, positioning, and sizing widgets into a single, convenient widget.
Overview
A Container widget lets you create a rectangular visual element. It can be decorated with a background color, border, or an image. You can also transform its shape using various properties such as padding, margins, and constraints.
Key Properties
width
andheight
: Set the dimensions of the container.color
: Sets the background color.padding
: Adds internal padding.margin
: Adds external margin.alignment
: Aligns the child within the container.decoration
: Applies a BoxDecoration to the container.child
: The widget to be placed inside the container.
Basic Usage
Here’s a simple example of how to use a Container:
import { Container, Colors } from "@meursyphus/flitter";
const myContainer = Container({
width: 100,
height: 100,
color: "blue",
});
This creates a blue square container with dimensions of 100x100 pixels.
Advanced Usage
Let’s create a more complex container with multiple properties:
import {
Container,
Text,
Colors,
BoxDecoration,
BorderRadius,
EdgeInsets,
Alignment,
} from "@meursyphus/flitter";
const advancedContainer = Container({
width: 200,
height: 100,
margin: EdgeInsets.all(10),
padding: EdgeInsets.symmetric({ vertical: 15, horizontal: 20 }),
decoration: new BoxDecoration({
color: "green",
borderRadius: BorderRadius.circular(10),
boxShadow: [{ color: "grey", blurRadius: 5, offset: { x: 0, y: 2 } }],
}),
alignment: Alignment.center,
child: Text("Hello, Flitter!", {
style: new TextStyle({ color: "white", fontSize: 18 }),
}),
});
This creates a rounded green container with a shadow, containing centered white text.
Visual Representation
Here’s a simple ASCII representation of the above container:
┌─────────────────────────────┐
│ │
│ ╔═════════════════════╗ │
│ ║ ║ │
│ ║ Hello, Flitter! ║ │
│ ║ ║ │
│ ╚═════════════════════╝ │
│ │
└─────────────────────────────┘
^ ^
│ │
Margin Margin
- Outer rectangle: Margin
- Middle rectangle: Container with rounded corners
- Inner content: Padding and centered text
Best Practices
-
Use for visual structure: Containers are great for creating visual structure in your UI, like cards or sections.
-
Avoid nesting too deeply: While containers are versatile, nesting them too deeply can lead to performance issues.
-
Consider SizedBox for simple sizing: If you only need to set a width or height without any other styling, consider using SizedBox instead.
-
Use constraints wisely: Containers can be constrained by their parent. Be mindful of how constraints are passed down the widget tree.
Conclusion
The Container widget is a fundamental building block in Flitter. Its flexibility allows you to create a wide range of UI elements, from simple colored boxes to complex, styled components. By mastering the Container widget, you’ll have a powerful tool for structuring and styling your Flitter applications.