BaseTabBar class

自定义 TabBar 组件

特性:

  • 可滚动:当 Tab 总宽度超过可用空间时,支持横向滚动
  • 从左开始排列:Tab 从左侧开始排列,不居中
  • Tab 宽度自适应:每个 Tab 的宽度根据标题文本自动调整,不均分可用空间
  • 右侧留白:如果右边还有空间,则留白,不填充
  • Indicator 对齐:支持左对齐、居中对齐、右对齐三种方式
Inheritance
Implemented types

Constructors

BaseTabBar({Key? key, required TabController controller, required List<String> tabs, bool smoothIndicator = true, ValueChanged<int>? onChange, Color? labelColor, Color? unselectedLabelColor, TextStyle? labelStyle, TextStyle? unselectedLabelStyle, EdgeInsetsGeometry? tabPadding, double? tabSpacing, Color? indicatorColor, double? indicatorHeight, double? indicatorWidth, EdgeInsetsGeometry? indicatorPadding, IndicatorAlignment indicatorAlignment = IndicatorAlignment.center, Color? backgroundColor, double? height, ScrollController? scrollController})

Properties

backgroundColor Color?
背景颜色
final
controller TabController
TabController,用于控制 Tab 的选中状态
final
hashCode int
The hash code for this object.
no setterinherited
height double?
TabBar 的高度
final
indicatorAlignment IndicatorAlignment
指示器对齐方式
final
indicatorColor Color?
指示器颜色(下划线颜色)
final
indicatorHeight double?
指示器高度
final
indicatorPadding EdgeInsetsGeometry?
指示器padding
final
indicatorWidth double?
指示器宽度(如果为 null,则自适应 Tab 宽度)
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
labelColor Color?
选中的 Tab 文字颜色
final
labelStyle TextStyle?
选中的 Tab 文字样式
final
onChange ValueChanged<int>?
Tab 切换时的回调,参数为当前选中 tab 的索引
final
preferredSize Size
The size this widget would prefer if it were otherwise unconstrained.
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scrollController ScrollController?
可选外部滚动控制器,若为 null 则内部创建并管理
final
smoothIndicator bool
是否启用平滑指示器(基于 TabController.animation 插值) 在低端设备上可以将此项设为 false,以关闭精确监听并使用原始 index 驱动的指示器更新。
final
tabPadding EdgeInsetsGeometry?
Tab 的内边距
final
tabs List<String>
Tab 标题列表
final
tabSpacing double?
Tab 之间的间距
final
unselectedLabelColor Color?
未选中的 Tab 文字颜色
final
unselectedLabelStyle TextStyle?
未选中的 Tab 文字样式
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<BaseTabBar>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited