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)。
我在 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)。