颤动中的SlideTransition在滑入之前占据空间

时间:2018-04-07 19:11:47

标签: flutter flutter-animation

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

如何让父级将此空间提供给布局中的其他小部件,直到滑块进入视图的那一刻?

我正在考虑给滑块初始高度为零,但随着高度与滑动同步变化,滑块内的小部件会很有趣。我想知道是否有更简单的方法。

父母是:

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);

2 个答案:

答案 0 :(得分:2)

我解决了这个问题,将_slider替换为_buildSlider(),返回null,直到需要滑块。

这对于性能也更好,因为如果它被隐藏,则无需渲染滑块。

答案 1 :(得分:1)

SlideTransition垂直滑行期间占据整个高度的情况下,也遇到了同样的问题。最后,我通过使用SizeTransition并相应地设置其axisAlignment属性(在我的情况下,上/中/下为-1、0、1)实现了滑动效果。