HStack class
A widget that displays its children in a horizontal array.
To cause a child to expand to fill the available horizontal space, wrap the child in an Expanded widget.
The HStack widget does not scroll (and in general it is considered an error to have more children in a HStack 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 vertical variant, see VStack.
If you only have one child, then consider using Align or Center to position the child.
{@tool snippet}
This example divides the available space into three (horizontally), and places text centered in the first two cells and the Flutter logo centered in the third:
HStack(
[
Expanded(
child: Text('Deliver features faster', textAlign: TextAlign.center),
),
Expanded(
child: Text('Craft beautiful UIs', textAlign: TextAlign.center),
),
Expanded(
child: FittedBox(
fit: BoxFit.contain, // otherwise the logo will be tiny
child: const FlutterLogo(),
),
),
],
)
{@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
-
HStack(List<
Widget> children, {Key? key, MainAxisAlignment? alignment = MainAxisAlignment.start, CrossAxisAlignment? crossAlignment = CrossAxisAlignment.center, 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