【发布时间】:2019-05-26 08:12:53
【问题描述】:
我正在创建一个仪表板,其中包含两个小部件文本和两个容器的补间动画。但是,我想让两个Container的不透明度从不可见慢慢变为可见......所以我使用了AnimatedOpacity。但我不知道该怎么做......
任何帮助将不胜感激..
class _IntroState extends State<Intro> with SingleTickerProviderStateMixin {
Animation animation;
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = AnimationController(
duration: Duration(seconds: 2),
vsync: this,
);
animation = Tween(begin: -1.0, end: 0.0).animate(CurvedAnimation(
parent: animationController, curve: Curves.fastOutSlowIn));
animationController.forward();
}
@override
Widget build(BuildContext context) {
bool _visible = false;
final double width = MediaQuery.of(context).size.width;
return AnimatedBuilder(
animation: animationController,
builder: (BuildContext context, Widget child) {
return Scaffold(
//BODDY
body: ListView(
hildren:<Widget>[
new Stack(
children: <Widget>[
new Transform(
//ANIMATED OPACITY
new AnimatedOpacity(
opacity: _visible ? 0.0 : 1.0,
duration: Duration(milliseconds: 500),
child: new Padding(
padding: const EdgeInsets.symmetric(
horizontal: 12.0),
child: new Row(
children: <Widget>[
Expanded(
child: Row(
children: <Widget>[
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Container(
child: Column(
children: <Widget>[
//THIS THE CONTAINER
new Container(. . .),
new Container(. . .)
【问题讨论】:
-
_visible应该是您所在州的字段。你应该setState。 -
setState 是否可以在没有 onTap 或 GestureDetector 的情况下使用?
-
当然可以,这是一个可以随时调用的简单方法。我会将 _visible 置于状态并在 initState 中更改其值。
-
如果把
_visible改成initState,就不会出现“淡入”动画了。 -
你是对的,我的意思是 setState,正如上面 Remi 所提到的。但是当我在阅读代码时,我感到困惑并写了 initState。人为错误:)
标签: dart flutter flutter-animation