Column
Arrange children vertically from top to bottom.
Overview
Column
displays its children in a vertical array. It’s one of the most fundamental layout widgets in Shaft.
Basic Usage
Column {
Text("First")
Text("Second")
Text("Third")
}
Column Layout
Main Axis Alignment
Control vertical positioning:
Column(mainAxisAlignment: .start) { } // Top (default)
Column(mainAxisAlignment: .center) { } // Center
Column(mainAxisAlignment: .end) { } // Bottom
Column(mainAxisAlignment: .spaceBetween) { } // Distribute space
Cross Axis Alignment
Control horizontal positioning:
Column(crossAxisAlignment: .start) { } // Left
Column(crossAxisAlignment: .center) { } // Center (default)
Column(crossAxisAlignment: .end) { } // Right
Column(crossAxisAlignment: .stretch) { } // Fill width
Spacing
Column(spacing: 12) {
Text("Item 1")
Text("Item 2") // 12px below
Text("Item 3")
}
Using Expanded
Column {
Text("Header")
Expanded {
ScrollView { } // Takes remaining space
}
Text("Footer")
}
Parameters
Parameter | Type | Default |
---|---|---|
mainAxisAlignment | MainAxisAlignment | .start |
crossAxisAlignment | CrossAxisAlignment | .center |
mainAxisSize | MainAxisSize | .max |
spacing | Float | 0 |
See Also
- Row - Horizontal layout
- Expanded - Fill available space
- Stack - Overlay widgets
- Layout System - Layout concepts