• Adam Barth's avatar
    Reparameterize Scrollable2 (#7853) · 072cce88
    Adam Barth authored
    This patch makes a number of changes to how you can configure a
    Scrollable2:
    
     - The ScrollPhysics is now responsible for creating the ScrollPosition.
       You can override the ScrollPhysics by supplying a `physics` argument
       to `Scrollable`, and the new physics you supply will be applied to
       the default physics inherited from the ScrollBehavior.
    
     - This patch removes the ScrollPosition/AbsoluteScrollPosition split as
       all clients were operating in pixels anyway and the split made the
       code very difficult to follow.
    
     - ScrollPosition no longer depends directly on Scrollable2State.
       Instead, it depends on an abstract interface that Scrollable2State
       implements. This change has two benefits:
    
        a) It removes the circular dependency between ScrollPosition and
           Scrollable2State, which lets us split the code for these classes
           (and several other classes that got wrapped up in that cycle) into
           separate libraries for easier maintenance.
    
        b) ScrollPosition is no longer bound to Scrollable2, which means you
           could use the behavior machinery to drive other sorts of widgets.
           For example, we could use it to drive Scrollabe1 if we wanted.
    072cce88
scroll_simulation.dart 11 KB