小编典典

颤动删除应用栏上的后退按钮

all

我想知道,如果有人知道当您使用转到另一个页面时删除显示appBar在颤振应用程序中的后退按钮的方法。Navigator.pushNamed我不希望它出现在这个结果页面上的原因是它来自导航,我希望用户改用该logout按钮,以便会话重新开始。


阅读 62

收藏
2022-06-04

共1个答案

小编典典

您可以通过将空new Container()作为leading参数传递给您的AppBar.

如果您发现自己这样做了,您可能不希望用户能够按下设备的后退按钮来返回之前的路线。pushNamed尝试调用Navigator.pushReplacementNamed以使较早的路由消失,而不是调用。

该函数pushReplacementNamed将删除 backstack 中的先前路由并将其替换为新路由。

后者的完整代码示例如下。

import 'package:flutter/material.dart';

class LogoutPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text("Logout Page"),
      ),
      body: new Center(
        child: new Text('You have been logged out'),
      ),
    );
  }

}
class MyHomePage extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text("Remove Back Button"),
      ),
      floatingActionButton: new FloatingActionButton(
        child: new Icon(Icons.fullscreen_exit),
        onPressed: () {
          Navigator.pushReplacementNamed(context, "/logout");
        },
      ),
    );
  }
}

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      home: new MyHomePage(),
      routes: {
        "/logout": (_) => new LogoutPage(),
      },
    );
  }
}
2022-06-04