当前位置:   article > 正文

Flutter之自定义底部导航条以及页面切换实例——Flutter基础系列_flutter tabbar 横线

flutter tabbar 横线

需求:

底部导航条以及页面切换功能的实现。

效果图:

 

在这个过程中,我创建了一个tab.dart, 首页是home.dart,消息页是message.dart,设置页是setting.dart。

 

tab.dart:

  1. import 'package:flutter/material.dart';
  2. import 'home.dart';
  3. import 'message.dart';
  4. import 'setting.dart';
  5. class tab extends StatefulWidget {
  6. @override
  7. _tabState createState() => _tabState();
  8. }
  9. class _tabState extends State<tab> {
  10. int currentIndex=0;
  11. List _pageList=[
  12. Home(),
  13. Message(),
  14. Setting(),
  15. ];
  16. @override
  17. Widget build(BuildContext context) {
  18. return Scaffold(
  19. appBar: AppBar(
  20. title: Text("hello word")
  21. ),
  22. body: this._pageList[this.currentIndex],
  23. bottomNavigationBar: BottomNavigationBar(
  24. currentIndex: this.currentIndex,
  25. onTap: (int index){
  26. setState(() {
  27. this.currentIndex=index;
  28. });
  29. },
  30. items: [
  31. BottomNavigationBarItem(
  32. icon: Icon(Icons.home),
  33. title: Text("首页"),
  34. ),
  35. BottomNavigationBarItem(
  36. icon: Icon(Icons.add_comment),
  37. title: Text("消息"),
  38. ),
  39. BottomNavigationBarItem(
  40. icon: Icon(Icons.settings),
  41. title: Text("設置"),
  42. ),
  43. ],
  44. fixedColor: Colors.blue,
  45. ),
  46. );
  47. }
  48. }

home.dart

  1. import 'package:flutter/material.dart';
  2. class Home extends StatefulWidget {
  3. @override
  4. _HomeState createState() => _HomeState();
  5. }
  6. class _HomeState extends State<Home> {
  7. @override
  8. Widget build(BuildContext context) {
  9. // TODO: implement build
  10. return Center(
  11. child: Text("首页"),
  12. );
  13. }
  14. }

message.dart

  1. import 'package:flutter/material.dart';
  2. class Message extends StatefulWidget {
  3. @override
  4. _MessageState createState() => _MessageState();
  5. }
  6. class _MessageState extends State<Message> {
  7. @override
  8. Widget build(BuildContext context) {
  9. // TODO: implement build
  10. return Center(
  11. child: Text("消息页"),
  12. );
  13. }
  14. }

setting.dart

  1. import 'package:flutter/material.dart';
  2. class Setting extends StatefulWidget {
  3. @override
  4. _SettingState createState() => _SettingState();
  5. }
  6. class _SettingState extends State<Setting> {
  7. @override
  8. Widget build(BuildContext context) {
  9. // TODO: implement build
  10. return Center(
  11. child: Text("设置页"),
  12. );
  13. }
  14. }

然后就完成了,最后将tab.dart放到MateriaApp中的home中就行,如下图:

顶部导航栏参数配置

在TabBar中与tabs同级设置

  1. isScrollable: false, //是否可滚动
  2. indicatorColor: Colors.red, //bar的下划线指示器选中颜色
  3. indicatorWeight: 3, //bar的下划线指示器的高度
  4. indicatorPadding: EdgeInsets.all(8.0), //bar的下划线指示器的padding
  5. labelColor: Colors.yellow, //标签文字颜色
  6. indicatorSize: TabBarIndicatorSize.label, //下划线指示器与标签文字等宽,默认为tab与bar等宽
  7. labelStyle: TextStyle(), //标签文字样式
  8. labelPadding: EdgeInsets.only(left: 8.0), //标签文字padding
  9. unselectedLabelColor: Colors.white, //未选中文字标签颜色
  10. unselectedLabelStyle: TextStyle(), //未选中文字标签样式

基础篇

------------------------------------------------------------

 

 

Flutter之自定义底部导航条以及页面切换实例——Flutter基础系列

Flutter之自定义顶部Tab——Flutter基础系列

Flutter之抽屉组件drawer,设置drawer宽度——Flutter基础系列

Flutter之自定义按钮RaisedButton、OutlineButton、IconButton等——Flutter基础系列

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/692998
推荐阅读
相关标签
  

闽ICP备14008679号