Ans*_*war 2 height duration flutter animatedcontainer
Expanded(
flex: 1,
child: Padding(
padding: const EdgeInsets.only(bottom: 3.0, right: 1),
child: AnimatedContainer(
duration: Duration(seconds: 1),
height: voteCountList[0],
decoration: BoxDecoration(
color: ColorChooser.graphColors[int.parse(optionsList[0]['color'])],
borderRadius: BorderRadius.all(Radius.circular(2))
),
),
),
),
Run Code Online (Sandbox Code Playgroud)
正如我的代码片段中所示,动画容器的高度是 voteCountList[0],如果更新值,则效果很好。然而,当小部件最初构建时,没有动画,容器的高度立即 = voteCountList[0]。我想实现 AnimatedContainer,以便看到容器的高度从 0 到 voteCountList[0] 进行动画处理。这个高度需要在构建时进行动画处理。
如果您不想使用 AnimatedBuilder 或创建自己的动画控制器,使用 Animatedcontainer 的一种方法是
class MyWidget extends StatelessWidget {
Future<double> get _height => Future<double>.value(200);
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(bottom: 3.0, right: 1),
child: FutureBuilder<double>(
future: _height,
initialData: 0.0,
builder: (context, snapshot) {
return AnimatedContainer(
duration: Duration(seconds: 1),
width: 200,
height: snapshot.data, //voteCountList[0],
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.all(Radius.circular(2))),
);
}
)
);
}
}
Run Code Online (Sandbox Code Playgroud)
你以 0.0 的初始值开始一个 future,在一个刻度之后,future 解析(这是你已经拥有的一个值,你只是将它转换为一个 future,让他认为它会在一个刻度内准备好),动画将从0 到已解决的未来 voteCountList[0]
| 归档时间: |
|
| 查看次数: |
2988 次 |
| 最近记录: |