問題タブ [flutter-sliverappbar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - キーを使用した後でも Flutter TabbarView がスクロール位置を保持しない
問題
Imgur でビデオを見る : Imgur
ここでもビデオを見ることができます:Cloudinary
ビデオでわかるように、スクロール位置が維持されていません。ページが一斉にスクロールしているように見えます。
アプリの基本構造
NestedScrollView を SliverAppBar および TabBarView と共に使用して、単純なスクロール効果を実現しています。タブバーには、状態管理にプロバイダーを使用するさまざまなページが表示され、CustomScrollView を返しています。
ホームページ :
タブバーページを表示
ノート :
- すべての tabbarview ページで、AutomaticKeepAliveClientMixinを使用して、ページが 1 回だけ作成されるようにしています。
- すべての tabbarview ページで、CutomScrollView を返しています。
これまでに試したこと
タブバービュー内のスクロール位置を維持するために、さまざまな方法を試しました。
PageStorageKey('page')
PageStorageKey('page')
とPageStorage()
ScrollController
CustomScrollView でPageStorageKey
ウィジェット コンストラクターを介して CustomScrollView に渡す
スクロール位置を維持するために上記のすべてを試しましたが、ビデオでわかるように、スクロール位置が維持されていません。スクロール位置は、CustomScrollView が TabbarView に直接追加された場合にのみ保存されます。しかし、私の場合、CustomScrollView は、状態管理とスクロール位置の維持に Stacked (Provide) を使用するステートフル ウィジェットにネストされています。
ただし、各ページの CustomScrollView にコントローラーを割り当てると、SliverAppBar のスクロール アニメーションが失われます。
ネストされたスクロールビューで状態を維持する方法はありますか??