Flutter实现底部导航栏效果
作者:BrodyWu 发布时间:2022-03-28 05:41:46
标签:Flutter,导航栏
大家最近都在讨论新鲜技术-flutter,小编也在学习中,遇到大家都遇到的问题,底部导航。下面给大家贴出底部导航的编写,主要参考了lime这个项目。
上代码
一.在main.dart文件中
定义APP的基本信息
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: themeColor(),
),
home: new MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
其中主要代码部分
class _MyHomePageState extends State<MyHomePage> {
PageController pageController;
int page = 0;
@override
Widget build(BuildContext context) {
return new Scaffold(
backgroundColor: Colors.grey,
body: new PageView(
children: [
new Index(),
new Classify(),
new Shopping(),
new Myself()
],
controller: pageController,
onPageChanged: onPageChanged
),
bottomNavigationBar: new BottomNavigationBar(items: [
new BottomNavigationBarItem(
icon: new Icon(Icons.laptop_chromebook),
title: new Text("主页"),
backgroundColor: Colors.grey
),
new BottomNavigationBarItem(
icon: new Icon(Icons.list), title: new Text("分类"),backgroundColor: Colors.grey),
new BottomNavigationBarItem(
icon: new Icon(Icons.local_grocery_store), title: new Text("购物车")),
new BottomNavigationBarItem(icon: new Icon(Icons.person), title: new Text("我的"))
],
onTap: onTap,
currentIndex: page
),
);
}
@override
void initState() {
super.initState();
pageController = new PageController(initialPage: this.page);
}
void onTap(int index) {
pageController.animateToPage(
index, duration: const Duration(milliseconds: 300),
curve: Curves.ease);
}
void onPageChanged(int page) {
setState(() {
this.page = page;
});
}
}
其中,各个页面的主要声明
底部导航栏的内容填充
二.其他四个页面的主要代码
import 'package:flutter/material.dart';
class Classify extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return new Scaffold(
body: new Center(
child:
new Text("分类"),
),
);
}
}
其他3个页面的代码是一样的,具体逻辑由需求去填写
三.效果图
来源:https://blog.csdn.net/u011045726/article/details/79583423


猜你喜欢
- 前言前段时间学习Chart控件,对Chart控件的,怕以后忘记,所以总结一下自己的学习成果,怕以后忘记方便自己下次复习。这篇文章只是学习的文
- 1,先取cantk-runtime-demos到本地:git clone https://github.com/drawapp8/cantk
- 目录一、导入依赖二、前端实现三、后台逻辑三、页面效果四、可能会遇到的问题一、导入依赖这里还是用了Apache的POI插件,现在一般的spri
- 本文实例为大家分享了Java实现颜色渐变效果的具体代码,供大家参考,具体内容如下RGB色彩,在自然界中肉眼所能看到的任何色彩都可以由红(R)
- Java使用OpenCV3.2实现视频读取与播放,供大家参考,具体内容如下OpenCV从3.x版本开始其JAVA语言的SDK支持视频文件读写
- 成功本文通过java语言实现ECC+AES混合加密。ECC加密算法具有密钥分配与管理简单,安全强度高等优点,AES的加密算法具有速度快,强度
- 效果图片重写DataGridView的OnRowPostPaint方法或者直接在DataGridView的RowPostPaint事件里写,
- 本篇内容通过操作软键盘的函数着手详细分析了隐藏或者显示软键盘的实现方法,并且对其中重要的代码做了详细分析。一、开篇如果有需要用到输入的地方,
- 介绍环境配置Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEcl
- 关于Windows10 Java环境变量配置问题的解决办法由于最近有一些时间,所以想要把之前学过一段时间的Java重新捡起来看看,之前的学习
- 生产者消费者模式的几种实现方式拿我们生活中的例子来说,工厂生产出来的产品总是要输出到外面使用的,这就是生产与消费的概念。在我们实际的软件开发
- 本文实例为大家分享了C#使用NPOI将excel导入到list的具体代码,供大家参考,具体内容如下这个是确定是实体类接收/// <su
- 本文实例讲述了Android编程中EditText限制文字输入的方法。分享给大家供大家参考,具体如下:Android的编辑框控件EditTe
- 前言在你的工作中,有时候可能会看到 @Accessors(chain = true) 这样的注解,他是 lo
- bind函数定义在头文件 functional 中。可以将 bind 函数看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用
- XAML:<Grid>  
- 本文实例为大家分享了java五子棋游戏的具体代码,供大家参考,具体内容如下AI思路:通过判断棋盘上每个空位的分数,去分数最高的几个点,随机下
- 本文实例讲述了C#遍历操作系统下所有驱动器的方法。分享给大家供大家参考。具体分析如下:这里先通过DriveInfo类的GetDrivers方
- Spring Boot 最主要的特性就是AutoConfig(自动配置),而对于我们这些使用者来说也就是各种starter,Spring B
- 代码如果不进行格式化的处理,那么在查阅上会浪费不少的时间。今天我们要说的是字符串的格式化处理,作为基础编程内容,相信大家都字符串都不陌生。我