前提
遇到一个需求,在SliverList内添加ExpansionTile组件,下面还有一个StickyContainerBuilder。
问题
ExpantionTile点击展开后,往上滑动,stickyheader会提前出现在头部。
三种解决思路
-
在ExpantionTile展开和收起后去setState对应的widget,业务和逻辑复杂的时候这个很难控制。不好用。
-
粘性头部widget有个 pixels 构造入参,该值是确定组件到粘性头部之间的距离。在ExpantionTile展开和收起后去重新计算这个pixels,然后setState。有用。
-
粘性头部widget 入参 performancePriority。注释说是该属性和pixels冲突,使用这个属性时pixels必须为null。这个属性默认true,设置为false时,禁止使用缓存,实时获取组件与粘性头部之间的距离。有用。