Julian Steenbakker
Committed by GitHub

Merge pull request #753 from jlin5/issue_745

fix: Add back LayoutBuilder to calculate the correct widgetSize
... ... @@ -248,36 +248,38 @@ class _MobileScannerState extends State<MobileScanner>
@override
Widget build(BuildContext context) {
final Size size = MediaQuery.of(context).size;
return ValueListenableBuilder<MobileScannerArguments?>(
valueListenable: _controller.startArguments,
builder: (context, value, child) {
if (value == null) {
return _buildPlaceholderOrError(context, child);
}
if (widget.scanWindow != null && scanWindow == null) {
scanWindow = calculateScanWindowRelativeToTextureInPercentage(
widget.fit,
widget.scanWindow!,
value.size,
size,
);
_controller.updateScanWindow(scanWindow);
}
if (widget.overlay != null) {
return Stack(
alignment: Alignment.center,
children: [
_scanner(value.size, value.webId, value.textureId),
widget.overlay!,
],
);
} else {
return _scanner(value.size, value.webId, value.textureId);
}
return LayoutBuilder(
builder: (context, constraints) {
return ValueListenableBuilder<MobileScannerArguments?>(
valueListenable: _controller.startArguments,
builder: (context, value, child) {
if (value == null) {
return _buildPlaceholderOrError(context, child);
}
if (widget.scanWindow != null && scanWindow == null) {
scanWindow = calculateScanWindowRelativeToTextureInPercentage(
widget.fit,
widget.scanWindow!,
value.size,
Size(constraints.maxWidth, constraints.maxHeight),
);
_controller.updateScanWindow(scanWindow);
}
if (widget.overlay != null) {
return Stack(
alignment: Alignment.center,
children: [
_scanner(value.size, value.webId, value.textureId),
widget.overlay!,
],
);
} else {
return _scanner(value.size, value.webId, value.textureId);
}
},
);
},
);
}
... ...