Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在多个窗口小部件之间进行淡入淡出_Flutter_Dart - Fatal编程技术网

Flutter 如何在多个窗口小部件之间进行淡入淡出

Flutter 如何在多个窗口小部件之间进行淡入淡出,flutter,dart,Flutter,Dart,我使用的是一个底部导航栏,有5个项目,对于每个小部件,我应该从服务器加载一些数据,我想在项目之间进行淡入淡出,但我不知道如何,因为我认为项目不是一个新的页面,我实现了路由淡入淡出过渡。 此外,我还为每个项目定义了一个futureBuilder来加载其数据 在futureBuilder的ConnectionState.waiting中做某事是可能的,但它没有渐变过渡,过渡正在跳跃 我还用连接插件检查互联网连接 我遇到麻烦处理他们,因为我几乎是新手飞 我很想知道处理这件事最有效的方法是什么。 谢谢也

我使用的是一个底部导航栏,有5个项目,对于每个小部件,我应该从服务器加载一些数据,我想在项目之间进行淡入淡出,但我不知道如何,因为我认为项目不是一个新的页面,我实现了路由淡入淡出过渡。 此外,我还为每个项目定义了一个futureBuilder来加载其数据 在futureBuilder的ConnectionState.waiting中做某事是可能的,但它没有渐变过渡,过渡正在跳跃 我还用连接插件检查互联网连接

我遇到麻烦处理他们,因为我几乎是新手飞

我很想知道处理这件事最有效的方法是什么。
谢谢

也许你正在寻找的是
动画切换器
,它为它的子对象添加了一个隐式动画,这样每当你调用
setState()
来更改它的子对象时,它就会自动在它们之间启动淡入/淡出动画。从本周系列小部件中查看此视频:

另一种可能性是
AnimatedOpacity
,它可以通过更改子对象的不透明度来实现类似的行为。以下是有关
AnimatedOpacity
widget的文档参考:


我知道这是一个非常古老的问题,但我用类似的方法解决了这个问题:

  Widget dynWidget = CircularProgressIndicator();

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
        future: future,
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.done) {
            dynWidget = Text('Content loaded!');
          }
          return AnimatedSwitcher(
              duration: Duration(seconds: 1), child: dynWidget);
        });
  }

谢谢,这个小部件解决了转换问题,另外,您是否有任何想法将UI从ConnectionState.waiting(包含一个circleProgressIndecator)更改为ConnectionState.done?或者是否有任何类似futureBuilder的小部件具有相同的加载数据行为,并根据加载数据的状态显示UI,但具有漂亮的动画?因为我想显示两次淡入淡出过渡:1-更改widget 2-加载数据我怀疑您正在寻找的是
StreamBuilder
。您需要更改您的连接状态,这些状态可能是围绕
未来构建的
,然后围绕
流重新构建它们,这样您就可以监听网络数据的更改
StreamBuilder
将允许您对
流中的更改做出反应,并基于这些更改更新UI。下面是一个关于
StreamBuilder
的示例,您可能会发现它很有用。但是,我建议你将这个问题标记为我的答案解决了,然后打开另一个问题,这样人们会很容易找到这个主题。