don't use postFrameCallback in FilamentWidget resize
This commit is contained in:
@@ -106,8 +106,7 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
print("Size after resuming : $size");
|
print("Size after resuming : $size");
|
||||||
_height = size.height.ceil();
|
_height = size.height.ceil();
|
||||||
_width = size.width.ceil();
|
_width = size.width.ceil();
|
||||||
await widget.controller
|
await widget.controller.createViewer(_width!, _height!);
|
||||||
.createViewer(_width!, _height!);
|
|
||||||
print("Created viewer Size after resuming");
|
print("Created viewer Size after resuming");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -133,9 +132,8 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
_width = size.width.ceil();
|
_width = size.width.ceil();
|
||||||
_height = size.height.ceil();
|
_height = size.height.ceil();
|
||||||
try {
|
try {
|
||||||
_textureDetails = await widget.controller
|
_textureDetails =
|
||||||
.createViewer(_width!, _height!);
|
await widget.controller.createViewer(_width!, _height!);
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_error = err.toString();
|
_error = err.toString();
|
||||||
@@ -169,7 +167,9 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
// if no texture ID is available, display the [initial] widget (solid red by default)
|
// if no texture ID is available, display the [initial] widget (solid red by default)
|
||||||
late Widget content;
|
late Widget content;
|
||||||
|
|
||||||
if ( _textureDetails == null || _textureDetails!.height != _height || _textureDetails!.width != _width) {
|
if (_textureDetails == null ||
|
||||||
|
_textureDetails!.height != _height ||
|
||||||
|
_textureDetails!.width != _width) {
|
||||||
content = widget.initial ?? Container(color: Colors.red);
|
content = widget.initial ?? Container(color: Colors.red);
|
||||||
} else {
|
} else {
|
||||||
content = Texture(
|
content = Texture(
|
||||||
@@ -183,22 +183,21 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
// see [FilamentControllerFFI.resize] for an explanation of how we deal with resizing
|
// see [FilamentControllerFFI.resize] for an explanation of how we deal with resizing
|
||||||
return ResizeObserver(
|
return ResizeObserver(
|
||||||
onResized: (Size oldSize, Size newSize) async {
|
onResized: (Size oldSize, Size newSize) async {
|
||||||
|
|
||||||
_resizeTimer?.cancel();
|
_resizeTimer?.cancel();
|
||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
_resizeTimer = Timer(const Duration(milliseconds: 50), () async {
|
||||||
_resizeTimer = Timer(const Duration(milliseconds:50), () async {
|
var newWidth = newSize.width.ceil();
|
||||||
var newWidth = newSize.width.ceil();
|
var newHeight = newSize.height.ceil();
|
||||||
var newHeight = newSize.height.ceil();
|
try {
|
||||||
_textureDetails = await widget.controller
|
_textureDetails =
|
||||||
.resize(newWidth, newHeight);
|
await widget.controller.resize(newWidth, newHeight);
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
setState(() {
|
||||||
setState(() {
|
_width = newWidth;
|
||||||
_width = newWidth;
|
_height = newHeight;
|
||||||
_height = newHeight;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
} catch (err) {
|
||||||
|
print(err);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: Stack(children: [
|
child: Stack(children: [
|
||||||
|
|||||||
Reference in New Issue
Block a user