FLutter教程-Part1-4(未完成)

创建一个无限循环的列表

这里说列表有两种,第一个是说的数据结构,也就是类似于数组,用于存储数据。第二种是能够在手机上显示的一行一行的表。
我们要改动第二个类。

class RandomWordsState extends State<RandomWords> {
  // Add the next two lines.
  final List<WordPair> _suggestions = <WordPair>[];
  final TextStyle _biggerFont = const TextStyle(fontSize: 18.0); 
  ...
}

上面添加的代码只是建立一个空的数据结构列表,用于存储随机产生的单词对。

Widget _buildSuggestions() {
    return new ListView.builder(
      padding: const EdgeInsets.all(16.0),   # 规定了类表padding的宽度
      // 为每个word pairing调用一次itemBuilder回调函数,然后放到ListTile中。
      // 对于偶数行, 函数为每个word pairing添加一个ListTile(瓦片). 对于奇数行, 函数添加一个Divider用来区分两个条目。
      itemBuilder: (BuildContext _context, int i) {
        // 为ListView中的每一行前面添加一个像素高度的divier
        if (i.isOdd) {
          return new Divider();
        }
        // 计算实际单词对的数量 
        // 在ListView中,减去divider widgets的数量.
        final int index = i ~/ 2;
        // 如果已经达到了单词对的结尾,就在添加10个进来
        if (index >= _suggestions.length) {
          // 在产生10个添加到list中。
          _suggestions.addAll(generateWordPairs().take(10));
        }
        return _buildRow(_suggestions[index]);
      }
    );
  }

itemBuilder就是一个回调函数

你可能感兴趣的:(技能知识散记)