TabBar组件的常用属性:

属性 描述
tabs
显示的标签内容,一般使用 Tab 对象,也可以是其他的Widget 
controller
TabController 对象
isScrollable
是否可滚动
indicatorColor
指示器颜色
indicatorWeight
指示器高度
indicatorPadding
底部指示器的 Padding
indicator
指示器 decoration,例如边框等
indicatorSize
指示器大小计算方式,TabBarIndicatorSize.label 跟文字等宽,TabBarIndicatorSize.tab 跟每个 tab 等宽
labelColor
选中 label 颜色
labelStyle
选中 label 的 Style
labelPadding
每个 label 的 padding 值
unselectedLabelColor
未选中 label 颜色
unselectedLabelStyle
未选中 label 的 Style

  • TabBar的实现方式1(不常用)

  1. import 'package:flutter/material.dart';
  2.  
  3. void main() {
  4. runApp(
  5. MaterialApp(
  6. home: DefaultTabController(
  7. length: 6,
  8. child: Scaffold(
  9. appBar: AppBar(
  10. title: Text("TabBarDemo"),
  11. bottom: TabBar(
  12. tabs: <Widget>[
  13. Tab(text: "热门"),
  14. Tab(text: "推荐"),
  15. Tab(text: "关注"),
  16. Tab(text: "收藏"),
  17. Tab(text: "新增"),
  18. Tab(text: "点赞"),
  19. ],
  20. ),
  21. ),
  22. body: TabBarView(
  23. children: <Widget>[
  24. Center(
  25. child: Text("这是热门的内容")
  26. ),
  27. Center(
  28. child: Text("这是推荐的内容")
  29. ),
  30. Center(
  31. child: Text("这是关注的内容")
  32. ),
  33. Center(
  34. child: Text("这是收藏的内容")
  35. ),
  36. Center(
  37. child: Text("这是新增的内容")
  38. ),
  39. Center(
  40. child: Text("这是点赞的内容")
  41. )
  42. ],
  43. ),
  44. ),
  45. ),
  46. )
  47. );
  48. }
  • TabBar的实现方式2(常用)

  1. import 'package:flutter/material.dart';
  2.  
  3. void main() {
  4. runApp(MaterialApp(
  5. title: "TabBarWidget",
  6. home: MyApp(),
  7. ));
  8. }
  9.  
  10. class MyApp extends StatefulWidget {
  11. @override
  12. _MyAppState createState() => _MyAppState();
  13. }
  14.  
  15. class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin{
  16. TabController _tabController;
  17.  
  18. @override
  19. void initState() {
  20. super.initState();
  21. _tabController = TabController(vsync: this,length: 6);
  22. }
  23.  
  24. @override
  25. void dispose() {
  26. _tabController.dispose();
  27. super.dispose();
  28. }
  29.  
  30. @override
  31. Widget build(BuildContext context) {
  32. return Scaffold(
  33. appBar: AppBar(
  34. title: Text("顶部Tab切换"),
  35. bottom: TabBar(
  36. tabs: <Widget>[
  37. Tab(text: "热门"),
  38. Tab(text: "推荐"),
  39. Tab(text: "关注"),
  40. Tab(text: "收藏"),
  41. Tab(text: "新增"),
  42. Tab(text: "点赞"),
  43. ],
  44. controller: _tabController, // 记得要带上tabController
  45. ),
  46. ),
  47. body: TabBarView(
  48. controller: _tabController,
  49. children: <Widget>[
  50. Center(
  51. child: Text("这是热门的内容")
  52. ),
  53. Center(
  54. child: Text("这是推荐的内容")
  55. ),
  56. Center(
  57. child: Text("这是关注的内容")
  58. ),
  59. Center(
  60. child: Text("这是收藏的内容")
  61. ),
  62. Center(
  63. child: Text("这是新增的内容")
  64. ),
  65. Center(
  66. child: Text("这是点赞的内容")
  67. )
  68. ],
  69. ),
  70. );
  71. }
  72. }

