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就是一个回调函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值