問題タブ [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.

0 投票する
0 に答える
235 参照

flutter - キーを使用した後でも Flutter TabbarView がスクロール位置を保持しない

問題

Imgur でビデオを見る : Imgur

ここでもビデオを見ることができます:Cloudinary

ビデオでわかるように、スクロール位置が維持されていません。ページが一斉にスクロールしているように見えます。

アプリの基本構造

NestedScrollView を SliverAppBar および TabBarView と共に使用して、単純なスクロール効果を実現しています。タブバーには、状態管理にプロバイダーを使用するさまざまなページが表示され、CustomScrollView を返しています。

ホームページ :

タブバーページを表示

ノート :

  1. すべての tabbarview ページで、AutomaticKeepAliveClientMixinを使用して、ページが 1 回だけ作成されるようにしています。
  2. すべての tabbarview ページで、CutomScrollView を返しています。

これまでに試したこと

タブバービュー内のスクロール位置を維持するために、さまざまな方法を試しました。

  1. PageStorageKey('page')
  2. PageStorageKey('page')PageStorage()
  3. ScrollControllerCustomScrollView で
  4. PageStorageKeyウィジェット コンストラクターを介して CustomScrollView に渡す

スクロール位置を維持するために上記のすべてを試しましたが、ビデオでわかるように、スクロール位置が維持されていません。スクロール位置は、CustomScrollView が TabbarView に直接追加された場合にのみ保存されます。しかし、私の場合、CustomScrollView は、状態管理とスクロール位置の維持に Stacked (Provide) を使用するステートフル ウィジェットにネストされています。

ただし、各ページの CustomScrollView にコントローラーを割り当てると、SliverAppBar のスクロール アニメーションが失われます。

ネストされたスクロールビューで状態を維持する方法はありますか??