identifyPotentialStickyNodes method

Set<TKey> identifyPotentialStickyNodes({
  1. required double scrollOffset,
  2. required double overlap,
  3. required List<TKey> visibleNodes,
  4. required Float64List nodeOffsetsByNid,
  5. required Float64List nodeExtentsByNid,
  6. required FindFirstVisibleIndex findFirstVisibleIndex,
})

Lightweight pre-pass that identifies nodes which might need to be sticky. Used before Pass 2 to force-create their render objects.

Implementation

Set<TKey> identifyPotentialStickyNodes({
  required double scrollOffset,
  required double overlap,
  required List<TKey> visibleNodes,
  required Float64List nodeOffsetsByNid,
  required Float64List nodeExtentsByNid,
  required FindFirstVisibleIndex findFirstVisibleIndex,
}) {
  final result = <TKey>{};
  _forEachStickyCandidate(
    scrollOffset: scrollOffset,
    overlap: overlap,
    visibleNodes: visibleNodes,
    nodeOffsetsByNid: nodeOffsetsByNid,
    nodeExtentsByNid: nodeExtentsByNid,
    findFirstVisibleIndex: findFirstVisibleIndex,
    onCandidate: (candidateId, pinnedY, extent, stackTop) {
      result.add(candidateId);
      return true;
    },
  );
  return result;
}