Flutter 获取小部件的高度并将其传递给expandedHeight

Flutter 获取小部件的高度并将其传递给expandedHeight,flutter,flutter-layout,Flutter,Flutter Layout,我想将图像作为我的AppBar的背景,如下所示: 我知道的唯一方法是使用SliverAppBar(在CustomScrollView中)的flexibleSpace,因为普通AppBar不会改变其大小以适应图像 问题是,SliverAppBar需要一个硬编码的expandedHeight,我的每个屏幕都会显示一个具有不同高度的不同图像,因此我需要以编程方式获取高度并将其传递给expandedHeight 是否有可能获得图像的未来高度,以便图像不会扭曲并填充屏幕宽度,因此,我可以将其传递到exp

我想将图像作为我的
AppBar
的背景,如下所示:

我知道的唯一方法是使用
SliverAppBar
(在
CustomScrollView
中)的
flexibleSpace
,因为普通
AppBar
不会改变其大小以适应图像

问题是,
SliverAppBar
需要一个硬编码的
expandedHeight
,我的每个屏幕都会显示一个具有不同高度的不同图像,因此我需要以编程方式获取高度并将其传递给
expandedHeight


是否有可能获得图像的未来高度,以便图像不会扭曲并填充屏幕宽度,因此,我可以将其传递到
expandedHeight

尝试
image.fit
设置为
Boxfit.cover
作为背景图像或发布
flexibleSpace
问题代码可能有助于更好地回答问题。这无关紧要,尺寸仅取决于
expandedHeight
,它会收到双倍,这是唯一改变高度的因素。您可能需要计算它,但等式中唯一已知的值是屏幕宽度,来自
MediaContext
。在知道图像的高度之前,你知道图像的纵横比吗?如果是,那么你可以根据screenWidth*AspectRatio计算高度。如果一幅图像有1000像素的高度,你想将expandedHeight设置为1000吗?我不知道高宽比,也不会有1000像素的图像,它们是摄影师拍摄的照片,所以它们应该是宽的而不是高的。