dart - 小部件内的 flutter 循环

我是 Flutter 的新手,想知道是否有人可以指导我。

我想通过从 json 文件中检索到的字符串来激怒我。我想分别显示每个字母。下面的例子。

输出 完整的单词:嗨 字母 pos 0: H 字母 pos 1:我

到目前为止,我尝试的是在 itemBuilder 下方添加一个 for 循环,但无法检索卡内的变量。我尝试在 Widget 中添加一个 for 循环,但它不允许我这样做。

任何意见将不胜感激!

import 'dart:convert';

import 'package:flutter/material.dart';


void main() {
  runApp(new MaterialApp(
    home: new MyApp(),
  ));
}

class MyApp extends StatefulWidget {
  @override
  MyAppState createState() => new MyAppState();
}

class MyAppState extends State<MyApp> {
  List data;

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(
          title: new Text("Load local JSON file"),
        ),
        body: new Container(
          child: new Center(
            // Use future builder and DefaultAssetBundle to load the local JSON file
            child: new FutureBuilder(
                future: DefaultAssetBundle
                    .of(context)
                    .loadString('data_repo/starwars_data.json'),
                builder: (context, snapshot) {
                  // Decode the JSON
                  var new_data = JSON.decode(snapshot.data.toString());

                  return new ListView.builder(
                    // Build the ListView

                    itemBuilder: (BuildContext context, int index) { 
                      return new Card(
                        child: new Column(
                          crossAxisAlignment: CrossAxisAlignment.stretch,
                          children: <Widget>[
                            new Text("Complete Word: " + new_data[index]['complete_word'])
                          ],
                        ),
                      );
                    },
                    itemCount: new_data == null ? 0 : new_data.length,
                  );
                }),
          ),
        ));
  }
}

最佳答案

创建一个方法并在其中创建一个小部件列表。包含小部件,然后返回列表。

示例

child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: ListMyWidgets()),

List<Widget> ListMyWidgets() {
List<Widget> list = new List();
list.add(new Text("hi"));
list.add(new Text("hi2"));
list.add(new Text("hi3"));
return list;
}

https://stackoverflow.com/questions/49722323/

相关文章:

flutter - 如何在 flutter 的盒子周围创建虚线边框?

dart - 如何使TextField的背景为矩形框形状?

dart - Flutter Web 不显示 Material Design 图标

dictionary - 不断向 map 添加数据

dart - 用于 Flutter/Dart 的 Google Sheets API v4

dart - Dart 中有 Goto 函数吗?

image - 如何在 Dart/Flutter 中读取本地镜像文件的字节数?

flutter - floatingactionbutton 在不同的选项卡上显示/隐藏

dart - 格式化持续时间,如 HH :mm:ss

dart - Flutter 中的透明 PageRoute 用于显示(半)透明页面