【发布时间】:2018-09-24 16:19:21
【问题描述】:
在我的 Flutter 应用中,我想扫描一些条形码。扫描条形码后,我想显示一个小吃店。该应用应在 Android 设备上运行。
很遗憾,小吃店从未出现。 两种功能(条码扫描和显示快餐栏)分别工作正常。
在调试期间,会发生以下情况:
- 相机打开
- 条码被扫描
- 条形码存储在变量中
- 屏幕变黑
- 小吃店的代码已执行。小吃店不显示。
- 离开该方法后,将再次呈现要在其上显示小吃店的视图/小部件。
条形码扫描由0.0.3版本的flutter插件barcode_scan处理。
这里是匹配代码:
final GlobalKey<ScaffoldState> keyScaffold = new GlobalKey<ScaffoldState>();
[...]
@override
Widget build(BuildContext context) {
return new Scaffold(
key: keyScaffold,
[...]
}
Future scan() async {
String snackBarMessage = "No error";
try {
String barcode = await BarcodeScanner.scan();
setState(() => _barcodeController.text = barcode);
snackBarMessage = barcode;
} on PlatformException catch (e) {
if (e.code == BarcodeScanner.CameraAccessDenied) {
snackBarMessage = 'The user did not grant the camera permission!';
} else {
snackBarMessage = 'Unknown error: $e';
}
} on FormatException {
snackBarMessage =
'null (User returned using the "back"-button before scanning anything. Result)';
} catch (e) {
snackBarMessage = 'Unknown error: $e';
}
keyScaffold.currentState.showSnackBar(new SnackBar(
content: new Text(snackBarMessage),
duration: new Duration(seconds: 5),
));
}
【问题讨论】: