Recap

The fundamental challenge when painting based on the
scroll position, or the screen position in general,
is that the painting behavior must occur after the
layout phase is complete. CustomPaint is a unique
widget that allows you to execute custom painting
behaviors after the layout phase is complete.
If you execute the painting behaviors after the layout phase, 
then you can base your painting decisions on the layout
information, such as the position of the CustomPaint
widget within a Scrollable or within the screen.

Note:
  This recipe doesn’t provide an interactive DartPad because
  Paint shaders have not yet been implemented for the web.
  You can run this recipe on a mobile or desktop device by
  cloning the example code. See the “Gradient Bubbles”
  example under the “cookbook” directory.

Create an expandable FAB

Drag a UI element