Wrap your CardListItem widgets with a ShimmerLoading widget.

When your shapes are loading, they now display
the shimmer gradient that is 
returned from the shaderCallback.

This is a big step in the right direction,
but there’s a problem with this gradient display.
Each CircleListItem widget and each CardListItem widget 
displays a new version of the gradient.
For this recipe, the entire screen should 
look like one, big shimmering surface.
You solve this problem in the next step.

Paint one big shimmer

To paint one big shimmer across the screen,
each ShimmerLoading widget needs 
to paint the same full-screen gradient based
on the position of that ShimmerLoading
widget on the screen.