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的信息。检查以下链接:
你好!谢谢你的帮助。然而,我仍然有错误。你知道为什么吗?这是我的源代码:不客气,我运行了你的代码,但括号放错了地方。我把它换了,然后它就工作了。但是你应该确切地解释你的问题是什么。