在 Flutter 中使用延迟重绘小部件

It *_*ors 1 android dart flutter

我想根据条件逻辑从 Widget 中删除内容。

下面是我的小部件树,

return MaterialApp(
    home: Scaffold(
    body: Container(
    margin: EdgeInsets.all(120.0),
    child: Align(
      alignment: Alignment.center,
      child: Column(
        children: <Widget>[
          Text("Loading...");
        ],
      ),
    ),
  ),
));
Run Code Online (Sandbox Code Playgroud)

假设我有一个从 SharePreferences 获取值的变量,如果值为“隐藏”,则必须隐藏封装在其中的文本小部件。否则它应该显示从 SP 获取的文本。

这里的问题是文本最初将在特定的持续时间内显示“正在加载...”,然后它必须根据条件动态地运行。

我已经尝试过TimersetState()但无法真正让它发挥作用。如果有人对此有解决方案,请提供帮助。

ole*_*.le 12

乔丹戴维斯是对的。你需要一个FutureBuilderStreamBuilder

return MaterialApp(
        home: Scaffold(
      body: Container(
        margin: EdgeInsets.all(120.0),
        child: Center(
            child: FutureBuilder(
                future: Future.delayed(Duration(seconds: 3)),
                builder: (c, s) => s.connectionState == ConnectionState.done
                    ? Text("Loaded")
                    : Text("Loading..."))),
      ),
    ));
Run Code Online (Sandbox Code Playgroud)

只需替换Future.delayed为您的功能。