Android 如何获取未来的返回语句并将其放入小部件中?

Android 如何获取未来的返回语句并将其放入小部件中?,android,flutter,dart,Android,Flutter,Dart,我一直在尝试在小部件中添加未来的返回语句。 这是我未来的代码: Future<Widget> readName() async { try { final file = await _localNames; // Read the file String contents = await file.readAsString(); return Text('Assignment' + contents); } catch (e) { /

我一直在尝试在小部件中添加未来的返回语句。 这是我未来的代码:

Future<Widget> readName() async {
  try {
    final file = await _localNames;

    // Read the file
    String contents = await file.readAsString();
    return Text('Assignment' + contents);
  } catch (e) {
    // If encountering an error, return 0
    return Text('Error');
  }
}
Future readName()异步{
试一试{
final file=wait\u localNames;
//读文件
String contents=wait file.readAsString();
返回文本(“赋值”+内容);
}捕获(e){
//如果遇到错误,则返回0
返回文本('Error');
}
}
这是我的小部件:

Widget build(BuildContext ctxt) {
  return MaterialApp(
    home: Scaffold(
      appBar: new AppBar(
        title: new Text("My assignments"),
      ),
      body: Container(
        margin: const EdgeInsets.only(top: 10.0),
        child: Align(
          alignment: Alignment(0, -0.9),
          child: Column(
            children: <Widget>[
              // Need Text Here                
            ],
          ),
        ),
      ),
    ),
  );
}
Widget构建(BuildContext-ctxt){
返回材料PP(
家:脚手架(
appBar:新的appBar(
标题:新文本(“我的作业”),
),
主体:容器(
边距:仅限常量边集(顶部:10.0),
子对象:对齐(
对齐:对齐(0,-0.9),
子:列(
儿童:[
//这里需要文本吗
],
),
),
),
),
);
}

你如何解决这个问题?我一天来一直在寻找解决办法。谢谢你的时间

您可以使用FutureBuilder从Future获取数据,并根据需要使用它

FutureBuilder
根据文件:

基于与未来交互的最新快照构建自身的小部件

以下代码在使用FutureBuilder时可以正常工作:

Widget build(BuildContext ctxt) {
  return MaterialApp(
    home: Scaffold(
      appBar: new AppBar(
        title: new Text("My assignments"),
      ),
      body: Container(
        margin: const EdgeInsets.only(top: 10.0),
        child: Align(
          alignment: Alignment(0, -0.9),
          child: Column(
            children: <Widget>[
              // Need Text Here
              FutureBuilder<Widget>(
                future: readName(),
                builder: (context, snapshot) {
                  if (snapshot.hasData)
                    return snapshot.data;
                  return Center(child: CircularProgressIndicator());
                }
              ),
            ],
          ),
        ),
      ),
    ),
  );
}
Widget构建(BuildContext-ctxt){
返回材料PP(
家:脚手架(
appBar:新的appBar(
标题:新文本(“我的作业”),
),
主体:容器(
边距:仅限常量边集(顶部:10.0),
子对象:对齐(
对齐:对齐(0,-0.9),
子:列(
儿童:[
//这里需要文本吗
未来建设者(
future:readName(),
生成器:(上下文,快照){
if(snapshot.hasData)
返回快照数据;
返回中心(子项:CircularProgressIndicator());
}
),
],
),
),
),
),
);
}
阅读更多有关FutureBuilder的信息。检查以下链接:

你好!谢谢你的帮助。然而,我仍然有错误。你知道为什么吗?这是我的源代码:不客气,我运行了你的代码,但括号放错了地方。我把它换了,然后它就工作了。但是你应该确切地解释你的问题是什么。