3

我在颤动中为一个小部件实现了 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);
4

2 回答 2

3

_slider我通过替换_buildSlider()which returnnull直到需要滑块来解决这个问题。

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

于 2018-04-09T19:33:37.227 回答
2

SlideTransition在垂直滑动过程中完全高度时遇到了同样的问题。最后,我通过使用 aSizeTransition来实现幻灯片效果,并相应地设置其axisAlignment属性(在我的例子中,顶部/中心/底部为 -1、0、1)。

于 2018-08-03T05:58:24.617 回答