如何分别更改每个list_Tile的字幕

时间:2019-04-08 20:46:58

标签: listview dart flutter

我的第一个屏幕中有一个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);

}

我只需要更改所选图块的字幕,而无需更改所有图块的字幕!

1 个答案:

答案 0 :(得分:0)

我找到答案了!! 通过定义字幕列表(名为:subList)解决了该问题,在“ _awaitReturnValueFromDetailScreen”中,我将返回的值放在subList [position]中,而在字幕中,我只是从该列表中读取。