File 第一次应用颤振,我遇到了一个错误
我试图从图库中提取图像并将其更新到用户界面。但执行此操作时,第56行的profile.dart文件中显示了一个错误 错误发生在_映像上 参数类型“文件”(其中文件在中定义) D:\Softwares\flatter\bin\cache\pkg\sky\u engine\lib\html\html\u dart2js.dart)' 无法分配给参数类型“文件”(其中文件是在中定义的 D:\Softwares\flatter\bin\caches\pkg\sky\u engine\lib\io\file.dart)' 完整的代码 Main.dartFile 第一次应用颤振,我遇到了一个错误,file,flutter,imagepicker,File,Flutter,Imagepicker,我试图从图库中提取图像并将其更新到用户界面。但执行此操作时,第56行的profile.dart文件中显示了一个错误 错误发生在_映像上 参数类型“文件”(其中文件在中定义) D:\Softwares\flatter\bin\cache\pkg\sky\u engine\lib\html\html\u dart2js.dart)' 无法分配给参数类型“文件”(其中文件是在中定义的 D:\Softwares\flatter\bin\caches\pkg\sky\u engine\lib\io\fil
import 'package:flutter/material.dart';
import 'package:udharibook/Screens/SplashScreen.dart';
import 'package:udharibook/Screens/UserProfile.dart';
void main(){
runApp(
MaterialApp(
title: 'Udhari Book',
home:UserProfile(),
debugShowCheckedModeBanner: false,
theme: ThemeData(
backgroundColor: Color.fromRGBO(242, 242, 242, 1.0)
),
)
);
}
档案页面
import 'dart:html';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:image_picker/image_picker.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:path/path.dart';
class UserProfile extends StatefulWidget {
@override
_UserProfileState createState() => _UserProfileState();
}
class _UserProfileState extends State<UserProfile> {
File _image;
TextEditingController nameController =TextEditingController()..text='Mehul Jain';
TextEditingController mobileController =TextEditingController()..text='8856061841';
TextEditingController emailController =TextEditingController()..text='mehuljain3698@gmail.com';
TextEditingController addressController =TextEditingController()..text='Maharashtra';
@override
Widget build(BuildContext context) {
Future getImage() async{
var image=await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {
_image=image as File;
print('Image Path $_image');
});
}
return Scaffold(
resizeToAvoidBottomPadding: false,
appBar: AppBar(
title: Text('User Profile'),
backgroundColor: Color.fromRGBO(162, 42, 43, 1.0),
),
body: Builder(
builder: (context) => Container(
child: Column(
children: <Widget>[
SizedBox(
height: 20.0,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Align(
alignment: Alignment.center,
child: CircleAvatar(
radius: 50,
backgroundColor: Color.fromRGBO(162, 42, 43, 1.0),
child: ClipOval(
child: SizedBox(
height: 180.0,
width: 180.0,
child:_image!=null?
Image.file(_image,fit: BoxFit.fill):
Image.network(
'https://randomwordgenerator.com/img/picture-generator/55e4d5464f5ba914f1dc8460962e33791c3ad6e04e5074417d2d73dc934bcd_640.jpg',
fit: BoxFit.fill,
)),
),
),
),
Padding(
padding: EdgeInsets.only(top: 60.0),
child: IconButton(
icon: Icon(Icons.camera_alt), onPressed: () {
getImage();
}),
)
],
),
Padding(
padding: EdgeInsets.only(top:20.0,left: 10.0,right: 10.0),
child:SizedBox(
height: 40.0,
child: TextField(
controller: nameController,
decoration: InputDecoration(
labelText: 'Full Name',
labelStyle:
TextStyle(fontFamily: 'Exo2', color: Colors.grey),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0)
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0),
borderSide: BorderSide(
color:
Color.fromRGBO(162, 42, 43, 1.0)
)
)
),
),
)),
Padding(
padding: EdgeInsets.only(top:15.0,left: 10.0,right: 10.0),
child:SizedBox(
height: 40.0,
child: TextField(
controller: mobileController,
enabled: false,
keyboardType:TextInputType.phone,
decoration: InputDecoration(
labelText: 'Mobile Number',
labelStyle:
TextStyle(fontFamily: 'Exo2', color: Colors.grey),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0)),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0),
borderSide: BorderSide(
color:
Color.fromRGBO(162, 42, 43, 1.0)
)
)
),
),
)),
Padding(
padding: EdgeInsets.only(top:15.0,left: 10.0,right: 10.0),
child:SizedBox(
height: 40.0,
child: TextField(
controller: emailController,
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: 'Email (Optional)',
labelStyle:
TextStyle(fontFamily: 'Exo2', color: Colors.grey),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0)
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0),
borderSide: BorderSide(
color:
Color.fromRGBO(162, 42, 43, 1.0)
)
)
),
),
)),
Padding(
padding: EdgeInsets.only(top:15.0,left: 10.0,right: 10.0,bottom: 30.0),
child: TextField(
maxLines: 3,
maxLengthEnforced: true,
controller: addressController,
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: 'Address (Optional)',
labelStyle:
TextStyle(fontFamily: 'Exo2', color: Colors.grey),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0)
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0),
borderSide: BorderSide(
color:
Color.fromRGBO(162, 42, 43, 1.0)
)
)
),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
SizedBox(
width:130.0,
height: 50.0,
child:RaisedButton(
color: Color.fromRGBO(162, 42, 43, 1.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0)
),
onPressed: (){
Navigator.of(context).pop();
},
elevation: 4.0,
splashColor: Colors.blueGrey,
child: Text(
'Save',
style: TextStyle(
color:Colors.white,fontSize: 22.0,fontFamily: 'Exo2'
),
),
)),
SizedBox(
width:130.0,
height:50.0,
child:RaisedButton(
color: Color.fromRGBO(162, 42, 43, 1.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0)
),
onPressed: (){
Navigator.of(context).pop();
},
elevation: 4.0,
splashColor: Colors.blueGrey,
child: Text(
'Cancel',
style: TextStyle(
color:Colors.white,fontSize: 22.0,fontFamily: 'Exo2'
),
),
))
],
)
],
),
),
),
);
}
}
导入'dart:html';
进口“包装:颤振/cupertino.dart”;
进口“包装:颤振/材料.省道”;
导入“package:flatter/widgets.dart”;
导入“包:image_picker/image_picker.dart”;
导入“包:firebase_存储/firebase_存储.dart”;
导入“package:path/path.dart”;
类UserProfile扩展了StatefulWidget{
@凌驾
_UserProfileState createState()=>\u UserProfileState();
}
类_UserProfileState扩展了状态{
文件图像;
TextEditingController名称控制器=TextEditingController()…text='Mehul Jain';
TextEditingController-mobileController=TextEditingController()…text='8856061841';
TextEditingController emailController=TextEditingController()…text=mehuljain3698@gmail.com';
TextEditingController地址控制器=TextEditingController()…text='Maharashtra';
@凌驾
小部件构建(构建上下文){
Future getImage()异步{
var image=wait ImagePicker.pickImage(源:ImageSource.gallery);
设置状态(){
_图像=作为文件的图像;
打印(“图像路径$_图像”);
});
}
返回脚手架(
resizeToAvoidBottomPadding:false,
appBar:appBar(
标题:文本(“用户配置文件”),
背景颜色:颜色。来自RGBO(162,42,43,1.0),
),
车身:建造商(
生成器:(上下文)=>容器(
子:列(
儿童:[
大小盒子(
身高:20.0,
),
划船(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
对齐(
对齐:对齐.center,
孩子:圆环星(
半径:50,
背景颜色:颜色。来自RGBO(162,42,43,1.0),
孩子:斜坡(
孩子:大小盒子(
高度:180.0,
宽度:180.0,
子项:_image!=null?
Image.file(_Image,fit:BoxFit.fill):
图像网络(
'https://randomwordgenerator.com/img/picture-generator/55e4d5464f5ba914f1dc8460962e33791c3ad6e04e5074417d2d73dc934bcd_640.jpg',
fit:BoxFit.fill,
)),
),
),
),
填充物(
填充:仅限边缘设置(顶部:60.0),
孩子:我的钮扣(
图标:图标(Icons.camera\u alt),按下时:(){
getImage();
}),
)
],
),
填充物(
填充:仅限边缘设置(顶部:20.0,左侧:10.0,右侧:10.0),
孩子:大小盒子(
身高:40.0,
孩子:TextField(
控制器:名称控制器,
装饰:输入装饰(
labelText:'全名',
标签样式:
TextStyle(fontFamily:'Exo2',颜色:Colors.grey),
边框:大纲输入边框(
边界半径:边界半径。圆形(5.0)
),
聚焦顺序:大纲输入边框(
边界半径:边界半径。圆形(5.0),
边界边(
颜色:
颜色。来自RGBO(162,42,43,1.0)
)
)
),
),
)),
填充物(
填充:仅限边缘设置(顶部:15.0,左侧:10.0,右侧:10.0),
孩子:大小盒子(
身高:40.0,
孩子:TextField(
控制器:mobileController,
启用:false,
键盘类型:TextInputType.phone,
装饰:输入装饰(
labelText:'手机号码',
标签样式:
TextStyle(fontFamily:'Exo2',颜色:Colors.grey),
边框:大纲输入边框(
边界半径:边界半径。圆形(5.0)),
聚焦顺序:大纲输入边框(
边界半径:边界半径。圆形(5.0),
边界边(
颜色:
颜色。来自RGBO(162,42,43,1.0)
)
)
),
),
)),
填充物(
填充:仅限边缘设置(顶部:15.0,左侧:10.0,右侧:10.0),
孩子:大小盒子(
身高:40.0,
孩子:TextField(
控制器:emailController,
键盘类型:TextInputType.emailAddress,
装饰:输入装饰(
labelText:“电子邮件(可选)”,
标签样式:
TextStyle(fontFamily:'Exo2',颜色:Colors.grey),
边框:大纲输入边框(
边界半径:边界半径。圆形(5.0)