简体   繁体   English

OnTap后刷新Flutter ListView

[英]Refresh Flutter ListView after OnTap

I want to change the view of a selected item (_itemSelected) . 我想更改选定项目(_itemSelected)的视图。 It works when I select an item but the other items doesn't refresh. 当我选择一个项目但其他项目没有刷新时,它可以工作。 There is something like notifydatasetchanged? 是否有类似notifydatasetchanged的东西? Something I missed? 我错过了什么? Thanks! 谢谢!

class MyItemListItem extends State<MyItemList> {
  final MyItem item;

  MyItemListItem(this.item);

  @override
  Widget build(BuildContext context) {
    return new ListTile(
        key: _itemListItem,
        onTap: () {
          _scaffoldKey.currentState.showSnackBar(new SnackBar(
              content: new Text("You clicked item number " + item.name)));
          _itemSelected = item;

          setState(() {

          });
        },
        leading: new CircleAvatar(backgroundColor: Colors.blue),
        title: _itemSelected != null && item == _itemSelected
            ? new Row(children: <Widget>[new Text("Foo"), new Text("Bar")])
            : new Row(
                children: <Widget>[
                  new Expanded(child: new Text(item.name)),
                ],
              ));
  }
}

Ok, I figured out the problem. 好的,我知道了问题所在。 Like Günter Zöchbauer suggested I added 就像GünterZöchbauer建议的那样,我添加了

_scaffoldKey.currentState.showSnackBar(new SnackBar(
              content: new Text("You clicked item number " + item.name)));
          _itemSelected = item;

          home.addItem();

        },

where home is the parent widget. 其中home是父窗口小部件。

void addItem() {
    setState(() {

    });
  }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM