Flutter_32_BottomnavigationBar

  • items
    • 包含导航(BottomnavigationBarItem)的列表
  • currentIndex
    • 当前导航索引
  • type
    • 导航类型(BottomNavigationBatType)
  • onTap()
    • 导航的点击事件(一般会更新导航索引)
import 'package:flutter/material.dart';

void main() {
  //下一个组件
  runApp(MyApp());
}

//MaterialApp
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Flutter",
      //下一个组件
      home: Home(),
      debugShowCheckedModeBanner: false,
    );
  }
}
class Home extends StatefulWidget {
  const Home({Key key}) : super(key: key);

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  final List<BottomNavigationBarItem> bottomNavItems = [
    BottomNavigationBarItem(
        backgroundColor: Colors.blue,
        icon: Icon(Icons.home),
        label: "首页"
    ),
    BottomNavigationBarItem(
        backgroundColor: Colors.blue,
        icon: Icon(Icons.home),
        label: "消息"
    ),
    BottomNavigationBarItem(
        backgroundColor: Colors.blue,
        icon: Icon(Icons.home),
        label: "购物车"
    ),
    BottomNavigationBarItem(
        backgroundColor: Colors.blue,
        icon: Icon(Icons.home),
        label: "我"
    ),
  ];

  final  pages = [
    Center(
      child: Text("home",style: TextStyle(fontSize: 50),),
    ),
    Center(
      child: Text("message",style: TextStyle(fontSize: 50),),
    ),

    Center(
      child: Text("Cart",style: TextStyle(fontSize: 50),),
    ),
    Center(
      child: Text("Profile",style: TextStyle(fontSize: 50),),
    )
  ];
  int currentIndex;
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    currentIndex=0;

  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Drawer"),
        leading: Icon(Icons.menu),
        actions: [Icon(Icons.settings)],
        elevation: 0.0,
        centerTitle: true,
      ),
      bottomNavigationBar: BottomNavigationBar(items: bottomNavItems,
      currentIndex: currentIndex,
      // type: BottomNavigationBarType.fixed,
        type: BottomNavigationBarType.shifting,
      onTap: (index){
        _changePage(index);
      },),

      body:pages[currentIndex],
    );;
  }
  void _changePage(int index){
    if(index != currentIndex){
      setState(() {
        currentIndex = index;
      });
    }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值