createDefaultTabBar static method
Widget
createDefaultTabBar({
- required int tabSize,
- required String onTabText(
- int index
- required ValueChanged<
int> onTap, - required TabController controller,
- TabBarIndicatorSize indicatorSize = TabBarIndicatorSize.tab,
- bool isScrollable = true,
Implementation
static Widget createDefaultTabBar({
required int tabSize,
required String Function(int index) onTabText,
required ValueChanged<int> onTap,
required TabController controller,
TabBarIndicatorSize indicatorSize = TabBarIndicatorSize.tab,
bool isScrollable = true,
}) {
List<Widget> tabs = [];
for (int i = 0; i < tabSize; i++) {
var tab = Container(
alignment: Alignment.center,
margin: EdgeInsets.symmetric(vertical: 8),
height: 56,
child: Text(onTabText(i), style: const TextStyle(fontSize: 14)),
);
tabs.add(tab);
}
return Container(
width: double.infinity,
height: 56,
decoration: BoxDecoration(
color: Colors.white,
boxShadow: AppStyleUtil.getDefaultBoxShadow(),
),
padding: EdgeInsets.symmetric(horizontal: 16),
child: DefaultTabController(
length: tabSize,
child: TabBar(
padding: EdgeInsets.zero,
dividerColor: Color(0xfff2f2f2),
dividerHeight: 0,
indicator: BoxDecoration(
borderRadius: BorderRadius.circular(48), // 圆角
color: AppColors.primaryColor,
),
indicatorSize: TabBarIndicatorSize.tab,
indicatorWeight: 2,
controller: controller,
indicatorPadding: EdgeInsets.symmetric(vertical: 10),
isScrollable: isScrollable,
tabAlignment: TabAlignment.start,
tabs: tabs,
onTap: onTap,
labelColor: Colors.white,
unselectedLabelColor: Color(0xff333333),
),
),
);
}