[解決済み] Flutterで複数のウィジェットをレンダリングするためにリストを反復処理する?
2022-10-15 07:20:08
質問
このように定義された文字列のリストがあります。
var list = ["one", "two", "three", "four"];
テキストウィジェットを使って、画面上に値を並べて表示させたいと思います。私はこれを試みるために、以下のコードを使用してみました。
for (var name in list) {
return new Text(name);
}
しかし、このコードを実行すると、for ループは一度だけ実行され、レンダリングされるテキストウィジェットは次のような一種類だけです。
one
(リストの最初の項目) と書かれたテキストウィジェットが 1 つだけ表示されます。さらに、for ループの中にログ メッセージを追加すると、それも 1 回だけ実行されます。なぜ、私の for ループはリストの長さに基づいてループしないのでしょうか?それは一度だけ実行され、その後終了するようです。
どのように解決するのですか。
基本的に、関数で 'return' を押すと、関数は停止して反復処理を継続しません。したがって、必要なのは、すべてをリストに格納して、それをウィジェットの子として追加することです。
このようにすることができます。
Widget getTextWidgets(List<String> strings)
{
List<Widget> list = new List<Widget>();
for(var i = 0; i < strings.length; i++){
list.add(new Text(strings[i]));
}
return new Row(children: list);
}
とか、もっといいのは、.map()演算子を使って、こんな風にすることです。
Widget getTextWidgets(List<String> strings)
{
return new Row(children: strings.map((item) => new Text(item)).toList());
}
関連
-
[解決済み] 一般的なリストを繰り返しながら、そのリストから要素を削除するには?
-
[解決済み】Flutterのテキストウィジェットの下に黄色い線が?
-
[解決済み] Navigatorを含まないコンテキストで要求されたNavigator操作
-
[解決済み] Flutter。画面の向きをオンデマンドで設定・ロックする方法
-
[解決済み] Flutter ListViewでウィジェットにスクロールする
-
[解決済み] Flutter 条件に応じてリストをフィルタリングする
-
[解決済み] テキストフィールドの値を変更するには?
-
[解決済み] FlutterのprimaryColorとprimarySwatchの違いは何ですか?
-
[解決済み] flutterで空のビューを表示するには?
-
[解決済み] 素材ウィジェットが見つかりません
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] TextFieldの高さと幅を変更するには?
-
[解決済み] Navigatorを含まないコンテキストで要求されたNavigator操作
-
[解決済み] Flutter。画面の向きをオンデマンドで設定・ロックする方法
-
[解決済み] FlutterのコードからWebブラウザ(URL)を開くには?
-
[解決済み] Flutterで次のTextFieldにフォーカスを移すには?
-
[解決済み] Flutter 条件に応じてリストをフィルタリングする
-
[解決済み] テキストフィールドの値を変更するには?
-
[解決済み] FlutterのprimaryColorとprimarySwatchの違いは何ですか?
-
[解決済み] CircularProgressIndicatorにサイズを設定するには?
-
[解決済み] Flutter: タッチスクリーンでのスクロールを無効にするListView