dart 必须重新加载应用程序,当按钮被点击看到的变化(Flutter)

xqkwcwgp  于 2023-05-04  发布在  Flutter
关注(0)|答案(3)|浏览(294)

这是我的项目:https://github.com/OstapFilipenko/Picslash
我试图创建一个应用程序,这是从unsplash API获取图片,并显示这些图片.首先我调用一个异步函数来获取所有的图片并将它们保存在List中.我使用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(重新加载应用程序),然后我看到图像,当我点击“加载更多”按钮时,我也必须这样做。
这将是伟大的,如果有人能帮助我:)

hsvhsicv

hsvhsicv1#

您可以使用setState()StatefulWidget在新图像到来时重建小部件。

qjp7pelc

qjp7pelc2#

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

vdgimpew

vdgimpew3#

使用flutter_phoenix库来实现此功能。

void main() {
      runApp(
        Phoenix(
          child: App(),
        ),
      );
    }

如果你想重新启动你的应用程序,只需这样做:

IconButton(
              onPressed: () {
                  Phoenix.rebirth(context); },

icon: Icon(Icons.notes),

相关问题