【Flutter 专题】75 图解基本 TabBar 标签导航栏 (一)
小菜今天学习一下常用的 TabBar 标签导航栏使用方法;
源码分析
分析源码可得,TabBar 与 TabBarView 是配对使用的,其对应的 Tab 数量必须相同;其中 TabBar 中提供了众多相关指示器属性,且 TabBar 与 TabBarView 上下拖拽方式区分设置,互不影响;
案例尝试
TabBar
tabs 为顶部标签列表;controller 为标签控制器,若未提供此标签控制器,可使用系统 DefaultTabController 控制器;小菜创建一个基本的 TabBar 样式,其中 TabBar 与 TabBarView 共用一个 TabController 控制器,且对应数量一致;
isScrollable 为标签栏是否可滑动,若设为 true 可按照每个标签宽度延伸,整体可超过屏幕宽度,若不超过屏幕宽度居中展示;若设为 false 则以屏幕宽度为准,多个标签均分宽度;
indicatorColor 为底部指示器颜色;indicatorWeight 为底部指示器高度;indicatorPadding 为底部指示器内边距;
indicatorSize 为指示器宽度,其中包括指示器 indicatorPadding 内边距宽度;为 TabBarIndicatorSize,TabBarIndicatorSize.tab 与分配的单个 Tab 宽度;TabBarIndicatorSize.label 为单个 Tab 中 Widget 内容宽度;
labelColor 为 Tab 标签内容颜色;labelStyle 为 Tab 标签样式;labelPadding 为 Tab 内边距;当 labelColor 和 labelStyle 均设置颜色时以 labelColor 为准;但如果 Tab 中 Widgets 设置样式时以 Tab 设置为准,labelStyle 不生效;
unselectedLabelColor 为未选中标签颜色;unselectedLabelStyle 为未选中标签样式;当 unselectedLabelColor 和 unselectedLabelStyle 均设置颜色时以 unselectedLabelColor 为准;但如果 Tab 中 Widgets 设置样式时以 Tab 设置为准,unselectedLabelStyle 不生效;
dragStartBehavior 为处理拖拽开始行为方式,DragStartBehavior.start 为初始位置为拖动开始位置;DragStartBehavior.down 为初始位置为点击触摸下位置;小菜对此理解不够深入,希望更清楚的朋友多多交流;
TabBarView
physics 为通用的滑动动画,可以设置是否滑动或其他滑动模式;可通过 NeverScrollableScrollPhysics() 禁止滑动切换 Tab;
小扩展
TabBar 一般使用在 AppBar bottom 中,上面会有 Title 层,小菜尝试,TabBar 也可以直接应用在 Title 处;
小菜对 TabBar 的应用不够深入,下节重点尝试自定义 indicator;如有错误请多多指导!
来源: 阿策小和尚
版权声明: 本文为 InfoQ 作者【阿策小和尚】的原创文章。
原文链接:【http://xie.infoq.cn/article/be583a475a4d55b0ed5b369cb】。文章转载请联系作者。
评论