【问题标题】:How do I add fake loading in Flutter app? [duplicate]如何在 Flutter 应用中添加虚假加载? [复制]
【发布时间】:2020-01-05 18:03:35
【问题描述】:

我的应用不需要加载任何内容,但我想给它一个 2 秒的加载屏幕以显示视觉效果。我该怎么做?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    创建一个DummyPage 小部件,它将在 2 秒后将您带到 YourHomePage(您的应用的主要小部件)。

    更新:我之前使用过Timer,但它需要导入额外的库,您可以按照@anmol.majhail 的建议使用Future.delayed

    void main() {
      runApp(MaterialApp(home: DummyPage()));
    }
    
    class DummyPage extends StatefulWidget {
      @override
      _DummyPageState createState() => _DummyPageState();
    }
    
    class _DummyPageState extends State<DummyPage> {
      @override
      void initState() {
        super.initState();
        // here is the logic 
        Future.delayed(Duration(seconds: 2)).then((__) {
          Navigator.push(context, MaterialPageRoute(builder: (_) => YourHomePage()));
        });
      }
    
      @override
      Widget build(BuildContext context) {
        return Container(); // this widget stays here for 2 seconds, you can show your app logo here
      }
    }
    

    【讨论】:

    • 由于 Timer 类需要导入 import 'dart:async';,另一种方式可以使用 - Future.delayed - 简单且无需导入 - Future.delayed(Duration(seconds: 2), () { Navigator.push( context, MaterialPageRoute(builder: (_) =&gt; YourHomePage())); });
    • 是的,您也可以使用 Future.delayed 来做到这一点。
    • 随时更新你的答案:)
    • 但是你想在main()里面的什么地方使用它?
    • 啊,我没注意到你用了then,评论里的代码很难看懂,我刚读到你说用Future.delayed,我就想用await。让我现在更新答案
    猜你喜欢
    • 2019-05-29
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 2023-01-15
    相关资源
    最近更新 更多