带有列表中的小部件的 Flutter ListView 不会在应该更新的时候更新
Flutter ListView with widgets in a List doesn't updates when it should
我正在尝试将要由 ListView 构建的小部件存储在全局列表中,如下所示:
List<Widget> globalList= [];
我正在尝试在有状态 class 的状态下构建一个列表视图,如下所示:
ListView(
children: globalList
)
现在,当一个项目被添加到列表中时,我试图每次都呈现这个 Listview。我为此使用的功能是:
void addList(){
setState((){
Widget _widget = new Widget();
list.add(_widget);
});
Widget(在我的伪代码中称为_widget
)也是一个Stateful widget。但是当我调用 addList
时,我的有状态小部件不会更新。为什么?
缩短(伪)代码:
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
,
我正在尝试将要由 ListView 构建的小部件存储在全局列表中,如下所示:
List<Widget> globalList= [];
我正在尝试在有状态 class 的状态下构建一个列表视图,如下所示:
ListView(
children: globalList
)
现在,当一个项目被添加到列表中时,我试图每次都呈现这个 Listview。我为此使用的功能是:
void addList(){
setState((){
Widget _widget = new Widget();
list.add(_widget);
});
Widget(在我的伪代码中称为_widget
)也是一个Stateful widget。但是当我调用 addList
时,我的有状态小部件不会更新。为什么?
缩短(伪)代码:
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
,