我正在尝试将要由ListView构建的小部件存储在这样的全局列表中:
List<Widget> globalList= [];
我正在尝试在像这样的有状态类的状态下构建Listview:
ListView(
children: globalList
)
现在,当每次将项目添加到列表时,我都会尝试渲染此Listview。我为此使用的功能是:
void addList(){
setState((){
Widget _widget = new Widget();
list.add(_widget);
});
小部件(在我的伪代码中称为_widget
)也是一个有状态小部件。但是,当我调用addList
时,我的有状态小部件不会更新。为什么?
Shortended(Pseudo)-Code:
List<Widget> globalList = [];
class STFUL extends StatefulWidget{
@override
_STFULState createState() => _STFULState();
}
class _STFULState extends State<STFUL>{
void addList(){
setState((){
Widget _widget = new Widget();
globalList.add(_widget);
});
@override
Widget build(BuildContext context) {
return Scaffold(
body:ListView(
children: globalList
)
}
}
下面有一个按钮可以调用addList。我的问题是,当我调用setState时,ListView不会呈现更新的列表。
谢谢您的帮助
用ListView.Builder
代替ListView
,