程序入口

import 'package:flutter/material.dart';
import 'botton_navigation_widget.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'demo',
theme:ThemeData.light(),
home: BottomNavigationWidget()//導航Widget
);
}
}

導航widget

import 'package:flutter/material.dart';
import 'index.dart';
import 'campus_network.dart';
import 'curriculum.dart';
import 'personal_center.dart'; class BottomNavigationWidget extends StatefulWidget {
@override
_BottomNavigationWidgetState createState() => _BottomNavigationWidgetState();
} class _BottomNavigationWidgetState extends State<BottomNavigationWidget> {
final _BottomNavigationColor = Colors.blue;
//現在的索引
int _currentIndex = 0;
//widget集合
List<Widget> list = List();
//重寫初始化方法,將需要導航的widget添加到集合
@override
void initState() {
list
//..相當於list.
..add(IndexScreen())
..add(CurriculumScreen())
..add(CampusNetworkScreen())
..add(PersonalCenterScreen());
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: list[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
//超過3個不顯示名字,需要設置
type: BottomNavigationBarType.fixed,
items: [
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'首頁'
),
),
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'課程'
),
),
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'分校網絡'
),
),
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'個人中心'
),
),
],
//高亮顯示
currentIndex: _currentIndex,
//點擊導航時更新現在的下標
onTap: (int index){
setState(() {
_currentIndex = index;
});
},
),
);
}
}

需要跳轉的widget

import 'package:flutter/material.dart';

class IndexScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('index'),
),
body: Center(
child: Text('index'),
),
);
}
}

Flutter-底部導航欄切換的更多相关文章

  1. initrd image比lvm.conf文件舊導致RHCS切換服務unmount failed,reboot

    在RHCS服務切換的時候,unmount盤的時候,發現會failed,並且直接導致reboot. 在message里看到這樣一段 [lvm] * initrd image needs to be ne ...

  2. Flutter-tabbar切換

    頂部tabbar切換 import 'package:flutter/material.dart'; import 'index_attendance_record.dart'; import 'in ...

  3. flutter 底部按钮切换页面

    界面如图: 我们就从上节里面的app.dartt修改 目录:lib lib/story 其它两个目录一样. 图片配置一下 app.dart import 'package:flutter/materi ...

  4. Flutter 底部导航栏bottomNavigationBar

    实现一个底部导航栏,包含3到4个功能标签,点击对应的导航标签可以切换到对应的页面内容,并且页面抬头显示的内容也会跟着改变. 实际上由于手机屏幕大小的限制,底部导航栏的功能标签一般在3到5个左右,如果太 ...

  5. flutter 底部bottomNavigationBar凸起效果

    概要 最近在做flutter 的时候,之前看到想实现 底部导航栏中间按钮 凸起效果, 最近想做又突然找不到方案了,因此记录下这里的实现方式. 预览效果 代码 主要使用 BottomAppBar 组建, ...

  6. NS5S1153 切換器

    昨天在研讀 NS5S1153 的 spec, 發現有一個詞 很陌生 DPDT, 原來是 double pole double throw 的縮寫,雙軸雙切, 更詳細的解釋可以看這個博客的另一篇 &qu ...

  7. 切換 java compiler 版本

    有些程式在執行時會顯示需要較新的 java jre 版本, 若系統裝有兩個 java jre 可以使用下列指令切協版本, sudo update-alternatives --config java ...

  8. 09 Flutter底部Tab切换保持页面状态的几种方法

    IndexedStack:保此所有页面的状态: AutomaticKeepAliveClientMixin:保此部分页面的状态: 修改的页面代码: 页面效果: Tabs.dart import 'pa ...

  9. Flutter 底部的renderflex溢出

    一开始直接使用Scaffold布局,body:new Column  然后模拟器会提示捕获异常: 然后百度了一下Flutter的溢出问题,发现解决办法是使用SingleChildScrollView包 ...

随机推荐

  1. Strassen __128int

    题目链接 题意思路很简单,递归求最小就好了.但__128int没见过.故写博客记下.__128int如果输入输出就要自己写函数. #include<bits/stdc++.h> using ...

  2. 杂项 List

    题目 1. 栈    #A 表达式的转换 (Unaccepted) 2. STL 模板库 #B 双栈排序(Unaccepted)    #C 垃圾陷阱(Accepted)    #D 合并果子(Acc ...

  3. 【进阶技术】一篇文章搞掂:Spring Cloud Stream

    本文总结自官方文档http://cloud.spring.io/spring-cloud-static/spring-cloud-stream/2.1.0.RC3/single/spring-clou ...

  4. centos mysql初探 -- 配置、基本操作及问题

    目录: centos安装mysql 使用mysql客户端进行简单操作 python2和python3连接mysql mysql导入文件问题 死锁解决办法 windows 7 远程连接 mysql 服务 ...

  5. 前端二倍图的思考(涉及Retina)

    EXCELL格式 1 csv格式导出来之后不能用EXCELL打开,会乱码.用记事本打开,然后将"(英文的引号出掉),就可以了. 关于二倍图的操作 概念: 设备像素:也叫物理像素,显示设备上最 ...

  6. MAC-安装套件管理工具Homebrew

    前言 Homebrew是一款Mac OS下的套件管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能. Homebrew安装 1,Homebrew官网获取安装指令,官网地址:https://br ...

  7. python常用模块(3)

    hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通 ...

  8. vim插件管理器:Vundle的介绍及安装(很全)(转载)

    转载自:https://blog.csdn.net/zhangpower1993/article/details/52184581 背景 Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim ...

  9. ubuntu离线安装mysql

    一:ubuntu离线安装mysql 转载来源:https://blog.csdn.net/liuhuoxingkong/article/details/80696574 参考文章:https://ww ...

  10. [已解决]报错: Windows下Redis服务无法启动,错误 1067 进程意外终止解决方案

    启动redis时出现的报错内容: 解决方法: 找到登录状态 如果是网络服务,直接双击此服务,修改为本地系统服务即可启动!