RowLayout class

Precomputed row layout. Mirrors ColumnLayout: three partitions (top-frozen, scrollable middle, bottom-frozen) with cumulative offsets for O(log n) "first visible row" lookups.

NOTE: the middle partition tracks view row indices (post filter/sort) rather than schema RowIds, because filtering and sorting are applied to the scrollable region only. Frozen rows are addressed by RowId since they should remain stable regardless of view ordering.

Annotations

Constructors

RowLayout.compute({required List<RowId> allRowIdsInSchemaOrder, required Int32List viewRowIndices, required double heightOf(RowId), required FrozenSide? freezeOf(RowId), required int priorityOf(RowId)})
factory

Properties

bottomFrozen List<RowId>
RowIds in bottom-frozen strip order.
final
bottomFrozenHeight double
final
bottomFrozenHeights Float64List
final
hashCode int
The hash code for this object.
no setterinherited
middleHeight double
final
middleHeights Float64List
Height of each row in the middle strip.
final
middleOffsets Float64List
Cumulative top edge of each middle row. Length = middleHeights.length + 1.
final
middleViewIndices Int32List
View indices (into ViewPipelineResult.viewRowIndices) for the middle.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
topFrozen List<RowId>
RowIds in top-frozen strip order.
final
topFrozenHeight double
final
topFrozenHeights Float64List
final

Methods

firstVisibleMiddle(double scrollOffset) int
First middle row whose bottom edge > scrollOffset (binary search).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

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