首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >颤振移除应用程序栏上的后退按钮

颤振移除应用程序栏上的后退按钮
EN

Stack Overflow用户
提问于 2017-07-07 19:18:03
回答 13查看 204.4K关注 0票数 260

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

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2017-07-07 19:45:29

您可以通过将一个空的new Container()作为leading参数传递给您的AppBar来删除back按钮。

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

函数pushReplacementNamed将移除后堆栈中的前一个路由,并将其替换为新路由。

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

代码语言:javascript
代码运行次数:0
运行
复制
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(),
      },
    );
  }
}
票数 231
EN

Stack Overflow用户

发布于 2017-10-12 15:18:33

我相信解决方案如下

你实际上要么是:

  • 不想显示那个丑陋的后退按钮( :] ),因此选择:AppBar(...,automaticallyImplyLeading: false,...)
  • 不希望用户返回(取代当前视图),从而选择:Navigator.pushReplacementNamed(## your routename here ##)
  • 不希望用户返回--替换堆栈中的某个视图--从而使用:Navigator.pushNamedAndRemoveUntil(## your routename here ##, f(Route<dynamic>)→bool);,其中f是一个函数,在满足您希望保留在堆栈中的最后一个视图时返回true(就在新视图之前);
  • 不希望用户返回- EVER -用:Navigator.pushNamedAndRemoveUntil(context, ## your routename here ##, (_) => false);完全清空导航器堆栈

干杯

票数 552
EN

Stack Overflow用户

发布于 2017-08-24 14:54:44

删除AppBar中的back按钮的一个简单方法是将automaticallyImplyLeading设置为false

代码语言:javascript
代码运行次数:0
运行
复制
appBar: AppBar(
  title: Text("App Bar without Back Button"),
  automaticallyImplyLeading: false,
),
票数 284
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44978216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档