flutter 中的 SlideTransition 在滑入之前需要 space

SlideTransition in flutter takes space before it slides in

我在 flutter 中为一个小部件实现了 SlideTransition,它按预期滑入。问题是在调用动画之前,稍后将显示滑块的 space 是空的。

如何让父控件在滑块进入视图之前将此 space 提供给布局中的其他小部件?

我正在考虑将滑块的初始高度设置为零,但是当高度与滑动同步变化时,滑块内的小部件会表现得很有趣。请问有没有更简单的方法

家长是:

new Scaffold(
    appBar: _appBar,
    body: new Column(
      children: <Widget>[
        new Expanded(
          child: _body;
          }),
        ),
        new SlideTransition(
          position: _sliderPosition, // 
          child: _slider,
        ),
      ],
    );

位置定义为:

_sliderPosition = new MaterialPointArcTween(
  begin: const Offset(0.0, 1.0),
  end: Offset.zero,
).animate(_animationController);

我通过将 _slider 替换为 _buildSlider() 解决了这个问题,其中 returns null 直到需要滑块。

这也有利于提高性能,因为如果滑块处于隐藏状态,则无需渲染它。

在垂直滑动期间遇到了相同的问题,SlideTransition 占据了整个高度。最后,我通过使用 SizeTransition 来实现幻灯片效果,并相应地设置其 axisAlignment 属性(在我的例子中,top/center/bottom 为 -1、0、1)。