SSpreadsheetHorizontalSyncController class
Shared horizontal synchronization state for SSpreadsheet.
Pass one instance to SSpreadsheet.horizontalSyncController and to SSpreadsheetHorizontalScrollButtons to control scrolling externally.
Every horizontal strip inside a spreadsheet — the column header and each
mounted (virtualised) body row — owns its own ScrollController handed out
by the shared sync group, and every one of them reports here. Reports are
therefore funnelled through a single elected owner, so a body row that
scrolls out of view cannot leave a disposed controller behind in value.
The column header is preferred because it is never virtualised; a
spreadsheet built with showColumnHeader: false falls back to the first
live body strip.
value is only replaced when the published tuple actually changes (controller identity included), so a settled layout does not emit an endless notification loop.
- Inheritance
-
- Object
- ChangeNotifier
- ValueNotifier<
SSpreadsheetHorizontalMetrics> - SSpreadsheetHorizontalSyncController
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- value ↔ SSpreadsheetHorizontalMetrics
-
The current value stored in this notifier.
getter/setter pairinherited
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
animateToEnd(
{Duration duration = const Duration(milliseconds: 800), Curve curve = Curves.easeOutCubic}) → Future< void> -
animateToStart(
{Duration duration = const Duration(milliseconds: 800), Curve curve = Curves.easeOutCubic}) → Future< void> -
dispose(
) → void -
Discards any resources used by the object.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
refresh(
) → void - Re-reads the owning strip and republishes.
-
registerStrip(
ScrollController controller, {required bool isPrimary}) → void -
Called by SSpreadsheet when a strip mounts.
isPrimarymarks the column-header strip, which outlives every body row. -
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
unregisterStrip(
ScrollController controller) → void - Called by SSpreadsheet when a strip is about to dispose its controller, so ownership moves on while the remaining strips are still usable.
-
update(
double offset, double maxScrollExtent, ScrollController controller) → void - Reports a strip's live metrics.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited