Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有没有办法在导航回listview页面时更新它?_Android_Listview_Flutter_Dart_Navigation - Fatal编程技术网

Android 有没有办法在导航回listview页面时更新它?

Android 有没有办法在导航回listview页面时更新它?,android,listview,flutter,dart,navigation,Android,Listview,Flutter,Dart,Navigation,我的应用程序有三个页面,一个主页,一个列表视图页面和一个设置页面。我从主页导航到listview页面,单击listview页面中的浮动操作按钮,创建一个新的配置文件,并进入该配置文件的设置页面。一旦我选择了我的设置,我希望它们显示在我的列表视图中的一张卡片上。我有一个sqflite数据库,从中检索设置。这很好,但有一个主要问题:我必须热重新加载我的应用程序,以便在我的listview中显示每一张新卡 我想要的是,当我导航回listview页面时,它会被更新 我尝试使用Navigator Push

我的应用程序有三个页面,一个主页,一个列表视图页面和一个设置页面。我从主页导航到listview页面,单击listview页面中的浮动操作按钮,创建一个新的配置文件,并进入该配置文件的设置页面。一旦我选择了我的设置,我希望它们显示在我的列表视图中的一张卡片上。我有一个sqflite数据库,从中检索设置。这很好,但有一个主要问题:我必须热重新加载我的应用程序,以便在我的listview中显示每一张新卡

我想要的是,当我导航回listview页面时,它会被更新

我尝试使用Navigator Push从我的设置页面返回到我的listview页面,如下所示:

Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => ProfilesList(),
  );
Navigator.pop(context, true);
                 var navigationResult = await Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) =>
                              ProfileCreator(),
                        ),
                      );
                      if (navigationResult == true){
                        setState(() {
                          getList();
                        });
这是因为我的listview会立即更新。但是当我点击后退按钮,而不是弹出回到主页,我又回到了设置屏幕,因为这是我按下的地方。所以我无法回到主应用程序屏幕

有解决办法吗?目前,我必须在我的配置文件列表未更新但导航正常或我的配置文件列表更新但导航不正常之间进行选择


在导航方面,我需要的是:第1页=>第2页=>第3页=>第2页=>第1页

多亏了这一点,我找到了解决问题的方法:

所以基本上,我必须从设置页面弹出,但添加值“true”,如下所示:

Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => ProfilesList(),
  );
Navigator.pop(context, true);
                 var navigationResult = await Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) =>
                              ProfileCreator(),
                        ),
                      );
                      if (navigationResult == true){
                        setState(() {
                          getList();
                        });
然后,在我的listview页面中,我所要做的就是等待该值返回,此时我可以重新加载列表,如下所示:

Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => ProfilesList(),
  );
Navigator.pop(context, true);
                 var navigationResult = await Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) =>
                              ProfileCreator(),
                        ),
                      );
                      if (navigationResult == true){
                        setState(() {
                          getList();
                        });

我希望有一天这对某人有用…

我找到了解决问题的方法,这多亏了:

所以基本上,我必须从设置页面弹出,但添加值“true”,如下所示:

Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => ProfilesList(),
  );
Navigator.pop(context, true);
                 var navigationResult = await Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) =>
                              ProfileCreator(),
                        ),
                      );
                      if (navigationResult == true){
                        setState(() {
                          getList();
                        });
然后,在我的listview页面中,我所要做的就是等待该值返回,此时我可以重新加载列表,如下所示:

Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => ProfilesList(),
  );
Navigator.pop(context, true);
                 var navigationResult = await Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) =>
                              ProfileCreator(),
                        ),
                      );
                      if (navigationResult == true){
                        setState(() {
                          getList();
                        });
我希望有一天这对某人有用