ZXingBarcodeImageView(二维码)在iOS上显示但在Android上没有显示(Xamarin.Forms)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZXingBarcodeImageView(二维码)在iOS上显示但在Android上没有显示(Xamarin.Forms)相关的知识,希望对你有一定的参考价值。
在Xamarin.Forms应用程序中显示QR码的这段代码可以在ios上运行,但不适用于android:
let barCode = ZXingBarcodeImageView(HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
BarcodeFormat = ZXing.BarcodeFormat.QR_CODE,
BarcodeValue = foo)
barCode.BarcodeOptions.Width <- 500
barCode.BarcodeOptions.Height <- 500
mainLayout.Children.Add(barCode)
日志中没有错误,没有抛出异常。尝试了许多高度和宽度以及不同的LayoutOptions无济于事。我该怎么调试呢?
答案
幸运的是,我只需要在我自己的Xamarin.Forms项目中使用ZXing.Net.Mobile
。我设法用下一个C#代码显示iOS和Android的QRCode:
ZXingBarcodeImageView GenerateQR(string codeValue)
{
var qrCode = new ZXingBarcodeImageView
{
BarcodeFormat = BarcodeFormat.QR_CODE,
BarcodeOptions = new QrCodeEncodingOptions
{
Height = 350,
Width = 350
},
BarcodeValue = codeValue,
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand
};
// Workaround for iOS
qrCode.WidthRequest = 350;
qrCode.HeightRequest = 350;
return qrCode;
}
请注意,此库中有一个知道的issue,您必须明确设置WidthRequest和HeightRequest。
P.S。:或多或少同样的问题也被讨论过here。
以上是关于ZXingBarcodeImageView(二维码)在iOS上显示但在Android上没有显示(Xamarin.Forms)的主要内容,如果未能解决你的问题,请参考以下文章