Почему ZXing не генерирует штрих-код в многостраничном приложении Xamarin.Forms Android?

147
29 апреля 2019, 07:20

Прошу Вашей помощи. Не так давно была проблема с генерацией этого самого штрих-кода, которая разрешилась. Вот ссылка на обсуждение: Почему штрих-код сгенерированный Zxing отображается узкой полоской?

Аналогичным образом пытаюсь отобразить штрих-код в своём приложении, на третьей по счёте странице - и терплю неудачу. В версии под андройд - штрих-код не генерируется. В версии под UWP - всё работает отлично!

Я да же не могу сообразить, куда начать копать... :( В чем может быть проблема?

Вот код для страницы с штрих-кодом:

public Page3()
{
    InitializeComponent();
    var qrCode = new ZXingBarcodeImageView() 
    {
        BarcodeFormat = BarcodeFormat.CODE_39,
        BarcodeOptions = new QrCodeEncodingOptions() 
        {
            Height = 100,
            Width = 350
        },
        BarcodeValue = Collector.StrihKod,
        //BarcodeValue = KOD,
        VerticalOptions = LayoutOptions.CenterAndExpand,
        HorizontalOptions = LayoutOptions.CenterAndExpand
    };
    Label label01 = new Label() { Text = Collector.StrihKod, BackgroundColor = Color.FromHex("#77d065") };
    Label label02 = new Label() { Text = "Where is a barcode ?", BackgroundColor = Color.FromHex("#77d065") };
    StackLayout stack = new StackLayout()
    {
        Children = { label01, qrCode, label02 }
    };
    this.Content = stack;
}

Вот результат выполнения кода

Буду очень рад любой идее! Спасибо!

Answer 1

Спасибо всем, кто пытался помочь, ответ на вопрос получилось найти самому...так же случайно в общем-то, как и на аналогичный вопрос по теме ZXing. Надеюсь, что кому-нибудь пригодится. Решение нашёл на просторах инета. Ссылка на оригинал.

В разметку страницы я добавил:

<zxing:ZXingBarcodeImageView
                x:Name="barcode"
            BarcodeFormat="CODE_39"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            WidthRequest="300"
            HeightRequest="150"
            Margin="5"/>

А в код страницы:

barcode.BarcodeOptions = new ZXing.Common.EncodingOptions()
        {
            Height = 100,
            Width = 350
        };
        barcode.BarcodeValue = Collector.StrihKod;

И всё получилось!

READ ALSO
Есть ли разница между int и System.Int32? [дубликат]

Есть ли разница между int и System.Int32? [дубликат]

На данный вопрос уже ответили:

181
CSV кодировка символов

CSV кодировка символов

Имеются строки, которые содержат символы "'¬', '∧', '∨', '→', '⇔',"При использовании StreamWriter sw = new StreamWriter(fstream); т

182
Оптимизация размера апк файла

Оптимизация размера апк файла

В папке streaming assets лежали файлы в форматеmp4

135