我非常陌生,需要构建我的应用程序的帮助。
运行项目时,它会显示一条错误消息: RangeError(索引):无效值:有效值范围为空:0 ,我只能显示一个联系人,并且甚至还不是第一次接触。
请帮助。谢谢。
我的代码:
import 'dart:io';
import 'package:contacts_service/contacts_service.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
void main() {
FlutterError.onError = (FlutterErrorDetails details) {
FlutterError.dumpErrorToConsole(details);
if (kReleaseMode)
exit(1);
};
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter contacts',theme: ThemeData(),home: MyHomePage(title: 'Contacts Page'),);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key,this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
List<Contact> contacts = [];
@override
void initState() {
// TODO: implement initState
super.initState();
getallContacts();
}
getallContacts() async{
List<Contact> _contacts = (await ContactsService.getcontacts()).toList();
setState(() {
contacts = _contacts;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),),body: Container(
padding: EdgeInsets.all(20),child: Column(
children: <Widget>[
Text(
'Phone Book',Expanded(
child: ListView.builder(
shrinkWrap: true,itemCount: contacts.length,itemBuilder: (context,index){
Contact contact = contacts[index];
return ListTile(
title: Text(contact.displayName),subtitle: Text(
contact.phones.elementAt(0).value
),leading: (contact.avatar != null && contact.avatar.length > 0) ?
CircleAvatar(backgroundImage: MemoryImage(contact.avatar),):
CircleAvatar(child: Text(contact.initials()),);
},)
)
],);
}
}
我具有所有适当的依赖关系,并且还指定了user_permission进行读取和写入。
谢谢!