title: How to properly use ScrollController with multiple scroll positions?
body: <p>I'm working on a widget that consists of several scrolling widgets (list views and a custom widget). When I scroll any of those list views the custom widget must be scrolled as well. Just to be clear the custom widget isn't actually a scroll view, but a stateful widget that updates its viewport content when a scroll position of the list views is changed. </p>
  
  <p>Currently I'm using a scroll controller for each list and listener to sync the positions by calling <code>jumpTo</code> for the other controllers. But this seems a clumsy way to achieve what I need.</p>
  
  <p><code>ScrollController</code> exposes the interface to control multiple positions, and because behind the scene it's <code>jumpTo</code> method just calls <code>jumpTo</code> for each <code>ScrollPosition</code> object in <code>positions</code> list, I hoped that there is a way to utilize this for synchronization of multiple scroll views by sharing the same controller. And it seems I'm not the only one who had the same idea (<a href="https://stackoverflow.com/questions/52170779/scrollcontroller-attached-to-multiple-scroll-views">ScrollController attached to multiple scroll views</a>). But the only recommendation I could find is to use a controller per scroll view, which I already do.</p>
  
  <p>Clearly I'm not completely understand how to work with scroll views in Flutter. So my questions are the following. What is the purpose of <code>positions</code> in the <code>ScrollController</code>? What is the design decision behind it and how to use it properly.</p>