Android 带有多个 ZXingScannerView 的 barcodescanner 静止图像

Android barcodescanner still image with multiple ZXingScannerView

在我的应用程序中,我有一个使用 dm77/barcodescanner 的片段。

我正在开发一款商店应用程序,例如:您扫描一件商品 -> 产品页面 -> 继续购物 -> 打开另一个扫描仪会话 -> 等等。

现在,如您所见,因为客户端要维护返回堆栈,所以可以打开该片段的多个实例(但不能同时打开)。

带扫描仪的第一个片段效果很好,其他片段有静止图像,即使我调用

scannerView.stopCamera();
scannerView = null;

离开第一个片段。

注意: 如果我们使用 replace 而不是 add,则另一个片段效果很好.但这会给片段的动画带来问题。

经过激烈的调试,我发现了如何使一切正常工作:

  • 当片段可见/正在使用时,创建 ZXingScannerView 并以编程方式添加到您的布局,启动相机并预览;
  • 当片段不可见/不使用时,从布局中删除 ZXingScannerView;
  • 在某些 android 版本(如 5.01)上,请注意不要多次调用 startCamera,否则您将无法再打开它,直到您重新启动应用程序。这里的错误是死线程异常引起的。

希望已经足够清晰和有帮助。