如何将 PageRenderer/Fragment/View 中的 ZXing 扫描器嵌入到 Xamarin.Forms ContentPage 中?
How to embed ZXing scanner in PageRenderer/Fragment/View into Xamarin.Forms ContentPage?
我想 ZXing.Net.Mobile 条形码扫描仪在一个视图中 Xamarin.Forms 中实现自定义覆盖和一些 UI 组件。
有可能吗?
我假设这是可能的并实现了这个:
1. Android.Support.V4.App.FragmentActivity 带有 ZXing 扫描器的自定义覆盖。
2. Android Activity 带有 ZXing 扫描器的自定义覆盖。
3. Android 带有 ZXing 扫描仪自定义覆盖的 PageRenderer。
我能够 运行 所有这些变体,但我无法将它们与 Xamarin.Forms UI.
混合
示例:
这是我在共享项目中的 ZXingScannerRendererPage.xaml。我想在 Zxing 扫描仪视图上方有 "TEST BUTTON" 按钮。
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage x:Name="RootPage"
BackgroundColor="{StaticResource BackgroundColor}"
xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:DataCollector" x:Class="DataCollector.ZXingScannerRendererPage">
<ContentPage.Content>
<StackLayout>
<Button Text="TEST BUTTON" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
但是当我 运行 使用 PageRenderer 的应用程序时,我可以用 "TEST BUTTON" 查看我的布局一秒钟,然后视图跳转到 ZXing 扫描仪。
当我按下 "press back" 按钮时,我可以看到我的 XAML 布局和 "TEST BUTTON"。我觉得ZXing开个新的activity什么的
那么,我需要的是:
1. 将带有自定义叠加层的 ZXing.Net.Mobile 条形码扫描仪与其他 Xamarin.Forms UI 一起嵌入到我的 Xamarin.Forms ContentPage 中。
要么
2. 在 Xamarin.Forms UI 视图上方嵌入 ZXing.Net.Mobile 带有自定义覆盖的条形码扫描仪。
如何做到这一点?是否可以将 PageRenderer/Fragment/View 嵌入 Xamarin.Forms XAML?
谢谢!
我认为 XF 论坛中有一个相同的主题。
你可能会从我的回复中找到一些提示
https://forums.xamarin.com/discussion/176704/how-to-embed-zxing-scanner-in-pagerenderer-fragment-view-into-xamarin-forms-contentpage#latest
How to accomplish this? Is it possible to embed PageRenderer/Fragment/View into Xamarin.Forms XAML?
您可以将扫描仪视图嵌入到其他冗余 BoxView 之间。
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ZXingSample.PartialScreenScanning"
xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
Title="Partial screen">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<BoxView Grid.Row="0" BackgroundColor="Chocolate"/>
<zxing:ZXingScannerView Grid.Row="1" x:Name="_scanView" OnScanResult="Handle_OnScanResult" IsScanning="true"
WidthRequest="200" HeightRequest="200" />
<BoxView Grid.Row="2" BackgroundColor="Blue" />
</Grid>
您可以从 GitHub 下载源文件。 https://github.com/jfversluis/ZXingSample
此博客也会有所帮助。 https://blog.verslu.is/xamarin/xamarin-forms-xamarin/scanning-generating-barcodes-zxing/
我想 ZXing.Net.Mobile 条形码扫描仪在一个视图中 Xamarin.Forms 中实现自定义覆盖和一些 UI 组件。 有可能吗?
我假设这是可能的并实现了这个: 1. Android.Support.V4.App.FragmentActivity 带有 ZXing 扫描器的自定义覆盖。 2. Android Activity 带有 ZXing 扫描器的自定义覆盖。 3. Android 带有 ZXing 扫描仪自定义覆盖的 PageRenderer。
我能够 运行 所有这些变体,但我无法将它们与 Xamarin.Forms UI.
混合示例: 这是我在共享项目中的 ZXingScannerRendererPage.xaml。我想在 Zxing 扫描仪视图上方有 "TEST BUTTON" 按钮。
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage x:Name="RootPage"
BackgroundColor="{StaticResource BackgroundColor}"
xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:DataCollector" x:Class="DataCollector.ZXingScannerRendererPage">
<ContentPage.Content>
<StackLayout>
<Button Text="TEST BUTTON" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
但是当我 运行 使用 PageRenderer 的应用程序时,我可以用 "TEST BUTTON" 查看我的布局一秒钟,然后视图跳转到 ZXing 扫描仪。 当我按下 "press back" 按钮时,我可以看到我的 XAML 布局和 "TEST BUTTON"。我觉得ZXing开个新的activity什么的
那么,我需要的是: 1. 将带有自定义叠加层的 ZXing.Net.Mobile 条形码扫描仪与其他 Xamarin.Forms UI 一起嵌入到我的 Xamarin.Forms ContentPage 中。 要么 2. 在 Xamarin.Forms UI 视图上方嵌入 ZXing.Net.Mobile 带有自定义覆盖的条形码扫描仪。
如何做到这一点?是否可以将 PageRenderer/Fragment/View 嵌入 Xamarin.Forms XAML?
谢谢!
我认为 XF 论坛中有一个相同的主题。 你可能会从我的回复中找到一些提示 https://forums.xamarin.com/discussion/176704/how-to-embed-zxing-scanner-in-pagerenderer-fragment-view-into-xamarin-forms-contentpage#latest
How to accomplish this? Is it possible to embed PageRenderer/Fragment/View into Xamarin.Forms XAML?
您可以将扫描仪视图嵌入到其他冗余 BoxView 之间。
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ZXingSample.PartialScreenScanning"
xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
Title="Partial screen">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<BoxView Grid.Row="0" BackgroundColor="Chocolate"/>
<zxing:ZXingScannerView Grid.Row="1" x:Name="_scanView" OnScanResult="Handle_OnScanResult" IsScanning="true"
WidthRequest="200" HeightRequest="200" />
<BoxView Grid.Row="2" BackgroundColor="Blue" />
</Grid>
您可以从 GitHub 下载源文件。 https://github.com/jfversluis/ZXingSample
此博客也会有所帮助。 https://blog.verslu.is/xamarin/xamarin-forms-xamarin/scanning-generating-barcodes-zxing/