問題タブ [flutter-sliver]

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 に答える
506 参照

dart - Flutter Viewport の双方向無限スクロールで子オフセットの更新遅延を修正する方法

そのため、各 SliverItem にスティッキー ヘッダーを使用して双方向スクロールを作成しようとしています。

https://github.com/fluttercommunity/flutter_sticky_headersをアイテムとして使用して、両方向にスクロールを無限にしました。

ここにいくつかのスクリーンキャストがあります - https://i.ibb.co/ZLJvwsG/sticky-jump.gif

またはhttps://ibb.co/98vBfXc

問題は、両方の SliverLists がビューポートに表示されると、スティッキー ヘッダーがジャンプし始めることです。StickyHeader パッケージは非常に単純markNeedsLayoutです。スクロール位置が変更されたときに、ヘッダー el の位置を (リスナーとして) 更新するだけです。

これが位置計算です - https://github.com/fluttercommunity/flutter_sticky_headers/blob/master/lib/sticky_headers/render.dart#L94

ここにイベントバインドがあります https://github.com/fluttercommunity/flutter_sticky_headers/blob/master/lib/sticky_headers/render.dart#L79

_scrollableで定義されていますScrollable.of(context);

このタイプの効果を作成するのは、少し遅れてイベントが発生したり、ビューポートが再描画されたりするように見えます。

助けが必要なのか、解決策や説明が必要なのか - なぜそれが起こるのか?

本当は理由だけでいいんですけどね)そもそもなんでこうなったのか知りたいです。理解することで、私は機能するソリューションを提供できるようになります)

アップデート

わかりましたので、しばらくして、元の問題が何であるかを見つけました。必要に応じてスクロールリストを作成するために、この問題を解決するために独自のパッケージを作成しました)

https://github.com/TatsuUkraine/flutter_sticky_infinite_list

そのようなパッケージのほとんどがスクロール イベントにバインドする方法と、スティッキー アイテムの位置を計算する方法を変更したため、元の質問で説明されている問題はありません。

https://github.com/TatsuUkraine/flutter_sticky_infinite_list_example/blob/bdd86fd0bbe8183fc4adda631b8dea353b7afa98/doc/images/base_scroll.gif?raw=true

自由に使用して提案してください)

0 投票する
2 に答える
1438 参照

dart - テキスト フィールドがスライバーに配置されている場合、キーボードが正しく表示されない

Cupertino ウィジェットとスライバーを使用して検索バーを作成しようとしています。現在、私は次の構造を持っています:

SliverPersistentHeader にはデリゲートがあり、次の方法で実装されます。

画面ウィジェットは次のようになります。

問題は、テキスト フィールドにフォーカスすると、キーボードが表示されようとしているように見えますが、すぐに非表示になることです。この動作は scrollview イベントが原因で発生すると考えていましたが、CustomScrollView に ScrollController を追加しても結果は得られませんでした (テキスト フィールドのフォーカス中にスクロール イベントは発生しませんでした)。

また、問題はシミュレーターでのみ発生すると考えていましたが、実際のデバイスでは動作は同じです。

問題のビデオデモは次のとおりです。

ビデオデモンストレーション

更新: Raja Jain のおかげで、問題はスライバーやCategoriesScreenウィジェット自体ではなく、CupertinoTabScaffoldこのウィジェットがラップされていることがわかりました。のホームウィジェットを削除してウィジェットに直接CupertinoTabScaffold設定すると、問題はなくなります。これが私のここです、それが役立つことを願っていますが、特別なことは何もないので方法がわかりません:CupertinoAppCategoriesScreenmain.dart