【Flutter 专题】126 图解自定义两侧对齐 ACETabBar 标签导航栏

enum ACETabBarAlignType { left, center, right }

源码分析

小菜分析 TabBar 源码,在 _TabBarStateTabBar 绘制过程中,多个子 Tab 通过 SingleChildScrollView 存放,最简单的方式,在 SingleChildScrollView 外添加可以设置对齐方式的 Container 即可;

if (widget.isScrollable) {
_scrollController ??= _TabBarScrollController(this);
tabBar = Container(
alignment: _alignType(widget.alignType ?? ACETabBarAlignType.center),
child: _scrollView(tabBar));
}

_alignType(alignType) {
Alignment _type;
switch (alignType) {
case ACETabBarAlignType.left:
_type = Alignment.centerLeft;
break;
case ACETabBarAlignType.center:
_type = Alignment.center;
break;
case ACETabBarAlignType.right:
_type = Alignment.centerRight;
break;
}
return _type;
}

_scrollView(tabBar) {
return SingleChildScrollView(
dragStartBehavior: widget.dragStartBehavior,
scrollDirection: Axis.horizontal,
controller: _scrollController,
physics: widget.physics,
child: tabBar);
}

案例尝试

小菜尝试了在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值