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像素的图像,它们是摄影师拍摄的照片,所以它们应该是宽的而不是高的。