如何在flutter中显示CircularProgressIndicator 3秒

wah*_*hyu 2 load dart flutter

是否可以使用计时器包装我的 CircularProgressIndicator...我想显示我的 CircularProgressIndicator 3 秒,但我不知道该怎么做...我读过的大部分资源都包装了由 CircularProgressIndicator 组成的函数在计时器内..这是我的代码

Future getData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String dataIn = prefs.getString("clockin");
    return dataIn;
  }

Widget defaultClock() {
    return FutureBuilder(
      future: getData(),
      builder: (context, snap) {
        if (snap.hasData) {
          return Text(snap.data);
        } else {
          return CircularProgressIndicator();
        }
      },
    );
  }
Run Code Online (Sandbox Code Playgroud)

Vir*_*iya 6

您可以使用Future.delayed来做到这一点。

下面的最小代码解释得更清楚。

 String data;
  Future getData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String dataIn = prefs.getString("clockin") ?? 'default';
    return dataIn;
  }

  callme() async {
    await Future.delayed(Duration(seconds: 3));
    getData().then((value) => {
          setState(() {
            data = value;
          })
        });
  }

  @override
  void initState() {
    super.initState();
    callme();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: data == null ? CircularProgressIndicator() : Text(data),
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)