【发布时间】:2018-08-18 23:37:00
【问题描述】:
我有两个屏幕。在第一个中,有一个ListView。在第一个元素中,我显示变量 selectedObject 的值。
按下ListTile 时,会打开第二个屏幕。我想在从第二个屏幕返回后更新selectedObject 值。
我需要将result 的值赋给selectedObject 变量。
我想我必须调用setState 方法,但我不知道怎么做。
这是我的代码:
class _FilterTaskState extends State<FilterTask> {
List taskList;
String selectedObject = "initial value";
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: _buildAppBar(context, "AppBar Title"),
body: Center(
child: new ListView(
children: <Widget>[
new ListTile(
leading: new Icon(Icons.home, color: Colors.black),
title: new Text("Selected Object", style: styleTitle),
subtitle: new Text(selectedObject),
trailing: new Icon(Icons.play_arrow, color: Colors.black),
onTap: () => _navigateToFilterObject(context),
),
...
],
)
),
);
}
}
_navigateToFilterObject(BuildContext context) async {
final result = await Navigator.push(context,
MaterialPageRoute(builder: (context) => FilterObject()),);
/// I want to set the 'selectedObject' value
/// selectedObject = result;
}
【问题讨论】: