AnimatedContainer
似乎不适用于Container
,但不适用于FlutterLogo
,为什么呢?
代码:
bool _value = true;
@override
Widget build(BuildContext context) {
var flutterLogo = FlutterLogo(size: _value ? 400 : 200, colors: Colors.blue,);
var container = Container(height: _value ? 400 : 200, color: Colors.blue,);
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () => setState(() => _value = !_value),
),
body: AnimatedContainer(
duration: Duration(milliseconds: 1000),
child: container, // putting flutterLogo here works fine
),
);
}
PS:
我知道height
中存在AnimatedContainer
属性可以解决此问题,但是我想知道为什么正常的Container
height
在这里失败。
答案 0 :(得分:0)
AnimatedContainer
的子项大小更改时不进行动画处理。如果未指定height
/ width
,则会采用其子项的大小。
它适用于FlutterLogo
的事实与AnimatedContainer
完全无关。 FlutterLogo
是其大小的动画。