当前位置: 首页 > 知识库问答 >
问题:

使用底部导航-flutter时删除应用程序栏的后退按钮

欧阳炜
2023-03-14

我在我的应用程序中使用底部导航,如下所示。

class AppMainPage extends StatefulWidget {
  @override
  _AppMainPageState createState() => _AppMainPageState();
}

class _AppMainPageState extends State<AppMainPage> {
  int _selectedIndex = 1;

  void _onItemTapped(int index) {
    setState(() {
      _selectedIndex = index;
    });
  }

  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    super.dispose();
  }

  static List<Widget> _widgetOptions = <Widget>[
    PaymentPage(),
    HomePage(),
    ProfilePage()
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      bottomNavigationBar: BottomNavigationBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.money_dollar),
            label: 'Payment',
          ),
          BottomNavigationBarItem(
            icon: Icon(CupertinoIcons.home),
            label: 'Home',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.person),
            label: 'Profile',
          ),
        ],
        currentIndex: _selectedIndex,
        selectedItemColor: orange_red1,
        unselectedItemColor: Colors.grey,
        onTap: _onItemTapped,
      ),
      body: _widgetOptions.elementAt(_selectedIndex),
    );
  }
}

我想从底部导航的每个页面都有一个不同的(一些应用程序栏有不同的图标和标题。因此不能在AppMainPage中使用普通的应用程序栏)脚手架小部件内的AppBar如下所示。

主页appbar代码

    class HomePage extends StatefulWidget {
    
      @override
      _HomePageState createState() => _HomePageState();
    }
    
    class _HomePageState extends State<HomePage> {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          backgroundColor: Colors.white,
            appBar: AppBar(
              backgroundColor: orange_red1,
              title: Text('Home'),
              elevation: 0,
            ),
          body: Stack(...))
      }
   }

我不确定我的代码实现是否符合我的要求,如果有人能在这方面提供帮助,我很高兴。

共有1个答案

李洋
2023-03-14
**Updated**
Note: As I read a line about `WillPopScope` wont work in iOS.



return WillPopScope(
          onWillPop: () async {
            //todo
            return Future.value(false);
          },
          child: Scaffold(
          backgroundColor: Colors.white,
            appBar: AppBar(
              backgroundColor: orange_red1,
              title: Text('Home'),
              elevation: 0,
              leading: SizedBox(),//any one below or SizeBox()
              automaticallyImplyLeading: false,//any one below or SizeBox()
            ),
          body: Stack(...))
         );
      }
 类似资料:
  • 本文向大家介绍Flutter实现底部导航栏,包括了Flutter实现底部导航栏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Flutter实现底部导航栏的具体代码,供大家参考,具体内容如下 效果 实现 先将自动生成的main.dart里面的代码删除, 创建app.dart作为首页的页面文件 创建today.dart、kb.dart、playground.dart三个页面文件作为ta

  • 我有一个具有以下4种布局的项目: 实际上,我有一个活动,其中包含一个底部的应用程序栏和一个NavHostFragment,在那里注入片段。主要片段是主视图。有一个管理和一个设置片段,它们都是与主视图类似的顶级视图,但并不相互依赖。这3个片段可以通过单击导航抽屉中的项目进行切换。为了简化,我正在尝试新的导航架构组件。 现在我有一些设计问题: 我是否应该将底部的应用程序栏移动到片段中,因为它们彼此不依

  • 问题内容: 当我按下a时,它在new的后退按钮中有一些标题,如果标题中包含很多文本,则在iPhone 4s中看起来不太好,所以我想删除它。 如果我在函数中添加一些代码,那将是一个麻烦。 还有更好的方法吗? 问题答案: 如果要返回箭头,则将以下代码放入文件中。 另一个选择在下面给出。 在 在 更新: 更新SWIFT 4.1: 使用偏移 因此可能是您的问题已解决。 快乐的编码。

  • 本文向大家介绍Flutter实现底部导航栏效果,包括了Flutter实现底部导航栏效果的使用技巧和注意事项,需要的朋友参考一下 大家最近都在讨论新鲜技术-flutter,小编也在学习中,遇到大家都遇到的问题,底部导航。下面给大家贴出底部导航的编写,主要参考了lime这个项目。 上代码 一.在main.dart文件中 定义APP的基本信息 其中主要代码部分 其中,各个页面的主要声明 底部导航栏的内容

  • 本文向大家介绍Flutter底部导航栏的实现方式,包括了Flutter底部导航栏的实现方式的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Flutter底部导航栏的实现代码,供大家参考,具体内容如下 老规格,先看图: 程序主结构如下: 1.在程序主入口文件main.dart添加如下代码 2.创建4个界面,home_page.dart、constant_page.dart、find_p

  • 很长一段时间以来,我一直在研究如何保存片段之间的状态,所以当我返回时,就好像你从未离开过一样。谷歌照片就是一个重要的例子。当你滚动浏览你的照片,然后转到另一个片段并返回时,你会保持原样。我的问题是,既然我的应用程序加载了不同的片段,当它们返回到这些片段时,它们会被重新创建,而不是像谷歌照片那样加载以前的状态,那么这怎么可能实现呢。我所尝试的: 定义nav_host_fragment的部分代码,因为