当我从图像选择器中选择图像时,出现此错误 类型文件不是'imageprovider动态'类型的子类型。
我尝试使用堆栈,即使相同的错误 class _ProfileState extends State<Profile> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: true,
title: Text('Profile'),
centerTitle: true,
elevation: 10.0,
),
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: _imageFile == null
? AssetImage('assets/tom.jpg')
: _imageFile,
fit: BoxFit.cover)),
child: ListView(
children: <Widget>[
Container(
height: MediaQuery.of(context).size.height / 1.4,
),
Card(
color: Colors.grey.withOpacity(0.1),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0)),
child: cameraAndEdit(context),
),
Container(
width: MediaQuery.of(context).size.width,
color: Colors.white70,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: <Widget>[
box(),
line(color: Colors.deepPurple, lineHeight: 5.0),
// nameDesignation(),
infoRow(
infoIcon: Icon(Icons.person),
infoText: 'Name',
detail: 'Tom Cruise',
textColor: Colors.black),
Divider(),
infoRow(
infoIcon: Icon(Icons.location_on),
infoText: 'Address',
detail: '#9/1 1st main Circle street Bangalore 560-096',
textColor: Colors.black),
Divider(),
infoRow(
infoIcon: Icon(Icons.gesture),
infoText: 'Age',
detail: '25',
textColor: Colors.black),
Divider(),
infoRow(
infoIcon: Icon(Icons.phone),
infoText: 'Phone',
detail: '+91 9148046273',
textColor: Colors.black),
line(color: Colors.deepPurple, lineHeight: 5.0),
box(),
],
),
),
),
],
),
),
);
}
答案 0 :(得分:4)
image: _imageFile == null
? AssetImage('assets/tom.jpg')
: _imageFile,
应该是
image: _imageFile == null
? AssetImage('assets/tom.jpg')
: FileImage(_imageFile),
答案 1 :(得分:3)
如果您使用的是image_picker,请尝试下面的代码。
import 'package:image_picker/image_picker.dart';
PickedFile _imageFile;
image: _imageFile == null
? AssetsImage("sample_image_path")
: FileImage(File(_imageFile.path)),
答案 2 :(得分:1)
如果要从网络和BoxDecoration
内部加载图像,则需要使用NewtworkImage('...')
而不是Image.network('...')
示例:
decoration: BoxDecoration(
image: DecorationImage(image: NetworkImage("imageUrl"),
fit: BoxFit.cover)
),
答案 3 :(得分:0)
对我来说这是有效的:
<块引用>用 Image.Asset
替换 AssetImagedf
应该
image == null
? AssetImage('assets/myimage.jpg')
: Image.file(_image),
答案 4 :(得分:-2)
要显示来自互联网的图像,请使用 NetworkImage("imageUrl") 对于本地图像使用 FileImage(_imageFile)