Flutter实现底部导航栏效果

作者:BrodyWu 时间:2022-03-28 05:41:46 

大家最近都在讨论新鲜技术-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;
 });
}

}

其中,各个页面的主要声明

Flutter实现底部导航栏效果

底部导航栏的内容填充

Flutter实现底部导航栏效果

二.其他四个页面的主要代码


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个页面的代码是一样的,具体逻辑由需求去填写

三.效果图

Flutter实现底部导航栏效果

来源:https://blog.csdn.net/u011045726/article/details/79583423

标签:Flutter,导航栏
0
投稿

猜你喜欢

  • java多线程读取多个文件的方法

    2022-12-05 04:37:45
  • java swing 创建一个简单的QQ界面教程

    2022-09-08 06:51:39
  • unity将图片转换成字体的方法

    2023-02-16 22:51:09
  • flutter轮子计划之进度条

    2023-06-21 07:59:39
  • Java入门绊脚石之Override和Overload的区别详解

    2022-05-04 15:24:51
  • Android自定义ScrollView实现放大回弹效果实例代码

    2022-10-15 11:00:58
  • 简单工厂模式_动力节点Java学院整理

    2022-07-22 16:42:08
  • Java编程使用卡片布局管理器示例【基于swing组件】

    2022-03-03 10:46:33
  • 员工管理系统java版

    2022-05-04 23:33:18
  • SpringMVC文件上传原理及实现过程解析

    2021-09-03 00:24:25
  • 老生常谈Java中List与ArrayList的区别

    2023-03-26 19:52:33
  • springboot整合Quartz实现动态配置定时任务的方法

    2023-03-08 22:13:10
  • java多线程通过CompletableFuture组装异步计算单元

    2023-07-19 10:15:42
  • Android Activity 不能被截屏的解决方法

    2021-06-28 08:37:35
  • Unity为软件添加使用有效期的具体步骤

    2022-07-01 16:45:03
  • 详解SpringBoot中添加@ResponseBody注解会发生什么

    2023-07-02 22:08:13
  • spring mvc中@RequestBody注解的作用说明

    2022-04-07 14:15:02
  • Android显示GIF图片实例代码

    2021-10-14 16:47:03
  • C#9.0新特性详解——顶级程序语句(Top-Level Programs)

    2023-07-05 18:46:03
  • java面向对象设计原则之里氏替换原则示例详解

    2023-02-02 05:04:41
  • asp之家 软件编程 m.aspxhome.com