ScrollView & ListView
Scrollable containers for content that exceeds the available space.
ScrollView
A scrollable container for a single child widget (like Flutter’s SingleChildScrollView).
Basic Usage
ScrollView(
Column([]any{
Text("Item 1"),
Text("Item 2"),
// ... many items
}),
)
Options
| Option |
Type |
Description |
Example |
Direction |
ScrollDirection |
Sets the scroll direction |
Direction(ScrollHorizontal) |
ScrollID |
string |
Sets a unique ID for state persistence |
ScrollID("my-scroll") |
Scroll Direction Values
| Value |
Description |
ScrollVertical |
Vertical scrolling (default) |
ScrollHorizontal |
Horizontal scrolling |
Examples
// Vertical scrolling (default)
ScrollView(
Column([]any{
Text("Line 1"),
Text("Line 2"),
Text("Line 3"),
}),
)
// Horizontal scrolling
ScrollView(
Row([]any{
Container(Text("Card 1"), Background(Blue)),
Container(Text("Card 2"), Background(Green)),
Container(Text("Card 3"), Background(Red)),
}),
Direction(ScrollHorizontal),
)
// With unique ID (for multiple scroll views)
ScrollView(content, ScrollID("scroll-1"))
ScrollView(otherContent, ScrollID("scroll-2"))
ListView
An optimized scrollable list for many items. Unlike ScrollView, ListView efficiently renders only visible items.
Basic Usage
ListView([]Widget{
Text("Item 1"),
Text("Item 2"),
Text("Item 3"),
})
Options
| Option |
Type |
Description |
Example |
Direction |
ScrollDirection |
Sets the scroll direction |
Direction(ScrollHorizontal) |
ScrollID |
string |
Sets a unique ID for state persistence |
ScrollID("my-list") |
Examples
// Basic list
ListView([]Widget{
Text("Item 1"),
Text("Item 2"),
Text("Item 3"),
})
// List with styled items
var items []Widget
for i := 1; i <= 100; i++ {
items = append(items, Container(
Padding(InsetsAll(16), Text(fmt.Sprintf("Item %d", i))),
Background(Gray100),
))
}
ListView(items, ScrollID("long-list"))
// Horizontal list
ListView(cards, Direction(ScrollHorizontal), ScrollID("card-list"))
When to Use Which
| Use Case |
Widget |
| Scrolling a layout (Column, Row, etc.) |
ScrollView |
| Long list of similar items |
ListView |
| Performance-critical lists |
ListView |
| Complex nested layouts |
ScrollView |