1

这是我的项目:https ://github.com/OstapFilipenko/Picslash

我试图创建一个应用程序,即从 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);
}  

这是按钮:

child: FlatButton(
              child: Text("Load More",
                      style: new TextStyle(
                        color: Colors.white
                      )
                    ),
              onPressed: (){
                _getNewPics();
              },
          ),

问题是,当我启动应用程序时没有显示任何内容,所以我必须 ctrl+S(重新加载应用程序)然后我看到图像,当我单击“加载更多”按钮时我必须这样做。

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

4

2 回答 2

2

一旦新图像出现,您可以使用setState()withStatefulWidget来重建小部件。

于 2020-06-05T11:27:07.230 回答
0

在 java 中,您有一个名为 notifyDataSetChanged() 的函数,它基本上告诉 listView 它显示的列表已更改并且需要更新。这是 Flutter 实现相同的详细答案 -链接

于 2020-06-05T11:27:20.367 回答