VirtualListView class

A render-object driven list view that only paints visible items.

This is optimized for long lists. By default it assumes fixed-height rows using itemExtent. When variableHeight is true, each child is measured on demand and the list uses estimatedItemExtent for items that have not been measured yet.

Inheritance

Constructors

VirtualListView({required List<Widget> children, int? width, int? height, int itemExtent = 1, int? estimatedItemExtent, bool variableHeight = false, int cacheExtentItems = 0, String separator = '\n', bool handleKeys = true, bool mouseWheelEnabled = true, int mouseWheelDelta = 3, bool enableSelection = false, bool autoCopySelectionOnMouseUp = false, bool autoCopySelectionOnExit = false, bool clearSelectionAfterAutoCopy = true, ScrollController? controller, String? zoneId, DateTime nowProvider()?, Key? key})
Creates a virtualized list view.
VirtualListView.builder({required IndexedWidgetBuilder? itemBuilder, required int itemCount, int? width, int? height, int itemExtent = 1, int? estimatedItemExtent, bool variableHeight = false, int cacheExtentItems = 0, String separator = '\n', bool handleKeys = true, bool mouseWheelEnabled = true, int mouseWheelDelta = 3, bool enableSelection = false, bool autoCopySelectionOnMouseUp = false, bool autoCopySelectionOnExit = false, bool clearSelectionAfterAutoCopy = true, ScrollController? controller, String? zoneId, DateTime nowProvider()?, Key? key})
Creates a virtualized list view that lazily builds children by index.

Properties

accessibilityLabel → String?
Optional accessibility label.
no setterinherited
accessibilityRole → String
Optional accessibility role.
no setterinherited
autoCopySelectionOnExit → bool
Whether to auto-copy selected text immediately when drag leaves bounds.
final
autoCopySelectionOnMouseUp → bool
Whether to auto-copy selected text when mouse button is released.
final
cacheExtentItems → int
Number of off-screen item elements to retain before and after the visible range when using the builder constructor.
final
children → List<Widget>
Child widgets rendered by index.
no setteroverride
clearSelectionAfterAutoCopy → bool
Whether to clear selection after auto-copy.
final
controller → ScrollController?
Optional external scroll controller.
final
debugRenderObjectPassthrough → bool
Whether this widget is intentionally transparent to render-object layouts.
no setterinherited
degradationSignal → WidgetDegradationSignal
Signal that controls this widget's render budget behavior.
no setterinherited
enableSelection → bool
Whether in-app text selection is enabled.
final
estimatedItemExtent → int?
Estimated height in rows for items when variableHeight is true.
final
focusable → bool
Whether this widget can receive keyboard focus.
no setterinherited
handleKeys → bool
Whether keyboard keys trigger scrolling.
final
hashCode → int
The hash code for this object.
no setterinherited
height → int?
Optional explicit height in rows.
final
id → String
Unique identifier for this widget.
no setterinherited
itemBuilder → IndexedWidgetBuilder?
Item builder used by VirtualListView.builder.
final
itemCount → int
Number of list items.
final
itemExtent → int
Fixed item height used when variableHeight is false.
final
key → Key?
Key for preserving widget identity.
finalinherited
mouseWheelDelta → int
Number of rows scrolled per mouse wheel tick.
final
mouseWheelEnabled → bool
Whether mouse wheel messages trigger scrolling.
final
nowProvider → DateTime Function()
Logical clock used for wheel pulse dedupe and click sequencing.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
separator → String
Text inserted between items.
final
theme → Theme
Access the current theme.
no setterinherited
variableHeight → bool
Whether to measure children dynamically instead of using itemExtent.
final
width → int?
Optional explicit width in columns.
final
zoneId → String?
Optional mouse zone id override.
final

Methods

buildCachedView<T>(T builder(), Object? cacheKey) → T
Returns a cached view if the cache key matches.
inherited
createState() → State<StatefulWidget>
Creates the mutable State associated with this widget.
override
handleInit() → Cmd?
Override this instead of init for widget-specific initialization.
inherited
handleIntercept(Msg msg) → (Widget, Cmd?)
Override this to handle messages before they reach children.
inherited
handleUpdate(Msg msg) → (Widget, Cmd?)
Override this to handle messages specific to this widget.
inherited
init() → Cmd?
Called once when the widget is first mounted.
inherited
invalidateCachedView() → void
Clears any cached view for this widget.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
shouldRenderAt(DegradationLevel degradationLevel, {required bool subtreeHasFocusedWidget}) → bool
Whether this widget should participate in the current render when degradationLevel is active.
inherited
toString() → String
A string representation of this object.
inherited
update(Msg msg) → (Model, Cmd?)
Handles messages by forwarding to children then calling handleUpdate.
inherited
view() → Object
Renders the widget to a string or View.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited