【发布时间】:2019-08-22 07:21:26
【问题描述】:
使用image_picker: ^0.6.0+15包选择图像后,我们在Android和iOS中收到了一个文件,但问题在于图像在UI中的显示/渲染。
//Display Image to user
Expanded(
child: Padding(
padding: EdgeInsets.only(top: 20, bottom: 20),
child: _selectedImage == null
? Center(
child: Container(
child: Text('No Image selected'),
),
)
: Image.memory(
_selectedImage.readAsBytesSync(),
fit: BoxFit.contain,
),
),
)
setState(() {}); 在 Android 中是必需的,但在 iOS 图像显示上没有调用 setState(() {}); 如果我们调用 setState(),iOS 上的 UI 会出现故障。
我们有一个选择:
Future getImage(int sourceType) async {
_selectedImage = await ImagePicker.pickImage(
source: sourceType == 1 ? ImageSource.gallery : ImageSource.camera,
maxHeight: 500,
maxWidth: 500,
);
// to show Images in Images View
if (Platform.isAndroid) {
setState(() {});
}
}
但是iOS上不需要setState()有什么解释吗?
【问题讨论】: