📅  最后修改于: 2023-12-03 15:15:07.861000             🧑  作者: Mango
在Flutter中,AnimatedContainer
小部件可以在指定小部件的时间内创建动画效果。它可以帮助我们简化代码并更容易地创建动画。
以下是AnimatedContainer
的构造函数:
AnimatedContainer({
Key key,
this.alignment,
this.padding,
Color color,
Decoration decoration,
Decoration foregroundDecoration,
double width,
double height,
BoxConstraints constraints,
this.margin,
this.transform,
this.child,
Curve curve = Curves.linear,
Duration duration,
VoidCallback onEnd,
})
alignment
:AlignmentGeometry
类型,指定小部件的对齐方式,因此可以在动画过程中进行对齐。padding
:EdgeInsetsGeometry
类型,指定小部件的内边距。color
:Color
类型,指定小部件的颜色。此参数和decoration
参数不能同时使用。decoration
:Decoration
类型,指定小部件的背景颜色、边框、阴影等装饰效果。此参数和color
参数不能同时使用。foregroundDecoration
:Decoration
类型,指定小部件的前景装饰效果。width
:double
类型,指定小部件的宽度。height
:double
类型,指定小部件的高度。constraints
:BoxConstraints
类型,指定小部件的约束条件。margin
:EdgeInsetsGeometry
类型,指定小部件的外边距。transform
:Matrix4
类型,指定小部件的变换矩阵。child
:Widget
类型,指定小部件的子元素。curve
:Curve
类型,默认为Curves.linear
,指定小部件的动画曲线。duration
:Duration
类型,默认为Duration.zero
,指定小部件的动画时间。onEnd
:VoidCallback
类型,指定小部件动画结束时的回调函数。以下是一个简单的示例代码,它将创建一个空容器,并在点击按钮时更改其颜色和大小:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Color _color = Colors.blue;
double _width = 100;
double _height = 100;
void _changeProperties() {
setState(() {
_color = Colors.red;
_width = 200;
_height = 200;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('AnimatedContainer Demo')),
body: Center(
child: GestureDetector(
onTap: _changeProperties,
child: AnimatedContainer(
width: _width,
height: _height,
decoration: BoxDecoration(
color: _color,
borderRadius: BorderRadius.circular(50),
),
duration: Duration(seconds: 1),
curve: Curves.easeInOut,
),
),
),
),
);
}
}
AnimatedContainer
小部件是Flutter中非常有用的小部件之一,可以帮助我们轻松创建动画效果。使用AnimatedContainer
的优点之一是您无需编写任何其他代码即可创建动画。只需指定小部件的初始和最终状态,AnimatedContainer
将自动处理中间状态。