VStack class
A widget that displays its children in a vertical array.
To cause a child to expand to fill the available vertical space, wrap the child in an Expanded widget.
The VStack widget does not scroll (and in general it is considered an error to have more children in a VStack than will fit in the available room). If you have a line of widgets and want them to be able to scroll if there is insufficient room, consider using a ListView.
For a horizontal variant, see HStack.
If you only have one child, then consider using Align or Center to position the child.
{@tool snippet}
This example uses a VStack to arrange three widgets vertically, the last being made to fill all the remaining space.
///
VStack(
[
Text('Deliver features faster'),
Text('Craft beautiful UIs'),
Expanded(
child: FittedBox(
fit: BoxFit.contain, // otherwise the logo will be tiny
child: const FlutterLogo(),
),
),
],
)
/// {@end-tool} {@tool snippet}
In the sample above, the text and the logo are centered on each line. In the following example, the crossAlignment is set to CrossAxisAlignment.start, so that the children are left-aligned. The axisSize is set to MainAxisSize.min, so that the column shrinks to fit the children.
VStack(
[
Text('We move under cover and we move as one'),
Text('Through the night, we have one shot to live another day'),
Text('We cannot let a stray gunshot give us away'),
Text('We will fight up close, seize the moment and stay in it'),
Text('It’s either that or meet the business end of a bayonet'),
Text('The code word is ‘Rochambeau,’ dig me?'),
Text('Rochambeau!', style: DefaultTextStyle.of(context).style.apply(fontSizeFactor: 2.0)),
],
crossAlignment: CrossAxisAlignment.start,
axisSize: MainAxisSize.min,
)
{@end-tool}
- Inheritance
- Available Extensions
- CenterExtension
- FilterExtension
- ScrollExtension
- VxAnimatedContainerWidgetExtension
- VxBadgeExtension
- VxCardExtension
- VxContainerWidgetExtension
- VxGestureExtensions
- VxGlassWidgetExtension
- VxObjectExtensions
- VxOpacityExtension
- VxPaddingExtensions
- VxRandomContainerWidgetExtension
- VxRoutesWidgetsExtension
- VxShapesExtension
- VxShiftWidgetExt
- VxShimmerExtension
- VxSizedBoxExtension
- VxSkeletonExtension
- VxThemeExtension
- VxToggleExtension
- VxTransformExtension
- VxWidgetsExtension
- VxZoomExtensions
Constructors
-
VStack(List<
Widget> children, {Key? key, MainAxisAlignment? alignment = MainAxisAlignment.start, CrossAxisAlignment? crossAlignment = CrossAxisAlignment.start, MainAxisSize? axisSize = MainAxisSize.min, double? spacing = 0.0}) -
const
Properties
- alignment → MainAxisAlignment?
-
How the children should be placed along the main axis.
final
- axisSize → MainAxisSize?
-
How much space should be occupied in the main axis.
final
-
children
→ List<
Widget> -
List of widgets in the stack.
final
- crossAlignment → CrossAxisAlignment?
-
How the children should be placed along the cross axis.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- spacing → double?
-
The spacing between each child widget in the stack.
final
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of
DiagnosticsNode
objects describing this node's children.inherited -
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited