Tailor
一个在运行时计算小部件大小的 Flutter 小部件。
用法
只需用 Tailor 包裹您的窗口小部件,即可在 builder 中获取大小。每当窗口小部件的大小发生变化时,builder 都会返回该大小。
Tailor(
builder: (_, size, child) {
return Container(
color: Colors.red,
height: 100,
width: 100,
alignment: Alignment.center,
child: Text(
"Size: ${size.toString()}",
textAlign: TextAlign.center,
style: const TextStyle(color: Colors.white),
),
);
},
);
我们可以使用 Tailor 小部件获取任何窗口小部件的大小,但如果我们想获取放置在 Scaffold 中的 AppBar 的大小呢?那么 Tailor 小部件将无法工作,您也无法将其包裹在 AppBar 周围,因为它是一个普通的 Widget,而 AppBar 是一个 PreferredSizeWidget。
class AppBar extends StatefulWidget implements PreferredSizeWidget {
因此,为了解决这个问题,我们有了 TailorAppBar。当 AppBar 放置在 Scaffold 中时,只需用 TailorAppBar 小部件将其包裹起来,然后就大功告成了!您将获得 AppBar 的大小。
Scaffold(
appBar: TailorAppBar(
builder: (_, size) {
return AppBar(
title: Text('AppBar width: ${size.width} height: ${size.height}'),
);
},
),
);