<p dir="auto">I too need a 2D scrollable view. I have a large number of Widgets to display, and I want to be able to scroll about to see them all. Some scroll bars are required to see where we are, and I also need to be able to pinch/zoom.</p>
<p dir="auto">I've done this quite easily in iOS, but I haven't managed to do it in Flutter.</p>
<p dir="auto"><a href="https://gist.github.com/muirandy/b2f487ed01da60ecadf169959b3ac17d">Here is my attempt</a> - it will give an idea of where I'm going. I'm getting an overflow despite my best efforts to size things. I haven't even started on the scrollBars and pinch/zoom.</p>
<p dir="auto">Use cases: tables, calendars, images.</p>
<p dir="auto">It's quite difficult to do this with the current classes, as classes like <code class="notranslate">ScrollPosition</code>, <code class="notranslate">Scrollable</code> and <code class="notranslate">ScrollContext</code> only support one scroll direction.</p>
<p dir="auto">The biggest problem I hit so far is that <code class="notranslate">ScrollPosition</code> stores it state directly in <code class="notranslate">ScrollContext.storageContext</code>, without a key. So when you have two <code class="notranslate">ScrollPosition</code>s in a single widget (one for each axis), those will override each other when the scroll offset is saved.</p>