我是新手。我想实现一个简单的Form函数:
1)第一页:“这是名称:” $ stringname
1.1)点击“编辑图标”->打开第二页
2)第二页:“编辑名称:” TextField
2.1)使用后退按钮->返回首页->显示新的$ stringname
[3)再次访问第二页,文本字段显示上次保存的名称]
我实现了所有内容(带有编辑图标的“第一页”,具有“后退”按钮和文本字段的第二页),但是我不知道如何保存新的字符串值并将其发送到第一页。 有人可以给我一个简短的例子,怎么做?
TextField(
obscureText: false,
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.all(
const Radius.circular(12.0),
),
),
labelText: 'Name',
labelStyle: TextStyle(
color: Colors.black.withOpacity(0.8)
),
),
),
答案 0 :(得分:1)
要将数据从第二页返回到第一页,您需要在导航到第二页时希望从第二页接收数据。在第二页上,您需要从TextField中获取值,然后在将视图弹出回到第一页时将其发送回去,如下所示:
在首页
方法
void goToSecondPage(){
Navigator.of(context).push(MaterialPageRoute(
builder: (context){
return SecondPage();
}
)).then((valueFromTextField){
// use your valueFromTextField from the second page
});
}
第二页
声明
TextEditingController _textEditingController = TextEditingController();
小部件
Column(
children: <Widget>[
TextField(
controller: _textEditingController,
obscureText: false,
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.all(
const Radius.circular(12.0),
),
),
labelText: 'Name',
labelStyle: TextStyle(
color: Colors.black.withOpacity(0.8)
),
),
),
RaisedButton(
onPressed: () => submit(),
),
],
),
方法
void submit(){
Navigator.of(context).pop(_textEditingController.text);
}