flutte之实现自定义底部导航

home页面
import 'package:flutter/material.dart';
import 'package:demo/page/friends/friends.dart';
import 'package:demo/page/message/message.dart';
import 'package:demo/page/my/my.dart';

class Home extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _Home();
}

class _Home extends State<Home> {
  List pageList = [Message(), Friends(), My()];
  List pageTitleList = ['消息', '朋友列表', '我的'];
  int pageIndex = 0;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: pageList[pageIndex]),
      bottomNavigationBar: BottomAppBar(
        child: Container(
          height: 50,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              InkWell(
                child: Text('消息'),
                onTap: () {
                  this.setState(() {
                    pageIndex = 0;
                  });
                },
              ),
              InkWell(
                child: Text('好友'),
                onTap: () {
                  this.setState(() {
                    pageIndex = 1;
                  });
                },
              ),
              InkWell(
                child: Text('我的'),
                onTap: () {
                  this.setState(() {
                    pageIndex = 2;
                  });
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

说明
Message()是消息页面,登陆成功之后就要显示的,所以放在第一个(pageIndex ,索引,默认值为0)
Friends()是好友列表页面
My()是我的页面
总结

也可以使用BottomNavigationBarItem来实现,但是由于BottomNavigationBarItem中的icon是必须要传的参数,并且其定制化不高,所以使用上面的方式更好

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值