Flutter之BottomNavigationBar的封装

栏目: IOS · Android · 发布时间: 7年前

内容简介:BottomNavigationBarBottomNavigationBar 是属于 Scaffold 中的一个位于底部的控件。通常和 BottomNavigationBarItem 配合使用。

Flutter之BottomNavigationBar的封装

BottomNavigationBar

BottomNavigationBar 是属于 Scaffold 中的一个位于底部的控件。通常和 BottomNavigationBarItem 配合使用。

BottomNavigationBar构造方法:

BottomNavigationBar({
        Key key,
        @required this.items,
        this.onTap,
        this.currentIndex = 0,
        this.elevation = 8.0,
        BottomNavigationBarType type,
        Color fixedColor,
        this.backgroundColor,
        this.iconSize = 24.0,
        Color selectedItemColor,
        this.unselectedItemColor,
        this.selectedIconTheme = const IconThemeData(),
        this.unselectedIconTheme = const IconThemeData(),
        this.selectedFontSize = 14.0,
        this.unselectedFontSize = 12.0,
        this.selectedLabelStyle,
        this.unselectedLabelStyle,
        this.showSelectedLabels = true,
        bool showUnselectedLabels,
      })

BottomNavigationBarItem

底部导航栏要显示的Item,有图标和标题组成

BottomNavigationBarItem构造方法:

const BottomNavigationBarItem({
        @required this.icon,
        this.title,
        Widget activeIcon,
        this.backgroundColor,
      })

构建BottomNavigationBar

// 创建底部BottomNavigationBar
      BottomNavigationBar _bottomNavigationBar(List <String>titles, List <String>icons){
        return  BottomNavigationBar(
          items: [
            _bottomBarItem(titles[0], icons[0]),
            _bottomBarItem(titles[1], icons[1]),
            _bottomBarItem(titles[2], icons[2]),
            _bottomBarItem(titles[3], icons[3]),
          ],
          currentIndex: _currentIndex,
          type: BottomNavigationBarType.fixed,// 当items大于3时需要设置此类型
          onTap: _bottomBarItemClick,
          selectedFontSize: 12,
        );
      }
      // 创建item
      BottomNavigationBarItem _bottomBarItem(String title, String iconName,) {
        return BottomNavigationBarItem(
          icon: _image(iconName),
          title: Text(title),
          activeIcon: _image('${iconName}_select'),
          backgroundColor: Colors.white,
        );
      }
      //image
      Widget _image(String iconName) {
        return Image.asset(
          'assets/images/${iconName}@2x.png',// 在项目中添加图片文件夹
          width: 24,
          height: 24,
        );
      }
      //item点击事件
      _bottomBarItemClick(int index) {
        setState(() {
          _currentIndex = index;
        });
      }

调用构建方法

// 当前选中的索引
    int _currentIndex = 0;
    
      //item点击事件
      _bottomBarItemClick(int index) {
        setState(() {
          _currentIndex = index;
        });
      }
      // 数据
      List titles = <String>['首页', '收藏', '消息', '我的'];
      List icons = <String>['tabbar_discover', 'tabbar_favorite', 'tabbar_message', 'tabbar_me'];
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          bottomNavigationBar: _bottomNavigationBar(titles, icons),
        );
      }

样式显示 :

Flutter之BottomNavigationBar的封装


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

电子商务:管理与社交网络视角(原书第7版)

电子商务:管理与社交网络视角(原书第7版)

(美)埃弗雷姆·特班(Efraim Turban)、戴维.金(David King)、李在奎、梁定澎、德博拉·特班(Deborrah Turban) / 时启亮、陈育君、占丽 / 机械工业出版社 / 2014-1-1 / 79.00元

本书对电子学习、电子政务、基于web的供应链、协同商务等专题进行了详细的介绍,全书涵盖丰富的资料以及个案,讨论了Web 2.0环境内的产业结构、竞争变化以及对当今社会的影响。另外,本书在消费者行为、协同商务、网络安全、网络交易及客户管理管理、电子商务策略等内容上都有最新的改编,提供读者最新颖的内容,贴近当代电子商务的现实。 本书适合高等院校电子商务及相关专业的本科生、研究生及MBA学员,也可......一起来看看 《电子商务:管理与社交网络视角(原书第7版)》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具