我正在尝试为我在应用程序中实现的小部件设置动态大小,我目前正在使用:
MediaQuery.of(context).size.width/height
为您提供屏幕的大小,但是我需要使小部件基于脚手架的大小而不是全屏
答案 0 :(得分:1)
是的,您可以使用layoutBuilder小部件来实现。检查一下:
https://medium.com/@KarthikPonnam/flutter-layoutbuilder-widget-1-b09fd1e6907f
答案 1 :(得分:0)
您还可以从MediaQuery.of(context).size.height减去应用栏的高度
答案 2 :(得分:0)
您可以为脚手架使用构建器:
return Scaffold(
appBar: AppBar(),
body: Builder(
builder: (context) {
return Stack(
children: <Widget>[
然后:
bodyHeight = MediaQuery.of(context).size.height - Scaffold.of(context).appBarMaxHeight
至少,我以这种方式找到了解决方案。
答案 3 :(得分:0)
这是正确获取脚手架身高的方法
首先,获取 AppBar高度。您需要使用变量。
var appBar = AppBar(
title: Text('Testing'),
);
现在,遵循以下代码[基本上是=>总高度-AppBar的高度-顶部出现填充(应用状态栏的高度)]
final bodyHeight = MediaQuery.of(context).size.height -
-appBar.preferredSize.height -
MediaQuery.of(context).padding.top
如何使用它?假设您有2个孩子的专栏
Column(children: [
Container(
height: bodyHeight * 0.7,
child: ...,
),
Container(
height: bodyHeight * 0.3,
child: ...,
),
],
)