Как встроить сканер ZXing в PageRenderer / Fragment / View в Xamarin.Forms ContentPage? - PullRequest
1 голос
/ 12 января 2020

Я хочу иметь ZXing. Net. Мобильный сканер штрих-кодов с пользовательским наложением и некоторые компоненты пользовательского интерфейса, реализованные в Xamarin.Forms в одном представлении. Это вообще возможно?

Я предположил, что это возможно, и реализовал это: 1. Android .Support.V4.App.FragmentActivity с пользовательским оверлеем для сканера ZXing. 2. Android Активность с пользовательским оверлеем для сканера ZXing. 3. Android PageRenderer с пользовательским наложением для сканера ZXing.

Мне удалось запустить все эти варианты, но я не смог смешать их с пользовательским интерфейсом Xamarin.Forms.

Пример Вот мой ZXingScannerRendererPage.xaml в общем проекте. Я хочу, чтобы кнопка «TEST BUTTON» отображалась над окном Zxing Scanner.

<?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. сканер. Когда я нажимаю кнопку «назад», я вижу свой макет XAML с помощью кнопки «ТЕСТ» Я думаю, что ZXing открывает новое действие или что-то в этом роде.

Итак, что мне нужно: 1. Вставить ZXing. Net. Мобильный сканер штрих-кодов с пользовательским наложением в мою Contentpage Xamarin.Forms вместе с другими Xamarin.Forms. UI. или 2. Вставьте пользовательский интерфейс Xamarin.Forms, показанный выше, в ZXing. Net. Мобильный сканер штрих-кодов с пользовательским наложением.

Как выполнить sh это? Можно ли встраивать PageRenderer / Fragment / View в Xamarin.Forms XAML?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 13 января 2020

Как это сделать sh? Можно ли встроить PageRenderer / Fragment / View в 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>

enter image description here

Вы можете загрузить исходный файл с GitHub. https://github.com/jfversluis/ZXingSample

Этот блог также будет полезен. https://blog.verslu.is/xamarin/xamarin-forms-xamarin/scanning-generating-barcodes-zxing/

1 голос
/ 13 января 2020

Я думаю, что на форуме XF есть такая же тема. Вы можете найти некоторые подсказки из моего ответа на него https://forums.xamarin.com/discussion/176704/how-to-embed-zxing-scanner-in-pagerenderer-fragment-view-into-xamarin-forms-contentpage#latest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...