タグ付けされた質問 「flutter-widget」


3
不要なウィジェットのビルドに対処する方法は?
さまざまな理由buildで、ウィジェットのメソッドが再度呼び出されることがあります。 親が更新したために発生することは知っています。しかし、これは望ましくない影響を引き起こします。問題が発生する典型的な状況は、FutureBuilderこの方法を使用する場合です。 @override Widget build(BuildContext context) { return FutureBuilder( future: httpCall(), builder: (context, snapshot) { // create some layout here }, ); } この例では、ビルドメソッドが再度呼び出されると、別のhttpリクエストがトリガーされます。これは望ましくありません。 これを考慮して、不要なビルドに対処するにはどうすればよいですか?ビルド呼び出しを防ぐ方法はありますか?

10
垂直ビューポートには無制限の高さが与えられました
これは私のコードです: @override Widget build(BuildContext context) { return new Material( color: Colors.deepPurpleAccent, child: new Column( mainAxisAlignment: MainAxisAlignment.center, children:<Widget>[new GridView.count(crossAxisCount: _column,children: new List.generate(_row*_column, (index) { return new Center( child: new CellWidget() ); }),)] ) ); } 次のような例外: I/flutter ( 9925): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════ I/flutter ( 9925): The following …

4
Flutter:継承されたウィジェットを正しく使用する方法は?
InheritedWidgetを使用する正しい方法は何ですか?これまでのところ、ウィジェットツリーの下にデータを伝播する機会が与えられることを理解しました。極端に言えば、RootWidgetとして置くと、すべてのルートのツリー内のすべてのウィジェットからアクセスできます。これは、グローバルまたはシングルトンに頼る必要なく、ウィジェットのViewModel / Modelにアクセスできるようにする必要があるためです。 しかし、InheritedWidgetは不変なので、どうすれば更新できますか?そしてさらに重要なのは、私のステートフルウィジェットがどのようにトリガーされてサブツリーを再構築するかです。 残念ながら、ドキュメントはここでは非常に不明確であり、多くの人との議論の後、誰もそれを使用する正しい方法を本当に知っているようには見えません。 ブライアンイーガンからの引用を追加します。 はい、私はそれをツリーの下にデータを伝播する方法として見ています。私が混乱していると思うのは、APIドキュメントから: 「継承されたウィジェットは、この方法で参照されると、継承されたウィジェット自体の状態が変化したときにコンシューマーを再構築します。」 私がこれを最初に読んだとき、私は考えました: InheritedWidgetにデータを詰め込み、後で変更することができます。その変更が発生すると、私のInheritedWidgetを参照するすべてのウィジェットが再構築されます。 InheritedWidgetの状態を変更するには、それをStatefulWidgetでラップする必要があります。次に、実際にStatefulWidgetの状態を変更して、このデータをInheritedWidgetに渡します。InheritedWidgetは、すべての子にデータを渡します。ただし、この場合、InheritedWidgetを参照するウィジェットだけでなく、StatefulWidgetの下にあるツリー全体が再構築されるようです。あれは正しいですか?または、updateShouldNotifyがfalseを返した場合に、InheritedWidgetを参照するウィジェットをスキップする方法をどうにかして知っていますか?

9
ウィジェットの高さを取得するにはどうすればよいですか?
LayoutBuilderウィジェットの高さを取得するためにどのように使用されるのかわかりません。 ウィジェットのリストを表示して高さを取得し、特別なスクロール効果を計算できるようにする必要があります。私はパッケージを開発していて、他の開発者がウィジェットを提供しています(私はそれらを制御していません)。LayoutBuilderを使用して高さを取得できることを読みました。 非常に単純なケースでは、WidgetをLayoutBuilder.builderでラップしてスタックに入れようminHeight 0.0としmaxHeight INFINITYましたが、常に、、およびを取得します。LayoutBuilderを誤用していますか? 編集:LayoutBuilderはダメのようです。私はほとんど解決策であるCustomSingleChildLayoutを見つけました。 そのデリゲートを拡張し、getPositionForChild(Size size, Size childSize)メソッドでウィジェットの高さを取得することができました。しかし、最初に呼び出されるメソッドはSize getSize(BoxConstraints constraints)、制約として、これらのCustomSingleChildLayoutsをListViewに配置しているため、0からINFINITYになります。 私の問題は、SingleChildLayoutDelegategetSizeがビューの高さを返す必要があるように動作することです。その時の子供の身長はわかりません。私はconstraints.smallest(0、高さは0)、または無限大でアプリをクラッシュさせるconstraints.biggestのみを返すことができます。 ドキュメントでは、次のようにも書かれています。 ...しかし、親のサイズは子のサイズに依存することはできません。 そして、それは奇妙な制限です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.