Flutter 如何在路由转换中使英雄小部件飞到其他小部件的下方

Flutter 如何在路由转换中使英雄小部件飞到其他小部件的下方,flutter,flutter-animation,Flutter,Flutter Animation,如何在路由转换中使英雄小部件飞到appBar和bottomBar小部件下方。 我也尝试过用hero扭曲其他小部件,但没有成功。在转换过程中,Flatter按照在小部件(元素)树中找到的顺序放置hero;最后一个在上面。因此,你可能能够以这样的方式组织你的屏幕:应用程序栏和底部栏中的英雄比包含其他英雄的尸体在树中的位置要晚。例如,使用堆栈: 堆栈( 儿童:[ Body(), 定位( 排名:0, 左:0,, 右:0,, 子项:AppBar(), ), 定位( 底部:0, 左:0,, 右:0,, 子项

如何在路由转换中使英雄小部件飞到
appBar
bottomBar
小部件下方。
我也尝试过用hero扭曲其他小部件,但没有成功。

在转换过程中,Flatter按照在小部件(元素)树中找到的顺序放置hero;最后一个在上面。因此,你可能能够以这样的方式组织你的屏幕:应用程序栏和底部栏中的英雄比包含其他英雄的尸体在树中的位置要晚。例如,使用
堆栈

堆栈(
儿童:[
Body(),
定位(
排名:0,
左:0,,
右:0,,
子项:AppBar(),
),
定位(
底部:0,
左:0,,
右:0,,
子项:BottomBar(),
),
],
)
这依赖于flatter的heros的实现细节,因此相当粗糙

另一种方法是复制flatter的HeroController、Hero和相关代码,并通过Hero小部件的新“z-index”属性对其进行修改,以排序Hero覆盖入口

英雄“飞”在导航覆盖。所以,另一种方法可能是将应用程序栏和底部栏放在导航器的顶部(例如,使用如上所述的堆栈)


当然,这些都不是很好。

感谢您的回答,我尝试了堆栈,但我想它无法解决问题,因为
AppBar
BottomBar
处于相同的位置。我会尝试另一种方法,但这需要时间:(谢谢你,老兄,效果很好。