use new initialization methods in FilamentWidget
This commit is contained in:
@@ -50,8 +50,10 @@ class _RenderResizeObserver extends RenderProxyBox {
|
|||||||
|
|
||||||
class FilamentWidget extends StatefulWidget {
|
class FilamentWidget extends StatefulWidget {
|
||||||
final FilamentController controller;
|
final FilamentController controller;
|
||||||
|
final void Function()? onResize;
|
||||||
|
|
||||||
const FilamentWidget({Key? key, required this.controller}) : super(key: key);
|
const FilamentWidget({Key? key, required this.controller, this.onResize})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_FilamentWidgetState createState() => _FilamentWidgetState();
|
_FilamentWidgetState createState() => _FilamentWidgetState();
|
||||||
@@ -74,9 +76,11 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
break;
|
break;
|
||||||
case AppLifecycleState.hidden:
|
case AppLifecycleState.hidden:
|
||||||
print("Hidden");
|
print("Hidden");
|
||||||
_textureId = null;
|
if (Platform.isIOS) {
|
||||||
await widget.controller.destroyViewer();
|
_textureId = null;
|
||||||
await widget.controller.destroyTexture();
|
await widget.controller.destroyViewer();
|
||||||
|
await widget.controller.destroyTexture();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case AppLifecycleState.inactive:
|
case AppLifecycleState.inactive:
|
||||||
print("Inactive");
|
print("Inactive");
|
||||||
@@ -105,11 +109,12 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
|
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
|
||||||
var size = ((context.findRenderObject()) as RenderBox).size;
|
var size = ((context.findRenderObject()) as RenderBox).size;
|
||||||
widget.controller.setInitialSize(size.width.toInt(), size.height.toInt());
|
widget.controller.createViewer(size.width.toInt(), size.height.toInt());
|
||||||
});
|
});
|
||||||
|
|
||||||
_textureIdListener = widget.controller.textureId.listen((int? textureId) {
|
_textureIdListener = widget.controller.textureId.listen((int? textureId) {
|
||||||
print("Set texture ID to $textureId");
|
var size = ((context.findRenderObject()) as RenderBox).size;
|
||||||
|
print("Set texture ID to $textureId, current size is $size");
|
||||||
setState(() {
|
setState(() {
|
||||||
_textureId = textureId;
|
_textureId = textureId;
|
||||||
});
|
});
|
||||||
@@ -129,7 +134,7 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return LayoutBuilder(builder: ((context, constraints) {
|
return LayoutBuilder(builder: ((context, constraints) {
|
||||||
if (_textureId == null) {
|
if (_textureId == null) {
|
||||||
return Container(color: Colors.transparent);
|
return Container(color: Colors.red);
|
||||||
}
|
}
|
||||||
|
|
||||||
var texture = Texture(
|
var texture = Texture(
|
||||||
@@ -152,6 +157,7 @@ class _FilamentWidgetState extends State<FilamentWidget> {
|
|||||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||||
setState(() {
|
setState(() {
|
||||||
_resizing = false;
|
_resizing = false;
|
||||||
|
widget.onResize?.call();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user