这是来自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
答案 0 :(得分:0)
尝试将var children = <Widget>[];
移至方法构建之外。