我有一个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(中清除ScoresList.clear((时,ListView不会被清除(即继续显示现有的(,直到我在Stateful类中选择了另一个实现setState((的小部件。我曾尝试在ValueListenableBuilder中包装ListView,但无法实现。如有任何建议,不胜感激。
正如Christopher Moore所说,您必须在该类中设置State,比如
void clearbox(){
setState((){
yourScoresList.clear();
});
如果你的另一个类中没有StateFulWidget,那么就这样做吧,
在StateFulWidget中,(当前类,其中有listView(
添加此功能,
void clear(){
setState((){
gameManager.yourScoresList.clear();
});
}
调用这个函数,无论何时您希望清除列表,您甚至可以从拥有列表的另一个类中调用它。