如何修复尝试设置个人资料图片时出现的错误



我想拍一张照片,把它设置为轮廓。但我得到了这个错误:

A value of type 'PickedFile' can't be assigned to a variable of type 'File'.

这就是其中涉及的方法。

_loadPicker(ImageSource source)async{
File picked = await ImagePicker.platform.pickImage(source: source);
if(picked!=null){
setState(() {
_pickedImage =picked  ;
});
}
Navigator.pop(context);
}
CircleAvatar(
radius: 70,
child:_pickedImage ==null ?Text("Picture"):null,
backgroundImage: _pickedImage!=null?FileImage(_pickedImage):null,
),
File _pickedImage;

希望aynone能够帮助并知道如何解决这个问题。

void _showPickOptionsDialog(BuildContext context) {
showDialog(context: context, builder: (context)=>AlertDialog(
content: Column(
mainAxisSize:MainAxisSize.min ,
children: <Widget>
[ListTile(title:Text
("Pick from Gallery"),
onTap:(){
_loadPicker(ImageSource.gallery);
},
),
ListTile(title: Text("Take a picture"),
onTap: (){
_loadPicker(ImageSource.camera);
}
,)
],
),
),);
}
picked是PickedFile的类型,而不是File。所以你必须这样转换:
File _pickedImage = File(picked.path)

所以你的代码应该是:

_loadPicker(ImageSource source)async{
PickedFile picked = await ImagePicker.platform.pickImage(source: ImageSource.camera);
if(picked!=null){
setState(() {
_pickedImage = File(picked.path)  ;
});
}
Navigator.pop(context);

}

相关内容

最新更新