flutter - 使用 FutureBuilder 时重新加载数据

当小部件加载时,我正在加载数据,如下面的代码。一旦 UI 完全加载,我喜欢添加一个刷新按钮来重新加载数据。

如何刷新 View ?

  class _MyHomePageState extends State<MyHomePage> {

      @override
      Widget build(BuildContext context) {
        var futureBuilder = new FutureBuilder(
          future: _getData(),
          builder: (BuildContext context, AsyncSnapshot snapshot) {
            switch (snapshot.connectionState) {
              case ConnectionState.none:
              case ConnectionState.waiting:
                return new Text('loading...');
              default:
                if (snapshot.hasError)
                  return new Text('Error: ${snapshot.error}');
                else
                  return createListView(context, snapshot);
            }
          },
        );

        return new Scaffold(
          appBar: new AppBar(
            title: new Text("Home Page"),
          ),
          body: futureBuilder,
        );
      }

      Future<List<String>> _getData() async {
        var values = new List<String>();

        await new Future.delayed(new Duration(seconds: 5));

        return values;
      }

      Widget createListView(BuildContext context, AsyncSnapshot snapshot) {

      }
    }

最佳答案

Widget createListView(BuildContext context, AsyncSnapshot snapshot) {
  RaisedButton button = RaisedButton(
    onPressed: () {
      setState(() {});
    },
    child: Text('Refresh'),
  );
  //.. here create widget with snapshot data and with necessary button
}

https://stackoverflow.com/questions/53170330/

相关文章:

android - 错误 : The class 'SingleTickerProviderStat

android - Flutter 按住闪屏 3 秒。如何在 Flutter 中实现闪屏?

asynchronous - Flutter Redux snackbar

android - 在 Flutter 的登录屏幕中显示循环进度对话框,如何在 Flutter 中实

visual-studio-code - 带有 VSCode 的 Flutter 显示未安装,即使已

firebase - 如何在 Flutter 中用 Column 或 ListView 类包装 St

dart - Dart AOT 是如何工作的?

text - 如果文本溢出,则替换文本

flutter - Flutter 中的 initState 和 super.initState 是

dart - Flutter:主题未应用于文本小部件