Flutter——TabBar组件(顶部Tab切换组件)的更多相关文章

  1. AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换

    一.Flutter AppBar 自定义顶部按钮图标.颜色 leading   在标题前面显示的一个控件,在首页通常显示应用的 logo:在其他界面通常显示为返回按钮 title  标题,通常显示为当 ...

  2. Flutter AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换

    Flutter AppBar 自定义顶部按钮图 标.颜色 属性 描述 leading 在标题前面显示的一个控件,在首页通常显示应用 的 logo;在其他界面通常显示为返回按钮 title 标题,通常显 ...

  3. 19 Flutter 自定义AppBar 定义顶部Tab切换 底部Tab结合顶部Tab实现类似头条页面布局(27分36秒)

    Flutter AppBar自定义顶部导航按钮图标.颜色以及TabBar定义顶部Tab切换. leading:在标题前面显示的一个控件,在首页通常显示应用的logo:在其他界面通常显示为付汇按钮. t ...

  4. react实现的tab切换组件

    我有点想要吐槽,因为用原生的js实现起来挺简单的一个小东西,改用react来写却花了我不少时间,也许react的写法只有在复杂的web应用中才能体现出它的优势吧!不过吐槽归吐槽,对react这种优雅的 ...

  5. 微信小程序基于swiper组件的tab切换

    代码地址如下:http://www.demodashi.com/demo/14010.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  6. vue2.0使用动态组件实现tab切换效果(vue-cli)

    <template> <div> <div>#动态组件实现tab切换效果#</div><br><br><br> &l ...

  7. 简单的Tab切换组件

    由于代码都有注释,所以不多加解释,大家都知道的.直接贴代码: 代码如下: /** * 简单的Tab切换 * 支持可配置项 如下参数 */ function Tab(){ this.config = { ...

  8. uniapp使用swiper组件做tab切换动态获取高度

    swiper对高度进行了限制,所以说通常做出了tab切换的效果但是内容经常被截取掉???? 所以我在前端做了一个动态获取高度的功能 选项卡标题也就是tab切换的效果 选项卡内容区域的高度自适应 因为进 ...

  9. TabController定义顶部tab切换

    前面通过DefaultTabController组件实现了AppBar里面的顶部导航切换,但是在项目中有数据请求,上拉加载更多等操作的时候,前面的写法,就不是很方便操作,因此,在flutter里面,还 ...

随机推荐

  1. 报错:HDFS IO error org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/yk/dl/alarm_his":hdfs:supergroup:drwxr-xr-x

    报错背景: CDH集成了Flume服务,准备通过Flume将kafka中的数据放到HDFS中, 启动Flume的时候报错. 报错现象: // :: INFO hdfs.HDFSDataStream: ...

  2. 常用OID(SNMP)

    系统参数(1.3.6.1.2.1.1) OID 描述 备注 请求方式 .1.3.6.1.2.1.1.1.0 获取系统基本信息 SysDesc GET .1.3.6.1.2.1.1.3.0 监控时间 s ...

  3. Python - Django - 模板语言之自定义过滤器

    自定义过滤器的文件: 在 app01 下新建一个 templatetags 的文件夹,然后创建 myfilter.py 文件 这个 templatetags 名字是固定的,myfilter 是自己起的 ...

  4. [ kvm ] 学习笔记 9:WebVirtMgr 基础及安装使用

    目录- 1. 前言- 2. webvirtmgr 简介- 3. webvirtmgr 部署实践    - 3.1 配置 webvirtmgr 主机    - 3.2 kvm node节点配置    - ...

  5. 最新 企叮咚java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿. 企叮咚等10家互联网公司的校招Offer,因为某些自身原因最终选择了 企叮咚.6.7月主要是做系统复习.项目复盘.Leet ...

  6. tracert详解

    1tracert作用 是用于探索源地址到目标地址当中所经过的路线.而每到达一个点,就会向源地址返回一个信号.例如A要访问D,那么当中经过B,再经过C.当经过B时,会向A返回一个信号,当经过C时,再向A ...

  7. 洛谷 题解 P1041 【传染病控制】

    [思路] 题目给出一棵树.第\(i\)步拆的一定是第\(i\)层与第\(i+1\)层之间的连边,否则不是最优(自行证明即可),所以可以暴力枚举每一次拆哪一个节点与上一个节点的连边. 把所有节点所在的层 ...

  8. TCP/IP学习笔记9--以太网之基本概念1: 分类,连接方式

    时间是变化的财富.时钟模仿它,却只有变化而无财富. -- 泰戈尔 以太网(Ethernet)一词源于Ether(以太), 是介质的意思.在爱因斯坦哥们提出量子力学之前,人们普遍认为宇宙空间充满以太,并 ...

  9. URI和URL的关系与区别

    首先给大家举个例子,有一家公司的总经理,某天,给了我一张名片,上面写了他的头衔,北京XXX公司总经理 张三,还有他的办公室地址,北京市海淀区长安街35号北京XXX公司总经理办公室,那么,我以后给我的朋 ...

  10. 简单实现SpringBoot启动

    一.准备: IDEA 使用简单手写导包实现spring boot,未使用idea自带的spring创建方法 可以更加简单理解springboot启动过程 二.开始 1.打开idea创建project ...