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

Posted

技术标签:

【中文标题】RangeError(索引):无效值:不在 0..6 范围内,包括:-2【英文标题】:RangeError (index): Invalid value: Not in range 0..6, inclusive: -2 【发布时间】:2019-11-01 12:48:12 【问题描述】:

这是来自官方 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):

【问题讨论】:

【参考方案1】:

尝试将var children = &lt;Widget&gt;[]; 移出方法构建。

【讨论】:

以上是关于RangeError(索引):无效值:不在 0..6 范围内,包括:-2的主要内容,如果未能解决你的问题,请参考以下文章

RangeError(索引):无效值:不在 0..7 范围内,包括:8

颤振:RangeError(索引):无效值:不在包含范围内0..27:28

Flutter:RangeError(索引):无效值:不在0..14范围内,包括:15

Flutter - RangeError(索引):无效值:有效值范围为空:0

Flutter:DioError [DioErrorType.DEFAULT]:RangeError(索引):无效值:只有有效值为0:

RangeError(索引):无效值:有效值范围为空