Flutter刷新状态小部件

时间:2020-08-07 17:28:06

标签: flutter listview setstate stateful

我有一个有状态的类,其显示列表如下:

            Container(
                margin: const EdgeInsets.fromLTRB(50.0, 10.0, 15.0, 10.0),
                height: 190,
                width: 100,
                child: ListView.builder(
                    itemCount: gameManager.yourScoresList.length,
                    itemBuilder: (context, index) {
                      return ListTile(
                        visualDensity: VisualDensity(
                            vertical: VisualDensity.minimumDensity),
                        title: gameManager.yourScoresList[index],
                      );
                    }))

但是,当我从另一个类(GameManager)清除yourScoresList.clear()时,除非在Stateful类中选择另一个实现setState()的小部件,否则不会清除ListView(即继续显示现有项)。 我试图将ListView包装在ValueListenableBuilder中,但无法正常工作。感谢收到任何建议。

1 个答案:

答案 0 :(得分:0)

正如克里斯托弗·摩尔(Christopher Moore)所说,您必须在该类中设置setState,例如

void clearbox(){

setState((){

yourScoresList.clear();

});

如果您的另一个类中没有StateFulWidget,请执行此操作,

在StateFulWidget中(当前类,您具有listView)

添加此功能,

void clear(){
setState((){
gameManager.yourScoresList.clear();
});

}

调用此函数,每当您希望清除列表时,甚至可以从拥有该列表的另一个类中调用它。