所以我有这个非常规的代码,必须使用它来使列表图块内部的容器具有使用ImagePicker选择的图像。这是代码段:
File _smallImage;
这是ImagePicker的功能:
Future _getSmallImage() async {
PickedFile pickedFile = await picker.getImage(source: ImageSource.gallery);
setState(() {
if (pickedFile != null) {
_smallImage = File(_smallImage.path);
} else {
print('No image selected.');
}
});
}
现在,这是令人困惑的地方,这是ListTile代码:
child: ListTile(
trailing: Container(
height: 120.0,
width: 100.0,
//color: Colors.white,
decoration: BoxDecoration(
color: Colors.white,
FileImage(File(_smallImagepath)) : null
image: DecorationImage(
image: _smallImage == null
? MemoryImage(kTransparentImage)
: FileImage(_smallImage),
fit: BoxFit.cover,
),
),
child: IconButton(
icon: Icon(Icons.add),
file u path,
onPressed: () => _getSmallImage(),
),
),
如您所见,ListTile中有一个IconButton(我必须这样做,因为列表图块还具有onPressed函数,这是小按钮和列表图块本身的唯一方法。按下)。它具有_getSmallImage()ImagePicker函数来获取图像。在那里,有DecorationImage用来拍摄选择的图片:
image: DecorationImage(
image: _smallImage == null
? MemoryImage(kTransparentImage)
: FileImage(_smallImage),
fit: BoxFit.cover,
但是问题是,我收到了“ null调用”错误,但是我不确定是什么原因导致的,因为在null情况下我具有三进制:
The getter 'path' was called on null.
当我尝试从图库中选择图像时发生错误。我知道它有点长,但是实际上并没有那么多代码,我只是想尽我所能地解释这个问题。谢谢!
答案 0 :(得分:0)
您必须使用 pickedFile.path 而不是 _smallImage
setState(() {
if (pickedFile != null) {
_smallImage = File(pickedFile.path); // Change this line.
} else {
print('No image selected.');
}
});