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