代码之家  ›  专栏  ›  技术社区  ›  Arjun Malhotra

如何解决Flutter APK中的重新路由问题?

  •  0
  • Arjun Malhotra  · 技术社区  · 2 年前

    我有一个有4个选项卡的页面。

    优惠--->这显示了所有可飞行的报价。索引=0

    已收集的报价--->显示我们收集的所有报价。索引=1

    我的优惠--->我已添加的报价。索引=2

    查看优惠--->只是为了检查我是否有所需的优惠券。索引=3

    当我们在表1中收集报价时,我们会转到表2,向用户显示报价已收集并且在我的收藏中。选定的选项卡变为蓝色,所有其他选项卡变为白色。我通过传递布尔标志来实现这一点。这是它的代码

     Navigator.pushReplacement(
                                context,
                                MaterialPageRoute(
                                    builder: ((context) => OffersScreenPage(
                                          getIndex: 1,
                                          offers: false,
                                          collection: true,
                                          shopoffers: false,
                                          checkoffers: false,
                                        ))));
    

    当我在终端和APK中运行它时,这都很好。 我的问题是,当我在选项卡3中编辑我的报价时,即我创建的报价(索引=2),我必须刷新页面,以便使用以下代码路由到同一选项卡:

     setState(() {
                              Navigator.pushReplacement(
                                  context,
                                  MaterialPageRoute(
                                      builder: ((context) => OffersScreenPage(
                                            getIndex: 2,
                                            offers: false,
                                            collection: false,
                                            shopoffers: true,
                                            checkoffers: false,
                                          ))));
                            });
    

    通过这种方式,再次调用api,并更新我添加的优惠。 即将出现的问题是,只有当我在终端中运行此代码时,它才能工作。APK中发生的事情是,实际打开的页面是标签号2,索引1是“我的收藏标签”,蓝色标签是“我创建的优惠”。所以它基本上在2号标签上,但显示它在3号标签上。

    因此,当我将Tab从Tab 1更改为>选项卡2在终端代码和APK中工作良好,但当我执行选项卡3->选项卡3是选项卡3->选项卡2。我希望我说清楚了。 如何删除此问题?或者有没有其他方法可以调用我的api来刷新数据。

    0 回复  |  直到 2 年前