如何在缩放小部件后获取交互式查看器小部件的大小。我正在使用 Matrix4 的 translate,这是我从 conversionController 获得的,在按钮触摸时转到小部件的终点(右或左),所以想在最后停止,但交互式视图正在无限前进。有什么方法可以获取画布的最后偏移量或大小吗?
并且无需平移,平移和缩放就可以在有限的尺寸下正常工作。
创建一个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');
});