是否可以获取 Scaffold 的主体高度和宽度?

ARM*_*ITH 10 dart flutter

我正在尝试为我在应用程序中实现的小部件设置动态大小,我目前正在使用:

MediaQuery.of(context).size.width/height
Run Code Online (Sandbox Code Playgroud)

这给了你屏幕的大小,但我需要小部件基于脚手架主体的大小而不是全屏

小智 10

您可以为 Scaffold 使用 Builder:

return Scaffold(
  appBar: AppBar(),
  body: Builder(
    builder: (context) {
      return Stack(
        children: <Widget>[
Run Code Online (Sandbox Code Playgroud)

进而:

bodyHeight = MediaQuery.of(context).size.height - Scaffold.of(context).appBarMaxHeight
Run Code Online (Sandbox Code Playgroud)

至少,我以这种方式找到了解决方案。

  • 谢谢!`... - Scaffold.of(context).appBarMaxHeight` 是唯一真正帮助我正确放置 SingleChildScrollView 而不使其实际可滚动的东西(RefreshIndicator 用例)。 (3认同)

Ser*_*nal 4

是的,您可以使用layoutBuilder小部件来做到这一点。检查一下:

https://medium.com/@KarthikPonnam/flutter-layoutbuilder-widget-1-b09fd1e6907f