如何进入窗口小部件,其自身的大小被FittedBox缩小

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

在下面的代码中,两行用_Box包裹的300x300框(FittedBox)缩小以适合屏幕。结果,每个框都变得小于300x300。

但是,如果使用build()_BoxRenderBox.sizeLayoutBuilder()方法中获得框的宽度,则获得的大小分别为300.0Infinity

如何获得实际显示的尺寸?

我想在C0]类内部获取它,而无需从父级传递它。

_Box

在下面的代码中,两行用FittedBox包装的300x300框(_Box)缩小以适合屏幕。结果,每个盒子变得小于300x300。但是,如果我在...

flutter
1个回答
1
投票

Flutter class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: SafeArea( child: FittedBox( child: Row( children: <Widget>[ _Box(Colors.red), _Box(Colors.orange), ], ), ), ), ), ); } } class _Box extends StatelessWidget { const _Box(this.color); final Color color; @override Widget build(BuildContext context) { RenderBox renderBox = context.findRenderObject(); print(renderBox?.size?.width); // 300.0 return LayoutBuilder( builder: (_, constraints) { print(constraints.maxWidth); // Infinity return Container( width: 300, height: 300, color: color, ); }, ); } } 对象用于限制可渲染小部件的大小,通常永远不会真正用于获取小部件的当前大小。

© www.soinside.com 2019 - 2024. All rights reserved.