首页 > 解决方案 > Flutter - 弹出直到没有路线的屏幕

问题描述

我有一个这样开始的 Flutter 应用程序:

void main() async {

  // Check if user is logged in

  runApp(
    MaterialApp(
      home: (isLoggedIn) ? MainPage() : PageLogin(),
    ),
  );
}

我的 MainPage(和我的 LoginPage)只是 2 个常规的 Stateful Widget。

class MainPage extends StatefulWidget {
  MainPage({Key key, this.selectedPageDefault = 0}) : super(key: key);

  @override
  _MainPageState createState() => _MainPageState();
}

假设我还有 2 个页面,就像 MainPage :PageOnePageTwo.
当我点击一个按钮时MainPage,它带我去PageOne,当我点击一个按钮时PageOne,它带我去PageTwo
我去他们使用:

Navigator.of(context).push(
  MaterialPageRoute(
    builder: (context) => PageOne(), // Or PageTwo
  ),
);

现在,当我单击 中的按钮时PageTwo,我想返回MainPage
我可以使用Navigator.of(context).popUntil(...),但是它需要使用路由,我没有去MainPage使用路由。

这只是一个例子,但在真正的应用程序上,我有不止 2 页之后MainPage,所以我不能只使用pushReplacement或一个棘手的方法来实现这一点。

我怎样才能回去MainPage

标签: flutterdartflutter-navigation

解决方案


用这个Navigator.of(context).popUntil((route) => route.isFirst)


推荐阅读