Http 当点击按钮查看更改时,必须重新加载应用程序(颤振)

Http 当点击按钮查看更改时,必须重新加载应用程序(颤振),http,flutter,asynchronous,dart,async-await,Http,Flutter,Asynchronous,Dart,Async Await,这是我的项目: 我正在尝试创建一个应用程序,即从unsplash API获取图片并显示这些图片。 首先,我调用一个异步函数来获取所有图像并将它们保存在列表中。我正在使用ListView.builder来显示它们,在ListView的末尾有一个按钮,可以进行API调用并向ListView添加新图片 职能: var newImages = new List<Picture>(); _getNewPics() async{ counter++; newImages.clear(

这是我的项目:

我正在尝试创建一个应用程序,即从unsplash API获取图片并显示这些图片。 首先,我调用一个异步函数来获取所有图像并将它们保存在列表中。我正在使用ListView.builder来显示它们,在ListView的末尾有一个按钮,可以进行API调用并向ListView添加新图片

职能:

var newImages = new List<Picture>();
  _getNewPics() async{
  counter++;
  newImages.clear();
  newImages = await API_connection(counter).getPictures();
  allImages.addAll(newImages);
}  
问题是,当我启动应用程序时,没有显示任何内容,因此我必须按住ctrl+S键(重新加载应用程序),然后我会看到图像,就像我单击“加载更多”按钮时所做的一样


如果有人能帮助我,那就太好了:)

你可以使用
setState()
StatefulWidget
在新图像出现后重建widget

在java中,有一个名为notifyDataSetChanged()的函数,它基本上告诉listView它显示的列表已更改,需要更新。下面是颤振的详细答案,以实现相同的效果-

您可能也需要将“获取新图像”方法置于初始状态
child: FlatButton(
              child: Text("Load More",
                      style: new TextStyle(
                        color: Colors.white
                      )
                    ),
              onPressed: (){
                _getNewPics();
              },
          ),