如何获取交互式查看器小部件缩放后的大小?

问题描述 投票:0回答:1

如何在缩放小部件后获取交互式查看器小部件的大小。我正在使用 Matrix4 的 translate,这是我从 conversionController 获得的,在按钮触摸时转到小部件的终点(右或左),所以想在最后停止,但交互式视图正在无限前进。有什么方法可以获取画布的最后偏移量或大小吗?

并且无需平移,平移和缩放就可以在有限的尺寸下正常工作。

flutter dart flutter-layout flutter-animation interactive
1个回答
0
投票

创建一个GlobalKey来访问SizedBox的大小:

GlobalKey _key = GlobalKey();

InteractiveViewer.builder
SizedBox
包裹较大的小部件。确保将 _key 传递给
SizedBox
:

 InteractiveViewer.builder(
  builder: (context, quad) {
// Replace `yourWidget` with your actual widget
    return SizedBox(key: _key, child: yourWidget); 

  },);

构建小部件后,您可以使用

SizedBox
_key
访问
RenderBox
的大小。您可以在小部件的生命周期中执行此操作,例如在小部件布局后的
initState
callback
中。

WidgetsBinding.instance.addPostFrameCallback((_) {
  RenderObject? listViewRenderBox = _key.currentContext?.findRenderObject();
  double? width = listViewRenderBox?.paintBounds.width;

双?高度 = listViewRenderBox?.paintBounds.height; print('交互宽度: $width');

  print('Interactive height: $height');
});
© www.soinside.com 2019 - 2024. All rights reserved.