RangeError(索引):无效值:不在0..6范围内,包括:-2

时间:2019-06-18 20:18:35

标签: flutter dart

这是来自flutter官方网站的呼叫日志包。我尝试学习并实现它以从设备获取呼叫列表,但收到此错误。

    Iterable<CallLogEntry> _callLogEntries = [];

    @override
    Widget build(BuildContext context) {

    var children = <Widget>[];
    _callLogEntries.forEach((entry) {
    children.add(
    Column(
      children: <Widget>[
        Divider(),
        Text('NUMBER   : ${entry.formattedNumber}', style: mono),
        Text('NAME     : ${entry.name}', style: mono),
      ],
      crossAxisAlignment: CrossAxisAlignment.start,
      mainAxisAlignment: MainAxisAlignment.start,
    ),
  );
 });

return MaterialApp(
  home: Scaffold(
    appBar: AppBar(title: Text('call_log example')),
    body: SingleChildScrollView(
      child: Column(
        children: <Widget>[
          Center(
            child: Padding(
              padding: const EdgeInsets.all(8.0),
              child: RaisedButton(
                onPressed: () async {
                  var result = await CallLog.query();
                  setState(() {
                    _callLogEntries = result;
                  });
                },
                child: Text("Get all"),
              ),
            ),
          ),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Column(children: children),
          ),
        ],
      ),
    ),
  ),
);

错误:I / flutter(25293):RangeError(索引):无效值:不在0..6范围内,包括:-2

1 个答案:

答案 0 :(得分:0)

尝试将var children = <Widget>[];移至方法构建之外。

相关问题