我的第一个屏幕中有一个List_view,其标题中填充有字符串列表,通过点击list_view的每个项目,将显示一个新页面,该页面计算出一个值并将该值发送回第一个屏幕,我需要此计算值仅显示在列表视图中所选项目的字幕上,而不是我的代码中出现的所有字幕! 我该怎么办?
这是我的第一个屏幕的List_view:
ListView.builder(
itemCount: MyList.length,
itemBuilder: (context, position){
return Card(
child:ListTile(
title:Padding(
padding: const EdgeInsets.all(5.0),
child: Text(
MyList.isEmpty ? "click button to add movement": selectedMovementList.elementAt(position), style: TextStyle(fontSize: 16.0),),
),
//Here is my problem!!!!!!!
subtitle: Text(subTileInfoText),
trailing:Icon(Icons.arrow_right),
onTap:() {
_awaitReturnValueFromDetailScreen(context,position);
},
),
);
}
void _awaitReturnValueFromDetailScreen(BuildContext context,int position) async {
// start the SecondScreen and wait for it to finish with a result
final result = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => detailMovementEntry(selectedMovementList.elementAt(position)),
));
// after the SecondScreen result comes back update the Text widget with it
setState(() {
subTileInfoText = result;
});
}
这是我第二个屏幕的回传数据:
RaisedButton(
child: const Text('Save'),
onPressed: (){
_sendDataBack(context);
},)
void _sendDataBack(BuildContext context) {
String textToSendBack = "SomeText"
Navigator.pop(context, textToSendBack);
}
我只需要更改所选图块的字幕,而无需更改所有图块的字幕!
答案 0 :(得分:0)
我找到答案了!! 通过定义字幕列表(名为:subList)解决了该问题,在“ _awaitReturnValueFromDetailScreen”中,我将返回的值放在subList [position]中,而在字幕中,我只是从该列表中读取。