smart_tab_layout 1.0.7 smart_tab_layout: ^1.0.7 copied to clipboard
This is a library based on Flutter TabBar functionality extensions
smart_tab_layout #
原生 TabBar 功能扩展、支持纵轴排列、更方便的样式配置、更多的样式过渡效果、预制的指示器
SmartTabLayout 使用 #
导入项目
dependencies:
smart_tab_layout: 1.0.7
创建 #
- 1.外部定义一个 DefaultTabController 或传入一个 controller
- 2.传入 labels 指定 tab 显示内容(自定义 tab 样式传入 itemBuilder 和 childCount)
- 3.现在就可以使用了
DefaultTabController(
length: 10,
child: SmartTabLayout(
labels: ["1","2","3","4","5","6","7","8","9","10"],
),
);
var controller = TabController(length: 10, vsync: this);
SmartTabLayout(
controller: controller,
itemBuilder: (context, index) {
return Text(index.toString());
},
childCount: 10,
);
tab 样式 #
- 1.以下代码演示自定义 tab 样式配置
DefaultTabController(
length: 10,
child: SmartTabLayout(
width: 400,//tabLayout宽度
height: 80,//tabLayout高度
space: 20,//tab间隔
background: Colors.lightBlue,//tabLayout背景
margin: EdgeInsets.only(left: 10),//tabLayout外边距
padding: EdgeInsets.only(left: 10, right: 10),//tabLayout内边距
borderRadius: BorderRadius.circular(6),//tabLayout圆角
border: Border.all(color: Colors.black, width: 1),//tabLayout边框
direction: Axis.horizontal,//tabLayout 方向
itemWidth: 60,//tab宽度
itemHeight: 30,//tab高度
itemBackground: Colors.indigoAccent,//tab背景
itemBorderRadius: BorderRadius.circular(8),//tab圆角
itemPadding: EdgeInsets.symmetric(horizontal: 6, vertical: 3),//tab内边距
itemBorder: Border.all(color: Colors.black, width: 1),//tab边框
isScrollable: true,//tab是否根据tabLayout宽度等分 or 是否滚动
itemSelectedBackground: Colors.white,//tab选中背景
itemSelectedBorder: Border.all(color: Colors.orange, width: 1),//tab选中边框
itemSelectedBorderRadius: BorderRadius.zero,//tab选中圆角
itemSelectedPadding: EdgeInsets.symmetric(horizontal: 10, vertical: 1),//tab选中内边距
itemTextStyle: TextStyle(//tab字体样式
color: Colors.purple,
fontSize: 16,
fontWeight: FontWeight.normal,
),
itemSelectedTextStyle: TextStyle(//tab选中字体样式
color: Colors.orange,
fontSize: 16,
fontWeight: FontWeight.normal,
),
childCount: 10,//自定义tab数量
itemBuilder: (c, i) {//自定义tab
return Text(i.toString());//不设置style会继承默认样式,带有动画过渡(推荐通过itemTextStyle配置)
},
),
);
指示器样式 #
- 1.以下代码演示自定义指示器样式配置
SmartImageTabIndicator.load("assets/img/ic_search.png", Size(20, 20)).then((value) {
_image = value;
setState(() {});
});
DefaultTabController(
length: 10,
child: SmartTabLayout(
labels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
indicator: SmartImageTabIndicator(
image: _image,
),// 自定义图片指示器
indicatorSize: TabBarIndicatorSize.tab,// tab:indicator宽度等于tab宽度,label:indicator宽度等于label宽度或自定义tab宽度
indicatorBorderRadius: BorderRadius.vertical(top: Radius.circular(4)),// indicator设置圆角
indicatorColor: Colors.blue,// indicator颜色
indicatorWeight: 2,// indicator 高度
indicatorPadding: EdgeInsets.only(bottom: 2),// indicator 位置
),
);