我有一个有状态的类,其显示列表如下:
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中,但无法正常工作。感谢收到任何建议。
答案 0 :(得分:0)
正如克里斯托弗·摩尔(Christopher Moore)所说,您必须在该类中设置setState,例如
void clearbox(){
setState((){
yourScoresList.clear();
});
如果您的另一个类中没有StateFulWidget,请执行此操作,
在StateFulWidget中(当前类,您具有listView)
添加此功能,
void clear(){
setState((){
gameManager.yourScoresList.clear();
});
}
调用此函数,每当您希望清除列表时,甚至可以从拥有该列表的另一个类中调用它。