【问题标题】:Flutter Android back button navigating back to main pageFlutter Android后退按钮导航回主页
【发布时间】:2019-02-17 09:57:22
【问题描述】:

我希望能够使用后退按钮导航回主页而不是关闭应用程序,我已经看到 WillPopScope 小部件选项但需要显示一个对话框,有没有办法使用弹回没有对话框的android后退按钮?

【问题讨论】:

  • WillPopScore 根本不需要显示对话框。你可以用它做任何你喜欢的事情。
  • 我相信 Flutter 围绕返回按钮的方式现在已经改变了,而不是关闭应用程序,它现在返回到上一个屏幕。对吗?

标签: android dart flutter back-button


【解决方案1】:

您可以使用 Navigator.canPop() 方法避免应用退出。

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () async {
        return Navigator.canPop(context);
      },
      child: Scaffold(
        appBar: AppBar(title: const Text('HomePage')),
        floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
        floatingActionButton: FloatingActionButton(
          child: const Icon(Icons.add),
          backgroundColor: Colors.red,
          onPressed: () {
            Navigator.push(
                context, MaterialPageRoute(builder: (context) => SecondPage()));
          },
        ),
      ),
    );
  }
}

【讨论】:

    【解决方案2】:

    onWillPop 回调需要返回一个 bool 的 Future。你可以这样做

    Widget build(BuildContext context) {
        return WillPopScope(
          onWillPop: () {
            return Future.value(true); // or return Future.value(false);
          },
          child: Container()
        );
    }
    

    【讨论】:

    • 这只会禁用后退按钮
    猜你喜欢
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    相关资源
    最近更新 更多