我在每个项目中使用nuget安装了我的Xamarin Forms项目。在大多数情况下,应用程序会执行他们需要执行的操作(单击按钮时执行QR扫描)。
我的问题是我不希望单独的扫描视图,而是通过自定义渲染器将其作为主UI的一部分。
我遇到了一个问题。当我按下触发依赖服务的按钮时,zxing开始了一个全新的视野。据我所知,这是正确的行为,有没有办法告诉zxing它需要使用我的自定义视图作为叠加视图?
答案 0 :(得分:2)
您应该将此实现为具有每个平台的自定义渲染器的自定义视图。 http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/
从https://github.com/Redth/ZXing.Net.Mobile
复制使用ZXingScanner视图/片段/控件
在每个平台上,ZXing扫描程序已实现为可重用的组件(视图,片段或控件),并且可以直接使用可重用组件而无需使用MobileBarcodeScanner类。在每个平台上,视图/片段/控件的实例包含控制扫描程序所需的必要属性和方法。默认情况下,默认覆盖是自动使用的,除非您在view / fragment / control的实例上设置CustomOverlay属性以及UseCustomOverlay属性。您可以在视图/片段/控件上使用诸如ToggleTorch()或StopScanning()之类的方法,但是当您准备好视图时,您负责使用回调和MobileBarcodeScanningOptions实例调用StartScanning(...)。 ;扫描开始。如果您想在任何时候取消,您还有责任停止扫描。
每个平台的视图/片段/控件类是: