Here's a few collections of links to posts that have helped me.
Scroll a widget into view
In my case, I had a bunch of disparate widgets rendered in a
ListView, so I couldn't predict where the widget I wanted to scroll to was.
ScrollController only allows you to scroll by a specified amount, so that wouldn't work. Turns out you should use a use
Scrollable.ensureVisible(context), and replace the
ListView by a
SingleChildScrollView<Column> to not use
ListView's lazy rendering.