微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

飞镖 – 带颤振的底部导航

我尝试构建一个有颤动的应用程序,并通过构建导航有问题.我想要在当前版本的youtube应用程序中进行导航.底部导航栏,带有三个页面,而不是每个页面页面,带有一个欧文导航堆栈.在所有子页面上,应该可以更改主视图和应用程序保存在女巫子页面我在哪里.那可能吗?我找不到解决办法.我认为它应该是可能的,因为它在材料设计的示例页面上: https://material.io/design/components/bottom-navigation.html#behavior点“底部导航动作”.
我会非常感谢你的帮助!

解决方法

我来看看 this code snippet寻求帮助.

import 'package:firebase_auth/firebase_auth.dart';
import 'package:my_nit2018/navigarion_drawer.dart';
import 'package:my_nit2018/pages/app/blog/blog_page.dart';
import 'package:my_nit2018/pages/app/home/home_page.dart';
import 'package:my_nit2018/pages/app/library/library_page.dart';
import 'package:my_nit2018/pages/app/notifications/notifications_page.dart';

class MainApp extends StatefulWidget {
  FirebaseUser user;

  MainApp(this.user);

  @override
  _MainAppState createState() => new _MainAppState();
}

class _MainAppState extends State<MainApp> {
  int i = 0;
  var pages = [
    new HomePage(),new BlogPage(),new LibraryPage(),new NotificationsPage()
  ];

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: pages[i],drawer: new AppNavigationDrawer(),bottomNavigationBar: new BottomNavigationBar(
        items: [
          new BottomNavigationBarItem(
            icon: new Icon(Icons.home),title: new Text('Home'),),new BottomNavigationBarItem(
            icon: new Icon(Icons.photo_library),title: new Text('Blog'),new BottomNavigationBarItem(
            icon: new Icon(Icons.book),title: new Text('Library'),new BottomNavigationBarItem(
            icon: new Icon(Icons.notifications),title: new Text('Notifications'),],currentIndex: i,type: BottomNavigationBarType.fixed,onTap: (index) {
          setState(() {
            i = index;
          });
        },);
  }
}

AppNavigationDrawer:

import 'package:Flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:my_nit2018/pages/app/app_state.dart';
import 'package:my_nit2018/pages/app/main_app.dart';
import 'package:my_nit2018/pages/app/profile/profile_page.dart';
import 'package:my_nit2018/pages/auth/login_page.dart';

class AppNavigationDrawer extends StatefulWidget {
  @override
  _AppNavigationDrawerState createState() => new 
  _AppNavigationDrawerState();
}

class _AppNavigationDrawerState extends State<AppNavigationDrawer> {
  @override
  Widget build(BuildContext context) {
    final appState = AppState.of(context);
    return new Drawer(
      child: new ListView(
        padding: EdgeInsets.zero,children: <Widget>[
          new DrawerHeader(
            child: new Text('MyNiT App'),decoration: new Boxdecoration(
             color: Colors.blue,new ListTile(
        title: new Text('Todo List'),leading: new Icon(Icons.list),onTap: () {
          Navigator.pop(context);
        },new ListTile(
        title: new Text('Subscriptions'),leading: new Icon(Icons.subscriptions),new ListTile(
        title: new Text('Activity'),leading: new Icon(Icons.timelapse),new ListTile(
        title: new Text('Profile'),leading: new Icon(Icons.account_circle),onTap: () {
          Navigator.pop(context);
          Navigator.push(
            context,new MaterialPageRoute(
              builder: (context) => new AppState(
                    firebaseUser: appState.firebaseUser,user: appState.user,child: new ProfilePage(),);
        },new ListTile(
        title: new Text('logout'),leading: new Icon(Icons.exit_to_app),onTap: () {
          // Sign out user from app
          FirebaseAuth.instance.signOut();
          Navigator.of(context).pushAndRemoveUntil(
              new MaterialPageRoute(builder: (context) => new LoginPage()),ModalRoute.withName(null));
        },);

}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