createDefaultTabBarWithPage static method

Widget createDefaultTabBarWithPage({
  1. required int count,
  2. required String onTabText(
    1. int index
    ),
  3. required TabController tabController,
  4. required PageController pageController,
  5. required Widget pageBuilder(
    1. BuildContext context,
    2. int index
    ),
  6. TabBarIndicatorSize indicatorSize = TabBarIndicatorSize.tab,
  7. bool isScrollable = true,
})

Implementation

static Widget createDefaultTabBarWithPage({
  required int count,
  required String Function(int index) onTabText,
  required TabController tabController,
  required PageController pageController,
  required Widget Function(BuildContext context, int index) pageBuilder,
  TabBarIndicatorSize indicatorSize = TabBarIndicatorSize.tab,
  bool isScrollable = true,
}) {
  return Column(
    children: [
      createDefaultTabBar(
        tabSize: count,
        onTabText: onTabText,
        onTap: (index) => pageController.jumpToPage(index),
        controller: tabController,
        indicatorSize: indicatorSize,
        isScrollable: isScrollable,
      ),

      Container(width: double.infinity, height: 8, color: Color(0xfff2f2f2)),

      Expanded(
        flex: 1,
        child: PageView.builder(
          allowImplicitScrolling: true,
          controller: pageController,
          itemCount: count,
          itemBuilder: (context, index) => pageBuilder(context, index),
          onPageChanged: (index) {
            tabController.animateTo(index);
          },
        ),
      ),
    ],
  );
}