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

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