底部导航BottomNavigationBar

BottomNavigationBar({
    Key key,
    @required this.items,  
    this.onTap,
    this.currentIndex = 0,
    BottomNavigationBarType type,
    this.fixedColor,
    this.iconSize = 24.0,
  })


 

main.dart

import 'package:flutter/material.dart';
import 'bottomNavigation_widget.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: MaterialApp(
        title: 'Flutter bottomNavigationBar',
        theme: ThemeData.light(),
        home: BottomNavgationWidget(),
      ),
    );
  }
}

 

 airplay_screen  

import 'package:flutter/material.dart';

class AirplayScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(title: Text('Airplay')),
      body: Center(child: Text('Airplay')),
    );
  }
}

 home_screen

import 'package:flutter/material.dart';

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(title: Text('HOME')),
      body: Center(child: Text('Home')),
    );
  }
}

bottomNavigation_widget.dart

import 'package:flutter/material.dart';
import 'pages/airplay_screen.dart';
import 'pages/email_screen.dart';
import 'pages/home_screen.dart';
import 'pages/pages_screen.dart';

//BottomNavigationBarItem({
// @required this.icon,
// this.title,
//  Widget activeIcon,
//  this.backgroundColor,
//})
//StatefulWidget 里面的东西进行变化
class BottomNavgationWidget extends StatefulWidget {
  _BottomNavigationWidgetState createState() => _BottomNavigationWidgetState();
}

class _BottomNavigationWidgetState extends State<BottomNavgationWidget> {
  final _BottomNavColor = Colors.blue;
  int _currentIndex = 0;
  List<Widget> list = [];
  @override
  void initState() {
    //..add 用完 返回list  后面添加页面不需要加list
    list
      ..add(HomeScreen())
      ..add(EmailScreen())
      ..add(PagesScreen())
      ..add(AirplayScreen());
    super.initState(); //调用父类初始化方法
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: list[_currentIndex],
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        selectedFontSize: 16,
        unselectedFontSize: 11,
        selectedItemColor: Colors.teal,
        unselectedItemColor: Colors.black,
        items: [
          BottomNavigationBarItem(
              icon: Icon(Icons.home, color: _BottomNavColor), label: '首页'),
          BottomNavigationBarItem(
              icon: Icon(Icons.email, color: _BottomNavColor), label: 'Email'),
          BottomNavigationBarItem(
              icon: Icon(Icons.pages, color: _BottomNavColor), label: 'Pages'),
          BottomNavigationBarItem(
              icon: Icon(Icons.airplay, color: _BottomNavColor),
              label: 'Airplay'),
        ],
        currentIndex: _currentIndex, //哪个被选中
        onTap: (int index) {
          setState(() {
            _currentIndex = index;
          });
        },
      ),
    );
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值