【问题标题】:How to open particular screen in Flutter如何在 Flutter 中打开特定屏幕
【发布时间】:2020-11-04 15:23:08
【问题描述】:

我有三个屏幕。屏幕 1 --> 屏幕 2 --> 屏幕 3

我知道如何在颤振中打开(屏幕 3)。 可能我可以使用共享首选项,但在我的情况下,我还想将数据从屏幕 1 传递到屏幕 2,然后传递数据到屏幕 3。

现在我杀了应用程序,我想直接打开屏幕3而不经过屏幕1和屏幕2。

请在这方面帮助我。

【问题讨论】:

  • 你的代码在哪里?
  • 其实这里的代码写起来很复杂。我们可以使用 Flutter Provider 打开特定屏幕而不导航中间屏幕吗?

标签: flutter flutter-layout flutter-dependencies


【解决方案1】:

您可以通过构造函数传递数据,
然后当你实例化它时,你可以传递数据,例如,
你有你的登录第二页,它从第一个登录页获取电话号码

class LoginSecondpage extends StatefulWidget {
  final String phone;

  const LoginSecondpage({Key key, this.phone}) 

那么当您可以使用navigator.push 或任何您想要的并在实例化时传递数据时
就我而言,我在firsloginpage 中使用了navigator.pushandremoveuntil

 Navigator.pushAndRemoveUntil(
                        context,
                        MaterialPageRoute(
                           builder(context)=>LoginSecendpage(phone:_phoneNumberContriller.text,)),
                        (Route<dynamic> route) => false,
                      );

那么当你想使用它时,如果类是无状态的,你只需要这样做

Text('${phone}')

但如果它是有状态的,你必须说

Text(${widget.phone})

【讨论】:

  • 请检查我更新的问题,并请建议我任何特定的方法来做到这一点。
  • 关于你的更新我可以说如果你在某个特殊的地方有数据,你可以在屏幕 3 中使用它们,将屏幕 3 放在 home: in main.dart 中,就像这个 home:Screen3(); home 是应用程序显示主页的位置,但如果您还没有数据,则可以将它们保存在 shared preferences 中,告诉我结果
【解决方案2】:

这可以通过在共享首选项中设置一些键/标志来完成。

第 1 步:在打开屏幕 3 时将键/标志设置为共享首选项。

第 2 步:在您的启动画面上,检查是否设置了键/标志。然后相应地移动/路线。

【讨论】:

  • 我可以使用共享偏好以外的其他技术吗?
  • 你可以参考这个答案stackoverflow.com/questions/57537347/…虽然这也使用存储。您需要某种媒介来让您的应用程序知道在应用程序被终止后要遵循的路线。
猜你喜欢
  • 2019-08-22
  • 2022-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 2012-09-27
相关资源
最近更新 更多