成功捕获条码后相机视图卡在 UI
Camera View Stucks on UI after capturing barcode successfully
我在 Xamarin.Forms.Android 中遇到以下情况的问题:
我正在测试并能够在 ZXing 中重现问题 Xamarin.Forms sample.
在示例中 -> FormsSample.Droid:
我已经创建了 CustomScanPage.cs
的副本,并在第一次 CustomScanPage
.
成功扫描后使用复制的页面再次扫描条形码
我不会用第一个 CustomScanPage
做 PopAsync
。
我的问题是,当我转到第二个 CustomScanPage
(比如 CustomScanPage1
)时,我可以看到相机视图卡在捕获的旧条形码图像上。虽然它在后台捕获条形码,但 UI 没有更新,因为我看不到相机预览。
意思是,当我已经 CustomScanPage
在 backstack 中时,问题就出现了。
注意:这种情况仅在 android 的情况下发生,在 iOS.
中工作正常
更新 1:
看起来问题出在 this.Holder
,这很常见。可能是由于这种情况,旧视图显示在 SurfaceView 上。此外,在 Xamarin.Forms 中,我们正在使用跨平台通用的便携设备。所以一个 Activity
用于每个
Page
.
这是一个简单的场景:页面在您完成扫描后立即卡住,下一页显示相同的卡住页面
我终于有了这个结论,SurfaceDestroyed 事件不是从 Xamarin.Android ZXing 库触发的。当页面弹出时调用。 (此外,在 iOS ShutDownCamera 代码表面视图被破坏,这在 android StopScanning 方法中不存在。)
所以,我做了一个解决方法,从堆栈中删除上一页并将其保存在某个地方,从下一页扫描后,返回并再次插入该持久页面。所以,我只是注意堆栈中只有包含扫描仪的页面。
我在 Xamarin.Forms.Android 中遇到以下情况的问题:
我正在测试并能够在 ZXing 中重现问题 Xamarin.Forms sample.
在示例中 -> FormsSample.Droid:
我已经创建了 CustomScanPage.cs
的副本,并在第一次 CustomScanPage
.
我不会用第一个 CustomScanPage
做 PopAsync
。
我的问题是,当我转到第二个 CustomScanPage
(比如 CustomScanPage1
)时,我可以看到相机视图卡在捕获的旧条形码图像上。虽然它在后台捕获条形码,但 UI 没有更新,因为我看不到相机预览。
意思是,当我已经 CustomScanPage
在 backstack 中时,问题就出现了。
注意:这种情况仅在 android 的情况下发生,在 iOS.
中工作正常更新 1:
看起来问题出在 this.Holder
,这很常见。可能是由于这种情况,旧视图显示在 SurfaceView 上。此外,在 Xamarin.Forms 中,我们正在使用跨平台通用的便携设备。所以一个 Activity
用于每个
Page
.
这是一个简单的场景:页面在您完成扫描后立即卡住,下一页显示相同的卡住页面
我终于有了这个结论,SurfaceDestroyed 事件不是从 Xamarin.Android ZXing 库触发的。当页面弹出时调用。 (此外,在 iOS ShutDownCamera 代码表面视图被破坏,这在 android StopScanning 方法中不存在。)
所以,我做了一个解决方法,从堆栈中删除上一页并将其保存在某个地方,从下一页扫描后,返回并再次插入该持久页面。所以,我只是注意堆栈中只有包含扫描仪的页面。